aboutsummaryrefslogtreecommitdiff
path: root/firmwares/wifishield/wifiHD
diff options
context:
space:
mode:
Diffstat (limited to 'firmwares/wifishield/wifiHD')
-rw-r--r--firmwares/wifishield/wifiHD/.cproject4045
-rw-r--r--firmwares/wifishield/wifiHD/.project77
-rw-r--r--firmwares/wifishield/wifiHD/Release/wifiHD.elfbin724331 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/Release/wifiHD.hex16358
-rw-r--r--firmwares/wifishield/wifiHD/src/CONFIG/conf_access.h170
-rw-r--r--firmwares/wifishield/wifiHD/src/CONFIG/conf_at45dbx.h83
-rw-r--r--firmwares/wifishield/wifiHD/src/CONFIG/conf_ebi.h108
-rw-r--r--firmwares/wifishield/wifiHD/src/CONFIG/conf_sd_mmc_spi.h73
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/ASM/trampoline.x74
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/arduino.h237
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c346
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.h191
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/evk1105.h433
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.c346
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.h187
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h120
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h.my120
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.c653
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.h270
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.c234
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.h164
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.abin11978 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.abin13134 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.abin1007102 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.abin11946 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.abin13110 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.abin1004426 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/revision.txt1
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_api.h1687
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h19287
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_os.h35
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_sdio.h172
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_spi.h185
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wlap_api.h154
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER/cycle_counter.h309
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.c995
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.h68
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.c183
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.h275
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.c1117
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.h1002
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.c458
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h583
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/exception.x239
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.c214
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.h100
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.c296
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.h251
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.c546
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.h493
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm_conf_clocks.c268
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.c566
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.h379
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.c213
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.h191
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.c443
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.h342
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.c314
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.h591
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.c914
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.h889
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.c87
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.h80
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dhcp.c1724
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dns.c982
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/init.c276
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/autoip.c499
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/icmp.c333
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/igmp.c759
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet.c280
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet_chksum.c440
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip.c725
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_addr.c86
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_frag.c794
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/mem.c635
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/memp.c388
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/netif.c683
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/pbuf.c931
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/raw.c355
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/stats.c151
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp.c1463
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_in.c1508
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_out.c1071
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/udp.c843
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/autoip.h118
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/icmp.h113
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/igmp.h164
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet.h105
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet_chksum.h62
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip.h200
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_addr.h175
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_frag.h78
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api.h224
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api_msg.h164
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/arch.h235
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/debug.h100
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/def.h49
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dhcp.h248
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dns.h99
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/err.h89
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/init.h74
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/mem.h109
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp.h118
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp_std.h104
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netbuf.h88
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netdb.h113
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netif.h265
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netifapi.h107
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/opt.h1842
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/pbuf.h122
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/raw.h99
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sio.h143
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp.h366
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_asn1.h103
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_msg.h313
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_structs.h264
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sockets.h359
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/stats.h285
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sys.h245
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcp.h709
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcpip.h143
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/udp.h155
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/etharp.h194
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/loopif.h55
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/ppp_oe.h163
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/slipif.h53
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/etharp.c1224
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/loopif.c68
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/cc.h79
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/perf.h7
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/lwipopts.h426
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h10
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/netif/wlif.c386
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/readme.txt1
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.c571
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.h369
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.c133
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.h116
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.c215
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.h294
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h63
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_exceptions.h120
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_interrupts.h82
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_io.h174
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_usart.h208
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.abin25540 -> 0 bytes
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds266
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds266
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/mrepeat.h328
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h55
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/stringz.h75
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/tpaste.h95
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/STARTUP_FILES/GCC/crt0.x121
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/compiler.h1145
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/conf_isp.h136
-rw-r--r--firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/parts.h203
-rw-r--r--firmwares/wifishield/wifiHD/src/ard_spi.c1969
-rw-r--r--firmwares/wifishield/wifiHD/src/ard_spi.h88
-rw-r--r--firmwares/wifishield/wifiHD/src/ard_tcp.c987
-rw-r--r--firmwares/wifishield/wifiHD/src/ard_tcp.h124
-rw-r--r--firmwares/wifishield/wifiHD/src/ard_utils.c347
-rw-r--r--firmwares/wifishield/wifiHD/src/ard_utils.h295
-rw-r--r--firmwares/wifishield/wifiHD/src/avr32_spi.c394
-rw-r--r--firmwares/wifishield/wifiHD/src/board_init.c297
-rw-r--r--firmwares/wifishield/wifiHD/src/board_init.h313
-rw-r--r--firmwares/wifishield/wifiHD/src/cmd_wl.c731
-rw-r--r--firmwares/wifishield/wifiHD/src/cmd_wl.h66
-rw-r--r--firmwares/wifishield/wifiHD/src/console.c212
-rw-r--r--firmwares/wifishield/wifiHD/src/console.h46
-rw-r--r--firmwares/wifishield/wifiHD/src/debug.h191
-rw-r--r--firmwares/wifishield/wifiHD/src/fw_download.h38
-rw-r--r--firmwares/wifishield/wifiHD/src/fw_download_extflash.c82
-rw-r--r--firmwares/wifishield/wifiHD/src/license.txt42
-rw-r--r--firmwares/wifishield/wifiHD/src/lwip_setup.c145
-rw-r--r--firmwares/wifishield/wifiHD/src/lwip_setup.h30
-rw-r--r--firmwares/wifishield/wifiHD/src/lwipopts.h450
-rw-r--r--firmwares/wifishield/wifiHD/src/main.c454
-rw-r--r--firmwares/wifishield/wifiHD/src/nvram.c153
-rw-r--r--firmwares/wifishield/wifiHD/src/nvram.h10
-rw-r--r--firmwares/wifishield/wifiHD/src/owl_os.c140
-rw-r--r--firmwares/wifishield/wifiHD/src/ping.c340
-rw-r--r--firmwares/wifishield/wifiHD/src/ping.h45
-rw-r--r--firmwares/wifishield/wifiHD/src/printf-stdarg.c323
-rw-r--r--firmwares/wifishield/wifiHD/src/printf-stdarg.h34
-rw-r--r--firmwares/wifishield/wifiHD/src/timer.c232
-rw-r--r--firmwares/wifishield/wifiHD/src/timer.h51
-rw-r--r--firmwares/wifishield/wifiHD/src/top_defs.h120
-rw-r--r--firmwares/wifishield/wifiHD/src/trace.h44
-rw-r--r--firmwares/wifishield/wifiHD/src/util.c260
-rw-r--r--firmwares/wifishield/wifiHD/src/util.h71
-rw-r--r--firmwares/wifishield/wifiHD/src/wifi_spi.h160
-rw-r--r--firmwares/wifishield/wifiHD/src/wl_cm.c431
-rw-r--r--firmwares/wifishield/wifiHD/src/wl_cm.h51
-rw-r--r--firmwares/wifishield/wifiHD/src/wl_definitions.h39
-rw-r--r--firmwares/wifishield/wifiHD/wifiHD.cproj1291
195 files changed, 0 insertions, 100288 deletions
diff --git a/firmwares/wifishield/wifiHD/.cproject b/firmwares/wifishield/wifiHD/.cproject
deleted file mode 100644
index fa7fcdd..0000000
--- a/firmwares/wifishield/wifiHD/.cproject
+++ /dev/null
@@ -1,4045 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?fileVersion 4.0.0?>
-
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-<storageModule moduleId="org.eclipse.cdt.core.settings">
-<cconfiguration id="avr32.managedbuild.config.gnu.exe.debug.1622245200">
-<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="avr32.managedbuild.config.gnu.exe.debug.1622245200" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-<externalSettings/>
-<extensions>
-<extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
-<extension id="com.atmel.avr.toolchain.avr32gcc.elf32-avr32" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-</extensions>
-</storageModule>
-<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-<configuration artifactName="wifiHD" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="AVR32 Standalone debug configuration" id="avr32.managedbuild.config.gnu.exe.debug.1622245200" name="Debug" parent="avr32.managedbuild.config.gnu.exe.debug" postannouncebuildStep="Size Before build" postbuildStep="avr32-size ${BuildArtifactFileName}" preannouncebuildStep="" prebuildStep="">
-<folderInfo id="avr32.managedbuild.config.gnu.exe.debug.1622245200." name="/" resourcePath="">
-<toolChain id="avr32.managedbuild.toolchain.gnu.exe.debug.1787446984" name="32-bit AVR/GNU C/C++ Toolchain" superClass="avr32.managedbuild.toolchain.gnu.exe.debug">
-<targetPlatform id="avr32.managedbuild.target.gnu.platform.exe.debug.1577294140" name="%PlatformName.Dbg" superClass="avr32.managedbuild.target.gnu.platform.exe.debug"/>
-<builder buildPath="${workspace_loc:/wifiHD/Debug}" enableAutoBuild="false" id="avr32.managedbuild.target.gnu.builder.exe.debug.860077655" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="avr32.managedbuild.target.gnu.builder.exe.debug"/>
-<tool id="avr32.managedbuild.tool.gnu.archiver.exe.debug.716199814" name="32-bit AVR/GNU Archiver" superClass="avr32.managedbuild.tool.gnu.archiver.exe.debug"/>
-<tool id="avr32.managedbuild.tool.gnu.cpp.compiler.exe.debug.2050435638" name="32-bit AVR/GNU C++ Compiler" superClass="avr32.managedbuild.tool.gnu.cpp.compiler.exe.debug">
-<option id="gnu.cpp.compiler.option.optimization.level.167185469" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
-<option id="gnu.cpp.compiler.option.debugging.level.1072153032" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.cpp.compiler.option.mcu.538485808" name="Microcontroller Unit" superClass="avr32.cpp.compiler.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.cpp.compiler.option.include.paths.1291994818" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-</option>
-<option id="avr32.cpp.compiler.option.flashvault.1873560474" name="Enable FlashVault support" superClass="avr32.cpp.compiler.option.flashvault" value="false" valueType="boolean"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1012366065" name="32-bit AVR/GNU C Compiler" superClass="avr32.managedbuild.tool.gnu.c.compiler.exe.debug">
-<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.187661945" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" value="gnu.c.optimization.level.optimize" valueType="enumerated"/>
-<option id="gnu.c.compiler.option.debugging.level.957359437" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.c.compiler.option.mcu.442256180" name="Microcontroller Unit" superClass="avr32.c.compiler.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.c.compiler.option.optimization.flags.1362317068" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="-fdata-sections -ffunction-sections" valueType="string"/>
-<option id="gnu.c.compiler.option.preprocessor.def.symbols.2032815329" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
-<listOptionValue builtIn="false" value="BOARD=ARDUINO"/>
-<listOptionValue builtIn="false" value="NO_SYS"/>
-<listOptionValue builtIn="false" value="_DEBUG_"/>
-<listOptionValue builtIn="false" value="_ASSERT_ENABLE_"/>
-<listOptionValue builtIn="false" value="WITH_KEY"/>
-<listOptionValue builtIn="false" value="WITH_WPA"/>
-<listOptionValue builtIn="false" value="WITH_NO_DMA"/>
-<listOptionValue builtIn="false" value="DATAFLASH=1"/>
-<listOptionValue builtIn="false" value="_INFO_DEBUG_=1"/>
-</option>
-<option id="gnu.c.compiler.option.include.paths.199111087" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="../src"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD"/>
-</option>
-<option id="avr32.c.compiler.option.flashvault.1511808014" name="Enable FlashVault support" superClass="avr32.c.compiler.option.flashvault" value="false" valueType="boolean"/>
-<option id="avr32.c.compiler.option.fpic.1413737757" name="Generate position-independent code" superClass="avr32.c.compiler.option.fpic" value="false" valueType="boolean"/>
-<option id="avr32.c.compiler.option.mforce-double-align.1833231832" name="Force double-word alignment" superClass="avr32.c.compiler.option.mforce-double-align" value="true" valueType="boolean"/>
-<option id="gnu.c.compiler.option.warnings.pedantic.error.266375625" name="Pedantic warnings as errors (-pedantic-errors)" superClass="gnu.c.compiler.option.warnings.pedantic.error" value="false" valueType="boolean"/>
-<option id="gnu.c.compiler.option.warnings.toerrors.1148543352" name="Warnings as errors (-Werror)" superClass="gnu.c.compiler.option.warnings.toerrors" value="false" valueType="boolean"/>
-<option id="gnu.c.compiler.option.misc.verbose.1690548506" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose" value="false" valueType="boolean"/>
-<option id="gnu.c.compiler.option.misc.other.617535058" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0" valueType="string"/>
-<inputType id="avr32.managedbuild.tool.gnu.c.compiler.input.253539519" superClass="avr32.managedbuild.tool.gnu.c.compiler.input"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.linker.exe.debug.1134510857" name="32-bit AVR/GNU C Linker" superClass="avr32.managedbuild.tool.gnu.c.linker.exe.debug">
-<option id="avr32.c.linker.option.mcu.208178139" name="Microcontroller Unit" superClass="avr32.c.linker.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.c.link.option.nostart.975559445" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart" value="true" valueType="boolean"/>
-<option id="gnu.c.link.option.ldflags.569230699" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-Wl,--gc-sections -Wl,-e,_trampoline -T../src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds" valueType="string"/>
-<option id="gnu.c.link.option.paths.1433794230" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC}&quot;"/>
-</option>
-<option id="gnu.c.link.option.libs.1720035119" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_spi_v2.7.0"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_wl_sta_intwpa_v2.7.0"/>
-</option>
-<option id="gnu.c.link.option.strip.878241046" name="Omit all symbol information (-s)" superClass="gnu.c.link.option.strip" value="false" valueType="boolean"/>
-<option id="avr32.c.linker.option.gc-sections.1193662367" name="Garbage collect unused sections" superClass="avr32.c.linker.option.gc-sections" value="true" valueType="boolean"/>
-<option id="avr32.c.linker.option.rodata-writable.1710110734" name="Put read-only data in writable data section" superClass="avr32.c.linker.option.rodata-writable" value="true" valueType="boolean"/>
-<option id="avr32.c.linker.option.fpic.953076621" name="Generate position-independent code" superClass="avr32.c.linker.option.fpic" value="false" valueType="boolean"/>
-<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.974320538" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
-<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-</inputType>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.cpp.linker.exe.debug.2023008784" name="32-bit AVR/GNU C++ Linker" superClass="avr32.managedbuild.tool.gnu.cpp.linker.exe.debug">
-<option id="avr32.cpp.linker.option.mcu.1842160542" name="Microcontroller Unit" superClass="avr32.cpp.linker.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.cpp.link.option.libs.553570579" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-</option>
-<option id="gnu.cpp.link.option.paths.1808219646" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.assembler.exe.debug.1265602469" name="32-bit AVR/GNU Assembler" superClass="avr32.managedbuild.tool.gnu.assembler.exe.debug">
-<option id="avr32.both.asm.option.debugging.level.1267695286" name="Debug Level" superClass="avr32.both.asm.option.debugging.level" value="avr32.both.asm.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.both.asm.option.mcu.1719949047" name="Microcontroller Unit" superClass="avr32.both.asm.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.both.asm.option.include.paths.856598085" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.preprocessor.exe.debug.634227134" name="32-bit AVR/GNU Preprocessing Assembler" superClass="avr32.managedbuild.tool.gnu.preprocessor.exe.debug">
-<option id="avr32.both.preprocessor.option.debugging.level.1586886701" name="Debug Level" superClass="avr32.both.preprocessor.option.debugging.level" value="avr32.both.preprocessor.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.both.preprocessor.option.mcu.1298401384" name="Microcontroller Unit" superClass="avr32.both.preprocessor.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="avr32.both.preprocessor.option.flags.1724795968" name="Assembler flags" superClass="avr32.both.preprocessor.option.flags" value="-Wa,-g" valueType="string"/>
-<option id="avr32.both.preprocessor.option.paths.1859276996" name="Include paths (-I)" superClass="avr32.both.preprocessor.option.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-<inputType id="avr32.managedbuild.tool.gnu.preprocessor.input.678543067" superClass="avr32.managedbuild.tool.gnu.preprocessor.input"/>
-</tool>
-</toolChain>
-</folderInfo>
-<sourceEntries>
-<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<entry excluding="spb.h|httpd.h|httpd.c|platform_spi.h|clocks.c|clocks.h|nor_flash.h|nor_flash.c|wl_util.h|wl_util.c|startup.h|startup.c|ttcp.h|ttcp.c|fsdata.c|hdwireless_gif.h|http_server_gui.h|http_server_gui.c|SOFTWARE_FRAMEWORK/COMPONENTS/TOUCH|SOFTWARE_FRAMEWORK/DRIVERS/ADC|SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h|gui.c|SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC|SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY|SOFTWARE_FRAMEWORK/COMPONENTS/DISPLAY/ET024006DHU|gui_getstring.c|SOFTWARE_FRAMEWORK/BOARDS/EVK1105" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
-</sourceEntries>
-</configuration>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
-<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-<storageModule moduleId="scannerConfiguration">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445;avr32.managedbuild.config.gnu.exe.release.1761605428.53366445.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1297103917;avr32.managedbuild.tool.gnu.c.compiler.input.1475497800">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200;avr32.managedbuild.config.gnu.exe.debug.1622245200.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1012366065;avr32.managedbuild.tool.gnu.c.compiler.input.253539519">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753;avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1323919988;avr32.managedbuild.tool.gnu.c.compiler.input.253409817">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428;avr32.managedbuild.config.gnu.exe.release.1761605428.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1267623154;avr32.managedbuild.tool.gnu.c.compiler.input.233400464">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-</cconfiguration>
-<cconfiguration id="avr32.managedbuild.config.gnu.exe.release.1761605428">
-<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="avr32.managedbuild.config.gnu.exe.release.1761605428" moduleId="org.eclipse.cdt.core.settings" name="Release">
-<externalSettings/>
-<extensions>
-<extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
-<extension id="com.atmel.avr.toolchain.avr32gcc.elf32-avr32" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-</extensions>
-</storageModule>
-<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-<configuration artifactName="wifiHD" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="AVR32 Standalone release configuration" id="avr32.managedbuild.config.gnu.exe.release.1761605428" name="Release" parent="avr32.managedbuild.config.gnu.exe.release">
-<folderInfo id="avr32.managedbuild.config.gnu.exe.release.1761605428." name="/" resourcePath="">
-<toolChain id="avr32.managedbuild.toolchain.gnu.exe.release.192267767" name="32-bit AVR/GNU C/C++ Toolchain" superClass="avr32.managedbuild.toolchain.gnu.exe.release">
-<targetPlatform id="avr32.managedbuild.target.gnu.platform.exe.release.1727872047" name="%PlatformName.Dbg" superClass="avr32.managedbuild.target.gnu.platform.exe.release"/>
-<builder buildPath="${workspace_loc:/wifiHD/Release}" id="avr32.managedbuild.target.gnu.builder.exe.release.1711429384" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="avr32.managedbuild.target.gnu.builder.exe.release"/>
-<tool id="avr32.managedbuild.tool.gnu.archiver.exe.release.105383899" name="32-bit AVR/GNU Archiver" superClass="avr32.managedbuild.tool.gnu.archiver.exe.release"/>
-<tool id="avr32.managedbuild.tool.gnu.cpp.compiler.exe.release.945608372" name="32-bit AVR/GNU C++ Compiler" superClass="avr32.managedbuild.tool.gnu.cpp.compiler.exe.release">
-<option id="gnu.cpp.compiler.option.optimization.level.502745007" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
-<option id="gnu.cpp.compiler.option.debugging.level.1743210246" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
-<option defaultValue="gnu.c.optimization.level.most" id="avr32.cpp.compiler.option.optimization.level.release.1516030118" name="Optimization Level" superClass="avr32.cpp.compiler.option.optimization.level.release" valueType="enumerated"/>
-<option id="avr32.cpp.compiler.option.mcu.1422527380" name="Microcontroller Unit" superClass="avr32.cpp.compiler.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.cpp.compiler.option.include.paths.866682810" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-</option>
-<option id="avr32.cpp.compiler.option.flashvault.576086454" name="Enable FlashVault support" superClass="avr32.cpp.compiler.option.flashvault" value="false" valueType="boolean"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.compiler.exe.release.1267623154" name="32-bit AVR/GNU C Compiler" superClass="avr32.managedbuild.tool.gnu.c.compiler.exe.release">
-<option defaultValue="gnu.c.optimization.level.most" id="avr32.c.compiler.option.optimization.level.release.1407195495" name="Optimization Level" superClass="avr32.c.compiler.option.optimization.level.release" value="gnu.c.optimization.level.optimize" valueType="enumerated"/>
-<option id="gnu.c.compiler.option.debugging.level.1207086846" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
-<option id="avr32.c.compiler.option.mcu.645886185" name="Microcontroller Unit" superClass="avr32.c.compiler.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.c.compiler.option.optimization.flags.1349270325" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="-fdata-sections" valueType="string"/>
-<option id="gnu.c.compiler.option.preprocessor.def.symbols.1416657670" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
-<listOptionValue builtIn="false" value="BOARD=ARDUINO"/>
-<listOptionValue builtIn="false" value="_ASSERT_ENABLE_"/>
-<listOptionValue builtIn="false" value="EXT_BOARD=SPB104"/>
-<listOptionValue builtIn="false" value="WITH_KEY"/>
-<listOptionValue builtIn="false" value="WITH_WPA"/>
-<listOptionValue builtIn="false" value="WITH_NO_DMA"/>
-<listOptionValue builtIn="false" value="DATAFLASH=1"/>
-<listOptionValue builtIn="false" value="_INFO_DEBUG_=1"/>
-</option>
-<option id="gnu.c.compiler.option.include.paths.1012245137" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="../src"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD"/>
-</option>
-<option id="avr32.c.compiler.option.flashvault.579935240" name="Enable FlashVault support" superClass="avr32.c.compiler.option.flashvault" value="false" valueType="boolean"/>
-<option id="avr32.c.compiler.option.muse-rodata-section.46188949" name="Use section .rodata for read-only data" superClass="avr32.c.compiler.option.muse-rodata-section" value="false" valueType="boolean"/>
-<option id="avr32.c.compiler.option.mforce-double-align.1255447070" name="Force double-word alignment" superClass="avr32.c.compiler.option.mforce-double-align" value="true" valueType="boolean"/>
-<inputType id="avr32.managedbuild.tool.gnu.c.compiler.input.233400464" superClass="avr32.managedbuild.tool.gnu.c.compiler.input"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.linker.exe.release.166522415" name="32-bit AVR/GNU C Linker" superClass="avr32.managedbuild.tool.gnu.c.linker.exe.release">
-<option id="avr32.c.linker.option.mcu.1388034810" name="Microcontroller Unit" superClass="avr32.c.linker.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.c.link.option.nostart.1724907067" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart" value="true" valueType="boolean"/>
-<option id="gnu.c.link.option.ldflags.870159720" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-Wl,--gc-sections -Wl,-e,_trampoline -T../src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds" valueType="string"/>
-<option id="gnu.c.link.option.paths.1927497406" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC"/>
-</option>
-<option id="gnu.c.link.option.libs.161654023" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_wl_sta_intwpa_v2.7.0"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_spi_v2.7.0"/>
-</option>
-<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.506365499" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
-<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-</inputType>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.cpp.linker.exe.release.1069051853" name="32-bit AVR/GNU C++ Linker" superClass="avr32.managedbuild.tool.gnu.cpp.linker.exe.release">
-<option id="avr32.cpp.linker.option.mcu.1425379346" name="Microcontroller Unit" superClass="avr32.cpp.linker.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.cpp.link.option.libs.672185409" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-</option>
-<option id="gnu.cpp.link.option.paths.58237415" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.assembler.exe.release.241240345" name="32-bit AVR/GNU Assembler" superClass="avr32.managedbuild.tool.gnu.assembler.exe.release">
-<option id="avr32.both.asm.option.debugging.level.1277884270" name="Debug Level" superClass="avr32.both.asm.option.debugging.level" value="avr32.both.asm.debugging.level.none" valueType="enumerated"/>
-<option id="avr32.both.asm.option.mcu.856977235" name="Microcontroller Unit" superClass="avr32.both.asm.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="gnu.both.asm.option.include.paths.1233318581" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.preprocessor.exe.release.324928388" name="32-bit AVR/GNU Preprocessing Assembler" superClass="avr32.managedbuild.tool.gnu.preprocessor.exe.release">
-<option id="avr32.both.preprocessor.option.debugging.level.1893617259" name="Debug Level" superClass="avr32.both.preprocessor.option.debugging.level" value="avr32.both.preprocessor.debugging.level.none" valueType="enumerated"/>
-<option id="avr32.both.preprocessor.option.mcu.1546028534" name="Microcontroller Unit" superClass="avr32.both.preprocessor.option.mcu" value="-mpart=uc3a1256" valueType="string"/>
-<option id="avr32.both.preprocessor.option.flags.211248019" name="Assembler flags" superClass="avr32.both.preprocessor.option.flags" value="-Wa,-g" valueType="string"/>
-<option id="avr32.both.preprocessor.option.paths.108191235" name="Include paths (-I)" superClass="avr32.both.preprocessor.option.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-<inputType id="avr32.managedbuild.tool.gnu.preprocessor.input.1319925321" superClass="avr32.managedbuild.tool.gnu.preprocessor.input"/>
-</tool>
-</toolChain>
-</folderInfo>
-<sourceEntries>
-<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<entry excluding="spb.h|httpd.h|httpd.c|platform_spi.h|clocks.c|clocks.h|nor_flash.h|nor_flash.c|wl_util.h|wl_util.c|startup.h|startup.c|ttcp.h|ttcp.c|fsdata.c|hdwireless_gif.h|http_server_gui.h|http_server_gui.c|SOFTWARE_FRAMEWORK/COMPONENTS/TOUCH|SOFTWARE_FRAMEWORK/DRIVERS/ADC|SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h|gui.c|SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC|SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY|SOFTWARE_FRAMEWORK/COMPONENTS/DISPLAY/ET024006DHU|gui_getstring.c|SOFTWARE_FRAMEWORK/BOARDS/EVK1105" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
-</sourceEntries>
-</configuration>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
-<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-<storageModule moduleId="scannerConfiguration">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445;avr32.managedbuild.config.gnu.exe.release.1761605428.53366445.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1297103917;avr32.managedbuild.tool.gnu.c.compiler.input.1475497800">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200;avr32.managedbuild.config.gnu.exe.debug.1622245200.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1012366065;avr32.managedbuild.tool.gnu.c.compiler.input.253539519">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753;avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1323919988;avr32.managedbuild.tool.gnu.c.compiler.input.253409817">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428;avr32.managedbuild.config.gnu.exe.release.1761605428.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1267623154;avr32.managedbuild.tool.gnu.c.compiler.input.233400464">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-</cconfiguration>
-<cconfiguration id="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753">
-<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753" moduleId="org.eclipse.cdt.core.settings" name="Debug_512">
-<externalSettings/>
-<extensions>
-<extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
-<extension id="com.atmel.avr.toolchain.avr32gcc.elf32-avr32" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-</extensions>
-</storageModule>
-<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-<configuration artifactName="wifiHD" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Debug version with UC3A1512" id="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753" name="Debug_512" parent="avr32.managedbuild.config.gnu.exe.debug" postannouncebuildStep="Size Before build" postbuildStep="avr32-size ${BuildArtifactFileName}" preannouncebuildStep="" prebuildStep="">
-<folderInfo id="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753." name="/" resourcePath="">
-<toolChain id="avr32.managedbuild.toolchain.gnu.exe.debug.2083074440" name="32-bit AVR/GNU C/C++ Toolchain" superClass="avr32.managedbuild.toolchain.gnu.exe.debug">
-<targetPlatform id="avr32.managedbuild.target.gnu.platform.exe.debug.38192914" name="%PlatformName.Dbg" superClass="avr32.managedbuild.target.gnu.platform.exe.debug"/>
-<builder buildPath="${workspace_loc:/wifiHD/Debug}" enableAutoBuild="false" id="avr32.managedbuild.target.gnu.builder.exe.debug.400270958" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="avr32.managedbuild.target.gnu.builder.exe.debug"/>
-<tool id="avr32.managedbuild.tool.gnu.archiver.exe.debug.1395287317" name="32-bit AVR/GNU Archiver" superClass="avr32.managedbuild.tool.gnu.archiver.exe.debug"/>
-<tool id="avr32.managedbuild.tool.gnu.cpp.compiler.exe.debug.1383760306" name="32-bit AVR/GNU C++ Compiler" superClass="avr32.managedbuild.tool.gnu.cpp.compiler.exe.debug">
-<option id="gnu.cpp.compiler.option.optimization.level.1237270418" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
-<option id="gnu.cpp.compiler.option.debugging.level.203852406" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.cpp.compiler.option.mcu.829173507" name="Microcontroller Unit" superClass="avr32.cpp.compiler.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.cpp.compiler.option.include.paths.43763334" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-</option>
-<option id="avr32.cpp.compiler.option.flashvault.1105479483" name="Enable FlashVault support" superClass="avr32.cpp.compiler.option.flashvault" value="false" valueType="boolean"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1323919988" name="32-bit AVR/GNU C Compiler" superClass="avr32.managedbuild.tool.gnu.c.compiler.exe.debug">
-<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1800930086" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" value="gnu.c.optimization.level.optimize" valueType="enumerated"/>
-<option id="gnu.c.compiler.option.debugging.level.741746123" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.c.compiler.option.mcu.783032953" name="Microcontroller Unit" superClass="avr32.c.compiler.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.c.compiler.option.optimization.flags.603264233" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="-fdata-sections" valueType="string"/>
-<option id="gnu.c.compiler.option.preprocessor.def.symbols.1502866122" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
-<listOptionValue builtIn="false" value="BOARD=ARDUINO"/>
-<listOptionValue builtIn="false" value="_APP_DEBUG_"/>
-<listOptionValue builtIn="false" value="_DEBUG_"/>
-<listOptionValue builtIn="false" value="_ASSERT_ENABLE_"/>
-<listOptionValue builtIn="false" value="EXT_BOARD=SPB104"/>
-<listOptionValue builtIn="false" value="WITH_KEY"/>
-<listOptionValue builtIn="false" value="WITH_WPA"/>
-<listOptionValue builtIn="false" value="WITH_NO_DMA"/>
-<listOptionValue builtIn="false" value="LWIP_DEBUG"/>
-<listOptionValue builtIn="false" value="_INFO_DEBUG_=1"/>
-</option>
-<option id="gnu.c.compiler.option.include.paths.1906241430" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="../src"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD"/>
-</option>
-<option id="avr32.c.compiler.option.flashvault.1472510326" name="Enable FlashVault support" superClass="avr32.c.compiler.option.flashvault" value="false" valueType="boolean"/>
-<inputType id="avr32.managedbuild.tool.gnu.c.compiler.input.253409817" superClass="avr32.managedbuild.tool.gnu.c.compiler.input"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.linker.exe.debug.626271173" name="32-bit AVR/GNU C Linker" superClass="avr32.managedbuild.tool.gnu.c.linker.exe.debug">
-<option id="avr32.c.linker.option.mcu.538638440" name="Microcontroller Unit" superClass="avr32.c.linker.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.c.link.option.nostart.1656241739" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart" value="true" valueType="boolean"/>
-<option id="gnu.c.link.option.ldflags.87118628" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-Wl,--gc-sections" valueType="string"/>
-<option id="gnu.c.link.option.paths.812828263" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.1.1/UCR2/GCC"/>
-</option>
-<option id="gnu.c.link.option.libs.1653832984" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_spi_standalone_v2.1.1"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_wl_standalone_v2.1.1"/>
-</option>
-<option id="gnu.c.link.option.strip.877150339" name="Omit all symbol information (-s)" superClass="gnu.c.link.option.strip" value="false" valueType="boolean"/>
-<option id="avr32.c.linker.option.gc-sections.1011245889" name="Garbage collect unused sections" superClass="avr32.c.linker.option.gc-sections" value="true" valueType="boolean"/>
-<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1861379244" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
-<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-</inputType>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.cpp.linker.exe.debug.1598170753" name="32-bit AVR/GNU C++ Linker" superClass="avr32.managedbuild.tool.gnu.cpp.linker.exe.debug">
-<option id="avr32.cpp.linker.option.mcu.1325073325" name="Microcontroller Unit" superClass="avr32.cpp.linker.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.cpp.link.option.libs.124073665" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-</option>
-<option id="gnu.cpp.link.option.paths.550636764" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.assembler.exe.debug.417825307" name="32-bit AVR/GNU Assembler" superClass="avr32.managedbuild.tool.gnu.assembler.exe.debug">
-<option id="avr32.both.asm.option.debugging.level.806412699" name="Debug Level" superClass="avr32.both.asm.option.debugging.level" value="avr32.both.asm.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.both.asm.option.mcu.1562959054" name="Microcontroller Unit" superClass="avr32.both.asm.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.both.asm.option.include.paths.1195320391" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.preprocessor.exe.debug.274353966" name="32-bit AVR/GNU Preprocessing Assembler" superClass="avr32.managedbuild.tool.gnu.preprocessor.exe.debug">
-<option id="avr32.both.preprocessor.option.debugging.level.8654492" name="Debug Level" superClass="avr32.both.preprocessor.option.debugging.level" value="avr32.both.preprocessor.debugging.level.max" valueType="enumerated"/>
-<option id="avr32.both.preprocessor.option.mcu.1357262899" name="Microcontroller Unit" superClass="avr32.both.preprocessor.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="avr32.both.preprocessor.option.flags.1867526301" name="Assembler flags" superClass="avr32.both.preprocessor.option.flags" value="-Wa,-g" valueType="string"/>
-<option id="avr32.both.preprocessor.option.paths.703046204" name="Include paths (-I)" superClass="avr32.both.preprocessor.option.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-<inputType id="avr32.managedbuild.tool.gnu.preprocessor.input.1411171721" superClass="avr32.managedbuild.tool.gnu.preprocessor.input"/>
-</tool>
-</toolChain>
-</folderInfo>
-<sourceEntries>
-<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<entry excluding="spb.h|httpd.h|httpd.c|platform_spi.h|clocks.c|clocks.h|nor_flash.h|nor_flash.c|wl_util.h|wl_util.c|startup.h|startup.c|ttcp.h|ttcp.c|fsdata.c|hdwireless_gif.h|http_server_gui.h|http_server_gui.c|SOFTWARE_FRAMEWORK/COMPONENTS/TOUCH|SOFTWARE_FRAMEWORK/DRIVERS/ADC|SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h|gui.c|SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC|SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY|SOFTWARE_FRAMEWORK/COMPONENTS/DISPLAY/ET024006DHU|gui_getstring.c|SOFTWARE_FRAMEWORK/BOARDS/EVK1105" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
-</sourceEntries>
-</configuration>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
-<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-<storageModule moduleId="scannerConfiguration">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445;avr32.managedbuild.config.gnu.exe.release.1761605428.53366445.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1297103917;avr32.managedbuild.tool.gnu.c.compiler.input.1475497800">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200;avr32.managedbuild.config.gnu.exe.debug.1622245200.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1012366065;avr32.managedbuild.tool.gnu.c.compiler.input.253539519">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753;avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1323919988;avr32.managedbuild.tool.gnu.c.compiler.input.253409817">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428;avr32.managedbuild.config.gnu.exe.release.1761605428.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1267623154;avr32.managedbuild.tool.gnu.c.compiler.input.233400464">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-</cconfiguration>
-<cconfiguration id="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445">
-<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445" moduleId="org.eclipse.cdt.core.settings" name="Release_512">
-<externalSettings/>
-<extensions>
-<extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
-<extension id="com.atmel.avr.toolchain.avr32gcc.elf32-avr32" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-</extensions>
-</storageModule>
-<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-<configuration artifactName="wifiHD" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Release version for UC3A1512" id="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445" name="Release_512" parent="avr32.managedbuild.config.gnu.exe.release">
-<folderInfo id="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445." name="/" resourcePath="">
-<toolChain id="avr32.managedbuild.toolchain.gnu.exe.release.567531772" name="32-bit AVR/GNU C/C++ Toolchain" superClass="avr32.managedbuild.toolchain.gnu.exe.release">
-<targetPlatform id="avr32.managedbuild.target.gnu.platform.exe.release.316254328" name="%PlatformName.Dbg" superClass="avr32.managedbuild.target.gnu.platform.exe.release"/>
-<builder buildPath="${workspace_loc:/wifiHD/Release}" id="avr32.managedbuild.target.gnu.builder.exe.release.1357743529" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="avr32.managedbuild.target.gnu.builder.exe.release"/>
-<tool id="avr32.managedbuild.tool.gnu.archiver.exe.release.761598511" name="32-bit AVR/GNU Archiver" superClass="avr32.managedbuild.tool.gnu.archiver.exe.release"/>
-<tool id="avr32.managedbuild.tool.gnu.cpp.compiler.exe.release.137271919" name="32-bit AVR/GNU C++ Compiler" superClass="avr32.managedbuild.tool.gnu.cpp.compiler.exe.release">
-<option id="gnu.cpp.compiler.option.optimization.level.1518389785" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
-<option id="gnu.cpp.compiler.option.debugging.level.1317941226" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
-<option defaultValue="gnu.c.optimization.level.most" id="avr32.cpp.compiler.option.optimization.level.release.888183134" name="Optimization Level" superClass="avr32.cpp.compiler.option.optimization.level.release" valueType="enumerated"/>
-<option id="avr32.cpp.compiler.option.mcu.501397069" name="Microcontroller Unit" superClass="avr32.cpp.compiler.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.cpp.compiler.option.include.paths.721469775" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-</option>
-<option id="avr32.cpp.compiler.option.flashvault.194576687" name="Enable FlashVault support" superClass="avr32.cpp.compiler.option.flashvault" value="false" valueType="boolean"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.compiler.exe.release.1297103917" name="32-bit AVR/GNU C Compiler" superClass="avr32.managedbuild.tool.gnu.c.compiler.exe.release">
-<option defaultValue="gnu.c.optimization.level.most" id="avr32.c.compiler.option.optimization.level.release.920485052" name="Optimization Level" superClass="avr32.c.compiler.option.optimization.level.release" value="gnu.c.optimization.level.optimize" valueType="enumerated"/>
-<option id="gnu.c.compiler.option.debugging.level.601864900" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
-<option id="avr32.c.compiler.option.mcu.1939612987" name="Microcontroller Unit" superClass="avr32.c.compiler.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.c.compiler.option.optimization.flags.1605444587" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="-fdata-sections" valueType="string"/>
-<option id="gnu.c.compiler.option.preprocessor.def.symbols.2051999757" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
-<listOptionValue builtIn="false" value="BOARD=ARDUINO"/>
-<listOptionValue builtIn="false" value="_ASSERT_ENABLE_"/>
-<listOptionValue builtIn="false" value="EXT_BOARD=SPB104"/>
-<listOptionValue builtIn="false" value="WITH_KEY"/>
-<listOptionValue builtIn="false" value="WITH_WPA"/>
-<listOptionValue builtIn="false" value="WITH_NO_DMA"/>
-<listOptionValue builtIn="false" value="LWIP_DEBUG"/>
-<listOptionValue builtIn="false" value="_INFO_DEBUG_=1"/>
-</option>
-<option id="gnu.c.compiler.option.include.paths.193739172" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="../src"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD"/>
-</option>
-<option id="avr32.c.compiler.option.flashvault.706805068" name="Enable FlashVault support" superClass="avr32.c.compiler.option.flashvault" value="false" valueType="boolean"/>
-<inputType id="avr32.managedbuild.tool.gnu.c.compiler.input.1475497800" superClass="avr32.managedbuild.tool.gnu.c.compiler.input"/>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.c.linker.exe.release.1288338195" name="32-bit AVR/GNU C Linker" superClass="avr32.managedbuild.tool.gnu.c.linker.exe.release">
-<option id="avr32.c.linker.option.mcu.1925600688" name="Microcontroller Unit" superClass="avr32.c.linker.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.c.link.option.nostart.2039417085" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart" value="true" valueType="boolean"/>
-<option id="gnu.c.link.option.ldflags.1722356522" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-Wl,--gc-sections" valueType="string"/>
-<option id="gnu.c.link.option.paths.1959265164" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.1.1/UCR2/GCC"/>
-</option>
-<option id="gnu.c.link.option.libs.1049639323" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_spi_standalone_v2.1.1"/>
-<listOptionValue builtIn="false" value="_ucr2_hd_wl_standalone_v2.1.1"/>
-</option>
-<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.632786917" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
-<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-</inputType>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.cpp.linker.exe.release.524443971" name="32-bit AVR/GNU C++ Linker" superClass="avr32.managedbuild.tool.gnu.cpp.linker.exe.release">
-<option id="avr32.cpp.linker.option.mcu.1441351036" name="Microcontroller Unit" superClass="avr32.cpp.linker.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.cpp.link.option.libs.357630882" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
-<listOptionValue builtIn="false" value="newlib_addons-at32ucr2-speed_opt"/>
-</option>
-<option id="gnu.cpp.link.option.paths.1766302960" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.assembler.exe.release.1716843860" name="32-bit AVR/GNU Assembler" superClass="avr32.managedbuild.tool.gnu.assembler.exe.release">
-<option id="avr32.both.asm.option.debugging.level.1012502787" name="Debug Level" superClass="avr32.both.asm.option.debugging.level" value="avr32.both.asm.debugging.level.none" valueType="enumerated"/>
-<option id="avr32.both.asm.option.mcu.1121971446" name="Microcontroller Unit" superClass="avr32.both.asm.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="gnu.both.asm.option.include.paths.1772545555" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-</tool>
-<tool id="avr32.managedbuild.tool.gnu.preprocessor.exe.release.1758206047" name="32-bit AVR/GNU Preprocessing Assembler" superClass="avr32.managedbuild.tool.gnu.preprocessor.exe.release">
-<option id="avr32.both.preprocessor.option.debugging.level.1064888815" name="Debug Level" superClass="avr32.both.preprocessor.option.debugging.level" value="avr32.both.preprocessor.debugging.level.none" valueType="enumerated"/>
-<option id="avr32.both.preprocessor.option.mcu.1280537649" name="Microcontroller Unit" superClass="avr32.both.preprocessor.option.mcu" value="-mpart=uc3a1512" valueType="string"/>
-<option id="avr32.both.preprocessor.option.flags.1754897169" name="Assembler flags" superClass="avr32.both.preprocessor.option.flags" value="-Wa,-g" valueType="string"/>
-<option id="avr32.both.preprocessor.option.paths.213343763" name="Include paths (-I)" superClass="avr32.both.preprocessor.option.paths" valueType="includePath">
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/TC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/USART"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/PM"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC"/>
-<listOptionValue builtIn="false" value="../src/CONFIG"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/UTILS"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC"/>
-<listOptionValue builtIn="false" value="../src/SOFTWARE_FRAMEWORK/BOARDS"/>
-</option>
-<inputType id="avr32.managedbuild.tool.gnu.preprocessor.input.1134352373" superClass="avr32.managedbuild.tool.gnu.preprocessor.input"/>
-</tool>
-</toolChain>
-</folderInfo>
-<sourceEntries>
-<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX"/>
-<entry excluding="spb.h|httpd.h|httpd.c|platform_spi.h|clocks.c|clocks.h|nor_flash.h|nor_flash.c|wl_util.h|wl_util.c|startup.h|startup.c|ttcp.h|ttcp.c|fsdata.c|hdwireless_gif.h|http_server_gui.h|http_server_gui.c|SOFTWARE_FRAMEWORK/COMPONENTS/TOUCH|SOFTWARE_FRAMEWORK/DRIVERS/ADC|SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h|gui.c|SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC|SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY|SOFTWARE_FRAMEWORK/COMPONENTS/DISPLAY/ET024006DHU|gui_getstring.c|SOFTWARE_FRAMEWORK/BOARDS/EVK1105" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
-</sourceEntries>
-</configuration>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
-<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-<storageModule moduleId="scannerConfiguration">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428.53366445;avr32.managedbuild.config.gnu.exe.release.1761605428.53366445.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1297103917;avr32.managedbuild.tool.gnu.c.compiler.input.1475497800">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200;avr32.managedbuild.config.gnu.exe.debug.1622245200.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1012366065;avr32.managedbuild.tool.gnu.c.compiler.input.253539519">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753;avr32.managedbuild.config.gnu.exe.debug.1622245200.609577753.;avr32.managedbuild.tool.gnu.c.compiler.exe.debug.1323919988;avr32.managedbuild.tool.gnu.c.compiler.input.253409817">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-<scannerConfigBuildInfo instanceId="avr32.managedbuild.config.gnu.exe.release.1761605428;avr32.managedbuild.config.gnu.exe.release.1761605428.;avr32.managedbuild.tool.gnu.c.compiler.exe.release.1267623154;avr32.managedbuild.tool.gnu.c.compiler.input.233400464">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC"/>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32ManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32StandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="com.atmel.avr32.debug.AVR32LinuxStandardMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-mpart=${part} -E -P -v -dD ${plugin_state_location}/${specs_file}" command="avr32-linux-g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-</scannerConfigBuildInfo>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-</cconfiguration>
-</storageModule>
-<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-<project id="wifiHD.avr32.managedbuild.target.gnu.exe_2.0.1.351102936" name="32-bit AVR/GNU Executable" projectType="avr32.managedbuild.target.gnu.exe_2.0.1"/>
-</storageModule>
-</cproject>
diff --git a/firmwares/wifishield/wifiHD/.project b/firmwares/wifishield/wifiHD/.project
deleted file mode 100644
index c284bab..0000000
--- a/firmwares/wifishield/wifiHD/.project
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>wifiHD</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
- <triggers>clean,full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>?name?</key>
- <value></value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.append_environment</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.buildArguments</key>
- <value></value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.buildCommand</key>
- <value>make</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.buildLocation</key>
- <value>${workspace_loc:/wifiHD/Debug}</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.contents</key>
- <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
- <value>false</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.enableFullBuild</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.stopOnError</key>
- <value>true</value>
- </dictionary>
- <dictionary>
- <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
- <value>true</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.atmel.avr32.core.nature</nature>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- </natures>
- <linkedResources>
- <link>
- <name>UC3 Software Framework</name>
- <type>2</type>
- <locationURI>framework:/com.atmel.avr32.sf.uc3</locationURI>
- </link>
- </linkedResources>
-</projectDescription>
diff --git a/firmwares/wifishield/wifiHD/Release/wifiHD.elf b/firmwares/wifishield/wifiHD/Release/wifiHD.elf
deleted file mode 100644
index d4a8bde..0000000
--- a/firmwares/wifishield/wifiHD/Release/wifiHD.elf
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/Release/wifiHD.hex b/firmwares/wifishield/wifiHD/Release/wifiHD.hex
deleted file mode 100644
index 0122587..0000000
--- a/firmwares/wifishield/wifiHD/Release/wifiHD.hex
+++ /dev/null
@@ -1,16358 +0,0 @@
-:0200000480007A
-:10000000E08F100000000000000000000000000071
-:1000100000000000000000000000000000000000E0
-:1000200000000000000000000000000000000000D0
-:1000300000000000000000000000000000000000C0
-:1000400000000000000000000000000000000000B0
-:1000500000000000000000000000000000000000A0
-:100060000000000000000000000000000000000090
-:100070000000000000000000000000000000000080
-:100080000000000000000000000000000000000070
-:100090000000000000000000000000000000000060
-:1000A0000000000000000000000000000000000050
-:1000B0000000000000000000000000000000000040
-:1000C0000000000000000000000000000000000030
-:1000D0000000000000000000000000000000000020
-:1000E0000000000000000000000000000000000010
-:1000F0000000000000000000000000000000000000
-:1001000000000000000000000000000000000000EF
-:1001100000000000000000000000000000000000DF
-:1001200000000000000000000000000000000000CF
-:1001300000000000000000000000000000000000BF
-:1001400000000000000000000000000000000000AF
-:10015000000000000000000000000000000000009F
-:10016000000000000000000000000000000000008F
-:10017000000000000000000000000000000000007F
-:10018000000000000000000000000000000000006F
-:10019000000000000000000000000000000000005F
-:1001A000000000000000000000000000000000004F
-:1001B000000000000000000000000000000000003F
-:1001C000000000000000000000000000000000002F
-:1001D000000000000000000000000000000000001F
-:1001E000000000000000000000000000000000000F
-:1001F00000000000000000000000000000000000FF
-:1002000000000000000000000000000000000000EE
-:1002100000000000000000000000000000000000DE
-:1002200000000000000000000000000000000000CE
-:1002300000000000000000000000000000000000BE
-:1002400000000000000000000000000000000000AE
-:10025000000000000000000000000000000000009E
-:10026000000000000000000000000000000000008E
-:10027000000000000000000000000000000000007E
-:10028000000000000000000000000000000000006E
-:10029000000000000000000000000000000000005E
-:1002A000000000000000000000000000000000004E
-:1002B000000000000000000000000000000000003E
-:1002C000000000000000000000000000000000002E
-:1002D000000000000000000000000000000000001E
-:1002E000000000000000000000000000000000000E
-:1002F00000000000000000000000000000000000FE
-:1003000000000000000000000000000000000000ED
-:1003100000000000000000000000000000000000DD
-:1003200000000000000000000000000000000000CD
-:1003300000000000000000000000000000000000BD
-:1003400000000000000000000000000000000000AD
-:10035000000000000000000000000000000000009D
-:10036000000000000000000000000000000000008D
-:10037000000000000000000000000000000000007D
-:10038000000000000000000000000000000000006D
-:10039000000000000000000000000000000000005D
-:1003A000000000000000000000000000000000004D
-:1003B000000000000000000000000000000000003D
-:1003C000000000000000000000000000000000002D
-:1003D000000000000000000000000000000000001D
-:1003E000000000000000000000000000000000000D
-:1003F00000000000000000000000000000000000FD
-:1004000000000000000000000000000000000000EC
-:1004100000000000000000000000000000000000DC
-:1004200000000000000000000000000000000000CC
-:1004300000000000000000000000000000000000BC
-:1004400000000000000000000000000000000000AC
-:10045000000000000000000000000000000000009C
-:10046000000000000000000000000000000000008C
-:10047000000000000000000000000000000000007C
-:10048000000000000000000000000000000000006C
-:10049000000000000000000000000000000000005C
-:1004A000000000000000000000000000000000004C
-:1004B000000000000000000000000000000000003C
-:1004C000000000000000000000000000000000002C
-:1004D000000000000000000000000000000000001C
-:1004E000000000000000000000000000000000000C
-:1004F00000000000000000000000000000000000FC
-:1005000000000000000000000000000000000000EB
-:1005100000000000000000000000000000000000DB
-:1005200000000000000000000000000000000000CB
-:1005300000000000000000000000000000000000BB
-:1005400000000000000000000000000000000000AB
-:10055000000000000000000000000000000000009B
-:10056000000000000000000000000000000000008B
-:10057000000000000000000000000000000000007B
-:10058000000000000000000000000000000000006B
-:10059000000000000000000000000000000000005B
-:1005A000000000000000000000000000000000004B
-:1005B000000000000000000000000000000000003B
-:1005C000000000000000000000000000000000002B
-:1005D000000000000000000000000000000000001B
-:1005E000000000000000000000000000000000000B
-:1005F00000000000000000000000000000000000FB
-:1006000000000000000000000000000000000000EA
-:1006100000000000000000000000000000000000DA
-:1006200000000000000000000000000000000000CA
-:1006300000000000000000000000000000000000BA
-:1006400000000000000000000000000000000000AA
-:10065000000000000000000000000000000000009A
-:10066000000000000000000000000000000000008A
-:10067000000000000000000000000000000000007A
-:10068000000000000000000000000000000000006A
-:10069000000000000000000000000000000000005A
-:1006A000000000000000000000000000000000004A
-:1006B000000000000000000000000000000000003A
-:1006C000000000000000000000000000000000002A
-:1006D000000000000000000000000000000000001A
-:1006E000000000000000000000000000000000000A
-:1006F00000000000000000000000000000000000FA
-:1007000000000000000000000000000000000000E9
-:1007100000000000000000000000000000000000D9
-:1007200000000000000000000000000000000000C9
-:1007300000000000000000000000000000000000B9
-:1007400000000000000000000000000000000000A9
-:100750000000000000000000000000000000000099
-:100760000000000000000000000000000000000089
-:100770000000000000000000000000000000000079
-:100780000000000000000000000000000000000069
-:100790000000000000000000000000000000000059
-:1007A0000000000000000000000000000000000049
-:1007B0000000000000000000000000000000000039
-:1007C0000000000000000000000000000000000029
-:1007D0000000000000000000000000000000000019
-:1007E0000000000000000000000000000000000009
-:1007F00000000000000000000000000000000000F9
-:1008000000000000000000000000000000000000E8
-:1008100000000000000000000000000000000000D8
-:1008200000000000000000000000000000000000C8
-:1008300000000000000000000000000000000000B8
-:1008400000000000000000000000000000000000A8
-:100850000000000000000000000000000000000098
-:100860000000000000000000000000000000000088
-:100870000000000000000000000000000000000078
-:100880000000000000000000000000000000000068
-:100890000000000000000000000000000000000058
-:1008A0000000000000000000000000000000000048
-:1008B0000000000000000000000000000000000038
-:1008C0000000000000000000000000000000000028
-:1008D0000000000000000000000000000000000018
-:1008E0000000000000000000000000000000000008
-:1008F00000000000000000000000000000000000F8
-:1009000000000000000000000000000000000000E7
-:1009100000000000000000000000000000000000D7
-:1009200000000000000000000000000000000000C7
-:1009300000000000000000000000000000000000B7
-:1009400000000000000000000000000000000000A7
-:100950000000000000000000000000000000000097
-:100960000000000000000000000000000000000087
-:100970000000000000000000000000000000000077
-:100980000000000000000000000000000000000067
-:100990000000000000000000000000000000000057
-:1009A0000000000000000000000000000000000047
-:1009B0000000000000000000000000000000000037
-:1009C0000000000000000000000000000000000027
-:1009D0000000000000000000000000000000000017
-:1009E0000000000000000000000000000000000007
-:1009F00000000000000000000000000000000000F7
-:100A000000000000000000000000000000000000E6
-:100A100000000000000000000000000000000000D6
-:100A200000000000000000000000000000000000C6
-:100A300000000000000000000000000000000000B6
-:100A400000000000000000000000000000000000A6
-:100A50000000000000000000000000000000000096
-:100A60000000000000000000000000000000000086
-:100A70000000000000000000000000000000000076
-:100A80000000000000000000000000000000000066
-:100A90000000000000000000000000000000000056
-:100AA0000000000000000000000000000000000046
-:100AB0000000000000000000000000000000000036
-:100AC0000000000000000000000000000000000026
-:100AD0000000000000000000000000000000000016
-:100AE0000000000000000000000000000000000006
-:100AF00000000000000000000000000000000000F6
-:100B000000000000000000000000000000000000E5
-:100B100000000000000000000000000000000000D5
-:100B200000000000000000000000000000000000C5
-:100B300000000000000000000000000000000000B5
-:100B400000000000000000000000000000000000A5
-:100B50000000000000000000000000000000000095
-:100B60000000000000000000000000000000000085
-:100B70000000000000000000000000000000000075
-:100B80000000000000000000000000000000000065
-:100B90000000000000000000000000000000000055
-:100BA0000000000000000000000000000000000045
-:100BB0000000000000000000000000000000000035
-:100BC0000000000000000000000000000000000025
-:100BD0000000000000000000000000000000000015
-:100BE0000000000000000000000000000000000005
-:100BF00000000000000000000000000000000000F5
-:100C000000000000000000000000000000000000E4
-:100C100000000000000000000000000000000000D4
-:100C200000000000000000000000000000000000C4
-:100C300000000000000000000000000000000000B4
-:100C400000000000000000000000000000000000A4
-:100C50000000000000000000000000000000000094
-:100C60000000000000000000000000000000000084
-:100C70000000000000000000000000000000000074
-:100C80000000000000000000000000000000000064
-:100C90000000000000000000000000000000000054
-:100CA0000000000000000000000000000000000044
-:100CB0000000000000000000000000000000000034
-:100CC0000000000000000000000000000000000024
-:100CD0000000000000000000000000000000000014
-:100CE0000000000000000000000000000000000004
-:100CF00000000000000000000000000000000000F4
-:100D000000000000000000000000000000000000E3
-:100D100000000000000000000000000000000000D3
-:100D200000000000000000000000000000000000C3
-:100D300000000000000000000000000000000000B3
-:100D400000000000000000000000000000000000A3
-:100D50000000000000000000000000000000000093
-:100D60000000000000000000000000000000000083
-:100D70000000000000000000000000000000000073
-:100D80000000000000000000000000000000000063
-:100D90000000000000000000000000000000000053
-:100DA0000000000000000000000000000000000043
-:100DB0000000000000000000000000000000000033
-:100DC0000000000000000000000000000000000023
-:100DD0000000000000000000000000000000000013
-:100DE0000000000000000000000000000000000003
-:100DF00000000000000000000000000000000000F3
-:100E000000000000000000000000000000000000E2
-:100E100000000000000000000000000000000000D2
-:100E200000000000000000000000000000000000C2
-:100E300000000000000000000000000000000000B2
-:100E400000000000000000000000000000000000A2
-:100E50000000000000000000000000000000000092
-:100E60000000000000000000000000000000000082
-:100E70000000000000000000000000000000000072
-:100E80000000000000000000000000000000000062
-:100E90000000000000000000000000000000000052
-:100EA0000000000000000000000000000000000042
-:100EB0000000000000000000000000000000000032
-:100EC0000000000000000000000000000000000022
-:100ED0000000000000000000000000000000000012
-:100EE0000000000000000000000000000000000002
-:100EF00000000000000000000000000000000000F2
-:100F000000000000000000000000000000000000E1
-:100F100000000000000000000000000000000000D1
-:100F200000000000000000000000000000000000C1
-:100F300000000000000000000000000000000000B1
-:100F400000000000000000000000000000000000A1
-:100F50000000000000000000000000000000000091
-:100F60000000000000000000000000000000000081
-:100F70000000000000000000000000000000000071
-:100F80000000000000000000000000000000000061
-:100F90000000000000000000000000000000000051
-:100FA0000000000000000000000000000000000041
-:100FB0000000000000000000000000000000000031
-:100FC0000000000000000000000000000000000021
-:100FD0000000000000000000000000000000000011
-:100FE0000000000000000000000000000000000001
-:100FF00000000000000000000000000000000000F1
-:1010000000000000000000000000000000000000E0
-:1010100000000000000000000000000000000000D0
-:1010200000000000000000000000000000000000C0
-:1010300000000000000000000000000000000000B0
-:1010400000000000000000000000000000000000A0
-:101050000000000000000000000000000000000090
-:101060000000000000000000000000000000000080
-:101070000000000000000000000000000000000070
-:101080000000000000000000000000000000000060
-:101090000000000000000000000000000000000050
-:1010A0000000000000000000000000000000000040
-:1010B0000000000000000000000000000000000030
-:1010C0000000000000000000000000000000000020
-:1010D0000000000000000000000000000000000010
-:1010E0000000000000000000000000000000000000
-:1010F00000000000000000000000000000000000F0
-:1011000000000000000000000000000000000000DF
-:1011100000000000000000000000000000000000CF
-:1011200000000000000000000000000000000000BF
-:1011300000000000000000000000000000000000AF
-:10114000000000000000000000000000000000009F
-:10115000000000000000000000000000000000008F
-:10116000000000000000000000000000000000007F
-:10117000000000000000000000000000000000006F
-:10118000000000000000000000000000000000005F
-:10119000000000000000000000000000000000004F
-:1011A000000000000000000000000000000000003F
-:1011B000000000000000000000000000000000002F
-:1011C000000000000000000000000000000000001F
-:1011D000000000000000000000000000000000000F
-:1011E00000000000000000000000000000000000FF
-:1011F00000000000000000000000000000000000EF
-:1012000000000000000000000000000000000000DE
-:1012100000000000000000000000000000000000CE
-:1012200000000000000000000000000000000000BE
-:1012300000000000000000000000000000000000AE
-:10124000000000000000000000000000000000009E
-:10125000000000000000000000000000000000008E
-:10126000000000000000000000000000000000007E
-:10127000000000000000000000000000000000006E
-:10128000000000000000000000000000000000005E
-:10129000000000000000000000000000000000004E
-:1012A000000000000000000000000000000000003E
-:1012B000000000000000000000000000000000002E
-:1012C000000000000000000000000000000000001E
-:1012D000000000000000000000000000000000000E
-:1012E00000000000000000000000000000000000FE
-:1012F00000000000000000000000000000000000EE
-:1013000000000000000000000000000000000000DD
-:1013100000000000000000000000000000000000CD
-:1013200000000000000000000000000000000000BD
-:1013300000000000000000000000000000000000AD
-:10134000000000000000000000000000000000009D
-:10135000000000000000000000000000000000008D
-:10136000000000000000000000000000000000007D
-:10137000000000000000000000000000000000006D
-:10138000000000000000000000000000000000005D
-:10139000000000000000000000000000000000004D
-:1013A000000000000000000000000000000000003D
-:1013B000000000000000000000000000000000002D
-:1013C000000000000000000000000000000000001D
-:1013D000000000000000000000000000000000000D
-:1013E00000000000000000000000000000000000FD
-:1013F00000000000000000000000000000000000ED
-:1014000000000000000000000000000000000000DC
-:1014100000000000000000000000000000000000CC
-:1014200000000000000000000000000000000000BC
-:1014300000000000000000000000000000000000AC
-:10144000000000000000000000000000000000009C
-:10145000000000000000000000000000000000008C
-:10146000000000000000000000000000000000007C
-:10147000000000000000000000000000000000006C
-:10148000000000000000000000000000000000005C
-:10149000000000000000000000000000000000004C
-:1014A000000000000000000000000000000000003C
-:1014B000000000000000000000000000000000002C
-:1014C000000000000000000000000000000000001C
-:1014D000000000000000000000000000000000000C
-:1014E00000000000000000000000000000000000FC
-:1014F00000000000000000000000000000000000EC
-:1015000000000000000000000000000000000000DB
-:1015100000000000000000000000000000000000CB
-:1015200000000000000000000000000000000000BB
-:1015300000000000000000000000000000000000AB
-:10154000000000000000000000000000000000009B
-:10155000000000000000000000000000000000008B
-:10156000000000000000000000000000000000007B
-:10157000000000000000000000000000000000006B
-:10158000000000000000000000000000000000005B
-:10159000000000000000000000000000000000004B
-:1015A000000000000000000000000000000000003B
-:1015B000000000000000000000000000000000002B
-:1015C000000000000000000000000000000000001B
-:1015D000000000000000000000000000000000000B
-:1015E00000000000000000000000000000000000FB
-:1015F00000000000000000000000000000000000EB
-:1016000000000000000000000000000000000000DA
-:1016100000000000000000000000000000000000CA
-:1016200000000000000000000000000000000000BA
-:1016300000000000000000000000000000000000AA
-:10164000000000000000000000000000000000009A
-:10165000000000000000000000000000000000008A
-:10166000000000000000000000000000000000007A
-:10167000000000000000000000000000000000006A
-:10168000000000000000000000000000000000005A
-:10169000000000000000000000000000000000004A
-:1016A000000000000000000000000000000000003A
-:1016B000000000000000000000000000000000002A
-:1016C000000000000000000000000000000000001A
-:1016D000000000000000000000000000000000000A
-:1016E00000000000000000000000000000000000FA
-:1016F00000000000000000000000000000000000EA
-:1017000000000000000000000000000000000000D9
-:1017100000000000000000000000000000000000C9
-:1017200000000000000000000000000000000000B9
-:1017300000000000000000000000000000000000A9
-:101740000000000000000000000000000000000099
-:101750000000000000000000000000000000000089
-:101760000000000000000000000000000000000079
-:101770000000000000000000000000000000000069
-:101780000000000000000000000000000000000059
-:101790000000000000000000000000000000000049
-:1017A0000000000000000000000000000000000039
-:1017B0000000000000000000000000000000000029
-:1017C0000000000000000000000000000000000019
-:1017D0000000000000000000000000000000000009
-:1017E00000000000000000000000000000000000F9
-:1017F00000000000000000000000000000000000E9
-:1018000000000000000000000000000000000000D8
-:1018100000000000000000000000000000000000C8
-:1018200000000000000000000000000000000000B8
-:1018300000000000000000000000000000000000A8
-:101840000000000000000000000000000000000098
-:101850000000000000000000000000000000000088
-:101860000000000000000000000000000000000078
-:101870000000000000000000000000000000000068
-:101880000000000000000000000000000000000058
-:101890000000000000000000000000000000000048
-:1018A0000000000000000000000000000000000038
-:1018B0000000000000000000000000000000000028
-:1018C0000000000000000000000000000000000018
-:1018D0000000000000000000000000000000000008
-:1018E00000000000000000000000000000000000F8
-:1018F00000000000000000000000000000000000E8
-:1019000000000000000000000000000000000000D7
-:1019100000000000000000000000000000000000C7
-:1019200000000000000000000000000000000000B7
-:1019300000000000000000000000000000000000A7
-:101940000000000000000000000000000000000097
-:101950000000000000000000000000000000000087
-:101960000000000000000000000000000000000077
-:101970000000000000000000000000000000000067
-:101980000000000000000000000000000000000057
-:101990000000000000000000000000000000000047
-:1019A0000000000000000000000000000000000037
-:1019B0000000000000000000000000000000000027
-:1019C0000000000000000000000000000000000017
-:1019D0000000000000000000000000000000000007
-:1019E00000000000000000000000000000000000F7
-:1019F00000000000000000000000000000000000E7
-:101A000000000000000000000000000000000000D6
-:101A100000000000000000000000000000000000C6
-:101A200000000000000000000000000000000000B6
-:101A300000000000000000000000000000000000A6
-:101A40000000000000000000000000000000000096
-:101A50000000000000000000000000000000000086
-:101A60000000000000000000000000000000000076
-:101A70000000000000000000000000000000000066
-:101A80000000000000000000000000000000000056
-:101A90000000000000000000000000000000000046
-:101AA0000000000000000000000000000000000036
-:101AB0000000000000000000000000000000000026
-:101AC0000000000000000000000000000000000016
-:101AD0000000000000000000000000000000000006
-:101AE00000000000000000000000000000000000F6
-:101AF00000000000000000000000000000000000E6
-:101B000000000000000000000000000000000000D5
-:101B100000000000000000000000000000000000C5
-:101B200000000000000000000000000000000000B5
-:101B300000000000000000000000000000000000A5
-:101B40000000000000000000000000000000000095
-:101B50000000000000000000000000000000000085
-:101B60000000000000000000000000000000000075
-:101B70000000000000000000000000000000000065
-:101B80000000000000000000000000000000000055
-:101B90000000000000000000000000000000000045
-:101BA0000000000000000000000000000000000035
-:101BB0000000000000000000000000000000000025
-:101BC0000000000000000000000000000000000015
-:101BD0000000000000000000000000000000000005
-:101BE00000000000000000000000000000000000F5
-:101BF00000000000000000000000000000000000E5
-:101C000000000000000000000000000000000000D4
-:101C100000000000000000000000000000000000C4
-:101C200000000000000000000000000000000000B4
-:101C300000000000000000000000000000000000A4
-:101C40000000000000000000000000000000000094
-:101C50000000000000000000000000000000000084
-:101C60000000000000000000000000000000000074
-:101C70000000000000000000000000000000000064
-:101C80000000000000000000000000000000000054
-:101C90000000000000000000000000000000000044
-:101CA0000000000000000000000000000000000034
-:101CB0000000000000000000000000000000000024
-:101CC0000000000000000000000000000000000014
-:101CD0000000000000000000000000000000000004
-:101CE00000000000000000000000000000000000F4
-:101CF00000000000000000000000000000000000E4
-:101D000000000000000000000000000000000000D3
-:101D100000000000000000000000000000000000C3
-:101D200000000000000000000000000000000000B3
-:101D300000000000000000000000000000000000A3
-:101D40000000000000000000000000000000000093
-:101D50000000000000000000000000000000000083
-:101D60000000000000000000000000000000000073
-:101D70000000000000000000000000000000000063
-:101D80000000000000000000000000000000000053
-:101D90000000000000000000000000000000000043
-:101DA0000000000000000000000000000000000033
-:101DB0000000000000000000000000000000000023
-:101DC0000000000000000000000000000000000013
-:101DD0000000000000000000000000000000000003
-:101DE00000000000000000000000000000000000F3
-:101DF00000000000000000000000000000000000E3
-:101E000000000000000000000000000000000000D2
-:101E100000000000000000000000000000000000C2
-:101E200000000000000000000000000000000000B2
-:101E300000000000000000000000000000000000A2
-:101E40000000000000000000000000000000000092
-:101E50000000000000000000000000000000000082
-:101E60000000000000000000000000000000000072
-:101E70000000000000000000000000000000000062
-:101E80000000000000000000000000000000000052
-:101E90000000000000000000000000000000000042
-:101EA0000000000000000000000000000000000032
-:101EB0000000000000000000000000000000000022
-:101EC0000000000000000000000000000000000012
-:101ED0000000000000000000000000000000000002
-:101EE00000000000000000000000000000000000F2
-:101EF00000000000000000000000000000000000E2
-:101F000000000000000000000000000000000000D1
-:101F100000000000000000000000000000000000C1
-:101F200000000000000000000000000000000000B1
-:101F300000000000000000000000000000000000A1
-:101F40000000000000000000000000000000000091
-:101F50000000000000000000000000000000000081
-:101F60000000000000000000000000000000000071
-:101F70000000000000000000000000000000000061
-:101F80000000000000000000000000000000000051
-:101F90000000000000000000000000000000000041
-:101FA0000000000000000000000000000000000031
-:101FB0000000000000000000000000000000000021
-:101FC0000000000000000000000000000000000011
-:101FD0000000000000000000000000000000000001
-:101FE00000000000000000000000000000000000F1
-:101FF00000000000000000000000000000000000E1
-:08200000481F000080013E04AE
-:102008003038F00C19005EBC5C7C4848F00C003994
-:10201800F00C093BB22A5EFC000011C0F80815015B
-:102028003039F20C1800E08800035EFDF00B000B5D
-:102038004828F00B032C5EFC00007B08580CC0D02D
-:1020480048787829F00900293008720A143CC060E1
-:102058002FF82F895848CFA13FF85EF800007B0879
-:102068003038F00C18005EBCF60C001C30094838FB
-:10207800F00C09295EFC000000007B085EFFD70316
-:10208800D4011988301EB6881998B6BEEA18FFFF21
-:10209800E818FF80B6AEB698580AC0301588C0A8B0
-:1020A80048981188F4081800C0303038C03848788B
-:1020B80011B8B6C83EE8B6D83008B6E8302C306853
-:1020C800B208D802000016AB00000008D40130188E
-:1020D800198EB68E199CB6A8EA1CFFFFE81CFF8073
-:1020E800B6B8B69C580AC0A0158CE06A00FFF00C80
-:1020F8001800F4081710F9B80001B6C83EE8B6D8B9
-:102108003008B6E8302C3068B208D802D421202D27
-:102118004AAA189E1698129674075807C071FACAE8
-:10212800FFF814F7F01F0026C4681989B6891999B1
-:10213800EA19FFFFE819FF80B6993039B0A9740988
-:102148007219F20C1618B0F9B0CCF9D9C108F3D944
-:10215800C208B0ECB0D9304BB0BB74097229F20C8C
-:102168001618F169000CF16C0009F9D9C108F3D906
-:10217800C208F16C000BF16B0008F169000A7409E0
-:10218800300A7239F16A00133EEAF16A0012F20A63
-:102198001618F1690011F16A000EF16B000DF5D9FE
-:1021A800C108F3D9C208F16A0010F169000F302C98
-:1021B8003138AC082FEDD8220000152C800020D42F
-:1021C8003038F00C18005EBCF60C001B48F8F00B19
-:1021D800032858085E0C704958195E1C7029581954
-:1021E800C09148B8F00C003C9828B42878089508A5
-:1021F8005EFC71E85808F0091700F1F91001F1F8D0
-:10220800120A9509B4285EFC00007B08000011C082
-:10221800D4314BC8300A10941499910A1893301A83
-:102228004B984BA7910A3EE14B921296C0280A9907
-:10223800E0682710C0485808C5602018664AE21AA6
-:102248000201E04A0201CF81C4F8F2C5FFFFE20AA9
-:102258001800CEE10F9BF7DBC0C15825E0890005C7
-:102268003038300AC2E80FAA3038C148580BC0A02D
-:10227800EE08070EEE08000CA96E2FE8199C1C0842
-:10228800C058F0CCFFFFEE080708201AF80800082D
-:102298005C5A10395F9CEC0A18005F9EFDEC000C3C
-:1022A800EC0C1800CE4110395F09F9DAC008EC0CC3
-:1022B80018005F0CF9E90009EC091800C020D83AA9
-:1022C800840C3009F20C1900CB34201D5C6A1ADB2F
-:1022D8001AD849081ADA490C1AD51AD8F01F000F6B
-:1022E8002FADCA6BDA3A662A68085C5A2FF8EE09ED
-:1022F8000B0A8908E0480063FE9AFFA9305CD832CF
-:10230800000014B0000011B8000014B8000016A2B4
-:102318008003792C80037AB0800094C4D431202DB6
-:102328004C68149570081896169712945808C0713E
-:10233800FACAFFF814F8F01F0042CC38198830198F
-:10234800B6881998B6A9EA18FFFFE818FF80B6986A
-:102358004BC89088EDB80002C171189330023EE175
-:102368000788201D4B8C1AD8F01F00382FF22FED4C
-:102378000788E2081800C0502FF3E0420400CF118C
-:102388004B3CF01F00320DC83099F2081800E08865
-:1023980000114B09920A3009F20A1900E0840091F1
-:1023A8001AD84AD84ADC1AD8F01F00282FEDC88856
-:1023B800E0450032C290A3684A99E0450033C5D091
-:1023C800129B7209F2080309EECAFFFCF3360020DB
-:1023D8003009AEB6C088760CF808030CF809070C6B
-:1023E8002FF914CCEC091900CF7349A99289EDB9DA
-:1023F8000004C5F149A97209F2080308499C1AD8D2
-:1024080049581AD8C538304BA368495A7409F20894
-:10241800030972C9AEBBF20B1618AEC9AEFBF7D9E9
-:10242800C108F3D9C208AEDBAEE948A99289EDB973
-:102438000004C1903046C3D80000152C800020D479
-:10244800000016A080037AF0800094C4800384D42E
-:10245800000016A28003785880037AF8000015203F
-:1024680080037B187409F208030870C8496C1AD8ED
-:10247800304649681AD8C1A8301AAEBA720AF408A8
-:10248800030AF53A0038AECA491A948AEDBA00042C
-:10249800C0303016C0E87209F2080308F138003875
-:1024A80048CC1AD8301648981AD8F01F000B2FEDD0
-:1024B8003EE80C07AEC83008AED82FB6A806302CB8
-:1024C8002FEDD83280037B2880037858000016A2AD
-:1024D80080037B38800094C4D421204D4A981897F3
-:1024E800118A580AC0313FF6C0D84A7811BC118EFB
-:1024F800119611A8B166EDEE1186EDE81086F9E6A1
-:1025080010064A289088EDB80002C0E14A08201D4C
-:102518004A0C1ADA1AD61AD8505B5049F01F001E16
-:102528002FCD4009401B49D870085808C081FACA05
-:10253800FFF00E9C14F8F01F001AC2080F88B68826
-:102548000F98EA18FFFFE818FF80B6983018B6A869
-:102558003048B6B8F1D6C108B6E83EE8EC0A161815
-:10256800B6F6F7680008B6CA3008EDD6C208F768AC
-:102578000009B6D63098302CB2082FCDD8220000EA
-:102588000000152800007B28000016A28003782090
-:1025980080037B48800094C40000152C800020D460
-:1025A800D401580BC0313FF8C0C8178A17B917981B
-:1025B800B168F1EA118817AAF1EA1088F3E810085F
-:1025C800F00A161848E9B28AF5D8C208B2B8B29A21
-:1025D800F5D8C108B2AA48B99289EDB90002C0A1DC
-:1025E800201D1AD848881ADC488C1AD8F01F000811
-:1025F8002FCD30194878B089D802000000007B2818
-:10260800000016A28003799C80037B74800094C428
-:1026180000001528D431204D4AE8189570081697FF
-:1026280012965808C071FACAFFF014F8F01F002A71
-:10263800C4D84AA89088EDB80002C1711894300334
-:102648003EE20988201D4A6C1AD8F01F00262FF395
-:102658002FED0988E4081800C0502FF4E043040067
-:10266800CF114A1CF01F001F0B880BCCAE880B98AB
-:10267800EA18FFFFE818FF80AE983004BA445014F7
-:102688003025FACAFFFCAEA5301BF01F0018304AEF
-:10269800EF64000CEF6500084018F0091618AEF852
-:1026A800AEC99A49AEBAF5D8C108F1D8C208EF69DF
-:1026B800000AAED8AEEA3EE8F3D9C108EF68000BCD
-:1026C800EF69000930C8302CAC082FCDD832000093
-:1026D8000000152C800020D4000016A080037AF09A
-:1026E800800094C4800384D4800021C8D40148A801
-:1026F8009088EDB80002C0E148887008201D1AD8FB
-:10270800487811881AD84878487C1AD8F01F0007EA
-:102718002FCDDA0A000016A200000008000016AB50
-:10272800800379E480037BA8800094C4D42148E620
-:10273800189E30076C0C580CC0A02FF72EC6E04727
-:102748000024CF91489CF01F000ADC2A4866EE0757
-:102758000027EC070027EF680010AECE8F0B8F2AFA
-:102768008F39D822000011E080037BC4800094C414
-:10277800D4214C8618970C9A302830094C6B310CB0
-:10278800F01F00460C9A302830094C5B311CF01FB2
-:1027980000430C9A302830094C2B312CF01F003F95
-:1027A8000E990C9A30284C0B314CF01F003C0E99B6
-:1027B8000C9A30284BDB315CF01F00383018300998
-:1027C8004BBA4BCB320CF01F003530184BA73009F1
-:1027D8000E9B4BAA321CF01F00310E9B301830099B
-:1027E8004B7A322CF01F002D4B6532390A9A0E9B1A
-:1027F8003018129CF01F002932490A9A0E9B301893
-:10280800129CF01F002632590A9A0E9B3018129C0F
-:10281800F01F00220A9A32690E9B3018129CF01F92
-:10282800001F0C9A302830094A7B336CF01F001BBC
-:102838000E9B301830094A5A327CF01F00180C9A47
-:10284800302830094A2B330CF01F00144A1533394D
-:102858000A9A0E9B3018129CF01F001033190A9A1E
-:102868000E9B3018129CF01F000D0A9A33290E9BFC
-:102878003018129CF01F00090C9A30283009496B57
-:10288800334CF01F00060E9B30183009493AC278C5
-:10289800800020D48000427C8000273480004118CA
-:1028A8008000433080003FD080003EA88000208810
-:1028B800800026F48000208480002114800035ECFC
-:1028C80080003514800034A480004B5480003740C9
-:1028D8008000232480003678800024E0335CF01FD9
-:1028E80000370C9A302830094B5B328CF01F0033CC
-:1028F8000C9A302830094B3B32DCF01F00300C9A20
-:10290800302830094B0B32ECF01F002C0E9B30188E
-:1029180030094AEA329CF01F00290E9B3018300912
-:102928004ABA32CCF01F00250E9B301830094A9A5B
-:1029380032BCF01F00220C9A304830094A6B344CE4
-:10294800F01F001E0E9B301830094A4A32ACF01FA7
-:10295800001B0E9B301830094A1A345CF01F001710
-:102968000E9B3018300949FA32FCF01F00140E9BF8
-:102978003018300949CA337CF01F00100E9B3018FC
-:10298800300949AA338CF01F000D0C9A30483009E1
-:10299800497B346CF01F00090C9A30283009495BD8
-:1029A800339CF01F00060E9B30183009492A33ACBF
-:1029B800F01F0002D82200008000273480003D88E4
-:1029C80080003AC8800038B4800033FC800030D4DE
-:1029D800800032848000375C800032088000300438
-:1029E8008000332880002F8C80002EC4800038841B
-:1029F800800037CC8000261CD4013038580B5F1972
-:102A0800F00C18005F88F3E80008C060F40C0019A7
-:102A180048D8F009092B48D89088EDB80001C111B1
-:102A280048B848C9580AF20A1700F00A171048A807
-:102A38001ADA1ADB1ADC489C1AD8F01F00092FCDC5
-:102A4800D802000000007B08000016A280037BDC8F
-:102A580080037BE4800378C080037BF0800094C40B
-:102A6800D401580BF60A1700F7FA180BF01F0002EA
-:102A7800D802000080002A00D401320A300B483CFA
-:102A8800F01F0003D802000000007B088002E8BCA9
-:102A9800D421206D3087FAC6FFF00E9A4C6B18953A
-:102AA8000C9CF01F0046304B0C9CF01F0045300872
-:102AB800FB68000DBA88FB680009FB68000BFB681F
-:102AC800000CEE784240501830480E9BFB67000817
-:102AD800FB68000A300AFE7C2400F01F003A1897B1
-:102AE800C0F04B989088EDB80002C0814B78201D4B
-:102AF8004B7C1AD8F01F00372FED301CC5A8E06AB0
-:102B0800F980EA1A03371A9BFE7C2400F01F003272
-:102B1800582CC0D14AC89008EE081900C0844AB899
-:102B2800201D4AEC1AD8F01F002B2FEDD303300AD2
-:102B3800E06B01204AACF01F002BD503E1B8000080
-:102B4800EE180001F5D8C201C020D303FE78240096
-:102B58003019705BF7D9D001915B705BF7D9D0C1A0
-:102B6800915B705BF7D9D081915B580AC020D5037F
-:102B7800FE7C2400F01F001C0A9CF01F001C364A33
-:102B8800300B49BCF01F001BE06A0400300B49AC55
-:102B9800F01F0018E06A0400300B498CF01F001584
-:102BA800F01F0017497830079107F01F00170E9C97
-:102BB8002FADD822800382078002E7368000A280EA
-:102BC8008000A618000016A2800379BC80037C0848
-:102BD800800094C48000A73C80037C2880002C10CF
-:102BE8008000A3A08000A7EC80002778000014B81C
-:102BF8008002E8BC00000DB8000009B880002A80F7
-:102C0800000000088000751CD401E1B80000EE182F
-:102C18000001F5D8C201C020D303FE782400301982
-:102C2800706BF7D9D001916B706BF7D9D0C1916BEC
-:102C3800706BF7D9D081916B580AC020D503FE7C00
-:102C480024007848EDB80000C0F1F01F0016C0C19C
-:102C5800319CF01F0015495890092FF9B009301917
-:102C68004938B089C1B8E1B80000EE180001F5D8BC
-:102C7800C201C020D303FE7824003019705BF7D955
-:102C8800D001915B705BF7D9D0C1915B705BF7D9CC
-:102C9800D081915B580AC020D503D402D603000026
-:102CA800800022188000A2E6000014B40000151C61
-:102CB800D4313006189714931694950618983E093F
-:102CC800C2C81095118A2FF8F20A1800C251580686
-:102CD800C21049E890093008F0091900C064089B3F
-:102CE8000E9C5C7BF01F001A49A890093008F00977
-:102CF8001900C1040C070F98201D1AD849681AD466
-:102D08001AD690881AD84958495C1AD8F01F001565
-:102D18002FAD8706C1882FF60836CD4548D89009CB
-:102D28003008F0091900C0353005C0D8201D48A862
-:102D38001AD690881AD8489848BC1AD83005F01F77
-:102D480000092FCD0A9CD832000016A680013DB498
-:102D5800000016A2000014B4800378D080037C48D9
-:102D6800800094C480037C6CD42118971696F01FB9
-:102D780000325F080E3C5F191895F1E91009C03060
-:102D88005808C5710B893E08F0091800C5210B9930
-:102D98003008F0091800C4D5E2190040C0E1EACAB9
-:102DA800FFFD0BAC1298C068158B2FF92FFB160A84
-:102DB80016081839CFA5C2384A089088EDB800021D
-:102DC800C0D149F8201D49FC1AD8F01F001FF7D6BA
-:102DD800C0100E9CF01F001D2FED3009EACAFFFD40
-:102DE8000BAC1298C0A81587159B2FF9F7E7108B25
-:102DF8002FEB160AF60800081839CF6510053EE9CA
-:102E08000BB8F2081800C021DA2A4919920A3009C9
-:102E1800F20A1900C0E4201D1AD848E890881AD888
-:102E2800487848DC1AD8F01F0008300C2FCDD8227B
-:102E3800D82A000080002CB8000016A080037974FE
-:102E480080037C84800094C480013DB4000016A2F5
-:102E5800000014B480037C8CD4014918581CC0713C
-:102E68003039334C9109F01F000FC0683049334C9A
-:102E78009109F01F000D48D89088EDB80002C0D124
-:102E880048787008201D1AD848981AD8489848AC2D
-:102E98001AD8F01F000A2FCDD80200000000000841
-:102EA8008000A2E68000A300000016A280037A3CFE
-:102EB8008003821080037CB0800094C4D421FACDB2
-:102EC80001004AC81697700512965805C071FACACB
-:102ED800FF0014F5F01F0028C4A81989301AB68914
-:102EE8001999B6AAEA19FFFFE819FF80B69919B926
-:102EF800F4091800C20119C53FF8F0051800C1B05F
-:102F0800E06A00FF300B1A9CF01F001C1A9430086E
-:102F1800C048E8080B082FF80A38CFC51A94AEB590
-:102F2800EEC8FFFCFA050009C038093A10CA123485
-:102F3800CFD1C15849256A0CF01F00120A98EECA71
-:102F4800FFFCEBDCC0083009AEB5C068700BF609B1
-:102F5800070B2FF914CBEA091900CF933EE80A07AB
-:102F6800AEC83008AED82FB5302CAC052C0DD82201
-:102F78000000152C800020D48002E8BC0000011459
-:102F88008002EDD0D421202D49981697700E129604
-:102F9800580EC071FACAFFF814FEF01F0016C25886
-:102FA8001989B6891998EA18FFFFE818FF80B698BA
-:102FB80030184915B6A86A0CF01F0010EEC9FFFCBE
-:102FC8005C5C3008AEBCC0686A0AF408070A2FF8CF
-:102FD80012CAF8081900CF933EE818072FBCAEC8EC
-:102FE8003008AED8AC0C302C2FEDD8220000152CB0
-:102FF800800020D4000001148002EDD0D421202DBF
-:103008004AE818967008169712955808C071FACAB7
-:10301800FFF814F8F01F002AC4D84AA811D4303891
-:10302800F0041800E08B0046FACAFFFC1A9B089CC3
-:10303800F01F00250D88C300AE880D98EA18FFFF21
-:10304800E818FF80AE983018AEA81BC8AEB89A280A
-:10305800AEC83008C0B8F3D8C010400BF1DAB010D1
-:10306800EE09000AF6090709B4D9F0CAFFFF9A2940
-:10307800F2081900CF13F1D9C010EE0800083EEA93
-:10308800B0DA9AA82FA910073008AEE8AA09089C58
-:10309800F01F000EC0E8AE880D98EA18FFFFE81888
-:1030A800FF80AECCAE98AEAC3EE8AEB83048AA08C9
-:1030B800302C2FEDD82200000000152C800020D4E1
-:1030C80000000DB880006BF480006FBCD431202D57
-:1030D8004C5818967008169712955808C071BAE897
-:1030E800FACAFFFAF01F0041C728F8C8FFFDC3C09D
-:1030F80011842FF4F0040004C37009893018F00912
-:103108001800C67109993EE8F0091800C6214B88D5
-:1031180090093008F0091900C5C44B681AD44B6CE3
-:103128001AD8F01F00362FEDC548099309A9F3E313
-:1031380010835C83C54809893018F0091800C1510B
-:1031480009993EE8F0091800C1014A989009300829
-:10315800F0091900C0A44A781AD44A7C1AD8F01F7A
-:1031680000272FEDC02830030DB43018F0041800E4
-:10317800C2D10DCC3038F00C1800E08B0028F5D304
-:10318800C008FACBFFF9F01F001E0D88C120AE88D9
-:103198000D98EA18FFFFE818FF80AEB4AE98AEA409
-:1031A8001BF8AEC83EE8AED83008AEE83068C0D8E4
-:1031B800AE880D98EA18FFFFE818FF80AE983EE841
-:1031C800AECCAEB8AEAC3048AA08302C2FEDD83211
-:1031D80009883029F2081800CA9030032FF8100423
-:1031E800CAB1CC3B0000152C800020D4000016A2E8
-:1031F8008003780C80037CBC800094C480006FE05E
-:10320800D421202D49A81697700E1296580EC07119
-:10321800FACAFFF814FEF01F0017C2681989301A9D
-:10322800B6891999B6AAEA19FFFFE819FF80B69975
-:1032380019B9F4091800C0D119C83039F2081800B2
-:10324800E08B000848C9F208033CF01F000CC028B6
-:10325800300C3018AEB83EE8AECCAED83008AEE888
-:10326800302C3068AC082FEDD82200000000152C57
-:10327800800020D400007B0880004D78D421202DC8
-:103288004A181697700E1296580EC071FACAFFF8AF
-:1032980014FEF01F001EC3481989301AB6891999FF
-:1032A800B6AAEA19FFFFE819FF80B69919B9F40917
-:1032B8001800C0B119CC3038F00C1800E08B0006AB
-:1032C800F01F00135C8CC028300C3028AEB83EE8E4
-:1032D800AECCAEE85C7CF8081608AED83008AEF87C
-:1032E8003078AC0848B89088EDB80002C08148A88A
-:1032F8001ADC48AC1AD8F01F000A2FED302C2FED3D
-:10330800D82200000000152C800020D480006D38E1
-:10331800000016A8800378A880037CD8800094C495
-:10332800D421202D4AA81697700512965805C07109
-:10333800FACAFFF814F5F01F0027C4781989301A63
-:10334800B6891999B6AAEA19FFFFE819FF80B69954
-:10335800303819B919C5F40918005F09F0051800C3
-:103368005F881268C19049C8F00503345804C060EA
-:10337800089C301BF01F0019C10849989009E809FA
-:103388001900C0A449781AD5497C1AD8F01F00172B
-:10339800089C2FEDC028300C3018AEB83EE8AECCF3
-:1033A800AED83008AEE83068AC0849189088EDB857
-:1033B8000002C0A148B8201D1ADC48EC1AD51AD85A
-:1033C800F01F000A2FCD302C2FEDD8220000152C2D
-:1033D800800020D400007B0880004F1C000016A647
-:1033E8008003794080037CEC800094C4000016A818
-:1033F80080037D10D421202D4A181697700E12963E
-:10340800580EC071FACAFFF814FEF01F001EC34818
-:103418001989301AB6891999B6AAEA19FFFFE81965
-:10342800FF80B69919B9F4091800C0F119C83039E4
-:10343800F2081800E08B000A4939F2080038300B0E
-:10344800701CF01F0012C028300C3018AEB83EE8CF
-:10345800AECCAED83008AEE83068AC0848C8908822
-:10346800EDB80002C08148B81ADC48BC1AD8F01F71
-:10347800000B2FED302C2FEDD82200000000152C6A
-:10348800800020D400007B0880004F1C000016A894
-:1034980080037A6480037D28800094C4D40149584D
-:1034A8009088EDB80002C08149381ADC493C1AD826
-:1034B800F01F00132FED49383009118AF20A18005D
-:1034C800C021DC0AB089F01F0010581CC1004898C0
-:1034D80090093008F0091900C025DA0A48681ADC92
-:1034E80048AC1AD8F01F0006301C2FEDD802000097
-:1034F800000016A28003798480037D38800094C47C
-:10350800000016AA80019EF880037D54D421202D46
-:103518004B281496700E16971295580EC071FACA59
-:10352800FFF814FEF01F002EC5681989B68919988E
-:10353800EA18FFFFE818FF803014B698B6A4F01F09
-:103548000029C3E0E0460025C260E0460026C3200B
-:10355800EEC9FFFCE0460024C0F0129AF9380020BA
-:103568003009AEB8C058F809070B2FF914CBF00989
-:103578001900CFA3C28830682DACAEB8306A3008C5
-:10358800198B12CB2FF8201C5C88F4081900CF91F6
-:103598003068C19878C8F0091618AEF93049AEC835
-:1035A800AEB9F3D8C108F1D8C208AED9AEE83048F0
-:1035B800C0A8AEB4F9380038AEC83018C048AEB4A8
-:1035C800AECC18983EE91007AEC93009AED92FB86D
-:1035D800302CAA082FEDD8220000152C800020D40A
-:1035E8008001997CD421202D49F8189670081697E7
-:1035F80012955808C041FACAFFF8C1881988B688D8
-:103608001998EA18FFFFE818FF803019B698306853
-:10361800B6A9B6B81A9CF01F0015581CC0B00A9974
-:103628000E9B0C9CFACAFFF8300814F8F01F001023
-:10363800C1881BD8AEC81BC8AED81BB8AEE81BA83B
-:10364800AEF81B98EF6800081B88EF6800093EE891
-:10365800EF68000A3008EF68000B302C30B8AA0871
-:103668002FEDD8220000152C80019128800020D44D
-:10367800D421FACD010016961A971A9C173AF01F12
-:103688000025FAC9FF000D88F20800083009F16921
-:10369800FF004A189088EDB80002C08149F81AD78F
-:1036A80049FC1AD8F01F001F2FED300849E749FAE6
-:1036B800AE88AE98AEA8AEB8B488109949CA0E9B29
-:1036C8001A9C1A96F01F001B5C5CC040E06C00FF5F
-:1036D800C1E849189088EDB80002C1510F8A0FB9A6
-:1036E8000F98B168F1EA11880FAAF1EA1088F3E897
-:1036F8001008201D1AD848981AD648FC1AD8F01F66
-:1037080000092FCD30194898301CB0892C0DD822CB
-:103718008002E736000016A280037A7C80037D646D
-:10372800800094C400007B2800001528800025A88C
-:103738008000C4C080037D84D401F01F0006E068C7
-:1037480000FF581CF00C1710F9BC0001D80200004B
-:10375800800199CCD42118971696335CF01F001677
-:103768005827C1F10D980D89F1E910893018F00931
-:103778001900C1710DA80DBA0DC9303BF608180023
-:10378800E0880004300CC04848CBF608033CA96A1E
-:10379800ECCBFFFB120A5C7AF01F00091897C028CF
-:1037A8003FF7335CF01F0007E06C00FF5817F9BCC7
-:1037B8000001D8228000A30000007B08800053C0CD
-:1037C8008000A2E6D421202D581CC4211789F809AD
-:1037D8001800C3E1F6C8FFFE1796C170118AF20AF5
-:1037E8001800C131119A3EE9F20A1800C0E149B93E
-:1037F800920A3009F20A1900C0841AD84988499CEB
-:103808001AD8F01F00192FED3008FACAFFF8300B4C
-:1038180014E80C9CF01F00159A3A18973038F006F7
-:103828001800E0880004300CC0484918F006033C32
-:103838005C7A0E9BF01F000F18950C9CF01F000E71
-:103848000E9CF01F000E5815C0310A9CC038E06C61
-:1038580000FF2FEDD8220000000016A28003795C3B
-:1038680080037CBC800094C4800072DC00007B086C
-:103878008000514080006E188002E28CD401582CE0
-:10388800C13117981789F1E910893018F009190022
-:10389800C0B117C817BA17ACA96A2FBBF00A000A3B
-:1038A8005C7AF01F0002DA0A80007380D421581C69
-:1038B800C391580BC0311697C1E81788F80818004B
-:1038C800C3411797C33817893018F0091800C13158
-:1038D80017993EE8F0091800C0E1497890093008C6
-:1038E800F0091900C08449581ADB495C1AD8F01F3E
-:1038F80000152FED49089088EDB80002C08148F8FE
-:103908001AD7491C1AD8F01F000F2FED3038F007CE
-:103918001800E08B000848D8F007033CF01F000CA3
-:10392800DA2AE06C00FFD82230072FF8100BCCC140
-:10393800CE2B0000000016A2800379F880037CBC1F
-:10394800800094C480037DA800007B088000599CF7
-:10395800D421202D4B981896169414971295908878
-:10396800EDB80002C1314B694B685805F2081700E1
-:10397800201D1AD816985C781ADA1AD84B281ADC3F
-:103988004B2C1AD8F01F00322FAD3038F007180032
-:10399800E0880005E06C00FFC8584AE8F0070338E3
-:1039A80050085808C1504A59920A3009F20A1900B9
-:1039B800C0841AD84A484A8C1AD8F01F00252FED1F
-:1039C800400CF01F002630094A28F00709391A9CD4
-:1039D800E06A04005016300B1ADC14981AD75C748D
-:1039E8001ADB16991AD5089C1ADA169A1AD6F01FF5
-:1039F800001C49282FAD580CC3819088EDB80002EF
-:103A0800C1511AD71AD41AD6403850461AD848D8AD
-:103A180048B95805F2051700F005171048A81AD537
-:103A2800490C1AD8F01F000A2FAD0E9C400BF01F4E
-:103A3800000E301CC3780000000016A280037DC869
-:103A480080037DC4800379C480037DCC800094C446
-:103A580000007B0880037DF88000599C80005D642D
-:103A680080037E2480002A689088EDB80002C15146
-:103A78001AD71AD41AD6403850461AD848B848C95E
-:103A88005805F2051700F005171048A81AD548ACD4
-:103A98001AD8F01F000A2FAD300948983FFCF007EC
-:103AA80009392FEDD822000080037DC480037DC82A
-:103AB800800379C480037E50800094C400007B0892
-:103AC800D431584CE081008E580BC2A01785F805F8
-:103AD8001800E081008A179817A7B167EFE81187E7
-:103AE80017B8EFE8108717C8F1E71007C7E80B8980
-:103AF8003018F0091800C7E10B993EE8F0091800E2
-:103B0800C7914C2890093008F0091900C7344C08AF
-:103B18001AD54C0C1AD8F01F00402FEDC6B81697CE
-:103B28003006C1F80B960BA8F1E610865C86C688AD
-:103B380007893018F0091800C72107993EE8F009ED
-:103B48001800C6D14B1890093008F0091900C6743E
-:103B58004AF81AD34AFC1AD8F01F002F2FEDC5F8DF
-:103B68003005C1B80795C61809893018F00918003A
-:103B7800C61109993EE8F0091800C5C14A389009EC
-:103B88003008F0091900C5644A181AD44A1C1AD812
-:103B9800F01F00212FEDC4E83003C1A80993C50820
-:103BA80009893018F0091800C13109993EE8F0096F
-:103BB8001800C0E1495890093008F0091900C0847C
-:103BC80049381AD4493C1AD8F01F00132FED06992A
-:103BD8000A9AF7D6C0100E9CF01F0010581CC0306F
-:103BE800E06C00FFD83230072FF5F6050005C80154
-:103BF800C98B0B833028F0031800C95030062FF307
-:103C0800EA030003C961CADB000016A280037A98A0
-:103C180080037CBC800094C4800039580784301825
-:103C2800F0041800CA0030052FF4E6040004C9D1D6
-:103C3800CB4B09883019F2081800CB1030032FF845
-:103C48001004CAF1CC5B0000D421202D3038169620
-:103C58001494F00B1800E08B0072300750074BA843
-:103C68001188EE081800C0B04B889008EE081900BB
-:103C7800C654201D4B684B7C1AD8C0F84B69138971
-:103C8800F0091800C0E14B589008EE081900C56407
-:103C9800201D4AF84B2C1AD8F01F00322FEDC4E82B
-:103CA8001A9AE0690400501712981ADAEBDCC0106F
-:103CB8001ADB0E9A1AD70E9B1AD40A9C1AD93019F5
-:103CC8001AD7F01F00294A182FAD580CC1B1908897
-:103CD800EDB80002C1114A584A595804F2041700B5
-:103CE800F004171049A81AD64A2C1AD51AD41AD88B
-:103CF800F01F001C2FCD0C9C400BF01F001F301C28
-:103D0800C1F89008EE081900C11449884989580477
-:103D1800F2041700F004171048D81AD6497C1AD5AF
-:103D28001AD41AD8F01F000F2FCDA17630092FF61C
-:103D380049383FFCF0060929C038E06C00FF2FED38
-:103D4800D822000000007B07000016A280037A102A
-:103D580080037E80000016AB000016A680037EA0BC
-:103D6800800094C480005D6480037DC480037DC8A6
-:103D780080037EB880002A6880037EDC00007B0810
-:103D8800D421583CC661580BC24017843028F0042F
-:103D98001800C621179717A8F1E710875C87C5D8C0
-:103DA80009893018F0091800C5D109993EE8F009C9
-:103DB8001800C5814B6890093008F0091900C5241E
-:103DC8004B481AD44B4C1AD8F01F00342FEDC4A816
-:103DD80016973006C1B80996C4B80B893018F0098F
-:103DE8001800C4B10B993EE8F0091800C4614A886C
-:103DF80090093008F0091900C4044A681AD54A6CB9
-:103E08001AD8F01F00262FEDC3883004C1A80B94E0
-:103E1800C3A80B893018F0091800C1310B993EE886
-:103E2800F0091800C0E149A890093008F009190004
-:103E3800C08449881AD5498C1AD8F01F00182FED6C
-:103E48000E9C089A0C9B5C7CF01F0015581CC03017
-:103E5800E06C00FFD82230072FF4F6040004CA11E2
-:103E6800CB9B09853018F0051800CB6030062FF57C
-:103E7800E8050005CB31CCAB0B883019F2081800E7
-:103E8800CC7030042FF81005CC51CDBB000016A221
-:103E98008003791480037CBC800094C480003C506B
-:103EA800D431204D1495740A501A18961788301971
-:103EB800F2081800C771F6C7FFFE1794C1700F8982
-:103EC800F0091800C1310F993EE8F0091800C0E167
-:103ED8004B7890093008F0091900C0844B581AD75C
-:103EE8004B5C1AD8F01F00352FED4B189088EDB8B1
-:103EF8000002C0A14AF81AD44B1C1AD61AD51AD8EF
-:103F0800F01F002E2FCD3028F0041800E08B004B56
-:103F18003006304030114A624A63C3E80F88E0082F
-:103F28001800C4010F990FA8B168F1E911880FB9F9
-:103F3800F1E910880FC92FB7F3E810085807C170C6
-:103F48000F89E2091800C1310F993EEAF4091800F7
-:103F5800C0E18409300AF4091900C0941AD7496CE1
-:103F68001AD35028F01F00152FED400850388489C7
-:103F7800EDB90002C0A11AD84029492C1AD91AD67D
-:103F88001AD3F01F000E2FCDF9D6C008FACBFFF4D4
-:103F98002FF6F01F000D0836CC253008301CAAC8B3
-:103FA800C038E06C00FF2FCDD8320000000016A208
-:103FB80080037A4C80037CBC800094C480037F0813
-:103FC80080037F308000C19CD431203D3019149487
-:103FD800189674051788F2081800E0810085F6C75E
-:103FE800FFFE1792C1700F89F0091800C1310F99AF
-:103FF8003EE8F0091800C0E14BD890093008F009F4
-:104008001900C0844BB81AD74BBC1AD8F01F003B14
-:104018002FED4B789088EDB80002C0A14B581AD20A
-:104028004B7C1AD61AD41AD8F01F00342FCD30384A
-:10403800F0021800E08B005830064AD04AD1FAC383
-:10404800FFF8C4B80F88304AF4081800C4C10F99A3
-:104058000FA8B168F1E911880FB9F1E910880FC903
-:104068002FB7F3E810085807C1800F89301AF409F0
-:104078001800C1310F993EEAF4091800C0E180091F
-:10408800300AF4091900C0941AD749BC1AD150282B
-:10409800F01F001A2FED400850288089EDB9000262
-:1040A800C0911AD8497C1AD51AD61AD1F01F001314
-:1040B8002FCD5816C0805826C0B0069B0A9CF01F0A
-:1040C8000012C0A8069B0A9CF01F0010C058069B4F
-:1040D8000A9CF01F000F2FF60436CB553008301C11
-:1040E800A8C8C038E06C00FF2FDDD832000016A247
-:1040F800800378F080037CBC800094C480037F0830
-:1041080080037F308000CBC88000CA748000CA92C8
-:10411800D421FACD00884C6816979088EDB8000233
-:10412800C0B14C48201D1ADC1AD84C384C3C1AD85F
-:10413800F01F00432FCD344A300BFAC6FFFC0C9C0D
-:10414800F01F0040306AE06B00FFFACCFFDBF01F85
-:10415800003D0F8A31F8F00A1800E08B008930889A
-:10416800EECBFFFFFB68003C0C9CF01F00370F896B
-:10417800FB6900244AE89088EDB80002C0A14AE82B
-:10418800201D4B2C1AD91AD61AD8F01F002D2FCD66
-:104198000F882FF8FAC6FFB810070C9C0E9B173A29
-:1041A800F01F002BFAC9FF780F88F20800083009C1
-:1041B800F169FFC049E89088EDB80002C0B10F88E6
-:1041C800201D1AD849C81AD64A2C1AD8F01F001C24
-:1041D8002FCD0F8A3018FAC7FFFC3089FACBFFB809
-:1041E8000E9CF01F001D581CC0C0491890093008CB
-:1041F800F0091900C3C44908498C1AD81AD8C0E86C
-:10420800497CF01F000F0E9C300BF01F001618970A
-:10421800581CC080201D1ADC493CF01F00092FEDF6
-:10422800C268492CF01F00060E9CC238000016A276
-:1042380080037A248003787080037F50800094C4C0
-:104248008002E8BC8002E73680037CB08002EE0C76
-:1042580080037F648001908480037F7880037FA03F
-:10426800800099A880037FB880037FC0E06C00FFBE
-:104278002DEDD822D42120AD4A461697178A31F859
-:10428800F00A1800E08B002FFAC5FFF92FFB0A9CF3
-:10429800F01F001F0F88FAC9FFD8FB680027100914
-:1042A8003008F368FFDF8C88EDB80002C0814998B8
-:1042B8001AD5499C1AD8F01F00192FED300BFACCEB
-:1042C800FFF9F01F00171897581CC1B048F890095B
-:1042D8003008F0091900C1541ADC48E8491C1AD8FA
-:1042E800C0D88C093008F0091900C0353FF7C098CC
-:1042F800201D488848CC1AD83FF7F01F00082FED3A
-:104308000E9C2F6DD8220000000016A28002E7360E
-:10431800800378E080037B18800094C4800099A80B
-:1043280080037D5480037FC4D431216D4D281697B6
-:104338009088EDB80002C0B14D08201D1ADC1AD8CB
-:104348004CF84D0C1AD8F01F00502FCD321AFAC66F
-:10435800FFFD300B0C9CF01F004D0F8A31F8F00A5E
-:104368001800E08B0085EECBFFFF0C9CF01F004887
-:104378000F88FB6800234C089088EDB80002C081C4
-:104388004BF81AD64C3C1AD8F01F003F2FED0F8679
-:104398002FF6EE060006FAC7FFAC0C9B0E9C173AE8
-:1043A800F01F003D0D88FAC9FFA8F20800080E9C0E
-:1043B8003003F163FFFCF01F00393038EFDCC00830
-:1043C8000D89F00718005FB53018F00918005F185C
-:1043D80010450A94E6051800C4A1ECCBFFFDFAC30A
-:1043E800FFDC2FE6069C0D8AF01F002B0D88FAC90A
-:1043F800FFA8F2080008069BF165FFCCFAC5FFC0CC
-:104408000A9CF01F002730D81896F00C18005F1986
-:104418003058F00C18005F18F3E80008E808180096
-:10442800C261FAC4FFB2306AE06B00FF089CF01F5B
-:1044380000170C9B08990A9A0E9CF01F001A0E9CF4
-:10444800F01F0019300BFACCFFFDF01F0018581CA4
-:10445800C100489890093008F0091900C0844888BC
-:104468001ADC493C1AD8F01F00082FEDE06C00FF59
-:104478002EADD832000016A280037888800379AC6C
-:1044880080037F50800094C48002E8BC8002E73635
-:1044980080037FE48002EE0C8002DC2C80009868A8
-:1044A8008001927080019258800099A880037D5401
-:1044B800D401319CF01F0010E06B00EFFE7C280057
-:1044C800F01F000E581CC060FE7C2800F01F000C76
-:1044D800CFC0319CF01F000B48B890093008F00994
-:1044E8001900C0844898201D489C1AD8F01F00095C
-:1044F8002FEDD8028000A3008000A7FA8000A7F261
-:104508008000A2E6000016A28003790880037FF0ED
-:10451800800094C4D431202D3008FAC7FFF81696CD
-:10452800189514930EE81694098B0A9C2FF4F01F23
-:104538000009581CC0B00E9B0A9CF01F0007089881
-:104548000C18E6081900CF13300C2FEDD8320000F4
-:104558008000A7FA8000A816D421202D30081496D0
-:10456800F80C002C129AFAC9FFF812E84A88F00CE5
-:10457800002C169578280C9B0A9C5D184A583049DF
-:10458800319C9109F01F00249ABA0C9BFE7C2400F0
-:10459800F01F00221897319CF01F00214A189088BC
-:1045A800EDB80002C0414A0CF01F002049D890889D
-:1045B800EDB80002C0D149E8201D49EC1AD8F01F17
-:1045C800001B49D80A9C908BF01F001C2FED4958FE
-:1045D8009088EDB80002C041499CF01F00144918AA
-:1045E8009088EDB80002C0C14918201D491C1AD88E
-:1045F800F01F000E9AFB0C9CF01F00102FED9A394B
-:1046080049080E9CB0092FEDD8220000000011E0E7
-:10461800000011B88000A3008000451C8000A2E6BD
-:10462800000016A080038008800094C480037800EE
-:1046380080037C84000011BE80013DB48003800C9F
-:10464800000011BCD431202D4BC43048E8C3FFF022
-:10465800BAF81897199616910C90F8C2FFFD2FC456
-:104668003005E21000400988EC081800C4B107883A
-:104678003029F2081800C1F10A9C4B08EA05002508
-:10468800029AF00500240E9BE8C5FFF46839F01F74
-:10469800002CC030301CC4E868086A0A049B0FACC0
-:1046A8005D18BAFCE216004030181BF9F009180032
-:1046B800C3C1C3D85800E00A1700F9BA0100E8F8E6
-:1046C800FFFC049B0FAC5D18BAFC30190788F20890
-:1046D8001800C0B10A9C4998EA050025029AF0051D
-:1046E80000250E9B6A39C0A83049F2081800C0A1FD
-:1046F800029A0E9B0A9CFAC9FFF9F01F0011C170BB
-:10470800C1882FF52EC42EC3E0450024CAD148D84D
-:1047180090093008F0091900C08448B81AD648BC76
-:104728001AD8F01F000B2FED302CC048304CC02891
-:10473800300C2FEDD8320000000011E080004560F9
-:10474800000016A28003789880038010800094C42B
-:10475800D421202D4BD8910C30094BD8118AF20A5C
-:104768001800E08000DAB08930085018E1B800007D
-:10477800EE180001F5D8C201C020D303FE7824004A
-:104788003019706BF7D9D001916B706BF7D9D0C124
-:10479800916B706BF7D9D081916B580AC020D50303
-:1047A8004AC7FACAFFFC6E0B4ABCF01F002C1896C9
-:1047B800C6E04AB8303A6E09910A401B4A98161961
-:1047C800B009E06A03FFF4091900E0880005E06910
-:1047D8000400B0094A064A37EC0B000B4A2C8E8AB3
-:1047E800F01F002230084A2BAC8849FCF01F00213A
-:1047F800584CC2204A089088EDB80002C0C149F858
-:10480800201D49FC1AD8F01F001F8E8B496CF01F21
-:10481800001E2FED49889088EDB80002C0D1497874
-:10482800201D497C1AD8F01F00174988490C908B25
-:10483800F01F00152FED4879300893084899B20801
-:1048480048799308C46800000000152C0000151C66
-:10485800000014B0000014B880002D70000011B8DA
-:10486800000011BE00000DB88002E736000009B84C
-:104878008000464C000016A0800379D880037C8411
-:10488800800094C480013DB4000011BCF01F0024D6
-:104898004A489008EC081900C0A44A3890881AD8E9
-:1048A8004A284A3C1AD8F01F00232FED4A289009BD
-:1048B8003008F0091900C0644A084A1C909BF01F90
-:1048C80000214A19300893084A09B20849C9B28830
-:1048D800E06B0120FE7C0D80F01F001DE1B8000098
-:1048E800EE180001F5D8C201C020D303FE782400D9
-:1048F8003019705BF7D9D001915B705BF7D9D0C1E3
-:10490800915B705BF7D9D081915B580AC020D503C1
-:10491800319CF01F00102FEDD8220000800044B811
-:10492800000016A2000014B4800379D88003802CFC
-:10493800800094C4000016A6000014B0000014B84B
-:1049480080013DB4000011B8000011BE8000A20033
-:104958008000A300D431207D4B6730054B664B782F
-:104968001188EA081800EC081710EE0817004B4CDD
-:104978001AD8F01F00344B481188EA081800EC07D1
-:1049880017104B2C50074B2230074B23F01F002DDC
-:104998000E942FED4B01CBD86A005800E08000B28E
-:1049A80080286009201D1AD95028F01F002C602A81
-:1049B8002FFD580AE60A1700E20A171040185C781B
-:1049C80060491AD84A681ADC1ADA4A6A5809F40996
-:1049D8001700F00917104A4C1AD91AD01AD61AD744
-:1049E800F01F001860482F8D5808C431E0C9FFBC7B
-:1049F800720A580AC0E0744B201D49CC1ADB1ADA37
-:104A08001AD850595048F01F000F2FCD40084019B0
-:104A18002FF82FC95848CED161585808C610704988
-:104A2800493C1AD91AD8F01F00072FEDC598000085
-:104A3800800380548003805C000016AB8003806094
-:104A4800800094C400007B078003807400007B080A
-:104A580080037BE480037BDC800096A880037DC410
-:104A680080037DC880038088800380B8800380D05D
-:104A780061E85808C350F11900127008201D1AD8AF
-:104A8800507850395028F01F002761EA2FFDF53B78
-:104A9800001040291AD940281AD81ADC4A2C1ADBE7
-:104AA8001ADA50B8F01F0021FACAFFE00C9B5084B4
-:104AB800FB5400240E9CF01F001E2FBD40305050A8
-:104AC8001AD0FB1800145028F01F00162FFD4018AC
-:104AD8001AD81AD01ADC497CF01F00142FCD0E9C6E
-:104AE800F01F001549594968580CF2081710201D85
-:104AF800494C1AD8F01F000D493CF01F000C2FED4F
-:104B08002FF62FC55826FE91FF492FF75847C0505A
-:104B1800E40700353006C41BF01F000C2FADD83257
-:104B2800800096A8800380E8800094C4800021C893
-:104B380080038114800070788003812C8003812891
-:104B480080038130800381408000D680D431204D9D
-:104B58004BE812911896169711895809C1A119881E
-:104B6800B6881998EA18FFFFE818FF80B6C9B69802
-:104B7800B6A93EE8B6B83048A2084B589088EDB8B8
-:104B88000002E08100E7201D4B284B3C1AD8C228C0
-:104B9800FACCFFF4F01F0031403366105800C1E131
-:104BA8000D88AE880D98EA18FFFFE818FF80AEA0C0
-:104BB800AE9830093EE8AEC9AEB83048A2084A48B7
-:104BC8009088EDB80002E08100C5201D4A184A4CC3
-:104BD8001AD8F01F00242FEDCBC858B0F9B0020A3C
-:104BE80030044A12C0786408F004032C2FF4F01F34
-:104BF800001F641849C51034CF736A0C3004F01FC5
-:104C0800001B8B14661B580BC460A36B301CF01F71
-:104C180000188B0CC3A1497CC1486608F002030B3D
-:104C28006A080408501B5008F01F00134008910C34
-:104C3800401B6A082FF4F002030C580CC20148FC10
-:104C4800F01F0008C2880000000016AA000016A283
-:104C58008003783C8003816080018F048003817C1D
-:104C6800800094C4000015208002E28C8002DC3CA5
-:104C7800800381988002E2A4800381C0344AF01F37
-:104C880000376A182FF88B18E8021502344C66189A
-:104C98001034CC430D88AE880D98EA18FFFFE81849
-:104CA800FF803005AE98AEA030364AD20A984AD96D
-:104CB8000E93640AEA0B1502F40B030AF537002079
-:104CC800F4070B08ECCCFFFF2FF7E60C000C5C5741
-:104CD800300AE6060B07C0886404E80B0304E80AF8
-:104CE80007042FFA18C40E9EEE0A1900CF630E9A15
-:104CF8002FFAF4060006928A5C56EDBA0002C1D17A
-:104D0800640A202DF40B0304503950281A9C306A89
-:104D1800E8CBFFDFF01F001168CA1ADAE93A003859
-:104D28001ADA491A1AD7491C1AD41AD51ADAF01FEE
-:104D380000102F8D400840192FF50035CBB53EE8FF
-:104D4800E6060B08069730080C07AE982FF6A20661
-:104D5800302C2FCDD83200008002E7360000152015
-:104D6800000016A28003783C800381E4800094C48C
-:104D780048781188580CC0215EFF5C68100C300818
-:104D8800F9390015F00918005F1C5EFC00001530A9
-:104D9800D4211897580CC2A04968F129000030089E
-:104DA800F2CA0004F00900065836F5D8E9062FF8CB
-:104DB800EE06002C791C163CC17148F89088EDB8B5
-:104DC8000001C0A148D81ADB48DC1AD61AD71AD86D
-:104DD800F01F000C2FCDF9D6C00830082F06EE06BC
-:104DE80000278F18D8225848CDE1E06C00FFD82260
-:104DF80000001530000016A2800382688003830437
-:104E0800800094C4D42118971695580CC2B04978DC
-:104E1800F12900003008F2CB0004F00900065836EA
-:104E2800F7D8E9062FF8EE06002A751A580AC03096
-:104E38000A3AC16148E89088EDB80001C0A148D895
-:104E48001AD548DC1AD61AD71AD8F01F000C2FCD5D
-:104E5800EE060027F9D6C008EF450044D822584886
-:104E6800CDD1E06C00FFD82200001530000016A25A
-:104E780080038CF080038304800094C4D4211897A5
-:104E8800580CC2A049E8F12A00003008F4CC00040C
-:104E9800F00A00065836F9D8E9062FF8EE06002978
-:104EA80073195809C170580BC0F049689088EDB85B
-:104EB8000001C0A149481AD9494C1AD61AD71AD89C
-:104EC800F01F00132FCDEE06002748D8B0866F1CC0
-:104ED800D8225848CDE1580BC10048A8900930089D
-:104EE800F0091900C0A448881AD748AC1AD8F01F8E
-:104EF8000008300C2FEDD822D82A00000000153009
-:104F0800000016A280038CB880038304800094C438
-:104F180080038324D4214CB816951188189730063D
-:104F2800EC081800E08000B6300BF01F004718941A
-:104F38005807E0800097580C5F19EC0518005F08C7
-:104F4800F3E81008EC081800E080008C4BF8908813
-:104F5800EDB80002C3314BE811894BE89088EDB8F1
-:104F68000001C2C15C69EE09002871185808C041E7
-:104F7800109E1096C098EE09000AF53E0015F2CA78
-:104F8800FFF8EE0A03266F5A201D580AF40C170082
-:104F9800F5FC10045808F00B1700F1FB10041ADE9A
-:104FA8001AD61ADC1ADA1ADB1AD84AB81AD74ABC3F
-:104FB8001AD91AD8F01F002A2F6D5805C3D068488F
-:104FC80058485F1958085F181268C3304A08118991
-:104FD8004A089088EDB80001C2C15C69EE09002852
-:104FE80071185808C04110951096C098EE09000A2B
-:104FF800F5350015F2CAFFF8EE0A03266F5A201D90
-:10500800580AF40C1700F5FC10045808F00B1700A8
-:10501800F1FB10041AD51AD61ADC1ADA1ADB1AD8D8
-:1050280048D81AD748DC1AD91AD8F01F000D2F6DA6
-:10503800E93C0013D8226F58F13C0013D822000035
-:10504800000016AB80004E84000016A80000153042
-:10505800000016A28003828C80038348800094C4D9
-:1050680048D890093008F0091900C1345807EE08EB
-:105078001700EE041700EFF810151AD848781AD45C
-:10508800487C1AD71AD8F01F0007300C2FCDD82229
-:10509800D82A0000000016A88003828C8003838C25
-:1050A800800094C4D421580CC25049D8F12900007A
-:1050B8003008F2CA0004F00900075837F5D8E907A4
-:1050C8002FF8F807002E7D1E163EC12149589088FA
-:1050D800EDB80001C0A149481ADB1AD71ADC493CCF
-:1050E8001AD8F01F00132FCD0E9C5C5CD8225848AC
-:1050F800CE31490890093008F0091900C045E06C24
-:1051080000FFD8224888201D1ADB1ADC48AC1AD8C0
-:10511800F01F0007E06C00FF2FCDD82200001530EB
-:10512800000016A6800382BC80038304800094C418
-:10513800000016A2800383C0D421580C5F18580BB6
-:105148005F1918961695F3E800081494C590580A44
-:10515800C5704AC89088EDB80001C0C114985C7841
-:10516800201D1AD84A881ADB4A8C1AD8F01F002842
-:105178002FCD4A889088EDB80001C0D14A28201D5B
-:105188004A5C1AD8F01F0022089B0A9C5C7BF01F1F
-:1051980000232FED300A5C74149C089BF01F00203C
-:1051A8001897C0E149789008F8081900C29449682E
-:1051B8001AD649CC1AD8F01F00162FEDC1C8089A84
-:1051C8000A9B781CF01F00180E9B6DECF01F00174F
-:1051D8005C5CC12048B890093008F0091900C08407
-:1051E80048981AD6492C1AD8F01F00092FED0E9CA2
-:1051F800F01F0010DC2A0E9CF01F000EDA2ADC2AB1
-:10520800000016A280038CE4800383E8800094C425
-:10521800000016A080037C8480013DB48000D31870
-:10522800800383FC8002E7368001153880038428D8
-:105238008000D13CD421149518971696580CC0417B
-:10524800E06C00F6D822F01F00163FF8E9DCC00831
-:10525800F0041800C041E06C00FFD822491890887B
-:10526800EDB80001C0E16C48201D1AD848E85C651B
-:1052780048EC1AD51AD61AD71AD8F01F000D2FAD38
-:105288006C4858485F0948B8B0893008EE040004F3
-:10529800E9680068F01F00088F7CD82A800050ACAD
-:1052A800000016A280038D1080038450800094C4EF
-:1052B80000007B0780009504D43118971695F01FDD
-:1052C80000353FF8EDDCC008F0061800C5E0EE0632
-:1052D80000083009F1690015ECC8FFF8EE0803244E
-:1052E8005804C5304AC89088EDB80001C0A14AB832
-:1052F800201D4ABC1AD41AD41AD8F01F002A2FCD60
-:10530800EB1800726EF91238F20817B00838F0047A
-:1053180017804A589088EDB80001C051F01F00234B
-:105328004A38910CECC8FFEA3019EE08032B089AAA
-:105338000A9C5C7AF01F001FE7DCC008C19049A8EE
-:105348009088EDB80001C0F16A48201DF3D3B00879
-:105358001AD91AD41AD849181AD5497C1AD8F01F5C
-:1053680000112FAD0C073008EF680015C10830197F
-:10537800ECC8FFF8EE060006ED690015EE080329F3
-:105388000819EE080929C038E06300FF069CD832E6
-:10539800800050AC000016A680038C7880038474CB
-:1053A800800094C4000016A2800095040000153403
-:1053B800800109C08003848CD43116941493189703
-:1053C800580CC1014AB89008F8081900E08400D3C5
-:1053D8004A98201D4A9C1AD8F01F00293FFC2FED3F
-:1053E800D832300BF01F0027189B18960E9CF01F20
-:1053F80000263FF8EBDCC008F0051800E08000BB91
-:105408004A289088EDB80001C0E1F1D3C010201DF2
-:105418001AD849981AD449EC1AD61AD71AD8F01FAC
-:1054280000182FAD49B89088EDB80001C0D14928BF
-:10543800201D499C1AD8F01F0012F7D3C010089CF1
-:10544800F01F00162FED49189088EDB80001C4B17F
-:105458004938118948789088EDB80001C4415C69E1
-:10546800EE09002871185808C1C11092109EC21880
-:10547800000016A280038D20800384C0800094C49D
-:1054880080004E84800050AC000016A6800384D8AB
-:10549800000016A080037C8480013DB40000153014
-:1054A800EE09000AF5320015F2CAFFF8EE0A032EDB
-:1054B8006F5A201D580AF40C1700F5FC1004580800
-:1054C800F00B1700F1FB10041AD21ADE1ADC1ADAF4
-:1054D8001ADB1AD84A881AD74A8C1AD91AD8F01F50
-:1054E80000282F6D5806C46058045F183009F2036D
-:1054F80019005F1AF5E80008F2081800C3B0EAC8F6
-:10550800FFEAEE08032C580CC3506C4858785F0B20
-:1055180058485F0AF7EA100AF20A1800C0515828DA
-:10552800C0305838C2715C73089B069AF01F00158A
-:10553800EAC9FFEA300AEE090328F0030B0A4928F2
-:105548009088EDB80001C0A1EE0903281AD848A830
-:1055580048EC1AD8F01F000A2FED48DB0C9C2F8569
-:10556800EE050923F01F000B0C9B0E9CF01F000A90
-:10557800DA3ADC3A80038D2080038348800094C4A3
-:105588008002E736000016A6800384FC800055A040
-:105598008000D662800052C0D431149518971696B0
-:1055A800580CC041E06C00F6D832F01F001D3FF8DF
-:1055B800E9DCC008F0041800C041E06C00FFD832F4
-:1055C8003009EE040008F16900683019F169001526
-:1055D80049489088EDB80001C171E8C8FFF8EE08A5
-:1055E8000323F01F00114918201D1AD37008F8086A
-:1055F80001081AD848E85C7548EC1AD51AD61AD8A2
-:10560800F01F000D2FAD2F84EE04032C580CC06042
-:105618000C9B0E9CF01F0009300CD832800050AC57
-:10562800000016A2800095040000153480038D50F8
-:1056380080038508800094C4800052C0D421189744
-:10564800580CC1C0F01F000E18965BFCC060EF3B01
-:10565800000B5C5CF01F000B48B89088EDB80001A7
-:10566800C0A148A8201D48AC1AD61AD71AD8F01FCE
-:1056780000092FCD30094888B089D82280002044FD
-:1056880080002068000016A280038D3C80038538C6
-:10569800800094C400007B07D4314898189711897A
-:1056A80048889088EDB80001C3015C69F8090028B2
-:1056B80071185808C08110951096C0D80000153090
-:1056C800000016A2F809000AF5350015F2CAFFF81D
-:1056D800F80A03266F5A201D580AF40C1700F5FC27
-:1056E80010045808F00B1700F1FB10041AD51AD64D
-:1056F8001ADC1ADA1ADB1AD84C281AD74C2C1AD901
-:105708001AD8F01F00422F6D0E9C3005F01F004084
-:10571800EEC6FFBC0A924BF34BA45C5CF01F003E44
-:105728006C08300B2FF5109C5808C1D0F01F003BB7
-:105738006C0C300BF01F003A6C0C300BF01F00396A
-:105748006C0C300BF01F00388688EDB80001C0B132
-:10575800201D1AD26C0870484B4C1AD81AD4F01F66
-:10576800002B2FCD2FC65845CDC16F5C580CC1D02A
-:10577800300BF01F002A300B6F5CF01F002D6F5CA0
-:10578800F01F002C4A385C5C9088EDB80001C0D14D
-:10579800201D5C6C1ADC6F5870481AD849984A6CFE
-:1057A8001AD8F01F001A2FCD6FEC580CC060F01FEC
-:1057B80000236FECF01F00224A28F1260000495808
-:1057C8009088EDB80001C0E1ECC8FFEAEE080328B4
-:1057D800201D1AD848B81AD649BC1AD8F01F000B91
-:1057E8002FCD2EA6EE06032C580CC060F01F001714
-:1057F8003008EE0609280E9CF01F0014D83200006D
-:1058080080038CC880038348800094C480002044AF
-:10581800000016A280006F288000D6588000D6624B
-:105828008000D65C8000D668800385608000D66ED4
-:105838008000E50480038588800111C88001122852
-:1058480000001530800385B08002E28CD4211897BF
-:10585800580CE080007EF01F00413FF8EDDCC008E6
-:10586800F0061800C750EE0600287114089CF01FB7
-:10587800003CEBDCC008C0D10A9B089CF01F003933
-:105888000A9B089CF01F00380A9B089CF01F0037F1
-:105898004B789088EDB80001C0D1F1D5B0081AD87E
-:1058A80068481AD84B381AD44B3C1AD8F01F003322
-:1058B8002FCD4AF43FF8F0051800C1718809300867
-:1058C800F0091900C0D4EE0600287118201D1AD856
-:1058D8004AB81AD64ABC1AD8F01F00282FCD0C0790
-:1058E8003018EF68006CC368EE0600083009F169EB
-:1058F800006CEE0600280E9C711BF01F00238888A0
-:10590800EDB80001C0E1ECC8FFEAEE080328201D4D
-:105918001AD849B81AD649DC1AD8F01F00182FCD62
-:105928002EA6EE06032C580CC060F01F0019300894
-:10593800EE06092848E89088EDB80001C0B149088A
-:10594800201D494C1AD8F01F000D2FEDC038E06516
-:1059580000FF0A9CD8220000800050AC8000E504BB
-:105968008000D6588000D6628000D65C000016A25F
-:1059780080038D2C800385CC800094C480038CD850
-:10598800800385F880004D98800385B08002E28C02
-:1059980080038624D4211897580CC0E14BE890085E
-:1059A800F8081900C7744BD8201D4BDC1AD8F01F13
-:1059B800003D2FEDD82278264BB85806C121F12595
-:1059C8000000F01F003A0E9CEF34000BF01F003867
-:1059D800089B5C5CF01F00370A07EF660068D82256
-:1059E80011894AD89088EDB80001C2C15C69F809EC
-:1059F800002871185808C04110951096C098F809E9
-:105A0800000AF5350015F2CAFFF8F80A03266F5A9E
-:105A1800201D580AF40C1700F5FC10045808F00B68
-:105A28001700F1FB10041AD51AD61ADC1ADA1ADB99
-:105A38001AD849A81AD74A0C1AD91AD8F01F001927
-:105A48002F6D4998F1260000ECC5FFF0EE05002502
-:105A58006A1C580CC1F078485898C1C05808C1A0B1
-:105A6800F01F001648C85C5C9088EDB80001C0C102
-:105A7800201D5C6C1ADC6A181AD84888490C1AD898
-:105A8800F01F00082FCDEE0600260E9C6D1BF01FA0
-:105A9800000DD822000016A2800382988003864455
-:105AA800800094C400001530800056A08000204477
-:105AB800800020688003834880010CEC8003865CAA
-:105AC80080005854D4214B0818979009169630082E
-:105AD800F0091900C0F44AD8F12800001AD8F1DBFF
-:105AE800B0081AD84AA81ADC4AAC1AD8F01F002AFB
-:105AF8002FCD4AA811893008F0091800C0414A8CF6
-:105B0800F01F00253FB8F0061800C3C15807C110A0
-:105B180049E830091188F2081800C0B53039F20890
-:105B28001800E08900075C68EE080028711BC0288F
-:105B3800300B0E9CF01F001B49389088EDB800010F
-:105B4800C1114928F1280000201DF0C9FFEAEE091B
-:105B580003291AD91AD848E8493C1AD8F01F000E68
-:105B68002FCD48A6ED2800002EA8EE08032C580CCF
-:105B7800C090F01F000EED28000030092EA8EE0896
-:105B88000929D822000016A200001530800382A837
-:105B980080038680800094C4000016AB800386B41E
-:105BA80080004D98800385B08002E28CD42118973C
-:105BB8001696580CC4E04A8890093008F009190074
-:105BC800C0C4F1DBB0081ADC1AD84A481ADC4A4CBF
-:105BD8001AD8F01F00242FCD4A3811893008F0094F
-:105BE8001800C0414A1CF01F001F3FB8F0061800FB
-:105BF800C301499890093008F0091900C084497810
-:105C08001AD749BC1AD8F01F00172FED0E9CF01FA9
-:105C180000194998F126000048F89088EDB800016D
-:105C2800C0E1ECC8FFEAEE080328201D1AD848B8DE
-:105C38001AD6492C1AD8F01F000B2FCD2EA6EE0627
-:105C4800032C580CC060F01F000E3008EE0609281F
-:105C5800D8220000000016A2800382D0800386C8E4
-:105C6800800094C4000016AB800386B4800386F8D5
-:105C78008000564400001530800385B08002E28C15
-:105C8800D4311897149678CC94CAF80A000A8FCAA7
-:105C98001093169512946E385808C1504A5CF01F3C
-:105CA8000026EF18001A3509F0090D083008F00928
-:105CB8001900C0414A1CF01F0020EF08001A2FF8F5
-:105CC800EF58001A49E89088EDB80001C171202DFD
-:105CD800304A1A9C089BF01F001BF01F001BEF386E
-:105CE8000014F3D3C01050091ADC1AD849781AD610
-:105CF800497C1AD8F01F00102FAD0A9AEF3B001408
-:105D08000C9CF01F001409890998B168F1E9118801
-:105D180009A9F1E9108809BBEF3C0014F5D3C010BC
-:105D2800104BF01F000D0C9CF01F000CD832000027
-:105D380080037FB4800094C4800384D4000016A23A
-:105D48008002E736800096A88003827C800387184B
-:105D580080007130800020088000D13CD431204D73
-:105D6800502C503BFAC4FFCC10916800681268238D
-:105D780068386846129568545819E088000E4B58E0
-:105D880090093008F0091900E08402B0201D4B2862
-:105D98004B2C1AD8C2F85801C0C14AE89008E2084A
-:105DA8001900E08402A3201D4AB84ADC1AD8C22888
-:105DB8005802C0C14A789008E4081900E0840296A5
-:105DC800201D4A584A7C1AD8C158501A500837CB57
-:105DD800301CF01F0025401A18974008C10149D807
-:105DE8009008F8081900E0840281201D49A849FCA0
-:105DF8001AD8F01F001F2FEDE08F0278402999383C
-:105E0800B829300840395C729900B831992599DA77
-:105E180099E999F29943F9480050F9480044F9483A
-:105E28000048F948004C5803E080008C3058F95875
-:105E38000074F01F0010EF4C00784865580CC1D171
-:105E48008A08F8081900E084020C1AD748A8C8582C
-:105E5800000016A280038CA880038744800387640F
-:105E6800800387848002DC3C800387A8800094C478
-:105E780080011200800382F88A88EDB80001C131E0
-:105E88006E08201D8EA51AD8F01F00366FE8500541
-:105E98001ADC1AD84B481AD84B484B5C1AD8F01F52
-:105EA80000352FAD6E258EAA6FEC5805C1210E9BCB
-:105EB800F01F00315C5CC2504B089008EA081900DA
-:105EC800E08401CF1AD74A984ADC1AD8E08F0175C6
-:105ED8004ACBF01F002DF5DCC008C0E04A789009D5
-:105EE8003008F0091900E08401BC201D5C6A49F8FB
-:105EF8001ADA1AD7C499EF3C0014149BF01F002338
-:105F08006FEC0E9A4A2BF01F002349C8908CE21CB4
-:105F18000002E08001A76FE8F11900141AD970197E
-:105F28001AD9F11900121AD970081AD848E81AD8DB
-:105F380048E8499C1AD8F01F000F2FADE08F018F59
-:105F4800F01F00161892C2F148C89008F808190006
-:105F5800E08401871AD749281AD8492CC2D90000E9
-:105F6800800096A88003825C800382F88003880CF6
-:105F7800800094C480011320000016A280038824A6
-:105F88008003B409800112608000200880005C88CA
-:105F9800800111F8800388848000E34080038C6CC2
-:105FA800800387E04B880E9BB083F01F0038EF63B7
-:105FB800006FEF63006CEF63006DEF63006E6E2897
-:105FC8004B355808E08100BD049B0E9CF01F003142
-:105FD800E7DCB0086EFCF01F0030E6C8FFEAEE0808
-:105FE800092C8A88EDB80001C0A14AC8201D1ADC16
-:105FF8004ABC1AD31AD8F01F002B2FCD2EA34A451E
-:10600800EE0303285808C0B18A09F0091900E08492
-:1060180001281AD74A184A4C1AD8CCE84A3B049C9B
-:10602800F01F00234A3B049CF01F00234A3B049CBA
-:10603800F01F0023304A4A3B049CF01F00234A38D3
-:106048003009B0898A88EDB80001C0C1EE03032881
-:10605800201D1AD849181AD249DC1AD8F01F001185
-:106068002FCD4898118948A89088EDB80001C5310E
-:106078005C69EE09002871185808C2B11093109590
-:10608800C3080000000015308000D658000016A292
-:1060980080004E0C8002E2A480038C6C800388A8E8
-:1060A800800094C4800388C480005BB48000D668F4
-:1060B800800069888000D65C800055A08000D66288
-:1060C800800067B48000D67200007B07800388F4E4
-:1060D800EE09000AF5330015F2CAFFF8EE0A0325A7
-:1060E800201D5808F00B1700F1FB10046F5A580ACE
-:1060F800F40C1700F5FC10041AD31AD51ADC1ADAB6
-:106108001ADB1AD84B681AD74B6C1AD91AD8F01F51
-:1061180000362F6D049C4B598EAA0E9BF01F00343D
-:106128005C5CE080009F4B3890093008F00919004A
-:10613800E08400971AD74AA84AFC1AD8C3D88A8894
-:10614800EDB80001C0F1301B0E9CF01F002C6F58F9
-:106158001ADC1AD84A281AD74A9C1AD8F01F0022E3
-:106168002FCD8EAA4A7B049CF01F00275C5CC120BF
-:106178004A0890093008F0091900C724201D5C6CF2
-:1061880049781ADC1AD71AD84A0CF01F00172FCDF5
-:10619800C678049CE06B00FFF01F001DEF4C005414
-:1061A8004945580CC0D18A08F8081900C5941AD76F
-:1061B80048B8498C1AD8F01F000C2FEDC5188A88EA
-:1061C8004959E21800021389C4505C69EE09002895
-:1061D80071185808C2211095109BC27880038C6CE6
-:1061E80080038348800094C48000523C8000E350C0
-:1061F800000016A28003891080004E84800389382D
-:106208008003B4098000D7708003884C8000DC04C8
-:106218008003896400001530EE09000AF535001581
-:10622800F2CAFFF8EE0A032B7843201D5808F00A3B
-:106238001700F1FA10041AD51ADB1AD31ADC1ADA85
-:106248001AD84AC81AD74ACC1AD91AD8F01F002B1C
-:106258002F6D4ABB6F5CF01F002B300CC0283FFC31
-:106268004A95580CC0E08A093008F0091900C3A4FF
-:106278004A68201D4A6C1AD8F01F00202FEDC32849
-:106288008A88EDB80001C2914A284A396E204A31FD
-:106298005800F2001700F00017108E226E484A09C5
-:1062A8006EF35808F20117108E355818C0316FEC8C
-:1062B800C058301B0E9CF01F001B49481AD05C7256
-:1062C8001AD15C751AD21AD31AD51ADC496C1AD7A6
-:1062D8001AD8F01F000A2F8D8907EF660014300CBA
-:1062E800C0580E9CF01F00113FFC2FCDD832000083
-:1062F80080038C6C80038348800094C480006434DD
-:106308008000D66E000016A280038CA880038988BE
-:1063180080037BDC80037BE480037DC880037DC42D
-:1063280080004E84800389A8800056A0D431203D87
-:10633800300730194B38E06504001892169191091E
-:10634800E06007D00A9350070E964AF4C22826CC7C
-:1063580058ACE08B001F4ADEFC0C032F3016C198A6
-:106368003006C178680CF01F002AE7DCB010C118AD
-:1063780030185008C0E8680CF01F0025EBDCB0109E
-:10638800C0883017C068680CF01F0021E1DCB0102D
-:106398004A0A029B049CF01F00205BFCCD91580622
-:1063A800C161498870080438C0A4E208032BFACCFC
-:1063B800FFF8F01F001A402B580BC0A14988201D78
-:1063C800498C1AD8F01F00182FEDC198300B502BAC
-:1063D800F1D5C0100C99FAC5FFFC300650161AD535
-:1063E8001AD6402E5C731ADEF9D0C0101AD70C9A50
-:1063F8001AD31ADB0C9BF01F000D2FAD2FDDD83AF6
-:1064080000007AB800007AC0800382208002DC2C69
-:10641800800389E08002E278800098FC0000000C8C
-:10642800800389EC800094C480005D64D4211897AF
-:106438001696580CC041E06C00F6D8224C1890888B
-:10644800EDB80001C0A14C08201D1ADB1ADC4BFC7A
-:106458001AD8F01F003F2FCD4BA89088EDB8000147
-:10646800C0F16C481AD8ED1800241AD8ED18001C91
-:106478001AD84B584B7C1AD8F01F00352FCD0C9BDF
-:106488000E9CF01F0035EDDCB008ECC8FFEAEE0802
-:1064980003285808C0804B18201D4B1C1AD8F01F21
-:1064A800002C2FED6EFCF01F002FECC8FFEAEE0861
-:1064B800092C4A489088EDB80001C0A14A28201D3F
-:1064C8001ADC4A9C1AD61AD8F01F00212FCDECC826
-:1064D800FFEAEE0803285808C10149A99209F00902
-:1064E8001900C08449881AD74A0C1AD8F01F001816
-:1064F8002FEDE06C00FFD8220E9B2F06EE0600263B
-:106508006C1CF01F001B49BB6C1CF01F001B49BB17
-:106518006C1CF01F001B6C1C304A49ABF01F001AA2
-:106528000E9CF01F001A583CE08B00075C5C300A98
-:106538000E9BF01F0017F01F00178F7CD82A000051
-:10654800000016A2800382E8800389F0800094C4CA
-:1065580080038A1480004E0C80038A3880039DC013
-:106568008002E2A4800388A8800388C48000D658EB
-:10657800800069888000D65C80005ACC8000D6688C
-:106588008000659C8000D6728000204480002A002C
-:1065980080009504D43118971695580CC041E06CCA
-:1065A80000F6D832F01F00473FF8EDDCC008F006CF
-:1065B8001800C041E06C00FFD832ECC8FFF8EE08C4
-:1065C80003285808EFD6E108F1F91868F7B901FF70
-:1065D800F1F91E68EE0600083049F1380068F20843
-:1065E8001800E088001E4B89920A3009F20A190047
-:1065F800C0A41AD84B581AD74B5C1AD51AD8F01F12
-:1066080000352FCD0C070A9C3006301BEF6600685A
-:10661800F01F0031E06C00FBEF66006CD8325805C3
-:10662800C1504AE89088EDB80001C101EAF800A815
-:106638001AD8EAF8009C1AD8EB3800AD1AD84A38AC
-:106648004A7C1AD8F01F00232FCDECC8FFF8EE08BB
-:1066580003245804C1D049C89088EDB80001C1810D
-:10666800EE060008301BF1330068F132006C0E9C16
-:10667800F01F001C4958201D1AD41AD21AD31AD751
-:106688001AD51ADC498C1AD8F01F00122F8D0A9BD4
-:106698000E9CF01F0016EE0600033002E738006C6F
-:1066A800E4081800C7100A9CF01F00113FF8E9DC45
-:1066B800C008F0041800C1D13018E768006CC4A8FD
-:1066C800800050AC000016A280038C8C80038A4C9A
-:1066D800800094C48000E124000016A880038A7C0E
-:1066E80080004E8480038AB0800052C08000E50498
-:1066F800EE060028E762006C711B0E9CF01F002359
-:106708004A389088EDB80001C0E1ECC8FFEAEE080D
-:106718000328201D1AD849F81AD649FC1AD8F01FA0
-:10672800001F2FCDECC3FFEAEE03032C580CC0600A
-:10673800F01F001B3008EE03092849589088EDB86F
-:106748000001C0814938201D496C1AD8F01F001378
-:106758002FED48F89088EDB80001C1610E9C301B00
-:106768000C07EF37006CF01F001048A81AD65C64BD
-:106778001AD41AD71ADC48DC1AD51AD8F01F000721
-:10678800300C2FADD832D83A80004D98000016A2B0
-:1067980080038C8C800385B0800094C48002E28CD6
-:1067A8008003862480004E8480038AF0D4311897B1
-:1067B8001695580CC041E06C00F6D832F01F003E28
-:1067C8003FF8EDDCC008F0061800C041E06C00FF9F
-:1067D800D8324BA89088EDB80001C1A1EE06000898
-:1067E800F1340068F133006C4B58301B11820E9C59
-:1067F800F01F00344B48201D1AD21AD31AD41AD7C6
-:106808001AD51ADC4B1C1AD8F01F00312F8DEE0652
-:1068180000083009F13A006CF20A1800C060F1393A
-:1068280000682FF9F1690068EE060008F134006885
-:106838003088F0041800E08800224A68900930087F
-:10684800F0091900C104301B0E9CF01F001E49E816
-:10685800201D1AD41AD71ADC49FC1AD51AD8F01FE9
-:10686800001C2FAD30080C070A9CEF680068301B2D
-:10687800F01F001AE06C00FBD83249181189300863
-:10688800F0091800C0500A9B0E9CF01F0015EE0678
-:1068980000043008E939006CF0091800C6100A9C99
-:1068A800F01F00103FF8F00C1800C1D13018E9684B
-:1068B800006CC3E8800050AC000016A800007B07FD
-:1068C80080004E848003824C80038B2C800094C40B
-:1068D800000016A280038B6C8000E124800052C067
-:1068E8008000E5040E9CF01F001F49F89088EDB861
-:1068F8000001C0E1ECC8FFEAEE080328201D1AD801
-:1069080049A81AD649AC1AD8F01F001A2FCDECC4E2
-:10691800FFEAEE04032C580CC060F01F0017300883
-:10692800EE040928EE0600083009F169006C48E811
-:106938009088EDB80001C1410E9C301BEE060006A0
-:10694800ED37006CF01F000D48881AD71ADC48CCC8
-:106958001AD51AD8F01F0007300C2FCDD832D83AE4
-:1069680080005644000016A28003824C800385B044
-:10697800800094C48002E28C80004E8480038B984F
-:10698800D4311294580A5F1830091497F204180089
-:106998005F0318961695E7E80008F2081800C55036
-:1069A800335CF01F00406CC98EC8F20800088DC81F
-:1069B8006C385808C0614BC89088EDB80001C231E6
-:1069C8004BA89088EDB80001C0918EC81AD84B88A2
-:1069D8004B8C1AD8F01F00382FED4B889088EDB8F3
-:1069E8000001C0C14B28201D4B5C1AD8F01F003293
-:1069F8008ECB6E1CF01F00332FEDED08001A2FF818
-:106A0800ED58001A0A9AED3B00140E9CF01F002E58
-:106A18004A689088EDB80001C1218EC8201D1AD897
-:106A28001ADCED38001430091AD91AD71AD51AD831
-:106A380049F84A6C1AD8F01F00202F8D0E9CF01FC1
-:106A48000024335CF01F002358075F081063C160FF
-:106A580049689088EDB80001C0C1201D1AD5ED38ED
-:106A680000141AD8492849CC1AD8F01F00132FCD82
-:106A78000A9B0C9CF01F0019C1385804C11048B873
-:106A880090093008F0091900C0B44898201D5C64CA
-:106A98001AD7493C1AD41AD8F01F00072FCDD83A74
-:106AA8008000A300000016A6000016A280038C98A0
-:106AB80080038BC8800094C4000016A080037C84E7
-:106AC80080013DB48000713080038BD88000D13CB8
-:106AD8008000A2E680038C108000585480038C3C10
-:106AE800D42148C8189716969088EDB80001C0A11F
-:106AF8004898201D1ADB1ADC488C1AD8F01F0008A9
-:106B08002FCDF7D6C0100E9CF01F0006D82200002B
-:106B1800000016A280038D0480038C50800094C46A
-:106B28008000D984D4213007C1B80C9C0E9B2FF665
-:106B3800F01F000D1895C0F078485808C0C1F01F24
-:106B4800000B0A9CEB35000BF01F00090A9B5C5CEC
-:106B5800F01F00085846CEA12FF75827C03030063E
-:106B6800CE5BD82280002024800056A080002044DC
-:106B780080002068D4214978F00C07085808C071B3
-:106B88004959F20C070AF00A1800C1F04929F20C19
-:106B9800070AF4081800C1904909F80C001CF0080D
-:106BA8000017A567EE0C0027120748D99289EDB99E
-:106BB8000004C0C11AD848B81ADA48BC1AD71AD87B
-:106BC800F01F000A2FCDC02830070E9CD8220000E5
-:106BD8000000153C0000153800007B2C000016A6AC
-:106BE8008003901080038DE0800094C4D421169710
-:106BF8001496F01F0005C0609828AC087808301C6F
-:106C08008F08D82280006B7CD43149B849B91092DA
-:106C1800F00C0708F20C070718961AD7498C1AD8EF
-:106C2800EC060014F01F001749732FEDA36431E53B
-:106C3800EE070018A568E8080008E60800087009CB
-:106C48005809C0C090BA90AB1ADB1AD9702848FC12
-:106C58001AD81ADAF01F000B2FCD2FF7E406070811
-:106C68005C57EE051800F9B70000EE081800CE11C1
-:106C7800D8320000000015380000153C80038DF460
-:106C8800800094C400007B2C80038E0CD431201D1E
-:106C98004A181896F00C07073005F80C001849F048
-:106CA800A36849F149F231E349F4EE070019A569EF
-:106CB800F0090009E0090009720A580AC1D0923B9C
-:106CC800922A8289F40B010CE2190010F8050005DC
-:106CD8005C855809C1105C7B5C7AF3D5C010201D17
-:106CE800492C1AD91ADB1ADA1AD61AD25068F01FA8
-:106CF80000102FAD40082FF7E80607095C57EE0390
-:106D08001800F9B70000EE091800CD010A9C2FFD04
-:106D1800D83200000000153C00007B2C000016A6AD
-:106D280080038DA00000153880038E28800094C44D
-:106D3800D421F01F000B48B8EFDCB0109088EDB8F4
-:106D48000004C0A10E985C781AD84878487C1AD8F4
-:106D5800F01F00072FED0E9CD822000080006C94D5
-:106D6800000016A680038D7080038E4C800094C4AA
-:106D7800D4214A181897169631D9F20C1800E088D1
-:106D8800000F90093008F0091900C33449B81ADC1B
-:106D980049BC1AD8F01F001B2FEDD822F60B001A99
-:106DA8009088F80C0019E2180010A569F20A002969
-:106DB800495AF40903055808C0A04908201D1ADCDF
-:106DC800492C1AD51AD8F01F000F2FCD0A9CF01F96
-:106DD80000103008EC060016EE07001748A9A56752
-:106DE800EE060026F20600068D288D08AC28AC3881
-:106DF800D8220000000016A280038DD080038E6880
-:106E0800800094C400007B2C80038E888002E28C72
-:106E1800D4314948F80C00121896F00C0707A36201
-:106E2800491331E44915EE070018A568E40800087D
-:106E3800E60803085808C0500E9C0C9BF01F000C75
-:106E48002FF7EA0607085C57EE041800F9B70000A8
-:106E5800EE081800CE914839300CF2060B08D832EB
-:106E68000000153C00007B2C0000153880006D7870
-:106E7800D4211897580CC0E14A189008F80819004E
-:106E8800C3C44A08201D4A0C1AD8F01F00202FED51
-:106E9800D82249FAF40B070CF8CEFFFFF80C001CB7
-:106EA800A56CF40B0B0E3008F60B0019F809002935
-:106EB800498CF809000993289308B228B23831E9B7
-:106EC800F20E1800C031F40B0B0848D89088EDB8C2
-:106ED8000004C10148E8F00B07081AD848E8F00B8D
-:106EE80007081AD848781AD748CC1AD8F01F0007CC
-:106EF8002FCD0E9CF01F000AD8220000000016A219
-:106F080080038D8480038E98800094C40000153C13
-:106F180000007B2C0000153880038DE08002E28C95
-:106F2800D42118970E9CF01F0005C060780C0E9BAA
-:106F3800F01F0003CF8BD82280006B7C80006E7816
-:106F4800D421496818971696149512949088EDB82C
-:106F58000001C0C14928201D1AD91ADA1ADB1ADC27
-:106F6800490C1AD8F01F00102FAD301B0A9CF01FD7
-:106F7800000FC080301B0A9CF01F000C784858088E
-:106F8800C0510C9B0E9CF01F000A5804C0500A9B6D
-:106F9800089CF01F0008D822000016A280038D600C
-:106FA80080038EAC800094C48000202480006AE8AE
-:106FB80080006E78D4211897F01F00061898C02119
-:106FC800D8220E9A782C700990ABF01F0003DA2AA9
-:106FD80080006B7C80006F48D42116961494189515
-:106FE800F01F001E1897C021D8229838982B7809CE
-:106FF800F6081900C2B2F5D8C0105804C050F20AF9
-:107008000708AC88C068F20A0709AC892FF8B838B5
-:1070180049389088EDB80004C0D10D881AD86E0898
-:107028001AD88EB81AD848F848FC1AD8F01F000F9A
-:107038002FCD8E3B8E28F6081900C0710A9A5C7B0A
-:107048006E2C6E09F01F000ADA2A0A9A5C7B782CEB
-:10705800F01F0007D82A000080006B7C000016A6ED
-:1070680080038D9080038ED4800094C480006F4884
-:10707800D4211897F01F00231896C021D8224A2837
-:107088009088EDB80004C0D178081AD898A81AD802
-:107098008CB81AD849D849EC1AD8F01F001E2FCD41
-:1070A8008C398C28F0091900C020DA2A49A8908860
-:1070B800EDB80004C1614998201DF0070709498807
-:1070C8001AD9F00707081AD8F20818005F191AD950
-:1070D8006C081AD848D8493C1AD8F01F000E2FADB2
-:1070E8006C2C6C090E9A8CABF01F000F48C8F00787
-:1070F800070948A8F0070708F00918005F1CD822FC
-:1071080080006B7C000016A680038DBC80038EE88F
-:10711800800094C4000016A2000015380000153C39
-:1071280080038F0080006F48D43118951697149308
-:10713800580CC0311894CBD8F60B001A4A58F00BEB
-:107148000708F0080019A569F20A00294A2AF40973
-:1071580003095809C1604A1A940B300AF40B190044
-:10716800C0A4201D1AD849E81AD949EC1AD8F01F2A
-:10717800001E2FCD49780E9BF007070CF01F001B4F
-:10718800301B8ACCF01F001A18961894E0800092E1
-:10719800189B30098ACA0A9CF01F00168A485C8C22
-:1071A800F00C1900C2C048D9920A3009F20A190035
-:1071B800C0B45C781AD848A81AD648FC1AD51AD888
-:1071C800F01F00092FCD0C9C3004F01F000CC718CD
-:1071D8000000153800007B2C000016A280039004E4
-:1071E80080038F2C800094C480006D788002DC3C82
-:1071F8008000CEC480038F548002E28C4AE9F207F3
-:10720800070AF4CBFFFFF40A001AA56AEE07001874
-:10721800F2070B0BF40800284A8AF4080008300A21
-:107228009123B02C9106B03A31E8F00B1800C03128
-:10723800F2070B0A4A084A29F0070708F207070964
-:10724800F0091800C1C149F9920A3009F20A190077
-:10725800C0A4201D1AD81AD849B849CC1AD8F01F8A
-:10726800001C2FCD4948F00707095809F9BA01FF52
-:10727800F3DAE109F9B9001DF0070B0949189088FC
-:10728800EDB80004C1618AC848DAF407070A201D6E
-:107298000D891ADA488AF407070A1ADA1AD91AD8A5
-:1072A80048981AD648BC1AD71AD8F01F00092F8D4B
-:1072B800089CD8320000153800007B2C0000153CD3
-:1072C800000016A28003900480038F90800094C46D
-:1072D80080038FBCD431203D1690502A1895F01F9A
-:1072E8000021301BE5DCB010F9D2C010F01F001EE1
-:1072F8001896C2C049D8EA050019F0050707A3691E
-:10730800189431E849A1189349ABEE070016A56611
-:10731800F2060006F60600066C0B580BC0B0089C77
-:107328008CAA50095018F01F00148CAA4018140495
-:1073380040092FF7E205070A5C57EE081800F9B76D
-:107348000000EE0A1800CE110696402A5800E1F611
-:107358001A00580AF5F21C000C9C2FDDD8320000E8
-:1073680080006C948002DC3C0000153C000015385D
-:1073780000007B2C8002E736D431303818971693FA
-:107388001494F00C1800E088001B48989009300805
-:10739800F0091900C0353005CA2848681ADC3005DC
-:1073A8001AD8485CF01F00052FEDC998000016A2F6
-:1073B80080038DB080038FE0800094C4F80C001A1D
-:1073C8004C88F00C0708F0080019A569F20A002992
-:1073D8004C5AF40903095809C1604C4A940B300A05
-:1073E800F40B1900C0A4201D1AD84C181AD94C1C2B
-:1073F8001AD8F01F00412FCD4BA80E9BF007070CA1
-:10740800F01F003E0892301B5C72049CF01F003C89
-:1074180018961895C640049A069BF01F003AEE0786
-:1074280000184B03E6070702E4020012A562E4080D
-:1074380000224AD83001F0020002300B8506A4244D
-:10744800A4310E9CF01F0030852CE60707082FF8A2
-:10745800E6070B0831E9F2081800C031E6070B010E
-:107468004A084AA9F0070708F2070709F0091800AF
-:10747800C1C149E9920A3009F20A1900C0A4201DC5
-:107488001AD81AD849A84A2C1AD8F01F001B2FCD91
-:107498004948F00707095809F9BA01FFF3DAE10981
-:1074A800F9B9001DF0070B0949089088EDB80004E8
-:1074B800C1610D884959F2070709201D1AD9489951
-:1074C800F20707091AD91AD848985C74491C1AD4C3
-:1074D8001AD61AD71AD8F01F00082F8D0A9CD8324E
-:1074E8000000153800007B2C000016A280038DB028
-:1074F80080038F2C800094C480006D788002DC3C6F
-:107508008002E736800020240000153C80038F901D
-:1075180080038FBCD401E06A05A0300B482CF01F13
-:107528000003D80200007B2C8002E8BCD421202D67
-:10753800FE782800501C500B3FF7109E301CC308E3
-:10754800300B7049EDB90001CFD17049EDB9000990
-:10755800CFD140195809C0B01396F2C5FFFE138960
-:107568005015EDE91089F7D9D010C038F7D7D010E9
-:10757800913B7049EDB90000CFD17C2B40095C8B61
-:107588005809C080B29BF7DBC108B28B40092FE9CC
-:107598005009F80A1900E0880006202A5C8A580A6F
-:1075A800CD01FE78280070482FEDD822580CC06015
-:1075B800FE782800300A7019C058FE78280030FA82
-:1075C8007019F3DAD20491195EFC202D3008E069B5
-:1075D80013885018F8090249C058401A2FF82FFA92
-:1075E800501A1238CFB12FED5EFCD703D401303CCE
-:1075F800F01F0005C060303CF01F0004F01F0004BD
-:10760800D402D6038000A3708000A38880014014B0
-:10761800D401580CC060300B303CF01F0004D80275
-:10762800303CF01F0003D8028000A31A8000A35C3E
-:10763800D401202D3008B888303CF01F0022303C9F
-:10764800F01F0021309CF01F001F307CF01F001D30
-:107658003008501840192FF950192FF8E04861A840
-:10766800CFA1309CF01F00193008501840192FF98D
-:1076780050192FF8E05886A0CFA1307CF01F0013D6
-:10768800340B300A492CF01F0013FE782800302AEA
-:1076980070C9F3DAD108308A91C970C9F3DAD08495
-:1076A800301A91C970C9F3DAD06191C970C9F3DA97
-:1076B800D001303C91C9F01F00082FEDD80A000016
-:1076C8008000A2A88000A2BE8000A2E6800075F417
-:1076D8008000A3A08000A388D42120AD4C68E3B823
-:1076E8000001D5533017FE6810007109F3D7D20294
-:1076F800303AF1490040E06B1B00EA1B00B7FE7C02
-:107708000C00F01F003E310A201D30081ADA0E99CD
-:10771800109B308AFE7C0C00F01F003930080E994F
-:107728000E9A109BFE7C0C00F01F0036300BFE7C7E
-:107738000C00F01F0035FE7C0C00F01F0034300CEC
-:107748001ADC18981899189A1ADC189BFE7C0C00F9
-:10775800F01F002F0E9CF01F002F302BFE7C0C001A
-:10776800F01F002DF01F002DD503304AFAC7FFD0B7
-:107778004ABB0E9CF01F002B302B0E9CF01F002ADA
-:10778800FAC8FFDC4A99722C109B912CE06AF980A8
-:10779800EA1A0337F2E40000FE7C1800F0E5000066
-:1077A800F01F0023308A4A3B0E9CF01F001E310A4E
-:1077B800FAC6FFEC300B0C9CF01F001F3018304B42
-:1077C800FB68002149DCF01F00180C9BFE7C280098
-:1077D800F01F001B3009FE7C2800129B129AF01F34
-:1077E80000190E9C0E96304BF01F000F2FCDFAC7D4
-:1077F800FFD8C2D8800376008000A5088000A4B016
-:107808008000A4CE8000A4E68000A4F48000A470C8
-:107818008000A2228000A4FE8000A3D080039038BC
-:107828008002E7368000A2808003901C8000AA1C9A
-:10783800800390308002E8BC800390288000A66214
-:107848008000A69C0D8C2FE6F01F000F0E36CFB1DE
-:10785800FACBFFFCFE7C2800F01F000C3009FE7CF0
-:107868002800129A129BF01F000AFE7C2800F01FC5
-:107878000009302CF01F0008FE7C2800F01F0005CE
-:107888002F6DD8228000A2BE8000A6628000A69C30
-:107898008000A7EC8000A2E6D42130A81896F00C4E
-:1078A8001800C0C1E067271020175BF7C13030DB34
-:1078B800FE7C1800F01F0008CF81E0672710201712
-:1078C8005BF7C0800C9BFE7C1800F01F0003CF8183
-:1078D800D822DC2A8000A9AED401178A17B91798D4
-:1078E800B168F1EA118817AAF1EA1088F3E81008DC
-:1078F8001AD81ADC483CF01F00042FEDD80200000B
-:1079080080039064800094C4D421202D4AB811D9F2
-:10791800BAD97009500911C8BAC81A961895169498
-:10792800581CE08900064A6CF01F0026C448761CE3
-:10793800F01F0025201DEFDCC0084A4C1AD7F01FA5
-:1079480000212FED5825C2A0682CF01F001F201D14
-:10795800EDDCC00849EC1AD6F01F001A30182FEDDC
-:10796800F0061800C111305A49AB0E9CF01F001ADE
-:1079780030AA49AB0E9CF01F00180E9C308A498B28
-:10798800F01F0015C1883028F0061800C141300AE0
-:107998000E9C149BF01F0013C0E83038F007180045
-:1079A800E08B000A300B0E9CF01F000F1A9B306A08
-:1079B800F01F000E2FEDD82A800396B88003909808
-:1079C800800094C48002DC2C800390C4800390D093
-:1079D800800390E480007380800390EC800390F82B
-:1079E800800072DC8000202480005140D421189649
-:1079F8001695582CC45176174B3B0E9CF01F00333C
-:107A08001896C1014B2CF01F00334B38FE798000CB
-:107A1800B0094B28B0064B28B0064B28B006E08FBB
-:107A280001C44B1B0E9CF01F0029C1D14AA89088A5
-:107A3800201D4AEC1AD8F01F00274A8890884ACCA3
-:107A48005008F01F00244A6890884AAC5008F01F7C
-:107A580000214A4890884A8C5008F01F001E2FEDDC
-:107A6800E08F01A30E9C4A5BF01F0018C0C14A4C6E
-:107A7800F01F0018E06900FF4978E08F0195582C45
-:107A8800E089000749FCF01F0013E08F018E762C77
-:107A9800F01F001D18975836E08101876A1649BB08
-:107AA8000C9CF01F000AC53148B85807E08A000846
-:107AB8009009A1A9B0095817C2A1C3089009A1C982
-:107AC800B009C2C8800391048002ECC88003910801
-:107AD800800094C4000016A2000016A6000016A09C
-:107AE800000016A8800391148003911C8003913430
-:107AF8008003914C800391648003E18C8003917C26
-:107B0800800391888002DC2C800392144B799208C0
-:107B1800A1A8B2085827C071C0D84B499208A1C87B
-:107B2800B208C0884B299208A1A8B2085837C0717A
-:107B3800C0A84AF99208A1C8B208C0584AD9920800
-:107B4800A1A8CAC84AB99208A1C8CA884AAB0C9C5D
-:107B5800F01F002AC2F14AA85807E08A00089009D5
-:107B6800A3A9B0095817C061C0C89009A3C9B00932
-:107B7800C08849E99208A3A8B2085827C071C0D89C
-:107B880049A99208A3C8B208C08849999208A3A82D
-:107B9800B2085837C071C0A849599208A3C8B2089A
-:107BA800C05849499208A3A8C79849299208A3C868
-:107BB800C758494B0C9CF01F0011C3E149085807EE
-:107BC800E08A00089009A1B9B0095817C061C1B886
-:107BD8009009A1D9B009C17848499208A1B8B2085A
-:107BE8005827C161C1C80000000016A6000016A0F1
-:107BF800000016A88003921C8002ECC8000016A2A0
-:107C0800800392204B699208A1D8B208C0884B59CA
-:107C18009208A1B8B2085837C071C0A84B19920889
-:107C2800A1D8B208C0584B099208A1B8C3784AE94C
-:107C38009208A1D8C3384ADB0C9CF01F002DC30161
-:107C48004AC85807E08A00089009A3B9B00958172C
-:107C5800C061C0C89009A3D9B009C0884A09920870
-:107C6800A3B8B2085827C071C0D849D99208A3D878
-:107C7800B208C08849B99208A3B8B2085837C07189
-:107C8800C0A849899208A3D8B208C058496992087F
-:107C9800A3B8C04849499208A3D8B208C858496B44
-:107CA8000C9CF01F0013C3D149285807E08A00082C
-:107CB8009009A5A9B0095817C061C0C89009A5C9FD
-:107CC800B009C08848699208A5A8B2085827C151C8
-:107CD800C1B848399208A5C8B208C168000016A6FC
-:107CE800000016A0000016A8800392248002ECC8A9
-:107CF800000016A2800392284AC99208A5A8B208D3
-:107D08005837C071C0A84A999208A5C8B208C05887
-:107D18004A799208A5A8CC2B4A599208A5C8CBEB5A
-:107D28000C9C4A4BF01F0024C3F14A485807E08ACC
-:107D3800000B9009EA19FFFFE8198000B0095817ED
-:107D4800C071C1089009F3D9C00FB009C0B849C9BA
-:107D58009208EA18FFFFE8188000B2085827C08187
-:107D6800C11849789009F3D9C00FB009C0B848F9CB
-:107D78009208EA18FFFFE8188000B2085837C08157
-:107D8800C0E848A89009F3D9C00FB009C08848894D
-:107D98009208EA18FFFFE8188000C80B48489009C5
-:107DA800F3D9C00FB009D82A000016A0000016A801
-:107DB800800392308002ECC8000016A2000016A6CC
-:107DC800D421582CC2717617495B0E9CF01F001500
-:107DD800C1211897494CF01F0015201D494C1AD78E
-:107DE800F01F00120E9C2FF7F01F00122FED5847BE
-:107DF800CF51C1380E9CF01F0010201DEFDCC008C9
-:107E080048BC1AD7F01F00090E9CF01F000A2FED7E
-:107E1800C04848ACF01F0005D82A000080039238FB
-:107E28008002ECC88003923C800094C4800390C414
-:107E380080006C108002DC2C80039250D421207DBD
-:107E4800306A18951696FAC7FFEAE06B00FF0E9C99
-:107E5800F01F00385825C1B16C1C4B7BF01F003750
-:107E68001896C4B14B6CF01F00370E9B0C9CF01F8A
-:107E780000360E9B301CF01F00340E9B0A9CF01F2E
-:107E880000320E9B303CF01F0030C5085825E08AB0
-:107E980000356C1CF01F002D6C2B1897500B169C8E
-:107EA800F01F002B58DC5F04585C5F08E9E81008F5
-:107EB800ECC5FFFC109418963008FACCFFF8400B7C
-:107EC800F0041800C0500C9AF01F0022C238F01FAE
-:107ED800002258375F98580C5F091896F3E8100885
-:107EE800E8081800C0A15807C085C0916A08118920
-:107EF8003308F0091800C030498CC098585C5F18E6
-:107F080058DC5F19F3E80008C050495CF01F000D09
-:107F1800C0D85C570C9BFAC9FFEAFACAFFF80E9C56
-:107F2800F01F00100E9CF01F00102F9DD82A000093
-:107F38008002E8BC800392808002ECC880039288AB
-:107F4800800094C48001921C8002DC2C8002EDD059
-:107F58008002EE0C800098688003929C800392DC7B
-:107F68008001927080019258D421204D4ABC149609
-:107F7800F01F002B1A9CF01F002B581CC0504AAC55
-:107F8800F01F0027C0A81A9CF01F0028201D1ADC2B
-:107F98004A7CF01F00232FEDF01F002618974A6C2B
-:107FA800F01F001F5807C0514A4CF01F001DC04861
-:107FB8000E9CF01F00234A376E0CF01F0023C1F0FF
-:107FC8006E087018201D1AD8F01F0020500C4A0C9B
-:107FD800F01F00136E0870285008F01F001C500C8A
-:107FE80049CCF01F000F6E0870385008F01F0017BA
-:107FF800500C499CF01F000A2FEDC048497CF01F27
-:108008000008497CF01F00060DC93018F009180057
-:10801800C2A1494CC298000080039314800094C404
-:10802800800191288003932C8000967080039348E8
-:108038008001997C80039358800393A880009784DB
-:10804800000080D08000CAE4800096A8800393686E
-:10805800800393788003938880039398800393B078
-:10806800800393B8493CF01F0014FACCFFF4300B9E
-:10807800F01F0012301B4037FACCFFF8F01F000F3A
-:10808800201D1AD750574047F01F000D500C48DCF0
-:10809800F01F000950075047F01F0009500C48AC6A
-:1080A800F01F0005F01F0009300C2FED2FCDD8224E
-:1080B800800393C4800094C48000C1EC800096A81B
-:1080C800800393D080039DC08000495CD421202D7B
-:1080D8001695584CE089000649ECF01F001FC3684C
-:1080E800FACCFFFC761BF01F001D6A2C4014F01F11
-:1080F800001C18976A3CF01F001A18966A4CF01F6B
-:108108000018501418951ADC496C1AD61AD71AD4C4
-:10811800F01F0011089CF3D5C008F5D6C0080E9BC7
-:108128005C7BF01F00112FCD5BFCC10148F8900962
-:108138003008F0091900C0A448D81AD548DC1AD666
-:108148001AD71AD8F01F00042FCD2FEDD82A000017
-:10815800800393DC800094C4800098FC8002DC2CAF
-:108168008003941480003958000016A280039054AC
-:1081780080039448D4211695583CE089000649CCE0
-:10818800F01F001CC338761CF01F001B18976A2CC0
-:10819800F01F001918966A3CF01F00174978201D37
-:1081A80018941AD649651AD7580CF0051710495C67
-:1081B8001AD5F01F0010089AF7D6C0085C5A0E9C12
-:1081C8005C7CF01F00112FCD5BFCC10148F89009C1
-:1081D8003008F0091900C0A448D81AD648DC1AD7C4
-:1081E8001AD51AD8F01F00032FCDD82A80039488F7
-:1081F800800094C48002DC2C80037DC480037DC889
-:10820800800394B880003C50000016A28003969C1E
-:10821800800394DCD421206D1697582CE089000641
-:108228004A4CF01F0025C438761CF01F00246E2B22
-:10823800F8C700011A9CF01F0022304A1A9BFAC6A0
-:10824800FFEC0C9CF01F001F201D40681AD8F01F7F
-:10825800001E1ADC49DC1AD7F01F00170C9B0E9C75
-:108268005C5CF01F001BFACCFFE0300BF01F00191C
-:10827800301B4087FACCFFE4F01F00162FDD505763
-:108288001AD74056F01F00101AD71ADC492C50870D
-:10829800F01F00092FDD50461AD6F01F000B1AD622
-:1082A8001ADC48EC5076F01F00042FCD2FADD82AE9
-:1082B80080039510800094C48002DC2C800098FC18
-:1082C8008002E736800096A8800395388000C19C1C
-:1082D8008000C1EC8003955480039564D421FACDC5
-:1082E8000108581CE0890006491CF01F0012C1D87B
-:1082F800F6C9FFFCF8CA0001FAC7FFFCE06B0100F1
-:108308000E9CF01F000DC110300948CAFACBFEFCC4
-:108318000E9CF01F000B5C5CC0814418489C1AD866
-:108328001AD7F01F00042FED2BEDD82A800395747F
-:10833800800094C480009710800078E08000C4C05A
-:1083480080039064D43121AD18961695582CE08995
-:1083580000064A1CF01F0021C3B8FAC7FFFC344AC4
-:10836800300B0E9CF01F001E306AE06B00FFFACC49
-:10837800FFDBF01F001BFAC4FFB8EAC9FFFCECCA18
-:108388000002320B089CF01F00171893C210189AAD
-:10839800089B0E9CF01F00143088FB6300242016F5
-:1083A800EA060326FB68003C0C9CF01F00100C9B9F
-:1083B800189A30180E9C3089F01F000D581CC08088
-:1083C80048C8201D48CC1AD8F01F00042FED2E6D88
-:1083D800D83A000080039590800094C48002E8BCDD
-:1083E800800097108002E7368002EDD080019084EB
-:1083F80080039048800395B4D42121AD1696582C5B
-:10840800C05049BCF01F001BC308FAC7FFFC344A20
-:10841800300B0E9CF01F0018306AE06B00FFFACC9E
-:10842800FFDBF01F0015ECC9FFFC301AFAC6FFB8D5
-:10843800320B0C9CF01F00111895C170189A0C9BF8
-:108448000E9CF01F000F3088FB6500240E9CFB6813
-:10845800003CF01F000C581CC08048B8201D48BCC8
-:108468001AD8F01F00042FED2E6DD82A800395D45A
-:10847800800094C48002E8BC800097108002E73630
-:1084880080018FF8800396AC800395ECD431204DA1
-:108498001493189516947406582CC091761C304A7B
-:1084A8004A7BF01F0028C0513018C458584CC0806F
-:1084B8004A5CF01F00264A6CF01F0024C3D8761BC4
-:1084C8001A9CF01F00240A9A1A9BFACCFFF4F01F9A
-:1084D80000224A289088EDB80002C0B1201D40480B
-:1084E8001AD849F81AD649FC1AD8F01F00182FCD07
-:1084F800FAC7FFF40C9C0E9BF01F001B682B1A9CFC
-:10850800F01F0014304A1A9B0E9CF01F00130E9B9C
-:108518000C9CF01F0016683B1A9CF01F000E304A96
-:108528001A9B0E9CF01F000C0E9B0C9CF01F001059
-:108538001A953008A6C82FCDD83A0000800392803B
-:108548008002EDE680039610800094C48003964074
-:10855800800098FC8002E736000016A28003903C59
-:10856800800396688000CBC88000CA928000CA74D5
-:10857800D421212D581CE0890006491CF01F001148
-:10858800C1C8F6C9FFFCF8CA0001FAC7FFD8320B08
-:108598000E9CF01F000D1896C1000E9B189AFAC782
-:1085A800FFF90E9CF01F0009300BFB6600270E9C9C
-:1085B800F01F0007F01F00072EEDD82A80039684CD
-:1085C800800094C4800097108002E736800099A844
-:1085D8008000998CD401F01F0003F01F0003D80A13
-:1085E80080019EF880009820D40148BE1898300970
-:1085F8007C0C580CC0A1F2090019487EFC0900291E
-:10860800932A9318930BD8022FF92F4E58F9CF11AC
-:10861800DC0A000000001544D401484CF01F000497
-:1086280030194848B089D802800396C0800094C4A5
-:10863800000015F8D4314B68169570065806C050DE
-:108648005816E08100BAC938580CE08000B5F01F10
-:1086580000314B18910C1897580CE08000AD19891F
-:10866800EC091800C0415805C460C4284AB44AC37C
-:108678008906C188EC060018E60800287012049CD8
-:108688005802C0E0F01F002718910E9CF01F00252B
-:108698000E9BE20C0D4A049CF01F0023C3102FF61A
-:1086A8008906680649D258E6FE98FFE658F6C28160
-:1086B8005805C210049749DCF01F001D3008498690
-:1086C8008508C128F0080018EC0800287009580926
-:1086D800C0807018201D497C1AD8F01F00152FED96
-:1086E8006E082FF88F086E0858E8FE98FFED492CA1
-:1086F800F01F000F4888700CF01F0010C5C80E9CB2
-:1087080048FB49074906F01F0011C2C8000016407F
-:108718008002ED8400001644000015400000154456
-:108728008002EDD08002EDE6800396C8800094C4F4
-:10873800800396E0800396C48002E28C80039364F1
-:10874800000015FC000016008002EEB86E08EC0868
-:10875800092C2FF88F085908C070498B300CF01F6E
-:108768000018580CCF41301949689109496949786E
-:108778007008F0080018F20800284959702A720C8D
-:108788007008494B5D18581CC1705805C040492CE9
-:10879800F01F001248E83007340A0E9B910748DCA6
-:1087A800F01F000F48F8700CF01F000F4858301CDD
-:1087B8009107D832D83ADA3A800393648002EEB847
-:1087C800000016400000154400001540000015FC8C
-:1087D80000001600800396C4800094C48002E8BCA0
-:1087E800000016448002E28CD421202D1897FACB81
-:1087F800FFFCFE7C1800F01F0012583CC080584C4B
-:10880800C081E0690100FE7818009109301CC15848
-:10881800401C58DCC03130ACC0B8588CC081F01F47
-:108828000009320CF01F00071BFCC0285C5CF01F1D
-:1088380000054018300CAE882FEDD8228000A9C260
-:10884800800078A0D431202D30A1FAC0FFF930D2B1
-:10885800308349B749B630043005009CF01F001A30
-:10886800C2A11BF8E20818005F0AE40818005F09B3
-:10887800124AF80A1800C0904929491A1298740B2C
-:10888800950CF20B0B0CC188E6081800C0916E0815
-:108898002018F00C17708F0CEC0C0B04C0686E09D4
-:1088A800EC090B082FF98F096E08E0480050CD61DC
-:1088B8008F05CD4B3008109C2FEDD832000016489C
-:1088C8000000164C800087F0D401F01F0004301B14
-:1088D800F01F0003D80200008000884C8000863C0E
-:1088E800D4314974169714951293580BC0B1680C7B
-:1088F800580CC0311896C2181696F01F0012890736
-:10890800C1C868085808C0C1E06C0200F01F000E1A
-:10891800890CC061189648DCF01F000DC0E80A9C5D
-:10892800E066020048650C33E60617806A0B0C9A6D
-:10893800F01F00086A088F080C9CD8320000169CAB
-:108948008002E28C8002E2A4800396E8800094C44E
-:10895800800090B4D401F01F0002D80A800091086A
-:10896800D4213008FAC4FFEC19C9F0091800F9B885
-:108978000100E9F81A01E9F81A02E9F81A004A1898
-:108988001AD84A1818971AD8089B3008E8C9FFF867
-:10899800E8CAFFFC780CF01F001D8F0C2FED580C57
-:1089A800C021DC2AF01F001A300949AA301BE06CEC
-:1089B8001388F01F00193009498A301BE06C00FA4F
-:1089C800F01F00153009496A301BE06C01F4F01FF4
-:1089D80000123009493A301BE06CEA60F01F000EC3
-:1089E8003009491A301BE06C03E8F01F000B30090E
-:1089F80048EA301BE06C03E8F01F0007DA2A0000A1
-:108A08008001365C80013C948000CCA88000CAB00C
-:108A180080008A708000956C80008A6480008A5883
-:108A280080008A4C80008A4080008A34D401F01F7C
-:108A38000002D8028000C664D401F01F0002D802E8
-:108A480080012984D401F01F0002D8028000B8B048
-:108A5800D401F01F0002D8028000C074D401F01FB6
-:108A68000002D8028000E68CD401F01F0002D80270
-:108A78008001326430194828B0895EFC000016AACB
-:108A8800D401319CF01F0003319CF01F0003D80271
-:108A98008000A2D28000A2E6D421204D3FF819C957
-:108AA8001897F0091800F9B80001EFF80E0430081B
-:108AB800201D1AD850581AD81AD850685058F01F84
-:108AC800001C49CB6E0CF01F001C0E9949BA49CB0B
-:108AD80049CCF01F001D2FCD581CC08049B8201D5F
-:108AE80049BC1AD8F01F001B2FEDF01F001BF01F08
-:108AF800001B0E9CF01F001AC0F049A8900930080E
-:108B0800F0091900C0F44988201D498C1AD8F01FB3
-:108B180000112FEDC07830194958319CB089F01FE9
-:108B280000153018EF6800082FCDD822800089681A
-:108B380080008C5C8000CAEE80008B7C80008BDC1F
-:108B480080008A7C80009A188003973C80039DC02F
-:108B5800800094C48000998C80019EF880002A9837
-:108B6800000016A28003972880039758000016A4D7
-:108B78008000A300D4211897333CF01F000F300663
-:108B88000FD8EC081800C0C048CCF01F000D6E0CC0
-:108B9800F01F000C6E0CF01F000CAED6C07848BC5D
-:108BA800F01F00076E0CF01F000A3FFCF01F0009C1
-:108BB800D82200008000A2E680039774800094C445
-:108BC8008000B1D88000AE50800397908000CABC66
-:108BD80080002E60D42116971896333CF01F00149D
-:108BE8000C9CF01F0014201D1ADC493CF01F0013D8
-:108BF80030182FED0FC6F0061800C121490CF01FE0
-:108C0800000F6E0CF01F000F48F849095C5CF20C6D
-:108C18001700F00C1710F01F0009AED6C0486E0CF4
-:108C2800F01F000BF01F000BD82200008000A300EB
-:108C3800800096E48003979C800094C4800397B8D2
-:108C48008000B950800397D080037FC08000CB8814
-:108C58008000C690D42149471896F01F0014189533
-:108C6800C110301CF01F00126C18201D1AD8F01FFC
-:108C78000011500C490CF01F001130182FEDAE8870
-:108C8800D822AE8CF01F000E48E89008EA081900B8
-:108C9800C08448D8201D48DC1AD8F01F00082FEDE2
-:108CA800D8220000000016AB8000CAE480002E60C5
-:108CB800800096A8800397D8800094C480006B2C0D
-:108CC800000016A28003995C800397E8D4211897C6
-:108CD800F01F0027300A4A7B4A7CF01F0028300A20
-:108CE8004A7B4A8CF01F00254A7B300A4A7CF01FD9
-:108CF80000230E9A4A6B4A7CF01F0020300A4A6B08
-:108D08004A6CF01F001E4A6B300A4A6CF01F001BA9
-:108D18000E9A4A5B4A5CF01F0019300A4A4B4A5CBB
-:108D2800F01F0016300A4A4B4A4CF01F0014300A54
-:108D38004A3B4A4CF01F0011300A4A3B4A3CF01F9C
-:108D4800000F300A4A2B4A3CF01F000C300A4A2B0D
-:108D58004A2CF01F000A300A4A1B4A2CF01F000751
-:108D6800300A4A1B4A1CF01F0005D82280008620C2
-:108D7800800085DC80039804800085F08000857879
-:108D88008003980C80007E448003981480007F70D4
-:108D98008003981C800079F48003982480007DC8A3
-:108DA8008003982C80008494800398348000633476
-:108DB800800398408000834C80039848800084009A
-:108DC80080039850800082E4800398588000821CB9
-:108DD800800398608000817C80039868800080D43C
-:108DE800800398748000791080039880D4211897A4
-:108DF800F01F000BF01F000BF01F000BF01F000B03
-:108E08006E0CF01F000B48B811893008F0091800E3
-:108E1800C0406E0CF01F0008D82200008000951496
-:108E2800800088D080009504800193A080013BBC1D
-:108E3800000016A480004758D421202D3029EE7850
-:108E48000000F1D9D1A23019F1D9D0033007501858
-:108E58000E9B5007337CF01F000F1A9BFE7C3800D6
-:108E6800F01F000D0E9BE06A01A4FE7C3800F01F85
-:108E7800000B0E9BE06A0348FE7C3800F01F0008D8
-:108E88000E9BFE7C3800F01F00072FEDD822000053
-:108E98008000A2308000A8388000A8F08000A926B1
-:108EA8008000A8D4D401333CF01F0009334CF01FD4
-:108EB8000008335CF01F0006333CF01F0006334CFB
-:108EC800F01F0004335CF01F0003D8028000A2A842
-:108ED8008000A2E6D421202DF01F0034F01F0034BA
-:108EE800F01F0034F01F0034E06C1B00EA1C00B7D0
-:108EF800F01F00324B28201D4B2C1AD8F01F0032CF
-:108F080030CB301CF01F00312FED1897580CC08162
-:108F18004AF8201D4AFC1AD8F01F002B2FED344BBD
-:108F2800301CF01F002A8F0CC0814A98201D4A9CD3
-:108F38001AD8F01F00252FED3FF80E9CAEC8F01F81
-:108F48000026300B169CF01F0025F01F0025F01F8F
-:108F58000025C0804A48201D49EC1AD8F01F001A85
-:108F68002FEDFACAFFFC0E9B4A0CF01F0021581C7B
-:108F7800C0C1401A49FB0E9CF01F001F581CC0516D
-:108F88000E9CF01F001ECFDB58CCC04058DCC061DF
-:108F9800C03849BCC04849BCC02849BCF01F000AB9
-:108FA800F01F001ACFEB000080008A88800076E06E
-:108FB80080008EAC80008E408000AAE88003970C69
-:108FC80080039888800094C48002DC3C800398A8C1
-:108FD80080039DC080008CD4800095C88000C8E4C0
-:108FE8008000895C800398B8800088E880013E880A
-:108FF80080008AA0800193BC80008DF4800398E4EF
-:109008008003990C8003993080009514D4314A1458
-:1090180058095F081296189716951493A888E06067
-:109028000100E06100FFC2E88920A868E203190096
-:10903800E069FFFFE7D9E828E9F88A02E06901005A
-:1090480088E8F2080108682989151039E9F8BA0290
-:10905800EE021608049CF01F0010301CF01F000FD1
-:10906800F01F000F5806C090049CF01F000E301C23
-:10907800F01F000DF01F000D6828101310071005D1
-:109088005C83F1D7C0085803CD01069CD832000094
-:10909800000016AC8000A0408000A19880009ED4FB
-:1090A80080009F5C8000A17080009E94D4013009EC
-:1090B8005C7AF01F0002D80280009014D40148584E
-:1090C80090E9701B120C702AF01F0003D8020000F0
-:1090D800000016AC8002E736D4014888189B118A34
-:1090E8003009F20A1800C07090E9701C120B702A3F
-:1090F800F01F0003D8020000000016AC8002E7361B
-:10910800D421208D48D8F0E60008FAE70008F0EAF4
-:109118000000FAC8FFF0FAEB0000F0E70008F0EBF7
-:109128000000E06CF980EA1C0337F01F0005300CE2
-:109138002FCD2FCDD82200008003996C8000A1C0CC
-:10914800D401FAC9FFFCF01F0002D80280031C1CDE
-:10915800D401F01F0002D8028002EE88D401F01F6B
-:109168000002D8028002ECACD401F01F0002D80241
-:109178008002F0ECD401F01F0002D8028002E71050
-:10918800D401F01F0002D8028002EE2CD401F01F97
-:109198000002D8028002ED84D401F01F0002D80238
-:1091A8008002ECC8D401F01F0002D8028002EE0C45
-:1091B800D401F01F0002D8028002EDD0D401F01FC4
-:1091C8000002D8028002E87ED401F01F0002D80213
-:1091D8008002E8BCD401F01F0002D8028002E73602
-:1091E800D401F01F0002D8028002E28CD401F01FE3
-:1091F8000002D8028002E8D0D401F01F0002D80291
-:109208008002E2A4D401580CC0707808B08B7808AA
-:109218002FF89908D802F9DBC008F01F0002D8021D
-:10922800800078A0D431189616971495580AE08AC9
-:1092380000153008109AC0282FF8EE08070BF40B19
-:109248001800CFB10A38F9B50400EBD8E515EDB927
-:109258000001C0313303C0283203E9D9C001C090EE
-:109268003004C1082FF42015069B0C9CF01F000D3C
-:109278005805FE99FFF9C0682FF42FF70C9CF01FD2
-:1092880000090F8B580BCF91C0782FF42015069B3F
-:109298000C9CF01F00045805FE99FFF9089CD83271
-:1092A8008000920CD431204DFAC4FFCC109368177B
-:1092B800189568041698580BC0B13308BADB08999A
-:1092C800069ABAC8FACBFFFCF01F001FC3985809CA
-:1092D8005F1B58AA5F09F7E90009C0605808C04435
-:1092E8005C383016C0283006EECB003A3009FAC791
-:1092F800FFF00EF9C0B8F00A0D00029912985898BC
-:10930800F1DBE9082D080EF800985808CF515806E7
-:10931800C1005803C0B0EDB40001C08132DB0A9C23
-:109328002013F01F000A3016C04832D830060EF855
-:109338000899069A0E9B0A9CF01F00030C0C2FCD6F
-:10934800D83200008000922C8000920CD431203D4D
-:109358003007500A18951696325432D3330230919A
-:109368003730C978E8081800E081008E2FF60D889C
-:109378005808E0800093E8081800E0800085E608B7
-:109388001800F9B90100F7B600FFF9B90001C038B3
-:109398002FF6A1B90D88E4081800CFB03008C048EE
-:1093A800F80E00182FF60D8AF008002EF4CC0030C5
-:1093B800F4CB0030E20B1800FE98FFF4E00A180026
-:1093C800C0A1109A4008110B50084B98580BF00B8D
-:1093D8001700C548364BF60A1800C0A1361B400ACC
-:1093E8001ADB1AD93019740B2FCA502AC358370BF5
-:1093F800F60A1800C121361A40091ADAF2CAFFFC27
-:10940800501A308A1ADA720B3009310A0A9CF01F96
-:1094180000292FED1807C3C8378BF60A1800C0417A
-:10942800400A361BC078358BF60A1800C091400AEE
-:10943800341B1ADB1AD9740B2FCA502ACE6B375B30
-:10944800F60A1800C0B1361B400A1ADB1AD93009CF
-:10945800740B2FCA502A30AACDAB363BF60A180037
-:10946800C171109A4008700B2FC8FB6B0008500898
-:10947800FACBFFF83008FB6800090A9CF01F000EC1
-:109488001807C0682FF70D8B0A9CF01F000C2FF6E9
-:109498000D885808FE91FF685805EBF81000F9B9D7
-:1094A8000100F1F91E000E9C2FDDD8328003997C53
-:1094B800800092AC8000922C8000920CD401189B02
-:1094C800FACAFFFC300CF01F0002D8028000935447
-:1094D800D40148A972082FF89308F2F800CC58086C
-:1094E800C040F2FC00D45D18FE780D003019918957
-:1094F8007078D402D6030000000001184838F0F94B
-:1095080000D0700CB33C5EFC00000118D431495601
-:1095180030020C9730152F46EEC1FF2C0E930E9497
-:109528000D88E4081800C18166086E291039E08B9F
-:1095380000146C185808C0306C2C5D180D98EA0897
-:109548001800E9F80000EFF90001F3D8E008EFF897
-:109558000A02EDF51E002EC62EC70236CE21D832DD
-:1095680000000118D431300E189830A5494C1C96CB
-:109578002FCCFCC3FFFF1897F9340008EC0418003F
-:10958800C071FDD3C0082ECCEA0E1800CF311C9C48
-:1095980048B530030A96FC0E002EEAF500D0F00517
-:1095A8000D048F040D08EF630008EC0E0026080870
-:1095B800EF6B00098F188D498D3AD83200000118D9
-:1095C800D421300A16971896328B495CF01F001583
-:1095D800300AFE7C0D00149BF01F00134935FE7CF9
-:1095E8000D00EAFB00D0F60B1073A19BF01F0010D2
-:1095F800FE7C0D00F01F000FFE7C0D00F01F000E1A
-:10960800EAC9FF2CEB4600CCEB4700D430182F45B5
-:10961800AA882EC51235CFD1D8220000800094D850
-:109628008000A3A08000A594000001188000A580F8
-:109638008000A57A8000A562D401306AF01F00027C
-:109648005F0CD8028002E710D401F93A0020F738FD
-:109658000020F4081800C020D80AF01F00035F0C8F
-:10966800D80200008002E710D42119D919881AD924
-:1096780019C91AD919B91AD919A91AD91999486732
-:109688001AD9486A1AD8312B0E9CF01F00050E9C77
-:109698002FADD822000016E0800399848002EC40A8
-:1096A800D4214058F5D8C008F00916181ADAF5D8A8
-:1096B800C108F1D8C2081ADA48671AD8486A1AD90C
-:1096C800310B0E9CF01F00050E9C2FCDD8220000F8
-:1096D800000016F4800399A48002EC40D421488746
-:1096E8001896321A300B0E9CF01F00060C9BED3AB0
-:1096F80000200E9CF01F00040E9CD822000016BC0F
-:109708008002E8BC8002E736D431300318971696F9
-:109718001491129218950694C1D805002FF4009C54
-:10972800F01F0012F80300030C33E0880009201D25
-:1097380048FC1AD6F01F000F2FEDC108201DEE05BA
-:10974800010B1AD00A9C0C0B48BAF01F000C2FED25
-:1097580018050234CE350E35C021D83A30080AF83B
-:10976800EA07010CD83200008002EDD0800399B4DA
-:10977800800094C4800399CC8002EC40D4211897CF
-:109788002DFCF01F001B201D1ADC49ACF01F001A2D
-:109798000E9CF01F001A500C499CF01F00176EC851
-:1097A800498C5008F01F00146EF82FED5818C0416E
-:1097B800495CF01F0011EF3800383049F2081800F2
-:1097C800C0E03059F2081800C0603029F2081800CB
-:1097D800C091C03848DCC04848DCC02848DCF01FCD
-:1097E800000648DCF01F0004D822000080009670B4
-:1097F800800399CC800094C4800096E4800399D0BB
-:10980800800399D8800399E8800399F480039A0823
-:1098180080039A1C800384D4D421202DFACCFFFC29
-:10982800F01F000C401870185808C04148ACF01FD1
-:10983800000B3007C0887008F007032CF01F0008E1
-:109848002FF75C57401870191237CF632FEDD822C5
-:1098580080018F0480039A40800094C4800097841C
-:10986800D431202D300818921696BAE8169CF01FAD
-:10987800001DEDBC0000C04149BCF01F001C3007B2
-:109888002FF649B30E94FAC5FFFCC208660BF6081A
-:109898000709E2190044C210E04700405F9C0D8AA6
-:1098A800F60A0709E21900445F09F9E91009E8090D
-:1098B8001800C131BADABAC8310A300B0A9C2FE64F
-:1098C800F01F000CE4070B0C2FF7ED38FFFF5808CA
-:1098D800CDE10E9C5C5CC028300C2FEDD832000026
-:1098E8008002EDD080039A50800094C40000049C4C
-:1098F8008002F0ECD421204D1A981AD8FAC8FFF843
-:109908001AD8FAC8FFF01AD8FAC8FFE818971AD870
-:10991800169C49BBF01F001B2FCD584CC221403864
-:10992800E04800FFE08B001E402B580BC1A5E04B20
-:1099380000FFE089001740195809C135E04900FFC8
-:10994800E0890010400A580AC0C5E04A00FFE089D3
-:109958000009B16BF7E811881448F1E91088C028AC
-:109968003008F0091618AEB8AE890E9CF3D8C208B4
-:10997800F1D8C108AE99AEA82FCDD82280039A603D
-:109988008002EBF4486870085808F9BC00FFF9B980
-:109998000101F1F91E10F9BC01015EFC0000170479
-:1099A800D4214988169770085808C021DC2A580C19
-:1099B800C080189B321AF0CCFFEFF01F0013C0389C
-:1099C800F16C003148F85807C080700C0E9B306A63
-:1099D8002CECF01F000DC088700C306A2CECE06B8A
-:1099E80000FFF01F000A48787008F139003130088C
-:1099F800F0091800C021DA2AF01F0005DA2A000051
-:109A0800000017048002E7368002E8BC80019EF857
-:109A1800D4314A241896169714951292680358035D
-:109A2800C3B1338B301CF01F001E890C189BC0B1CA
-:109A380049C89088EDB80003C2F1201D49A849BC67
-:109A48001AD8C10849ACF01F001B49691891581C65
-:109A5800C0E09288EDB80003C1F1201D4928496C87
-:109A68001AD8F01F00163FFC2FEDD8326808913243
-:109A7800F16300109106911791259288EDB80003C3
-:109A8800C020D8324888201D48DC1AD8F01F000BA7
-:109A9800029C2FEDD832DC3A000017048002DC3C2F
-:109AA800000016A280039A8080039AE080009AC87A
-:109AB80080018F2480039AF8800094C480039B203F
-:109AC800D431202D1697581CC290C083582CC670CC
-:109AD8004A78583CE08101A8C998F01F00264A48F6
-:109AE80018969088EDB80003C0A1F01F00234A38EB
-:109AF8001ADC4A3C1AD8F01F00232FED333CF01F24
-:109B08000022334CF01F00216E185808E08001979E
-:109B18006E3B0C9C5D18E08F019249589088EDB817
-:109B28000003C08149A8201D49AC1AD8F01F0015B0
-:109B38002FED334CF01F0014333CF01F0014EF39A5
-:109B480000103008F0091800E0800179F01F0012B9
-:109B5800581CE080017448689088EDB80003E081E3
-:109B6800016E201D48A848DC1AD8C659000016A264
-:109B78008001997C800096E480039AC880039B3812
-:109B8800800094C48000A3008000A2E680039CE8C3
-:109B980080039B5480019EF880039B784B589088E3
-:109BA800EDB80003C0814B48201D4B4C1AD8F01F5C
-:109BB80000342FED4AF89088EDB80003C0814B18A7
-:109BC800201D4B1C1AD8F01F002E2FED333CF01F20
-:109BD800002F6E285808C0306E3C5D18EF39001011
-:109BE8003008F0091800E080012AF01F0029581CED
-:109BF800E080012549F89088EDB80003E081011F55
-:109C0800201D4A084A3C1AD8C1699088EDB800035B
-:109C1800C0814A18201D4A1C1AD8F01F00192FEDC0
-:109C28006E085808C0306E3C5D18EF3900103008D7
-:109C3800F0091800E0800103EF390031F00918003D
-:109C4800E08000FDF01F00161894FACCFFFCF01F0E
-:109C58000015581CC591401870185808C550300593
-:109C6800EEC1FFEFEEC3FFCE0A960A92C488000049
-:109C7800000016A280039ABC80039BAC800094C4A9
-:109C880080039A9880039BC48000A2E680019EF816
-:109C980080039BE880039AA880039C1C8001997C20
-:109CA80080018F04EF390031E4091800C080700882
-:109CB800029CF005032BF01F0041C1F0306A4C0BE9
-:109CC800069CF01F0040C0A040187008069CF005D4
-:109CD800032B2DFBF01F003CC1005806C0A0401804
-:109CE8006CC97008F005032870C81039E0890006AF
-:109CF80040187008F00503262FF55C5540187019B8
-:109D08001235CD13C02830060C34C0415804E08108
-:109D1800009658065F1858045F19F1E90009C20057
-:109D2800089B0C9CF01F0025C1D068C8FE58FFC0D6
-:109D3800E08400856CCAF0C9FFF71439E084007F1D
-:109D48004A299289EDB90003C0D1201D1ADA1AD820
-:109D580049F84A0C1AD8F01F00202FCDC0385808EF
-:109D6800C0C0202DECCBFFDF306A1A9CF01F001B0F
-:109D7800F01F001B2FEDC17849489088EDB800030B
-:109D8800C0C1EECCFFEFF01F001749181ADC496C70
-:109D98001AD8F01F00112FEDEECCFFEFEF3B00318A
-:109DA800F01F0012588CC060589CC2F0581CC21199
-:109DB800C458F01F000FC4288000965080039C38B8
-:109DC8008002EDE680009640000016A280039A8C7F
-:109DD80080039C40800094C48002E73680019DDCAB
-:109DE800800096E480039C6880019EA0800199CC45
-:109DF80049489088EDB80003C0814938201D493C86
-:109E08001AD8F01F00132FEDF01F0012581CC16064
-:109E180048C89088EDB80003C111201D48A848EC37
-:109E28001AD8C0989088EDB80003C081201D48B8A2
-:109E380048BC1AD8F01F00062FED2FEDD8320000CD
-:109E4800000016A280039A8C80039C94800094C41E
-:109E580080019EF880039CB080039ABC80039CCC50
-:109E6800D4012FEC580BC080F7DCC008FE7C28001A
-:109E7800F01F0005D802F7DCC008FE7C2800F01FA0
-:109E88000003D8028000A6C68000A716D42148C7C0
-:109E9800C098300BFE7C2800F01F000A6E082FF8CF
-:109EA8008F086E0CF7DCC008CF51F9DCC288F01FB0
-:109EB800000630194858B089D82200000000170859
-:109EC8008000A7FA80009E680000170CD40148683B
-:109ED800300B700CF9DCC288F01F000430094848C8
-:109EE800B089D8020000170880009E680000170C8F
-:109EF800D421202D4948301B700CF9DCC288F01F92
-:109F08000013E06B00D7FE7C2800F01F0011FAC791
-:109F1800FFFAE06B00FFFE7C2800F01F000D0E9B8F
-:109F2800FE7C2800F01F000B9AB8EDB80007CF217F
-:109F38004858300B700CF9DCC288F01F00042FED74
-:109F4800D82200000000170880009E688000A7FA49
-:109F58008000A816D421202D49B8A96C910C49B8C5
-:109F680011893008F0091800C030F01F00193009B5
-:109F780049684957B0896E0C301BF9DCC288F01F5C
-:109F88000015E06B0082FE7C2800F01F00136E08AD
-:109F9800F3D8C008FAC7FFF8F7D8C10CFE7C280030
-:109FA800F3EB109B0EDBB18BF01F000B0FABFE7CAD
-:109FB8002800F01F00090FBBFE7C2800F01F0006D8
-:109FC8002FEDDA2A000017080000170C80009EF811
-:109FD80080009E688000A7FAD42149381897118913
-:109FE8003008F0091800C0604908700CA98CF01FEF
-:109FF8000010EEC6FF000F3BFE7C2800F01F000D8E
-:10A008000C37CFA14898300B700CF8CCFF00910C9E
-:10A01800F9DCC288F01F000830194838301CB089B4
-:10A02800D82200000000170C0000170880009F5C71
-:10A038008000A7FA80009E68D421202D4A78A96C58
-:10A04800910C4A7811893008F0091800C030F01FC7
-:10A05800002530094A284A17B0896E0C301BF9DCF4
-:10A06800C288F01F0021E06B00D2FE7C2800F01FA0
-:10A07800001F6E08F3D8C008FAC7FFF8F7D8C10C5C
-:10A08800FE7C2800F3EB109B0EDBB18BF01F001752
-:10A098000FABFE7C2800F01F00150FBBFE7C2800CC
-:10A0A800F01F0012E06B00FFFE7C2800F01F000F7D
-:10A0B800E06B00FFFE7C2800F01F000CE06B00FF47
-:10A0C800FE7C2800F01F0009E06B00FFFE7C2800E2
-:10A0D800F01F00062FEDDA2A000017080000170C01
-:10A0E80080009EF880009E688000A7FAD421202D69
-:10A0F800498818973009118AF20A1800C070B08987
-:10A108004958700CA98CF01F0015FAC5FFFAEEC665
-:10A11800FF00E06B00FFFE7C2800F01F00110A9B87
-:10A12800FE7C2800F01F000F9A380EC80C37CF218C
-:10A138004898300B700CF8CCFF00910CF9DCC28801
-:10A14800F01F000930194838301CB0892FEDD8228B
-:10A158000000170C000017088000A0408000A7FA34
-:10A168008000A81680009E68D4211897C088F01F28
-:10A178000006486CF01F000620175C87483C58070B
-:10A18800CF71DA2A800090C40000171080009FE089
-:10A19800D4211897C088F01F0006486CF01F0006ED
-:10A1A80020175C87483C5807CF71DA2A8000A0F452
-:10A1B80000001710800090E0D4213027FAC4FFEC8B
-:10A1C8001896A887C0C80C9A089BFE7C2800F01F28
-:10A1D8000009C020D82A09882FF8A8880988EE081D
-:10A1E8001800FE98FFF230094838301CB089D82290
-:10A1F8008000A73C0000170CE1B80000EE18000131
-:10A20800F1D8C201C020D3033019F20B094B994B86
-:10A21800783958085E0CD5035EFCFE681400700996
-:10A22800F3DCD0C191095EFCF8081605A968E0289E
-:10A23800F000581BC0D0C063582BC0F0583BC12059
-:10A248005EFF3019F20C0949916991A9C108F60C11
-:10A25800094B915B91ABC0B83019F20C094991696F
-:10A26800C0583019F20C0949915991993019F20CDA
-:10A27800094C912C5EFDD703D4213007189616940B
-:10A288000E95C0880D9B0D8C2FF72FE6F01F00044C
-:10A2980018450837CF830A9CD82200008000A230D6
-:10A2A8003018F00C0948A59CA96CE02CF000F9487E
-:10A2B800004899185EFC3018F00C0948A59CA96C58
-:10A2C800E02CF000F94800745EFC3018F00C0948E6
-:10A2D800A59CA96CE02CF000F94800785EFC3018C9
-:10A2E800F00C0948A59CA96CE02CF000F948005432
-:10A2F800F948004499185EFC3018F00C0948A59CF0
-:10A30800A96CE02CF000F9480058F9480044991865
-:10A318005EFC301AF8081605F40C0949A968E0280B
-:10A32800F000F14900C4143BC080C043582BC0F171
-:10A33800C098F14900A8C038F14900A4F14900B813
-:10A34800C078F14900A8F14900B4C0285EFAF14983
-:10A3580000945EFD3018F00C0948A59CA96CE02C0F
-:10A36800F000F94800985EFCF8081605A968E0288E
-:10A37800F000F0F800D0F00C0A4CF9DCC0015EFCEB
-:10A388003018F00C0948A59CA96CE02CF000F9489D
-:10A3980000D85EFCC008D703F3DBC0054898A59B2E
-:10A3A800F00B00387018F009092C4878F5DAC0026B
-:10A3B800F00A0329FE780800F00B09295EFC00006A
-:10A3C80080039CFC8003773CD42148F8E3B8000163
-:10A3D80048E848F9700E48FC3008FE7B0800C0E8E1
-:10A3E8007216EC0A00262FFA8D0C0E3ACFA3F60847
-:10A3F800092E2F892FF85948C0407207300ACF6BB1
-:10A40800D8220000800376008003773C80039CFC00
-:10A418008000A39CE0680083FE790800F00C010C22
-:10A42800F20C0328F0CAFFC0F20A032C580C5E0C89
-:10A438004869F80C1200F2080038F80C111F70185F
-:10A44800F00C032C5EFC000080039CFC78C83019DB
-:10A45800F1D9D10399C85EFC78C83019F1D9D00177
-:10A46800F1DBD20399C85EFCD421FAC4FFEC68176B
-:10A47800680EEFD7C003FDDEC0013004E9D7D00372
-:10A48800E9DED0E1E9D7D103E9DED1E1E9DAD203A7
-:10A49800E9DBD2E1E9D8D303E9D9D3E199147958B2
-:10A4A800EDB80005CFD1D822D4213007405E2F8BDC
-:10A4B800EFD8D021EFD9D104EFDAD204EFDED306FA
-:10A4C800F80B0927D822F5E910192F8BF3E8102883
-:10A4D800F80B0329F3D8D043F80B09295EFC2F8B1E
-:10A4E800F80B0328A1A8F80B09285EFC7958EDB8E9
-:10A4F8000000CFD15EFC7808F1DBD00299085EFC41
-:10A50800EC5BBB9FE08B0004304BC138E068C6BFF2
-:10A51800EA18002D103BE08B0004305BC0A8E0680F
-:10A528001200EA18007A103BF9BB0306F9BB0207D0
-:10A5380078A8F1DBD00399A878A8F1DAD10399A813
-:10A548007808A3A899087958EDB80007CFD17808FA
-:10A558003019F1D9D00299085EFC7808EDB80004EA
-:10A56800CFD07808A1A899087808EDB80004CFD012
-:10A578005EFC301899485EFC7808EDB80004CFD02E
-:10A58800992B7808EDB80004CFD05EFCD42130F8C0
-:10A5980014951697F00A18005FBA30181896F00B41
-:10A5A80018005FB9F5E91009C020D82AF00B180087
-:10A5B800C0A1FE7C0C00F01F0015300BFE7C0C00C7
-:10A5C800F01F00136C08EDB80004CFD0A377B1A733
-:10A5D800EFE510878D076C08EDB80004CFD06C0844
-:10A5E800E2180010CFD18D186C08EDB80004CFD058
-:10A5F8006C08EDB80004CFD03FF88D286C08EDB892
-:10A608000004CFD0DA2A00008000A4548000A4609F
-:10A618003038F00A18005FB93078F00B18005F88FE
-:10A62800F3E81008C1913108F00B1800E08B001511
-:10A63800E06800809908208BF4081601F5DAC0015B
-:10A64800F1EB104B580AF9BA0100F9BA0002F7EA1F
-:10A65800100A99CA5EFD302C5EFCD4013019189896
-:10A66800F73B000DF20B1800E0880004302CD802EC
-:10A67800300AE06900809909301E7019149CF3DED5
-:10A68800D001F3DBD081F3DAD0E130FAF3DAD20487
-:10A698009119D802D4013018F00B18005FBEF00AE7
-:10A6A80018005FB81C48C030302CD8027818F1DB8D
-:10A6B800D021F1DAD041F1D9D3089918D80A7819FC
-:10A6C8001898EA19000F9919781CE21C0004C100B7
-:10A6D80030E9F20B1800E08B001A7019B16B300CDE
-:10A6E800EA1BFFF0E81BFFFF126B911B5EFC303981
-:10A6F800F20B1800E08B000B70192F0B301AF40BBB
-:10A70800094B5CDB126B911B5EFC302C5EFCE06835
-:10A718002710C0585808C0215EFF20187849EDB9A5
-:10A728000009CF917818EA18000F9918FC18010051
-:10A7380099085EFDD4313036F737000CEC07180065
-:10A74800E08B0050F733000B301EFC031800E08B41
-:10A758000049F73800083079F2081800E08800420C
-:10A768003109F2081800E08B003D7619F205160150
-:10A77800F4050005EA090D04E8C90001E04900FEF6
-:10A78800E08B0030F0CA00080E923008EC1200018D
-:10A79800A197F1D7D001F1D2D021F1D3D061F1DA6C
-:10A7A800D084F73A0009F1D4D1081789F1DAD20830
-:10A7B800F73A000AF1DAD308FC091800C0C0C093C0
-:10A7C800302AF4091800C090EC091800C0A1C0781C
-:10A7D80099C8C06899D8C04899E8C02899F8D83A63
-:10A7E800302CD832301899085EFC784CF9DCC0213E
-:10A7F8005EFCE0682710C0585808C0215EFF20188A
-:10A808007849EDB90001CF915C7B993B5EFDE0682A
-:10A818002710C0585808C0215EFF20187849E2194F
-:10A828000201E0490201CF717828300CB6085EFCBD
-:10A8380076095829E08800035EFE7618A769109B00
-:10A84800E61BC000120CF3D8C003AFB91649109B21
-:10A85800E61B30001649109BE61B0C001649109B9E
-:10A86800E61B03001649109BE61B00C01649109B07
-:10A87800E61B00301649109BE61B000C1649109B7E
-:10A88800E61B00031649109BE21B60001649109B4B
-:10A89800E21B10001649109BE21B0C001649109B86
-:10A8A800E21B03002FCC1649109BE21B0080109A74
-:10A8B8001649E21A0008109BE2180030E21B00401B
-:10A8C8001649F3E81008144899085EFDF6081506BD
-:10A8D800582BF9BC0BFFF9D8E80CF9B80805F9F8BA
-:10A8E8008A00F9BC08005EFC582BE08800035EFE75
-:10A8F800F6081506F80800082FC87008EDB8000F0C
-:10A90800C0C1A76BF3DAC010160C2ECC7808E0187B
-:10A918000000F3E810089908F9DAC0105EFC582B1B
-:10A92800E08800035EFEA76B160C7818EDB8000FE0
-:10A93800C0A12E4CF3DAC0107808E0180000F3E844
-:10A9480010089908F9DAC0105EFCD401F60E150457
-:10A958001C3AF9BE0210F9BE0308FC0B024BF608BC
-:10A968001601F00A003AF40B0D0AF4091603F2C8AE
-:10A978000001E048FFFEE0880003DA0A7818E86B77
-:10A988000000E418FFF7E018FECF590EF60E171076
-:10A99800F9BE0000FDE810089918F5DAC003F3EADB
-:10A9A80011099989D80A7858EDB80001C030302CBF
-:10A9B8005EFCF7DBC009997B5EFD7858E21800E081
-:10A9C800C030304C5EFC7859EDB90000F9BC010389
-:10A9D800F9F90006F00C1700E06A01FFF3DAE02845
-:10A9E800F7F80A005EFCE1B80000EE180001F1D8A3
-:10A9F800C201C020D3033FF9993978595808C020BB
-:10AA0800D50330089918999899A8EA68610C9908AB
-:10AA18005EFCD703D421201D500A16961897F01F04
-:10AA2800002F400A5806C5500DC83049F2081800D2
-:10AA3800E08800503095EA081800E08B004B0DD9EB
-:10AA48003078F0091800E08B00458C39E068010186
-:10AA5800F0091900E08B003EED3900083038F009A4
-:10AA68001800E08B00376C0B0E9CF01F001D581C63
-:10AA7800C3000DC8EA081800C0416E18B1B8C05824
-:10AA880020586E19F3E810688F186E19ED3A00080F
-:10AA98000DD8A978F1EA10E812488F18302A8C38B6
-:10AAA800F3D8C010F4081900E08800086E18ADB893
-:10AAB8008F1820298FA9C0586E18F1E910C98F196D
-:10AAC8006E18E018FFF08F18300C35088F08C02872
-:10AAD800301C2FFDD82200008000A9EE8000A9526A
-:10AAE8004828910C5EFC0000000018E8D431189842
-:10AAF800783E580EC620F90600105806C5E0300901
-:10AB08003FF3129A3344C1780E91E8071800C0A1A8
-:10AB1800F2CAFFFEF4C9FFFF5C7A5C89FC0A070AE7
-:10AB2800C0A8F6071800C4A05C75FC050709E4096D
-:10AB380000095C89EC091900C0F2F2C5FFFFF9D9D8
-:10AB4800C0105C85FC0C000CEAC2FFFF19870E914F
-:10AB5800E6071800CDA1580AC3003019F20A1800F8
-:10AB6800C0617028E06900802948C0C87028302971
-:10AB7800F20A1800C0412D483409C0482D48E06940
-:10AB880000C0300C3FF7C0D8F60A1800C1705C7ED0
-:10AB9800F00E070CEC0C000C5C8CF20C1900C0D207
-:10ABA800F8CEFFFF5C7C5C8EF00C000CFCC6FFFF4F
-:10ABB800198AEE0A1800CE91300CD832D401F9085F
-:10ABC800001CF3D8C010F2CEFFFE140EE04E004475
-:10ABD800E088000F48F8201D1AD8E06804E31AD866
-:10ABE80048D848EC1AD8F01F000E2FCDC008786E50
-:10ABF800FC090009F36B00F02FF8786BF3D8C0104C
-:10AC0800F6090009F36A00F02FF8F958001CD80279
-:10AC180080039DC480039E0880039D9C800094C48B
-:10AC2800D4013439F908001CF2081900E088000F33
-:10AC380048C8201D1AD8E06804EE1AD848A848BCAD
-:10AC48001AD8F01F000B2FCDC008786AF3D8C010AF
-:10AC5800F4090009F36B00F02FF8F958001CD8022A
-:10AC680080039DC480039E5080039D9C800094C4F3
-:10AC7800D401580CC0E14B18201D1AD8E068062BE7
-:10AC88001AD84AF84AFC1AD8F01F002F2FCDC0084E
-:10AC9800786A580AC0E14A98201D1AD8E068062C3C
-:10ACA8001AD84AA84A7C1AD8F01F00272FCDC00806
-:10ACB800F908001C3439F2081900E088000F49F837
-:10ACC800201D1AD8E068062D1AD84A1849DC1AD867
-:10ACD800F01F001D2FCDC008F7D8C010160A3FFB83
-:10ACE800F56B00F02FF8129B5C88300AF958001CAD
-:10ACF800C1584928201D1AD8E06806321AD8494890
-:10AD0800490C1AD8F01F00102FCDC008F1DEB01082
-:10AD1800786EFC090009F36A00F0F0CEFFFFF3D863
-:10AD2800C010F6081900FE98FFF3F958001CF3D973
-:10AD3800C002CE01D802000080039DC480039E8C0F
-:10AD480080039D9C800094C480039EB080039EDC99
-:10AD5800D401F908001CF3D8C010F2CAFFFEE04A7B
-:10AD68000044E088000F4918201D1AD8E06804F54F
-:10AD78001AD848F848FC1AD8F01F000F2FCDC00881
-:10AD8800786AF4090009F5DBC108F36A00F02FF8C6
-:10AD9800786AF3D8C010F4090009F36B00F02FF8B3
-:10ADA800F958001CD802000080039DC480039F1C32
-:10ADB80080039D9C800094C4D401F908001CF3D83A
-:10ADC800C010F2CAFFFCE04A0044E088000F49B80E
-:10ADD800201D1AD8E06804FD1AD84998499C1AD849
-:10ADE800F01F00192FCDC008786AF4090009F60A87
-:10ADF8001618F36A00F0786A2FF8F3D8C010F4092F
-:10AE08000009F5DBC208F36A00F0786A2FF8F3D876
-:10AE1800C010F4090009F5DBC108F36A00F02FF847
-:10AE2800786AF3D8C010F4090009F36B00F02FF822
-:10AE3800F958001CD802000080039DC480039F605D
-:10AE480080039D9C800094C4D421F9380035A3D890
-:10AE5800F9680035189678A75807C2406E1C580C38
-:10AE6800C050F01F001130088F186E285808C09184
-:10AE78006E355805C061EF090010EA091900C0E0F5
-:10AE880048A8201D1AD8E06804C51AD84888489CE4
-:10AE98001AD8F01F00092FCDC0080E9CF01F00071C
-:10AEA8008DA5D8228001122880039DC480039FA00D
-:10AEB80080039D9C800094C48002E28CD421189762
-:10AEC800782C580CC050F01F000830088F286E3CB2
-:10AED800580CC070F01F00043008EF5800108F386D
-:10AEE800D82200008002E28CD4211896580CC0E1C8
-:10AEF8004AE8201D1AD8E06805D11AD84AC84ADCA1
-:10AF08001AD8F01F002D2FCDC00878A75807C0E128
-:10AF18004A68201D1AD8E06805D31AD84A784A5CCE
-:10AF28001AD8F01F00252FCDC0086E585808C0E069
-:10AF380049E8201D1AD8E06805D41AD84A0849DC1F
-:10AF48001AD8F01F001D2FCDC0086E655805C0E047
-:10AF58004968201D1AD8E06805D51AD84998495C6F
-:10AF68001AD8F01F00152FCDC0080A9AE06B0134DB
-:10AF78000A9CF01F00158F5CC041E06C00FFD822CE
-:10AF88009859E0680133F0091900E08B00214878EE
-:10AF9800201D1AD8E06805DD1AD848C8485C1AD8B8
-:10AFA800F01F00052FCDC00880039DC480039FB407
-:10AFB80080039D9C800094C480039FD880039FFCDD
-:10AFC8008003A0288000D3188003A054EF38001312
-:10AFD800EA081800C0514D3870092FF991097818FE
-:10AFE800301B8F684CF9720A8F0AB09BB08B306B9C
-:10AFF800B0ABF40B1618B0CBF7DAC2083009B0FAC8
-:10B00800B0DBF5DAC108305BB0B9F1690008F16965
-:10B018000009F169000AF169000BF169000CF16996
-:10B02800000DF169000EF169000FB0EAEF3A001265
-:10B03800F60A18005F0C30ABF60A18005F0BF9EB44
-:10B04800100BF20B1800C0513049F20A1800C0D199
-:10B058000DC9F169000C0DD9F169000D0DE9F1690F
-:10B06800000E0DF9F169000F3009ECCAFFD1F16942
-:10B078000010F1690011F1690012F1690013F1691A
-:10B088000014F1690015F1690016F1690017F169FA
-:10B098000018F1690019F169001AF169001BF0CB79
-:10B0A800FFE4ED35002E3106EA091900F9BC02006B
-:10B0B800F5FC380016CC2FF92FFA5C89EC09190039
-:10B0C800CF413009F0CAFFD4129C340B14CC2FF9AD
-:10B0D8005C89F6091900CFB13009F0CAFF94129CB7
-:10B0E800E06B008014CC2FF95C89F6091900CFB108
-:10B0F8003639F16900EFF16900EC3829F16900EDA2
-:10B108003539F16900EE344A3009F0C8FF10EF59BB
-:10B11800001C10C92FF95C89F4091900CFB1D82A8D
-:10B12800000001F0D421580CC0E14A28201D1AD88B
-:10B13800E06806141AD84A084A0C1AD8F01F0020EA
-:10B148002FCDC00878A75807C0E149A8201D1AD8F4
-:10B15800E06806161AD849B8498C1AD8F01F0018A2
-:10B168002FCDC0086E5C580CC0E14928201D1AD8A4
-:10B17800E06806171AD84948490C1AD8F01F001079
-:10B188002FCDC0086E685808C0E148A8201D1AD8FD
-:10B19800E06806181AD848D8488C1AD8F01F000852
-:10B1A8002FCDC008F01F000A30088F688F58D822AA
-:10B1B80080039DC48003A09880039D9C800094C454
-:10B1C8008003A0BC8003A0E08003A10C8000D13CD8
-:10B1D800D42130D878A7EF390012F0091800EFF819
-:10B1E8001E12F9B80100EFF81E13300818968FE800
-:10B1F8008F988FB88FA88FD88FC8EF48004CEF482A
-:10B208000048EF480044F01F0029EBDCC008C201E9
-:10B21800301A335B0E9CF01F0026307B0E9CF01F0B
-:10B2280000250E9CF01F00246E5CEF0B001CF6CB73
-:10B23800FF105C7BF01F00210C983439EECAFFDC4C
-:10B248006E5B6E1CF01F001E0C9CF01F001EEF387A
-:10B2580000132FF85C58EF6800133099F2081800B3
-:10B26800E0880005E0692710C058E06903E8F009A4
-:10B2780002495C79E06801F4F2C9FE0DF2080C0895
-:10B288000C9CEF58001EF01F00100C9C48FBF01F90
-:10B2980000100C9C48DBF01F000F0C9C48BBF01FF3
-:10B2A800000E0A9CD82200008000AEF08000ABC4DB
-:10B2B8008000AC288000AC788000D2108001139008
-:10B2C8008000B12C8000CABC8003B4098000CBC8C0
-:10B2D8008000CA748000CA92D421305878A7EF3908
-:10B2E8000012F0091800EFF81E12F9B80100EFF883
-:10B2F8001E131896F01F0026EBDCC008C2A1301AF6
-:10B30800335B0E9CF01F0023303B0E9CF01F002285
-:10B31800302A339B0E9CF01F001FED1B002C0E9C47
-:10B32800F01F001E0E9CF01F001E6E5CEF0B001C31
-:10B33800F6CBFF105C7BF01F001B0C983439EECA6B
-:10B34800FFDC6E5B6E1CF01F00180C9CF01F0017D2
-:10B35800EF3800132FF85C58EF6800133099F208A3
-:10B368001800E0880005E0694E20C058E06907D061
-:10B37800F00902495C790A9CF2C9FE0DE06801F403
-:10B38800F2080C08EF58001ED82200008000AEF02A
-:10B398008000ABC48000AC288000AD588000AC7839
-:10B3A8008000D210800113908000B12CD42118960F
-:10B3B800580CC0E14AF8201D1AD8E06802F51AD8DE
-:10B3C8004AD84AEC1AD8F01F002E2FCDC00878A70B
-:10B3D8005807C4E0EF3900123088F0091800C4811A
-:10B3E80017B8178A1799B169F3EA118917AAF3EA06
-:10B3F8001089F1E910096EA81039C3A130C8EF68A7
-:10B4080000123008EF680013F01F001E5C5CC28158
-:10B41800301A335B0E9CF01F001C304B0E9CF01F43
-:10B42800001B304A332B0E9CF01F00176EAB0E9C8E
-:10B43800F01F00170E9CF01F00176E5CEF0B001C2E
-:10B44800F6CBFF105C7BF01F00140C983439493A96
-:10B458006E5B6E1CF01F00120C9CF01F0012EF3880
-:10B4680000132FF8EF6800133148EF58001ED82258
-:10B4780080039DC48003A13880039D9C800094C4F0
-:10B488008000AEF08000ABC48000AC288000ADC066
-:10B498008000AC788000D2108003B405800113903E
-:10B4A8008000B12CD421303878A7EF390012F00988
-:10B4B8001800EFF81E12F9B80100EFF81E131896DD
-:10B4C800F01F002AEBDCC008C321301A335B0E9C46
-:10B4D800F01F0027303B0E9CF01F0026302A339BBC
-:10B4E8000E9CF01F0023E06B02400E9CF01F002210
-:10B4F800304A332B0E9CF01F001E6EAB0E9CF01FC3
-:10B50800001F0E9CF01F001E6E5CEF0B001CF6CB9C
-:10B51800FF105C7BF01F001B0C98343949AA6E5B46
-:10B528006E1CF01F001A0C9CF01F0019EF38001356
-:10B538002FF85C58EF6800133099F2081800E0887B
-:10B548000005E0692710C058E06903E8F0090249DE
-:10B558005C790A9CF2C9FE0DE06801F4F2080C0857
-:10B56800EF58001ED82200008000AEF08000ABC467
-:10B578008000AC288000AD588000ADC08000AC7859
-:10B588008000D2108003B405800113908000B12C94
-:10B59800D4214BD811B9118B119A11A8B16AF5EBC6
-:10B5A800118AF5E81088F3E8100878A78FA8EF3912
-:10B5B80000123068F0091800EFF81E12F9B80100FF
-:10B5C800EFF81E131896F01F0031EBDCC008C3E13A
-:10B5D800301A335B0E9CF01F002E301B0E9CF01FA0
-:10B5E800002D302A339B0E9CF01F0029ED1B002CE8
-:10B5F8000E9CF01F0029304A337B0E9CF01F00245C
-:10B60800301B0E9CF01F0023303B0E9CF01F0021C6
-:10B6180031CB0E9CF01F001F306B0E9CF01F001DDD
-:10B628000E9CF01F001E6E5CEF0B001CF6CBFF108B
-:10B638005C7BF01F001B0C98343949AA6E5B6E1CAA
-:10B64800F01F00190C9CF01F0019EF3800132FF899
-:10B658005C58EF6800133059F2081800E0880005BC
-:10B66800FE79EA60C058E06903E8F20809495C79A4
-:10B678000A9CF2C9FE0DE06801F4F2080C08EF58C4
-:10B68800001ED8228003B4098000AEF08000ABC44D
-:10B698008000AC288000AD588000AC788000D210C3
-:10B6A8008003B405800113908000B12CD421301898
-:10B6B80078A7EF390012F0091800EFF81E12F9B850
-:10B6C8000100EFF81E131896F01F0039EBDCC008D4
-:10B6D800C501301A335B0E9CF01F0036303B0E9CC0
-:10B6E800F01F0035302A339B0E9CF01F0032ED1BF3
-:10B6F800002C0E9CF01F0031304A332B0E9CF01F9B
-:10B70800002D6EAB0E9CF01F002E304A336B0E9C42
-:10B71800F01F00286E9B0E9CF01F0029304A337BD7
-:10B728000E9CF01F0024301B0E9CF01F0023303BA2
-:10B738000E9CF01F002131CB0E9CF01F001F306BB8
-:10B748000E9CF01F001D0E9CF01F001E6E5CEF0B80
-:10B75800001CF6CBFF105C7BF01F001B0C983439E3
-:10B7680049AA6E5B6E1CF01F001A0C9CF01F001992
-:10B77800EF3800132FF85C58EF6800133059F208BF
-:10B788001800E0880005FE79EA60C058E06903E81F
-:10B79800F20809495C790A9CF2C9FE0DE06801F4D7
-:10B7A800F2080C08EF58001ED82200008000AEF006
-:10B7B8008000ABC48000AC288000AD588000ADC0CC
-:10B7C8008000AC788000D2108003B405800113900B
-:10B7D8008000B12CD421304878A7EF390012F00945
-:10B7E8001800EFF81E12F9B80100EFF81E131896AA
-:10B7F800F01F0025EBDCC008C291301A335B0E9CA9
-:10B80800F01F0022303B0E9CF01F0021302A339B92
-:10B818000E9CF01F001EED1B002C0E9CF01F001D3F
-:10B828000E9CF01F001D6E5CEF0B001CF6CBFF108A
-:10B838005C7BF01F001A0C983439499A6E5B6E1CB9
-:10B84800F01F00180C9CF01F0018EF3800132FF899
-:10B858005C58EF6800133099F2081800E08800057A
-:10B86800E0692710C058E06903E8F00902495C79EB
-:10B878000A9CF2C9FE0DE06801F4F2080C08EF58C2
-:10B88800001ED8228000AEF08000ABC48000AC2837
-:10B898008000AD588000AC788000D2108003B405D9
-:10B8A800800113908000B12CD4314A5830167007AB
-:10B8B80030A20C9330043055C3E86EA85808C3A0D2
-:10B8C800F1090022F2CA0001F15A0022EC0919001C
-:10B8D800C151F1380012E40818005F0AE6081800A0
-:10B8E8005F09F5E91009E8091800C041EA081800DD
-:10B8F800C2110E9CF01F0013C1D8F1090020F2CA32
-:10B908000001F15A0020EC091900C141F138001278
-:10B91800E40818005F0AE60818005F09F5E910094D
-:10B92800E8091800C041EA081800C0410E9CF01F41
-:10B9380000066E075807CC21D8320000000080CCE2
-:10B948008000B7DC8000B2E0D4211896580CC0E122
-:10B958004C08201D1AD8E068024E1AD84BE84BFC58
-:10B968001AD8F01F003F2FCDC008F9380035A3D8EA
-:10B97800F968003578A7F909002CE068023FF0095A
-:10B988001900E088008B5807C091350CF01F00356E
-:10B998001897E08000838DACC2E86E1C580CC0304C
-:10B9A800F01F00316E585808C0E04AA8201D1AD868
-:10B9B800E068026C1AD84AD84A8C1AD8F01F0028B6
-:10B9C8002FCDC0086E285808C0916E385808C0613D
-:10B9D800EF090010F0091900C0E049E8201D1AD845
-:10B9E800E068026E1AD84A2849CC1AD8F01F001C01
-:10B9F8002FCDC008350A300B0E9CF01F001EF01F1B
-:10BA0800001E8F1C1895C0610E9CF01F001C8DA590
-:10BA1800C178344A49ABF01F001B499B343A6E1C6D
-:10BA2800F01F00190C9A499B6E1CF01F00190C9C02
-:10BA3800F01F00185C5CC0700C9CF01F0017E06CD5
-:10BA480000FFD822ED380035A3B8ED680035D822BC
-:10BA580080039DC48003A13880039D9C800094C40A
-:10BA68008002E2A4800112288003A14880039FA0DD
-:10BA78008002E8BC800112008002E28C8003B409D5
-:10BA880080011260800113208000BBBC800111F886
-:10BA98008000B5988000AE50E06C00FFD82200000E
-:10BAA800D421202D1896580CC0E14BA8201D1AD877
-:10BAB800E06803781AD84B884B8C1AD8F01F0038E6
-:10BAC8002FCDC00878A75807C0E14B28201D1AD8E9
-:10BAD800E068037A1AD84B384B0C1AD8F01F00309C
-:10BAE8002FCDC0086F295BF9C1102E2933C8E06A31
-:10BAF800FFFFF2080D081438F40817B0EF580020BB
-:10BB08005808F9B80001EFF80C106F395BF9C1104B
-:10BB18002E2933C8E06AFFFFF2080D081438F4082C
-:10BB280017B0EF5800225808F9B80001EFF80C11C7
-:10BB38006EB850185808C041FC18FF0050186EC85D
-:10BB480050085808C0716EA84019F3E80008A1A869
-:10BB58005008EECBFFD80C9CF01F0013FACBFFFC6B
-:10BB68000C9CF01F00121A9B0C9CF01F00110C9CDF
-:10BB7800F01F0010EF39001230A8F0091800EFF894
-:10BB88001E12F9B80100EFF81E132FEDD82200009D
-:10BB980080039DC48003A16080039D9C800094C4A1
-:10BBA8008003A17C8000CBC88000CA928000CA7440
-:10BBB8008000CB88D43178A71896149574186E290C
-:10BBC8005809C0916E395809C061EF0B0010F20B8B
-:10BBD8001900C0E04BE8201D1AD8E06805651AD89E
-:10BBE8004BC84BDC1AD8F01F003D2FCDC0088A5B2C
-:10BBF80032BAF40B1900E088020F118B302AF40BCB
-:10BC08001800E0810209F93C002EECCBFFD1F0CA04
-:10BC1800FFE4C0982FF917345C59153EFC0418004E
-:10BC2800E08101FAF8091800CF6311FA11CB11D994
-:10BC380011E8B169F3EB1189F3E810896E08F5E9A9
-:10BC480010091039E08101E80E9CF01F00258A4C8C
-:10BC5800E06800F0F00C1900E088000FF8CC00F064
-:10BC6800EF5C00105C7CF01F001F8F3CC051EF5C44
-:10BC78000010E08F01D1E06C00F0F01F001A8F2C4B
-:10BC88001894C0C16E3C580CE08001C6F01F001625
-:10BC9800EF5400108F34E08F01BF189B3009E06A21
-:10BCA80000F00A9CF01F0011E06800F0F00C190089
-:10BCB800C2004878201D1AD8E068052E1AD848C84E
-:10BCC800485C1AD8F01F00052FCDC00880039DC41A
-:10BCD80080039FA080039D9C800094C48000AEC414
-:10BCE8008002E2A48002E28C8000CEC48003A1948A
-:10BCF8006E3B580BE08001B2E06900F0EF1A0010CB
-:10BD08000A9CF01F0036EF080010F8081900E080C0
-:10BD180001A54B38201D1AD8E06805351AD84B18EC
-:10BD28004B1C1AD8F01F00312FCDC00819A8305A63
-:10BD3800F4081800E0810100EF3800123019F20809
-:10BD48001800E08100EC30086CA4333B89D889B82E
-:10BD580089C8089CF01F0026C0F0F8C8FFFC19AB82
-:10BD6800119919BA1188B16AF5EB118AF5E81088AA
-:10BD78001248E948004433AB089CF01F001DC0E09E
-:10BD8800F8C8FFFC19AB119919BA1188B16AF5EB1B
-:10BD9800118AF5E810881248C0386918A198E9484E
-:10BDA800004833BB089CF01F0012C0E0F8C8FFFC35
-:10BDB80019AB119919BA1188B16AF5EB118AF5E82E
-:10BDC80010881248C0286918E948004C6828F0C94A
-:10BDD800FFF0C0F11298C1C88000CEC480039DC492
-:10BDE8008003A1C880039D9C800094C48000AAF4AD
-:10BDF800F1390013F13B0010F13A0011F13800124B
-:10BE0800B16AF5EB118AF5E81088F3E8100889A8FB
-:10BE1800301B089CF01F0084C0E0F8C8FFFC19AB79
-:10BE2800119919BA1188B16AF5EB118AF5E81088E9
-:10BE3800124889B8303B089CF01F007BC0E0F8C866
-:10BE4800FFFC19AB119919BA1188B16AF5EB118A7F
-:10BE5800F5E81088124889C831CB089CF01F007299
-:10BE6800C0E0F8C8FFFC19AB119919BA1188B16A7A
-:10BE7800F5EB118AF5E81088124889D8306B089CD0
-:10BE8800F01F00691892C2E01998A38889E8582819
-:10BE9800F9B80B02E9F8BA0E3003C1D8E608150262
-:10BEA800E6C9FFF22FE8E8090029E4080008113E76
-:10BEB800113AB16AF5EE118A118EF5EE108A1191D8
-:10BEC800069CF5E11001F2CBFFFC93112FF3F01F54
-:10BED80000575C5368E81033CE23069C4D4BF01F87
-:10BEE80000536CA43008E93A00123089EF58001E5C
-:10BEF800F20A1800E9F91E12E9F81E130C9C300A20
-:10BF0800E8CBFFD8F01F004BE93800132FF8E96899
-:10BF180000133018E958001EC7E820383029F20805
-:10BF28001800E08B007930080C9CEF58001EF01FB9
-:10BF38000042C7183069F2081800C3513019EF38A9
-:10BF48000012F20818005F0B3039F20818005F0978
-:10BF5800F7E91009C0813049F2081800C040F40818
-:10BF68001800C5916CA40C9C3003EF53001EF01F01
-:10BF780000330C9C4AEBF01F00320C9C4ACBF01F9C
-:10BF880000310C9C4AABF01F0030E939001230C870
-:10BF98000C9CF0091800E9F31E13E9F81E12F01FB3
-:10BFA800002BC398302AF4081800C351EF38001248
-:10BFB800F2081800C30130086CA4EF58001E336B58
-:10BFC800089CF01F0019C270F8C8FFFC19AB119942
-:10BFD80019BA1188B16AF5EB118AF5E81088124888
-:10BFE80089986828F0C9FFF0C0311298C108F13962
-:10BFF8000013F13B0010F13A0011F1380012B16A58
-:10C00800F5EB118AF5E81088F3E8100889A80C9C6C
-:10C01800F01F000F0E9CF01F000F0A9CF01F000E6F
-:10C02800D83200008000AAF48000C19C8003B409C3
-:10C038008001384C8000BAA88000CABC8000CBC8F8
-:10C048008000CA748000CA928000B5988000B6B497
-:10C058008000AEC48000D13C335B0E9CF01F00030F
-:10C06800FE91FE66CD8B00008000AAF4D4314C18F6
-:10C07800301370073002069430813050C7686EA6BE
-:10C088005806C720ED05001EE6051900E0880006E1
-:10C098002015ED55001EC688E6051900C651ED3875
-:10C0A8000012306AED52001EF40818005F0A30C909
-:10C0B800F20818005F09F5E91009300AF4091800B8
-:10C0C800C501E8081800C0B1ED380013E0081800F1
-:10C0D800E08B00360E9CF01F0028C468E2081800A8
-:10C0E800C191ED380013E8081800E08B0010300A01
-:10C0F800ECCBFFD80E9CF01F0021ED380013ED5556
-:10C10800001E2FF8ED680013C2F80E9CF01F001CEB
-:10C11800C2B8E0081800C0510E9CF01F001AC248AF
-:10C128003049F2081800C0F1ED380013E208180091
-:10C13800E08B00060E9CF01F0014C1680E9CF01FD7
-:10C148000013C0F83039F2081800C0E1ED380013C8
-:10C15800E8081800E08B00060E9CF01F000DC04890
-:10C168000E9CF01F000C6E075807C8A1D8320000BB
-:10C17800000080CC8000B6B48001384C8000BAA89A
-:10C188008000B2E08000B7DC8000B1D88000B4AC99
-:10C198008000B598D4013019F20C1800E08B001D0E
-:10C1A800580B5F1A48D9720958095F19F5E900094F
-:10C1B800C13017B9178E179A17A8B16AF5EE118A08
-:10C1C800F5E81088F3E81008C0704858304AF00CB9
-:10C1D800002CF01F0004D80200001D5800001D505C
-:10C1E8008002E736D42130181897F00B1800E08B3E
-:10C1F80000074868304AF00B002BC038304A484BDB
-:10C20800F01F00040E9CD82200001D508003B409C2
-:10C218008002E736D4313013189516911492E60C43
-:10C228001800E088000F4BB8201D1AD8E0680246B5
-:10C238001AD84B984B9C1AD8F01F00392FCDC0083C
-:10C248004B89F20C0028F20C072B11BA119911A88E
-:10C25800B169F3EB1189F3E81088F5E81008C0E13B
-:10C268004AC8201D1AD8E06802471AD84AE84ABCCA
-:10C278001AD8F01F002B2FCDC008300AE06B011030
-:10C28800149CF01F002A1897C041E06600FFC758A9
-:10C2980078045804C0E049F8201D1AD8E068024D17
-:10C2A8001AD84A3849DC1AD8F01F001D2FCDC0080B
-:10C2B800781630CA089B0C9CF01F001EECC9FFF4CE
-:10C2C800AC92ACD3E5D2C110ACA3ACC42011AC8203
-:10C2D80032EC2FF1F2C8FFFF300AC05810CBF5D26C
-:10C2E800C0082FF1038BF4C2FFFFE80B18005F139F
-:10C2F800F80B18005F16E7E60006E8061800CEF10E
-:10C30800B28A0389E8091800C1601099CE3B000081
-:10C318008003A1E48003A22880039D9C800094C42C
-:10C3280000001D508003A2408000D3188003A2643F
-:10C338008002E8BCF0CBFFFB10C9B089B0A9301966
-:10C34800B099B0B96E180E9C101B5C7BF01F000CE6
-:10C3580048C848D6F0050025335A6C0C0A9BF01FD4
-:10C36800000B6C0C0A9A33590E9BF01F0009EDDC88
-:10C37800C0080E9CF01F00070C9CD8328000D21019
-:10C3880000001D5000001D5880011320800114F08A
-:10C398008000D13CD421189A303CF80A1800E08873
-:10C3A800000F4BE8201D1AD8E068028A1AD84BC83B
-:10C3B8004BCC1AD8F01F003C2FCDC0084BB8E06713
-:10C3C8000118F4070247F007000730180F8B169979
-:10C3D800F00B1800C0A0C603302BF6091800C0F0F7
-:10C3E800F8091800C4C1C4383008AEABAEB8AE986E
-:10C3F800EECBFFF43028300CAE88C3680FA92019A3
-:10C408005C59AEA9C4910FBB2FFB5C5BAEBB0F9C04
-:10C41800304EFC0B1800C251F20C1800C1214A4AD8
-:10C4280015FB15CE15DC15EAB16CF9EE118CF9EA9D
-:10C43800108AF7EA100AC050AEB9AEA8AE98D82252
-:10C44800EEF801105808C070EEFA0114300BEECC6B
-:10C45800FFF45D183008AE883008EF480110D82284
-:10C46800AEABEECBFFF4F01F0013D8226E282018D5
-:10C478008F28C121EF480110AE88D8224878201DA6
-:10C488001AD8E06802C61AD848B8486C1AD8F01FFB
-:10C4980000062FCDC008D8228003A1E48003A28023
-:10C4A80080039D9C800094C4000018F000001D507B
-:10C4B8008000C21C8003A29CD431580B5F081292E2
-:10C4C80016974BB914967209189558095F04F1E448
-:10C4D8001004E08100B6580CE08000B31989E8091F
-:10C4E8001800E08000AEF01F0033E04C00FFE08B46
-:10C4F80000A84B1B0A9CF01F0031C08137F8AEA47E
-:10C50800AE88AE9C3018AEB8D8320A9CF01F002C0A
-:10C51800F8081618AE88F1DCC208AEBCAE98F1DC9B
-:10C52800C108AEA85BFCE081008F4A63300430305C
-:10C5380006910788E0081800C171E80400280A9CE1
-:10C54800F00B1503101B2FFBE20B003B2FCBF01F4A
-:10C55800001BC0A1E0680118B13449A8F004000428
-:10C56800E8F8010CC0782FF4E6C3FEE85844CE2161
-:10C578003FF8F0091618AE89F3D8C208AEB8AE99DC
-:10C58800F3D8C108AEA95BF8C5E1300748E848DB35
-:10C59800118A0E9C0E9930313043F2C0FFFF178488
-:10C5A80016985804C1211297C358000000001D585E
-:10C5B8008002EDD08003A2BC8002ECC880011E106E
-:10C5C800000018F0000018ECE2041800C0C117C8F9
-:10C5D800F4080104F40801081838E08A0005F9D4C1
-:10C5E800C0081297F3D0C008F6CBFEE8E609180099
-:10C5F800CD513039F2071800E08B0027494BE0682D
-:10C608000118EE080248F6080008118BF20B180012
-:10C61800C1B1F4C9FFFFB0CAF1460110301AF142A6
-:10C628000114B08AF0CCFFF448A80A9BB089F01F27
-:10C63800000A0E9CF01F0009E06C00F2D832E06C92
-:10C6480000F7D832D83AE06C00FFD832000018F072
-:10C65800000018EC8002ED708000C39CD40148985B
-:10C6680070085808C0D0300CF01F0007301CF01FAD
-:10C678000006302CF01F0004303CF01F0003D802E5
-:10C6880000001D588000C39CD421494C4946F01F26
-:10C6980000156C0518975805C1E1F01F00138D0CA3
-:10C6A800C1A0492B0A9AF01F00120A9A491B6C0C68
-:10C6B800F01F00116C085808C0E05807C0C0EE0908
-:10C6C800161848E8B0B7B089F3D7C208EFD7C10841
-:10C6D800B099B0A7D82200008003A2C800001D5856
-:10C6E80080011E10800112008003B40980011260CD
-:10C6F8008000C704800111F800001D50D431E068A3
-:10C7080002001496944AF00A1900E08B00E331986D
-:10C71800F00A1900E08800DE4DF75C7A30090E9BBC
-:10C728000C9CF01F005E8C48F8081900E08100D2CC
-:10C738000F993038F0091800E08B00CCE06501183B
-:10C74800AB394D75120530290B8AF20A1800E081C1
-:10C7580000C1AA880FBAF5DAC004AADA0FD80FCB3D
-:10C76800F1EB108B0FF80FEC5C8BF1EC108C3009AF
-:10C778005C8C0FA8F2081800E084009DF20A1800EB
-:10C788005F18301AF40B18005F1AF5E81008F20861
-:10C798001800E0810090EAC4FFF42F4708980F8939
-:10C7A800129AE21A00C0E04A00C0C1502FF7C098A0
-:10C7B800F3DBC0082FF7118BF40B1800C7B12FF863
-:10C7C800F2CB00010F8A5809CF41F20A1800C03095
-:10C7D8002FF8CE6B4B0B30082F4B1739129AE21AF1
-:10C7E80000C0E04A00C0C060120B1789F0091800A9
-:10C7F800CF51F1DCC0082FBB300E301A3047C58846
-:10C808001739129CE21C00C0E04C00C0C060120B3B
-:10C818001789FC091800CF512FFB17CC17D9B1691C
-:10C82800F3EC118917ECF7330008F3EC108917A221
-:10C8380017FC1781F9E91009F73C0009F9E3108C96
-:10C8480017B35C8CE7E2108317925C83E5E11082F2
-:10C85800F4021900C281F4031900C251EE0C190048
-:10C86800C2218B29E8593A80E0880005E8783A80A7
-:10C878008B28EAC7FEF42F6B304A0E9CF01F000984
-:10C88800EAF801105808C250EAFA01140E9B089CF5
-:10C898005D18C1F800001D5C8000CEC4000018F0CF
-:10C8A8008002E7365C7C20182F6C5C58180B5808FF
-:10C8B800CA81EAF801105808C070EAFA0114300B6E
-:10C8C800EACCFFF45D183008AA883008EB4801105C
-:10C8D8000C9CF01F0002D8328000D13CD401F01F1C
-:10C8E8000003F01F0003D8028000C8F88000C6903B
-:10C8F800D42149A949ABF2CCFEC4F2C8FF54300A8E
-:10C90800F2C9FF50910A930AB22A172EF14EFFFC82
-:10C918002F092F081838CF71492949382FD9149C65
-:10C92800E019FFFCF0C6FFDC48D7490E910CEE0A6F
-:10C938000405189BC098700493042FFB9109FC0A06
-:10C9480005045C8B0809EA0B1900CF632FC82FEA8E
-:10C958000C38CED1D8220000000080D48003A2D8A1
-:10C9680000001F5C000072E88003A394D401580BF8
-:10C97800C200F1DBC002C0E048F8201D1AD8E06808
-:10C98800016B1AD848D848EC1AD8F01F000E2FCDE2
-:10C99800C00848D8F00C03299709F00C092B48B8AF
-:10C9A800A56CF00C000CF8CCFF54780820189908F6
-:10C9B800D80200008003A2EC8003A33080039D9C72
-:10C9C800800094C4000072E8000080D4D421189834
-:10C9D800588CE088000F49F8201D1AD8E068013DFE
-:10C9E8001AD849D849DC1AD8F01F001D2FCDC00825
-:10C9F80049CE49D9FC0C032CF0CAFFF5580CC230BB
-:10CA0800A56AF00B15047807F20B000BFC08092740
-:10CA1800F6CBFF5414097608720A2FF8103AF3F887
-:10CA28003A009708F1DCC002C13048A8201D1AD886
-:10CA3800E068014F1AD848D8488C1AD8F01F000867
-:10CA48002FCDC008A56A140992282FF8B228D82239
-:10CA58008003A2EC8003A35080039D9C800094C4B3
-:10CA6800000072E8000080D48003A370580BC0C097
-:10CA780017B8178A179917ABB169F3EA1189F3EB5D
-:10CA8800108BF1EB100B993B5EFC580BC0C017B82C
-:10CA9800178A179917ABB169F3EA1189F3EB108B71
-:10CAA800F1EB100B992B5EFC4828910C5EFC000002
-:10CAB800000080D0D4211897F9380035EDB800006F
-:10CAC800C0D1A1C8F968003578885808C0205D1819
-:10CAD8006E785808C0300E9C5D18D822F93C003595
-:10CAE800F9DCC0015EFC580CF9FB1A075EFCD703A1
-:10CAF800D421300A18971696302C96CBF01F001ABE
-:10CB08001895C041E06600FFC2B80C9BF01F0017E3
-:10CB1800EDDCC008C0500A9CF01F0015C2180A9826
-:10CB280070095809C0301298CFCB6EF95809C15016
-:10CB38006F095809C0E148F8201D1AD8E068025367
-:10CB48001AD848D848DC1AD8F01F000D2FCDC008D5
-:10CB58009305EF480040C048EF4800408FF50C9C13
-:10CB6800D82200008000D3188000CF988000D13CE4
-:10CB78008003A3A88003A44480039D9C800094C4E0
-:10CB8800D4211897F9380035EDB80000C170A1A874
-:10CB9800F968003578885808C0205D186E785808FC
-:10CBA800C0300E9C5D18EF380035EDB80005C06147
-:10CBB8000E9CEECBFFFCF01F0002D8228001370C40
-:10CBC800D42117881799B169F3E8118917A8F3E8F0
-:10CBD800108917B81697F1E91009189678181039BE
-:10CBE800C27049A8700CC0A8780978356C1810393B
-:10CBF800C041301BF01F00160A9C580CCF614958E1
-:10CC08007008C14870095809C1006C1A1439C0D19C
-:10CC18000F8A0F99B169F3EA11890FAAF3EA10890B
-:10CC28000FBAF5E91009910970385808CEC10F8A72
-:10CC38000FB90F98B168F1EA11880FAAF1EA1088C4
-:10CC4800F3E810088D18D8220000820C8000E12437
-:10CC580000008214D421149712961895F01F001022
-:10CC68005807C0C00FB80F8A0F990FA7B169F3EA28
-:10CC78001189F3E71087F1E710078B275806C0C022
-:10CC88000DB80D8A0D990DA6B169F3EA1189F3E67D
-:10CC98001086F1E610068B36D82200008000CBC83B
-:10CCA800D4213006999899169926993699A6997695
-:10CCB800998699F6F94600404908FAC4FFEC681EBF
-:10CCC8006804F96600351185F96500382FF5B085D7
-:10CCD8001897994EF01F000A0E9C5D145C5C4898EA
-:10CCE800580CEC071710F1F90000EFF90A00F1F7FA
-:10CCF8000A000E9CD82200000000730C8000CC5C57
-:10CD0800000080CC1898300CC0482FFC70085C5C80
-:10CD18005808CFC15EFC580CF9F81207F9B901019F
-:10CD2800F1D9E108F9F81C075EFCD703D401580CC7
-:10CD38005F08580B5F09F3E81008C1304978201DD7
-:10CD48001AD8E068028F1AD84958496C1AD8F01FC7
-:10CD580000162FCDC008964AF4080008B848129C5F
-:10CD6800984878095809CF819859F0091900C0E006
-:10CD780048A8201D1AD8E06802971AD848B8489CD5
-:10CD88001AD8F01F00092FCDC0089649990BF20850
-:10CD98000008B848D80200008003A4708003A4B437
-:10CDA80080039D9C800094C48003A4ECD421169732
-:10CDB800F01F00065807EFF81207F9B90101F1D979
-:10CDC800E108EFF81C07D8228000CD34D421580C94
-:10CDD800C0E14B58201D1AD8E06801B01AD84B386A
-:10CDE8004B3C1AD8F01F00332FCDC008580BC03168
-:10CDF800169CD8223008F00B1900C154F60911000E
-:10CE080098585C89F2081900C0F24A78201D1AD88F
-:10CE1800E06801B71AD84A884A5C1AD8F01F00257A
-:10CE28002FCDC0081699F93E000C300A3037F40EA1
-:10CE380019005F08EE0E19005F061497104678185F
-:10CE4800F4061800C0A0F00B01099919F8CAFFF000
-:10CE58001439C2029918DA2A201E3017EE0E19006A
-:10CE6800E08B000CF40B1900C1D4985AF20A19008F
-:10CE7800C19316189918C0E848B8201D1AD8E06858
-:10CE880001E61AD848D848AC1AD8F01F000A2FCDA6
-:10CE9800C00898581608B8589848F00B000BB84BBB
-:10CEA800D82ADA2A8003A47080039EA480039D9C5C
-:10CEB800800094C48003A51C8003A53CD43116913E
-:10CEC8001497580CC0E14AD8201D1AD8E068033ED0
-:10CED8001AD84AB84ABC1AD8F01F002B2FCDC00860
-:10CEE800580BC070300518960A920A930A90C388A6
-:10CEF8004A28201D1AD8E068033F1AD84A384A1C25
-:10CF08001AD8F01F00212FCDC0085809C0A08C588E
-:10CF1800F208010AF0091900C043F3DAB010C1F8A9
-:10CF2800F1D9C0108C54E8090109EE091900EE097D
-:10CF380017B06C1BE9D9B010F9D5C010100BE20C72
-:10CF4800000C089A5C7AF01F0012E8030003081727
-:10CF5800E80500055C835C855C8730096C0658062B
-:10CF68005F1AE40719005F18F5E80008E0081800E0
-:10CF7800CCD1069CD83200008003A4708003A5B0F1
-:10CF880080039D9C800094C48003A5D08002E7366E
-:10CF9800D431580C5F08580B5F0918961697F3E8B8
-:10CFA8001008C06198499648F0091900C0E24C7809
-:10CFB800201D1AD8E06802FE1AD84C584C5C1AD8C2
-:10CFC800F01F00452FCDC00830050A945806C0E16F
-:10CFD8004BE8201D1AD8E06803031AD84BF84BDC3D
-:10CFE8001AD8F01F003D2FCDC0088C5808995C79DD
-:10CFF8008E53F5D8C010F7D3C010121AF3D5C0104D
-:10D00800F6090109123AE7D5E413E8091750F1D9EE
-:10D01800E51308985C786C1C100CF1D5C0105C8383
-:10D028006E1BF5D3C010100BF01F002DE604000492
-:10D038008C585C84F0041900E088000F4A38201DE1
-:10D048001AD8E068030F1AD84A684A2C1AD8F01F71
-:10D0580000222FCDC008F0041900EDF60000F9B445
-:10D068000000E60500058E585C85F0051900E0888B
-:10D07800000F4968201D1AD8E06803151AD849A876
-:10D08800494C1AD8F01F00142FCDC008F00519001C
-:10D09800EFF72000F9B502005807C2908E598E4864
-:10D0A800F0091900C2416E085808C2104878201DBE
-:10D0B8001AD8E068031F1AD848C8486C1AD8F01F55
-:10D0C80000062FCDC00800008003A4708003A5F4DB
-:10D0D80080039D9C800094C48003A6248002E736C8
-:10D0E8008003A6348003A64C8003A6685806C16056
-:10D0F8008C598C48F0091900C1116C085808C0E017
-:10D108004898201D1AD8E06803241AD84878488C13
-:10D118001AD8F01F00082FCDC0085807FE91FF58F5
-:10D128000E9CD8328003A4708003A66880039D9C5F
-:10D13800800094C4D421189B580CC0E14AB8201D23
-:10D148001AD8E068021C1AD84A984AAC1AD8F01FB4
-:10D15800002A2FCDC008F939000C3038F009180022
-:10D16800E088000F4A18201D1AD8E06802281AD84B
-:10D178004A284A0C1AD8F01F00202FCDC0083007C3
-:10D18800303530169679F2C800015C885809C0E13C
-:10D198004968201D1AD8E06802351AD84988495CC0
-:10D1A8001AD8F01F00152FCDC008B6785808C1B19D
-:10D1B800F738000C169CF0C900017604EA0819003B
-:10D1C800C031308CC068EC091900E08B0006307C57
-:10D1D800F01F000CC038F01F000C2FF7089B5C579D
-:10D1E8005804CD110E9CD8228003A47080039EA4FD
-:10D1F80080039D9C800094C48003A6948003A6AC01
-:10D208008000C9748002E28CD421580CC0E14B988C
-:10D21800201D1AD8E068015F1AD84B784B7C1AD8C1
-:10D22800F01F00372FCDC0083019F938000CF2086C
-:10D2380018005F1A3039F20818005F19F5E900097B
-:10D24800C1405808C1203029F2081800C0E04A98A7
-:10D25800201D1AD8E06801631AD84AA84A7C1AD84F
-:10D26800F01F00272FCDC0089848F00B1900C3F213
-:10D27800F3D8C0101897F1DBB0105C7B121BC27892
-:10D28800E04BFFFEE08A000F49A8201D1AD8E0688D
-:10D2980001771AD849C8499C1AD8F01F00192FCD10
-:10D2A800C0088E481608AE486E075807C0E14918EE
-:10D2B800201D1AD8E068017B1AD8494848FC1AD8BA
-:10D2C800F01F000F2FCDC008F1DAB0108E59F00909
-:10D2D800010AF2081900FE9BFFD5AE48AE586E0C45
-:10D2E800580CC030F01F000A30088F08D822000000
-:10D2F8008003A4708003A70080039D9C800094C4D1
-:10D308008003A7188003A7348003A7488000D13C76
-:10D31800D431202D16971495581CC0B0C083582CB2
-:10D32800C040583CC0B1C1783004C0583144C0280E
-:10D3380030042EC42E445C84C0F84C08201D1AD832
-:10D34800E06800D11AD84BE84BEC1AD8F01F003E21
-:10D358002FCDC00830045825E08B00065815E08210
-:10D3680000DDCBF85835E08100E6308CF01F00373F
-:10D378001896E08000F25C740E99E8C8FFFD5C79AD
-:10D38800E018FFFCB847E06A02443000F4080108DE
-:10D39800F8040004F0090D472ED4E014FFFCAC5744
-:10D3A8009914F965000C99005C77F8C3FDAC0E047C
-:10D3B8000833C0E24A18201D1AD8E06800EB1AD8D2
-:10D3C8004A384A0C1AD8F01F00202FCDC008580838
-:10D3D800E089000F4998201D1AD8E06800ED1AD896
-:10D3E80049C8498C1AD8F01F00182FCDC008F20779
-:10D3F800010700980A9918943015E0610243B8753E
-:10D40800E0620244C6A850195008308CF01F000F83
-:10D418000E9B189A5C8BF4CEFFF0F6011900F60CFF
-:10D428001720E40C173040194008580AC1610C9CB9
-:10D438001496F01F0009C9088003A4708003A76030
-:10D4480080039D9C800094C48000C9D48003A77C7D
-:10D458008003A7B08000D13C9508890AF569000CC3
-:10D46800F560000DE047FFFFC0E14BD8201D1AD83A
-:10D47800E06801071AD84BB84BBC1AD8F01F003B1C
-:10D488002FCDC008951EB45CB44BFDDEC002C0E0D1
-:10D498004B38201D1AD8E068010D1AD84B484B2C80
-:10D4A8001AD8F01F00322FCDC0085C7C8CDB18170F
-:10D4B80014946C1CF80B000B1633C0E24A88201D2C
-:10D4C8001AD8E06801101AD84AA84A7C1AD8F01F5E
-:10D4D80000272FCDC008B4755807FE99FF96C3786A
-:10D4E8000E985C782FD8E018FFFC5C74E8CCFFED50
-:10D4F800E01CFFFC100CF01F00201896C2D030086A
-:10D50800F8040004AC572ED4B847E014FFFCF968BF
-:10D51800000C99149908C1B8307CF01F00181896AF
-:10D52800C1B03008AC57F965000CB847990899188C
-:10D53800C0E848B8201D1AD8E068013D1AD8490843
-:10D54800489C1AD8F01F00092FCDC0083018AC78B5
-:10D558003008ED68000D0C9C2FEDD8328003A470C4
-:10D568008003A7E480039D9C800094C48003A7F8EF
-:10D578008003A77C8002E2A48000C9D48003A82885
-:10D58800D43149B8781918951094300CF2C2FFF4C8
-:10D59800F3310009700718961893C1E8EF380010A6
-:10D5A8000238C1716E585808C1400A9A0E9B6E6CB9
-:10D5B80004995D18C0E05806C0410C95301CC0A8FD
-:10D5C8006E388D3868088F388907301C3005C028B8
-:10D5D800300C0E966E37E60C18005F0858075F1976
-:10D5E800F3E80008E6081800CDA1D832000073104F
-:10D5F800E06C00FB5EFCD421E067040078A8F90B1E
-:10D60800002C78C9F5DBC010F90E003C100AEE0EAC
-:10D618001900E0880005E06E0400C0285C7EF4096B
-:10D628000107EE0E010EC076F95B002E78CCF40CE3
-:10D63800010CD822F009010A580AE08A00063008CD
-:10D64800F958002ED82AF2080108F958002ED82ACD
-:10D65800996B5EFCF94B008C5EFCF94B00885EFC14
-:10D66800F94B00985EFC998B5EFCF96A0039F94B1E
-:10D6780000945EFC5EFC5EFC48A87008C028703808
-:10D688005808CFE148887008C02870385808CFE19A
-:10D6980048687008C02870385808CFE15EFC000060
-:10D6A8000000820C0000821400008220D4014A6825
-:10D6B8007008C30870495809C0E14A48201D1AD8A3
-:10D6C800E06805AC1AD84A284A2C1AD8F01F00225C
-:10D6D8002FCDC0085819C0E149C8201D1AD8E068E4
-:10D6E80005AD1AD849D849BC1AD8F01F001B2FCD50
-:10D6F800C00858A9C0E14958201D1AD8E06805AEED
-:10D708001AD84978493C1AD8F01F00132FCDC00801
-:10D7180070385808CD0149387008C128704958A98F
-:10D72800C0E048A8201D1AD8E06805B11AD848E812
-:10D73800488C1AD8F01F00082FCDC0087038580838
-:10D74800CEE1DA0A0000820C8003A8688003A8AC46
-:10D7580080039D9C800094C48003A8D88003A904FA
-:10D76800000082208003A934D43118961497784891
-:10D778005808C0E04C48201D1AD8E068011A1AD889
-:10D788004C284C3C1AD8F01F00432FCDC008580A2B
-:10D79800C3514C19720C4C19720A4C19109E9207FD
-:10D7A8004C08E069100070052FF70A985C87EE0EA8
-:10D7B8001900F2071790C088F104001C0E93EE04BC
-:10D7C8001900CF3070385808CF811898C088F104F4
-:10D7D800001C0E93EE041900CE8070385808CF81D3
-:10D7E8001498C088F104001C0E93EE041900CDD0E3
-:10D7F80070385808CF814AA8B0074A887008C1F81D
-:10D80800F109001C0E93EE091900C181700A580A2B
-:10D81800E0800099580BE0800096178C1799B16941
-:10D82800F3EC118917ACF3EC108917BCF9E910096E
-:10D83800E0800089123AE080008670385808CE11DE
-:10D8480049887008C1A8F109001CEE091900C141F6
-:10D85800700A580AC770580BC750178C1799B169C6
-:10D86800F3EC118917ACF3EC108917BCF9E910092E
-:10D87800C690123AC67070385808CE6148A870052C
-:10D888000A98C2D88003A8688003A96080039D9C79
-:10D89800800094C40000822000008214000001F877
-:10D8A8000000820C0000821CF109001C0E93EE0996
-:10D8B8001900C141700A580AC450580BC430178C5B
-:10D8C8001799B169F3EC118917ACF3EC108917BCFF
-:10D8D800F9E91009C370123AC35070385808CE518C
-:10D8E80049A87008C158F109001CEE091900C0F1D7
-:10D8F800178A1799B169F3EA118917AAF3EA108907
-:10D9080017BAF5E91009700A123AC1C070385808F8
-:10D91800CEB1580BC11017891798B168F1E9118871
-:10D9280017A9F1E9108817B9F3E81008C050304A70
-:10D938000C9CF01F00078D354868ED57001C9106B8
-:10D94800D83AE06C00F5D832000082208002E73631
-:10D958000000821CD4211897169CF01F0008C0B044
-:10D96800F908002C5808C0702288EE081900F00742
-:10D9780017305C870E9CD82280012228D421F90810
-:10D98800002C1897F3D8C010E06CFFFFF5DBC0102F
-:10D99800F8090109123AE08A000F4948201D1AD8EF
-:10D9A800E06801BD1AD84928492C1AD8F01F00127E
-:10D9B8002FCDC008100BE0680800EF5B002CF00BBF
-:10D9C8001900EFF8BC160E9CF01F000CE04C01FF8C
-:10D9D800E08A000AEF380026A1B80E9CEF680026FE
-:10D9E800F01F0007D82200008003A8688003A988D8
-:10D9F80080039D9C800094C48000D5FE80010CECBF
-:10DA0800D4211896304CF01F000A1897C0E0ECE8B3
-:10DA18000000F8E90000ECE80008F8E900086C48A4
-:10DA28009948781CF01F00030E9CD8228000C9D4A6
-:10DA38008000CD1ED4211896580CC0311897C0B854
-:10DA4800781C580CC030F01F000518970C9B304C00
-:10DA5800F01F00030E9CD8228000D13C8000C974BE
-:10DA6800D42130071896C0880C9C6C06F01F00055E
-:10DA7800F80700075C575806CF810E9CD822000093
-:10DA88008000DA3CD4217848189758A85F1A5808BB
-:10DA98005F19F5E90009C2005818C1E0F8FC0084D4
-:10DAA800580CC060F01F000D3008EF4800843FF8A4
-:10DAB800EEFC0080EF58003AF01F000930066FECCA
-:10DAC800EF460080F01F00066FFCF01F0005EF46D0
-:10DAD800007CEF460078D8228000D13C8000DA68CC
-:10DAE800D421169778081638C04176389908C11895
-:10DAF8004B899308C0A870390E39C0614B599308F7
-:10DB08006E399139C06812985808CF614B1993083B
-:10DB180030060E9C8F36F01F00306E4858A85F19EB
-:10DB280058185F181268EC081800C0C0EF380026B3
-:10DB3800EDB80000C071A1B80E9CEF680026F01F78
-:10DB480000276E485818C3206FE85808C0E04A48B4
-:10DB5800201D1AD8E06804F91AD84A284A2C1AD87D
-:10DB6800F01F00222FCDC0086FF85808C0E049C840
-:10DB7800201D1AD8E06804FA1AD849D849AC1AD82E
-:10DB8800F01F001A2FCDC008EEF800805808C0E03A
-:10DB98004938201D1AD8E06804FC1AD84958492C7D
-:10DBA8001AD8F01F00122FCDC00830088F48F01F78
-:10DBB8000012C0E148A8201D1AD8E06805021AD84A
-:10DBC80048E8489C1AD8F01F00092FCDC008D82271
-:10DBD800000082188000DA8C80010CEC8003A868B1
-:10DBE8008003A9AC80039D9C800094C48003A9C4D1
-:10DBF8008003A9E08000D6B48003A9F8D42118973F
-:10DC080078485808C0E04A68201D1AD8E0680175AD
-:10DC18001AD84A484A4C1AD8F01F00242FCDC008F9
-:10DC2800303CF01F00231896C380EF08001CF958F9
-:10DC3800001C6E6899688E48A1B8B8483018994891
-:10DC4800EF38000BF968000BEF38000AF968000A92
-:10DC58006E089908497972080E38C0316E38C108C3
-:10DC680049599308C0A870390E39C06149299308E9
-:10DC78006E399139C06812985808CF6148E99308FD
-:10DC880030080E9B8F38302CF01F000C48C948D83C
-:10DC98008D8970098D3991060C9CD8228003A8685B
-:10DCA8008003AA1880039D9C800094C48000C9D476
-:10DCB8000000821C000082188000C9748000D5F81A
-:10DCC80000008214D431204D4B583005700910964D
-:10DCD8002FF90A9491090A934B2830627007E08F54
-:10DCE800019E6E485808C0E14AF8201D1AD8E0681D
-:10DCF80002571AD84AD84AEC1AD8F01F002E2FCD4E
-:10DD0800C0085818C0E14A88201D1AD8E06802588F
-:10DD18001AD84A984A6C1AD8F01F00262FCDC00886
-:10DD280058A8C0E14A08201D1AD8E06802591AD834
-:10DD38004A2849FC1AD8F01F001F2FCDC0085828C0
-:10DD4800C071EF38004EE4081800E0800081EF3819
-:10DD5800004E30CAF4081800C7A0EF3800AC10997C
-:10DD6800E8081800C300EEF900A82FF9EF4900A849
-:10DD7800493A100AF53AFFFF1439C6B33009EF499A
-:10DD880000A8E4081800F9B90801F1D9E808EFF883
-:10DD98008EAC0E9CF01F000BC5C80000000082105E
-:10DDA8000000820C8003A8688003AA3C80039D9C25
-:10DDB800800094C48003AA688003AA948003AC38C6
-:10DDC80080010A20EF08003AE6081900F9B90401B1
-:10DDD800F1D9E408EFF84C1D6FF85808C3A0EF0913
-:10DDE800003AEF08004CF0091900C3356E4858286E
-:10DDF800C100EF09004AEF0800484CD1A3581208A7
-:10DE0800EF39004EE2090709F0090948EF58004CBC
-:10DE1800EF080060EF090056F0091900F00917B083
-:10DE2800EF08003CF3D9C02FEF590058F00A15014C
-:10DE3800F0091900EFFA3C2CEF08003CEF53003AC8
-:10DE4800EF5800560E9CF01F003BC0383018C02811
-:10DE580030086E495869C0B16C0B6EDAF60A010ACF
-:10DE6800E04A0028E08800042FF85C588ECAEDBA12
-:10DE78000003C39158495F0A58795F091449E809B2
-:10DE88001800C3106C0AEEFC00A0EEF100A4F80123
-:10DE980002416ED9EEFB009CF4090109E20B000E69
-:10DEA800E06A01F4FC0A0D00FAE100080039E08894
-:10DEB80000062FF830115C58C178EF3100ADE20C44
-:10DEC800034BF60A0D0A1439E088000E50180E9C10
-:10DED800F01F0019EF3900AD30012FF9EF6900ADDF
-:10DEE8004018C0283001EEFC0080580CC1106ED9D3
-:10DEF8006C0A121AEF09004CF2091006123AC08394
-:10DF08005018F01F000E30004018EF4000806E4996
-:10DF18005839C1516C0A6ED9F4090109E049002841
-:10DF2800E08800182FF85C58C14800008003A85802
-:10DF3800800110608001109C8000DA685899C091B7
-:10DF48006C0A6ED9F4090109E04900F0E08B00047D
-:10DF58005808C4900E9CF01F00434C385805C14027
-:10DF680070081037C0E14C18201D1AD8E06802E488
-:10DF78001AD84BF84BFC1AD8F01F003F2FCDC00819
-:10DF88006E388B38C13870090E39C0E04B78201DC7
-:10DF98001AD8E06802E81AD84B884B6C1AD8F01FD8
-:10DFA80000362FCDC0086E399109EEF80098580850
-:10DFB800C0403FBB6E6C5D185801C0F0EF180024DC
-:10DFC800201DEEC9FFFC1AD80E9AEF18001C6EAB84
-:10DFD8006F7CF01F002B2FED0E9B302C6E37F01F3F
-:10DFE8000029C1C8EF3900382FF9EF690038EF3A36
-:10DFF8000039F20A1800E08B0010EF680038EEF8DC
-:10E0080000945808C0600E9B6E6C5D185C5CC04143
-:10E018000E9CF01F001D0E956E375807FE91FE638B
-:10E0280049A849B410957006C6086C4858A8C0E0BD
-:10E0380048E8201D1AD8E068030C1AD8495848DC6B
-:10E048001AD8F01F000D2FCDC00868096CD8F20847
-:10E058000108E04800F0E08B004C0C976C36C4587F
-:10E068008000DA8C0000820C8003A8688003AAC4B0
-:10E0780080039D9C800094C48003AAF08001023430
-:10E088008000C97480010CEC00008220000082101E
-:10E098008003AB1C6A081036C0E149A8201D1AD8B5
-:10E0A800E068031B1AD84988498C1AD8F01F001851
-:10E0B8002FCDC0086C388F38C1386A080C38C0E0DA
-:10E0C8004908201D1AD8E068031F1AD8491848FCC7
-:10E0D8001AD8F01F000F2FCDC0086C388B080C9B86
-:10E0E800302C6C36F01F000C5806CA01C0780C9C06
-:10E0F800F01F000A5807CCF1CE1B2FCDD8320000F4
-:10E108008003A8688003AB4C80039D9C800094C466
-:10E118008003AB748000C9748000DA8CD431202D60
-:10E1280018951691784858A8C0A1189B4A2CF01F3A
-:10E1380000230A9B302CF01F0022C3B8780850082F
-:10E148007818F903001C5018F9020024797778A68A
-:10E15800F8F400987860189B49ACF01F00186BFC25
-:10E16800580CC030F01F00186BEC580CC030F01F72
-:10E178000016EAFC0080580CC030F01F00130A9B00
-:10E18800302CF01F000F5804C040009C3FBB5D14AA
-:10E198005801C0F0201D5C72F1D3C0101AD20C9B3C
-:10E1A800FAC9FFF4FACAFFF80E9CF01F00082FED19
-:10E1B8002FEDD832000082208000DAE88000C97490
-:10E1C8000000820C8000DA6880010234D42118969D
-:10E1D800302CF01F00511897C5114D084D0A189999
-:10E1E8007008740BC0A870DAF60A010A123AF4092A
-:10E1F8001720F00C172070385808CF61580CC04011
-:10E20800301BF01F0048302CF01F00431897C30143
-:10E218004C584C3A18997008740E37FBC178F13A8B
-:10E228000014EC0A1800E08B000DF60A1800E08BC9
-:10E23800000970D7FC0701071237C033109CC0389B
-:10E24800169A12977038149B0E995808CE91580C4C
-:10E25800C040301BF01F0033302CF01F002F1897E0
-:10E26800C5704B28F10900D42019F15900D44AF897
-:10E27800F10900D42019F15900D4E06A00B0300B3C
-:10E288000E9CF01F002B3408EF6800143FF8EF686D
-:10E29800000B4A384A7A70097408F2080008950891
-:10E2A800EF48006CEF480068EF48005CEF4800500A
-:10E2B8003008EF6800ADEF680038E0680800EF58F4
-:10E2C800002EEF58002C3068EF58004AEF58004CE9
-:10E2D800E0681000EF580072E0680200EF58003C58
-:10E2E8003FF8EF58003A3018EF5800564928EF48E1
-:10E2F800008CE068DD00EA18006DEF48009CE078CB
-:10E3080024F88FD9EF4800A03098EF4800A40E9C5D
-:10E31800D82200008000C9D40000822000008210AA
-:10E328008000E1240000820C000080D48002E8BC58
-:10E33800000001F48000E5ECD401340CF01F000269
-:10E34800D80200008000E1D4D431189714961293B3
-:10E35800169578445804C0E04C98201D1AD8E068F7
-:10E36800020A1AD84C784C8C1AD8F01F00482FCDC6
-:10E37800C008580BC041E06600F7CB78304A140C4F
-:10E38800F01F0043EF560024EF08001CE8081900AE
-:10E39800C34110944BF84C0970064C08720B700C72
-:10E3A8004BF9E06A100092082FF80C995C88F00489
-:10E3B8001900F4081790C078F30E001CF00E19002D
-:10E3C800CF4072395809CF911899C078F30E001CC4
-:10E3D800F00E1900CEA072395809CF911699C0785D
-:10E3E800F30E001CF00E1900CE0072395809CF91B7
-:10E3F8004AB9B208EF58001C4AA84AB9700A72080C
-:10E40800F40800089308EF48005CF0C90001E068D0
-:10E418000800EF580060EF58002CEF58002E300825
-:10E428008FC88FA8E0680200EF49006CEF490050E0
-:10E43800EF58003C0A9BE06C0200F01F001C5C8C4B
-:10E44800F808100AEF5800583018EF430090EF58BA
-:10E458000056EF5C003C30288F48495972080E3846
-:10E46800C0316E38C2C849399308C26870390E394C
-:10E47800C221490993086E399139C2288003A868D6
-:10E488008003AB9C80039D9C800094C48002E73687
-:10E498000000820C0000821400008220000001F8B5
-:10E4A80000008210000001F48000D95C0000821C8A
-:10E4B8000000821812985808CDA148D9930848D866
-:10E4C80070098F3991073019201D30081AD9109A10
-:10E4D8003029109B0E9CF01F00082FEDEDDCC008C2
-:10E4E800C0410E9CF01F00050C9CD8320000821819
-:10E4F8000000820C8001035080010CECD421189795
-:10E5080078465826C390E08B00075806C0C05816B6
-:10E51800C071C2785846C370C3635876C3C030060A
-:10E528000C97C4184A8972081838C0317838C1085D
-:10E538004A699308C0A870390E39C0614A399308EE
-:10E548006E399139C06812985808CF6149F9930813
-:10E5580030080E9B8F38302C1097F01F001DC0A874
-:10E56800189B49CCF01F001C0E9B303CF01F001874
-:10E5780030070E96C188189B498CF01F00170E9B18
-:10E588000C9CCF5B301BF01F0016EDDCC008C0B13F
-:10E598003058C088301BF01F0012EDDCC008C031B5
-:10E5A80030988F4858075F193008F00618005F0A3E
-:10E5B800F5E90009F0091800C0400E9CF01F000999
-:10E5C8000C9CD8220000821C000082188000C974AC
-:10E5D800000082148000DAE80000820C80010A0042
-:10E5E80080010CECD421169C1497580AC08094CB57
-:10E5F800F01F00070E9CF01F0007D82A5809C030EA
-:10E60800149CD822F01F00045C5CD8228000D984B6
-:10E618008000D13C8000E504D42149887007C2A855
-:10E62800EEFB0084580BC140169AEEF8008C58088F
-:10E63800C06030090E9B6E6C5D18C078169A1099F0
-:10E648000E9B109CF01F000E5C5CEFFC0A21EF385B
-:10E658000026EDB80000C0D1A1B80E9CEF680026D6
-:10E66800F01F0008EF380026E018FFFCEF680026CE
-:10E678006E375807CD61D8220000820C8000E5EC87
-:10E6880080010CECD401F01F0007487913882FF89B
-:10E698005C58B288EDB80000C031F01F0004D80201
-:10E6A8008000E620000073148000DCCCD4314A6876
-:10E6B80070063058ED3E000C2EC6A58EF00E1900DF
-:10E6C800E0880040205E3008A36E30175C8E302151
-:10E6D8003042E7DEC010E06401FFE0650200C2E8F6
-:10E6E800F5D8C010EC0A070BEE0B1800C080C293D7
-:10E6F800EC0A0009E20B1800C1B1C0382FF8C1D8E4
-:10E70800139BE40B1800C1D12FDA063AC1A413BA3F
-:10E718002FC813A95C88F5E910895C89F2CA000141
-:10E72800E80A1900EA0917B0F959003CC0781399AA
-:10E738005809C070F20800085C88FC081900CD135D
-:10E74800D832000000007318D4217848189616971C
-:10E75800F138000DEDB80000C1C1169C3007F01F5C
-:10E768000020C368F138000DEDB80000C0E16C4826
-:10E77800F13A000CF139000DF3EA1089A1A9F16909
-:10E78800000DA989F169000C6E07F01F0016C0285A
-:10E7980049555807C1D06E4811C411DBB16BF7E475
-:10E7A800118B11E48EEEF7E4108B6A0A8CE911F4F0
-:10E7B8000E9CE9EB100B16191409F20E010ECD3759
-:10E7C800C098141B6C1CAC6B5C7BF01F00088D0799
-:10E7D800D8225809FE99FFF7CFBB00008000DA68FD
-:10E7E8008000DA3C0000731C8000D210D4314C58F1
-:10E7F80018971188EDB80004E081020C79994C282B
-:10E80800F90C006070086FAAF208010BC186103974
-:10E81800C0614BE87008F4080108C1164BB87008CD
-:10E82800103AC2914BA87008F139000FF138000E68
-:10E83800F3E81088F8081900E088001E4B487009B2
-:10E84800F338000FF339000EF1E910884AE972092C
-:10E858005C88EF490064EF5800604AC97209EF49C3
-:10E8680000685808C080EF3900AC3008F00918007B
-:10E87800EFF81EAC4A586F497008F009010B580BA5
-:10E88800E089004C3006EF5600704A2B960BEC0BD3
-:10E898001900C3215C7CEF160060F80A000A6FAC0F
-:10E8A800EC0C000C143CC281EF0A003AF60A19007D
-:10E8B800C2351039C211EF3800542FF85C58EF6890
-:10E8C80000543039F2081800E088000FEF090056AC
-:10E8D800EF08003C12085C88F2081900E088014A39
-:10E8E800EF580056C469F2081800E08101430E9CF5
-:10E8F800F01F0009C3E93008EF680054C3A90000FD
-:10E90800000073280000731C0000732400007318B3
-:10E91800000073208001016A5CD91009E08600D1EB
-:10E928006F7912185808E08900CCEF380026EDB846
-:10E938000002C081A3C8EF680026EF080058EF580E
-:10E948000056300A4D39EF6A004E720BEF6A0054D8
-:10E9580072096F48EF490050F6080108EF09007284
-:10E96800EF580070F2080008EF09004AEF580072EB
-:10E97800EF080048A358F2080008EF58004C6E480A
-:10E988005838E0880066EF080056EF090058F0098B
-:10E998001900E0880006EF09003C1009C0A8EF192B
-:10E9A800003CB339F7D8C010F20B0C0AF408000980
-:10E9B8005C89F0091900E088004CEF590056C488BA
-:10E9C8006C08EF030074EF48007C6C1CF01F0032E9
-:10E9D800F8031900C0E24B18201D1AD8E06803B3E9
-:10E9E8001AD84AF84AFC1AD8F01F002F2FCDC008B1
-:10E9F800EF0800705808C09020186C49F339000DD2
-:10EA0800EDB90000EFF80C38EF0300746C1CF01F30
-:10EA1800002218130C9CEF530074F01F0024EF0819
-:10EA28000074EA081900C1606FF85808C1316FE82E
-:10EA38005808C1014998201D1AD8E06803BF1AD8A0
-:10EA480049B8498C1AD8F01F00182FCDC0084914AE
-:10EA580030056FF65806C2D06C4811CBF139000D5D
-:10EA6800F3D9C0025F1A11D9B169F3EB118911EB1F
-:10EA7800F3EB108911F81248680912188CE9F409A7
-:10EA8800000912085808FE9AFF9DE08F045F0000F5
-:10EA9800000073248000CD0C8003AC608003ACA818
-:10EAA80080039D9C800094C48000DA3C8003ACD035
-:10EAB8003FF8EF58003A3008EF680038C5A830082A
-:10EAC800EF580070C5686C08EF030074EF480078D1
-:10EAD8006C1CF01F0021F8031900C0E249F8201D42
-:10EAE8001AD8E06803E01AD849D849EC1AD8F01FB8
-:10EAF800001E2FCDC008EF0800705808C0902018DD
-:10EB08006C49F339000DEDB90000EFF80C38EF034C
-:10EB180000746C1CF01F001018130C9CEF53007449
-:10EB2800F01F0012EF080074EA081900C2406FF8DD
-:10EB38005808C2116FE85808C1E14888201D1AD842
-:10EB4800E06803EA1AD848A8486C1AD8F01F0006EB
-:10EB58002FCDC0088000CD0C8003AC608003ACA82A
-:10EB680080039D9C800094C48000DA3C8003ACD074
-:10EB78004C5430056FE65806C2106C4811CCF13978
-:10EB8800000D11DAF3D9C002B16AF5EC118A11EC63
-:10EB980011F858095F1B6809F5EC108AF1EA100AA8
-:10EBA8008CE8F20A010AF6080008F4080108C066B1
-:10EBB8006F7810195809FE9AFF886F085808C29094
-:10EBC8004B196F1A7209F4090109C2374AFB760B0F
-:10EBD800EF0A0048F6080108F40B140316185C88BD
-:10EBE800F00A000A5C8AEF09004AF40B14035C4837
-:10EBF800EF5A0048F20A14021419F2080008F6083D
-:10EC08000009EF58004AEF59004C3008EF4800401F
-:10EC180049F84A09900A6EA8580AE0800381720BE5
-:10EC2800F60911FF1009E08600B15C7AF0C9FFFF10
-:10EC38001619F20A010A580AE08900A849697216E9
-:10EC48005806C0E14958201D1AD8E06804461AD869
-:10EC58004938494C1AD8F01F00142FCDC008F00BC2
-:10EC6800010BE04B7FFEE08A002348C8201D1AD81C
-:10EC7800E06804471AD848D848AC1AD8F01F000AE8
-:10EC88002FCDC008000073240000821000007320FC
-:10EC98000000731C000073348003AC608003ACF088
-:10ECA80080039D9C800094C48003AD008CD81638E6
-:10ECB800C3148C48F3D8C0101639C0E44AB8201DD4
-:10ECC8001AD8E06804491AD84A984AAC1AD8F01FEA
-:10ECD800002A2FCDC0081618300A5C88C058AC48E6
-:10ECE800AC5A121B6C068CD91639CFA55C3B0C9C10
-:10ECF8005C8BF01F0022C21049C8201D1AD8E0689A
-:10ED080004561AD849E849BC1AD8F01F001B2FCD61
-:10ED1800C0085C3B0C9C5C8BF01F0018C0E04938B5
-:10ED2800201D1AD8E068045B1AD84958491C1AD81B
-:10ED3800F01F00112FCDC0086C1A4929932A492ABF
-:10ED48006EA8740B926C9508F80B000A101AB26A38
-:10ED5800F00A16187249B2F8B2CAF5D8C208F1D842
-:10ED6800C108B2DAB2E8C1B88003AC608003AD1064
-:10ED780080039D9C800094C48000CDD48003AD2086
-:10ED8800000073340000731C101BC097EF38002676
-:10ED9800A1B80E9CEF680026F01F00424C256EA912
-:10EDA8006A08F009010AE08602B7F0CAFFFFEF1B04
-:10EDB800002C121A161A580AE08902AE1039E0819E
-:10EDC80001F54BA8906A7048F139000DF3D9C002DB
-:10EDD8005F19F40900094B6AB409EF0A002CF20A1A
-:10EDE8001900C462F13A000CF139000DF3EA1089F8
-:10EDF8005C89EDB90000C081E219FFFEF169000DE0
-:10EE0800A989F169000C4A98EF0A002CB06A704988
-:10EE1800F339000DEDB90001C031201AB06A4A3645
-:10EE28008CEB6C1CF01F00238C696C48F138000DCA
-:10EE3800F1D8C0025F18F208000849D9B20849A9F8
-:10EE480072095C78EF1A002C12086EA9F4090009FF
-:10EE58001238C0E04988201D1AD8E068048B1AD8F7
-:10EE68004968497C1AD8F01F00172FCDC008EEF664
-:10EE780000805806E08000BE48C46848F138000D9C
-:10EE8800EDB80000C080C4B8109C7008EF4800803E
-:10EE9800F01F000DEEF800805808CF71CAA80000D6
-:10EEA80080010CEC0000731C000073340000732018
-:10EEB8008000D2108003AC608003AD3480039D9C39
-:10EEC800800094C48000DA3CF138000DEDB80000F1
-:10EED800C1F16848F139000DF13A000CF3EA108AE3
-:10EEE8005C8A1499A1A95C79F20B1608EDBA0001A5
-:10EEF800C0F0F169000DF16B000C68488869F138C1
-:10EF0800000DF1D8C0025F18F2080008A6086C05C9
-:10EF18000A96F01F00455805C041C6984C324C432C
-:10EF28006C4811C5868A11D9B169F3E5118911E5D3
-:10EF38008CEBF3E510890C9C11F5EBE91009F40949
-:10EF48000109640A1409F20B010BCBF7E08F0201E7
-:10EF58004B89EEF80080704811FB11C511DC11E8EF
-:10EF6800B16CF9E5118CF9E81088F7E81008F00A97
-:10EF7800010A5C8AB26A7248F138000DEDB80001E6
-:10EF8800C031201AB26A4AB58AEB6A1CF01F002AFF
-:10EF98008A696A48F138000DF1D8C0025F18F20892
-:10EFA80000084A39B2085C784A097209F009000A6F
-:10EFB800EEF80080704811FB11CC11D911E8B16945
-:10EFC800F3EC1189F3E81089F7E91009123AC0E067
-:10EFD80049A8201D1AD8E06804C31AD84988499C52
-:10EFE8001AD8F01F00192FCDC0080C95EF450080E6
-:10EFF80048F848E9908A7209F40900098FA990082D
-:10F00800EF09002CF0091900C22248C8201D1AD89F
-:10F01800E06804CD1AD848D848AC1AD8F01F000ABE
-:10F028002FCDC0088000DA3C0000731C000073205C
-:10F03800000073348000D2108003AC608003AD6C94
-:10F0480080039D9C800094C48003ADA810190E9C79
-:10F05800EF59002CF01F004A4CA8300A7019924B47
-:10F06800F40B1900C0504C8A9509300991194C5875
-:10F078007048F138000DEDB80000C5B14C3913885F
-:10F08800A5B8B288C56881098CEAF13B000DF7DBA9
-:10F09800C0025F1BF60A000A14098FA9EF0A002CA8
-:10F0A800F138000D8C69F1D8C002F7D9C0105808A2
-:10F0B8005F1EF9DAC010FC0B000B163CC0E44B488D
-:10F0C800201D1AD8E06804F21AD84B284B2C1AD8FD
-:10F0D800F01F00322FCDC008F409010958085F1845
-:10F0E800F20801080E9CEF58002CF01F00256C1B3D
-:10F0F8009648E2081900C090680C580CC040F01FF0
-:10F108000028C028890B8D126C48F138000DEDB825
-:10F118000000C0810B88A5B8AA886E485848EFF34C
-:10F128000A046C080C9CEF480080F01F001EC07891
-:10F1380049D030014944300249453073EEF6008029
-:10F148005806C1006C4811CB11D9B169F3EB11898C
-:10F1580011EB6EAAF3EB108911FBF7E910091439CA
-:10F16800C930EF380026EDB80000C041A1C80E9C98
-:10F17800CE68A1A8EF680026D83200008000D5FE2E
-:10F18800000073340000732C000073298003AC6006
-:10F198008003ADC880039D9C800094C48000CD345A
-:10F1A8008000DA3C0000731C0E9CF01F0040EEF655
-:10F1B80000805806C0714BECF01F003EEF4C0080F9
-:10F1C800D8326A093005F2CCFFFF6C4811CB11DA4E
-:10F1D800B16AF5EB118A11EBF5EB108A11FBF7EA2E
-:10F1E800100A1439C1214B2C8C689869F009190050
-:10F1F800E08800B4F01F002FE08000B05805EBFC59
-:10F208001A00EFFC0A20C0D85805C0D1F20A010B39
-:10F21800C4574A7CF01F0027E08000A0EF4C008014
-:10F228000C9BC3986A4B17F417C217D317EBB1633B
-:10F23800E7E21183E7EB108BE9EB100B5CDB120BB9
-:10F24800C2D6F80A010B580BE0890029498CF01F37
-:10F2580000191897E08000826A4811F911CA11DB79
-:10F2680011E8B16BF7EA118BF7E8108B4928F3EB3B
-:10F27800100B70088AE9101916095809E08A000964
-:10F28800F00B010B6A1CAA6B5C7BF01F000C8B0750
-:10F298000C9B0E9CF01F000AD8326C0B0C95580B77
-:10F2A800C1001696C93B000080010BF000007334C2
-:10F2B8008000DA080000731C8000D2108000E7503C
-:10F2C80014195809E08A004AF138000DEDB8000019
-:10F2D800C4404A3CF01F00238D0CC3F06C4811F960
-:10F2E80011CA11DB11E8B16BF7EA118BF7E8108B43
-:10F2F80049D8F3EB100B70088CE910191609580956
-:10F30800E08A002CF00B010B6C1CAC6B5C7BF01FD3
-:10F318000017D8320E9CF01F0016D832720BF60870
-:10F328000109C0A62FFBEF19002CF60801081218D6
-:10F338005808E08A00130E9CEF380026A1B8EF6841
-:10F348000026F01F000CD8323008FE9FFBB4580985
-:10F35800FE99FE00FE9FFE4BD83200000000733479
-:10F368008000DA080000731C8000D21080010BF0C6
-:10F3780080010CECD4314B86ED0800922FF87819F7
-:10F388004B65ED5800928B091388F1D8C004F20838
-:10F39800002818971693109C4B148908F01F003109
-:10F3A8006A080E9C118BF7DBC004A36B5C3BF01F53
-:10F3B800002EC0718E493138F0091900E08B000B1E
-:10F3C8004A580E9CF109009A2FF9F159009AE08FDA
-:10F3D80003026A0C069B2F0CF01F0024C0B16A0AB6
-:10F3E800FC19E000F5380010B968E618F00012388A
-:10F3F800C0A149980E9CF10900A02FF9F15900A06D
-:10F40800E08F02E9F4CBFFF48EC830692F0A0E9C16
-:10F41800F01F00175C8CC080ED0800980E9C2FF838
-:10F42800ED580098C11868080E9CF13B000CA58B9C
-:10F43800F60B10FCF01F000CC1C0ED08009A0E9CE2
-:10F448002FF8ED58009AED0800962FF8ED58009621
-:10F45800E08F02C6000080D40000733000007318EB
-:10F468008000D67C8000CDD48001255880011E2CD8
-:10F47800680811CA11D9B169F3EA118911EAF3EAE6
-:10F48800108911FAF5E91009F20A1618B0CAF5D967
-:10F49800C208B0F9B0DAF5D9C108B0EA4B28910929
-:10F4A8006808F1390008F13A0009B16AF5E9118AEA
-:10F4B800F139000AF5E9108AF139000BF3EA100A6C
-:10F4C800F4091618F1690008F3DAC208F16A000BAA
-:10F4D800F1690009F3DAC108F169000A4A386804D9
-:10F4E800910AE938000DF5D8C002F1D8C0064A0BD8
-:10F4F800B6884A086A09580A5F1A8E4514055C8559
-:10F50800B00549D87006CA586C485808C0E149B8CF
-:10F51800201D1AD8E06800B71AD84998499C1AD80B
-:10F52800F01F00192FCDC00858A8C0E14938201D88
-:10F538001AD8E06800B81AD84948492C1AD8F01FD8
-:10F5480000122FCDC0085818C24148C8201D1AD82B
-:10F55800E06800B91AD848E848AC1AD8F01F000A81
-:10F568002FCDC0080000731C00007324000073280E
-:10F57800000073200000820C8003AC608003ADF0B3
-:10F5880080039D9C800094C48003AE188003AE4421
-:10F59800098A0998F1EA1088ED0A0024F00A19008E
-:10F5A800C56109AA09B8F1EA1088ED0A001CF00A39
-:10F5B8001900C4D1F33A000CF338000DB168F1EA30
-:10F5C8001188F33A000EF1EA1088F33A000FF5E8D3
-:10F5D80010086C1A103AC3B1F33A0010F33800114E
-:10F5E800B168F1EA1188F33A0012F1EA1088F33AA7
-:10F5F8000013F5E810086C0A103AC2916C380C3800
-:10F60800C0E14CA8201D1AD8E06800C21AD84C885E
-:10F618004C8C1AD8F01F00482FCDC008580CC06079
-:10F6280099384C6870098D3991066C380C38E0812E
-:10F6380001A14BE8201D1AD8E06800C81AD84C0868
-:10F648004BCC1AD8F01F003C2FCDC0080C9C6C3650
-:10F658005806FE91FF5BE08F05296C4858A8C0E06A
-:10F668004B28201D1AD8E06800D21AD84B584B1CDA
-:10F678001AD8F01F00312FCDC008098B0998ED0A60
-:10F688000024F1EB1088F00A1900C77109AC09BB16
-:10F69800ED08001CF7EC108BF6081900C6E1F33CE6
-:10F6A800000CF33B000DB16BF7EC118BF33C000E33
-:10F6B800F7EC108BF33C000FF9EB100B6C1C163CAD
-:10F6C800C5C1F33C0010F33B0011B16BF7EC118B93
-:10F6D800F33C0012F7EC108BF33C0013F9EB100B22
-:10F6E8006C0C163CC4A1498B178CEDBC0002E08061
-:10F6F800013AEDBC0001C2D1494B6CAC760BF60C5B
-:10F70800010CC2D6ED14002C081C580CE089002806
-:10F718005C7A201D5C751ADA48DCEA0B000B5C7811
-:10F72800F2CAFFF0780CC7688003AC608003AE6C47
-:10F7380080039D9C800094C40000820C8003AE98D6
-:10F748008003AEC4000073280000731C00007324FB
-:10F75800EDBC0000C0414CC870088DD84CB8900969
-:10F768003008F0091900E08000FEED3800260C9CF6
-:10F77800A1B8ED680026CF486C365806FE91FF6F99
-:10F788004C3870050C98CF286A0A580AC130F33CE7
-:10F798000010F33B0011B16BF7EC118BF33C001236
-:10F7A800F7EC108BF33C0013F9EB100B163AE081E1
-:10F7B80000DC09AB09BAF5EB108AEB0B001CF40B63
-:10F7C8001900E08100D25808C0706A3991394B0895
-:10F7D80070098B3991054AF81188EDB80004C1F118
-:10F7E8004AD8700913AB139A13B8201D1389F1EB8B
-:10F7F8001088F5E910894A5B1AD9968C4A794A8BA0
-:10F808007209760BF2CAFFF0F80B000B4A5C780C11
-:10F818002FFC2F49F01F00242FEDCA48EDB8000136
-:10F82800E08100A1EB3C0014F01F00201896C08175
-:10F8380049F8F109009C2FF9F159009CC938497819
-:10F848007008F0C9FFF0C0311298C108F1390013EF
-:10F85800F13B0010F13A0011F1380012B16AF5EBF2
-:10F86800118AF5E81088F3E810088D08EB08001CE9
-:10F87800ED58001C48987008F0C9FFF4C1A112980F
-:10F88800C27800000000821000007320000082147B
-:10F898000000732800007318000073300000731C08
-:10F8A80000007324800102348000E1D4000080D479
-:10F8B800F139000FF13B000CF13A000DF138000E60
-:10F8C800B16AF5EB118AF5E81088F3E810088D188D
-:10F8D8004C587008118B1199F3EB1089ED590024DD
-:10F8E80030398D494C197209F2CBFFFF8DCB8DABA6
-:10F8F800F13B000FF138000EF7E81088ED5800587A
-:10F90800ED5800608A48E2180199AC486A684B8A49
-:10F918002019740C8D688D3C6A889506ED49006441
-:10F928008D880C9CF01F0033ECCBFFFCED1C003CD9
-:10F93800F01F00313019ED5C003C201D30081AD949
-:10F94800109A3129109B0C9CF01F002C2FED5C5C49
-:10F95800C0600C9C300BF01F002AC0480C9CF01FA4
-:10F9680000290E9CC3C80A986A355805FE91FF0EF7
-:10F9780049D56A08F13C000DF9DCC006F01F0022E9
-:10F988005806E08003504A188E4A6A09911791492F
-:10F99800B06A30096E1A9109912A49D8910949D853
-:10F9A800B089ECFA0084580AC3C0ECF8008C5808F7
-:10F9B800C0500C9B6C6C5D18C06810990C9B109C17
-:10F9C800F01F00155C5CC041ED4C0084C2A80E9C81
-:10F9D8004928F10900962FF9F1590096F01F0010F7
-:10F9E800D8320000000073180000731C0000820C5D
-:10F9F8008000E6B48000D95C800103508000E124D7
-:10FA080080010CEC8000D67E000073340000732C5B
-:10FA1800000073298000E5EC000080D48000D13C10
-:10FA28004A9891064A981188EDB80002C3216C489B
-:10FA38005828C0814A6870096D781039E081026BD6
-:10FA4800C1D84A49720A6CA9F4090109E08602631F
-:10FA5800ED1A002C14195809E089025DE08F032182
-:10FA680049D8201D1AD8E06802271AD849B849CCC5
-:10FA78001AD8F01F001C2FCDC00849B91388A3B8A5
-:10FA8800B288ED380026A1C8ED680026E08F024351
-:10FA9800EDB80001C0616C4820285818E08B00A21E
-:10FAA800492870088DD830080C9CED6800ADF01F0F
-:10FAB80000106C4820285878E08B022D48D9F208AD
-:10FAC800032F000000008224000073280000732424
-:10FAD8000000731C8003AC608003AEF480039D9C1F
-:10FAE800800094C400007329000082108000E6B4EE
-:10FAF8008003AC404CF811891298E218001259287A
-:10FB0800C7A14CD8700A6DF8704811FB11C711DCF9
-:10FB180011E8B16CF9E7118CF9E81088F7E81008DA
-:10FB28002FF8103AC681ED0800722FF8ED580072D0
-:10FB38004C287008ED4A0050F0CA00012FF88DC813
-:10FB48008DA84BF87008F139000FF138000EF3E872
-:10FB58001088ED5800603048ED4A00648D48EC0884
-:10FB6800000BED1C003CF01F00375C8CF808100AF5
-:10FB7800ED5C003CED580058ED0900563018F009CE
-:10FB88001900C021A17CED5C0056ED0800745808EE
-:10FB9800C0E14AD8201D1AD8E06802591AD84AB8D4
-:10FBA8004ABC1AD8F01F002B2FCDC00820186DFCB6
-:10FBB800ED5800747808ED48007C5808F9B800FF43
-:10FBC800F9B80100EDF81E4EED58003AF01F00227A
-:10FBD800ECF800905808C050300A0C9B6C6C5D180B
-:10FBE800ED380026A1B80C9CED680026F01F001B1C
-:10FBF800E08F0191EDB90004E081018D4908700999
-:10FC080013AB139A13B8201D1389F1EB1088F5E98B
-:10FC18001089493B1AD9968C4929488B7209760B69
-:10FC2800F2CAFFF0F80B000B483C780CC7980000AC
-:10FC380000007328000073240000731C0000731870
-:10FC48008000D95C8003AC608003AF1480039D9C66
-:10FC5800800094C48000DA3C80010CEC0000732022
-:10FC6800000073304C281188EDB80004C5E14C1829
-:10FC7800700C6D485CD81808C3D66D78F808010870
-:10FC88005808E089003830488D486C885808C0E129
-:10FC98004B98201D1AD8E068027E1AD84B784B8CF6
-:10FCA8001AD8F01F00382FCDC008300A0C9B6C6C96
-:10FCB8005D185C5CC0700C9C301BF01F0033E08F3B
-:10FCC80001A7ED0700560C9CF01F0030ED080070EE
-:10FCD8005808F9B901FFF1D9E108EDF81C383019D5
-:10FCE800ED08003CF2071900C021A178ED58005634
-:10FCF800C2E84A78700913AB139A13B81389F1EB69
-:10FD08001088F5E910894A3B201D1AD94A29968797
-:10FD180072094A2BF2CAFFF0760BEE0B000B2F4943
-:10FD2800F01F001F2FEDCF68EDB80001E08100F350
-:10FD380049A870096CA820181039E08100EC0C9CC7
-:10FD4800F01F0018CE780C9CF01F0010496811882D
-:10FD5800EDB80005E08100DFED380026A1B80C9C65
-:10FD6800ED680026F01F00113078CC1800007328C9
-:10FD7800000073248003AC608003AF2C80039D9C3B
-:10FD8800800094C48000E1248000E7F40000731828
-:10FD980000007320000073300000731C80010234DF
-:10FDA800800101000000732980010CEC0C9CF01FFD
-:10FDB800003E4BE84BE91188E2180020C2D01388B6
-:10FDC800EDB80004C1F14BB870096D781039C1A1C4
-:10FDD800ED380026A1B80C9CED680026F01F00360F
-:10FDE8000C9CF01F00364B6972080C38C5604B59E3
-:10FDF8009308C05870390C39C69012985808CFB17A
-:10FE0800C6D8ED380026A1B80C9CED680026F01F76
-:10FE1800002A3088C6C81388EDB80004E081007B4A
-:10FE28004A4870096D781039C7513068C6080C9C6B
-:10FE3800F01F001D49D81188EDB80005C6B1ED388E
-:10FE48000026A1B80C9CED680026F01F001B0C9C36
-:10FE5800F01F001A49A972080C38C1F04999930893
-:10FE6800C05870390C39C32012985808CFB1C368EC
-:10FE78000C9CF01F000D48E81188EDB80004C4A1DF
-:10FE880048C870096D781039C4510C9CF01F000BDC
-:10FE980048B972080C38C0316C38C21848999308B0
-:10FEA800C1B800008000E7F400007329000073283F
-:10FEB8000000732480010CEC8000DA8C0000820CB6
-:10FEC8000000821870390C39C0614C0993086C39EC
-:10FED8009139C06812985808CF614BC99308300807
-:10FEE8008D384BB870098D39910630A88D48C128D6
-:10FEF8000C9CF01F00384B881188EDB80004C0A195
-:10FF08004B6870096D781039C0514B591388A5A8F2
-:10FF1800B2884B381188EDB80003C091ECF800980E
-:10FF28005808C0803FAB6C6C5D18C048EDB8000441
-:10FF3800C0A10C9B4ABCF01F002C0C9B302CF01F5E
-:10FF4800002BC658ED0A0070580AC090ECF80088DB
-:10FF58005808C0505C7A0C9B6C6C5D184A48700855
-:10FF68005808C24049C91389EDB90003F1F9080DD1
-:10FF7800F9BA0001F3DAE039F1F90E0D49CAECF8E3
-:10FF8800008C5808C070740A30090C9B6C6C5D18A2
-:10FF9800C0781099740A0C9B109CF01F00165C5CCA
-:10FFA800C05049387008ED48008448D81188EDB829
-:10FFB8000005C271ECF8008C5808C1D030090C9BC0
-:10FFC800129A6C6C5D18C1D800008218000082205B
-:10FFD8008000E7F4000073280000732400007329F0
-:10FFE8000000820C8000DAE88000C9740000732CDD
-:08FFF8008000E5EC10990C9B60
-:02000004800179
-:10000000109A109CF01F002E30094AE80C9C9109B0
-:10001000F01F002D30064AB891064AC76E1C580CD6
-:10002000C330F01F002B8F16C2F86A0BF738000D93
-:10003000EDB80002C2604A78F10C00A02FFCF15C20
-:1000400000A0F10C00962FFCF15C0096179C17A6FF
-:1000500017B8178BF9EB108B201D49F972091ADBC1
-:1000600049EB968CF2CAFFF0F1E6108849CB2F4994
-:10007000760BF80B000B49BC780CF01F001B2FED22
-:100080000E9CF01F0013F01F0019C1714988201D3C
-:100090001AD8E06801771AD84968497C1AD8F01F45
-:1000A00000172FCDC0085808FE90FCE0FE9FFCEB27
-:1000B00049387006FE9FFB67D83200008000E5ECEF
-:1000C0000000822480010CEC000073348000D13CDD
-:1000D000000080D400007330000073200000731C07
-:1000E00000007324800102348000D6B48003AC6029
-:1000F0008003AF4080039D9C800094C40000822058
-:10010000D42179F95809C3107208F8CEFF88F9484C
-:10011000007C79E8C038109E70085808C1C0704B48
-:1001200017F617C417D5B165EBE41185724A17EBC2
-:1001300015F7EBEB108B15C5EDEB100B15D615EA8B
-:10014000B166EDE51186EDEA108AEFEA100AF60ACB
-:10015000010ACE2693089D093008F9480040F93875
-:10016000004E2FF8F968004ED822D42179F95809A9
-:10017000C600F9380026EDB80002C5B07208F8CE06
-:10018000FF88F948007C79E8C038109E700858084C
-:10019000C1C0704B17F617C417D5B165EBE41185D4
-:1001A000724A17EB15F7EBEB108B15C5EDEB100B47
-:1001B00015D615EAB166EDE51186EDEA108AEFEA8B
-:1001C000100AF60A010ACE26930830089D09F9485C
-:1001D0000040F938004E2FF8F9090056F968004E32
-:1001E000F5D9C02FF9080060F7D8C02FF009190021
-:1001F000F60817B0F4081780F9580058F908003CC1
-:10020000F00915015C78A178F91A0058103AF9F94B
-:100210005C2CF9380026A3A8F909003CF9680026EF
-:10022000F20815011009F90800581009F95900568B
-:10023000D822D703D43118941693149112921096A1
-:100240004097300A314B301CF01F00391895C6D04A
-:1002500098593138F0091900E08B000F4B58201DD8
-:100260001AD8E068031F1AD84B384B4C1AD8F01F25
-:1002700000342FCDC0080E9878175C78AEB8A988E6
-:10028000AEA8E0685014EF68000DA988EF68000C74
-:10029000E8081618AEC8F1D4C208AED8E608161899
-:1002A000EF680008F1D3C208F3D6C010EF68000968
-:1002B000AE993088A9893006AEF4EF63000BAE89A1
-:1002C000EF66000FEF660012EF660013EF66001096
-:1002D000EF660011EF68000E3069049A029BE9D4C2
-:1002E000C108E7D3C108AEE4EF63000A98C8F01F65
-:1002F00000155C7CEF6C0011A98CEF6C0010201DC8
-:10030000491C30671AD70C98F9070090049A2FF708
-:10031000029BE06900FFF95700900A9CF01F000B58
-:100320000A9CF01F000B2FEDD83200008000D3187C
-:100330008003AF5C8003AFA480039D9C800094C4C5
-:1003400080011E2C000080D4800122948000D13CCA
-:10035000D43120BD14915098414A505A12961897A2
-:100360003009F20119005F08F20A18005F0AF1EA89
-:10037000000AF20A1800C110F3D6C002C0E14C789E
-:10038000201D1AD8E06800AD1AD84C584C5C1AD819
-:10039000F01F00452FCDC008580B5F195089126817
-:1003A000C0E04BE8201D1AD8E06800AF1AD84BF81F
-:1003B0004BCC1AD8F01F003C2FCDC008EF080072BC
-:1003C000E2081900C0B2EF380026EA18FFFFE8186B
-:1003D000FF80EF680026E08F02E34058F3D8C001A9
-:1003E000E2180002F9B8010CF009002950296FB099
-:1003F000EF02007431F8F0021900E08800144AC8D6
-:10040000F109009C2FF9F159009CE06C00FFEF38D6
-:100410000026EA18FFFFE818FF80EF680026E08F4B
-:1004200002C36FF85802C2605808C1404028A38830
-:100430002FB8AD685C883003503B50A8F7D1B0109E
-:10044000409A504BF5DAC001069406980695506A1A
-:10045000C3796FE85808CEB14908201D1AD8E06862
-:1004600000D01AD8493848FC1AD8F01F000F2FCDF9
-:10047000C0085808C0416FE85808CD904878201D42
-:100480001AD8E06800D31AD848B8486C1AD8F01FB8
-:1004900000062FCDC00800008003AF5C8003AFD4FE
-:1004A00080039D9C800094C48003B028000080D409
-:1004B0008003B0688003B0A450195008EF03003CDB
-:1004C000304CF01F0042401918954008E080023C73
-:1004D000300B990B991B5809C0301894C118580853
-:1004E000C0E14BB8201D1AD8E06800EF1AD84B982D
-:1004F0004B9C1AD8F01F00392FCDC008910C5C73AB
-:10050000402A4069E60A010840435C73E6080D434F
-:100510005C835809C3904028300AE608000B149CFD
-:100520005C7BF01F002F8B1CE080020EF5D3C01007
-:10053000402B98D9F40B00081039C0E44A48201D1C
-:100540001AD8E06800FF1AD84A684A3C1AD8F01F47
-:1005500000232FCDC008501AF01F0023401A18980E
-:1005600040895809C0A0402B6A195008721C160C0B
-:10057000403BF01F001E4008F00200026A185C8237
-:1005800070188B28C3D8406A402B149CF01F0014AD
-:100590008B1CE08001D9F01F0014407AF8020002A1
-:1005A0005C82580AC2D0F7D3C010301A303CF01F1A
-:1005B000000C189B6A1C580BC1C1F01F000D40694C
-:1005C0008B19E08F01C100008000C9D48003AF5CAB
-:1005D0008003B0D880039D9C800094C48000D31811
-:1005E0008003B0E88000CD0C8002E7368000D13C6B
-:1005F000403897182FF28B285C82F01F003F320B97
-:10060000F6021900E08B01A0AA63314B6A1CF01FAF
-:10061000003BC0904BA8F10900A42FF9F15900A4A8
-:10062000E08F0192EF39001C6A1870188B48B0896E
-:10063000EF39001DB099EF3900246A48B0A9EF39AD
-:100640000025B0B9E00916186A48B0C9F3D0C2084D
-:10065000B0F0B0D9F3D0C108B0E96A48F16C00132A
-:10066000F16C00126A48F13A000CF139000DF3EA1E
-:100670001089E019FFC0EDE910095C79F169000DFE
-:10068000A989F169000C405AEB6A000E404806182F
-:100690005C88F3D3C0105048403B6A48120B503B73
-:1006A00040AA1200F139000DF3D9C006F5E910098E
-:1006B0005C79F169000DA989F169000C0A98300A8A
-:1006C000404BF40B19005F1B507B169A58045F09CE
-:1006D000300B124AF60A1800FE91FEF0F5D2B01067
-:1006E000503A6FE05800E08000C260085808C0909F
-:1006F0001090CFCB8000CD348000CDD4000080D4CA
-:1007000080EA6048F139000DF3D9C0025F1B140B79
-:10071000E08000C45809E08100C1F7D6C0025F0C38
-:10072000301BF60618005F0BF9EB100BF20B1800EC
-:10073000E08000B488EBEF19003C140B123BE08919
-:1007400000ADE13B000EE939000EF20B1800E0812C
-:1007500000A5684911FE13FB504B11CC11DBB16BA6
-:10076000F7EC118B11ECF7EC108BFDEB100B160A6C
-:1007700013CB13D8B168F1EB118813EB4049F1EBBF
-:100780001088F3E81008103AE08100884028681CBF
-:10079000F00B11EC5C8BF01F0037C0E04B68201DA4
-:1007A0001AD8E06801691AD84B484B5C1AD8F01F78
-:1007B00000352FCDC0086818905AF80A1900C0A15A
-:1007C00070098919910C4032109C20125C82F01F34
-:1007D000002EF1D6C001681BC220580BC05188689A
-:1007E000F6081900C0E04A48201D1AD8E0680177D1
-:1007F0001AD84A684A2C1AD8F01F00222FCDC008F8
-:100800006048F13A000CF139000DF3EA1089A1A912
-:10081000F169000DA989F169000CC1E8580BC050BD
-:100820009659F0091900C0E14938201D1AD8E0682E
-:10083000017A1AD84968492C1AD8F01F00122FCD16
-:10084000C008601CF01F001380698868F208000867
-:10085000A068680881080835E0051700E1F3020682
-:10086000089B304CF01F000CC198EF440078C16821
-:100870008000CDD48003AF5C8003B11C80039D9CBD
-:10088000800094C48000D13C8003B1308003B1501B
-:100890008000CD348000C97481040C98EDB600014D
-:1008A000C040EDB60000C0312FF15C81EDD6C00133
-:1008B000EFF81826F9B90120F1D9E138EFF81E2632
-:1008C0006FB9F1D1C010F2080008EF520074EF4880
-:1008D000006CEF0800720218EF5800725802C14015
-:1008E0006FF85808C1116FE85808C0E14AF8201D98
-:1008F0001AD8E06801A11AD84AD84AEC1AD8F01FD1
-:10090000002E2FCDC00858055F193008F0031900DC
-:100910005F1AF5E90009F0091800C4406A48580850
-:10092000C410409CE21C0002C3D1F13A000CF13922
-:10093000000DF3EA1089A3B9F169000DA989F169E5
-:10094000000CC318EF380026EA18FFFFE818FF80F4
-:10095000EF6800264998F109009C2FF9F159009C95
-:100960005804C040089CF01F0016EF0900743008BE
-:10097000F0091900C1406FF85808C1116FE8580814
-:10098000C0E148A8201D1AD8E06801B41AD84888E8
-:10099000488C1AD8F01F00082FCDC008E06C00FF6B
-:1009A000C028300C2F5DD8328003AF5C8003B16467
-:1009B00080039D9C800094C4000080D48000DA688D
-:1009C000D421784E1298587E5F07584E5F09EFE9A0
-:1009D0001009C081582EC060583EC040E06C00F83D
-:1009E000D822580AC031149CD822201D30095C7AC4
-:1009F0001AD9F01F00032FED5C5CD8228001035050
-:100A0000D4013008201D109A16991AD8149B30185A
-:100A1000F01F00032FED5C5CD80200008001035042
-:100A2000D431189679F45804C05179E45804E08020
-:100A300000CE6848F133000DE7D3C001C06088697B
-:100A40003008F00919005F03300A5C53301C14337E
-:100A5000F9BB0114F9BB0015F01F005D1895E0808B
-:100A600000B698593138F0091900E08B000F4D9805
-:100A7000201D1AD8E068040F1AD84D784D7C1AD87A
-:100A8000F01F00572FCDC008684811FA11CB11D9BB
-:100A900011E8B169F3EB1189F3E81089ED38001C16
-:100AA0007817F5E91009AE88EF3A000CED38001D13
-:100AB000AE98EF38000DF1EA1088ED3A0024AEAAA6
-:100AC000ED3B0025AEBBF20B1618AEF9AECBF7D955
-:100AD000C208F3D9C108AEDBAEE9ED390028EF69F1
-:100AE0000008ED390029EF690009ED39002AEF69A6
-:100AF000000AED39002BE018FFC0EF69000BA5A834
-:100B00005C88F5D8C010EF6A000DF40B1608EF6B87
-:100B1000000CED39002EEF69000EF1D8C006300947
-:100B2000E8185000ED3A002F5C78EF6A000FEF688C
-:100B3000000DEF690011EF690012EF690013EF6912
-:100B40000010A988EF68000CED19002E6CA8F208BF
-:100B500000088DC85803C110EF39000CEF38000DA4
-:100B6000F1E91088E018FFC0E8180011EF68000DE7
-:100B7000A988EF68000CC068682811897818F169A5
-:100B80000014ECC4FFFC8AC83069089A0C9B0A9CCC
-:100B9000F01F00145C7CEF6C0011A98C4929EF6CEC
-:100BA0000010F30C00902FFCF35C0090306C201DC3
-:100BB000ED39000B089A1ADC0C9B30080A9CF01FD8
-:100BC000000B0A9CF01F000A2FEDD8328000D318CA
-:100BD0008003AF5C8003AFA480039D9C800094C41D
-:100BE00080011E2C000080D4800122948000D13C22
-:100BF000D431300A1895314B301CF01F003918934E
-:100C0000C041E06C00FED832EB380026EB39001C06
-:100C1000E018FFFCEB6800266B787817AE89EB399B
-:100C2000001DAE99EB390024F00B1618AEA9F3D8CD
-:100C3000C208EB3A0025AEF8F1D8C108AECBAEBA87
-:100C4000AED9AEE86AA8F0091618EF690008F3D823
-:100C5000C208E06A5010EF690009F3D8C1083004F7
-:100C6000EF68000BEF69000AF40B1608EB19002E71
-:100C7000EF6B000CEF6A000DEF69000FEF640012DC
-:100C8000EF640013EF640010EF640011F20A16081D
-:100C9000F2080008EF6A000E8BC8EAC6FFFC0A9B48
-:100CA0000C9A98C83069F01F000F5C7CEF6C001143
-:100CB000A98CEF6C0010306CEB38000AEB39000B9C
-:100CC000201D0C9A1ADC0A9B069CF01F0007069C4C
-:100CD000F01F0006089C2FEDD83200008000D318CA
-:100CE00080011E2C800122948000D13CD431202D23
-:100CF0004AE8189770081838E08001A3F9080056F0
-:100D0000F9090060F0091900F20817805C785008B2
-:100D100079E6F9380026E2180002C1E05806C170F1
-:100D20008CEB6C48794911CCF609010911DBB16BE8
-:100D3000F7EC118B11FA11E8F7E81088400BF5E891
-:100D40001008F20800081638E08800070E9CF01F13
-:100D500000185C5CC7696FF55805C0B1EEC9FF8427
-:100D6000EEC2FFFC5019300349214930C2B9109539
-:100D70006A085808CFD1CF3BF13C000CF139000D87
-:100D8000F3EC108C5C8CEDBC0002C1F148B8201D66
-:100D90001AD8E06802471AD8489848AC1AD8F01F09
-:100DA000000A2FCDC00800000000822480010BF053
-:100DB000000080D4000082108003AF5C8003B18407
-:100DC00080039D9C800094C46FF95809C150EF3B8B
-:100DD00000261699E2190044C0F16FE95809E08035
-:100DE0000133720E580EC081926EEF09003CF20E74
-:100DF0001900E08301296C09EF4900786E495829F0
-:100E0000C0E0A5AC5C7CF16C000DA98CF16C000C11
-:100E1000EF390026E019FFFCEF6900266EA9F20AFF
-:100E20001618F16A0008F5D9C208F16A0009F5D967
-:100E3000C108F169000BF16A000AEF1A002EF16A8D
-:100E4000000FF40B1608F16B000EF40900098FC9AE
-:100E5000ED39000EEDB90000C061E06B0200EA1B45
-:100E60000204915BEF08003A3FF9F2081900F9B863
-:100E70000000EFF80C1D6E085808C071049CF01FAC
-:100E80000075C45078188F086F085808C121600990
-:100E90006C48EF49004011F911CB11DA11E8B16A41
-:100EA000F5EB118AF5E81088F3E81008EF480044E4
-:100EB0006C1C6C4478199848985A9914E8090109EF
-:100EC000121A1218B85AB84830695C78049A0E9B06
-:100ED000E9630010E9630011F01F005F30695C7C7A
-:100EE000E96C0011A98CE96C0010E30800902FF860
-:100EF000201DE35800901AD9049AEF38000AEF3900
-:100F0000000B0E9B6C1CF01F00552FED6C4811FA66
-:100F1000F139000DF3D9C0025F1B11CC8CE9F60941
-:100F2000000911DB11E8B16BF7EC118BF7E81088C1
-:100F3000F5E810086F7AF2080008101AC037EF4879
-:100F4000005C5809C3B08D036FF85808C041EF46E4
-:100F5000007CC3286C4A15FE15C46A4915DBB16BC9
-:100F6000F7E4118B15E4F7E4108BFDEB100B13CEB7
-:100F700013FC13DAB16AF5EE118A13EEF5EE108A5E
-:100F8000144CF60C010CC177401AC058109A700826
-:100F90005808C0E0704913C413FC13DEB16EFDE4C1
-:100FA000118E13E4FDE4108E1C4C161CCF068D0828
-:100FB0009506C0788B060C95C0480C9CF01F002845
-:100FC0006FE65806C3706C4811CC6F4A8CEB11D990
-:100FD000141BB169F3EC118911ECF3EC108911FCCD
-:100FE000F9E91009F6090009400B1639FE98FEC60A
-:100FF000EF3900AC3008F0091800C1C18CEB6C4827
-:10100000F60A010A11F911CC11DB11E8B16BF7EC0A
-:10101000118BF7E81088F3E81008100AEF18006049
-:10102000103AF9B80B00EFF8BA2AF9B80B01EFF84B
-:10103000BEACEF380026F1D8C007EF680026300CB0
-:101040002FEDD832E21B00A0FE91FED7CD2B000081
-:101050008001222880011E2C800122948000DA3C2D
-:10106000D401189879FA580AC170149B7609580966
-:10107000C030129BCFCB71EC970CF1490040F14985
-:10108000007CF139004E2FF9F14A0078109CF1698B
-:10109000004EF01F0002D80280010CECD431300A5F
-:1010A0001896314B301CF01F00401895C7B0985966
-:1010B0003138F0091900E08B000F4BC8201D1AD8F9
-:1010C000E06803C91AD84BA84BAC1AD8F01F003AF5
-:1010D0002FCDC008ED39001C78176D78AE89ED3939
-:1010E000001DAE99ED3900242018AEA9F00B16189A
-:1010F000ED3A0025F3D8C208AEF8F1D8C108AECB5E
-:10110000AEBAAED9AEE86CA8F0091618EF690008BF
-:10111000F3D8C208E06A5010EF690009F3D8C1089B
-:101120003004EF68000BEF69000AF40B1608ED19A4
-:10113000002EEF6B000CEF6A000DEF69000FEF64FB
-:101140000012EF640013EF640010EF640011F20A64
-:101150001608F2080008EF6A000E8DC8ECC3FFFC09
-:1011600098C83069069A0C9BF01F00145C7CEF6CE9
-:101170000011A98C4929EF6C0010F30C00902FFC92
-:10118000F35C0090306C201DED39000B08981ADCE0
-:10119000069A0C9B0A9CF01F000B0A9CF01F000A89
-:1011A0002FEDD8328000D3188003AF5C8003AFA44A
-:1011B00080039D9C800094C480011E2C000080D47C
-:1011C000800122948000D13CF9390010A3C948A8BD
-:1011D000F969001011BA118B119911A8B169F3EBDB
-:1011E0001189F3E81088F5E8100899183008F958C3
-:1011F00000145EFC8003B409997A996B5EFCD703F6
-:10120000D421301CF01F00071897C080320A300B21
-:10121000F01F00053FF8EF68000B0E9CD82200007D
-:101220008000C9D48002E8BCD40148C9189B720868
-:101230001838C0D178389308C0C870395809C060D0
-:101240001639F7F90003F1F90A0370385808CF612D
-:10125000301CF01F0003D802000082288000C974EF
-:10126000D4214AB83009700E1C98C148103CC111F5
-:101270005809C0E04A78201D1AD8E06802541AD8EC
-:101280004A584A6C1AD8F01F00262FCDC0083019D2
-:1012900070385808CEC1580BC0C017B817861797BA
-:1012A00017ABB167EFE61187EFEB108BF1EB100B8B
-:1012B000990B580AC2211C98E06A1000E0667FFF73
-:1012C0003007C0C8F10B0012F40B1900C061F6CA58
-:1012D000FFFF1C985C8AC0287038EC0A19005F1563
-:1012E00058085F1BEBEB000BEE0B1800CEC1580843
-:1012F000C040E06C00F5D822F95A00125809C0200D
-:10130000D82A993E4828910C129CD82200008228A5
-:101310008003B19C8003B1E080039D9C800094C455
-:10132000D4213008169614951897F9090012F0097F
-:101330001900C071300A189BF01F00145C5CC231A8
-:101340005806C0C00DB80D8A0D990DA6B169F3EA13
-:101350001189F3E61086F1E61006EF380010A3A815
-:101360008F16EF680010EF55001448987008109C15
-:10137000C0581837C021D82A783C580CCFB18F38C4
-:1013800048389107D82200008001126000008228AE
-:10139000D43112971093169414911895F9090012EC
-:1013A0003008F0091900C091300A189BF01F004561
-:1013B000E5DCC008E0810084308B089CF01F00420F
-:1013C000C0310896C0E8300A308B301CF01F003F57
-:1013D0001896C041E06200FFC728089BF01F003C40
-:1013E0008C593078F0091900E08B000F4B98201DC4
-:1013F0001AD8E06801C51AD84B784B8C1AD8F01F60
-:1014000000382FCDC008EB3900120E986C175C78AD
-:10141000AE893009EB3A0013AEB8AE9AA988AEF99E
-:10142000AEE9AEA86A085808C041E6C2FFFCC10890
-:1014300066191238C0C00836C041E06200F7C3F830
-:101440000C9CE06200F7F01F0027C3980A928CC83A
-:10145000F0091608AED8AEC9EB390010EDB900009E
-:10146000C1403119029A049B0C9CF01F001F5C8C38
-:10147000F1DCC010AEF8A988AEE8580CF9B800FF4E
-:10148000EFF80E07EFF80E0631181AD3049BEB396C
-:10149000000B029A1AD80C9CEB38000AF01F0013BC
-:1014A0002FEDE5DCC0080836C0400C9CF01F000D95
-:1014B00048F8F10900782FF9F1590078049CD832E6
-:1014C000800112608000CDD48000D3188000CDB49C
-:1014D0008003B19C8003B1EC80039D9C800094C488
-:1014E0008000D13C80011E2C80012064000080D44B
-:1014F000D421202D1897501B149C500A1296F01FCF
-:10150000000C401B1898400AC0A148A8E06C00FCE1
-:10151000F10900862FF9F1590086C078F3D6C01082
-:101520000E9CF01F00055C5C2FEDD8228001222864
-:10153000000080D480011390D401F8CAFFFCF9198F
-:101540000014F01F00035C5CD8020000800114F05E
-:10155000D431203D4D98F109007A2FF9F159007AE4
-:10156000781716910F8818955C8898CAF3D8C0042C
-:101570002FE9A369123AC0A5F1D8C004F00B1502F7
-:101580005C3BF01F004F1894C0904CC80A9CF109B6
-:1015900000822FF9F1590082C1D96A12EECCFFF016
-:1015A000029B502CF01F004705980583F1E3108340
-:1015B00005B805AE1896F1EE108E5C835C8E34484B
-:1015C000F00E1900C2413438F0031900E081008B9D
-:1015D00062A85808E080008770145804E0800083F7
-:1015E00068185808E0800092EF3A000CEF39000DBF
-:1015F000B169F3EA1189EF3A000EF3EA1089EF3A84
-:10160000000FF5E910091238C6D1C7F84AE8089961
-:10161000700A089B1498500AC618F10C0012FC0CB2
-:101620001900C5A15806C041700C580CC1B0EF306C
-:101630000010EF3C0011B16CF9E0118CEF3000129A
-:10164000F9E0108CEF300013F60618005F1AE1EC99
-:10165000100C700018305F0CF5EC100CF60C180034
-:10166000C3B05804E08100D6F13C0010E21C000435
-:10167000F0041700CCE8701C580CC150EF3A000C75
-:10168000EF30000DB160E1EA11805010401AEF30E8
-:10169000000EF5E010805010EF30000F401A14409B
-:1016A000003CC1A1400A10945809C0F0703893382A
-:1016B000893A48589104C148000080D48000CDD4B4
-:1016C00080012558000082284C88F109008E2FF9EE
-:1016D000F159008EC058109970385808C9F1580453
-:1016E000C141EF3A0010EF380011B168F1EA1188FA
-:1016F000EF3A00126219F1EA1088EF3A0013F5E8A8
-:1017000010081039C6D1300405F805E9F1E9108850
-:10171000C130402A8AC83119EECBFFF40A9CF01F71
-:1017200000345C8CC0904B180A9CF10900802FF9A2
-:10173000F1590080C4F83F8B0A9CF01F002EC0E0D6
-:101740004AD8201D1AD8E06801141AD84AB84ACCE1
-:101750001AD8F01F002C2FCDC0085804C0D06866DE
-:101760005806C3E0089BF1D3C010EEC9FFF40A9AF3
-:10177000687C5D16C5585806C261EF380010FC1928
-:10178000E000B968E618F0001238C1D00F8B0A9C4F
-:10179000F7DBC0042FEBA36BF01F00166A180E389E
-:1017A000C0E04958201D1AD8E068012F1AD84968AE
-:1017B000493C1AD8F01F00132FCDC008303B0A9CBB
-:1017C000F01F001248980A9CF10900882FF9F1597E
-:1017D0000088F109007E2FF9F159007EC0280A9C8B
-:1017E000F01F000BC1D80000000080D480011E2C27
-:1017F0008000CDD48003B19C8003B11C80039D9CEC
-:10180000800094C48003B21C800118FC8000D13C8D
-:10181000F10C0014E60C1900FE91FF5FC2DB2FDD16
-:10182000D8320000D431189316921494324B300AF7
-:10183000301CF01F00241897C43098593238F00932
-:101840001900E08B000F4A08201D1AD8E068012E0D
-:101850001AD849E849EC1AD8F01F001E2FCDC0084D
-:101860007816661531CAAC94AC823004ACC4ACD4E2
-:10187000ACE4ACF4661B781C2F8CF01F00170C9C9A
-:10188000ACA4ACB48EDBF01F00155C7CACBCA98CA6
-:10189000ACAC201D492C30161AD60898F906006009
-:1018A000EACAFFF4E06900FF089B2FF6F9560060D2
-:1018B0000E9CF01F000C0E9CF01F000B2FEDD83279
-:1018C0008000D3188003B2308003B27880039D9CDF
-:1018D000800094C48002E73680011F4A000080D453
-:1018E000800122948000D13CD401F5DBC00830BBDC
-:1018F000F01F0002D802000080011824D401F5DB9B
-:10190000C008303BF01F0002D802000080011824FC
-:10191000D4314C62E50800622FF81694E558006255
-:10192000781618970D85EBD5C004A365EA0311005E
-:101930005C83069BF01F003EE08101788E493038C1
-:10194000F0091900E08801726E1811893088F009D9
-:101950001800E081015DED380010ED310011B1613A
-:10196000E3E81181ED380012E3E81081ED3800134F
-:10197000089BF1E11001ECCCFFF0F01F002EC071CC
-:10198000E611F000FC18E0001031C0914A780E9C7E
-:10199000F10900742FF9F1590074C4498E49307867
-:1019A000F0091900E08801420E9CF01F00235C8CB6
-:1019B000C0A00E9CF01F0021E50800682FF8E55834
-:1019C0000068D832330B0E9CF01F0019C6E00A9B4A
-:1019D0000E9CF01F0017189AC0E04998201D1AD8D5
-:1019E000E06800981AD84978497C1AD8F01F001787
-:1019F0002FCDC0088ECB302CF01F00151892E08040
-:101A0000011F98D9EAC8FFF81039C25248C8201DF2
-:101A10001AD8E06800A21AD848E848BC1AD8F01FC3
-:101A2000000B2FCDC0080000000080D48000CDD472
-:101A30008001255880011FAC8000D13C8003B2306A
-:101A40008003B2A480039D9C800094C48000D318BE
-:101A50008003B2D80E9BF01F00445C5CC0E04C38A1
-:101A6000201D1AD8E06800A51AD84C184C1C1AD8AA
-:101A7000F01F00412FCDC008069B6416049CF01F88
-:101A8000003FC0E04B98201D1AD8E06800AB1AD880
-:101A90004BB84B8C1AD8F01F00382FCDC0080E9CC5
-:101AA0000497F01F0038C1383D0B0E9CF01F003327
-:101AB000C0E04AE8201D1AD8E06800B51AD84B08E3
-:101AC0004ACC1AD8F01F002C2FCDC008ED3A000CDC
-:101AD000ED39000DB169F3EA1189ED3A000EED3BE5
-:101AE0000010F3EA1089ED3A000FF5E91009ED3A1C
-:101AF0000011B16AF5EB118AED3B0012F5EB108A8B
-:101B0000ED3B0013F7EA100AF40B16186E18ED6A95
-:101B1000000FED6B000CF7DAC208F5DAC108ED6AC8
-:101B2000000EF20A1618ED690013ED6A0010ED6B55
-:101B3000000DF5D9C208F3D9C108ED6A0011ED69AD
-:101B40000012300911AAB08911B9F3EA1089FE7A9E
-:101B5000F7FE5C89F4091900E0880016F2C9F7FF66
-:101B6000C14800008000CF988003B2308003B310DA
-:101B700080039D9C800094C48000CDD48003B33842
-:101B80008000D13CF2C9F8005C79B0B9A989B0A94C
-:101B9000ED380009E818FF00ED680009A988ED6834
-:101BA00000083008314BED68000BED68000A0C9C12
-:101BB000F01F00284A885C7CED6C000BA98CED6C52
-:101BC000000AF10900602FF90A9BF15900600E9C90
-:101BD000F01F00221898C0E04A18201D1AD8E068AB
-:101BE00000D71AD849F84A0C1AD8F01F00202FCD78
-:101BF000C00830191AD4189A1AD9ECCBFFF4E0694E
-:101C000000FF0E9CF01F001A2FEDC0B8E508007011
-:101C10002FF8E5580070E50800662FF8E5580066D3
-:101C20000E9CF01F0014D8320E9CF01F001248A822
-:101C3000F109006A2FF9F159006AD8320E9CF01FA1
-:101C4000000D4858F10900742FF9F1590074D83289
-:101C500080011F4A000080D48000CDD48003B230C0
-:101C60008003B36C80039D9C800094C48001206439
-:101C70008000D13CD431205D30951988FAC9FFF03D
-:101C8000FACEFFFC5009330231033056F0C9003060
-:101C9000EA091800E08B00BAE4081800C03030A749
-:101CA000C1582FFC35891988F20818005F0A378956
-:101CB000F20818005F09F5E91009F9B70008F7BC48
-:101CC00001FFF9B70110F9F81800F8CAFFFF300951
-:101CD0003191F2070244F0C000301004F4CC00014E
-:101CE000EA001800E08B0005E8C90030C1E80E9456
-:101CF000E6071800C1D1F0C400615C54EC04180080
-:101D0000E088000EF0C00041EC001800E08B0011EC
-:101D1000E2041800E0880004341CC028361C2F6838
-:101D2000F00C010CF9E9104915882FFACD3B32EA85
-:101D3000F4081800C0814008103EC6701CA92FFC92
-:101D40001988CA5B5808C28030CAF40818005F1CA2
-:101D5000320AF40818005F1A146C300AF40C1800E8
-:101D6000C1B030DCF80818005F1730ACF808180074
-:101D70005F1CEFEC000CF40C1800C0E030BC309796
-:101D8000F80818005F1CEE0818005F18F9E8000852
-:101D9000F4081800C3A1FAC8FFFC101EA34E2FFEC2
-:101DA000582EC0B0E0890005580EC2F0C298583EC7
-:101DB000C0F0584EC251C168E064FFFFEA1400FF52
-:101DC0000839E08B00234018F3E81189C198E049F5
-:101DD000FFFFE08B001B4018402AB968F1EA1108A8
-:101DE000C0D8E04900FFE08B0011402A4018B968D4
-:101DF000F1EA1108403AF1EA1088F1E91009580BAC
-:101E0000F7F91A00301CC028300C2FBDD832D70388
-:101E1000D401202DFACBFFFCF01F0004F9BC00FF19
-:101E2000FBFC10012FEDD80280011C74D431202D51
-:101E3000300630110C9EC4A898557812E7D5B01022
-:101E4000049430075008C0B8E92800000990202306
-:101E5000E1E810805C835C702FE40007E203190066
-:101E6000FE9BFFF40A944008E214FFFEE7D5C00190
-:101E700008023000E0031900C0400584A964080787
-:101E8000E9D7C010B187E80700070E94E0140000FE
-:101E9000C060E9D7C010B187E80700075C77EBD5D1
-:101EA000C001EE0E000EEFDEC010B18EEE0E000E81
-:101EB0005805C0B0EFDEC108EC061101A96E5C56F2
-:101EC000FDDEC010EFEE100E780C580CCB615806FA
-:101ED000C080F9DEC108A96EFDDEC010F9EE100E5B
-:101EE00017B715BC17851796B166EDE5118617ABC8
-:101EF0001585EDEB108B5C781596EFEB100B15AAA2
-:101F0000EFDBC010B166B18BEDE511860E0BEDEA8B
-:101F1000108AF9EA100AF40C1610F5DAC010F60A65
-:101F2000000A180AF4090009F2080008F00E000E71
-:101F3000F1DEC010B18EF00E000EF9DEC010B18ED1
-:101F40001C0C5CDC5C8C2FEDD832D4213008189945
-:101F5000F5DBB010301EC0B8F32600001397202A1E
-:101F6000EFE610875C8A5C772FE90E08FC0A1900FF
-:101F7000FE9BFFF41699E219FFFE120CEDBB000068
-:101F8000C0411989A9691208F3D8C010B188F208B4
-:101F900000081099E0190000C060F3D8C010B188A3
-:101FA000F20800085CD8F9D8B010D822D431300A31
-:101FB000301414981495C488985B7816EFDBB01031
-:101FC0000C9E3009C0B8FD2200001D932027E7E2D7
-:101FD00010835C875C732FEE06090E93E8071900E7
-:101FE000FE9BFFF3169EE21EFFFE1C06FDDBC001FA
-:101FF000EA0E1900C0400D8EA96E1C09FDD9C01053
-:10200000B189FC090009129EE01E0000C060FDD9E4
-:10201000C010B189FC0900095C79F7DBC001F20846
-:102020000008F3D8C010B188F2080008580BC0B0FF
-:10203000F3D8C108F40A1101A9685C5AF1D8C0109C
-:10204000F3E81008780C580CCB81580AC080F3D8FC
-:10205000C108A968F1D8C010F3E810085CD8F9D815
-:10206000B010D832D431201DFAC4FFD8169712937D
-:102070001092681518966801580AE0800091500A7D
-:10208000314BF01F0055400AC0A04D48E06C00FEE7
-:10209000F109005C2FF9F159005CCC286C148C59C3
-:1020A0003138F0091900E08B000F4CD8201D1AD8E8
-:1020B000E068022C1AD84CB84CBC1AD8F01F004B60
-:1020C0002FCDC0085C53E3E310815C71E961000926
-:1020D000A981E9610008158B1598B168F1EB1188A9
-:1020E00015ABF1EB108815BBF7E81008F00B1618CC
-:1020F000E9680013E96B0010F7D8C208F1D8C108ED
-:10210000E96B0011E9680012E81245005C72A892C0
-:10211000E4031608A883ED380008A8A8ED380009E4
-:102120004B39A8FCA8B8A8EC9208F7D8C010A8DBD7
-:10213000A98BA8CB2FF8B2085807C0D00F8B0FB9C6
-:102140000F98B168F1EB11880FABF1EB1088F3E851
-:102150001008C051EAC8FFFCEBF81001F00916188E
-:10216000E968000FE969000CF3D8C208F1D8C1088A
-:10217000E969000DE968000E3008E968000BE968BC
-:10218000000A500A314B089CF01F001A5C7CE96C75
-:10219000000BA98CE96C000A400AC038781A2F0A93
-:1021A00048E8F10900482FF9F1590048158B1599B5
-:1021B000B169F3EB118915AB6A18F3EB108915BB04
-:1021C000F7E910091039C1910C9B0A9CF01F000A15
-:1021D000C26800008000CDD4000080D48003B3909A
-:1021E0008003B3D880039D9C800094C40000734892
-:1021F00080011F4A8000CAF8EB08002C5808C0B0C4
-:102200008C49F0091900E08800070A9B0C9CF01F1C
-:102210000006C0580C9B0A9C6A585D185C5C2FFD38
-:10222000D8320000800125A0D42149781896700783
-:10223000C1680E9CF01F0015C1100D8B0D98B16880
-:10224000F1EB11880DAB6E1AF1EB10886E290DBB06
-:10225000F7E8100814581268C1306E075807CEA16D
-:1022600048B66C0C580CC040F01F0008C08148985C
-:10227000F10900562FF9F1590056C0286C070E9C41
-:10228000D8220000000080CC8000CAE4000080D08A
-:10229000000080D4D421204D1897503B149C502A24
-:1022A000501950084096F01F000D403B402A40193D
-:1022B0004008C0A148A8E06C00FCF10900562FF9C5
-:1022C000F1590056C0881ADC0E9C1AD6F01F000582
-:1022D0002FED5C5C2FCDD82280012228000080D415
-:1022E00080012064D4314C05EB08004A2FF87817A0
-:1022F000EB58004A0F980F831694F1E31083189659
-:10230000E609160C3048F0091900C090F01F00379C
-:10231000EB08005C2FF8EB58005CC2980FB8E7D3CD
-:10232000C1040FA2A363F1E2108298585C82E60810
-:102330001900C0539848E4081900C0B20C9CF01F63
-:10234000002B4A98F10900522FF9F1590052C86840
-:10235000069B0E9CF01F00265C8CC0F00C9CF01FAE
-:102360000023EB0800502FF8EB580050EB08004E0C
-:102370002FF8EB58004ECD48F7D2C0100C9CEEC0A1
-:10238000FFF0F01F001C0895301249B10A9CF01FA5
-:10239000001BC1D0EAC8FFFCC1A06A185808C17070
-:1023A000EF3A0010EF390011B169F3EA1189EF3A01
-:1023B0000012F3EA1089EF3A0013F5E91009103919
-:1023C000C2A00A9B009CF01F000EC2515802E3F508
-:1023D0001000EBF5000030020835EBF50000580561
-:1023E000CD61C9F8000080D48000D13C80011F4A33
-:1023F0008000D210000080CC8000CAE48001255803
-:10240000EE03000307B807A9F1E910893448F00981
-:102410001900C2A0EF39000CEF38000DB168F1E9E6
-:102420001188EF39000EF1E91088EF39000FF3E859
-:102430001008C1B0089BEECCFFF4F01F003DC0A116
-:10244000EF38000CFC19E000B968E618F00012380B
-:10245000C0C10C9CF01F00374B78F109004E2FF9DA
-:10246000F159004EC5D808955805C0510C9CF01F75
-:102470000031C5680FE90FF8F1E91088F1D8C00EF6
-:10248000C0700C9CF01F002D1896C4A078174AC885
-:1024900091044AC8089B91070C9CF01F002BC3B104
-:1024A000EF3800095868C0B05918C0405818C11119
-:1024B000C0B8089B0C9CF01F0025C2D8089B0C9C40
-:1024C000F01F0023C288089B0C9CF01F0022C2381A
-:1024D000089BEECCFFF0F01F0016C0F1EF380010A3
-:1024E000FC19E000B968E618F0001238C0608D17DA
-:1024F000302B0C9CF01F00180C9CF01F000E48E8BD
-:10250000F10900582FF9F1590058F109004E2FF93F
-:10251000F159004E48A93008930848A99308D83AC1
-:10252000EF3800095918FE91FF77C6BB8001255886
-:102530008000D13C000080D4800129BC0000822CA6
-:10254000000082308000D588800115508000F37C27
-:1025500080011910800118FC19B9198A1998B168FD
-:10256000F1EA118819AAF1EA1088F3E81008F0C915
-:1025700000015BD9E08800035EFFF7390035EDB953
-:102580000001C0E1761A1438C0B07629105A126AD8
-:10259000C0715CD9F3E8000812385F0C5EFC5EFD88
-:1025A000D431209D503B506A781B403AF519002CDD
-:1025B000F2C80013502B5078214917EA17F8F1EAB6
-:1025C00010885C88109BF1D8C00DE21B2000984356
-:1025D000505B2143308B5018F20B0C0A1897F3DA3A
-:1025E000B0105C8312985049A37830025C88314067
-:1025F0005088C938401B405AF1DBC00D14485008C0
-:10260000E3D3B010F1D3C01040791039E08900064F
-:10261000400B4081ADBB500B300A314B302CF01FCA
-:1026200000421894C3708E58313AF4081900E08BB8
-:10263000000F4BE8201D1AD8E06802C31AD84BC817
-:102640004BCC1AD8F01F003C2FCDC008314A402B8C
-:10265000781CF01F003A6E19F1D0C010F208000883
-:102660006816EBD1B0108F188E58F0000100AE50F4
-:10267000C2188E52EA021900EA0217205C82C19049
-:10268000302A300B303CF01F0028C071089CF01F2E
-:10269000002CE06C00FFC4586E18B842B852189B6A
-:1026A00099180415089C5C85F01F00265805C02069
-:1026B0006E075805CDF1ED65000B40085C78ACF86D
-:1026C000A988ACE8E2C8FFEC5C78ACB8A988314BCB
-:1026D000ACA8ED65000A0C9CF01F001B5C7CED6C47
-:1026E000000BA98CED6C000A4039406A7258089BB7
-:1026F000129C5D18495BF70800302FF8089CF758CA
-:102700000030F01F000F40180213404AE1D2B01011
-:1027100014085C835C8850185803FE91FF6D069C7A
-:102720002F7DD8328000D3188003B4108003B45CAE
-:1027300080039D9C800094C48002E7368000D13CD9
-:102740008000CD3480011F4A000080D4D40148F8B5
-:1027500070091839C04178099109C128580BC0E1A6
-:1027600048B8201D1AD8E06801341AD8489848ACF7
-:102770001AD8F01F000A2FCDC00878089708189BB8
-:10278000305CF01F0007D8020000734C8003B410C7
-:102790008003B47C80039D9C800094C48000C97435
-:1027A000D43118971696183BC0E14BC8201D1AD893
-:1027B000E06800A41AD84BA84BAC1AD8F01F003A16
-:1027C0002FCDC008580BC11076081838C0E04B3820
-:1027D000201D1AD8E06800A61AD84B484B1C1AD8FE
-:1027E000F01F00312FCDC0086E156A1811CA11D91B
-:1027F000F3EA1089C0303004C1D8118A1199109CB5
-:10280000B169F3EA118911AA11B8F3EA10891248E3
-:10281000314A8F18EECBFFF8F01F0025301B0A9CC1
-:10282000F01F00240A9CF01F002418940A9CF01F3B
-:1028300000236E15C1486A1811B9118A119311A8A5
-:10284000B163E7EA1183E7E81083F3E31003F01FB5
-:10285000001A18040A9C0695F01F00180A9C5805D7
-:10286000CEB10C9B0E9CF01F001649689009F5D95B
-:10287000C010083AC0E44898201D1AD8E06800C784
-:102880001AD84918487C1AD8F01F00072FCDC00865
-:102890000819089CB009D8328003B4108003B4989A
-:1028A00080039D9C800094C48003B4A48002E7361A
-:1028B000800118E88000CD0C8000D13C8001274CBD
-:1028C000000073508003B4B8D431300618971692C4
-:1028D0004AB30C94300566080A9B0A9CC3E8EF3A99
-:1028E000000CEF39000DB169F3EA1189EF3A000EDF
-:1028F000F3EA1089EF3A000FF5E91009705A123A1D
-:10290000C1B1EF3A0010EF390011B169F3EA118952
-:10291000EF3A0012F3EA1089EF3A0013F5E91009D3
-:10292000706A123AC0910FCA0FD9F3EA1089906AFF
-:10293000F20A1900C0D02FF5580CC090F13A001FD0
-:10294000F939001FF20A1800E08B0003109C70098F
-:102950005809F00B171012985808CC21580CC04099
-:10296000F01F0008180658155F9804365F59F3E801
-:102970000008E8081800CAF10C9CD8320000734C1B
-:10298000800127A0D42148C83007700CC108F9384D
-:10299000001F7806F0C900015808C050F969001FEF
-:1029A0001897C0480E9BF01F00050C9C580CCF01D7
-:1029B000D82200000000734C800127A0D431201DD4
-:1029C0004CD8F10900322FF9F159003278161895D8
-:1029D0000D835C83F3D3C004A3695949C080F10916
-:1029E00000442FF9F1590044E08F02570DF80DE132
-:1029F000F1E110810DB80DA24C07F1E21082F01F39
-:102A000000408E885C815C821894F808000858A801
-:102A1000E08A000D189B0C9CF01F003AC5708E8850
-:102A2000E808000858A8E08900524B783009700780
-:102A30005009C3D8ED39000CED38000DB168F1E94B
-:102A40001188ED39000EF1E91088ED39000FF3E837
-:102A500010086E591039C291ED390010ED3800118F
-:102A6000B168F1E91188ED390012F1E91088ED390A
-:102A70000013F3E810086E691039C1710DC90DD843
-:102A8000F1E910888E69F0091900C0F149A8F1092F
-:102A900000462FF9F15900460DE90DF8F1E91088CB
-:102AA000F1D8C00DC360C3F850076E075807CC318A
-:102AB000E08F021E089B0C9CF01F0012083CC065B2
-:102AC000305CF01F00121897C09148B8F109003C23
-:102AD0002FF9F159003CE08F01E0320A300B0E9CD7
-:102AE000F01F000B30394888EF69001F70098F090B
-:102AF0009107C138000080D4000073508000CD0CD5
-:102B0000800128C80000734C8000C9D48002E8BC52
-:102B10008EF8F1D8C00DC070314A0C9BEECCFFF896
-:102B2000F01F004F4CF89009F20400045C84B004DC
-:102B30000DE8A598EDB80000C120EF38001EE3D1E4
-:102B4000C00DE7D3C004A371E60310FCE20200024B
-:102B5000A1A80602EF68001EEF52001C6A1811BB04
-:102B6000300A11AEF7EE108E118BB09AB0AAB0BA3F
-:102B7000B08A1499F5DBC00411FBF40A10FC11ECC7
-:102B8000F7EC108CF9DCB00DA37CF7DCC010B0DBE7
-:102B9000A98B180EB0CB140E10935C8E3016F5DE98
-:102BA000C010B0FAA98AB0EA6E11029BC548761A25
-:102BB00015C015D2E5E010825C82E40C1900C292C7
-:102BC000F6021618B0BBB082E5DBC208F7DBC1081D
-:102BD000B092B0AB5809E080008213E213FBF7E239
-:102BE000108BF60C1900E08300FF15DB15CAF7EA1D
-:102BF000108AF40E1900E08B00F7EA0A1618B2B535
-:102C0000B28AF5D5C208EBD5C108B29AB2A5C6788A
-:102C1000E40C1900E08000E815E015FBF7E0108BEC
-:102C2000F60C1900E08300E05809C09013FB13E98B
-:102C3000F7E91089E4091900F9B601001582159B1E
-:102C40001499B16BF7E2118B15A215BAF7E2108B4C
-:102C5000F5EB100B580BCAC1C52900008002E736FE
-:102C60000000735013EB13FA11CCF5EB108A11DB53
-:102C7000F7EC108BF60A1900E088000F4BC8201DF6
-:102C80001AD8E068018E1AD84BA84BBC1AD8F01F8E
-:102C9000003B2FCDC008EA0B1618B28BF7D5C2083F
-:102CA000B2B5B29BEBD5C108B2A511CB11D9F3EBEC
-:102CB0001089F20A1900F9B60100C1185801C0E0E4
-:102CC0004AB8201D1AD8E06801971AD84AC84AACF9
-:102CD0001AD8F01F002A2FCDC0088F15EF39001E1B
-:102CE000EDB90000E08100E45806E08000E16E19D3
-:102CF000721A15CB15D9F3EB1089E08100D9118B2D
-:102D000011951099B165EBEB118511AB11B8EBEB97
-:102D10001085F1E51005C1A807F86A1907EB13CC77
-:102D2000F1EB108B13D8F1EC1088F00B1900E08157
-:102D300000BF13881395B165EBE8118513A81293B2
-:102D4000EBE8108513B8F1E510055805CE61123A8D
-:102D5000C1A14878201D1AD8E06801B91AD848984E
-:102D6000485C1AD8F01F00052FCDC0088003B410AE
-:102D70008003B4D480039D9C800094C48003B4F489
-:102D80008003B52C138A1398B168F1EA118813AA4D
-:102D9000F1EA108813BAF5E81008C0E04C68201D6D
-:102DA0001AD8E06801BB1AD84C484C5C1AD8F01FFE
-:102DB00000452FCDC00813F813E9F1E91088EF0999
-:102DC000001C5C88F0091900C1704BB8201D1AD88E
-:102DD000E06801BD1AD84BC84B9C1AD8F01F0039C7
-:102DE0002FCDC0080A9CF01F00394B9818143006EC
-:102DF000B0040A9CC5982EC8EF58001C6E187016B7
-:102E00000D880D94B164E9E811840DA8E9E81084F7
-:102E10000DB8314AF1E41004EECBFFF80C9CF01F22
-:102E2000002DEF38001CACA8EF38001D0C9CED65A0
-:102E3000000BACB8ACE5ACF5ED65000A314BF01F0A
-:102E400000265C7CED6C000BA98CED6C000A6E1604
-:102E5000C1586815089C3ECBF01F0020089B0C9CB5
-:102E6000F01F001F0B890BB80B94B164E9E91184C2
-:102E70000BA9E9E91084F1E410045804CEB10E9CCA
-:102E8000400BF01F00180C9C49178E05F01F000F17
-:102E90001815AE05C0D849480A9CF109003630061D
-:102EA0002FF9F1590036F01F0011C02830060C9C94
-:102EB0002FFDD8328003B4108003B53C80039D9C65
-:102EC000800094C48003B5608000CD0C0000735076
-:102ED0008002E73680011F4A8000CDD48000CD34C7
-:102EE0008001274C000080D48000D13C305CF01F72
-:102EF00000061897FE91FDF3FE9FFDDE5809FE9136
-:102F0000FEB3CDDA8000C9D4D4211898F937002E49
-:102F1000761E306CF8071800C0E04948201D1AD80A
-:102F2000E06801B41AD84928492C1AD8F01F0012B9
-:102F30002FCDC008306C201C5C5CF20C0706FC0C2A
-:102F40000007EF66000EF40C0706EF660014580C3D
-:102F5000CF313089FD6C001BFD69001A109C706830
-:102F60005D185C5CD82200008003B5948003B5DC5A
-:102F700080039D9C800094C4D4211897580CC0E114
-:102F800049D8201D1AD8E06800941AD849B849CC0D
-:102F90001AD8F01F001C2FCDC00878185808C0E1BF
-:102FA0004958201D1AD8E06800951AD84968494C3C
-:102FB0001AD8F01F00142FCDC0086E186E06109C92
-:102FC0005808C0E148C8201D1AD8E06800991AD8EE
-:102FD00048E848BC1AD8F01F000B2FCDC008F01FDE
-:102FE000000C0E9B306C0C97F01F000A5806CE6147
-:102FF000D82200008003B5948003B62080039D9CF6
-:10300000800094C48003B62C8003B63C8000D13C81
-:103010008000C974D431201D500B1897580CC0C0C3
-:103020004D084D19118CF80815031818F2080028DE
-:1030300070495829C0D030AA30094CBE129C1C924D
-:10304000129B2ECE1298149314911490C1980F8A4B
-:103050000F99B169F3EA11890FAA7018F3EA108980
-:103060000FBAF5E910091039CE714C08F109002E9C
-:103070002FF9F159002ECE480C990A9C089B30A6D6
-:10308000EC031800C0A1FCF6FFFC5806C0611296C4
-:10309000189516941093C498FCF6FFFC5816C2417C
-:1030A0005807C0F00F860F95B165EBE611850FA6A6
-:1030B000EBE610850FB6EDE5100564160C35C26021
-:1030C00064051D865805C080F2061800C2B3189525
-:1030D0001694109AC2A80C94F6061800C2331296E1
-:1030E00018951090C2285826C1D15807C1300F86B4
-:1030F0000F95B165EBE611850FA6EBE610850FB6CF
-:10310000EDE5100564160C35C0514969109CB28874
-:10311000C9781D85F8051800C053129616941091B1
-:10312000C0481296189516942FF82E4E5C582E42D1
-:1031300030A9F2081800CA11F2031800C061400655
-:10314000EDB60000E081007B4005E2150002E08161
-:1031500000763098F0031800E089000A5C53C498A8
-:103160000000735200007354000080D430A8F001B6
-:103170001800C180E7D1C0084B38E60915030619CD
-:10318000F00903285808C2304B08201D1AD8E068FF
-:1031900001761AD84AE84AFC1AD8F01F002F2FCD22
-:1031A000C008F0001800C040E7D0C008C108E20A1B
-:1031B0001800C4404A48E7DAC008E60615030616B8
-:1031C000F00600266C0CF01F00258D053098F003EA
-:1031D0001800E088000F49D8201D1AD8E068018C3B
-:1031E0001AD849F849BC1AD8F01F001B2FCDC008C7
-:1031F0004959E6081503300A0618F2080028F0C9F4
-:10320000FFF0930A5807C0D00F8B0FBA0F99B1691E
-:10321000F3EB11890FABF3EB1089F5E91009911964
-:103220004899E60815030618F20800282F08300907
-:10323000069CB0C948B8B083C038E06C00FF2FFDD1
-:10324000D8320000000073548003B5948003B64C5C
-:1032500080039D9C800094C480012F788003B66415
-:1032600000007352D431494730050E963EF42EC704
-:10327000ECC3FED40F882FF85C58AE88EEF9FFFC43
-:103280005829C061E8081800E08B0009C0F85819F7
-:10329000C0D1F2081800E088000A6C0C580CC0403D
-:1032A000F01F00068D05EF45FFFC2E472E46063722
-:1032B000CE21D8320000735480012F78D431306889
-:1032C0001293189616951497F939002EF0091800E4
-:1032D000C0E04B78201D1AD8E06801DA1AD84B58A4
-:1032E0004B5C1AD8F01F00352FCDC008580BC5C055
-:1032F00017891798B168F1E9118817A9F1E91088C1
-:1033000017B9F3E81008C500189B0A9CF01F002CA1
-:103310001894C4A10B88FC19E000B968E618F00005
-:103320001238C420069B0A9CF01F00265C5CE80C47
-:103330001800C3C55C6C4A49F8081503302AF00C24
-:10334000010CF20C00289166F0C9FFF0930A0FDA25
-:10335000F16A000D0FCAF16A000C0FBAF16A000B96
-:103360000FAAF16A000A0F9A1095F16A0009ECC3DE
-:10337000FFD10F8AB2C4F16A0008C0F87009701456
-:103380008B09F01F00120E99069A089B0C9CF01FE7
-:103390000010089CF01F000F6A08306C109B580842
-:1033A000CEE1109CD832E06C00F6D8328003B594A0
-:1033B0008003B67880039D9C800094C480012558CA
-:1033C00080013014000073548000C97480012F08FC
-:1033D0008000D13CD421189E580CC0E14958201DD2
-:1033E0001AD8E068024A1AD84938494C1AD8F01F4E
-:1033F00000142FCDC008761AF4C8FFE4F137000F8F
-:10340000F136000CF139000DF138000E782BB1695E
-:10341000F3E61189F3E810897818EFE910091059DB
-:103420001669C061F4CBFFD82ECAF01F0006D8225F
-:103430008003B5948003A13880039D9C800094C4D0
-:10344000800132BCD431202D189616911495580C59
-:10345000C0E14CA8201D1AD8E068027F1AD84C8819
-:103460004C8C1AD8F01F00482FCDC00894593378DF
-:10347000F0091900E08B000A4C48149CF109002265
-:103480002FF9F1590022C3087414E8C7FFE40F981C
-:103490000F89F1E910893018F0091900C1E10FD83E
-:1034A0000FC9F1E91089E0680604F0091900C1515B
-:1034B0000FB80FA9F1E91089E0680800F0091900B8
-:1034C000C0C1E938001BE939001AF1E91089E06848
-:1034D0000806F0091900C0E04AC80A9CF109002852
-:1034E0002FF9F1590028F109001E2FF9F159001E9A
-:1034F000CA184A68F109001A2FF9E8C3FFD6F15932
-:10350000001AFAC2FFFC304A069B049CF01F002000
-:10351000EF380018EF390019B169F3E81189EF3875
-:10352000001AF3E81089EF38001BF1E910096C1854
-:103530005808C0C01039C0A1049B3019E8CAFFDC8C
-:103540000C9CF01F00143018C0A83009EECAFFF818
-:10355000FACBFFFC0C9CF01F000F30080FEA0FF9AC
-:10356000F3EA1089301AF4091900C1503028F00923
-:103570001900C591C52800008003B5948003A138C7
-:1035800080039D9C800094C4000080D48002E736B4
-:10359000800132BC5808C4D03008AEE83028304A28
-:1035A000AEF8EECBFFF2EECCFFE8F01F0025304A7C
-:1035B000069CEC0A000BF01F0022ED39002E30684B
-:1035C000F0091800C0E049F8201D1AD8E06802D9B7
-:1035D0001AD849D849DC1AD8F01F001D2FCDC008D1
-:1035E000306820185C58EE080009F33B0008F36BC4
-:1035F0000012E808000AF56B000EE208070BF36BF7
-:103600000008E2080709F56900145808CEB10C9CBF
-:103610006C680A9B5D18C0D80C9CFACBFFFCF01FAD
-:10362000000DC07848C8F109002C2FF9F159002C81
-:103630000A9CF01F000A2FEDD83200008002E73606
-:103640008003B5948003B5DC80039D9C800094C406
-:103650008000B3B4000080D48000D13CD42178191C
-:10366000F338001BF339001A1697F1E91088189601
-:10367000E0690800F2081900C070E0690806F20865
-:103680001900C231C1C8189B0E9CF01F00173E4B99
-:103690000C9CF01F0016C0E04958201D1AD8E068A5
-:1036A00004A41AD84938494C1AD8F01F00142FCD59
-:1036B000C0080E9B0C9CF01F0012C148189A169C63
-:1036C0002D1BF01F0010C0E848F8F10900282FF961
-:1036D000F1590028F109001E2FF9F159001EF01FC1
-:1036E000000BD82A800133D48000CDD48003B59458
-:1036F0008003B36C80039D9C800094C4800122E40D
-:1037000080013444000080D48000D13CD431300AA0
-:1037100018941691303C338BF01F0042E8C8FFD15B
-:103720001895580CC0A14C08E06700FFF10900246F
-:103730002FF9F1590024C738985A3379F20A190041
-:10374000E08B000F4B98201D1AD8E06804311AD87E
-:103750004B784B8C1AD8F01F00382FCDC008300999
-:103760007813E6C7FFE4AEE93019AEF93069E93AFB
-:10377000002EF20A1800C0E04AC8201D1AD8E068DE
-:1037800004391AD84AD84ABC1AD8F01F002B2FCDBA
-:10379000C00830664AAB4ABA20165C56F006070CE1
-:1037A000EE060009F36C0008F606070CF36C001235
-:1037B000F406070CE6060009F36C000EF006070C91
-:1037C000F36C00145806CE913042EECCFFF2E802C2
-:1037D000000B049AF01F001C049A029BEECCFFE839
-:1037E000F01F00193069AED2AEC9AEB6AE863088D1
-:1037F000301AAEA8AE9AE769001BE768001A089C69
-:1038000068680A9B5D184888F10900182FF9EFDCF9
-:10381000C008F15900180A9CF01F000C0E9CD83209
-:103820008000D318000080D48003B5948003B6A034
-:1038300080039D9C800094C48003B5DC8003B71690
-:103840008003B58D8002E7368000D13CD4211694E8
-:103850001896189B1497089CF01F00541895E08147
-:1038600000DF09890998B168F1E9118809A9F1E92E
-:10387000108809B9FC1AE000F3E810081099E6195D
-:10388000F0001439E08000CC5808E08000C9301BFB
-:10389000089CF01F00475C5CEA0C1800C0545807F5
-:1038A000E08100CBCC184C39EBDCB008EA081503FA
-:1038B0000A18F20800282F0870095809F9B9000100
-:1038C000F1F90A004BB9EA0815030A18F2080028B2
-:1038D0007048F0C900015819E088000F4B68201D9E
-:1038E0001AD8E06803A51AD84B484B5C1AD8F01FC9
-:1038F00000352FCDC00858185F0858075F09F3E856
-:103900001008C041E06400FFC078089B0C9CF01FC9
-:10391000002EE9DCC0085807E08000854A5AEA0911
-:1039200015030A19A369F409000870485828C0B1A2
-:103930002F890E9BF40900090C9CECCAFFD1F01FE3
-:103940000023C6B85818C6E110990E98905B904AAB
-:10395000F40B1900C111700A580AC0E04968201D13
-:103960001AD8E06803C41AD84998495C1AD8F01FDD
-:1039700000152FCDC008F13A000CF20A1800C05112
-:1039800070085808CE41C51890CB300A303CF01F63
-:1039900000111896C4F00E9BF01F000F5C5CC1F084
-:1039A0000C9CF01F000EC468800125588001301463
-:1039B000000073548003B5948003B6D480039D9CAB
-:1039C000800094C48001370C80012F088003B6FC6E
-:1039D0008000D3188000CF988000D13C306CF01F5D
-:1039E000001AC170300899169908EA081503F00505
-:1039F00001054968F00500256A045804C07008985C
-:103A000068045804CFD1910CC0288B0C089CD82294
-:103A10000C9CF01F000F089C5C5CD822E06C00F648
-:103A2000D822089C5C5CD8220E960E9CF01F0009E0
-:103A3000CD6B089C5C5C4888F10900242FF9F15992
-:103A40000024D8228000C9D4000073548000D13CE7
-:103A50008000CD1E000080D4D421202D169618970A
-:103A6000149531CB0C9CF01F0027C0804A68E06C95
-:103A700000FE90592FF9B059C4180E9B0A9CF01FF4
-:103A80000023C3410B890B98B168F1E911880BA998
-:103A9000F1E910880BB9FC1AE000F3E8100810995E
-:103AA000E619F0001439C0F13019BAA935E9BAC9DC
-:103AB000F3D8C207BAF8BAD9A988BABCBAE8FAC921
-:103AC000FFFEC1586E1912586E291268C0906E38E8
-:103AD0005808C041E06C00FCC118EEC5FFF40C9A18
-:103AE0000A9B0E9CF01F000AC08848A90C9B0E9CE4
-:103AF000EECAFFD1F01F00085C5C2FEDD822000059
-:103B00008000CDD4000080D4800125588001384C3D
-:103B10008003B58D80012F0878983019B0895EFC3C
-:103B2000D4217897EF380024EF390025F0091800E8
-:103B3000C021D82AEE080028201D701630086C1904
-:103B40008CCA8CDB20EA1AD620EBF2CCFFF2F01FF5
-:103B500000182FED587CC0F0581CC0310C95C138AE
-:103B6000EF3800242FF8F1D8C0030C9CEF68002434
-:103B7000F01F0010E06C00F4D8228ADB6A1CF01FF2
-:103B8000000E6A055805CFA1EF3800242FF8F1D8B0
-:103B9000C0030C9CEF680024F01F00064878E06C1E
-:103BA00000F290092FF9B009D82200008001933467
-:103BB0008000D13C80013F7C000080D4D421204D86
-:103BC0001896F01F002D5806C5306C955805C50095
-:103BD0000B885808C4D0E0680600300ABA68E06B69
-:103BE0000600303CF01F00251897C3F03008FACBD0
-:103BF000FFF4AA88781CF01F00229A6B580BC35060
-:103C00005C7BFAC8FFF2FAC9FFFCFACAFFF86E1C27
-:103C1000F01F001C586CC2606E18402B101B40181F
-:103C20005C5B0E9C100B5C7BF01F001749789019B1
-:103C30002FF9B0196E19F338001BF339001AF1E9A6
-:103C40001088E0690800F2081900C060E069080601
-:103C5000F2081900C0716C480C9B0E9C5D185C5CEE
-:103C6000C0400E9CF01F000A0C9CF01F000A2FCDD4
-:103C7000D822000080013FA08000D31880013F5867
-:103C8000800192DC8000D210000080D48000D13C02
-:103C900080013B20D4211897580CC0E149B8201D61
-:103CA0001AD8E06801491AD8499849AC1AD8F01FC7
-:103CB000001A2FCDC008499899983778F9680036CE
-:103CC00036C8F9680037496899584968189B996857
-:103CD000495CF01F0016496CF01F00163628EF688B
-:103CE00000353068EECCFFD1EF68002EF01F0012D7
-:103CF000581CC040E06C00F4D822E06805DC300CB1
-:103D0000EF58002CD82200008003B71C8003A13894
-:103D100080039D9C800094C40000746C80013A581C
-:103D200080013D5880013B1880013E6880013D388C
-:103D300080018F4480019128D40116985C7A189BE9
-:103D40002F29109C5C79F01F00045C7CF9BC00FFFB
-:103D5000D80200008000CEC4D42131B918977898D9
-:103D6000965AF20A1900E08B0005E06C00F4D822A4
-:103D7000F1390025F13C0024F2CAFFFFF5DAC00357
-:103D8000183AC041E06C00F2D822F16A0025F0092F
-:103D90000028169C911B3F26F01F00050E9CF01F6B
-:103DA0000005EC0C1800CFB0D82A00008000CD1E12
-:103DB00080013B20D42130061897E9DBC01030A5E4
-:103DC000C138EE060708201D48BC1AD8F01F000BAA
-:103DD0002FED5806C080EC050C085809C041488CEE
-:103DE000F01F00062FF60836CED5486CF01F0003F2
-:103DF000D822000080037AF0800094C48003B76862
-:103E0000800384D448CD48D0E3B00001D55348C0E6
-:103E100048C10230C06248C2A505A1240230CFD3F8
-:103E200048A048B10230C06230023003A122023003
-:103E3000CFE3488F000100008003760000000008F7
-:103E4000000009B88003F480000009B800008CC8A5
-:103E500080008EDCD4013018F96800087808580812
-:103E6000C030781C5D18D802D4014869930C931BAC
-:103E7000F33800085808C040129CF01F0003DA0A0B
-:103E80000000749880013E54D421201D1895169688
-:103E90001494300B30CA49DCF01F001D300B49DC94
-:103EA000F01F001D300B49DCF01F001D497B49DC71
-:103EB000F01F001D1897581CC0400E9C2FFDD822E3
-:103EC000F01F001A1897581CCF910C9B0A9C49862A
-:103ED0008D07F01F00181897581CC04030088D0837
-:103EE000CEDB30088D08F01F00141897581CCE61E7
-:103EF000FACBFFFD302CF01F0011F9B701FFFBF8E2
-:103F00000803E9F80A00CDAB00007498800091D056
-:103F100080013F8C80018F3080013F3C80019F6099
-:103F200080013E54800144588001440C0000749488
-:103F300080018F488001443080014110D401169CDB
-:103F4000580BC041F01F0004D802300B301CF01F8A
-:103F50000002D80280014110D4014879F3380008EA
-:103F60005808C021DC0A3008F3680008F01F00037D
-:103F7000DA0A00000000749880014284D4015C7B5E
-:103F8000F01F0002DA0A00008001433CD401169CB5
-:103F9000F7DAC010F01F0002D80200008001433C95
-:103FA000EBCD40C0203DF01F00164969F3380008F2
-:103FB0005808C04072085808C0402FDDE3CD80C0CB
-:103FC000E0680100FAC6FFF4E06C01000CE8F01FA5
-:103FD000000E0C9B1897F01F000D9A5B580BC0A0A9
-:103FE0005C7BFAC8FFF81A99FACAFFFC0E9CF01F16
-:103FF00000080E9CF01F0007CE1B0000800140A4AB
-:10400000000074988000920080013F58800192DC8B
-:10401000800091E8D40148583019701CF1690009FA
-:10402000700A5D1AD8020000000074A8EBCD40CCE5
-:10403000206D49A6FAC7FFF46C2E8F2EECE200002B
-:10404000EEE3000016961093FACEFFF0580CC22053
-:104050007C08FC1C8000F1EC100BF4081509BBB8BF
-:10406000F1E611C812481648301C9D08F01F000CDC
-:104070000E9C30CA1A9BF01F000BFB38000AA68862
-:10408000FB39000B300CA699F01F00052FADE3CDD6
-:1040900080CC7C0BCE3B00008003B774800075B4ED
-:1040A00080007534EBCD4080201D4987EF38000833
-:1040B000EDB80000C071EF3900093008F0091800B0
-:1040C000C0402FFDE3CD808030091A98129B129CCE
-:1040D000305AF01F000F3FF91B88F2081800CF205C
-:1040E0001B98EDB80001CEE13008301C109B302940
-:1040F000E06A00F0F01F000630186E1CEF6800093F
-:104100006E095D19CDFB0000000074A88001402CF1
-:10411000EBCD40C0201D301AF40C1800C1B0C08394
-:104120003028F00C1800C2602FFDE3CFC0C01A97F2
-:10413000300630091A98E06A00F1129B301CF01F1B
-:1041400000161B98EC081800CF51300C2FFDE3CD62
-:1041500080C018961A9730191A98E06A00F1300B4F
-:10416000129CF01F000D1B98EC081800CF51300C6A
-:10417000CEEB48A8F1390008F9D9C001F7FA1E00C2
-:10418000F9BC0100F9B8005AF7F80E002FFDE3CD95
-:1041900080C000008001402C000074A8EBCD406876
-:1041A00048F516961893AA4B301CF01F000E0A9C77
-:1041B000310A300BF01F000C069BF5D6C010300CF6
-:1041C000F01F0009304A300B488CF01F0007300CFC
-:1041D000F01F00040C9CE3CD80680000000002107A
-:1041E000800075B4800075348003B780EBCD40400B
-:1041F00020ED30083009FAE90018FAE90000FAE980
-:104200000008FAE9001049BBFAC6FFD4762A8D2AC5
-:10421000F6E80000301CECE90000F01F0017320A3D
-:10422000300B1A9CF01F00150C9C30CAFACBFFE033
-:10423000F01F0012300CF01F00103019FB38002A5C
-:10424000F2081800C0503FFC2F2DE3CD804048C835
-:10425000F1390008F9D9C001CF8030083039304A2F
-:10426000109B301CF01F00072F2DE3CF8040000073
-:104270008003B784800075B480007534000074A892
-:104280008001402CD42130094A881695F169000933
-:104290001896320BF01F00268C085CC82FE8F7D860
-:1042A000B010AA0BEFDCB010F6C90007E06805F902
-:1042B000F0091900E08B00300D890D98F208180004
-:1042C000C220F6071900C182E0640200F9D7C010CD
-:1042D0005C7B181BEC0C000CE04B0200E80B17B0E9
-:1042E0005C7BF01F00138A0B0E0CEFDCB010EE0BA2
-:1042F0001900FE9BFFED48F83009118AF20A1800F8
-:10430000C0D1D8220DA8F2081800CDC10DB8F2080E
-:104310001800CD813008AA08D822F5DBC010486CFF
-:104320000C9BF01F0006D822000074A88001419C5D
-:10433000000074A48003B76C8001447CD4314A38F7
-:1043400018921695118A3009F20A1800C3615805AF
-:10435000C33049F83004F0C0FFF4E0610200C22825
-:10436000E06602000C970C93301CA006F01F0019A9
-:10437000300B497C314AF01F0018E404000C0E9AFF
-:10438000300BF01F0015304A300B494CF01F001263
-:10439000300CF01F0010EA0601080604EBD8B0103C
-:1043A000C0B0E2051900FE9BFFDDEDD5B010EFD6E1
-:1043B000C0100E93CDABD832F5DBC010189B488CE3
-:1043C000F01F0008CC5B0000000074A4000001FC9A
-:1043D000800075B4800075348003B7808003B770A7
-:1043E0008001447CD401201D3009301C1A98E06AF9
-:1043F00000F5129BF01F0004314CF01F00042FFD4C
-:10440000D80200008001402C800075D2D401F01F3A
-:104410000007F01F0007C03030CCD802F01F0003A7
-:10442000F01F0003CFA1DA0A800143E4800141ECD0
-:10443000D401314CF01F0006F01F0006C03030CC14
-:10444000D802301CF01F0004DA0A0000800075D288
-:10445000800141EC80007618D4014878910C911BC2
-:10446000F0CCFFF8F01F0005F9BC010CF9BC00010D
-:10447000D8020000000074A8800076385EFCD703E4
-:10448000EBCD40F849C56A096A181039C2F08B0CA7
-:10449000EAC7FFF0EAC6FFF4EEC30010EAC4FF70FB
-:1044A0000F89EDB90000C091EDB90001C0616C0940
-:1044B0006A081039E08800082F072F060837CF1147
-:1044C000E3CD80F86E19300B169C5D190F883FDA2A
-:1044D000F1EA0009EDB80002C0716609EEF8FFF8D4
-:1044E00012088D08CEABAE89CE8B5809CD118B1C2E
-:1044F0008B0CCCFB000074B8EBCD408048CE1897F5
-:10450000300AFCCBFFF0F408150417892F88FC084B
-:10451000000CEDB90000C0512FFA2F0B588ACF4183
-:104520003018F96800088F0AE3CF9080000074B853
-:104530002FFC4849A56C18091388A1D8B2885EFCE5
-:10454000000074B82FFC4848A56C30091808B089E1
-:104550005EFC0000000074B8EBCD40E0189E14979C
-:104560001295587BE08B002C496AF6C8FFFFA568BE
-:10457000F408000C1989EDB90001C1F0F608150422
-:104580001296F4080008A1B6F60915012FF9F409EE
-:10459000093E740AB8869157FC0A000A913A5805F8
-:1045A000F9BC0001F9B90104EDD9E138F9F81E00B0
-:1045B000F9BC0101E3CD80E0E3CF80E0E3CFC0E0D0
-:1045C000000074B848387019700C121C5EFC0000B2
-:1045D000000074B85EFC300899085EFC1899780CED
-:1045E000580CF9B80001F3F80A005EFC300899088D
-:1045F0005EFC300899085EFC5EFC5EFC5EFC5EFCC6
-:10460000D401580BC110F80B000B300A487E7C090E
-:10461000F40900092FDAF208141FB98810091019DB
-:1046200018C9163CCF51D802000074B85EFD5EFF79
-:104630005EFF5EFF5EFF3FDC5EFC78082FF89908A6
-:104640005EFCD401780820189908C020D80A5D1BA8
-:10465000DA0A301899085EFCD401F01F0002D80273
-:1046600080016D6CEBCD406048784889F5DBC01067
-:104670001895189B7006720C5D160A9CF01F0004BA
-:10468000E3CF906000007540000074B4800091E8B2
-:10469000D401E06A0088300B485CF01F0006F01F70
-:1046A00000064868300C9118910CD802000074B8CC
-:1046B000800091D0800146C000008B545EFCD7037F
-:1046C000D401F01F0011F01F0011301B4909169C86
-:1046D000490AF01F00114919491A301B303CF01FDC
-:1046E000000EF01F0010300A301BE06C00F0F01FCD
-:1046F000000EF01F000E300A302C149BF01F000C2F
-:10470000D80A0000800148C0800147888003B79024
-:10471000800146BC800148548003B794800157A4AF
-:104720008001499C800147E0800149F480014730C5
-:104730004828F00C092B5EFC00007548EBCD40E0EA
-:104740004905189716966A085808C0205D1848E869
-:10475000F007032C580CC061C088F0061800C09008
-:104760002F8C19885808CFA16A085808C080C00843
-:1047700078193028F0091800FE9BFFF8E3CD80E09F
-:1047800000007544000075485EFCD703EBCD40FC8B
-:104790004935189630120A94EAC3FFF46A0858089B
-:1047A000C0D068385808C19030185806CF805816C5
-:1047B000C0305808CF40E3CD80FC48976E28701970
-:1047C000703C700B5D196E2870296E188F29103996
-:1047D000EFF20A003008CEAB0697CF1B000084B47E
-:1047E000EBCD40C018961497580BC24049789009F9
-:1047F000F6091900E088001BF60B00184949F20879
-:10480000002C781A74085808C171741E7428103E60
-:10481000C1507C283009951895099D369D07FD6B80
-:10482000001078089D18E3CD80C0307B305CF01F0D
-:104830000009E3CD80C0741ECEDB306B305CF01F0E
-:104840000005E3CD80C00000000002200000755C80
-:104850008001473CEBCD408049281497129E581B9D
-:104860005F8A9009F80919005FB81468C130F80C24
-:10487000001AF60B0019F4CCFFFF48BB48B8F60A43
-:10488000002AF0090029952EF60C09299507E3CD99
-:104890008080302B305CF01F0006E3CD808000006C
-:1048A000000002200000755C000084B48001473CD9
-:1048B000D401307B305CF01F0002D8028001473CFD
-:1048C000EBCD404030084AB9B2884ABA940858083B
-:1048D000C4D04AA95C784AABF00800184A9EA36885
-:1048E000300C2F88F6CAFFF4F20800082F89930CC9
-:1048F000F34AFFFCF34EFFF82F491039CF91F6CE63
-:10490000FFE84A1A49EB301C970C972A971A14981B
-:10491000F4C9FED42EC8F148FFF41238CFC1F54ACD
-:1049200001342F4BF4CAFEC01C3BCEF1E06A00807C
-:10493000300B496CF01F00164948F0C9FF902F0852
-:10494000F148FFFC491A1238CFB130064918F54634
-:10495000007C910A9116310A0C9B48FCF01F000C58
-:1049600048E80C9C9106E3CD8040485BCC9B00005E
-:1049700000007598000002200000755C000084B4FF
-:10498000800148B0000082340000759C800091D006
-:1049900000007630000076200000761C4848485918
-:1049A000485A91099119913A912A5EFC000002241B
-:1049B000800149D4800149EC48484859485A911926
-:1049C0009109913A912A5EFC00000224800149D4A9
-:1049D000800149EC48494858311AEA1A4000143C11
-:1049E0005E085E19800149D480014A0C481C5EFCB7
-:1049F000800149ECD4013019300A303BFC1C4000E6
-:104A0000F01F0002D8020000800186C8EBCD408074
-:104A10004B373099EA194000123CC310E088001F60
-:104A200030B9EA194000123CC2A0C4233139EA1956
-:104A30004000123CC500E069078AEA198000123C78
-:104A4000C241761CF01F0027300A4A77149B314C74
-:104A5000F01F00260E9CE3CD80803019EA1940003B
-:104A6000123CC320E08800153079EA194000123C5E
-:104A7000C0603089EA194000123CC0713019300A18
-:104A8000303BF01F001B49B70E9CE3CD8080FC1922
-:104A90004000123CCFA130194978300AF149004456
-:104AA000304C149BF01F00110E9CE3CD8080301918
-:104AB000300A303B30ACEA1C4000F01F000D48D7F4
-:104AC0000E9CE3CD8080302B300CF01F000C0E9C30
-:104AD000E3CD808048470E9CE3CD808080014A0C66
-:104AE0008001DA2C800149D480014658800186C8B3
-:104AF000800152F0000087F480018390D401201DD2
-:104B00001A9CF01F0008C07040085818E088000682
-:104B1000F01F00052FFDD802F01F00042FFDD80262
-:104B200080015F4480015EDC80015EB4EBCD40F823
-:104B3000201DFEF805EA189716951496103AC3A0A2
-:104B4000FEF805E0103AC610FEF805DC103AC06029
-:104B50000C970E9C2FFDE3CD80F8E068018CEA18DD
-:104B60008000103CE08000F7E068078AEA188000C7
-:104B7000103CE08000ADE0680186EA188000103C3F
-:104B8000CE8176170E9CF01F0169F01F0169C0915C
-:104B9000FEF805A0EEEA0000F0EB00006E29912976
-:104BA0000C97FEFA0592300BFEFC0590F01F016495
-:104BB000CD1BF01F015F1894C4D1E0680184EA188E
-:104BC00080001037E0800185E08B00D2E0680107AB
-:104BD000EA1880001037E08001A0E0680183EA183D
-:104BE00080001037CB616A170E9CF01F0156E080E1
-:104BF0000230FEF905523048F34800440E9B334C16
-:104C00000C97F01F0152CA6BFEF4053CE0680112DC
-:104C1000EA188000E8F300F8103CC540E08B006320
-:104C2000E0680107EA188000103CE08000F7E068C7
-:104C3000010DEA188000103CE080010DE0680105DC
-:104C4000EA188000103CC851761C1497F01F0140F0
-:104C5000C81BFEF304F2E0680188EA188000E6F45D
-:104C600000F81037E08001B0E08B00ABE068018312
-:104C7000EA1880001037E080018BE0680184EA18B0
-:104C800080001037E080016EE0680107EA188000BC
-:104C90001037FE91FF5F6A18303CF13B000BF01FAC
-:104CA000012D3019300A303B30CCEA1C4000F01F97
-:104CB000012A300AFEF70470149B301CF01F0127F4
-:104CC000C49B761C1497F01F0126C44B6A1CF01F6E
-:104CD0000125300AFEF70490149B314CF01F011F90
-:104CE000C39BE068018AEA188000103CE08000CB9A
-:104CF000E068078AEA188000103CCE90E068011551
-:104D0000EA188000103CFE91FF2576150A9CF01FE2
-:104D100001170BC93048F0091800E08001BBE08B97
-:104D2000019B3008F0091800E08001BF6738301996
-:104D300011EAF20A1800E08001DD0A9CF01F010C64
-:104D4000FE90FF08300A0C97305C149BF01F0103A3
-:104D5000C01B76170E9CF01F0107F01F00F5C4F171
-:104D60000E9B33DC0C97F01F00F9CF4AE068018AF4
-:104D7000EA1880001037E08000BDE068078AEA1872
-:104D800080001037E0800099E0680188EA18800010
-:104D90001037FE91FEDF6A170E9CF01F00F7C0A0CF
-:104DA000F01F00F63069FEF8039EFEF60376F14927
-:104DB00000440E9B336C0C97F01F00E4CCBAE06803
-:104DC000018EEA1880001037E08000B7E068078A9B
-:104DD000EA1880001037FE90FF7BE068018AEA182D
-:104DE00080001037FE91FEB66A160C9CF01F00E49E
-:104DF0001897E0800114FEF7032ACACA3099FEF81A
-:104E000003460C97F1490044FEFA032C300BFEFCDC
-:104E10000372F01F00CBC9EA76150A9CF01F00DA76
-:104E2000302B169CF01F00D9FEF702FCF01F00C0CB
-:104E30001896E08100DD0A9B337CF01F00C40C9AB9
-:104E40003019303B30ECEA1C4000F01F00C3FE9FDD
-:104E5000FE8276160C9CF01F00CE302B304CFEF7F5
-:104E600002C6F01F00CAF01F00B2E08000EC30194B
-:104E7000300A303B310CEA1C4000F01F00B7FE9FA7
-:104E8000FE6A76150A9CF01F00BE1897E08000BAF3
-:104E9000300A302C149BF01F00B13078E9480044F0
-:104EA000F01F00A3FE91FE560A9B0C9733BCF01F27
-:104EB00000A7FE9FFE506A1CF01F00AA089AFEF78A
-:104EC00002A6089B314CF01F00A5FE9FFE446A1706
-:104ED0000E9CF01F00B0C060FEF9026C3058F34821
-:104EE00000440E9B335C0C97F01F0098FE9FFE332E
-:104EF0006A170E9CF01F00A2C0803069FEF80248BD
-:104F0000FEF60220F14900440E9B33BC0C97F01FC3
-:104F1000008FFE9FFE206A1B337CF01F008C089AD6
-:104F2000FEF702043019303B30ECEA1C4000F01F61
-:104F3000008AFE9FFE106938301911EAF20A180043
-:104F4000FE90FE086A1CF01F0094FE91FE03189A62
-:104F5000189BFEF70246301CF01F0080FE9FFDFBF1
-:104F60006A150A9CF01F008B1897E08000874F2A73
-:104F7000300BFEFC022AF01F00721897E08000AE92
-:104F800030580C97E7480044FE9FFDE56A150A9CDF
-:104F9000F01F006C1897E08000956938301911EA0D
-:104FA000F20A1800FE91FDD64E3A300B4FDCF01F8E
-:104FB00000641897E08000A930480C97E748004447
-:104FC000FE9FFDC96A160C9CF01F006B1897C2600B
-:104FD000F01F006A30684D37E7480044FE9FFDBB74
-:104FE000EACBFFFC301A30DCF01F005C3019300ACD
-:104FF000303B30CCEA1C4000F01F0057FE9FFDAB59
-:10500000F01F004BFE90FF4E0E9A3019303B30CC13
-:10501000EA1C4000F01F0050C44B303B30CCEA1C6F
-:10502000400030190E9AF01F004C0DEB304CF01F71
-:1050300000490E9A0E9B301C4BB7F01F0048FE9F94
-:10504000FD8A0C9B33ACF01F0041FE9FFD844D3662
-:10505000FE9FFDD63068F0091800FE98FE693828DA
-:10506000F0091800FE91FD76300A0C97325C149B13
-:10507000F01F003AFE9FFD6F189A303B30CCEA1CBF
-:1050800040003019F01F0034EB3B000D303CCD0BDD
-:105090003008FACBFFFC0C9716F8301A30ECF01FF2
-:1050A000002FFE9FFD580A9CF01F003FFE90FD520E
-:1050B000300A0C97306C149BF01F0028FE9FFD4BAC
-:1050C0000BCB302CF01F00230E9A0E9B301C4B375D
-:1050D000F01F0022FE9FFD3F189A303B30CCEA1CA7
-:1050E00040003019F01F001CEB3B000D301CCA0BB8
-:1050F00048D7F01F000FFE91FF750A9B338CF01FFD
-:105100000013FE9FFD28189A303B30CCEA1C40006B
-:105110003019F01F00110BCB301CC8AB800152F0CE
-:10512000800151A8800156388001D9AC800185E406
-:105130000000763880018E9C8001E03C8001EF20E9
-:105140008001E88C000087F480016D6C8001E2D45E
-:1051500080018390800186C8800146588001E00864
-:105160008001DA2C800149D48001E2FC80016D4A83
-:105170008001D9C88001E4D080014AFC8001E4307C
-:105180008001E0D48001D9FC800183A08001D9E8AE
-:105190008001E81C8001E3DC80014A0C8001E7B853
-:1051A0008001E58880016D48EBCD40C04C96189792
-:1051B0003138EA184000103CE0800087E088002485
-:1051C000E068010DEA188000103CC150E088004002
-:1051D000E0680115EA188000103CC0D0E068018A40
-:1051E000EA188000103CC070E0680112EA188000E4
-:1051F000103CC3910E9C4B7AF01F003718960C9C04
-:10520000E3CD80C03018EA184000103CC510E0889B
-:10521000002E30D8EA184000103CC1003108EA18CE
-:105220004000103CC3F030C8EA184000103CC1B147
-:10523000301C302BF01F00290E9C3019300A303BF7
-:10524000F01F00274A760C9CE3CD80C0E068010582
-:10525000EA188000103CCCF0E0680107EA188000F2
-:10526000103CCC900C9CE3CD80C0E04C008ACC304C
-:10527000FC184000103CCF71307949B8300AF14930
-:105280000044149B302CF01F0019300A30FC149B92
-:10529000F01F0016302B300CF01F00100C9CE3CDDB
-:1052A00080C0303C302BF01F000D0E9CCC7B48E9B9
-:1052B0007298ABC8300A9398149B303CF01F000BD7
-:1052C0000C9CE3CD80C048A60C9CE3CD80C00000C0
-:1052D000800151A880014B2C800183A0800186C8E9
-:1052E00080015638000087F480014658800149D477
-:1052F000D421FACD00E4FEF602E21898FEF502E0B1
-:10530000ECF700F83109EA194000123CE08000D5C2
-:10531000E08B003630A9EA194000123CE08000C260
-:10532000E088005330C9EA194000123CE08000A830
-:10533000C6A330D9EA194000123CE080011930F9C7
-:10534000EA194000123CC3D1FEFA0298300BFEFC71
-:105350000296F01F00A61896C341189BFEFA02841D
-:10536000FEFC028CF01F00A1304C301BF01F00A18E
-:105370000C9A0C9B301CF01F00A0C238E06901841D
-:10538000EA198000123CE0880011E0690188EA19FE
-:105390008000123CC100E08B00A5E0690186EA199B
-:1053A0008000123CC0E1C078E0690183EA19800006
-:1053B000123CC363109CFEFA0226F01F0090189561
-:1053C0000A9C2C7DD8223079EA194000123CC7C0D3
-:1053D000E08800973089EA194000123CE08000CF55
-:1053E0003099EA194000123CCEC14FEA300BFEFC66
-:1053F000020EF01F007E1894E08000CF3048ED4888
-:105400000044CDFB4F7A300B4FECF01F0078CD916C
-:10541000189A189B4FC5301CF01F0077CD2BE06900
-:105420000107EA198000123CCC60E0690115EA1915
-:105430008000123CC1203139EA194000123CCC11E5
-:10544000300A301C149BF01F006C300A304C149B47
-:105450004EE5F01F0069CB5B6F38301911EAF20A94
-:105460001800C72076160C9CF01F00690C9CF01FDA
-:1054700000694E98580CF0051710CA3B303B3019A4
-:10548000300AF01F0066302B303CF01F005A300A03
-:10549000301C149BF01F00584E150A9C2C7DD822FE
-:1054A0004D0A300B4DFCF01F00511897C3B0305817
-:1054B000ED480044C86B303B3019300AF01F0057EC
-:1054C000302B304CCE3B6C9BE21B0040C2414C5A0F
-:1054D0004D5CF01F0046C9D03028ED480044C71B82
-:1054E000E069018AEA198000123CFE90FF65E069DC
-:1054F000018EEA198000123CFE91FF64C5CBFC19B5
-:105500004000123CFE91FF5E300A149B149CF01F79
-:10551000003AC57B300A4BC5149B301CF01F003687
-:10552000C50B30481A9BBAE8336CF01F00400E9A46
-:105530003019303B30ECEA1C4000F01F00384B893A
-:105540004BB89119C3EB76170E9CF01F00310FC9B1
-:105550003068F0091800FE9BFF354B15F01F003531
-:10556000C2A10E9B338CF01F0031C2BB4AC530195B
-:10557000300A303BF01F0029C24B49AA300B4AAC1D
-:10558000F01F001ACAA1304849F5BAC81A9B334C1B
-:10559000F01F0026C16B306AEECBFFE2FACCFFFCB5
-:1055A000F01F002530481A9BBA68335CF01F001FBB
-:1055B000089ACBFB3019300A303B30CCEA1C400053
-:1055C000F01F00160FCB305CF01F000A300A301CB1
-:1055D000149BF01F0009CF5A000087F4800152F09D
-:1055E00080018E9C8001E7548001EF208001E03C27
-:1055F000800183908001465880014B2C8001E58812
-:105600008001DA5480014A0C800149D48001E2FC17
-:1056100080016D48800151A8800186C880015638FC
-:105620008001E7B88001EA8C80016D6C00000224E3
-:10563000800185E48002E736EBCD40804C9731084D
-:10564000EA184000103CC6F0E088001DE068018CBC
-:10565000EA188000103CC3B0E088002EE068019397
-:10566000EA188000103CC440E0680194EA18800009
-:10567000103CC2714BC7761CF01F003C0E9CE3CD62
-:10568000808030C8EA184000103CC400E088001D4B
-:1056900030D8EA184000103CC21030E8EA18400048
-:1056A000103CC0F14B2A300B4B2CF01F00330E9CEA
-:1056B000E3CD8080E0680186EA188000103CC0706D
-:1056C0000E9CE3CD8080E04C008ACFB14A5AF01F97
-:1056D000002B18970E9CE3CD8080F01F00294A4ACA
-:1056E000300B4A8CF01F00240E9CE3CD8080761C8A
-:1056F000F01F0025F01F0025C0514A5B33CCF01F7E
-:10570000002549970E9CE3CD80804A39731858983C
-:10571000CD803098496AF3480044300B49FCF01FB3
-:105720000016CCFB49C973185888CCB03088F348B0
-:105730000044F2F900F87338301911EAF20A18003F
-:10574000C0A03019300A303B30DCEA1C4000F01FAA
-:105750000014CB7B486A300B492CF01F0007CB1B91
-:105760008001563880014A0C8001DA4680018E9C07
-:105770008001E03C8001EF2080014B2C80015E34F1
-:105780008001DA448001DA48800185E4000076383F
-:1057900080016D6C000087F48001E0D4800186C830
-:1057A0008001E094EBCD40F84A37189416956E18B6
-:1057B0006E090E930E96C118300B301CEA1C400087
-:1057C0005D19300B6C39FC1C40005D196C388D285C
-:1057D0006E186E091238C2001039C190300B301C9F
-:1057E000EA1C40005D19300B6E19FC1C40005D196D
-:1057F0006E188F086E296E381039CDF10A9B089CFF
-:105800005D19873C6629123CCF71CE3B0A9B089CF0
-:105810005D198F1CCF0B5805C0706A085818C060FE
-:105820000A9CF01F0006E3CD80F8EACCFFFCF01FD5
-:105830000004CF7B00000224800091E88001D3A8FF
-:105840004878F14C00F8580CF9F81004F9B9010146
-:10585000F1D9E108F9F81A045EFC0000000087F4B1
-:10586000EBCD40C04948FAC6FFF4F0F700F4580702
-:10587000C051C1E8F8C70008C1B0EECAFFDC740827
-:10588000204D502815C9FB69000C15D8FB68000D88
-:105890006C0850080DC9BAC90DD8BAD8F01F000756
-:1058A0002FCD580CC0516E2C580CCE5118970E9C11
-:1058B000E3CD80C0000087F480018898D40149D9E5
-:1058C000F2F800F41838C0B078285808C2B0784808
-:1058D000201899482F8CF01F0018D802580CF9F89E
-:1058E0001004F9BA01FFF1DAE108F9F81A043008F6
-:1058F000F34800F448FA78285808C180F0C9000835
-:10590000F54900F4CE8072482FF89348F4F900F47A
-:105910005809CE10724820182F8C9348F01F0006AB
-:10592000D80278385808CD41D802F54800F4CD3B6C
-:10593000000087F48001F2A0D4014989F2F800F058
-:105940001838C0A078085808C240784820189948EC
-:10595000F01F0013D802580CF9F81004F9BA01FF2F
-:10596000F1DAE108F9F81A043008F34800F0780A8F
-:10597000F34A00F0580ACED074482FF89548487979
-:10598000F2F900F05809CE50724820189348CE1B07
-:1059900078185808CDB1CDFB000087F48001F2A043
-:1059A000EBCD40801897580AC2C07858F608010815
-:1059B0001438E08800274948F0FB00F8580BC190E4
-:1059C000F8CAFFDC15D8204DFB68000D740950297A
-:1059D00015C8F6CAFFDCFB68000C7408500815C92E
-:1059E000BAC915D8BAD8F01F00092FCD580CC091EC
-:1059F0000E9CF01F00070E9CF01F0006E3CF908066
-:105A0000E3CF8080000087F48001889880015938B6
-:105A1000800158BCD4214A141895E8F700F05807C3
-:105A2000C27079383006704AC02810976F387049B4
-:105A30001439E08A00086E080E965808CF710E9649
-:105A400010970A37C0D06A085808C0B00A9CF01FE7
-:105A500000145806C1300A9B0C9CF01F0012D8227B
-:105A60006A185808CF416A482FF88B48CF3BE94C59
-:105A700000F078482FF89948D8220A9B0E9CF01F16
-:105A800000090E9CE94500F0F01F00050E9B0A9CE2
-:105A9000F01F0004D8220000000087F48001F2A06B
-:105AA0008001F28CEBCD40C04A48FAC7FFF4F0F613
-:105AB00000F05806C051C3D86C065806C3A06D3814
-:105AC000707C2F4CF8E80000212DFAE90024F8EA58
-:105AD0000008FAEB002CF8E80010FAE90034F8EAC4
-:105AE0000018FAEB003CF9380020FB680044F93953
-:105AF0000021FB690045EEE80000FAE90000EEEA4B
-:105B00000008FAEB0008EEE80010FAE90010EEEAEF
-:105B10000018FAEB0018EF380020FB680020EF397E
-:105B20000021FB690021F01F00062EED580CCC501F
-:105B30000C9CE3CD80C00000000087F48001891038
-:105B4000EBCD40E0205D7608502817C9FB69000CBA
-:105B500017D81697FB68000DF8CBFFE2306A18964D
-:105B60001A9CF01F0034F01F00342FCD580CC05188
-:105B7000300C2FFDE3CD80E06E7C2F4CF8E8000068
-:105B8000212DFAE90024F8EA0008FAEB002CF8E8E5
-:105B90000010FAE90034F8EA0018FAEB003CF93892
-:105BA0000020FB680044F9390021FB6900456D388D
-:105BB000707C2F4CF8E80000FAE90000F8EA0008D1
-:105BC000FAEB0008F8E80010FAE90010F8EA00180B
-:105BD000FAEB0018F9380020FB680020F9390021A1
-:105BE000FB690021F01F00152EED580CCC20320B64
-:105BF000300CF01F00131895CBC0189A0E99491B52
-:105C0000F01F00110BF93008F0091800EDF800132F
-:105C1000F1F90807EBF90E07FACCFFFC6D3818D83C
-:105C20001A9CED45004CF01F0009301CCA3B0000D7
-:105C30008002E73680018898800189108001D8DCD5
-:105C40008001D3EC8001AD408001D3A8EBCD40C0F2
-:105C500049C649D86C09700A1439C05530070E9CE2
-:105C6000E3CD80C0350CF01F00191897CF906C0859
-:105C70002FF8350A8D08300BF01F0015320B300C51
-:105C8000F01F0014EF4C004C1898C16030084929EF
-:105C90008F680E9CF30A017C8F28EF5A001CEF6876
-:105CA000002A8FF88F488F58EF4800408F188F08D0
-:105CB0008F38E3CD80C00E9C1097F01F0008CD0BED
-:105CC000000076440000025880009200800091D0CD
-:105CD0008001D8DC00000260800091E8EBCD4080BC
-:105CE000189778485808E08A0004E3CD8080793816
-:105CF0005808C0402B4CF01F000648697208201855
-:105D00000E9C9308F01F0004E3CD80808001D3A88F
-:105D100000007644800091E8D4014899F2FC00F834
-:105D2000580CC0A07848201899483008F34800F86B
-:105D3000F01F0004D802F34C00F8D802000087F4EA
-:105D400080015CDCEBCD40F84B131894E6F700F8CB
-:105D50005807C060189B0E9CF01F002EC1D1E6F7BB
-:105D600000F05807C4203006C1285806C0706F38AC
-:105D70006D39704A7248103AC064E6F800F80E387F
-:105D8000EE0617106E070E955807C0900E9C089BE4
-:105D9000F01F0020CEB00E9CE3CD80F8F01F001E57
-:105DA00058065F18580C5F0918971069EA0918001F
-:105DB000C201089B306AEECCFFDCF01F0018089B84
-:105DC000306AEECCFFE2F01F00156F3A0899149C80
-:105DD000493BF01F001430080E9C8F088F18F01FED
-:105DE00000120E9CE3CD80F8F01F000B1897CE2B0D
-:105DF0000C9CF01F000E0C9CF01F000D0C9CF01F63
-:105E0000000DF01F00051897CD51CC6B000087F4F2
-:105E100080015B4080015C4C800091DC8001D3EC10
-:105E20008001AD4080015A1480015938800158BC6E
-:105E300080015CDCEBCD40E04905EAF700F458074F
-:105E4000C0D1C158F0C600080E9CF01F000D0E9C7A
-:105E5000F01F000C5806C0B00C976E285808CF31C0
-:105E60000E9CF01F00070E9CF01F00063008EB4848
-:105E700000F4E3CD80E00000000087F4800158BC0E
-:105E800080015CDC580CC04078185B98C110489ABF
-:105E900074991298EDB90001F9BC0101F9BB001029
-:105EA000F3DBE038F5F80A09F9BC00015EFC5EFDA1
-:105EB000000087F4489A7498109CF0091604E21CBC
-:105EC0000002F9BB0110F1DBE138F5F81A09F9B865
-:105ED0000101F3D8E12C5EFC000087F4489A749825
-:105EE000109CF0091604E21C0002F9BB01EFF1DB83
-:105EF000E128F5F81A09F9B80101F3D8E12C5EFCA4
-:105F0000000087F448887099129CA589E21C000261
-:105F1000F9BA0101F3DAE148F9B90101F1D9E12C4B
-:105F20005EFC0000000087F418994868709CE21C31
-:105F30000002F1F8103FF3F81A00F9BC01015EFC11
-:105F4000000087F418994868709CE21C0002F1F880
-:105F50001041F3F81A00F9BC01015EFC000087F45F
-:105F600018984859729CE21C0002F3F81A41F9BCD7
-:105F700001015EFC000087F44839300C7298A7C814
-:105F800093985EFC000087F44839300C7298A5D8CD
-:105F900093985EFC000087F4D401E06A0100300BA6
-:105FA000482CF01F0003DA0A00007648800091D0E8
-:105FB000EBCD40C04A0A18967498109CE21C00026F
-:105FC000C1D0F4F700F85807C1801099E2190020F9
-:105FD000C270A5C8A7A8F4FB00BC95983009497AFF
-:105FE000E06CEA60F01F00163008F0061800C100EF
-:105FF0003018F0061800C040301CE3CD80C0311CC2
-:10600000EECBFFE2306AF01F000FE3CF90C0312CDF
-:10601000EECBFFE2306AF01F000BE3CF90C0A5B8D3
-:10602000F4FB00B89598E06CEA60487AF01F000431
-:10603000CDCB0000000087F480015F7880014558D7
-:106040008001465880015F88D401F01F0002D80209
-:1060500080018040D40148687098E2180002C03185
-:10606000109CD802F01F0003D8020000000087F443
-:10607000800183FCD40148687098E2180002C031A6
-:10608000109CD802F01F0003D8020000000087F423
-:10609000800183D8D431FACD0188E06A0168300BE1
-:1060A0001A9CF01F002CFAC6FE541A901A9CF01F7E
-:1060B000002A581CC03029EDD832FAC5FFF8401824
-:1060C000F0081016EA0800081035C4120A97FAC43E
-:1060D000FE98ECC1FFF8C09840182EA7F0081016E3
-:1060E000EA0800081037C3326C08204D50280DC94B
-:1060F000FB69000C0DD80E9BFB68000D306A1A9CE2
-:10610000F01F0016F01F00162FCD580CCE60EECBFE
-:10611000FFFA310AFACCFE88F01F0010E2E8000016
-:10612000310AE8E90000089BE2E20008FACCFE88A8
-:10613000E8E30008F01F000BCD01189B316A0E9CAC
-:10614000F01F0004009CF01F0008CB6B29EDD83A2B
-:10615000800091D0800160748002E73680018898C9
-:106160008000917C80016054D431FACD018CE06ACA
-:106170000168300BFACCFFFCF01F0050FAC5FE504E
-:10618000FACCFFFCF01F004E581CC03029DDD8327D
-:10619000402858F8E088007FF0081016FAC1FFF494
-:1061A000E20800081031E0820087E06801685018BA
-:1061B000EACBFFF8FAC6FFF002973004FAC0FE946B
-:1061C000500BC0C85804C36040282EA7F008101612
-:1061D0002EA6E20800081037C4926A08204D502805
-:1061E0000BC9FB69000C0BD80E9BFB68000D306AD5
-:1061F0001A9CF01F0034F01F00342FCD580CCE3005
-:10620000ECCBFFFE310AFACCFE84F01F002E400BCF
-:10621000F6E80000310AE0E90000FACCFE84F6E27C
-:106220000008009BE0E30008F01F0028CB005804A2
-:10623000CCC10F89E8091800CC810F98F20818002A
-:10624000CC410FA9F0091800CC010FB8F2081800D2
-:10625000CBC10D89F0091800CB810FD8F2081800C6
-:10626000F9B40100EE041700CB0B5804C2400A9B9E
-:10627000306A089CF01F0013EACBFFF8310AE8CC23
-:10628000FFFAF01F0010FACCFFFCF01F001129DD0F
-:10629000D832F00A1110FAC1FFF4F40A1016E2081D
-:1062A000000C300BF01F00053108E0690168502830
-:1062B0005019C7FB3FDCC6BB800091D080016074E1
-:1062C0008002E736800188988000917C80016054CC
-:1062D000EBCD40C0208DBACBBA8A189B4968709C20
-:1062E000E21C0002C06118970E9C2F8DE3CD80C088
-:1062F0003008FAC6FFF8504850281A99FACAFFFC2D
-:106300000C9CF01F000EC111189740285808C0407F
-:106310000C9CF01F000B404C580CCE70F01F000975
-:106320000E9C2F8DE3CD80C00C9CF01F0007581CE5
-:106330005F07CECB000087F48001E1308001D3A855
-:10634000800091E880018E9CEBCD40C0201D491754
-:1063500018966E9CE21C0002C0412FFDE3CD80C068
-:106360001A9CF01F000DEF4600FCEEF801105808D3
-:10637000C051301C2FFDE3CD80C0EECCFEECEF3AD7
-:10638000011BEF3B011AF01F0005301CCF4B000032
-:10639000000087F4800177A4800162D0EBCD4080BB
-:1063A000201DBA8C48C76E98EDB80001C0402FFD83
-:1063B000E3CF808030181A99300A308B487CF01F68
-:1063C0000008581CCF511B88EF4801202FFDE3CD5A
-:1063D00080800000000087F48003B7A08001776C04
-:1063E000D401201D48B91898729CE21C0002C0E03C
-:1063F000300AF368004C308BFAC9FFFC486C12F885
-:106400003018F01F0006581C5F0C2FFDD80200004A
-:10641000000087F48003B7A88001776CD401203D89
-:10642000BA8C496A749CE21C0002C0312FDDD8028C
-:106430001B8B3038F00B1800E089001DE06832003B
-:10644000EA18312EE069352EEA19312EFAE90004F6
-:10645000F4F800F8F3DBB008300A5808F1F91A0F25
-:10646000308B30181A99FACCFFFCF01F0005581C2D
-:10647000CDE03FECCDCB0000000087F48001776CCD
-:10648000D421206D4A0618976C98EDB80001C040E1
-:10649000300C2FADD822584C5FB8E04C00FF5F198C
-:1064A0001268C0303FECCF6B300814995028169A10
-:1064B0005008189B1A951A9CF01F0014CEA01A9C25
-:1064C000F01F0013400818945808C0401A9CF01F91
-:1064D0000011402C580CC030F01F000F5814CD9103
-:1064E0006C98EDB80007C0C15837E08B000AEE0881
-:1064F000150648A9300A1009089C930ACCBB301C29
-:10650000CC9B0000000087F48001E1A480018E9CF8
-:106510008001D3A8800091E800007648EBCD40C010
-:10652000202D496718966E98E2180002C2103FF8B5
-:10653000FACAFFFEBAF8BAA8BAB8BAC8BAD8BAE85E
-:10654000300BF01F000F6E98EDB80007C0E1583611
-:10655000E08B000CEC081506300A48A9301C100925
-:10656000930A2FEDE3CD80C02FEDE3CF90C0109CB8
-:106570002FEDE3CD80C00000000087F4800164802F
-:1065800000007648EBCD40C0202D49F66C9CE21C03
-:106590000002C2703FF8BAF8BAA8BAB8BAC8BAD8F6
-:1065A000BAE8ECFB00F8580BC260F6CCFFE2303AD8
-:1065B000300BF01F0016FAC7FFFE301CF01F00144E
-:1065C000303B0E9A300CF01F00136C99300B129870
-:1065D000ED4B0110A3D88D98EDB90007C050301CC9
-:1065E0002FEDE3CD80C0E06A010048BCF01F000B36
-:1065F000301CCF7BFAC7FFFE303A0E9CF01F000321
-:10660000CDDB0000000087F4800162D08001651CB2
-:106610008001648000007648800091D0D43120DD74
-:10662000FB690010FB68000CFAC9FFA8FEF7023CEA
-:1066300018956E981696149272307201E218000244
-:1066400072147223C041300C2F3DD832E04B002031
-:10665000E08800043FFCCF9B584CE08B002158DBC6
-:106660005FBA301BFB380010F60818005F09126A89
-:10667000C030580CC1413078FACCFFD4FB680033ED
-:10668000F01F007B3008303C50785058F01F0079E4
-:1066900058D6C070E08B00315856C0303FECCD5B0F
-:1066A00030683019FB680033EF49011CFACCFFCD8C
-:1066B000F01F0071501C1AD31AD41AD1FB38001CD9
-:1066C00004991AD80C9AFB380043FACCFFDC0A9BD9
-:1066D000F01F006A2FCD580CC1B140585808C05067
-:1066E000FACCFFECF01F0066407C580CCAD0F01FBB
-:1066F0000065300CCAAB5906C6C0E0460020CCF19C
-:1067000030283029FB680033EF49011CCD0BFACC4F
-:10671000FFECF01F005D500C40585808C050FACCF8
-:10672000FFECF01F0057407C580CC030F01F0055A4
-:1067300040085818C8915800EFF81009F9B9010835
-:10674000F1D9E138EFF81A093009FB380010F208E6
-:106750001800C051F9D5B008F01F004C6E98EDB884
-:106760000001C0514C18F0F800FC501840185808AF
-:10677000C080FB3A0010FB3B000C089CF01F00445B
-:10678000306A089BEECCFEECF01F0042301AFACBC8
-:10679000FFF4EECCFEE6F01F003FEECCFEE5301A33
-:1067A000FACBFFF0F01F003B3018EF480110FB68F8
-:1067B00000326E9C4AD7EDBC0001C120EDBC000741
-:1067C000C061FB38000C50285845C1E1301CC3DBC8
-:1067D00030483039FB680033EF49011CC68B300864
-:1067E0004ADB1099109A109CF01F002CC3401ADC51
-:1067F0003018FAC9FFCA300A308B4A9CF01F0029B2
-:106800006E9C2FFDCDCBEA0915064A780C9AF0094B
-:106810000007049BEF650026EF560024EECCFFFC3A
-:10682000F01F001C089BEF610036306AEECCFFD8E9
-:10683000F01F00185803C110069B308AEECCFFD21F
-:10684000F01F001440288FF0EF68003830188F08D0
-:10685000109CCFBA6E9CCB3B069B308AEECCFFD20D
-:10686000F01F0012CF0B0000000087F4800177A416
-:106870008001EF6C80017BD88001E2148001D3A8F5
-:10688000800091E880018E9C8001641C800162D0B0
-:10689000800091DC80015E8480016AF48003B798F7
-:1068A0008001773000007648800091D0EBCD40C069
-:1068B000300749A60E98A7682FF7EC08000B76085A
-:1068C0005808C0F10E985847CF714957EF3C004C1B
-:1068D000F01F0014EEFC0100F01F0013E3CF90C086
-:1068E00076F8F6C9FFD2F73C00261AD8F6C8FFD8CA
-:1068F0001AD91AD8F7390036F6CAFFFC1AD9F73870
-:106900000038F7390027F71B0024F01F00082FCDAF
-:10691000581CCD90E3CF80C000007648000087F47B
-:10692000800163E0800163488001661C7808301CA8
-:10693000F80A094C201C106C5EFCD70348787008DC
-:106940005808C0901838C041C078103CC05070B88A
-:106950005808CFC15EFD5EFF0000778C189A48F89A
-:10696000709CE21C00025E0C70A8EDB80000C03004
-:10697000305C5EFC48AC780B583BE089000D300978
-:106980004888F00B003891189109950BF6C8FFFF65
-:1069900099085EFF3FDC5EFC000087F4000077880A
-:1069A0000000776848D972A8EDB80000C1313008FE
-:1069B000780A99D848ABF60A003A741999E974181C
-:1069C000F8C9FFCC910C7808301CF60800389119F2
-:1069D0005EFC305C5EFC0000000087F4000077681D
-:1069E000EBCD40C0189778B95809C18078C893C8D2
-:1069F0006EC891096E3C580CC050F01F000B300857
-:106A00008F3833CA6EA635AB0E9CF01F00080C9B66
-:106A10000E9CF01F0007E3CF80C078C94858911939
-:106A200078B9CE7B800091E8800091D0800183B05E
-:106A30000000778CEBCD40801897580CC180789877
-:106A40005D1848F972095809C051C11872B958093E
-:106A5000C0E01237CFC16E785808C0B06E3C580CF9
-:106A6000C060F01F000830088F588F38E3CF908047
-:106A70000E9C301BF01F0004E3CF90800000778C49
-:106A8000800091E8800169E0EBCD4080496972A8FF
-:106A9000EDB80000C040305CE3CD8080493870091B
-:106AA0001839E08A001E4928F00C00376E09580991
-:106AB000C15072DA580AF3F8000EEFF80A01F3FA3F
-:106AC000000DF3F8100EF5F81A0E72E8129C910AF8
-:106AD000F01F00086E095809CED1E3CF90803FCC5B
-:106AE000E3CD8080000087F400007788000077689D
-:106AF00080016A34EBCD40F81897169614951294DD
-:106B0000109333CCF01F000CC1403008990799B89E
-:106B10009938995899889996994599649973487ABA
-:106B2000301899A8741999C9930CF8C8FFD495180E
-:106B3000E3CD80F8800092000000778CD401202DF6
-:106B4000500A48C972A8EDB80000C040305C2FED73
-:106B5000D80248981A99F00B032A3048FA08000B1B
-:106B6000F01F0006581CF9BC0001F9BC01FECF0B58
-:106B7000000087F4000077488001F1D8EBCD40C0D9
-:106B8000201D4AC618976CA8EDB80000C441580CE7
-:106B9000C3F0789B580BC3C0780A580AC3954A695A
-:106BA000F20A033850085808C061C1A870D85008CC
-:106BB0005808C1601037CFB1F40815036EDA580ACF
-:106BC000F3D8E009EFF8000EF3F80A01EFF8100E21
-:106BD000F5F81A0E400870DA70E9930A6E9B3F9838
-:106BE0008F18580BC0300E9C5D1B6E8B581BC0500D
-:106BF000582BC150580BC0516E2A1A9CF01F000F21
-:106C00000E9C301BF01F000E2FFDE3CF90C02FFD18
-:106C1000E3CF90C0305C2FFDE3CD80C0ECF801B82D
-:106C20000E38CEF130094838F14901B8CEAB00003A
-:106C3000000087F40000776880016B3C800169E008
-:106C4000D40148C9169E72A8F1D8C001C031305C89
-:106C5000D8024898304A76A9F00C032C1ADAF6C804
-:106C6000FFF833CAF01F00052FFD581C5F0CD80237
-:106C7000000087F4000077488001F164D431204D92
-:106C800030084931189650285018FAC5FFF4FAC256
-:106C9000FFF802901A93FAC4FFFCC098E006032A9A
-:106CA000F01F000C0E9B401CF01F000B3049049B92
-:106CB0000A9AE206032CF01F0009304818970A9937
-:106CC0001A9B089C5817CEB02FCDD83200007748B9
-:106CD0008001F1D880016B7C8001F0B4EBCD40E005
-:106CE000201D49356AA8A1A8300A49298BA8149704
-:106CF000930A14984906EC08002C2FF748FA303B09
-:106D0000F01F000F581CC0F10E985887CF5148D87B
-:106D1000300991189109301B1A9CF01F000B2FFDB0
-:106D2000E3CD80E06AA8A1C88BA8CF2B000087F430
-:106D300000007788000077488001692C8001F05CB2
-:106D40000000778C8001695C5EFD5EFFEBCD4080CA
-:106D5000189778785808C030788C5D180E9CF01F12
-:106D60000003E3CD80800000800091E8D4314B1017
-:106D70001895169260095809C58030047258721926
-:106D80000A38F7B400FF5809CFA10891E80C1502A2
-:106D9000F01F00291893C46060075807C2303006FE
-:106DA000C0486E175807C1E06E580A38CFB10E9C24
-:106DB000F01F0022E60609276E485808C0F06E1939
-:106DC0005809EFF80002E1F80A01EFF90001EFF8C5
-:106DD0001002F3F81A026E2891092FF66E17580761
-:106DE000CE415804C1A006953006C0380836C154BB
-:106DF0006A07049C6E686E8B5D18491B0E9CF01F21
-:106E000000112FF62FC56E485808CF100E9C48CBA6
-:106E1000F01F000C0836CED5069CF01F000B029C1C
-:106E2000D8321891029CD83212941291CB0B0000E8
-:106E300000007794800092008001463A80016D4CFA
-:106E400080014642800091E8EBCD4080324CF01F3B
-:106E500000081897C080324A300BF01F00060E9CC5
-:106E6000F01F00050E9CE3CD8080000080009200A2
-:106E7000800091D080014652EBCD40FC18961695CB
-:106E80001494129310924077F01F000AC100995693
-:106E900099359964998799739942487A3008991875
-:106EA00074199929930CF8C8FFFC9518E3CD80FC60
-:106EB00080016E4800007794D431FACEFFDC189739
-:106EC00016901491129310927C157C04580CC26099
-:106ED00078095809C26049A66C085808C051C09882
-:106EE00070185808C0601039CFC13018109CD832C3
-:106EF000F01F0014C13099509931996399859972A6
-:106F00009944300899186C199929930CF8C8FFFC1A
-:106F10008D188F0C3018109CD8323008109CD83245
-:106F200008981AD50499069A029B009CF01F000647
-:106F30002FFD580C5F188F0CCDAB0000000077942C
-:106F400080016E4880016E78EBCD40404856ECCC15
-:106F5000FFF8F01F000530088D168D08E3CD804046
-:106F600000007794800145D6EBCD40807847785A71
-:106F70006E18103AE0880004E3CF8080783B6E0CF6
-:106F8000F01F000B6E285808C0406E1B6E0C5D1879
-:106F90006E3CE04C002BC050300A149BF01F0005E3
-:106FA0000E9CF01F0005E3CF90800000800091DC74
-:106FB00080014658800091E8EBCD40C0203D30086C
-:106FC00018979928990814961A9C308AF01F001176
-:106FD000FACBFFF80E9CF01F00102FED580CC101EA
-:106FE0006E085808C0400E9CF01F000C6E2C580C08
-:106FF000C040F01F000B300C2FFDE3CD80C05806C1
-:10700000FBF81000EDF81A002FFDE3CF90C0000050
-:107010008002E7368001DE6C8001D3A8800091E811
-:10702000EBCD40C0189778185B98C0C0783B580BE0
-:10703000C17078465806C04078685908C050E3CF00
-:1070400090C0E3CF80C0785A590AE08800153FF815
-:107050008D28ECCCFFF4F01F000CE3CF90C0784CEF
-:10706000580CCEE06E685908CEB12F4CF01F0006C8
-:10707000E3CF90C06C0CF01F00056E5830198D18CE
-:107080008D29CE8B8001A25C800091DCEBCD40E0AD
-:10709000201D1697E04C0081E0800088E08A0027E0
-:1070A000E04C0083C2F0C2B4760A1A9C300BF01F89
-:1070B0000064E08A004F585CC490314CF01F0061BE
-:1070C0004008913C4009723A580AC7A06E0830093E
-:1070D000990899399919EF380008992840083149D9
-:1070E000301A91594008911AC1D8584CC4A0E04CAC
-:1070F0000080C330300C2FFDE3CD80E0E04C0085F4
-:10710000CFA16E0A300B1A9CF01F004DE08A0022BE
-:10711000585CC1C0EF3900084008300A9119400896
-:10712000915A301B400CF01F0048581CCE41400CB7
-:10713000F01F0046C0B0400B76785808C070300C85
-:10714000F01F0043581C5F0CCD7B2FFDE3CF90E078
-:107150003FEC2FFDE3CD80E07645760A1A9C300B9C
-:10716000F01F0037FE9AFFF6585CCF005805C49117
-:1071700040089135400993550FCA4008911ACD2B0C
-:107180007626760A1A9C300BF01F002DFE9AFFE23D
-:10719000585CCDC05806C1914008301A913640095C
-:1071A00093564008911ACBEB760A1A9C300BF01FCD
-:1071B0000024FE9AFFCF585CCC900FC9CAEB3FD891
-:1071C00093184009935ACAEBECC5FFED0A9CF01FD7
-:1071D000001D4008913C1899400A743B580BC2406E
-:1071E0006E080C9A93089336EECBFFF430162F0CF2
-:1071F0009316F01F00184008915540099316C92BAB
-:1072000040060A9CF01F000F8D3C4009723C580C50
-:10721000C1000A9A6E5BF01F000F400891550FC91C
-:1072200040089119C7FB3FD895184009935BC7AB3D
-:107230003FD893184009935CC75B000080016B3C0A
-:1072400080009200800169A48001693C80016C404B
-:10725000800091DCEBCD40FC4C151696189476021C
-:107260006A095909E088001B4BE7C15878BA580AE7
-:10727000F9F8000CEFF80A01F9F8100CF5F81A0CFF
-:10728000201978C8910A8B09F01F00376A0959093B
-:10729000E08800056E0C580CCEA16C2338086C36C3
-:1072A000ECCCFFCCF0041800C260F01F003018973F
-:1072B000C2F0B8C464080C9A990899A6069B2CCC15
-:1072C0008F9CF01F002B3808F0041800C2303818CB
-:1072D000F0041800C2B04A3B30088FB8761A8FCA43
-:1072E0009507EEC9FFD46A0897192FF8301C8B0850
-:1072F000E3CD80FC64495809CD90ECC8FFC9E01883
-:10730000FFFCF009000CF01F00191897CD31E3CDF8
-:1073100080FC318A049BEECCFFF4F01F00156E7ADE
-:107320008F2A580AC1018F8ACD7BEEC6FFF4318ABD
-:10733000300B0C9CF01F000F049B0C9C308AF01F3C
-:10734000000CCCAB6EA82FD8E018FFFC6E9C100C84
-:107350008F8C645BF01F0006CBFB0000000077A061
-:1073600000000234800091E880009200800091DCEF
-:10737000800091D0D421207D1297FACEFFD04B29E6
-:1073800018947298EDB80001C040300C2F9DD8229F
-:10739000FCE800003006BB295C7A50265046FAC54E
-:1073A000FFF8FAC9FFE00A9CF01F00282FED580CE7
-:1073B000C2D05807C0B08F368F5640680E9B0C9CC9
-:1073C0008F28F01F0023581CC2E11A9CF01F0021D7
-:1073D0005BBCC29040076E4C580CC070F01F001E82
-:1073E00030088F388F4840075807C0401A9CF01F5C
-:1073F000001B402C580CC030F01F00175804FBF83D
-:107400001006E9F81A002F9DDA2A40085808C040F3
-:107410001A9CF01F0012402C580CCB80F01F000E5D
-:107420002F9DD82A40085808C0401A9CF01F000B16
-:10743000402C580CC0313FDCCAABF01F00073FDCCA
-:10744000CA6B0000000087F48001DF7480016C408B
-:1074500080018E9C800091E88001D3A8EBCD40E0B4
-:10746000208D149616951897308A300BF01F001354
-:1074700059F6E08800052F8DE3CF80E00A9B0C9A37
-:107480001A9CF01F000FFAC9FFE030080C09FACC73
-:107490000001F368FFE0F8C6FFFF300B30AA0C9C38
-:1074A000F01F000832EB0ECC0C9CF01F0007CF4100
-:1074B0002F8DE3CF90E00000800091D0800091DC20
-:1074C0008000917080009164D43120AD189E109599
-:1074D00014974C781292709CE21C0002C0511896CE
-:1074E0000C9C2F6DD832169AFAC6FFE41C9B0C9C9C
-:1074F000F01F00400C9BFAC3FFFCFACAFFDC069C9D
-:10750000F01F003D1896581CCEC15807C2F10E91CD
-:107510000E90069CF01F0039401818945808C0407F
-:10752000069CF01F0037403C580CC030F01F00355F
-:107530005BB4C4D05807C170E06B0BB8E0CCFFF46B
-:10754000F01F00315BDCC3A0582CC07060285BF8D2
-:10755000C04060188508CC5B029C301B3006F01FD1
-:10756000002BCBFB40988B08CBCB3FF8310C8B0822
-:10757000F01F002718941890C280F8C8FFF4500834
-:10758000109CF01F00248907640930088919089AA3
-:1075900031094A1B109CF01F00211891C20040982D
-:1075A000189B9928300CF01F001E581CCB300C9BE8
-:1075B000029C3FD6F01F001BC94B029C301BF01FE2
-:1075C000001340988B08C8DB3FD6C8BB5807CFD004
-:1075D000029C301B3FD6F01F000DC83B400CF01F33
-:1075E0000012089C3FD6F01F0007C7BB000087F4BD
-:1075F0008001745C80016FB880018E9C8001D3A8EB
-:10760000800091E88001A22880016B7C80009200BC
-:107610008001A28C8001702080016AF480016C409E
-:10762000800169E08001A27CEBCD40E0209D49F81B
-:1076300018991495709CE21C0002C06118960C9C6D
-:107640002F7DE3CD80E0169AFAC6FFE8129B0C9CD2
-:10765000F01F00170C9B1A97FACAFFE01A9CF01F44
-:1076600000151896581CCEC11A9CF01F0013400834
-:1076700018965808C0401A9CF01F0010402C580C57
-:10768000C030F01F000F5BB6C0313FD6CD9B300C31
-:107690008B3C8B5C40880A9B8B28F01F000A581C8F
-:1076A000CCF03FD6CCDB0000000087F48001745C96
-:1076B00080016FB880018E9C8001D3A8800091E882
-:1076C00080016C40EBCD40FC1895169414921293F7
-:1076D00010974076310CF01F0012C1D099369905F1
-:1076E00099149927189A3008310948EB109CF01F1B
-:1076F000000E1896C100069B049C0C9AF01F000B0C
-:107700001897581CC0500C9C301BF01F00090E9C91
-:10771000E3CD80FC30070E9CE3CD80FC800092001E
-:1077200080016F6880016AF480017628800169E039
-:10773000EBCD406E202D4086129310951491169A31
-:10774000189B1A9CF01F0008069B0C99FAE2000097
-:107750000A9ABB23029CF01F00052FED2FEDE3CD0D
-:10776000806E00008001745C80017374EBCD406812
-:10777000202D129310961495169A189B1A9CF01FA0
-:107780000008FAE800000C9ABB29069B0A9C300905
-:10779000F01F00042FED2FEDE3CD80688001745CB5
-:1077A00080017374EBCD40401896303CF01F00040C
-:1077B0007848301C8D08E3CD804000008001EF6CDC
-:1077C000EBCD406048A618952F060C9CF01F0009D1
-:1077D000303CF01F0009310AF8CBFF8C0A9CF01FE7
-:1077E00000070C9CF01F0006E3CF9060000087F4B8
-:1077F000800145F88001EF6C800091DC800145FA42
-:10780000D42149461894ECC5FFF00A9CF01F0012E1
-:10781000ECF700F85807C0C06F38707B2F4B322A46
-:10782000089CF01F000E0A9CF01F000DDA2A303C65
-:10783000F01F000CC060F9380088EE081800C06026
-:10784000ECCCFFF0F01F0006D82AF8CBFF78CE8BE7
-:10785000000087F4800145F88002E736800145FA90
-:107860008001EF6CEBCD40E049061895ECC7FFF0C6
-:107870000E9CF01F000F303CF01F000EECF600F8DD
-:107880005806C0C0ECCBFFE2306A0A9CF01F000A29
-:107890000E9CF01F000AE3CF90E00E9CF01F000743
-:1078A0000C9CE3CD80E00000000087F4800145F8E7
-:1078B0008001EF6C8002E736800145FAEBCD404055
-:1078C000209DE04B0020E08B001CBABB580BC1B1DF
-:1078D0003FF8BAA849162F060C9CF01F0011303C47
-:1078E000F01F0010322AFACBFFFEF8CCFF78F01F11
-:1078F000000E0C9CF01F000D2F7DE3CF90402F7DDC
-:10790000E3CFC0403008169ABAA8189BFACCFFFC07
-:10791000F01F0007CE0B0000000087F4800145FC3B
-:107920008001EF6C8002E736800145FE800091DC2B
-:10793000EBCD40E01895303CF01F000B1897C110BC
-:1079400048A62F060C9CF01F000A0A9B306AEECC5A
-:10795000FF56F01F00080C9CF01F0007E3CF90E0DB
-:10796000E3CD80E08001EF6C000087F4800145FCEE
-:10797000800091DC800145FED401F01F0002D80296
-:1079800080017930EBCD40EC202D18961697586B7E
-:10799000C0503FFC2FEDE3CD80ECFACCFFF8E06364
-:1079A000312EEA13322EE0623100EA12312EB92371
-:1079B00016980C99300A308B1A9CF01F0010301C5E
-:1079C000F01F000F48F81893F0C5FFF00A9CF01F55
-:1079D000000E5803C0C00E9A0C9B069CF01F000BB3
-:1079E0000A9CF01F000B2FEDE3CF90EC0A9CF01FD8
-:1079F0000008069CCD0B00008001776C8001EF6CC5
-:107A0000000087F4800145FC800091DC800145FE88
-:107A1000EBCD40E01897303CF01F0018EEC8000195
-:107A200018955818E0880004E3CF80E058175F09E4
-:107A300049366D1858385F0AF5E90009C0E1582742
-:107A40005F08F5E80008C030E3CF90E0F01F000DBC
-:107A5000C0A18B47E3CF90E0F01F000B6D185838A2
-:107A60005F0ACEEB303CF01F000578485818CF2055
-:107A7000F01F0005CEFB00008001EF6C000087F4D2
-:107A800080017BC88001F340EBCD40F81696189337
-:107A900076085858E08A002A49A83064F0C5FFF0FB
-:107AA00097040A9CF01F0018301CF01F001818974C
-:107AB000C160202D189B089A1A9CF01F0015F01F1A
-:107AC00000152FED580CC1616C0A0E9B069CF01F2F
-:107AD00000120A9CF01F0011E3CF90F80A9CF01FDF
-:107AE000000F0E9CE3CD80F830683FFC9708E3CD93
-:107AF00080F80A9CF01F00093FBCE3CD80F800002D
-:107B0000000087F4800145F88001EF6C8002E736C1
-:107B1000800188B0800091DC800145FA0050F200BD
-:107B2000000FAC003008F9480320F94803245EFC3C
-:107B3000EBCD40C016971496F8FE0320FCCBFFFF58
-:107B4000F60A141FE069851FEA1951EBF60904488B
-:107B5000A5591419F8FA0324F2091064121B143BF6
-:107B6000C0B0F94B0320F80E0927FCC8FF9CF808A9
-:107B70000926E3CF90C0E3CF80C0D401189EF8FC63
-:107B80000324FCF803201838C1F0F8C8FF9CFC0C53
-:107B9000032CFC08032930089709E069851FEA19BE
-:107BA00051EBFCFB0324FC0B09282FFBF6090448CE
-:107BB000F60A141FA5591419F2091064F6090109EF
-:107BC000FD490324D802D80A4838F0F900F85809CA
-:107BD0005F1C5EFC000087F43018198CF00C180054
-:107BE0005F0A3058F00C18005F09124AC0F1306883
-:107BF000F00C1800C0B03028F00C1800C080584CB1
-:107C0000F9BC0003F9BC01005EFC5EFF302C5EFC99
-:107C100048C8F0F800FC5818C0D0C0635828C0D03D
-:107C20005838C0505EFF580C5F0C5EFC583C5F8CAF
-:107C30005EFC581C5F8C5EFC582C5F8C5EFC000068
-:107C4000000087F4EBCD40C01897169E740A580ABE
-:107C5000C0D0753A580AC0A0747A580AC0704FF85C
-:107C6000F0F901045889E0880004E3CF80C04FC8D0
-:107C7000F009032F94D8EDB80004CF813008301CF0
-:107C80009D08E3CD80C0F53900C83FF8F009180021
-:107C9000CED0F51B00D2580BCE90F51C00D030266C
-:107CA000F4FA00D8F40C002811B9EC091800E080AF
-:107CB00000BFF8C8FFFF3009F40800280C9CF0CA88
-:107CC000FFFDC07815882FCAF8081800E08000B0C2
-:107CD0002FF91639CF85CCABF53900C83FF8F0093C
-:107CE0001800CC40F51B00D2580BCC00F51C00D07E
-:107CF0003016F4FA00D8F40C002811B9EC09180079
-:107D0000E08000A4F8C8FFFF3009F40800280C9CAC
-:107D1000F0CAFFFDC07815882FCAF8081800E08067
-:107D200000952FF91639CF85CA1BF53900A43FF805
-:107D3000F0091800C9B0F51B00B2580BC970F51C4A
-:107D400000B03026F4FA00B8F40C002811B9EC09A0
-:107D50001800C660F8C8FFFF3009F40800280C9C22
-:107D6000F0CAFFFDC06815882FCAF8081800C58042
-:107D70002FF91639CF95C7ABF53900A43FF8F009B4
-:107D80001800FE90FF74F51B00B2580BFE90FF6FB9
-:107D9000F51C00B03026F4FA00B8F40C002811B934
-:107DA000EC091800C3D0F8C8FFFF3009F408002818
-:107DB0000C9CF0CAFFFDC06815882FCAF80818008F
-:107DC000C2F02FF91639CF95C51BF53900A43FF83D
-:107DD000F0091800FE90FF4BF51B00B2580BFE9007
-:107DE000FF46F51C00B03016F4FA00B8F40C002879
-:107DF00011B9EC091800C220F8C8FFFF3009F408D7
-:107E000000280C9CF0CAFFFDC06815882FCAF8082E
-:107E10001800C1402FF9123BFE99FFF9C27B3028B0
-:107E2000AE8830199D09129CE3CD80C03028AE8801
-:107E30003029301C9D09E3CD80C03018AE88301940
-:107E40009D09129CE3CD80C03018AE883029301CCB
-:107E50009D09E3CD80C00000000087F48003B7B027
-:107E60003028F00C1800C390E088001B3048F00C5C
-:107E70001800C3503058F00C1800C21030093028D8
-:107E8000F00B1800C160F00B1800E08B001B3018DD
-:107E9000F00B1800C100300812385F5C5EFC30182F
-:107EA000F00C1800CEC130193028F00B1800CEC1EC
-:107EB0003038C02830181039CF045EFE3029CE0B80
-:107EC0003048F00B1800C0703058F00B1800CE414D
-:107ED0003028CF2B3048CF0B3039CD2B3049CD0B4C
-:107EE000D431307977387075B8891894581AC0D061
-:107EF000C043582AC4C0D83A7738707A94D9EDB9BB
-:107F00000004E0800087DA3AEB3900A43FF8F0097A
-:107F10001800CF20EB0800B03009F2081900CF405C
-:107F2000149112923006307B30533060C1A8E007C4
-:107F30001800C2B03028F0071800C7A03048EE087B
-:107F40001800F9BC0003F9BC0100F01F003CE9F780
-:107F50001E002FF6EB1800B00C38FE9AFFD6098BE6
-:107F6000EAF800B8F006002811B70E9CF01F0034A4
-:107F7000FE9AFFF1E20718005F08E60718005F09A4
-:107F80001248E4081800CD40301CCE0BEB3900C875
-:107F90003FF8F0091800CB00EB0800D03009F208D8
-:107FA0001900CB2012913006307B301230533060F4
-:107FB000C1A8E0071800C2B03028F0071800C3A01D
-:107FC0003048EE081800F9BC0003F9BC0100F01FAE
-:107FD000001BE9F71E002FF6EB1800D00C38FE9AB4
-:107FE000FF94098BEAF800D8F006002811B70E9C20
-:107FF000F01F0013FE9AFFF1E40718005F08E60780
-:1080000018005F091248E2081800CD40301CCE0B62
-:10801000307B305CF01F000AFE9AFF77301CF01FA7
-:108020000007FE90FF723058301CA888D832302CE0
-:10803000C8DB302CCCDB000080017C1080017E602E
-:108040003008484A48499508951893085EFC000096
-:10805000000089EC00008C5CEBCD4080189E198BF1
-:10806000580BC130300A3017149CFC0A00092FFA53
-:1080700013982018EE080948F9E81008F9D8B0104C
-:10808000163ACF45E3CD8080169CE3CD80807938C9
-:10809000707A3308F53900C8F0091800C0205EFD79
-:1080A000F51800D4E218000C5848C0E0E08A000837
-:1080B0005888C08058C8CF41310C5EFC5808CF01A9
-:1080C0005EFF304C5EFC302C5EFCD703EBCD40E015
-:1080D00030081896109A169C8D084927760E301590
-:1080E000109BC0A8F80A00082FFA11C9EE0B070868
-:1080F000A7D91039C0A01C3ACF652FFB58DBE08B05
-:10810000000E300A780ECF8B6C08EA0B0949124832
-:108110008D082FFB58DBFE98FFF6E3CF90E00000C0
-:108120008003B7F4EBCD40C030069906149EF8C723
-:10813000FFFC1799EC091800C0E00C9AF60A000839
-:1081400011A90EC978082FF899082FFA1798143832
-:10815000FE99FFF61D993008F0091800C0F0300BA9
-:10816000FC0B000811A9EE0B0B0978082FF89908F1
-:108170002FFB1D981638FE99FFF5E3CF90C0EBCD8D
-:1081800040F816941897780B68065806E08A002C79
-:10819000F6C8FFFCE8C5FFFCF8080003300E2FCC42
-:1081A000EA0E070A580BE08A00130FC81458F1D8DA
-:1081B000C007C1503009C078F80907081458F1D831
-:1081C000C007C0D02FF9123BFE99FFF8597BE08B16
-:1081D000000706CA6E0B2FFB8F0B68062FFE1C369E
-:1081E000FE99FFE0E3CF90F8EBCD40FE1894169295
-:1081F0001497780676055805E08A0025ECC8FFFC40
-:10820000F6C3FFFCF8080001300EF4CCFFFCE60ECC
-:10821000070A6E0B580BE08A00120FC81458F1D8E9
-:10822000C007C1203009C078F80907081458F1D8F0
-:10823000C007C0A02FF91639CF852FFE1C35FE9937
-:10824000FFE8E3CF90FE5976FE9BFFF902CA68066D
-:108250002FF689062FFE64051C35FE99FFDACF2B19
-:10826000D42178045804E08A0027F8C7FFFC493875
-:108270000F8B700C11C6580CE08A0017F0C5FFFC7C
-:10828000300EEDEB2008F1D8C007C0F00A9A300993
-:10829000C0782FFA15881658F1D8C007C0602FF99A
-:1082A000123CFE99FFF8D82A2FFE2FF7083EC03463
-:1082B0000F8BCE8BDA2A00000000023CD4211897E5
-:1082C00076055805E08A0026F6C6FFFCF8CEFFFCCE
-:1082D000300B1694C0482FFB0A3BC1B4EC0B070AC5
-:1082E000E80A1800CF946E0C580CE08A00120FC8F0
-:1082F0001458F1D8C007CF003009C078FC0907082E
-:108300001458F1D8C007CE802FF91839CF85D82A54
-:10831000DA2A3248F00C1800C110E08800113488C5
-:10832000F00C1800C0B0E08800183608F00C1800F7
-:10833000C05036C8F00C1800C0E15EFF3128F00CC8
-:108340001800CFC03188F00C1800CF8030C8F00C76
-:108350001800CF405EFD3308F00C1800CFC1CEEB03
-:10836000EBCD40E078055805E08A0010F8C6FFFC28
-:108370003007C0380A37C0940D8C2FF72FF6F01F46
-:108380000004CF90E3CF90E0E3CF80E08001831240
-:108390004838F14B01DCF14C01D85EFC000087F459
-:1083A0004838F14B01ECF14C01E85EFC000087F429
-:1083B000EBCD40801697581BC050582BC080E3CFA0
-:1083C0008080F01F00050E9CE3CD8080F01F00022E
-:1083D000E3CF9080800091E8D401580CC070486BC6
-:1083E000760AE04A0168E0880003D80AF01F00031B
-:1083F000DA0A0000000089EC800091DCD401580CFE
-:10840000C0A078185908E08B0007780AE04A016894
-:10841000E0880003D80A189B482CF01F0003DA0AF2
-:10842000000089EC800091DCEBCD4040350A1896C5
-:10843000F01F000330088D48E3CD8040800091DCC0
-:10844000D401306AF01F0002D8020000800091DCE5
-:10845000D401300CF01F0002DA0A000080016C7CAD
-:10846000D421201D189414971296169A1095189BD3
-:108470001A9CF01F001CE08A0032585CC27058063B
-:108480005F1858075F191268C241300840099338D5
-:10849000400A95584008301B9115400CF01F0012FF
-:1084A000581CC100400C78785808C090189B089C54
-:1084B000F01F000E581CC0A03FDCC098301BF01FFE
-:1084C000000C400C78785808CF21301C2FFDD822A2
-:1084D0004008913740099356CDEB3FEC2FFDD82251
-:1084E00080016B3C800169A480016C40800169E0DF
-:1084F000EBCD40C018971696303CF01F00283DD8B1
-:108500003079AE88AE9935083F29300BAEB8AEC988
-:1085100030283019AED8EF6B0008AEABAEEBAEF939
-:1085200058065F1AF8F900BC58095F181468F60875
-:108530001800C310F8F800D05818F9B80008EFF880
-:108540000E08F8F800CC5818EFF80808F9B900043C
-:10855000F1D9E038EFF80E08F8F800C85818EFF82D
-:108560000808F9B90002F1D9E038EFF80E08F8F878
-:1085700000C45818EFF80808F9B90001F1D9E0383B
-:10858000EFF80E08F8F900D4EF380008F1E91048C8
-:10859000EF680008E3CD80C08001EF6CEBCD404078
-:1085A0001896303C5C76F01F000E5876E088000488
-:1085B000E3CF804048B8F006032FF90C00C6E3CDA6
-:1085C0008040F90C00CAE3CD8040F90C00CEE3CD29
-:1085D0008040F90C00D2E3CD804000008001EF6CB8
-:1085E0008003B7D4D40130DCF01F0002784CD802ED
-:1085F0008001EF6CEBCD40FC207D31CA1893300B2D
-:108600001A9C1A92F01F001266045804E08A00189F
-:10861000E6C6FFFC30070D852FF72FF60A9CF01FEA
-:10862000000DC0A14008FACAFFE4F0C9FFFF100A1C
-:108630005009F565FFE80E34FE99FFEF1A9B069C82
-:1086400031CAF01F00052F9DE3CD80FC800091D042
-:1086500080018312800091DCEBCD40E0207D300B67
-:10866000189731CA1A9CF01F00171A956E0B580BF9
-:10867000E08A0024300AFAC6FFFCEEC9FFFC0C9C1D
-:10868000149EC0582FF9143BE08A000D2FFA13886E
-:10869000FC081800CF8418C82FF96E0B143BFE9904
-:1086A000FFF7F80601061A9B50060E9C31CAF01F10
-:1086B00000062F9DE3CD80E0FAC6FFFC0C9CCF2B7B
-:1086C000800091D0800091DCD421129618971695E5
-:1086D0001494580CC1205809C111314CF01F0009E5
-:1086E000C0C09907B8C599249936487A7419994930
-:1086F000930CF8C8FFF49518D822F01F0004D82274
-:1087000080009200000077A4800147E0EBCD40C0DC
-:108710001896580CC110308CF01F000C1897C090A0
-:108720000C9CF01F000B8F1C1898C0A030188F08ED
-:108730000E9CE3CD80C018970E9CE3CD80C00E9CAC
-:108740001097F01F0004CF5B800092008001D920B9
-:10875000800091E8EBCD40C049566C075807C180B6
-:108760006E395809EFF80004EDF80A01EFF810042B
-:10877000F3F81A046E4891096E2A0FCB6E0CF01FA5
-:10878000000D0E9CF01F000C6C075807CEA148B8D6
-:10879000F0C7FFEC0E9CF01F000AC071302CF01FD8
-:1087A00000090E9CF01F0008E3CD80C0000077A4F4
-:1087B000800147E0800091E8000087F4800145DCFB
-:1087C0008001478C800145ECD4014848300991185C
-:1087D0009109F01F0003D802000077A4800187549C
-:1087E000EBCD40FE4A0618976C0816951494201895
-:1087F000E0480167E0880004E3CFC0FE580A5F1933
-:108800006C1A300B580A5F181268F6081800CF501F
-:10881000183A5FB858FC5F891268F6081800CED085
-:1088200016910C92C0B82FF7641958F75F8A0E3969
-:108830005FB81468E2081800CE00EE031016306A24
-:10884000E6CCFFF80A9BEC0C000CF01F0008CEC130
-:10885000485B089C060B310A2F2BF01F00050E9C6D
-:10886000E3CD80FE000089EC8000917C800091DCEB
-:10887000EBCD40E018951697300C18960E9A0A9B8F
-:108880002F07F01F0005C0452FF62FFCCF8B0C9C47
-:10889000E3CD80E0800187E0D401306AFACCFFFCB0
-:1088A000FACBFFF4F01F00025F0CD8028000917C2D
-:1088B000EBCD4068205D3FF8FACAFFDC15D9FB68B4
-:1088C0000013FB68000EFB68000FFB680010FB68DC
-:1088D0000011FB680012FAC6FFF8ACD974088D08C5
-:1088E00015C9FAC3FFFEACC93065FACBFFF20A9A8C
-:1088F000069CF01F00060A9A069B0C9CF01F0004C1
-:108900005F0C2FBDE3CD80688002E7368000917C4C
-:10891000D401FACBFFFCF73900241788F0091800BE
-:10892000C020D80AF73A00251798F4081800CFA1FC
-:10893000F6CCFFFE2DABF01F00035F0CD802000049
-:108940008000917CEBCD4040211D303CF01F001E8B
-:10895000322A1896FACBFFB4FA0A000CF01F001B5B
-:10896000ECC6FF78ECE80000FAE90000ECEA000849
-:10897000FAEB0008ECE80010FAE90010ECEA001845
-:10898000FAEB0018ED380020FB680020ED390021DB
-:10899000FB690021FB3A00221B88F4081800C05034
-:1089A000300C2EFDE3CD80401B9AFB380023F408E9
-:1089B0001800CF71FACBFFFEFACCFFDCF01F0004E9
-:1089C0005F0CCF0B8001EF6C8002E7368000917C5A
-:1089D000EBCD40E0203D4B571896EF3900943FF81F
-:1089E000F0091800C3507938707C2F4CF8E800006B
-:1089F000209DFAE90000F8EA0008FAEB0008F8E820
-:108A00000010FAE90010F8EA0018FAEB0018F9383B
-:108A10000020FB680020F9390021FB690021F01FCC
-:108A200000242F7D580CC0412FDDE3CD80E0202DA8
-:108A3000EEC7FF4A306A0E9B1A9CF01F001EF01F03
-:108A4000001E2FED580CC1C02FDDE3CF90E0F8CB16
-:108A5000FFE2306A1A9CF01F0017EECBFF4AFAC6FD
-:108A6000FFFA306A0C9CF01F00130C9B1A9C306AB2
-:108A70001A95F01F00125F0C2FDDE3CD80E0ECCBE8
-:108A8000FFE2FAC5FFFA306A0A9CF01F000A0E9B4B
-:108A9000306A1A9CF01F00071A9B0A9C306A1A96CB
-:108AA000F01F00065F0CCC1B0000026080018944AF
-:108AB0008002E736800188B08000917CD401201DBF
-:108AC000500C580CC0401A9CF01F00022FFDD80219
-:108AD0008001D3A8D401201D500C580CC0401A9C12
-:108AE000F01F00022FFDD8028001D3A8EBCD40C0BB
-:108AF000E06B00E41896300CF01F000A1897C0E0F5
-:108B0000E06A00E40C9BF01F0008ECC9FFF8EECA15
-:108B1000FFF8486B0E9CF01F00060E9CE3CD80C052
-:108B20008001D8DC800091DC8001D3EC8001ACA80E
-:108B3000EBCD40C0E06B00EC1896300CF01F000A43
-:108B40001897C0E0E06A00EC0C9BF01F0008ECC92D
-:108B5000FFF0EECAFFF0486B0E9CF01F00060E9C63
-:108B6000E3CD80C08001D8DC800091DC8001D3ECB3
-:108B70008001ACA8EBCD40FE129210914A88F0F92A
-:108B800000F818933DD8733C316916977874AE8815
-:108B9000AE9930083509AEA8AEB93F283019301665
-:108BA00014954A0B303AAEC8AED9AE36EECCFFF8CB
-:108BB000F01F001D069CEF65000BAE76AE66308B95
-:108BC000F01F001A8F5CC290303A496BF01F0016FC
-:108BD0006E58B0B28EE86E5C303AF808002C491B33
-:108BE000F01F00116E598EE8F2080028B0B1E919A3
-:108BF00000B0E91800B21208E93900A5A3682F08EF
-:108C00001039C030E3CF90FE0F9830092FE8EF59AC
-:108C10000010AE98E3CF90FEE3CD80FE000087F415
-:108C200080017B1C800091DC8001D3ECD431201DBD
-:108C3000314E1697330BAE9EAE8B1090FACBFFD809
-:108C40007618500818921493129176055805E08A08
-:108C50000006EA0815042EA8AE983016303AAE1673
-:108C600049E4EECCFFFCE8CBFFFCF01F001D049CA8
-:108C7000AEF3AE56AE46AE75EA0B15042F8BF01F61
-:108C800000198F4CC280303AE8CBFFFCF01F001473
-:108C90006E48B0B18EC86E4CE8CBFFFCF808002CD3
-:108CA000303AF01F000F6E498EC8F2080028B0B0AD
-:108CB0003289AE695805E08A000D6E488EC98EDC97
-:108CC000EA0A1504120C400BF00C002CF01F0004F3
-:108CD0002FFDDA3A2FFDD83280017B1C800091DC19
-:108CE0008001D3ECEBCD40E0201D500B1897580CC1
-:108CF000C070169A4C4C0E9BF01F0044C6404C4668
-:108D000030080DA9F0091800C050301C2FFDE3CD2C
-:108D100080E0ECCCFFE4F01F003FCF815807C2F0A9
-:108D2000301CF01F003DC3304B751A9B4B6CF01F7D
-:108D3000003B1897C320F01F003A3018ED4C00CCD0
-:108D4000ACA80E9C3005400BED5500D04B07F01F32
-:108D500000351896581CC3F1EECCFFE4F01F00322A
-:108D60004B28F1090142EA091900CD006E98EDB8CF
-:108D7000000ECCC0F01F002E0C9CCC9B4A25EAF9BB
-:108D80000320EAF803241039CCC1CD0BECCCFFE46E
-:108D9000F01F0025301CCBBBECF801245818C04054
-:108DA000301CF01F0024ECCCFFE4F01F001FEAF998
-:108DB0000324EAF803201238CA90301CF01F001672
-:108DC000301CCA5B492AF50B00D2F80B1900C0A071
-:108DD0003FBCC9DBEECCFFE4AEA5F01F00133FBCE7
-:108DE000C96B3018F55800D24909F3080142F6085A
-:108DF0001900CEF07498EDB8000ECEB0F01F000C44
-:108E00003FBCC85B000084CC80017B30000087F44D
-:108E1000800145DC80019F3080017B7A800145C460
-:108E200080014664800145EC000002608001FBFC8B
-:108E30008001A128EBCD40C01897F01F0015C1B0EC
-:108E40006E4849468D186E598D2930096E2C8F2930
-:108E50006E486E3BE2180080F9B80001EDF80E0292
-:108E6000F01F000D1897581CC0803008300CACA8BB
-:108E7000E3CD80C0E3CF90C0F01F00083008ED4C78
-:108E800000CCED5800D00E9CE3CD80C08001C6A080
-:108E9000000087F480014664800145C4EBCD40802A
-:108EA000491A18977498EDB80001C111F4F801241B
-:108EB0005818C0A07848951878599529F01F000BCC
-:108EC000C091E3CD8080109CE3CD80803FBCE3CD9A
-:108ED000808030086E2C6E3B8F28F01F0005E3CD9C
-:108EE00080800000000087F48001C6A080018CE42F
-:108EF000106104000000000040200700FFFFFFFF9A
-:108F0000000000004869F2F802045828C0205EFE04
-:108F1000580CCFE0F2C8FFF099085EFF000077AC74
-:108F20005EFDD7034828912C913B5EFF000077AC93
-:108F300048384849910C930B5EFC000000007540D6
-:108F4000000074B45EFCD703D431202D500C3008DF
-:108F5000FAC1FFF81690109402D84A424A43E269D7
-:108F60005A4C089A0819029B009C40085D181895F5
-:108F70005804C0B1584CF80A1780F9BA0B0449DB01
-:108F8000401CF01F001DC2E140165805C1000A97A1
-:108F90005907EE0A1780F9BA0B100C9B1417140628
-:108FA00064085C7A660C5D185807CF310A04E24405
-:108FB0005A4BFE98FFD65875E088000D4018EACC51
-:108FC000000848CBF00C000C2F8B308AF01F000AF1
-:108FD000C0913009009C129A129B40085D182FED39
-:108FE000DA3A30DC2FEDD83200007540000074B45E
-:108FF00080018EF08000917CEBCD40FC49F8189404
-:10900000F0C3FDDCF0C7FFBC3072C0B8321A089B59
-:109010000A9CF01F001B1896C1D02C470637C16070
-:10902000EEC5002C5804CF316E08109C5808CF6054
-:10903000F01F00148F04EF44FFF86E185808CEE1BB
-:109040008F248F322C470637CEC15804C0D0E3CFCF
-:10905000C0FC6ABC580CC080F01F000A8B968BB60F
-:109060006AC85808C030E3CF90FC8BD8301C3078E9
-:109070008BE8E3CD80FC0000000077AC8000917CA1
-:10908000800091E8EBCD40FE109114961895169251
-:109090001293F4C80008E0480037E08B00185859D4
-:1090A000C18049D8F0C4FE08F0C7FFE86EB8580880
-:1090B000C1300E9C321A0A9BF01F0018C1D02C47F9
-:1090C0000837CF51307CE3CD80FE30ACE3CD80FE5D
-:1090D000129CE3CD80FEECCBFFFF049CF01F001040
-:1090E0000A9B8FBC8F968FD18FE30E9C321AF01F94
-:1090F000000DE3CF90FE6EBCF01F000B049CECCB88
-:10910000FFFFF01F00078FE38FBC8F968FD1E3CF57
-:1091100090FE0000000077AC8000917C8000918878
-:10912000800091DC800091E8D401487BF6F80204CD
-:109130005828C020DC0AF6CBFE04306AF01F00037A
-:10914000DA0A0000000077AC800091DCEBCD40FE35
-:10915000209D580B5F09580A5F08169314941069F4
-:10916000C341580BC4514A9264585808C2E03005B4
-:10917000FAC1FFFD0A970A9CC0D8ED3A0020FB38DF
-:109180000023F4081800C2E00E9C64580E38E088F2
-:10919000001E64482FF7F00C03265803CEF1306A06
-:1091A000089B5804C0A0202D1A9CF01F0019F01F26
-:1091B00000192FED580CC0E05805C0506AC96CC8A2
-:1091C0001238CE350C95CE1B30050A9C2F7DE3CD91
-:1091D00080FE306A089BECCCFFDFF01F000FCD5102
-:1091E000CECB029B0C9CF01F000CCCF1CD9B189BAE
-:1091F000069AFACCFFFDF01F0009FB6300234832FA
-:1092000064585808CB51CE1B000077AC8002E7367B
-:10921000800188B08000917C800091DCEBCD4060C3
-:10922000306A202D169618951A9CF01F0009F01F21
-:1092300000090C9A5F0B0A9CF01F00072FED581CC9
-:10924000F9BC0001F9BC01FFE3CD80608002E73684
-:10925000800188B080016480D4015C6CF01F000440
-:10926000581CF9BC0001F9BC01FFD8028001641C44
-:10927000EBCD406E202D1293189116921495300B61
-:10928000308A1A9CF01F0012306A069B1A96202D15
-:109290001A9CF01F0010F01F001030085F091AD848
-:1092A0000A9A1AD6049B1AD3029C1AD83038F01F97
-:1092B000000B2FAD5BFCC070581CF9BC01FF2FEDFB
-:1092C000E3CD806E304C2FEDE3CD806E800091D0E9
-:1092D0008002E736800188B08001661CEBCD406ECD
-:1092E00010911892169314951296F01F00113008E1
-:1092F0000C991AD80A9A1AD1069B049CF01F000DEB
-:109300002FED583CE0890007582CC085306CE3CD28
-:10931000806E584CC070E3CFC06E5BECC050581CE0
-:10932000CFB1E3CF906E30BCE3CD806E8001A1DC85
-:109330008001F7D8EBCD4040201D10964978F0FE13
-:109340000204582EC0503FFC2FFDE3CD804030EE8C
-:10935000FAC8FFFC10DE300E1A985C761ADE1AD6B8
-:10936000F01F000F2FEDFE5CFC17E0890010FE5C83
-:10937000FC16C114FE5CFB4FC070FE5CFBB4C0B0B9
-:10938000FE5CFAECCE11307CCE0B5BECC040581C7E
-:10939000CDB1CDBB30BCCD9B000077AC8001F54496
-:1093A000D4014858F0F902045809C030F01F0003F6
-:1093B000D8020000000077AC80014480EBCD40E88B
-:1093C0004D56189514971693E06A0218300B0C9CB2
-:1093D000F01F00524D288D05700C8D133005A36CC5
-:1093E000ED450204F01F004F8D4CC031E3CFC0E8C3
-:1093F0000A9CF01F004D581CCFA11AD5F1D7C00808
-:109400000A990A9A310B320CF01F00482FFD581CA4
-:10941000CEE1F01F0047581CCEA11AD50A980A9930
-:109420004C4A0A9B302CF01F00442FFD580CCDF005
-:1094300030670A981AD70A994BEA0A9B322CF01F18
-:10944000003E2FFD580CCD3030780A991AD84B9A2F
-:109450000A980A9B323CF01F00382FFD580CCC7044
-:109460001AD50E9C0A980A994B2A0A9BF01F0032C3
-:109470002FFD580CCBC030270A981AD70A994ADA20
-:109480000A9B304CF01F002C2FFD580CCB001AD734
-:109490000A984A8A0A990A9B305CF01F00272FFD20
-:1094A000580CCA50301C0A981ADC0A994A1A0A9BAE
-:1094B000F01F00212FFD580CC9A030390A981AD985
-:1094C00049CA0A990A9B31CCF01F001B2FFD580C8A
-:1094D000C8E0F01F001A581CC8A1F01F0019581C42
-:1094E000FE91FF860A980C9730490C9A495B0A9CBA
-:1094F000F01F0015FE90FF7C189A308B493CF01F3E
-:109500000014581CFE91FF74ED4C0204EF45020C50
-:10951000E3CD80E8000077AC800091D000000258D5
-:1095200080009200800200AC8002067C8001FFB4C3
-:109530008001984C80016E788001FD8C8001A00034
-:109540008001955080016AF48003B8048001762878
-:10955000EBCD40E078185B98C031E3CFC0E078569F
-:109560005866CFC1783B0C9A4985EAC7FE040E9C29
-:10957000F01F0017303A497B0E9CF01F0017C131D5
-:10958000F01F00163026EB460204F01F00150C9C5D
-:10959000F01F00146A195809C14048C8700C5D19C1
-:1095A000E3CF80E037A83C49EB6801FC30E80C9B36
-:1095B0000E9CEB6901FDEB6801FEF01F000BCE1B5A
-:1095C000129CE3CD80E00000000077AC800091DCCD
-:1095D0008003B80C8000917C8001FD8080020290A5
-:1095E0008002023480017984EBCD40FC7875580B01
-:1095F000F9B80100F7F81A001693EB3900C83FF8E4
-:10960000F0091800C250EB0900D03008F009190029
-:10961000C4D0307430073022EE061502EAF800D8C4
-:109620000C082FF711BC089BF01F0027E08A0009E7
-:10963000EAF800D80C0811B45803E7F21A00EB1846
-:1096400000D00E38FE99FFEA089CE3CD80FCEB3891
-:1096500000A4F2081800C250EB0900B03008F0096D
-:109660001900C240307430073012EE061502EAF8D5
-:1096700000B80C082FF711BC089BF01F0013E08AFC
-:109680000009EAF800B80C0811B45803E7F21A0010
-:10969000EB1800B00E38FE99FFEA089CE3CD80FC81
-:1096A000787992D8EDB80004C040307CE3CD80FCDE
-:1096B000307B305CF01F0004FE9AFFF9305CE3CD94
-:1096C00080FC000080017E60D431201D4D876E58E3
-:1096D0005808C0E030060C996E48F009032CF01FC2
-:1096E00000552FF66E580C990C38FE9BFFF730068C
-:1096F0001A9B8F560C9CF01F00501A94400C580C6B
-:10970000C0312FFDD832A36CF01F004C1890CFA0B1
-:10971000400A0C9BA36AF01F004A40085808E08AE0
-:1097200000260C950096C0782FF52FC640080A3801
-:10973000E08A001D350CF01F00418D0CCF614009FF
-:109740005809E08A000F009530062FF66A0C580C75
-:10975000C040F01F003840092FC50C39FE99FFF7B3
-:10976000009CF01F00342FFDD8321A9B009CF01F84
-:1097700000324B4972084009F0090D488F585808CB
-:10978000CE00300408930891A363E003000264084C
-:109790006E467135344CF01F0029F9410040060631
-:1097A0008D0C6A796E48F2CBFFF2F0030306F33AB0
-:1097B000000D0C9CF01F00246A78F139000D306A0E
-:1097C000ED690020ECCCFFDF640B2E2BF01F001E98
-:1097D000029B0A9CF01F001DED6C00386A498DC980
-:1097E0006A585808F9B805008DD86A79F338005ED0
-:1097F000ED6800276A7992C88DA80BF9ED59002C05
-:1098000030290BEAF20A1800E2081710F9B8000133
-:109810008DF830286E49F20309062FF4F00A18007B
-:1098200008936E580838FE9BFFB1C8AB000077ACB8
-:10983000800091E88002105880009200800091D052
-:1098400000000258800091DC800195E8EBCD40C01B
-:10985000201D1696582BC680E0880013586BC590C3
-:10986000587BC2D0583BC4804C076E295809C05061
-:109870004BE80C9C703B5D192FFDE3CD80C0580B6D
-:10988000C0F14BA7EEF902085819C6C0EEF8020C59
-:109890003019A1D8EF690210EF48020CCE7B581B9B
-:1098A000CE414B273008EEF9020C4B1AA3A9EF6802
-:1098B0000210A1D9B488EF49020CCD8B4ACA3008F6
-:1098C0001589F0091800C4C14A87EEF8020CEDB8FA
-:1098D0000001CD31EF380210F2081800CCE1F01F82
-:1098E0000025F01F0025EEF8020C3016E018FFF9F5
-:1098F000EF48020CCBBBF01F002049C7EEF9020C69
-:10990000EDB90004CBA11298A5C8EF48020CCAEB30
-:1099100049673019EEF8020CEF690210A1D8300641
-:10992000EF48020CCA3B4917EEF8020CA3C81A9C78
-:10993000EF48020CF01F001140085828C050F01FDB
-:10994000000DF01F000D300A4898B08AEF39021060
-:10995000F4091800C9204858F16A0210C87BB4887D
-:10996000C8CB4838B089C89B000077AC000079C4E8
-:1099700080021298800196C8800177A4D401201D2E
-:1099800048F9F2F802045828C0302FFDD80AF339FC
-:1099900002103008F0091800C0711A9CF01F00096D
-:1099A00040085828CF31F01F0008CF00F8CAFFE266
-:1099B000300B169CF01F00052FFDD802000077AC7D
-:1099C000800177A4800210FC8001914CEBCD408097
-:1099D000201D4967EEF802045828C0503FFC2FFDB7
-:1099E000E3CD8080F01F0012C051302C2FFDE3CD5D
-:1099F0008080EEF9020CEDB90002CF10EDB9000144
-:109A0000C031309CCEDB1A9CF01F000A4008580879
-:109A1000CED0F01F0009581CCE21EEF8020CA3A8EE
-:109A2000EF48020CCDDB0000000077AC800210FC98
-:109A3000800211088001F370EBCD40C020AD189872
-:109A40001697580BC07076DC581CC0402F6DE3CDC4
-:109A500080C0109BF13A0020FAC6FFFE0C9CF01F5C
-:109A6000001B0C9B209D322A1A9CF01F0019F01F2E
-:109A700000192F7D580CCEB0793CFACBFFDCF01FDB
-:109A8000001640985818C150C0923058F808180075
-:109A9000F9BC0003F9BC0102CDAB5828C030301C22
-:109AA000CD6B5807C0D06EC85808C0A0305CCCFB46
-:109AB0005807C0806EC85808C050304CCC8B307CE2
-:109AC000CC6B306CCC4B00008002113C8002E7363E
-:109AD0008001F2BC800195E8D43120EDFEF3029CB8
-:109AE000FAC1FFA4E6F8020C18971694E2180006D3
-:109AF000C040309C2F2DD832F01F00A1C040308CC8
-:109B00002F2DD832E74C02085807C130BA8CF5D453
-:109B1000C008FAC6FFFEBA9A0E9B0C9CF01F009973
-:109B20000C9C1B9BF01F0098581CC0802F2DDC3A0A
-:109B3000BA97BA87FAC6FFFECF4B029CF01F00937C
-:109B40001892581CCF41029A089B0E9CF01F00905F
-:109B50001890C580E6C7FFE8E6C6FE08EF3A002089
-:109B6000E1380020F4081800E08000A02C470C37F2
-:109B7000CF6130070E950E9B009CF01F0086E136EA
-:109B800000381897CD40585CE08000C2E08B00B9E7
-:109B9000583CE08000B4584CC020300CF01F007ED0
-:109BA0003048F0061800E08000A83054E80618009D
-:109BB000E08000983028F0061800E080009A300C11
-:109BC000F01F0076E8061800E080008F300CF01FD0
-:109BD00000745837E08B007960F85818C710301CB3
-:109BE000F01F0070300B4F0CF01F0070CA00F01F08
-:109BF0000070581CC9C1E6F8020CA1B8E748020C75
-:109C0000C7ABFAC5FFCE306A029B0A9CF01F005D0D
-:109C1000FAC6FFDE0C9CF01F00673FF81AD00C9BC1
-:109C20001AD2310A1AD8204D1A9CF01F00630A9BE1
-:109C3000202D306A1A9CF01F00600499209DE6CC0C
-:109C4000FDECFB380069FAEA0048FAE20050FB68D4
-:109C50000021FAEB0000FB380068FAEA0058FAE34A
-:109C60000008FAE20060FAEB0010FAE30018FB6863
-:109C70000020303A0098129B4C03F01F00502EED4C
-:109C80001895581CFE91FF54009BE6FC0214F01F2F
-:109C9000004C5BBCC620580CC3E1189BE6FC0214C8
-:109CA000F01F00483FFCC27B0E9C009BF01F00464B
-:109CB000FE91FF5E6EB55805EA071700C5DB302C34
-:109CC000F01F0038C90B5805FE90FF320A9AE13B9D
-:109CD0000020009CF01F003D3018E7480208C7DB59
-:109CE000301CF01F002E301CF01F002DC73B302C05
-:109CF000F01F002AC6CB303CCFCB301CC50B586CB4
-:109D0000C080587CFE91FF4B308CC49B307CC47B60
-:109D1000305CC45B344CF01F002E089A18960E9BE2
-:109D2000F01F0018029B306AED640020ECCCFFDFCE
-:109D3000F01F001400991AD60A984A6A009B31CC89
-:109D4000F01F00252FFD580CC0E0E6F8020C0A9C1D
-:109D5000A1B8E748020CCCFA009BE6FC0214F01F05
-:109D60000019CC8A189BE6FC0214F01F00160C9C0C
-:109D7000F01F001A3FFCCBFA000077AC800210FC09
-:109D8000800091DC800178BC800179788001914C61
-:109D900080019A3880015F60800163488001639C84
-:109DA00080017A1080018F208001FD408001F3A0A6
-:109DB000800177C08002E73680020BFC80020A70C7
-:109DC00080020B408000917C800214708000920021
-:109DD00080019E0080016E78800091E8D401202DE2
-:109DE000FACAFFF415D8BAD87409500915C8300B4F
-:109DF000BAC8169CF01F00022FEDD80280019AD835
-:109E0000EBCD40E049F51697EAFC0214300BF01F49
-:109E1000001EF01F001EEEC6FFDFEF3B00200C9A75
-:109E20000E9CF01F001BC150EAF8020CA1D8202D97
-:109E30000C9BEB48020C306A1A9CEF360020F01F96
-:109E400000150C9B0E9CF01F00142FED581CC060D9
-:109E5000EAF8020CEDB80001C0600E9CF01F000F84
-:109E6000E3CD80E0301B300CF01F000D302B300CA8
-:109E7000F01F000B0E9CF01F0009E3CD80E00000F6
-:109E8000000077AC80020B40800196C88001914CA5
-:109E90008002E73680019AD8800091E88001984CD2
-:109EA000EBCD40E0202D18951697580CC0513FFC83
-:109EB0002FEDE3CD80E0580BCFB0E04B0020FE9BB0
-:109EC000FFF8FAC6FFFE306AE06B00FF0C9CF01F43
-:109ED0000008306A202D0C9B1A9CF01F00060E9B78
-:109EE0000A9CF01F00052FEDCE4B0000800091D0A2
-:109EF0008002E73680019AD8EBCD408048B7EEF873
-:109F000002045828C030E3CFC080F01F0009581C5D
-:109F1000F9BC0109EFF80083F9B90010F1D9E03874
-:109F2000EFF80A83E3CD8080000077AC80020A84DA
-:109F3000D40148B9F338000A104CF36C000A7218C7
-:109F40005808C0B05828C0803028726C9318301B55
-:109F500072595D19D80AD80ADA0A0000000079C8D7
-:109F60004828916B915C5EFC000079C8EBCD40C045
-:109F7000203D5CBBBA89502B109714965CC85C8856
-:109F80005807C0513FFC2FDDE3CD80C05C784959B4
-:109F90005018B28C3048FAC9FFF8300A306B492C9F
-:109FA000F01F0012581CCEF11B89491A1898B48969
-:109FB000306B1A99300A48FCF01F000C581CCE3147
-:109FC00048D8300AB007306B304848CCFA0800094E
-:109FD000F01F0006581CCD7148989146CD5B0000DB
-:109FE00000007A288003B8108001776C0000025CC2
-:109FF0008003B8180000025E8003B820000079C812
-:10A00000EBCD40C030074A161AD78D078D17ED6784
-:10A010000008ED670009ED67000A8D378D470E983F
-:10A020000E9949BA0E9B302CF01F001A2FFD580CC8
-:10A03000C0413FFCE3CD80C01AD70E980E99496A03
-:10A040000E9B304CF01F00132FFD580CCF301AD749
-:10A050000E980E99491A0E9B32ECF01F000E2FFD40
-:10A06000580CCE8031483019E06A138830AB0E9C12
-:10A07000F01F000B581CCDE10E9BECCCFFF4F01F41
-:10A080000009581CCD71CD7B000079C88001A0F07B
-:10A0900080016E788001A1A08001A0A480019F6C46
-:10A0A000800144F8D401F01F000E48EA74085838C3
-:10A0B000C12030289508F539000A3008F009180049
-:10A0C000C020D8023018300B9518487C487AF01F11
-:10A0D0000008D80230089508D80200008001DA365E
-:10A0E000000079C88001DA5880018E348001EF20A9
-:10A0F000EBCD408048973018EF6800086E4958094A
-:10A10000C0A0308CF01F00066E4C3009485A6E3BE0
-:10A11000F01F0005E3CD8080000079C880019F30EA
-:10A120008001A1CC80014558D4014989F80C11FF68
-:10A13000F338000A106CF36C000AC1E1F33800092F
-:10A14000F8081800C19072185808C161F338000867
-:10A15000F8081800C06072085808C0F05818C0C04D
-:10A160003018300B931848AA48ACF01F000B300B86
-:10A17000331CF01F000AD802301B485A930B488C3E
-:10A18000F01F0005D8020000000079C880018E345D
-:10A190008001DA588001EF2080016D6C8001DA8443
-:10A1A000EBCD404048766C3CF01F0007308CF01F30
-:10A1B000000730083009ED6800088D09E3CD8040C4
-:10A1C000000079C8800145308001A128D401308C7D
-:10A1D000F01F0002D80A00008001A128EBCD4080CA
-:10A1E00048E76E185828C030E3CD80806E58300B99
-:10A1F0006E6C5D18300B8F1B4899F2FA0324F2F84D
-:10A2000003201438C040169CF01F0006300B332C7E
-:10A21000F01F0005E3CD8080000079C8000084CCE9
-:10A2200080018CE480016D6CEBCD40C018971696D0
-:10A23000F01F0009C0C06E0C581CC0700C9B0E9C17
-:10A24000F01F0006CF91302CE3CD80C03FDCE3CD82
-:10A2500080C000008001462C80014636EBCD404096
-:10A26000301818969908F01F00040C9CF01F00038A
-:10A27000E3CD80408001463280014634D401580C41
-:10A28000C030F01F0002D80280014630D4013008EF
-:10A290009908F01F0002D8028001462ED401189EB2
-:10A2A000580AC0C196199688F9D9C010103CC165EA
-:10A2B000F2C8FFFF973AB618D802581AC06096192C
-:10A2C000F2C8FFFFB618D802969996881039C0F4E4
-:10A2D0007648F0090709B889CF3B1D897648F00C0C
-:10A2E0000B099619F2C8FFFFB618D8023008973844
-:10A2F000B8889619F2C8FFFFB618D802EBCD408097
-:10A300001897580AC1D1961C9689FDDCC010FCC86C
-:10A31000FFFF1238F7FA4A03F7F85004F1DEE508B8
-:10A32000EFF95801F1F95E00EFFA5800F1FA5E0119
-:10A33000F7FC5201F8C8FFFEB618E3CD8080581A2A
-:10A34000C070961CF8C8FFFEB618E3CD8080969AC0
-:10A350009689F4C8FFFF1238C09476481408119902
-:10A36000B889118AB89A961CCEEB30089738B8088D
-:10A37000961CF8C8FFFEB618E3CD8080EBCD408078
-:10A38000189E169C580AC0F1961B9889EFDBC010E6
-:10A39000EEC8FFFD1238C205F6C8FFFC993AB8189E
-:10A3A000E3CD8080581AC070981BF6C8FFFCB8181F
-:10A3B000E3CD8080969B9889F6C8FFFD1238C1C412
-:10A3C000784A160A15B8BC8815A9BC991598BCA876
-:10A3D0001589BCB9CEAB1DB8784A0E0AB4881DA940
-:10A3E000B4991D98B4A81D89B4B9981BF6C8FFFC90
-:10A3F000B818E3CD8080300899389D08981BF6C8BE
-:10A40000FFFCB818E3CD8080EBCD4068189316951B
-:10A410001496F01F000C0C9A0A9BE6CCFFFFF01F6D
-:10A4200000090C9A0A9BE6CCFFFEF01F00060C9A6E
-:10A430000A9BE6CCFFFDF01F0003E3CD806800001F
-:10A440008001A29CD4211697189596141496F01F9B
-:10A4500000080C9A0E9BEACCFFFEF01F00060BC80A
-:10A460005808F1D4E108EFF81C01D8228001A2FCC1
-:10A470008001A408EBCD4068189316951496F01F40
-:10A4800000060C9A0A9BE6CCFFFCF01F0003E3CD0C
-:10A49000806800008001A37CEBCD4068189316957E
-:10A4A0001496F01F00090C9A0A9BE6CCFFFCF01FE3
-:10A4B00000070C9A0A9BE6CCFFFAF01F0004E3CDDC
-:10A4C000806800008001A37C8001A2FCEBCD406885
-:10A4D000189316951496F01F000F0C9A0A9BE6CC61
-:10A4E000FFFCF01F000D0C9A0A9BE6CCFFFBF01F4F
-:10A4F000000A0C9A0A9BE6CCFFFAF01F00070C9AA0
-:10A500000A9BE6CCFFF9F01F0004E3CD8068000051
-:10A510008001A37C8001A29CEBCD40681893169526
-:10A520001496F01F000C0C9A0A9BE6CCFFFCF01F5F
-:10A53000000A0C9A0A9BE6CCFFFAF01F00080C9A5E
-:10A540000A9BE6CCFFF9F01F0005E3CD8068000010
-:10A550008001A37C8001A2FC8001A29CEBCD40681D
-:10A56000189316951496F01F00150C9A0A9BE6CCCA
-:10A57000FFFCF01F00120C9A0A9BE6CCFFF8F01FBC
-:10A5800000100C9A0A9BE6CCFFF6F01F000D0C9A07
-:10A590000A9BE6CCFFF4F01F00090C9A0A9BE6CC5C
-:10A5A000FFF0F01F00070C9A0A9BE6CCFFEEF01FAD
-:10A5B0000004E3CD806800008001A37C8001A2FC40
-:10A5C000EBCD4068189316951496F01F00090C9A6D
-:10A5D0000A9BE6CCFFFCF01F00060C9A0A9BE6CC17
-:10A5E000FFF8F01F0003E3CD806800008001A37C2A
-:10A5F000EBCD4068189316951496F01F00060C9A40
-:10A600000A9BE6CCFFFCF01F0003E3CD806800004E
-:10A610008001A37CEBCD4068189316951496F01F2B
-:10A62000000C0C9A0A9BE6CCFFFCF01F00090C9A68
-:10A630000A9BE6CCFFF8F01F00060C9A0A9BE6CCBA
-:10A64000FFF4F01F0003E3CD806800008001A37CCD
-:10A65000EBCD4068189316951496F01F00330C9AB2
-:10A660000A9BE6CCFFFCF01F00300C9A0A9BE6CC5C
-:10A67000FFF8F01F002D0C9A0A9BE6CCFFF4F01FA8
-:10A68000002B0C9A0A9BE6CCFFF2F01F00280C9AD4
-:10A690000A9BE6CCFFF0F01F00250C9A0A9BE6CC43
-:10A6A000FFEEF01F00220C9A0A9BE6CCFFECF01F95
-:10A6B000001F0C9A0A9BE6CCFFEAF01F001C0C9AC4
-:10A6C0000A9BE6CCFFE8F01F00190C9A0A9BE6CC27
-:10A6D000FFE6F01F00160C9A0A9BE6CCFFE4F01F81
-:10A6E00000130C9A0A9BE6CCFFE2F01F00110C9AB3
-:10A6F0000A9BE6CCFFE1F01F000E0C9A0A9BE6CC09
-:10A70000FFE0F01F00090C9A0A9BE6CCFFDCF01F6B
-:10A7100000060C9A0A9BE6CCFFD8F01F0005E3CD9B
-:10A72000806800008001A37C8001A2FC8001A29CC3
-:10A73000EBCD4068189316951496F01F00120C9AF2
-:10A740000A9BE6CCFFFCF01F00100C9A0A9BE6CC9B
-:10A75000FFFBF01F000D0C9A0A9BE6CCFFFAF01FDE
-:10A76000000A0C9A0A9BE6CCFFF9F01F00070C9A2E
-:10A770000A9BE6CCFFF8F01F0004E3CD80680000E0
-:10A780008001A37C8001A29CEBCD406818931695B4
-:10A790001496F01F00060C9A0A9BE6CCFFFCF01FF3
-:10A7A0000003E3CD806800008001A37CEBCD40680E
-:10A7B000189316951496F01F00060C9A0A9BE6CC87
-:10A7C000FFFCF01F0003E3CD806800008001A37C44
-:10A7D000EBCD4068189316951496F01F00060C9A5E
-:10A7E0000A9BE6CCFFFCF01F0003E3CD806800006D
-:10A7F0008001A37CEBCD4068189316951496F01F4A
-:10A8000000060C9A0A9BE6CCFFFCF01F0003E3CD88
-:10A81000806800008001A37CEBCD406818931695FA
-:10A820001496F01F00060C9A0A9BE6CCFFFCF01F62
-:10A830000003E3CD806800008001A37CEBCD40687D
-:10A84000189316951496F01F00060C9A0A9BE6CCF6
-:10A85000FFFCF01F0003E3CD806800008001A37CB3
-:10A86000EBCD4068189316951496F01F00060C9ACD
-:10A870000A9BE6CCFFFCF01F0003E3CD80680000DC
-:10A880008001A37CEBCD4068189316951496F01FB9
-:10A8900000060C9A0A9BE6CCFFFCF01F0003E3CDF8
-:10A8A000806800008001A37CEBCD4068189316956A
-:10A8B0001496F01F00060C9A0A9BE6CCFFFCF01FD2
-:10A8C0000004E3CD806800008001A37C8001A650D5
-:10A8D000EBCD4068189316951496F01F00060C9A5D
-:10A8E0000A9BE6CCFFFCF01F0003E3CD806800006C
-:10A8F0008001A37CEBCD4068189316951496F01F49
-:10A9000000090C9A0A9BE6CCFFFCF01F00060C9A8B
-:10A910000A9BE6CCFFF8F01F0003E3CD806800003F
-:10A920008001A37CEBCD4068189316951496F01F18
-:10A9300000060C9A0A9BE6CCFFFCF01F0003E3CD57
-:10A94000806800008001A37CEBCD406818931695C9
-:10A950001496F01F00090C9A0A9BE6CCFFFCF01F2E
-:10A9600000060C9A0A9BE6CCFFF8F01F0003E3CD2B
-:10A97000806800008001A37CEBCD40681893169599
-:10A980001496F01F00090C9A0A9BE6CCFFFCF01FFE
-:10A9900000060C9A0A9BE6CCFFF8F01F0003E3CDFB
-:10A9A000806800008001A37CEBCD40681893169569
-:10A9B0001496F01F00060C9A0A9BE6CCFFFCF01FD1
-:10A9C0000003E3CD806800008001A37CEBCD4068EC
-:10A9D000189316951496F01F00090C9A0A9BE6CC62
-:10A9E000FFFCF01F00060C9A0A9BE6CCFFF8F01F54
-:10A9F0000003E3CD806800008001A37CEBCD4068BC
-:10AA0000189316951496F01F00060C9A0A9BE6CC34
-:10AA1000FFFCF01F0003E3CD806800008001A37CF1
-:10AA2000EBCD4068189316951496F01F00090C9A08
-:10AA30000A9BE6CCFFFCF01F00060C9A0A9BE6CCB2
-:10AA4000FFF8F01F0003E3CD806800008001A37CC5
-:10AA5000EBCD4068189316951496F01F00090C9AD8
-:10AA60000A9BE6CCFFFCF01F00060C9A0A9BE6CC82
-:10AA7000FFF8F01F0003E3CD806800008001A37C95
-:10AA8000EBCD4068189316951496F01F00060C9AAB
-:10AA90000A9BE6CCFFFCF01F0003E3CD80680000BA
-:10AAA0008001A37CEBCD4068189316951496F01F97
-:10AAB00000060C9A0A9BE6CCFFFCF01F0003E3CDD6
-:10AAC000806800008001A37CEBCD40681893169548
-:10AAD0001496F01F00060C9A0A9BE6CCFFFCF01FB0
-:10AAE0000003E3CD806800008001A37CEBCD4068CB
-:10AAF000189316951496F01F00060C9A0A9BE6CC44
-:10AB0000FFFCF01F0004E3CD806800008001A37CFF
-:10AB10008001A29CEBCD4068189316951496F01F07
-:10AB200000060C9A0A9BE6CCFFFCF01F0004E3CD64
-:10AB3000806800008001A37C8001D434EBCD4068A4
-:10AB4000189316951496F01F00330C9A0A9BE6CCC6
-:10AB5000FFDEF01F00310C9A0A9BE6CCFFD4F01FF9
-:10AB6000002F0C9A0A9BE6CCFFC2F01F002D0C9A16
-:10AB70000A9BE6CCFFBFF01F002B0C9A0A9BE6CC89
-:10AB8000FFBCF01F00290C9A0A9BE6CCFFB0F01F17
-:10AB900000270C9A0A9BE6CCFFACF01F00250C9A0C
-:10ABA0000A9BE6CCFFA4F01F00230C9A0A9BE6CC7C
-:10ABB000FF9CF01F00210C9A0A9BE6CCFF98F01F27
-:10ABC000001F0C9A0A9BE6CCFF8CF01F001D0C9A0C
-:10ABD0000A9BE6CCFF72F01F001B0C9A0A9BE6CC86
-:10ABE000FF68F01F00190C9A0A9BE6CCFF44F01F87
-:10ABF00000170C9A0A9BE6CCFF50F01F00150C9A28
-:10AC00000A9BE6CCFF30F01F0013E3CD8068000004
-:10AC10008001D3448001D2DC8001D2748001CAF863
-:10AC20008001C9D88001D8608001CA688001CA9CAF
-:10AC30008001CA0C8001C9A48001D4348001CDB444
-:10AC40008001CE848001D5588001D6B08001D4E443
-:10AC50008001CFFCEBCD4068189316951496F01F39
-:10AC6000000F0C9A0A9BE6CCFFFCF01F000D0C9A1B
-:10AC70000A9BE6CCFFFAF01F000B0C9A0A9BE6CC6D
-:10AC8000FFF9F01F00080C9A0A9BE6CCFFF8F01FB2
-:10AC90000006E3CD806800008001A37C8001A2FC57
-:10ACA0008001A29C8001AB3CEBCD406C14951296C8
-:10ACB00018921693E06A00DC129B0A9CF01F001A9F
-:10ACC000ECC9FF98EACAFF98069B049CF01F001786
-:10ACD000ECC9FFBCEACAFFBC069B049CF01F001431
-:10ACE000ECC9FF68EACAFF68069B049CF01F0011CC
-:10ACF000ECC9FF50EACAFF50069B049CF01F000EEF
-:10AD0000ECC9FF44EACAFF44069B049CF01F000BF9
-:10AD1000ECC9FF30EACAFF30069B049CF01F000814
-:10AD2000E3CD806C8002E7368001D1588001D24C9F
-:10AD30008001D1E88001D1C08001D21C8001CF9C6C
-:10AD4000EBCD40EC1296F2E80000F4E90000ECE8EC
-:10AD50000008F4E90008ECE20010F4E30010ECE86D
-:10AD6000001814971695F4E90018E06B00E85D15DB
-:10AD70008F7CC0D030CA6C7BF01F00066E7A6C7975
-:10AD8000149C0A9B2F492F4AF01F0003E3CD80EC4F
-:10AD9000800091DC8001ACA8EBCD40C014971696E2
-:10ADA00074385808C160949E948AF60E00081438CE
-:10ADB000F5DEE916F9B80900EFF89A03580CC090CF
-:10ADC0005809C0C1189B0C9A6E4C1C0CF01F000A4D
-:10ADD0008E180C08AE18E3CD80C05819CFA16E4B69
-:10ADE0000C9A1C0BF01F00048E180C08AE18E3CD53
-:10ADF00080C00000800091DCEBCD40E016971496F7
-:10AE00001895581AC0B0F01F000C0C99189B0E9A98
-:10AE10000A9CF01F000AE3CD80E09698968614996C
-:10AE20001016169A0C9BF01F00053008EA060B0856
-:10AE3000E3CD80E0800091B88001AD98EBCD406813
-:10AE4000189316951496F01F00060C9A0A9BE6CCF0
-:10AE5000FFFCF01F0004E3CD806800008001A37CAC
-:10AE60008001ADF8EBCD4068189316951496F01F4D
-:10AE700000060C9A0A9BE6CCFFFCF01F0004E3CD11
-:10AE8000806800008001A37C8001ADF8EBCD4068B4
-:10AE9000189316951496F01F000F0C9A0A9BE6CC97
-:10AEA000FFFCF01F000C0C9A0A9BE6CCFFF8F01F89
-:10AEB00000090C9A0A9BE6CCFFF4F01F00060C99DF
-:10AEC0000A9AE6CCFFF0320BF01F0003E3CD806856
-:10AED0008001A37C8001AD98EBCD40681893169556
-:10AEE0001496F01F000C0C9A0A9BE6CCFFFCF01F96
-:10AEF00000090C9A0A9BE6CCFFF8F01F00060C999B
-:10AF00000A9AE6CCFFF4320BF01F0003E3CD806811
-:10AF10008001A37C8001AD98EBCD40681893169515
-:10AF20001496F01F000C0C9A0A9BE6CCFFFCF01F55
-:10AF300000090C9A0A9BE6CCFFF8F01F00070C9959
-:10AF40000A9AE6CCFFF7303BF01F0004E3CD80689F
-:10AF50008001A37C8001A29C8001AD98EBCD40686C
-:10AF6000189316951496F01F00180C9A0A9BE6CCBD
-:10AF7000FFFCF01F00150C9A0A9BE6CCFFF8F01FAF
-:10AF800000120C9A0A9BE6CCFFF4F01F000F0C9AFB
-:10AF90000A9BE6CCFFF0F01F000C0C9A0A9BE6CC53
-:10AFA000FFECF01F000A0C9A0A9BE6CCFFEAF01FA8
-:10AFB00000080C990A9AE6CCFFE9303BF01F000527
-:10AFC000E3CD80688001A37C8001A2FC8001A29C6B
-:10AFD0008001AD98EBCD4068189316951496F01F3C
-:10AFE00000280C9A0A9BE6CCFFFCF01F00250C9A67
-:10AFF0000A9BE6CCFFF8F01F00220C9A0A9BE6CCD5
-:10B00000FFF4F01F00200C9A0A9BE6CCFFF2F01F21
-:10B01000001E0C9A0A9BE6CCFFF1F01F001B0C9A55
-:10B020000A9BE6CCFFF0F01F00180C9A0A9BE6CCB6
-:10B03000FFEFF01F00150C9A0A9BE6CCFFEEF01F05
-:10B0400000120C990A9AE6CCFFED306BF01F000F4E
-:10B050000C9A0A9BE6CCFFE7F01F000B0C9A0A9BA8
-:10B06000E6CCFFE6F01F00080C990A9AE6CCFFE553
-:10B07000320BF01F0006E3CD806800008001A37C46
-:10B080008001A2FC8001A29C8001AD98EBCD4068BC
-:10B09000189316951496F01F00150C9A0A9BE6CC8F
-:10B0A000FFFCF01F00120C9A0A9BE6CCFFF8F01F81
-:10B0B000000F0C9A0A9BE6CCFFF4F01F000C0C9AD0
-:10B0C0000A9BE6CCFFF0F01F000A0C9A0A9BE6CC24
-:10B0D000FFEEF01F00080C990A9AE6CCFFED303B1A
-:10B0E000F01F0005E3CD80688001A37C8001A2FCF5
-:10B0F0008001A29C8001AD98EBCD40681893169515
-:10B100001496F01F00120C9A0A9BE6CCFFFCF01F6D
-:10B1100000100C9A0A9BE6CCFFFBF01F000D0C9967
-:10B120000A9AE6CCFFFA302BF01F000A0C9A0A9B11
-:10B13000E6CCFFF8F01F00050C9A0A9BE6CCFFF462
-:10B14000F01F0002E3CD80688001A37C8001A29CF7
-:10B150008001AD98EBCD4068189316951496F01FBA
-:10B1600000120C9A0A9BE6CCFFFCF01F00100C9A10
-:10B170000A9BE6CCFFFBF01F000D0C990A9AE6CC67
-:10B18000FFFA302BF01F000A0C9A0A9BE6CCFFF85E
-:10B19000F01F00050C9A0A9BE6CCFFF4F01F00029A
-:10B1A000E3CD80688001A37C8001A29C8001AD98E2
-:10B1B000EBCD4068189316951496F01F000C0C9A6E
-:10B1C0000A9BE6CCFFFCF01F000A0C9A0A9BE6CC17
-:10B1D000FFFBF01F00070C990A9AE6CCFFFA302B10
-:10B1E000F01F0004E3CD80688001A37C8001A29C55
-:10B1F0008001AD98EBCD4068189316951496F01F1A
-:10B2000000090C9A0A9BE6CCFFFCF01F00070C9982
-:10B210000A9AE6CCFFFB303BF01F0004E3CD8068C8
-:10B220008001A37C8001A29C8001AD98EBCD406899
-:10B23000189316951496F01F00090C9A0A9BE6CCF9
-:10B24000FFFCF01F00070C990A9AE6CCFFFB303B8D
-:10B25000F01F0004E3CD80688001A37C8001A29CE4
-:10B260008001AD98EBCD4068189316951496F01FA9
-:10B2700000090C9A0A9BE6CCFFFCF01F00070C9912
-:10B280000A9AE6CCFFFB303BF01F0004E3CD806858
-:10B290008001A37C8001A29C8001AD98EBCD406829
-:10B2A000189316951496F01F000C0C9A0A9BE6CC86
-:10B2B000FFFCF01F00090C9A0A9BE6CCFFF8F01F78
-:10B2C00000070C990A9AE6CCFFF7303BF01F000408
-:10B2D000E3CD80688001A37C8001A29C8001AD98B1
-:10B2E000EBCD4068189316951496F01F000C0C9A3D
-:10B2F0000A9BE6CCFFFCF01F00090C9A0A9BE6CCE7
-:10B30000FFF8F01F00070C990A9AE6CCFFF7303BD4
-:10B31000F01F0004E3CD80688001A37C8001A29C23
-:10B320008001AD98EBCD4068189316951496F01FE8
-:10B33000000C0C9A0A9BE6CCFFFCF01F00090C9A4B
-:10B340000A9BE6CCFFF8F01F00070C990A9AE6CC9E
-:10B35000FFF7303BF01F0004E3CD80688001A37C41
-:10B360008001A29C8001AD98EBCD406818931695A2
-:10B370001496F01F000C0C9A0A9BE6CCFFFCF01F01
-:10B3800000090C9A0A9BE6CCFFF8F01F00070C9905
-:10B390000A9AE6CCFFF7303BF01F0004E3CD80684B
-:10B3A0008001A37C8001A29C8001AD98EBCD406818
-:10B3B000189316951496F01F00090C9A0A9BE6CC78
-:10B3C000FFFCF01F00070C990A9AE6CCFFFB303B0C
-:10B3D000F01F0004E3CD80688001A37C8001A29C63
-:10B3E0008001AD98EBCD4068169514961893F01F28
-:10B3F00000220C990A9AE6CCFFFC308BF01F001F4C
-:10B400000C9A0A9BE6CCFFF4F01F001B0C9A0A9BD7
-:10B41000E6CCFFF0F01F00180C9A0A9BE6CCFFEC7C
-:10B42000F01F00150C9A0A9BE6CCFFE8F01F0012F3
-:10B430000C9A0A9BE6CCFFE4F01F000F0C9A0A9BC3
-:10B44000E6CCFFE0F01F000E0C9A0A9BE6CCFFDE74
-:10B45000F01F000B0C9A0A9BE6CCFFDCF01F0008E3
-:10B460000C990A9AE6CCFFDA302BF01F0004E3CDEA
-:10B47000806800008001A37C8001AD988001A2FC5F
-:10B48000EBCD4068189316951496F01F00090C9A9E
-:10B490000A9BE6CCFFFCF01F00070C990A9AE6CC49
-:10B4A000FFFB303BF01F0004E3CD80688001A37CEC
-:10B4B0008001A29C8001AD98EBCD40681695149652
-:10B4C0001893F01F00060C990A9AE6CCFFFC308B0B
-:10B4D000F01F0003E3CD80688001A37C8001AD985C
-:10B4E000EBCD4068189316951496F01F00090C9A3E
-:10B4F0000A9BE6CCFFFCF01F00070C990A9AE6CCE9
-:10B50000FFFB303BF01F0004E3CD80688001A37C8B
-:10B510008001A29C8001AD98EBCD406818931695F0
-:10B520001496F01F00100C9A0A9BE6CCFFFCF01F4B
-:10B53000000E0C990A9AE6CCFFFB306BF01F000B53
-:10B540000A9AE6CCFFF50C99306BF01F00080C9AB4
-:10B550000A9BE6CCFFEFF01F0004E3CD80680000FB
-:10B560008001A37C8001A29C8001AD98EBCD406856
-:10B57000169514961893F01F000C0C990A9AE6CCB5
-:10B58000FFFC306BF01F00090C9A0A9BE6CCFFF61B
-:10B59000F01F00070C9A0A9BE6CCFFF5F01F000491
-:10B5A000E3CD80688001A37C8001AD988001A29CDE
-:10B5B000EBCD4068169514961893F01F000D0C996A
-:10B5C0000A9AE6CCFFFC306BF01F000A0A9AE6CC20
-:10B5D000FFF60C99302BF01F00070C9A0A9BE6CC63
-:10B5E000FFF4F01F0005E3CD806800008001A37C1C
-:10B5F0008001AD988001AB3CEBCD40681695149668
-:10B600001893F01F000D0C990A9AE6CCFFFC306BE2
-:10B61000F01F000A0A9AE6CCFFF60C99302BF01FB7
-:10B6200000070C9A0A9BE6CCFFF4F01F0005E3CD5F
-:10B63000806800008001A37C8001AD988001AB3C54
-:10B64000EBCD4068169514961893F01F00100C99D6
-:10B650000A9AE6CCFFFC306BF01F000D0C9A0A9B97
-:10B66000E6CCFFF6F01F000B0C9A0A9BE6CCFFF429
-:10B67000F01F00080C990A9AE6CCFFF2302BF01F5D
-:10B680000004E3CD806800008001A37C8001AD98B8
-:10B690008001A2FCEBCD4068169514961893F01F1C
-:10B6A000000A0C990A9AE6CCFFFC306BF01F0007E9
-:10B6B0000C990A9AE6CCFFF6302BF01F0004E3CD7C
-:10B6C000806800008001A37C8001AD98EBCD4068CC
-:10B6D000169514961893F01F000A0C990A9AE6CC56
-:10B6E000FFFC306BF01F00070C990A9AE6CCFFF6BE
-:10B6F000302BF01F0004E3CD806800008001A37CA4
-:10B700008001AD98EBCD4068189316951496F01F04
-:10B7100000220C9A0A9BE6CCFFFCF01F00200C9A3A
-:10B720000A9BE6CCFFFAF01F001D0C9A0A9BE6CCA0
-:10B73000FFF8F01F001A0C990A9AE6CCFFF6306B5E
-:10B74000F01F00170C9A0A9BE6CCFFF0F01F0015C3
-:10B750000C9A0A9BE6CCFFEFF01F00120C990A9A94
-:10B76000E6CCFFEE302BF01F000E0C9A0A9BE6CCC5
-:10B77000FFECF01F00090C9A0A9BE6CCFFE8F01FD3
-:10B7800000060C9A0A9BE6CCFFE4F01F0007E3CD0D
-:10B79000806800008001A37C8001A2FC8001AD983C
-:10B7A0008001A29C8001AB3CEBCD406816951496BD
-:10B7B0001893F01F000C0C990A9AE6CCFFFC306B32
-:10B7C000F01F00090C9A0A9BE6CCFFF6F01F000759
-:10B7D0000C9A0A9BE6CCFFF5F01F0004E3CD8068CD
-:10B7E0008001A37C8001AD988001A29CEBCD4068D4
-:10B7F000169514961893F01F000C0C990A9AE6CC33
-:10B80000FFFC306BF01F00090C9A0A9BE6CCFFF698
-:10B81000F01F00070C9A0A9BE6CCFFF5F01F00040E
-:10B82000E3CD80688001A37C8001AD988001A29C5B
-:10B83000EBCD4068189316951496F01F00120C9AE1
-:10B840000A9BE6CCFFFCF01F00100C9A0A9BE6CC8A
-:10B85000FFFAF01F000D0C9A0A9BE6CCFFF8F01FD0
-:10B86000000A0A9AE6CCFFF60C99306BF01F00072D
-:10B870000C9A0A9BE6CCFFF0F01F0005E3CD806830
-:10B880008001A37C8001A2FC8001AD988001AB3CCB
-:10B89000EBCD4068189316951496F01F00100C9A83
-:10B8A0000A9BE6CCFFFCF01F000E0C9A0A9BE6CC2C
-:10B8B000FFFAF01F000B0C990A9AE6CCFFF8306BE8
-:10B8C000F01F00080C990A9AE6CCFFF2302BF01F0B
-:10B8D0000005E3CD806800008001A37C8001A2FC0C
-:10B8E0008001AD98EBCD4068189316951496F01F23
-:10B8F00000090C9A0A9BE6CCFFFFF01F00060C998A
-:10B900000A9AE6CCFFFE302BF01F0003E3CD8068DF
-:10B910008001A29C8001AD98EBCD406816951496ED
-:10B920001893F01F00130C990A9AE6CCFFFF306BB6
-:10B93000F01F00100C9A0A9BE6CCFFF9F01F000CD8
-:10B940000C9A0A9BE6CCFFF8F01F00090A9AE6CC95
-:10B95000FFF70C99306BF01F00070C9A0A9BE6CC9E
-:10B96000FFF1F01F0003E3CD806800008001A29C7E
-:10B970008001AD98EBCD4068189316951496F01F92
-:10B9800000060C9A0A9BE6CCFFFCF01F0004E3CDF6
-:10B99000806800008001A37C8001B918EBCD40686D
-:10B9A0001696149518931499169A306BF01F000888
-:10B9B0000A9A0C9BE6CCFFFAF01F00060A9A0C9B31
-:10B9C000E6CCFFF9F01F0003E3CD80688001AD985D
-:10B9D0008001A29CEBCD4068189316951496F01F39
-:10B9E00000060C9A0A9BE6CCFFFCF01F0004E3CD96
-:10B9F000806800008001A37C8001B99CEBCD406889
-:10BA0000189316951496F01F00090C9A0A9BE6CC21
-:10BA1000FFFFF01F00060C990A9AE6CCFFFE306B80
-:10BA2000F01F0003E3CD80688001A29C8001AD98E7
-:10BA3000EBCD4068189316951496F01F00060C9AEB
-:10BA40000A9BE6CCFFFCF01F0004E3CD80680000F9
-:10BA50008001A37C8001B9FCD4011499169A308B23
-:10BA6000F01F0002D80200008001AD98EBCD4068C5
-:10BA7000169514961893F01F00090A9AE6CCFFFC5D
-:10BA80000C99306BF01F00060C9A0A9BE6CCFFF66F
-:10BA9000F01F0004E3CD80688001A37C8001AD9895
-:10BAA0008001A2FCEBCD4068189316951496F01F08
-:10BAB00000090C9A0A9BE6CCFFFCF01F00070C99CA
-:10BAC0000A9AE6CCFFFB303BF01F0004E3CD806810
-:10BAD0008001A37C8001A29C8001AD98D4011499BF
-:10BAE000169A320BF01F0002D80200008001AD98B8
-:10BAF000EBCD4068189316951496F01F00180C9A19
-:10BB00000A9BE6CCFFE0F01F00160C9A0A9BE6CCDD
-:10BB1000FFDEF01F00140C9A0A9BE6CCFFDDF01F3D
-:10BB200000110C990A9AE6CCFFDC306BF01F000E76
-:10BB30000C9A0A9BE6CCFFD6F01F000C0C9A0A9BCD
-:10BB4000E6CCFFCEF01F00070C9A0A9BE6CCFFCD97
-:10BB5000F01F0004E3CD80688001BADC8001A2FC04
-:10BB60008001A29C8001AD988001BA58EBCD40685D
-:10BB7000189316951496F01F00060C9A0A9BE6CCB3
-:10BB8000FFFCF01F0004E3CD806800008001A37C6F
-:10BB90008001BAF0D4011499169A303BF01F0002CC
-:10BBA000D80200008001AD98EBCD40E018971695C3
-:10BBB0001496F01F000D6E1C580CC0800C990A9A48
-:10BBC0006E0BF01F000AE3CD80E05816C0918A99F1
-:10BBD0006A4812088F186E098A181208AA18E3CD4D
-:10BBE00080E000008001A37C8001AD98EBCD40682F
-:10BBF000189316951496F01F00060C9A0A9BE6CC33
-:10BC0000FFFCF01F0004E3CD806800008001A37CEE
-:10BC10008001BBA8EBCD4068189316951496F01FD1
-:10BC200000100C9A0A9BE6CCFFFCF01F000E0C994A
-:10BC30000A9AE6CCFFFB303BF01F000B0A9AE6CCD9
-:10BC4000FFF80C99308BF01F00080C9A0A9BE6CC89
-:10BC5000FFF0F01F0006E3CD806800008001A37CA8
-:10BC60008001A29C8001AD988001BBA8EBCD40680B
-:10BC7000169514961893F01F00090A9AE6CCFFFC5B
-:10BC80000C99308BF01F00060C9A0A9BE6CCFFF44F
-:10BC9000F01F0004E3CD80688001A37C8001AD9893
-:10BCA0008001BBA8EBCD40801697189B580AC0F1C5
-:10BCB0008E1C8E89FDDCC010FCC8FFF91238C285CD
-:10BCC000F8C8FFF88F3AAE18E3CD8080581AC070DC
-:10BCD0008E1CF8C8FFF8AE18E3CD80808E9A8E894E
-:10BCE000F4C8FFF91238C2C46E48140811F9B889B3
-:10BCF00011EAB89A11D9B8A911CAB8BA11B9B8C914
-:10BD000011AAB8DA1199B8E9118AB8FACE2B17F846
-:10BD10006E4A1C0AB48817E9B49917D8B4A817C991
-:10BD2000B4B917B8B4C817A9B4D91798B4E8178923
-:10BD3000B4F98E1CF8C8FFF8AE18E3CD8080300B44
-:10BD4000308A8F3BF01F00028E1CCC4B800091D0BC
-:10BD5000EBCD4068189316951496F01F000C0C9AC2
-:10BD60000A9BE6CCFFF8F01F000A0C9A0A9BE6CC6F
-:10BD7000FFF6F01F00070C9A0A9BE6CCFFF4F01FB9
-:10BD80000005E3CD806800008001BCA48001A2FC16
-:10BD90008001AB3CEBCD40F8206D169714961499BA
-:10BDA0001895169A306BF01F002D0C9A0E9BEACC5A
-:10BDB000FFFAF01F002B0C9A0E9BEACCFFF9F01F44
-:10BDC00000280C9A0E9BEACCFFF8F01F00260C9A74
-:10BDD0000E9BEACCFFF0F01F00240C9A0E9BEACCDD
-:10BDE000FFECF01F0021318A0E9B1A9CF01F001FF0
-:10BDF000EAC3FFE81A940C9A1A9B069CF01F001ADB
-:10BE00005816C1801A9B0C9A6A7CF01F00199A98E8
-:10BE10008E992048F00901098B690C9A069C0E9BAB
-:10BE2000F01F00116A698E181208AE182FADE3CD0D
-:10BE300080F86A698E182FC81208E06B00E8BA080B
-:10BE40006E5CF01F000C8B7CCF20505C1A9B0C9A10
-:10BE5000F01F0007CE3B00008001AD988001A29C3E
-:10BE60008001BCA48001A37C800091DC8001BD50D6
-:10BE70008001D3ECEBCD4068189316951496F01F13
-:10BE800000120C9A0A9BE6CCFFFCF01F00100C9AE3
-:10BE90000A9BE6CCFFFAF01F000D0C9A0A9BE6CC39
-:10BEA000FFF8F01F00090C9A0A9BE6CCFFF4F01F84
-:10BEB00000060C9A0A9BE6CCFFF0F01F0005E3CDCC
-:10BEC000806800008001A37C8001A2FC8001BD94F9
-:10BED000EBCD40E0189716951496F01F000B0C9AC6
-:10BEE0000A9BEECCFFFCF01F00090FD93008F009C7
-:10BEF0001800C0700C9A0A9BEECCFFF8F01F0004EB
-:10BF0000E3CD80E08001A37C8001B8E48001BD9492
-:10BF1000EBCD4060202D301A18951696FACCFFFE16
-:10BF2000F01F00089A181BF92FE8F0090109AC0965
-:10BF30001BCA8B5A1BD88B482FEDE3CD80600000C5
-:10BF40008001A444EBCD40E07808975818971696E6
-:10BF50007859E049003FE0880004E3CF80E0FEF834
-:10BF6000029AF009032F78455815E0800127E04533
-:10BF70000080CF41780C301AF01F00A1E3CF90E091
-:10BF800078485808C391780C301AF01F009EE3CF10
-:10BF900090E07848F0C90005E049008FFE9BFFDF84
-:10BFA000FEF80264F009032F7848E0480081E08041
-:10BFB000010CE08A002BE0480083E0800118E08556
-:10BFC0000110E0480085CCA1780C301AF01F008FDA
-:10BFD000E3CF90E0780C301AF01F008DE3CF90E0B3
-:10BFE0007848F0C90001E049009BFE9BFFB8FEF8CD
-:10BFF0000222F009032FE0480081CB01780C301AAF
-:10C00000F01F0085E3CF90E05848E08000E4E0486E
-:10C010000080CA41781A300B780CF01F00806E0C3B
-:10C020000C9B301AF01F007EE3CF90E0780C301AA2
-:10C03000F01F007CE3CF90E0780C301AF01F007AFC
-:10C04000E3CF90E0780C301AF01F0078E3CF90E057
-:10C05000780C301AF01F0076E3CF90E0780C301A9D
-:10C06000F01F0074E3CF90E0780C301AF01F0072DC
-:10C07000E3CF90E0780C301AF01F0070E3CF90E02F
-:10C08000780C301AF01F006EE3CF90E0780C301A75
-:10C09000F01F006CE3CF90E0780C301AF01F006ABC
-:10C0A000E3CF90E0780C301AF01F0068E3CF90E007
-:10C0B000780C301AF01F0066E3CF90E0780C301A4D
-:10C0C000F01F0064E3CF90E0780C301AF01F00629C
-:10C0D000E3CF90E0780C301AF01F0060E3CF90E0DF
-:10C0E000780C301AF01F005EE3CF90E0780C301A25
-:10C0F000F01F005CE3CF90E0780C301AF01F005A7C
-:10C10000E3CF90E0780C301AF01F0058E3CF90E0B6
-:10C11000780C301AF01F0056E3CF90E0780C301AFC
-:10C12000F01F0054E3CF90E0780C301AF01F00525B
-:10C13000E3CF90E0780C301AF01F0050E3CF90E08E
-:10C14000780C301AF01F004EE3CF90E0780C301AD4
-:10C15000F01F004CE3CF90E0780C301AF01F004A3B
-:10C16000E3CF90E0780C301AF01F0048E3CF90E066
-:10C17000780C301AF01F0046E3CF90E0780C301AAC
-:10C18000F01F0044E3CF90E0780C301AF01F00421B
-:10C19000E3CF90E0780C301AF01F0040E3CF90E03E
-:10C1A000780C301AF01F003EE3CF90E0780C301A84
-:10C1B000F01F003CE3CF90E0780C0A9AF01F003AA1
-:10C1C0000A9CE3CD80E0780C301AF01F0038E3CFF2
-:10C1D00090E0780C301AF01F0036E3CF90E0780C36
-:10C1E000301AF01F0034E3CF90E0780C301AF01FC3
-:10C1F0000032E3CF90E000008003B8288001AAEC71
-:10C200008001A4988003B9288001B3248001A37C15
-:10C210008003BB688001A4CC800091D08001BC1455
-:10C220008001BAA48001A4748001BA6C8001AC546E
-:10C230008001AA808001AE8C8001AAC88001AAA4D6
-:10C240008001AA208001AF5C8001A9CC8001A9787F
-:10C250008001A9488001A8F48001A8D08001A884A9
-:10C260008001A8608001B1548001B1B08001B1F4B7
-:10C270008001A8188001AA508001B0F88001A83C74
-:10C280008001A7F48001B4E08001B56C8001B5B0F5
-:10C290008001B5F88001B6408001BED08001B5189C
-:10C2A0008001B9748001AE3C8001B3AC8001A6145A
-:10C2B0008001B3688001B2E0EBCD40C012971499C1
-:10C2C0008E96109A582CC280E08A0008584CC360A1
-:10C2D000587CC190E3CF80C0580CC0A0581CCFB18F
-:10C2E00058EBFE9BFFF9FEF80312F00B032F580BDF
-:10C2F000CF21129C0E9BF01F00C28E98F006010CFD
-:10C30000E3CD80C0202BE04B007FFE9BFFE5FEF8D5
-:10C3100002F2F00B032F582BE080015DE089001A38
-:10C32000580BC260581BCD71129C0E9BF01F00B6BB
-:10C330008E98F006010CE3CD80C0580BCCC1129C46
-:10C340000E9BF01F00B28E98F006010CE3CD80C06A
-:10C35000584BC170E0850148585BCBD1129C0E9BB5
-:10C36000F01F00AB8E98F006010CE3CD80C0129C4C
-:10C370000E9BF01F00A88E98F006010CE3CD80C044
-:10C38000129C0E9BF01F00A48E98F006010CE3CDCA
-:10C3900080C0129C0E9BF01F00A18E98F006010C2D
-:10C3A000E3CD80C0129C0E9BF01F009D8E98F0067E
-:10C3B000010CE3CD80C0129C0E9BF01F009A8E985A
-:10C3C000F006010CE3CD80C0129C0E9BF01F00967E
-:10C3D0008E98F006010CE3CD80C0129C0E9BF01FDE
-:10C3E00000938E98F006010CE3CD80C0129C0E9B4A
-:10C3F000F01F008F8E98F006010CE3CD80C0129CD8
-:10C400000E9BF01F008C8E98F006010CE3CD80C0CF
-:10C41000129C0E9BF01F00888E98F006010CE3CD55
-:10C4200080C0129C0E9BF01F00858E98F006010CB8
-:10C43000E3CD80C0129C0E9BF01F00818E98F00609
-:10C44000010CE3CD80C0129C0E9BF01F007E8E98E5
-:10C45000F006010CE3CD80C0129C0E9BF01F007A09
-:10C460008E98F006010CE3CD80C0129C0E9BF01F4D
-:10C4700000778E98F006010CE3CD80C0129C0E9BD5
-:10C48000F01F00738E98F006010CE3CD80C0129C63
-:10C490000E9BF01F00708E98F006010CE3CD80C05B
-:10C4A000129C0E9BF01F006C8E98F006010CE3CDE1
-:10C4B00080C0129C0E9BF01F00698E98F006010C44
-:10C4C000E3CD80C0129C0E9BF01F00658E98F00695
-:10C4D000010CE3CD80C0129C0E9BF01F00628E9871
-:10C4E000F006010CE3CD80C0129C0E9BF01F005E95
-:10C4F0008E98F006010CE3CD80C0129C0E9BF01FBD
-:10C50000005B8E98F006010CE3CD80C0129C0E9B60
-:10C51000F01F00578E98F006010CE3CD80C0129CEE
-:10C520000E9BF01F00548E98F006010CE3CD80C0E6
-:10C53000129C0E9BF01F00508E98F006010CE3CD6C
-:10C5400080C0129C0E9BF01F004D8E98F006010CCF
-:10C55000E3CD80C0129C0E9BF01F00498E98F00620
-:10C56000010CE3CD80C0129C0E9BF01F00468E98FC
-:10C57000F006010CE3CD80C0129C0E9BF01F004220
-:10C580008E98F006010CE3CD80C0129C0E9BF01F2C
-:10C59000003F8E98F006010CE3CD80C0129C0E9BEC
-:10C5A000F01F003B8E98F006010CE3CD80C0129C7A
-:10C5B0000E9BF01F00388E98F006010CE3CD80C072
-:10C5C000129C0E9BF01F00348E98F006010CE3CDF8
-:10C5D00080C0129C0E9BF01F00318E98F006010C5B
-:10C5E000E3CD80C0129C0E9BF01F002D8E98F006AC
-:10C5F000010CE3CD80C000008003BDD88001A49869
-:10C600008003BE148001BC6C8001AE648001A5C0B3
-:10C610008001B4B88001A5F08001B8308001B29CDF
-:10C620008001B6948001B6CC8001B9D48001BA30C3
-:10C630008001BB6C8001B7048001B7EC8001BA6C4B
-:10C640008001B8908001BE748001A5188001A55CAE
-:10C650008001B7A88001A7308001A7888001AE8C37
-:10C660008001AED88001A7D08001AB148001AF1843
-:10C670008001A9FC8001A9A88001AFD48001A92470
-:10C680008001B08C8001A8A88001B22C8001A7ACE9
-:10C690008001B2648001BBEC8001B4808001B3E40E
-:10C6A000EBCD40FE208D306A18977853784578019D
-:10C6B000FAC2FFE6300B049CF01F00384B88F139BA
-:10C6C000010BE06AFFFFFB69001E300B1A9CF01F94
-:10C6D0000035302A1A9B049CF01F0033029A302840
-:10C6E0001A990A9B069CF01F00319A194B08F9D938
-:10C6F000C0101188103CF9B60200F1DCE318E06AC2
-:10C7000000FFF1DAE326EDD9E309FBF93C01F9D6A4
-:10C71000E30C1A944A78118A580AC060F4C80001E0
-:10C72000F9E80008C2918F3CF01F00238F2CC31042
-:10C730006E3A300BF01F0019FB66001F6E2BFB6377
-:10C74000001CFB65001D8E78F5D8C01020281A9CAF
-:10C75000FB58001AF01F0013049C1A9B300AF01FAC
-:10C7600000121A99029A0A9B069C3008F01F000FCB
-:10C770002F8DE3CF90FE9A18F4C90001F9E9000962
-:10C78000F40901095C591208120CBA181206CCCB34
-:10C790002F8DE3CD80FE0000800091D0000087F453
-:10C7A0008001C7B88001A4448001C2B8000079E5C7
-:10C7B000000079E48000920030083019B838B818C9
-:10C7C000B828B80A3008994B993999285EFCD703E4
-:10C7D000EBCD4068189316951496F01F00090C9A3B
-:10C7E0000A9BE6CCFFFFF01F00060C9A0A9BE6CCE2
-:10C7F000FFFEF01F0004E3CD806800008001A29CD2
-:10C800008001A2FCEBCD40681696149518931499FC
-:10C81000169A303BF01F00050A9A0C9BE6CCFFFDF0
-:10C82000F01F0003E3CD80688001AD988001A29CD9
-:10C83000EBCD40681696149518931499169A303BD0
-:10C84000F01F00050A9A0C9BE6CCFFFDF01F0003C9
-:10C85000E3CD80688001AD988001A29CD431FACEEE
-:10C86000FFDC189616971494129210907C157C0198
-:10C87000581AC2D0C153582AC1300D893FF8F00967
-:10C880001800C2100D98E2081900E08B0005E008BE
-:10C890001900C6E23FF83009AC88AC99D83A8E1836
-:10C8A000AE383FF80D89F0091800C0D00C9C089AEA
-:10C8B0000E9BF01F0034089A0E9BECCCFFFFF01F7C
-:10C8C0000031CDCB3008300CAC98D83296285808BF
-:10C8D000C4C0B618AE3830088B08AC983FFAAC8AA2
-:10C8E0008E198E08F2081900FE98FFEE1494ECC31E
-:10C8F000FFFFC1D8E8081800EDF41E000D9A8E184D
-:10C900008E89F408000B5C781019123AE089002631
-:10C91000AE1B6A082FF88B080D89E8091800CB3187
-:10C920008E198E08F2081900FE98FFCEAE39301A23
-:10C930000E9B0C9CF01F0013301A0E9B069CF01FE0
-:10C9400000110D88E4081800CD618E888E990D9A2B
-:10C950001218103AE08A000E3FF83009AC88AC9902
-:10C960008E182028AE08C8AB9618B628CB4BDA3AFA
-:10C970006A0A6E293018F00A094810498F29C7EB56
-:10C980008001A29CEBCD4040201D1A9E9AF65C7857
-:10C990001ADE1AD6F01F00032FED2FFDE3CD8040E5
-:10C9A0008001C85CEBCD40E0302818951AD8169667
-:10C9B00014973069F01F00072FFD580CC0700E9AB5
-:10C9C0000C9BEACCFFFEF01F0004E3CD80E00000EA
-:10C9D0008001C9848001A2FCEBCD40E0301818959D
-:10C9E0001AD81696149732A9F01F00072FFD580C7D
-:10C9F000C0700E9A0C9BEACCFFFEF01F0004E3CD42
-:10CA000080E000008001C9848001A29CEBCD40E061
-:10CA1000305818951AD8169614973029F01F001020
-:10CA20002FFD580CC190EACCFFFE0E9A0C9BF01F14
-:10CA3000000D0E9A0C9BEACCFFFCF01F000B0E9A27
-:10CA40000C9BEACCFFFBF01F00080E9A0C9BEACC73
-:10CA5000FFFAF01F0005E3CD80E000008001C984EB
-:10CA60008001A2FC8001A29CEBCD40E0301818951B
-:10CA70001AD8169614973039F01F00072FFD580C5E
-:10CA8000C0700E9A0C9BEACCFFFEF01F0004E3CDB1
-:10CA900080E000008001C9848001A29CEBCD40E0D1
-:10CAA000306818951AD8169614973049F01F001060
-:10CAB0002FFD580CC190EACCFFFE0E9A0C9BF01F84
-:10CAC000000D0E9A0C9BEACCFFFDF01F000A0E9A97
-:10CAD0000C9BEACCFFFCF01F00080E9A0C9BEACCE2
-:10CAE000FFFAF01F0005E3CD80E000008001C9845B
-:10CAF0008001A29C8001A2FCEBCD40E0301818958B
-:10CB00001AD81696149730A9F01F00072FFD580C5D
-:10CB1000C0700E9A0C9BEACCFFFEF01F0004E3CD20
-:10CB200080E000008001C9848001A29CD43120BD36
-:10CB30005019500818961697581AC390C272E06898
-:10CB400000FDE06900DD1AD8300A3018F01F005CE3
-:10CB50002FFD580CC1E0300A0E9BECCCFFFEF01FFD
-:10CB60000059300A0E9BECCCFFFDF01F0056300A36
-:10CB70000E9BECCCFFFCF01F0053ECCCFFFB0E9B9C
-:10CB8000300AF01F0050301CC048582AC040301CEA
-:10CB90002F5DD83219893FF8F0091800E080008B2A
-:10CBA0009618301C2FA8B6182F5DD832761850581A
-:10CBB000B1485038760A504AF6E80008F8C2FFFE3D
-:10CBC000FAE90018F8C3FFFDF6EA0010F8C9FFFB08
-:10CBD000FAEB0020F8C4FFFC50293FF5FAC0FFD85B
-:10CBE000E06100FDC0680D998E382FE81208AE286C
-:10CBF0001AD030181AD1E06900DD109A0E9B0C9CF7
-:10CC0000F01F00312FED580CC4105805FBF5500AE9
-:10CC1000FBF8400AF9B90401F1D9E408EBD8E405BE
-:10CC2000301A0E9B049CF01F0027301A0E9B069CA6
-:10CC3000F01F0024301A0E9B089CF01F00220DA844
-:10CC40003009F2081800CD010DB83509F2081800B6
-:10CC5000CCB10DC83F29F2081800CC61301A0E9BE8
-:10CC6000402CF01F00180DD84019F2081800CBC155
-:10CC70004038301CAE28F80509496E2812488F2824
-:10CC800040095809C8509305C84B4038FB58001458
-:10CC9000FAE80020EEE90010FAEA0010EEEB0000DE
-:10CCA000FAE80018EEE90008AC9C3FF8AC882F5D6C
-:10CCB000D8323008B898300CC6CB00008001C98447
-:10CCC0008001A29C8001C85CD431207D1895169704
-:10CCD00014961293581AC110C0B2300830290C9A19
-:10CCE0000E9B0A9CF01F0032C5712F9DD832582A26
-:10CCF000CF50301C2F9DD83276185018760AF0008D
-:10CD00001410500A1A91F6E80008F8C4FFFAFAE97C
-:10CD100000083FF6F6EA0010FAC2FFE8FAEB00104E
-:10CD2000C1A85806FBF65006FBF84006F9B9040105
-:10CD3000F1D9E408EDD8E406301A0E9B089CF01FE8
-:10CD4000001D0BE8E6081800C1D00B998E382FE8BB
-:10CD50001208AE2804983029301A0E9B0A9CF01F46
-:10CD60000014CE01BA20E2E80010EEE90010E2E87B
-:10CD70000000EEE90000E2EA0008EEEB00082F9D5B
-:10CD8000D83230186E29F006094AAE201449109C9A
-:10CD90008F292F9DD8320B982FF8EACCFFFA0C9AE6
-:10CDA0000E9BAA98F01F0003301CCA5B8001CB2C9D
-:10CDB0008001A29CEBCD40EC206D301918971693A2
-:10CDC0001495F01F002DC0412FADE3CD80ECEECCCB
-:10CDD000FFF90A9A069BF01F00290A9A069BEECCDF
-:10CDE000FFF8F01F00260A9A069BEECCFFF7F01F13
-:10CDF00000230A9A069BEECCFFF6F01F00210A9A48
-:10CE0000069BEECCFFF2F01F001E0A9A069BEECCAA
-:10CE1000FFEEF01F001B0A9A069BEECCFFEAF01F04
-:10CE2000001858055F0858255F091248CCE06608CD
-:10CE30005008661886160A9A5018EBD8B010BA1522
-:10CE4000E6E80008FAE900082026E6E20010E068BB
-:10CE500000FD0A16AE961A9BFAE300100E9C1AD833
-:10CE6000E06900DD3018F01F00072FFD2FADE3CD86
-:10CE700080EC00008001CCC88001A29C8001C7D05A
-:10CE80008001C984EBCD40EC206D18971693149562
-:10CE9000582AC18119893FF8F0091800F9F91801D9
-:10CEA000F7F81201F9BA0102F1DAE108F1D9E10863
-:10CEB000F7F81C01F9B80000F9F80E012FADE3CD29
-:10CEC00080EC3009F01F0019CFA0EECCFFF90A9AD0
-:10CED000069BF01F00170A9A069BEECCFFF8F01F86
-:10CEE00000145805CEC166085008661886160A9ABE
-:10CEF0005018EBD8B010BA15E6E80008FAE90008B7
-:10CF00002026E6E20010E06800FD0A16AE961A9BA5
-:10CF1000FAE300100E9C1AD8E06900DD3018F01F0B
-:10CF200000052FFDCCCB00008001CCC88001A29C65
-:10CF30008001C984D42112951497580A5F095805B5
-:10CF40005F08169A1248C2510B986E29F0C4FFFE72
-:10CF5000F2C800015BD8E08B0015129C089B5D1A9B
-:10CF600018965806C0C06E086E192FF80809089A5E
-:10CF70000A9B8F088F190C9CF01F00080C9CD8226C
-:10CF8000089B5D1A300818968F2C8F188F08CEAB2F
-:10CF900030060C9CD8220000800091DCEBCD40FCD8
-:10CFA00012951494580A5F0958055F0818921248A0
-:10CFB0001693C191300995296A085808E08A00162D
-:10CFC00012966A270E99089A069B049CF01F000B84
-:10CFD0002FF6EEF7FFF86A085807F7B701F80C3894
-:10CFE000FE99FFF2E3CD80FCEAE80000F4E90000DE
-:10CFF0006A2A892AE3CD80FC8001CF34EBCD40FC46
-:10D0000018931695581AC2C0C053582AC5E0E3CDEC
-:10D0100080FC782778085808FE9AFFFB7819580991
-:10D02000FE9AFFF79698300612087649F208000437
-:10D030000F9A0E9B2FEA1414089CF01F00332FF652
-:10D04000EEF7FFF866085807F7B701F80C38FE99B5
-:10D05000FFF166198A181208AA18E3CD80FC9628F9
-:10D060005808C3C0B618F9D8B010AA3C300830121E
-:10D0700087088718872810948A1C8A0E189AFC0C37
-:10D080001900C212F7DAC0106A46EC0B00081199B9
-:10D09000F2C7FFFE5827C250F1DEC0101618103735
-:10D0A000E0890020E40409496A2B2FF4F3EB00081F
-:10D0B000C1C0F4070008AA18F9D8B010189AFC0CDF
-:10D0C0001900CE13E3CD80FC781C580CFE9AFFA10A
-:10D0D00096181808B618E3CD80FC961CB62CCC6BBD
-:10D0E000AA0CFDDCB010CCBBF3EB1008069A8A99B1
-:10D0F0008B28EC090009485B6A5CF01F00058A1A5E
-:10D100008A0ECD8B800091DC8001D3EC8001CF347E
-:10D11000EBCD40F83FF510941697149340661388B2
-:10D12000EA081800C05130070E9CE3CD80F858047F
-:10D130005F1858065F991268CF700C9B5D1718979F
-:10D14000C0600C9A089BF01F0004CEFBA685A69C2D
-:10D15000CECB0000800091DCEBCD40C0129EF2E807
-:10D160000000F4E9000014977C2A8F2A18961D8984
-:10D17000169C3FF8F0091800C1401D993058F0097D
-:10D180001800E088000F2039E06A5556EA1A555514
-:10D19000F20B141FF20A04481619F2090019C028EC
-:10D1A00030091AD9189B1C990C9C7C280E9AF01FE8
-:10D1B00000042FFD8F2CE3CD80C000008001D11032
-:10D1C000EBCD406CF2E20000F4E3000072289528F9
-:10D1D0001495722813961AD6F01F00032FFD8B2C7E
-:10D1E000E3CD806C8001D110EBCD406FF2E2000006
-:10D1F000F4E30000F2E00008F4E10008F2E20010BD
-:10D20000F4E300101495725813961AD6F01F000319
-:10D210002FFD8B5CE3CD806F8001D110EBCD406F93
-:10D22000F2E20000F4E30000F2E00008F4E100089C
-:10D23000724895481495724813961AD6F01F000349
-:10D240002FFD8B4CE3CD806F8001D110EBCD406C76
-:10D25000F2E20000F4E30000722895281495722889
-:10D2600013961AD6F01F00032FFD8B2CE3CD806C94
-:10D270008001D110D421310418971AD41696149530
-:10D2800030183329F01F00142FFD580CC0B058057A
-:10D29000C0E18C986C4C0F9A100CEECBFFFEF01F87
-:10D2A000000F0F998C181208AC18D8225815CFA16E
-:10D2B0000F9AE80A1800E08800073FF83009AE88A6
-:10D2C000AE99CF0B8C986C4BEECCFFFE100BF01F81
-:10D2D0000003CE8B8001C984800091DCD4213018FA
-:10D2E000189716961495308410991AD4F01F0014CC
-:10D2F0002FFD580CC0B05805C0E18C986C4C0F9AAB
-:10D30000100CEECBFFFEF01F000F0F998C181208C7
-:10D31000AC18D8225815CFA10F9AE80A1800E08857
-:10D3200000073FF83009AE88AE99CF0B8C986C4B54
-:10D33000EECCFFFE100BF01F0003CE8B8001C984E2
-:10D34000800091DCEBCD40E0320930081AD9189505
-:10D35000169714961099F01F00132FFD580CC0F06B
-:10D360005806C0F18E986E4C0B9A100CEACBFFFE5B
-:10D37000F01F000D0B998E181208AE18E3CD80E057
-:10D380005816CF918E986E4B0B9A100BEACCFFFE7D
-:10D39000F01F00050B998E181208AE18CF0B000075
-:10D3A0008001C984800091ACD421201D7809189691
-:10D3B000F2C800015BD8E08B0014F2C80008C0E09E
-:10D3C0001A943005C0280E98500870079105680C13
-:10D3D000F01F00068D055807CF712FFDD8223008A9
-:10D3E00099082FFDD8220000800091E8EBCD40C0C5
-:10D3F00018971696F6CCFFF8F01F000DC130EEF826
-:10D40000FFF8EEC900089908F8C7FFF8930C9916C1
-:10D410000C9AE06B00FF0E9CF01F00060E9CE3CD03
-:10D4200080C018970E9CE3CD80C000008000920061
-:10D43000800091D0EBCD40FC32E818931AD81692B8
-:10D44000149430683079F01F00232FFD580CC03140
-:10D45000E3CD80FC089A049BE6CCFFFEF01F001E83
-:10D4600007993058F0091800E088001F2039E06A59
-:10D470005556EA1A5555F20B141FF20A0448F20BDE
-:10D4800001055814C18030060C972FF6662C0899B8
-:10D490000E0C049A2FD7303BF01F00100C35FE996C
-:10D4A000FFF6E3CD80FC5814F9B80000E7F80A0253
-:10D4B000E3CD80FCEA050017645C0E9BF01F0008BA
-:10D4C000872CCC700E9A300BF01F0006CDDB0000CD
-:10D4D0008001C9848001BB948001AD988001D3ECA8
-:10D4E000800091D0D421189616951497582AC161BE
-:10D4F00019893FF8F0091800F9F91801F7F8120135
-:10D50000F9BA0102F1DAE108F1D9E108F7F81C01F2
-:10D51000F9B80000F9F80E01D82230083049F01FA0
-:10D52000000CC0C00D98F0C400045817C0800E99BC
-:10D530000A9A089B6C2CF01F0007D822089B6A5C93
-:10D54000F01F00058D2CCF41CF9B00008001CB2C1C
-:10D550008001AD988001D3ECEBCD40FC206D189498
-:10D5600016951493582AC18119893FF8F0091800BB
-:10D57000F9F91801F7F81201F9BA0102F1DAE10834
-:10D58000F1D9E108F7F81C01F9B80000F9F80E012B
-:10D590002FADE3CD80FC30083019F01F0040CF9054
-:10D5A0006A1E501E6A0A500AEAE80008FAE90008F2
-:10D5B000EAEA0010FAEB0010EDDEB0105813C600D6
-:10D5C000E8C7FFFA0999ECC8FFFE12080E9CE5D8DF
-:10D5D000B010069A0A9BF01F00328A18E40819005E
-:10D5E000CD82069A0A9BE8CCFFF8F01F002E8A181D
-:10D5F000E4081900CCE2E8CCFFF4069A0A9BF01F7D
-:10D600000028685C88693008F0091900C0E01896A5
-:10D6100030070C9C2FF7069A0A9BF01F00222FC69A
-:10D6200088E80E38FE99FFF78A18E4081900CB1233
-:10D63000069AE8CCFFF20A9BF01F0019685888E9A7
-:10D64000887AF009002C3008F00A1900C0E018961A
-:10D6500030070C9C2FF7069A0A9BF01F00132FC669
-:10D6600088F80E38FE99FFF78A18E4081900C912E5
-:10D67000069A0A9BE8CCFFF0F01F0009C8ABE8C788
-:10D68000FFFA30EA300B0E9CF01F0008099B6A5C21
-:10D69000F01F0007895CC97B8001CB2C8001A2FCB4
-:10D6A0008001C8308001C804800091D08001D3EC93
-:10D6B000EBCD40FC206D189416951493582AC18127
-:10D6C00019893FF8F0091800F9F91801F7F8120163
-:10D6D000F9BA0102F1DAE108F1D9E108F7F81C0121
-:10D6E000F9B80000F9F80E012FADE3CD80FCE06839
-:10D6F00000FF33091AD83008F01F00532FFD580CD3
-:10D70000CF406A1E501E6A0A500AEAE80008FAE989
-:10D710000008EAEA0010FAEB0010EDDEB010581332
-:10D72000E0800085E8C7FFFE0999ECC8FFFE1208FB
-:10D730000E9CE5D8B010069A0A9BF01F00448A1888
-:10D74000E4081900CD22069A0A9BE8CCFFFCF01FE2
-:10D7500000408A18E4081900CC82E8CCFFF8069A49
-:10D760000A9BF01F003A684C88493008F0091900FC
-:10D77000C0E0189630070C9C2FF7069A0A9BF01F02
-:10D7800000342FC688C80E38FE99FFF78A18E408BF
-:10D790001900CAB2069AE8CCFFF60A9BF01F002BCC
-:10D7A000684888C9885AF009002C3008F00A190026
-:10D7B000C0E0189630070C9C2FF7069A0A9BF01FC2
-:10D7C00000252FC688D80E38FE99FFF78A18E4087E
-:10D7D0001900C8B2069A0A9BE8CCFFF4F01F001BA0
-:10D7E0008A18E4081900C812069AE8CCFFF20A9BCE
-:10D7F000F01F001688C988D81208684A8879F4088A
-:10D80000002C3008F0091900FE90FF7018963007C0
-:10D810000C9C2FF706990A9A310BF01F000F2F0668
-:10D8200088F80E38FE99FFF6C60BE8C7FFFE30EA0F
-:10D83000300B0E9CF01F0009099B6A5CF01F00086A
-:10D84000894CC73B8001C9848001A2FC8001C8309B
-:10D850008001C8048001AD98800091D08001D3EC94
-:10D86000EBCD40E0E06800FE18971AD816951496A4
-:10D8700030483059F01F00162FFD580CC031E3CD51
-:10D8800080E0EECCFFFE0C9A0A9BF01F00120C9A6F
-:10D890000A9BEECCFFFDF01F000F0C9A0A9BEECC0A
-:10D8A000FFFCF01F000C5816C0A00F9B0C990A9AA1
-:10D8B0006E2C203BF01F0008E3CD80E00F9B6A5CDC
-:10D8C000203BF01F00068F2CCF11CDAB8001C98407
-:10D8D0008001A29C8001AD988001D3ECEBCD40E0AB
-:10D8E00018951696F6CCFFF8F01F000CC12099167B
-:10D8F00030089908F8C7FFF80C9A5805EBF71A0595
-:10D90000E06B00FF0E9CF01F00060E9CE3CD80E054
-:10D9100018970E9CE3CD80E080009200800091D0AB
-:10D92000EBCD40C0201DF8C60008300C6C1BF01F6A
-:10D930000014C1A0500C3007C1286C1B400CF01F14
-:10D9400000111897C1406C1AECCBFFF8EF4AFFFCAE
-:10D950000E9CF01F000D6C065806C0505807CEE113
-:10D960004007CF2B400C2FFDE3CD80C01A9CF01F49
-:10D9700000070E9C2FFDE3CD80C000008001D8DCA5
-:10D980008001D3EC800091DC8001D3A8D401E06851
-:10D990000081301999489959189A7408129C11CE2F
-:10D9A000F20E18005F089708D802D703486830398C
-:10D9B000F0FA00F830089569985BF00B19005F0CDD
-:10D9C0005EFC0000000087F419C8300A4869F2F9CB
-:10D9D00000F8F4081800F9BC0001F9BC0100F3FCE0
-:10D9E0001A065EFC000087F448483009F0FA00F897
-:10D9F000301C95695EFC0000000087F448B8985A16
-:10DA0000F0FB00F83178F00A1900E08B000B3018B9
-:10DA1000F00A0948E4180080E01803FEC0205EFF09
-:10DA20003008301C97685EFC000087F478185808AE
-:10DA30005F0C5EFC5EFF19C830192018F208180050
-:10DA40005FBC5EFC5EFD5EFD19C93008F009180080
-:10DA50005F0C5EFC5EFD5EFFEBCD4080308B189767
-:10DA6000991B300CF01F00078F0CC0803078E069E4
-:10DA700000818F588F49E3CF9080E3CD80800000F4
-:10DA80008001D8DCEBCD40C018971696308B991BDF
-:10DA9000300CF01F00108F0CC160301830298F58E7
-:10DAA0008F4948D8B826118948C8B8E948C71189AC
-:10DAB000B8F96EB899086EBC580CC0752FFC8FBCB5
-:10DAC000E3CF90C0E3CD80C0F01F0006CF9B0000E5
-:10DAD0008001D8DC00007A280000025C000087F496
-:10DAE00080018450EBCD40FE1897FACCFFE01694ED
-:10DAF000781330CB14928F1B129178061095300C4E
-:10DB0000F01F00118F0CC1A0307830498F588F4919
-:10DB10009905B8E6B8F1F9630008B8C4B8D248B8B6
-:10DB200048B9B084B28248B76EB899086EBC580C38
-:10DB3000C0752FFC8FBCE3CF90FEE3CD80FEF01FBD
-:10DB40000006CF9B8001D8DC000079E5000079E475
-:10DB5000000087F480018450EBCD40FC1897FACC8C
-:10DB6000FFE4314B781414938F1B129278061095B2
-:10DB7000300CF01F00158F0CC2003018F3D4C01009
-:10DB80008F488F589913B8429935F9560010F954B7
-:10DB9000001248E7F1D6C0100A481248F9B800FF51
-:10DBA000F9B80100B8586EB999096EBC580CC07527
-:10DBB0002FFC8FBCE3CF90FCE3CD80FCF01F000472
-:10DBC000CF9B00008001D8DC000087F480018450E6
-:10DBD000D401780A3009740B15F8129C129AF01FC0
-:10DBE0000002DA0A80018460D401780A3009740BDB
-:10DBF000F538000B129C129AF01F0002DA0A00009E
-:10DC000080018460D401780A3009740BF538000B68
-:10DC1000129C129AF01F0002DA0A00008001846050
-:10DC2000D401780A3009740BF538000B129C129A53
-:10DC3000F01F0002DA0A000080018460D401780A33
-:10DC40003009740BF538000B129C129AF01F000279
-:10DC5000DA0A000080018460D401780A3009740B6C
-:10DC6000F538000B129C129AF01F0002DA0A00002D
-:10DC700080018460D401780A3009740B15F8129C75
-:10DC8000129AF01F0002DA0A80018460EBCD40F89E
-:10DC900030C618979916169414930C9B300CF01FED
-:10DCA00000108F0C1895C160307831690C9A8F582C
-:10DCB000089B8F49F01F000B48B66CB88B086CBCF2
-:10DCC000580CC0A52FFC8DBC301C6A088708E3CD1A
-:10DCD00080F8E3CD80F8F01F0005CF6B8001D8DC21
-:10DCE000800091DC000087F480018450EBCD40F887
-:10DCF000308618979916169414930C9B300CF01FCD
-:10DD000000108F0C1895C160307831490C9A8F58EB
-:10DD1000089B8F49F01F000B48B66CB88B086CBC91
-:10DD2000580CC0A52FFC8DBC301C6A088708E3CDB9
-:10DD300080F8E3CD80F8F01F0005CF6B8001D8DCC0
-:10DD4000800091DC000087F480018450EBCD40F826
-:10DD500033C618979916169414930C9B300CF01F29
-:10DD600000108F0C1895C160307831390C9A8F589B
-:10DD7000089B8F49F01F000B48B66CB88B086CBC31
-:10DD8000580CC0A52FFC8DBC301C6A088708E3CD59
-:10DD900080F8E3CD80F8F01F0005CF6B8001D8DC60
-:10DDA000800091DC000087F480018450EBCD40F8C6
-:10DDB000318618979916169414930C9B300CF01F0B
-:10DDC00000108F0C1895C160307831190C9A8F585B
-:10DDD000089B8F49F01F000B48B66CB88B086CBCD1
-:10DDE000580CC0A52FFC8DBC301C6A088708E3CDF9
-:10DDF00080F8E3CD80F8F01F0005CF6B8001D8DC00
-:10DE0000800091DC000087F480018450EBCD40F865
-:10DE1000330618979916169414930C9B300CF01F28
-:10DE200000108F0C1895C160307831090C9A8F580A
-:10DE3000089B8F49F01F000B48B66CB88B086CBC70
-:10DE4000580CC0A52FFC8DBC301C6A088708E3CD98
-:10DE500080F8E3CD80F8F01F0005CF6B8001D8DC9F
-:10DE6000800091DC000087F480018450D421189751
-:10DE7000169530CB991B300CF01F00128F0C1896A2
-:10DE8000FAC4FFEC580CC190302830098F588F49E4
-:10DE900048D76EB899086EBC580CC1052FFC8FBCD2
-:10DEA0005805EDF81000EBF81A00089BECCCFFFCCD
-:10DEB000308AF01F0006DA2AD822F01F0005CF0BA7
-:10DEC0008001D8DC000087F4800091DC8001845060
-:10DED000EBCD40E018961695310B991B300CF01FD6
-:10DEE00000108D0C1897C1503078317A0A998D58EE
-:10DEF0008D4A48CBF8CAFFFCF01F000B48B56AB842
-:10DF00008F086ABC580CC0752FFC8BBCE3CF90E027
-:10DF1000E3CD80E0F01F0006CF9B00008001D8DC3D
-:10DF20008001D3EC8001D158000087F48001845037
-:10DF3000EBCD408078076E285808C0B0300C189A96
-:10DF40005C586E0B3109300CF01F0009E3CF908054
-:10DF5000310CF01F00086E189908EF390016991956
-:10DF60006E3899286E4999396E28CEAB800184604D
-:10DF700080009200EBCD40FC189716931495314B1E
-:10DF80001294991B300CF01F001C8F0C1896FAC2CB
-:10DF9000FFE4580CC200302830198F588F495805BB
-:10DFA000C1C18D455C7549576EB88D086EBC580C63
-:10DFB000C1F52FFC8FBC5804EDF81000E9F81A00E9
-:10DFC000049B308AECCCFFFCF01F000D301C8D351B
-:10DFD000E3CD80FCE3CF80FC5C750A9CF01F000958
-:10DFE0008D4CCF90069B0A9AF01F0005CDDBF01FE9
-:10DFF0000006CE1B8001D8DC000087F4800091DC95
-:10E000008000920080018450EBCD40801897F93C4D
-:10E01000000BF01F00084888F0F900F85809C0709C
-:10E02000EECBFFFC310A313CF01F0004E3CF9080BF
-:10E0300080015FB0000087F480014658D42130C8C9
-:10E040001896109B4904300CE8F500F88D18F01F65
-:10E05000000F8D0C1897C120301830D98D582FCC57
-:10E06000EACBFFE28D49F01F000A68B88F0868BC50
-:10E07000580CC0552FFC89BCDA2AD822F01F0005A5
-:10E08000CFBB0000000087F48001D8DC8001844011
-:10E0900080018450D42130CB1897991B300CF01F8D
-:10E0A000000B8F0C1894C1004898301530868F559E
-:10E0B0008F462FCCF0FB00F82E2BF01F00060A9C99
-:10E0C000E966000AD822D8228001D8DC000087F453
-:10E0D00080018440EBCD40E030CB1896991B300C8A
-:10E0E000F01F00108D0C1897C1703018305948E59A
-:10E0F0008D588D492FCCEAFB00F82E2BF01F000B1A
-:10E100003028AE586AB98F096ABC580CC0752FFC0C
-:10E110008BBCE3CF90E0E3CD80E0F01F0005CF9B08
-:10E120008001D8DC000087F48001844080018450A5
-:10E13000EBCD40FC30C518969915169414931292A5
-:10E140000A9B300CF01F00138D0C1897C1D03018AB
-:10E150008D458D580A9A300BF01F000FEECCFFFC56
-:10E16000089BF01F000E078848D6EF68000A058953
-:10E17000EF69000B6CB88F086CBC580CC0752FFC95
-:10E180008DBCE3CF90FCE3CD80FCF01F0006CF9B5D
-:10E190008001D8DC800091D080018440000087F4A9
-:10E1A00080018450EBCD40FC30C51896991516942B
-:10E1B000149312920A9B300CF01F00128D0C1897CA
-:10E1C000C1B0301830B98D588D490A9A300BF01F04
-:10E1D000000E306AAEC4AED3049BEE0A000CF01FF2
-:10E1E000000B48B66CB88F086CBC580CC0752FFC7F
-:10E1F0008DBCE3CF90FCE3CD80FCF01F0006CF9BED
-:10E200008001D8DC800091D0800091DC000087F490
-:10E2100080018450D431203D502B5018FACEFFD0CD
-:10E2200033857C3499157C181896149312917C00D0
-:10E2300050087C220A9B300CF01F00228D0C18978E
-:10E24000C370301830A98D580A9A8D49300BF01FD1
-:10E25000001E069A029BEECCFFFCF01F001CEF5341
-:10E2600000244028049BEF680026EF600027306AF6
-:10E27000EECCFFD8F01F00155804C1C0089B308AAF
-:10E28000EECCFFD2F01F00114008EF6800364018B6
-:10E2900048F6EF6800376CB88F086CBC580CC05556
-:10E2A0002FFC8DBC2FDDDA3AF01F000ACFBB2FDD2B
-:10E2B000D832089B308AEECCFFD2F01F0003CE5B31
-:10E2C0008001D8DC800091D0800091DC000087F4D0
-:10E2D00080018450D4012FCC7808202D500819C912
-:10E2E000BAC919D8BAD8F01F00052FED580CF9B8E3
-:10E2F000010DF9F81A06DA0A80015860D40148D8ED
-:10E30000F8CBFFF5F0F900F8733C7808204D502861
-:10E3100019C9FB69000C19D8306AFB68000D1A9CFA
-:10E32000F01F0005F01F00052FCD580C5F1CD80210
-:10E33000000087F48002E73680018898EBCD40FE2C
-:10E340003007FAC5FFE0189116924A134A1466087E
-:10E350000E38E08A00216A08204D50280BC9FB695D
-:10E36000000C0BD8EE061504FB68000DE806000A49
-:10E3700015D8BAD87409500915C8BAC8F01F0016C4
-:10E380002FCD580CC0A12FF75907CE2118970E9CFE
-:10E39000E3CD80FEEE061504E80600060A9B0C9C01
-:10E3A000F01F000EF3D2C001EE081501AC692FF882
-:10E3B000E808093166090E39FE99FFEBEEC9FFFF47
-:10E3C00048380E9C9109E3CD80FE000000008C5C73
-:10E3D00000008B5C8001889880018440EBCD4080F8
-:10E3E000300819C9F0091800C10048E8F0F700F832
-:10E3F0005807C130F01F000C0E9CF01F000C0E9C43
-:10E40000F01F000BE3CF8080486830A9F0FA00F8D5
-:10E41000301C9569E3CD80800E9CE3CD80800000A8
-:10E42000000087F480015D188001593880015CDCB0
-:10E43000EBCD40E01896F01F00224A2A0DE9F4F7D0
-:10E4400000F85809C1103018F0091800C32030280E
-:10E45000F0091800C31030488F687498300CABC8AE
-:10E460009598E3CD80E06F3930D8322A8F68496CB7
-:10E47000727B2F4BF01F00156F3C3FF8787BF7390C
-:10E4800000C8F0091800C130202DF71600D47845D7
-:10E49000306AEECBFFE21A9CF01F000C0C9B0A9C2A
-:10E4A000F01F000B301C2FEDE3CD80E0E3CF90E0B8
-:10E4B00030088F68CD3B30588F68CD0B8001F00459
-:10E4C000000087F400008C608002E7368001E33CA6
-:10E4D000EBCD40E01896F01F00284A8A0DE9F4F7CA
-:10E4E00000F85809C1503018F0091800C3603028EE
-:10E4F000F0091800C3906F0830492FF88F69EF4872
-:10E5000000407498300CABC89598E3CD80E06F392B
-:10E5100030D8322A8F6849AC727B2F4BF01F00191C
-:10E520006F3C3FF8787BF73900C8F0091800C1301C
-:10E53000202DF71600D47845306AEECBFFE21A9C06
-:10E54000F01F00100C9B0A9CF01F000F301C2FEDD9
-:10E55000E3CD80E0E3CF90E06F0830092FF88F69BA
-:10E56000EF480040CCFB6F0830592FF88F69EF4817
-:10E570000040CC8B8001F004000087F400008C6028
-:10E580008002E7368001E33CD421310B1896991BB9
-:10E59000300CF01F00198D0C1897C28030183049CC
-:10E5A0008D588D494955302CEAF400F8F01F0014BD
-:10E5B000E8CBFFE21896EECCFFF8F01F00126C38A3
-:10E5C000AE38EAF901045819C0D03008AE2830B886
-:10E5D00089686AB98F096ABC580CC0952FFC8BBC3E
-:10E5E000DA2AEAF8011C5818CF20D82AF01F0006B2
-:10E5F000CF7B00008001D8DC000087F48001EF6C45
-:10E600008001844080018450EBCD40F81897169427
-:10E6100030CCF01F0046303CF01F00441895302CE1
-:10E62000F01F0042E06A00EC1896E06B00FF0E9CC1
-:10E63000F01F003FE8CBFFE2EECCFFF6F01F003DFD
-:10E640006C384BD9AE289208AE483DD86939727BF8
-:10E65000F73A009AF00A1800C480F73900803DD8D4
-:10E66000F0091800C52030050A93F01F00349838CF
-:10E67000AE381896F93900A83FF8F0091800C09094
-:10E68000F8C9FF58EECAFF584ADB0E9CF01F002D58
-:10E69000ED3900CC3FF8F0091800C1900E9CECC990
-:10E6A000FF34EECAFF344A6BF01F0027089CF01FAE
-:10E6B0000027583CE089000C4A587099ABC99199E1
-:10E6C0003FFA301CEF6A009EE3CD80F85805CF502A
-:10E6D000EECCFF62069BF01F001F49D9301C7298D8
-:10E6E000ABA89398E3CD80F8F73900A03008F00983
-:10E6F0001800CB41EAF900B85819CB01F72800A25D
-:10E700001295F003161FCB2BF73900863018F0094D
-:10E710001800CAA1EAFC00B8581CCA61F728008892
-:10E720001895F003161FCA2B8001EF6C800091D062
-:10E73000800184400000025E8001EFF88001D3EC8C
-:10E740008001D1E88001D21C8001808E000087F416
-:10E75000800184F0D421E06800EC1897109B4924D4
-:10E76000300CE8F500F88F18F01F00108F0C189689
-:10E77000C090301830798F588F490A9BF01F000CD9
-:10E78000C021D82A0C9CF01F000B30C88B6868B9D8
-:10E790008D0968BC580CC0452FFC89BCDA2AF01FD3
-:10E7A0000006CFCB000087F48001D8DC8001E608AA
-:10E7B0008001F03080018450D421E06800EC18978B
-:10E7C000109B4924300CE8F500F88F18F01F00105A
-:10E7D0008F0C1896C090301830698F588F490A9B5B
-:10E7E000F01F000CC021D82A0C9CF01F000B30C871
-:10E7F0008B6868B98D0968BC580CC0452FFC89BC72
-:10E80000DA2AF01F0006CFCB000087F48001D8DCA5
-:10E810008001E6088001F03080018450EBCD40405B
-:10E82000201D18961A9CF01F001849888C69F0FB6F
-:10E8300000F85809C1203018F0091900C0B030287C
-:10E84000F0091900C170770830492FF89769F74827
-:10E8500000402FFDE3CF80407738301911EA301C9B
-:10E86000F20A1800F9B8000CF7F80A062FFDE3CDFC
-:10E870008040770830592FF89769F74800402FFDFE
-:10E88000E3CF8040800177A4000087F4D401496879
-:10E8900019C9F0FA00F85809C1803028F0091800A9
-:10E8A000C1803048F0091800C0503018F009180035
-:10E8B000C180750830492FF89569F548004019CB9B
-:10E8C000302CF01F000AD80A3088301C9568D80216
-:10E8D000750830592FF89569F548004019CBCF1BC2
-:10E8E000301BCEFB000087F480018390D431215D82
-:10E8F000303C169614911290F01F00584D83F8C4C6
-:10E90000FFB0189531CA089B069CF01F0056C0A1A5
-:10E910006D3830AA707BE6CCFFE42D2BF01F005140
-:10E92000C7B06D38FAC7FFC8707B0E9CF6CAFFC827
-:10E930002D2BF01F004D089B0E9CF01F004CC0417A
-:10E94000300C2EBDD83231CA0E9BFA0A0002049C4C
-:10E95000F01F0047049CF01F004730080E9A500833
-:10E960001A97089B1A9CF01F00446D38707930E8A4
-:10E97000F33A005EF00A1800C670EB3A0074580AC9
-:10E98000CE006D387079EB380075F33B005EF60809
-:10E990001800C0F0EACCFF8A3009C0581938F608D0
-:10E9A0001800C0502FF9123AFE99FFFA123ACC9093
-:10E9B000049CF01F0032CC50049B1A9CF01F0030C6
-:10E9C0001A9B029CF01F002F049B009CF01F002D3F
-:10E9D000089B31CA4A2CF01F00266D3830AA707B84
-:10E9E000E6CCFFE42D2BF01F00226D38312A707B1E
-:10E9F000E6CCFFDA2C8BF01F001E029B304AE6CCDF
-:10EA0000FFC8F01F001B009BE6CCFFC4304AF01F7C
-:10EA10000018301CC97B6D38312A707BE6CCFFDAD8
-:10EA20002C8BF01F0010FE91FF7E304AE6CBFFC812
-:10EA3000029CF01F000FE6CBFFC4009C304AF01F81
-:10EA4000000C301CC7FB049CF01F000FFE90FF7AE7
-:10EA50001A9CF01F000EC92B8001EF6C000079E8B2
-:10EA60008000917C80018124800182BC800091DC47
-:10EA700080018658800181E8800182608001817E6A
-:10EA8000800180CC80018360800185F4EBCD40FC67
-:10EA9000FACD0110300733095407FEF3022EE6F8D1
-:10EAA00000F854281896129B0E9C8D19F01F0088B0
-:10EAB0008D0C1895E080008A3018303C8D588D4CB4
-:10EAC000F01F0084FACBFEFC1894FACAFEF8FACCC8
-:10EAD000FEF2F01F0081442871390E9CE06B00ECBF
-:10EAE0007277F01F007BC710540CE0680420B83820
-:10EAF000442B7738707992D9EDB90000C6B0EDB9E2
-:10EB00000001C06144099238A1B8B238442BE8F83A
-:10EB100000B85808C0C07738707A94D9EDB90009A8
-:10EB2000C06144099238A9B8B238442BFAC2FEF148
-:10EB3000441A049CF01F006944185818E08000A58E
-:10EB4000C6823079FB38010FF2081800C050440922
-:10EB50009238A5A8B238440CF01F0061049CF01F45
-:10EB600000614428E74C0100EACAFFF071390A9CB1
-:10EB70004DDBF01F005E6858AA286869AA394D3C31
-:10EB800069B85808C440442B773870793078F33A24
-:10EB90000074F00A1800C240EAC9FFF4EACAFFF89C
-:10EBA000300CF01F0053581CC53030063018E748B1
-:10EBB000004444095809C0A0FACCFF00F01F004DE2
-:10EBC0000C9C2BCDE3CD80FC30060C9C2BCDE3CDF3
-:10EBD00080FC44099238A1A8B238442BC99BF8F8AC
-:10EBE00001AC5808C050F8CCFE54F01F004230CBA6
-:10EBF000300CF01F0037E74C01AC189AC080442855
-:10EC0000713B76794B8B28C9F01F003B442BCC5BC2
-:10EC10005828CA51442C1A9B2E2CF01F00381A96E3
-:10EC20001AD61ADC442BFB380116FB390117EF3AD0
-:10EC300000CF169CF6CBFF34F01F003144283289F8
-:10EC4000F15900D8442CF01F00262FEDC88BE8F8AE
-:10EC500000B85808C2916AB93FF8F368009A3028A2
-:10EC60003039E7480044442891694426F01F0025C4
-:10EC7000ED4C004466B88B0866BC580CC2352FFCBE
-:10EC800087BC3016C94B440BEF3A00AF169CFB38DB
-:10EC9000010EFB39010FF6CBFF58F01F001B440C8F
-:10ECA000F01F000FC5CB44287139727A94D8EDB8A3
-:10ECB0000001CD21189B6ABCF8CCFF66F01F001341
-:10ECC000CCFBF01F0013CDDB000087F48001D8DC03
-:10ECD0008001EF6C80017C4480017EE08001F03097
-:10ECE00080017BD88001D3EC8001AD408001E8EC4D
-:10ECF0008001D3A88001D1588001887080018C2CBC
-:10ED0000800145C480018B74800184F080018450AF
-:10ED1000D431203D189616971493303CF01F0070A4
-:10ED2000301831798D588D4930086C068F0858039A
-:10ED3000EDF81805E7F81A0018950DC40898A7D83B
-:10ED4000C0505898C0302FDDD83A0DD93018F0098E
-:10ED50001800C1003008F0041800F9B80500EFF8F9
-:10ED60005A00F9BC0501F9BC0401EFFC4A002FDD93
-:10ED7000D832303CF01F005A6C98F93A0074F13BDD
-:10ED8000005E580ACE80F9380075F6081800C0A059
-:10ED900028AC30092FF91439CDE41938F00B1800DC
-:10EDA000CFA1ECC0FFF8009CF01F004E1891CD30B1
-:10EDB0006BB85808C090793870793078F33A00749D
-:10EDC000F00A1800C6E0FACCFFF8F01F0047581C04
-:10EDD000C0A0F01F0046029B835C350A31DCF01FA7
-:10EDE0000044CB9B40285818CF51FACCFFFCF01FB1
-:10EDF0000041581CCEF1401820785818FE9BFFEBBC
-:10EE00004BD8F0F900F85809CE501A9CF01F003B7F
-:10EE1000581CCE01400820285818FE9BFFDC6C9E31
-:10EE20002F4EFCE80000212DFAE90024FCE8000840
-:10EE3000FAE9002CFCE20010FAE30034FCE80018C8
-:10EE4000FAE9003CFD3C0020FB6C0044FD38002149
-:10EE5000322AFB6800454AAB1A9CF01F002AF01FBB
-:10EE6000002A2EED580CCB606C9A3FF8F53900C89B
-:10EE7000F0091800CAF06008F51B00D4202D6C6C56
-:10EE8000500801C9BAC901D8BAD8F01F0020A56C32
-:10EE900049FB310A180B315CF01F00152FEDC9AB8F
-:10EEA0004955EAF801AC5808C050EACCFE54F01FAE
-:10EEB000001930CB300CF01F0018EB4C01AC189A45
-:10EEC00048D5580CFE90FF816338494B707928C9AA
-:10EED000F01F00136A98ABB88B98C76B8001EF6C7A
-:10EEE00080015D44800177A4800145C480014658BB
-:10EEF00080015F44000087F480015F2800008C607F
-:10EF00008002E736800189108001E33C00008B5CC1
-:10EF10008001D3A88001D8DC8001D3EC8001D158D6
-:10EF2000EBCD40E0206D300818991495502850081A
-:10EF30001A9C1A965D191897C10140085808C040DC
-:10EF40001A9CF01F0009402C580CC030F01F00071D
-:10EF50000E9C2FADE3CD80E01A9C5D15581C5F0719
-:10EF6000CEDB00008001D3A8800091E858DCE08867
-:10EF700000035EFD49B8F00C032F49B8F0CCFFF454
-:10EF80005EFC4998F0CCFFE45EFC4978F0CCFFD4FD
-:10EF90005EFC4958F0CCFFCC5EFC4938F0CCFFC495
-:10EFA0005EFC4918F0CCFF305EFC48F8F0CCFF1C4A
-:10EFB0005EFC48D8F0CCFEF45EFC48B8F0CCFEBC59
-:10EFC0005EFC4898F0CCFE945EFC487C5EFC486891
-:10EFD000F0CCFFFC5EFC4848F0CCFE785EFC000004
-:10EFE0008003C01400000260483930089318930869
-:10EFF0005EFC000000008C844828700C5EFC000061
-:10F0000000008C84EBCD40C0487618976C1C580CDF
-:10F01000C030F01F00060E9CF01F00058D1CE3CDD4
-:10F0200080C0000000008C8480018AD480018AECBA
-:10F03000EBCD40C0487618976C0C580CC030F01FD0
-:10F0400000060E9CF01F00058D0CE3CD80C0000073
-:10F0500000008C8480018ABC80018B30D4211894FC
-:10F060001696149530CCF01F00121897C1D03018A6
-:10F0700099069915F0060946EC0C1502F01F000CD4
-:10F080008F2CC0F05806E08A000B3009129A6E28C7
-:10F09000F009092A2FF91236FE99FFFB8907DA2AAF
-:10F0A0000E9CF01F00043FDCD8220000800092007C
-:10F0B000800091E8D4311893169214901291580C54
-:10F0C000C36078093018760CF0090945580CC390D4
-:10F0D000189468160A36C1A468075807C0606E48BD
-:10F0E0000238C1B03FCCD832662CF8060327580747
-:10F0F000CF71ECC8FFFFF808002CC0582FF8190793
-:10F100005807CEE110960A38CFA5089CF01F0013CF
-:10F1100030083FEC8508D832029A009C6E3BF01F05
-:10F120000010301C89166E088908D832760C580CED
-:10F13000C040F01F000ADA3A66093018F0090945A4
-:10F14000308CF01F00081894C060850C30089918A6
-:10F150009908CC0BD8320000800091E8800091DC47
-:10F1600080009200D431109412907818409618952F
-:10F17000169214910C9B780A089C5D181893318C98
-:10F18000F01F00131897C1F00C9CF01F00118F3C6A
-:10F19000C170089B0C9AF01F000F30088F468F1229
-:10F1A0008F218F508F086A29F203002C78085808A5
-:10F1B000C0C0109970085808CFD19307DA3A0E9C56
-:10F1C000F01F00053FDCD8329907DA3A8000920040
-:10F1D000800091DC800091E8D431203D501C500B20
-:10F1E000149112921090580AC4307418009B740A3B
-:10F1F000129C5D18A36C502C6228F00C0307580772
-:10F20000C3706E450A990035C3610E940E93C09881
-:10F210006E075807C2D008936E490A39C2C10E94CE
-:10F220006E3B0A9A049CF01F00181896CF214019D3
-:10F230006E18930840086E2991098F1C8F2C6E3C24
-:10F24000F01F00128F468F3640296228F009000C0B
-:10F2500078090E39EFF80000F9F80A00EFF810000D
-:10F26000E7F81A000E9CF01F00092FDDDA3A3FEC98
-:10F270002FDDD8326E385808CFB00039CF903FCC50
-:10F280002FDDD8328000917C800091E8163C5E0C26
-:10F290007808971C990B97085808F1FB1A015EFC37
-:10F2A00078195809F9F81000F3F81A007808580886
-:10F2B000F1F91A013008990899185EFCD40149380F
-:10F2C000FACEFFFC709CE21C0002C1D0209DFD3AEA
-:10F2D0000021FB6A0021FCE80000FAE90000FCEADA
-:10F2E0000008FAEB0008FCE80010FAE90010FCEA5C
-:10F2F0000018FAEB0018FD380020FB680020F01F12
-:10F3000000042F7DD8020000000087F480015AA479
-:10F31000D4014898709CE21C0002C0C0300930CC77
-:10F32000EA1C4000303B129AF01F0004F01F00045A
-:10F33000301CD802000087F4800186C88001875401
-:10F34000D4014898709CE21C0002C0C0300930DC37
-:10F35000EA1C4000303B129AF01F0004F01F00042A
-:10F36000301CD802000087F4800186C880018754D1
-:10F37000D4014898709CE21C0002C0C03009310CD6
-:10F38000EA1C4000303B129AF01F0004F01F0004FA
-:10F39000301CD802000087F4800186C880018754A1
-:10F3A000EBCD4080495818977098E2180002C04190
-:10F3B000109CE3CD8080F01F00126F38302911EAD5
-:10F3C000F20A1800C0D03009303B129A307CEA1C97
-:10F3D0004000F01F000CF01F000CE3CF90806E681F
-:10F3E0005898CF213009303B129A30BCEA1C4000BB
-:10F3F000F01F0004CF1B0000000087F4800158407C
-:10F40000800186C88001875458DBE08A0012F939F0
-:10F41000000C3078F0091800E08B000C595BE08A92
-:10F420000008F939000E3AA8F0091800C0D05EFDB6
-:10F430003888F0091800CFC1F939000D38E8F00913
-:10F4400018005F0C5EFCF938000FF2081800CF01BD
-:10F45000F93900103038F0091800CEA1F93900113F
-:10F460003008F0091800CE41F93A0012F20A1800EB
-:10F47000CDF1F9380013F4081800CDA1F9390014C2
-:10F480003888F0091800CD41F939001538E8F0093D
-:10F4900018005F0C5EFCD7033019482891095EFC08
-:10F4A00000007A38EBCD40C0208D48D730088E0957
-:10F4B000F0091900C101E06AFFFF300B1A9CF01F30
-:10F4C00000091A9B302AFACCFFE8F01F00079A18AF
-:10F4D0001A96AE088E0C2F8DE3CD80C000007A2ADC
-:10F4E0008001C7B88001A498D401F01F00054858D6
-:10F4F000F139010B120C5C8CD80200008001F4A4DD
-:10F50000000087F4EBCD4060208D306AFAC5FFE63D
-:10F51000300B0A9CF01F00091A9CE06AFFFF300BB9
-:10F52000F01F00070A9C1A9B302AF01F00061A964B
-:10F530009A1C2F8DE3CD8060800091D08001C7B8E8
-:10F540008001A444D43120DDFEF60234FACEFFA8B7
-:10F55000189516916C9C1494129310907C177C0251
-:10F56000E21C0002C0312F3DD832FEF802167009AD
-:10F570005809C041FE7CFBB4CF7BECF8012458183D
-:10F58000C041FE7CFC17CF0BECC9FFE85019129C60
-:10F59000F01F007D581CE08000E30D890D98F009F4
-:10F5A0001800E08200E6302CF01F0078E08000D2E6
-:10F5B0006CB850282FF88DB85807FBF91002EFF9F6
-:10F5C0001A00F01F0073C0E0029B0A9CF01F00713C
-:10F5D000E08000C96C98EDB80006C0414E88402913
-:10F5E00091D9F01F006D6008EFDCB010F3D7C010A8
-:10F5F00050091039E08B006C0D882FF8AC880D99FC
-:10F60000F0091800C061300A320C149BF01F00632F
-:10F61000E8C800020E08FB58002EED38010B30043C
-:10F62000FB680032400A300BFB640030FB640031A1
-:10F63000FB640033069CF01F005A069BFAC7FFF4D8
-:10F64000400A0E9CF01F0057300A0E9BFACCFFD2E6
-:10F65000F01F0055ED38010BF9D2C003BA78F01F46
-:10F660000053300CFB520028FB5C002AE041003EB6
-:10F67000E0880008EB39000C3888F0091800C2D087
-:10F680004028300A50980E9BFACCFFDCF01F00484F
-:10F690004009ECCCFFE88109F01F0046F01F00464E
-:10F6A0003008ED4C00CCED5800D04C49F30A014233
-:10F6B000F00A1900C0604B297298EDB8000EC031F5
-:10F6C000301CC52BF01F003E301CC4EBECCCFFE817
-:10F6D000F01F00383FFCC48BEB39000D38E8F0090F
-:10F6E0001800CCF1EB39000E3018F0091800CC915D
-:10F6F000EB39000F3038F0091800CC313028EB3BE3
-:10F700000012F00B18005F1A3FE8F00B18005F19A9
-:10F71000126AE80A1800CB51EB380013E218001DFA
-:10F720005818CAF1EB380014E21800C85888CA917A
-:10F73000189A31F9EA090708F4081800CA212FF9C4
-:10F74000E049003FCF81E0680400FB58002AC99BD4
-:10F75000401CF01F0018FE7CFAECC06BFE7CFC160F
-:10F76000C03BECCCFFE8F01F00133FECCFDA401CAD
-:10F77000F01F0010FE7CFB4FCF7A0000000087F4E2
-:10F7800000007A38800145DC80019F3080015F04F1
-:10F790008001F4088001F4E880014658800091D08F
-:10F7A0008001C7B88001A4448001859C8001A49891
-:10F7B000800145EC800145C4000002608001FBFC33
-:10F7C000D401302CF01F0003300948389109D802C9
-:10F7D0008001A12800007A38D431FACD01385009CF
-:10F7E000FACEFEA416971896FEFB031C14947C1305
-:10F7F0007C00F6F801245818C460FEFA030A749CD1
-:10F80000E21C0002C05118970E9C2B2DD832E068E4
-:10F8100000F8FAC5FEFCF5D7C0100C9B0A9C548872
-:10F82000549654A730025472F01F00B8FAC1FEE497
-:10F830000A9B029CF01F00B644C95879E08B00284F
-:10F840003018F0090948E2180085C2104488FAC946
-:10F85000FFF45012502854D944D80A9B5478029C83
-:10F86000F01F00ACC1C1302744D95809CCE0FAC818
-:10F87000FFF41039CCA0FACCFECCF01F00A70E9CF0
-:10F880002B2DD83230270E9C2B2DD832448B300CA8
-:10F89000F01F00A2E08000B354DCCDFB44C9E04976
-:10F8A000003FE088000B300744B8EDB80007E08067
-:10F8B000009EF01F009BCD9BFEF80268F009032F0D
-:10F8C000ECCAFFFC1588EC08000889080DD81589DA
-:10F8D000400BEE0901093067F208010A970A44B8A3
-:10F8E000CE5B44B8F0C90001E0490097E088008988
-:10F8F000447CF01F008D44C8189A300944BC303B4A
-:10F90000BFBCF9E8108CF01F0089F01F0085301B88
-:10F91000300CF01F008744B83027CC8B44B8E04847
-:10F920000082C090E08900A9E0480080C040E04823
-:10F930000081CEE10E9B0C9CF01F007ECE9B44B854
-:10F94000E0480082E08000C4E08900915978E080BE
-:10F9500000C4E0480081CCD1029CF01F0077CD8B21
-:10F9600044B85808C7E144D65803EDF81000E7F84A
-:10F970001A008C28A008FB1A0106445814088908AC
-:10F98000FB190104F20A0105400A30EB95056807EE
-:10F990000E9CF01F006AE08000AE4DB9F2F801D075
-:10F9A0005808E080009E0A9B0E9C5D18E08000993C
-:10F9B00030270DE84D4BF768007B44B8C77B44B84F
-:10F9C0005818CB90E0480080CA31CB5B447B44BCE4
-:10F9D000F01F005B44BCF8C800805818FE9BFF99DC
-:10F9E000029B5C5CF01F0057C93B30084C69300B30
-:10F9F000B2A8169CF01F0054C5DB3FD7C06B4D3832
-:10FA0000F009032F029CF01F0052C82B029CF01F2C
-:10FA10000051C7EB029CF01F0050C7AB029CF01FC7
-:10FA2000004FC76B029CF01F004EC72B029CF01FBB
-:10FA3000004DC6EBF01F004C4B3AF54C00D4C68B82
-:10FA4000029CF01F004AC64B029CF01F0049C60BE7
-:10FA5000029CF01F0048C5CB447CF01F0047C58BBB
-:10FA6000E0480081C1403027C21BF0C8008F5828F1
-:10FA7000FE9BFF40C4DBE0480084FE90FF5DFE95E6
-:10FA8000FF5BE0480085FE91FF44C55B49E91388B0
-:10FA900020185C58B28844D7C29049BB7698E218C7
-:10FAA0000040C20076D96E081039E088002944B8B9
-:10FAB000A7D854B85803F9B70003EFF81000E7F8D7
-:10FAC0001A00F9B70103FBF8104BCF0A447B32EC64
-:10FAD000F01F002AC1DB029CF01F0029C19B3047A8
-:10FAE000C69B0FD8F768007ACE3B302CF01F00255C
-:10FAF000CD5BF01F0025CF403FE7C5CBF01F0023B3
-:10FB0000CD7B0000000087F48001C7B88001BF10E2
-:10FB10008001BF448001D3A88001D8DC80018754D4
-:10FB20008003C04C8001870C800186C880016A88F0
-:10FB3000800237E8800208948001F4088001708C0C
-:10FB40008001725480018CE48003C14C8002084023
-:10FB50008002085880020864800208708002087CD5
-:10FB600080020888800145C48002084C8002083465
-:10FB7000800209B48001DA3480016D6C8002094092
-:10FB80008001A12880015F048001F310EBCD406863
-:10FB90003006493C1AD61AD649250C9899064929A7
-:10FBA000492A302B0A9CF01F001249231AD60C98C0
-:10FBB0001AD60699490A303BEACCFFFCF01F000C2C
-:10FBC0000C981AD606991AD6EACCFFF848BA305BD8
-:10FBD000F01F0007301C2FADE3CD806800007A389D
-:10FBE00000007A2C8001F4988003C3AC80016EB8C9
-:10FBF0008001F7C08003C3C48003C3E05EFCD70369
-:10FC0000EBCD40E0203D1897580CC1F07938707A60
-:10FC100094D9EDB90001C1D04C166C785828C15068
-:10FC20000E9CF01F0040C110ED3900943FF8F00920
-:10FC30001800C1405017FACAFFFC1A9BFACCFFF615
-:10FC4000F01F0039581CC180301C2FDDE3CD80E04F
-:10FC50004B366C785818CE51CF8B202D306A1A9CB9
-:10FC60004AFBF6CBFF4AF01F0031F01F00312FEDA9
-:10FC7000580CCEB1CE0BFAC5FFF5400A401B0A9CCA
-:10FC8000F01F002C581CCE113079FB38000BF20805
-:10FC90001800C35140187139727A94D8EDB8000435
-:10FCA000CD404A5AF4F801045818C3206DE85808AA
-:10FCB000C1D1ED3B008049AA580BC2806F387079E2
-:10FCC000F5380081F33C005EF8081800C1F0F4CA72
-:10FCD000FF7E3009C0581538F8081800C0402FF9C9
-:10FCE0001639CFA516395F0CCB1B48D973F85808C5
-:10FCF000CE10F4F801AC5808CDD1CA7B0A9CF01F95
-:10FD0000000FF01F000FCA10CCDB3009CECB3059EA
-:10FD1000FB38000BF2081800C981CC9B0000026080
-:10FD2000800189D080017C448002E736800188B060
-:10FD300080017EE0000087F480017BD880017C1088
-:10FD4000EBCD40E048D818961695F0F700F058072C
-:10FD5000C0E00E9CF01F000AC0715806C0A00E9CA7
-:10FD60000A9B5D16C0606E075807CF41E3CF80E065
-:10FD70000E9CE3CD80E00000000087F48001FC00D1
-:10FD8000D401F01F0002D80280021500EBCD40F82C
-:10FD9000204DE0683100EA18312EE069312EEA1971
-:10FDA000322E306CFAE90000F01F00631894E080F6
-:10FDB00000B9303CF01F00611896301CF01F005F46
-:10FDC000306A202D189B18951A9CF01F005DF01FBB
-:10FDD000005D2FED580CE080008732B80A9C1AD8DD
-:10FDE000308930084D8A306BF01F00582FFD1A9370
-:10FDF000ECFC00D8F01F0056ECFC00DCF01F0055B6
-:10FE0000ECFC00E4F01F0054ECFC00E8F01F005391
-:10FE1000ECFC00ECF01F0052ECFC00F0F01F005175
-:10FE2000ED3C00B7F01F00506DC85808F9B801014B
-:10FE3000EDF81A1BED3C006FF01F004CECFC012CA0
-:10FE4000F01F004BF01F004BF01F004BF01F004B4A
-:10FE5000F01F004BECF800F85808C6616D084C978D
-:10FE6000EF4800D8ECFC0130F01F0047300830A903
-:10FE700032B54C6A1AD5E06B0080EECCFED8F01F8C
-:10FE80000033EEC6FE58304A300B0C9CF01F004089
-:10FE900030081AD530594BFA0C9C304BF01F002B10
-:10FEA0004BD82FEDF10A01423009F20A1900C26065
-:10FEB0006E99EDB9000EC201A7B930688F9950381C
-:10FEC0001A9CFAC8FFF8FAC9FFF4089A308BF01FA1
-:10FED00000331897581CC140089CF01F00312FCDEB
-:10FEE000E3CF80F8189A0A991A933068308B1A9CDD
-:10FEF000F01F002CC7EBF01F002C6E99CDEB089C77
-:10FF0000F01F00273009303B129A311CEA1C4000D8
-:10FF1000F01F0026F01F00260E9C2FCDE3CD80F8A9
-:10FF20002FCDE3CD80F8300A301B149CF01F002148
-:10FF3000C96B0000800092008001EF6C8002E73600
-:10FF4000800188B08003B804800176C480020594E3
-:10FF500080020538800204DC8002048080020424D0
-:10FF6000800203C8800202F880020374800202D477
-:10FF70008002078C800168AC8002017080020EFC58
-:10FF8000000087F48002031C8003C400800091D02D
-:10FF90008003C40C00000260800174C8800091E8F6
-:10FFA0008001776C8001FBFC800186C8800187544A
-:10FFB00080020B34EBCD406830094AF63068ACA9BA
-:10FFC000AC893129314AAC988D99300530130A9BA0
-:10FFD000ED4500ECED4500E88DA58DC5ED550040E3
-:10FFE000ED550042ED55004EED4500D88DB3ECCCFB
-:10FFF000FEF0F01F0022ED450124F01F0021ED5519
-:02000004800278
-:1000000000D0ED4C00CCED5500D249ECF01F001EA5
-:10001000F01F001EED4501B8F01F001DF01F001D70
-:10002000F01F001D0A9BECCCFF48F01F001C0A9B30
-:10003000ECCCFF44F01F0019069BECCCFF40F01FF6
-:100040000017069BECCCFF3CF01F0014ED4300446E
-:10005000F01F0013F01F001330DCF01F0013F93CF9
-:10006000000FF01F0012F01F0006ED4C01CC069CA3
-:10007000E3CD8068000087F4800091D0800145C402
-:10008000000084CC80017B24800237D080016CDCAE
-:100090008001FB8C8001EFE8800144F8800187C873
-:1000A000800205EC8001EF6C800202B8EBCD40606D
-:1000B000E06A01F8300B49D518960A9CF01F001C25
-:1000C000F01F001C0C9CF01F001CEACCFFF4F01F7A
-:1000D000001BEACCFFE0F01F0019EACCFFF0F01F94
-:1000E0000017EACCFFECF01F0016EACCFFE8F01F87
-:1000F0000014EACCFFE4F01F0012300930DC1AD9FA
-:100100001298129A129BF01F000FF01F000FF01FA1
-:10011000000FF01F000FF01F000FF01F000F301C2A
-:100120002FFDE3CD80600000000087F4800091D0B7
-:1001300080016F4880021124800145D6800145F27C
-:100140008002067C80014690800149B88001804091
-:1001500080015F98800201584848300A4849911848
-:10016000910A930A5EFC000000007A3C00007A4489
-:10017000D421219D4A846808F3D8C001FB6900633B
-:10018000E2180002C14030183005FB6800634A3CA9
-:10019000F01F00233018189BFAC9FF9D300A49FC54
-:1001A000F01F0020581CC2802E7DD8225809C1C0E3
-:1001B000109549D870065806CEB0EA050019FA091C
-:1001C00000170C9B0E9C306A2FA72FF5F01F00170D
-:1001D0006C265806CDD05905CF516808F1D8C0011A
-:1001E000F0051700CD5B306AE06B00FF1A9C3015FC
-:1001F000F01F000FCDFB48FCF01F0009EA050018B6
-:10020000189BA1781A99300A48ACF01F00062E7D81
-:10021000D822000000007A448003C414800091B802
-:100220008001776C00007A3C800091DC800091D0E6
-:100230008003C41CD40148697208104C930CEDBCB7
-:100240000002C021DA0AF01F0003D80200007A443D
-:1002500080020170EBCD408048C76E095809C1305B
-:10026000722A580AF3F80003EFF80A01F3F81003B2
-:10027000F5F81A037238129C910AF01F00056E09F6
-:100280005809CEF1E3CF908000007A3C800091E8DD
-:10029000D401F01F0007581CC020D802485972082A
-:1002A000EDB80002CFB0F01F0004D8028002025463
-:1002B00000007A4480020170F8C900013058F0094A
-:1002C0001800E08B00054838B09C5EFF3FCC5EFC18
-:1002D000000087F4D401201DFAC9FFFC12DC1A9932
-:1002E0003048300A307B483CF01F00032FFDD80215
-:1002F0008003C43C8001776CD401201D3018BA8C77
-:100300001A99300A306B484CF01F0004581C5F0CDF
-:100310002FFDD8028003C45C8001776CEBCD406870
-:10032000201D48F61893FAC5FFFC2F060AFC0C9C0A
-:10033000F01F000C303CF01F000CF94301300C9C06
-:10034000F01F000A0A993018300A307B488CF01FE1
-:100350000009581C5F0C2FFDE3CD8068000087F476
-:10036000800145FC8001EF6C800145FE8003C46C78
-:100370008001776CEBCD4040201D48E6BA8C2F06FB
-:100380000C9CF01F000D303CF01F000C1B88F9483E
-:10039000006C0C9CF01F000A30181A99300A309B30
-:1003A000488CF01F0009581C5F0C2FFDE3CD8040E6
-:1003B000000087F4800145FC8001EF6C800145FE60
-:1003C0008003C4748001776CEBCD4068201D1898C1
-:1003D0005CB81895FAC3FFFC48D606D82F060C9CCB
-:1003E000F01F000C303CF01F000CF94500F00C9C95
-:1003F000F01F000A1A993048300A309B488CF01FD1
-:100400000009581C5F0C2FFDE3CD8068000087F4C5
-:10041000800145FC8001EF6C800145FE8003C480B3
-:100420008001776CEBCD4068201D18985CB818955A
-:10043000FAC3FFFC48D606D82F060C9CF01F000C10
-:10044000303CF01F000CF94500EC0C9CF01F000A3A
-:100450001A993048300A309B488CF01F0009581C0C
-:100460005F0C2FFDE3CD8068000087F4800145FC20
-:100470008001EF6C800145FE8003C48C8001776CA5
-:10048000EBCD4068201D18985CB81895FAC3FFFCA6
-:1004900048D606D82F060C9CF01F000C303CF01FED
-:1004A000000CF94500E80C9CF01F000A1A9930482E
-:1004B000300A309B488CF01F0009581C5F0C2FFD40
-:1004C000E3CD8068000087F4800145FC8001EF6C7B
-:1004D000800145FE8003C4988001776CEBCD4068B5
-:1004E000201D18985CB81895FAC3FFFC48D606D8AA
-:1004F0002F060C9CF01F000C303CF01F000CF9453F
-:1005000000E40C9CF01F000A1A993048300A309B16
-:10051000488CF01F0009581C5F0C2FFDE3CD80684C
-:10052000000087F4800145FC8001EF6C800145FEEE
-:100530008003C4A48001776CEBCD4068201D18981F
-:100540005CB81895FAC3FFFC48D606D82F060C9C59
-:10055000F01F000C303CF01F000CF94500DC0C9C37
-:10056000F01F000A1A993048300A309B488CF01F5F
-:100570000009581C5F0C2FFDE3CD8068000087F454
-:10058000800145FC8001EF6C800145FE8003C4B012
-:100590008001776CEBCD4060201D48F5BABC2F057B
-:1005A0000A9CF01F000E303CF01F000DFAC6FFFC45
-:1005B0000D78F94800D80A9CF01F000A0C993018F1
-:1005C000300A306B488CF01F0009581C5F0C2FFD5F
-:1005D000E3CD8060000087F4800145FC8001EF6C72
-:1005E000800145FE8003C4BC8001776CEBCD40C028
-:1005F000206D49EC3008F939010DF93B010850082C
-:1006000050281AD9F93A010C1ADAFAC7FFF8F93961
-:10061000010AF93A01090E9CF01F00152FED580C44
-:10062000C10140085808C0401A9CF01F0012402C1D
-:10063000580CC040F01F0010300C2FADE3CD80C02F
-:100640001A9CF01F000E400818965808C0401A9CCB
-:10065000F01F0008402C580CC030F01F000758163F
-:100660005F0C2FADE3CD80C0000087F48001DAE499
-:100670008001D3A8800091E880018E9CD4214C0792
-:10068000405EEF6C0108EF6B0109EF6E010D1495F0
-:100690001294109A3019F2081800C120EEF801B037
-:1006A0005808C3D05828C4C04B5CEF3B01B5338811
-:1006B000F00B1800C5403398F00B1800C440EF6AE7
-:1006C000010CF01F0030EDDCB010F01F002F0C0CFF
-:1006D0005C5C5805C1E11895F01F002A1815EF65FC
-:1006E000010AF01F0029EDDCB010F01F00260C0CF1
-:1006F0005C5C5804C3F11894F01F00221814EF64D6
-:10070000010B6E98EDB80001C031F01F0020DA2A0D
-:10071000EA0C1800FE98FFE23FCCD822EF3901B571
-:100720003348F0091800CC11EF3901B63418F0093C
-:100730001800FE98FFC630E8EF68010CCC3BEF696B
-:10074000010CCC0BEF3901B63408F0091800FE9803
-:10075000FFB8301948A8F169010CCB4BF93901B643
-:100760003408F0091800FE98FFA835A8F968010CB4
-:10077000CA9BE80C1800FE9BFFD1CBFB000087F45E
-:100780008001F4A48001F504800205ECEBCD40E08B
-:10079000303CF01F002330CB18954A26300CF01F58
-:1007A0000022ED4C01AC1897C360303BF01F001FD6
-:1007B0008F2CECF901AC72275807C2903078300BBF
-:1007C000B2883068ECFA01ACB498ECF901ACB2AB89
-:1007D000ECF801ACB0BBECF901ACB2CBECF801AC7D
-:1007E000EB390075702AB489ECF801ACEB39007470
-:1007F000702AB499ECF801ACEAFB00847029B2AB22
-:10080000ECFC01ACF01F000AE3CF90E0ECCCFE540E
-:10081000F01F00080E9CE3CD80E000008001EF6C2B
-:10082000000087F48001D8DC8001D3EC800208D47A
-:100830008001D3A8D401F01F0002DA0A8001DA5641
-:10084000D401F01F0002DA0A8001DF30D401F01F6A
-:100850000002DA0A8001DBE8D401F01F0002DA0AA4
-:100860008001DC04D401F01F0002DA0A8001DC20E0
-:10087000D401F01F0002DA0A8001DC3CD401F01F31
-:100880000002DA0A8001DC58D401F01F0002DA0A03
-:100890008001DC74D401201D1A9BF01F000CC09055
-:1008A00040085808C06048AA7499EDB90000C030EB
-:1008B0002FFDDA0A1298A1C831CC9598300A149B02
-:1008C000F01F00042FFDDA0A8001D98C000087F4A4
-:1008D00080014658EBCD40C0206D4958189B709C54
-:1008E000E21C0002C06118970E9C2FADE3CD80C0C2
-:1008F00030081A96502850081A9CF01F000EC1119B
-:10090000189740085808C0401A9CF01F000B402C54
-:10091000580CCEB0F01F00090E9C2FADE3CD80C067
-:100920001A9C3017F01F0006CEDB0000000087F491
-:100930008001DED08001D3A8800091E880018E9CE8
-:10094000EBCD4080201D300A1A9BF01F0017C0F02D
-:1009500040085808C0F149576E99EDB9000BC071B5
-:10096000EEF801A84917F1D8C001C1212FFDE3CF4E
-:10097000908048E76E99EDB90000CF01A1C9300A17
-:100980008F9931CC149BF01F000A6E99CE7BEEFC40
-:1009900001ACF01F00086E98301CABD88F982FFD6B
-:1009A000E3CD80808001ED10000087F4800146587F
-:1009B000800208D4D401F01F0002DA0A8001DBD0E3
-:1009C000EBCD40FC206D4A5318951097169266980F
-:1009D0001496109C1294E21C0002C2D05BF5C30175
-:1009E000303CF01F001F300BF3D7C010F5D4C010FF
-:1009F0001AD90C981ADAF3D2C010504B502BFAC601
-:100A0000FFF8F93B00F70A9A0C9CF01F00162FED37
-:100A1000580CC1B1189740085808C0401A9CF01FE4
-:100A20000012402C580CC030F01F00100E9C2FAD4F
-:100A3000E3CD80FC18970E9C2FADE3CD80FCEDB884
-:100A40000000CCF13FB7CF3B6698A1A81A9C8798CD
-:100A50003017F01F0007CE0B000087F48001EF6C09
-:100A60008001DB588001D3A8800091E880018E9C32
-:100A7000D40130085C7B1099109AF01F0002D80254
-:100A8000800209C0D4013008364B1099109A109C8E
-:100A9000F01F0002D8020000800209C0EBCD40E048
-:100AA00020AD3006507CFB6B00201497500650267A
-:100AB0001A95FACAFFDCFACBFFE81A9CF01F00195E
-:100AC000C111189640085808C0401A9CF01F001623
-:100AD000402C580CC030F01F00150C9C2F6DE3CD3E
-:100AE00080E05807C09040980E9B0C9C8F28F01F08
-:100AF0000010581CC0611A9C3016F01F000ECE3B2F
-:100B000040085808C0401A9CF01F0007402C580CA1
-:100B1000C0313FD6CE3BF01F00053FD6CDFB0000D5
-:100B20008001DC8C8001D3A8800091E880016C40BA
-:100B300080018E9CD401F01F0002D80280020A9C22
-:100B4000EBCD40E0209D3018189A1697F00C09481C
-:100B50004A5B7609F1E9000CC06118970E9C2F7D65
-:100B6000E3CD80E0F00811FF12683006507A970854
-:100B7000500650261A95FACAFFE0FACBFFE81A9CF5
-:100B8000F01F001AC1E05807C09040880E9B0C9CD3
-:100B90008F28F01F0017581CC1611A9C3017F01FD6
-:100BA000001540085808C0401A9CF01F0013402C44
-:100BB000580CCD50F01F00110E9C2F7DE3CD80E02E
-:100BC0001897CF0B40085808C0401A9CF01F000A25
-:100BD000402C580CC0313FD7CC2BF01F00083FD71A
-:100BE000CBEB000000007A4C8001DCEC80016C4013
-:100BF00080018E9C8001D3A8800091E8EBCD40F865
-:100C0000216DFAC6FF901897FB69000EFB68000F74
-:100C1000FB6B0010FB6A00116CF46D036D15ECCCDE
-:100C2000FFD4F01F0038306ABA6CECCBFFDCFACC92
-:100C3000FFEDF01F00350D88FB6800190D99ECCB16
-:100C4000FFFEFB69001A320AFACCFFE5F01F002E06
-:100C50004AEE30097C0B301CF809094AF5EB000814
-:100C6000C0902FF95899CF9130060C9C2EADE3CD52
-:100C700080F8F7EA10089D085BF9CF705024FB63F9
-:100C8000001250195807EFF91A003006FAC7FFC4CE
-:100C900050F65116FACAFFAC1A9B0E9CF01F001CAE
-:100CA000C111189640F85808C0400E9CF01F00195A
-:100CB000411C580CCDB0F01F00180C9C2EADE3CD9C
-:100CC00080F85805C09041580A9B0C9C8B28F01F57
-:100CD0000013581CC0610E9C3016F01F0011CE3B53
-:100CE00040F85808C0400E9CF01F000A411C580CE8
-:100CF000C0313FD6CBBBF01F00083FD6CB7B0000F6
-:100D000080018058800091DC00007A4C8001DD4C2D
-:100D10008001D3A8800091E880016C4080018E9C06
-:100D2000D42120DD4B0510946A0E4126F1DEC0016E
-:100D3000C0B0EDBE0001C411EDBE0002C411300709
-:100D40000E9C2F3DD82210973018FB6B002A508A3A
-:100D50005077FDE8100850998B08FB540028580C78
-:100D6000F9F71A001A953007FACAFFD05007502732
-:100D7000FACBFFE81A9CF01F001DC101189740082C
-:100D80005808C0401A9CF01F001A402C580CCD90F7
-:100D9000F01F00180E9C2F3DD8225806C09040C866
-:100DA0000C9B0E9C8D28F01F0014581CC0C11A9C6F
-:100DB0003017F01F0012CE4B30173028CC7B302775
-:100DC0003048CC4B40085808C0401A9CF01F00081F
-:100DD000402C580CC0313FD7CB4BF01F00063FD7FB
-:100DE000CB0B000000007A488001DDAC8001D3A865
-:100DF000800091E880016C4080018E9CEBCD40E04A
-:100E0000207D300616975006189B50261A95FACA70
-:100E1000FFE81A9CF01F001AC111189640085808E4
-:100E2000C0401A9CF01F0017402C580CC030F01F17
-:100E300000160C9C2F9DE3CD80E05807C1904068C0
-:100E40000E9B0C9C8F28F01F0011581CC1104008ED
-:100E50005808C0401A9CF01F000B402C580CC0D002
-:100E6000F01F000930060C9C2F9DE3CD80E01A9CFA
-:100E70003016F01F0007CD3B1896CDCB8001DE0C5D
-:100E80008001D3A8800091E880016C4080018E9C95
-:100E9000D40120CDFB5A0012FB590014FACAFFCC32
-:100EA000502874197408FB590016501874397428A6
-:100EB000FB59001AFB580018745974485039FB58F4
-:100EC000001C74797468FB590020FB58001E74994B
-:100ED000748850A95098300974A8FB6C0022FB5B01
-:100EE0000010FB68002C74BBFB6900231A9CF01FE8
-:100EF00000032F4DD802000080020DFCEBCD40EE28
-:100F000020CD3FF94CC850A950B94CC93005303CF0
-:100F100091059305F01F004A322A18961A971A9CD9
-:100F20000A9BF01F0048FAC3FFDE306AE06B00FF47
-:100F3000069CF01F00441AD5ED38004F1AD86D28D2
-:100F40001AD86D191AD9ED1800361AD8ED190032D1
-:100F50001AD96CE81AD8ED19002E1AD9ED18002A02
-:100F60001AD8ED1900261AD9ED1800221AD86C6982
-:100F700030BB1AD9301C6D08ED1900FEED3A001F88
-:100F8000F01F0031ECFB01282F4DF6C80001581866
-:100F9000E0880045ED3100F7ECCAFF8C30153006D3
-:100FA0001AD61AD540D81AD8F4E80000206D069B4E
-:100FB000FAE900081A9CF4E20008306AFAE300102B
-:100FC000F01F0022EF380021209DFB680021EEE891
-:100FD0000000FAE90000EEE20008FAE30008EEE89B
-:100FE0000010FAE90010EEE20018FAE30018EF38FA
-:100FF0000020029BFB6800200A990C98FACCFF9015
-:10100000303AF01F00130C9A2EED0C9B40ACF01FF1
-:1010100000110A9C2F4DE3CD80EE1AD50A98FACC28
-:10102000FFD05C5B0A99FE7AFF6AF01F000B2FFD70
-:10103000CB2B000000007A4C00007A488001EF6C56
-:10104000800091D080020E908002E73680020BFC77
-:1010500080020A9C80020D20D431202D500B189163
-:101060004A1776026E9CE21C0002C350304C5011AD
-:101070005801E2021700F01F001DEEF700F0189073
-:101080005807C2D030043013C0A82FF45802C1B1A1
-:101090005801F9B301FF5805C1100A9760B66E05F3
-:1010A000F01F00130C9A189B0E9CF01F0012CEE04C
-:1010B0000E9CF01F00115805CF114008069C9104AA
-:1010C0002FEDD83240182012110C0E9B5018F01F33
-:1010D000000BCE2B1893069C2FEDD8320E943013B4
-:1010E000CEDB0000000087F48001EF6C800145C476
-:1010F000800159A080015CDC800184284828F0FC34
-:1011000000F85EFC000087F4486871195879F9B856
-:101110000001F9F80A00F9B80100F9F81A005EFFB9
-:10112000000087F44828F14C007C5EFC000087F446
-:101130004828F14C01D05EFF000087F4EBCD40C0A1
-:1011400018971496E04A0020E088000830083FF91C
-:10115000B898B889E3CF80C02FECF01F00043008A6
-:10116000AE96AE88E3CF90C0800091DCEBCD40FC22
-:10117000206D18941695F01F00431897C1A0F939F7
-:1011800000CC3FF8F0091800C3910896EF3900A889
-:101190003FF8F0091800C5414BB8F0F700F85807C0
-:1011A000C0A1EC040104301C8B042FADE3CD80FC06
-:1011B0000896CF3BE06AFFFF300B1A9CF01F00330C
-:1011C0006F38302A707C1A9B2F4CF01F00311A9216
-:1011D0006A0A9A93063AC0442FADE3CFC0FC0C9B39
-:1011E0001A9C5C7AF01F00296F380606707C1A9BE7
-:1011F0002F4C300AF01F0026CD5BE06AFFFF300B5A
-:101200001A9CF01F0022302AEEC2FF341A9B049C65
-:10121000F01F00201A966A0A9A93063ACDE55C7A86
-:10122000089B1A9CF01F00191A9B049C300AF01F9F
-:1012300000196A08E803000606188B08CA8BE06AE2
-:10124000FFFF300B1A9CF01F0011302AEEC7FF5829
-:101250001A9B0E9CF01F00101A926A0A9A93063A83
-:10126000CBC50C9B5C7A1A9CF01F00081A9B0E9C45
-:10127000300AF01F00096A08060606188B08C8DB4A
-:101280008001EFF8000087F48001C7B88001D344E3
-:101290008001D6B08001D558D401F01F0002D802D9
-:1012A00080015D18EBCD40F8FACD00803225149313
-:1012B00018941297BA85FAC6FFFF0C9CF01F001B0A
-:1012C000300806063019AC85AC981A951A9A498BE5
-:1012D000089CF01F0018C0503FFC2E0DE3CD80F895
-:1012E0000E9CF01F0015E04C0040C1701AD7493A1F
-:1012F000E06B00800A9CF01F00120A9A3019491B0B
-:10130000089CF01F000C2FFD1897580CCE61089C0C
-:10131000F01F000D0E9CCE2B0E9A089C3019489B96
-:10132000F01F0004CDB0CD9B800091DC8003C4FC95
-:1013300080023BB8800091B8800399D0800091482A
-:101340008003C50480024328D421210D300B4B6655
-:10135000169CF01F00368D0CC2B078075807C2A04B
-:101360006F985808C2704B283014EF4400641A95E7
-:10137000340B1AD84AFA0A9CF01F002F08990A9ACF
-:101380004AEB0E9CF01F002E2FFD580CC2506C082B
-:10139000700CF01F002C6C09300893086C08700961
-:1013A0004A98722A910A6C09300893486C0C2F0DE8
-:1013B000D822F01F00261897CF70F01F00254A583A
-:1013C0004A59118A4A5B0E9CF01F0025C2056E29FE
-:1013D00049D89109CE9B08994A2A4A3B0E9CF01F96
-:1013E0000018C1C14A18340B1AD8492A0A9CF01FA8
-:1013F000001208990A9A49EB0E9CF01F00112FFD6C
-:10140000580CC0C13088EF480054CC9B0E9CF01F94
-:10141000000D6C0930089308CC7B0E9CF01F00096E
-:10142000CB7B000000008C8C80023B4C8003C50805
-:10143000800399D0800091488003C4FC80023BB8AF
-:1014400080024190000003FC80024F4080023B225A
-:10145000000004000000042800000404800212A41C
-:101460008003C5108003C5148003C5188003C538E8
-:10147000D421169849871495189B109A49740E9C8C
-:10148000A888F01F00170A9B30064965EF66002008
-:10149000341A0A9CF01F001449484959EB66004071
-:1014A000700B720CF01F00131896C0C0F01F0012D2
-:1014B0000A99098A0E9B0C9CF01F00106D185808A1
-:1014C000C021D822ECCAFFDC0A9C3209341BF01F71
-:1014D000000CD8220000040400000400800091DC0D
-:1014E00000000428800091AC000003FC00008C8CFC
-:1014F00080023B0680023B22800212A480023A68EE
-:10150000D421210D328A300B1A9CF01F00301A9C16
-:1015100030073014504750544AD5F01F002E8B0C22
-:101520001A96C4A0FAC6FFD8318A0E9B0C9CF01FF5
-:1015300000274A984A990C9B50E850A96A0CF01F62
-:1015400000281896C3B04A7CF01F00274A761AD7A5
-:10155000304B1AD70E984A694A6AEC0B000CF01F00
-:1015600000260E981AD74A591AD74A5A302B0C9C83
-:10157000F01F00210E981AD74A291AD74A2A311B80
-:10158000ECCCFFF8F01F001C0E981AD749F91AD7B7
-:1015900049FA312BECCCFFF4F01F00170E982F8D79
-:1015A000ECCCFFF01AD749B91AD749BA315BF01F12
-:1015B0000012089C2FED2F0DD8226A0CF01F001787
-:1015C0000C9C8B06CF9B0000800091D000007A50CD
-:1015D00080022B4C8003C5448003C54C80022C0440
-:1015E000800216FC8002113000007A5480021670CE
-:1015F0008003C55480016EB8800217408003C3ACDD
-:10160000800216C48003C5708002168C8003C58CCE
-:101610008002161C8003C5A480022AF8EBCD40C0CE
-:1016200021AD189798E8EDB80000C181368A300BDB
-:101630001A9CF01F000C306A0E9B1A9CF01F000AC7
-:101640006E2830195C3850395028488870091A962D
-:101650001A9A720C306BF01F00062E6DE3CD80C01D
-:10166000800091D0800091DC00007A508002792CBB
-:10167000D40148587009300A720C301BF01F000367
-:10168000D802000000007A508002792CEBCD404057
-:1016900021AD368A300B1A9CF01F000830084889AB
-:1016A000500872081A961A9A700C302BF01F000519
-:1016B0002E6DE3CD80400000800091D000007A5074
-:1016C0008002792CEBCD404021AD368A300B1A9C3C
-:1016D000F01F000830184889500872081A961A9AA4
-:1016E000700C302BF01F00052E6DE3CD8040000004
-:1016F000800091D000007A508002792CD401487883
-:10170000700EF6C9000E189AF8CBFFFA2F2A7C0C3F
-:10171000F01F0003DA0A000000007A50800224E083
-:10172000D401580CC051304CF01F0004D802304C8A
-:10173000F01F0003D80200008001A12880019F3023
-:10174000EBCD40E0FACD0170FACCFE98F01F001905
-:10175000581CC22145A85818E088001FE068010005
-:10176000FACBFE901A9C16D8F01F00131A95189603
-:10177000FAC7FF00368A300B0E9CF01F0010581677
-:10178000C11048F870090E9A720C300BF01F000D52
-:101790002A4DE3CD80E0300CF01F000B2A4DE3CD45
-:1017A00080E045B85808FE9AFFEE540D5418CEABB1
-:1017B00080015F448002116C800091D000007A505B
-:1017C0008002792C80021720000000000000000039
-:1017D000EBCD40C0F8F800D418971696F0F80088C2
-:1017E000F8FA00E85808C040F8FC00C45D185876C4
-:1017F000C1A058065F0858365F091248C11030185A
-:10180000EF4800ECEEF900D473985808C050300B44
-:10181000EEFC00C45D18EF4600E8E3CD80C05846FA
-:10182000CEF0CFABEEF800EC5808CF603008301B9C
-:10183000EF4800ECEF4B00F0EEF800D47198580838
-:10184000CE81CEABD401F01F0002D802800217D0A7
-:10185000F8FC00E85EFCD401F8F800D471A8580840
-:10186000C050F8FC00C45D18D802109CD802D40106
-:10187000F8F800D471185808C050F8FC00C45D187E
-:10188000D802DC0AD401F8F800D471285808C050F6
-:10189000F8FC00C45D18D802DC0AD703EBCD408009
-:1018A0003008F8F90108F94801085809C031C08822
-:1018B0000E997207129CF01F00045807CFA1E3CDC8
-:1018C00080800000800091E8D401F8FC00DCF01F6B
-:1018D0000002D8028002B4A4D401F8FC0090F01FEA
-:1018E0000002D80280023B8CD401F8FC0090F01F6B
-:1018F0000002D80280023C84EBCD40C01696F8F777
-:1019000001085807C051C0B86E075807C080EECC18
-:10191000FFFC306A0C9BF01F0004CF710E9CE3CDDE
-:1019200080C000008000917CD4011699F8F801185D
-:101930005808C0A1F8F800D470285808C0C0F8FCB6
-:1019400000C45D18D802F8CBFF64306A129CF01F07
-:101950000003D80ADC0A0000800091DCEBCD40F8DF
-:1019600020AD1897F8F801185808C06030070E9C91
-:101970002F6DE3CD80F8F8F800D470385808CF7098
-:10198000F8FC00C41A9B1A935D181895CF05EEF861
-:1019900001185808C431EEF800D470285808CE70E9
-:1019A000FAC4FFE0EEFC00C4089B5D18CE05EEFC17
-:1019B000009078465806C301EEF800D45808C2C01B
-:1019C000700C49BBF01F001BEFFC0024F9B60001AE
-:1019D000EFFC102478075807C111CCAB5806C0B0F3
-:1019E0006E885808CC50EECBFFE8306A089CF01F98
-:1019F0000012CBE06E075807CBB0EEF80194580800
-:101A0000CFA16E581035CEB16E4B0A9A1A9CF01FBA
-:101A1000000ACE70CE4B3006CDEBFAC4FFE0306A40
-:101A2000EECBFF64089CF01F0005CC2B8003C65C46
-:101A3000800091A08000917C800091DCD401F01F97
-:101A40000002D8028002195CD42120AD3008FB5876
-:101A50000024508816961897F6F801845818C0404C
-:101A60003FFC2F6DD82277185808CFB0F8F500B892
-:101A70005885C2205905CF512DCB0A9A1A9CF01FC8
-:101A800000171A940A9A303BEEFE00D47C5858088E
-:101A9000CE801ADA1AD43009EF490104EEFC00C4F2
-:101AA00030681AD8FACAFFD430181ADA48CA7C56F5
-:101AB0005D162FCDCD7B2DCB318A1A9CF01F0007F0
-:101AC0000A9AECCBFFCCFACCFFE8F01F00041A9482
-:101AD000320A302BCDAB0000800091DC80039C38B3
-:101AE000D42118951696F01F000F1897C05078381B
-:101AF0002FF89938D82A310CF01F000B1894C0F039
-:101B00000C9B306A2FCCF01F000930188938EAF995
-:101B100001088909EB4401080E9CD822DC2A000048
-:101B2000800218F880028F24800091DCEBCD40FC0D
-:101B3000EDD9C010407218941693ECCCFFFC1495AC
-:101B4000910CF01F00161897C190E8F800907039BA
-:101B5000EC081608B893B889B8B6B8A85805C100FB
-:101B60000C9A0A9BF8C6FFFC0C9CF01F000D0E9C03
-:101B70005802E5F61A00E3CD80FCE3CD80FC0C9A18
-:101B80000A9BF8C6FFFC0C9CF01F00060E9C580236
-:101B9000E5F61A00E3CD80FC80009200800091DC25
-:101BA000800091D0D401401E5C791ADEF01F000243
-:101BB0002FFDD80280021B2CEBCD40F8203DF8F819
-:101BC00000BC1493129458485F0A58285F0918976C
-:101BD00016961449C0603FF70E9C2FDDE3CD80F8C8
-:101BE000F8FC00DCF01F002BC0305816CF50EEC5BB
-:101BF000FF64306A4A8B0A9CF01F0028C0D1EEF8BF
-:101C000000D470285808C060EEFC00C41A9B5D1810
-:101C1000C370EEC5FF043008F7D6C0081AD8F3D455
-:101C2000C010FAC8FFF4069A0E9CF01F001D2FFD8D
-:101C30001896580CCD1040296E2C580CC1001298E3
-:101C40000A9B0C99E06A888EF01F001618970C9C6E
-:101C5000F01F00150E9C2FDDE3CD80F8EEF800D4C8
-:101C600071845804C0B01298EEFC00C40A9B0C9911
-:101C7000E06A888E5D141897CEBB3FF7CE9B306A22
-:101C8000485B1A9CF01F0005CC501A95CC5B0000F5
-:101C900080028F78800217C88000917C80021B2C04
-:101CA00080028154800091E8EBCD40C0189EEFDAAD
-:101CB000C010782C580CC0600E9AF01F0009E3CDBC
-:101CC00080C0FCFA00D475865806C0700E9AFCFCE1
-:101CD00000C45D16E3CD80C0E3CFC0C08002815454
-:101CE000D421497A1894301BF01F0016300A089B43
-:101CF000495CE8C5FF64F01F0015E8F701085807C4
-:101D0000C1C03006C0680E966E0C580CC1601897A2
-:101D1000306A0A9BEECCFFFCF01F000DCF51580635
-:101D2000EFF80000E9F80A42EFF81000EDF81A00A9
-:101D30000E9CF01F0008D822D82200008003C66441
-:101D400080023A1A80023058800274008000917C30
-:101D5000800091E8D401F01F0002D80280021CE04C
-:101D6000EBCD408048FA1897301BF01F000FEEF8BB
-:101D700000BC5818C0F00E9B300A48CCF01F000C75
-:101D80000E9CF01F000C0E9C307BF01F000BE3CD6F
-:101D900080800E9C305BF01F0008E3CD8080000047
-:101DA0008003C68880023A1A8002360080027400DE
-:101DB00080021CE0800217D0EBCD4040486A1896A4
-:101DC000301BF01F00060C9B300A485CF01F00051A
-:101DD000E3CD80408003C6A880023A1A8002360014
-:101DE00080027400EBCD40F81894F8FC00CC580C3D
-:101DF000C360E8F800D05808E08A00321897E8C3BA
-:101E0000FF643005C0A8580AC200EEC7FF64E8F8B6
-:101E100000D00A38E08A00242FF5E8F600B0306AD6
-:101E2000069B0E9CF01F0015CF115806C0E06C5A9F
-:101E30006EA81438CE91EECCFFFA6C4BF01F000F59
-:101E4000C0406C5A580ACE215807C0906F5AEECB4A
-:101E5000FFD4E8FC00DCF01F000AC0403FFCE3CDEB
-:101E600080F8EECBFFA8E8FC00DCEEFA0080F01F63
-:101E70000005CF60CF4B00008000917C8002B58CC4
-:101E80008002B52CD4211895E06C009CF01F001B3B
-:101E90001897C310EAF401185804C2A1EAF800D454
-:101EA00070C85808C250189B301AEAFC00C45D186C
-:101EB0001898C1E50E9C3016E06B009CF0060D46AC
-:101EC000EC0B024BF01F000E58065F09580C5F1810
-:101ED0001248E8081800F8071710EAFC00CCF01FB9
-:101EE0000009089CEB4600D0EB4700CCD8220E9CA2
-:101EF000F01F0004DC2A000080009200800091F4B2
-:101F0000800091E8EBCD40801897F01F0008C031A9
-:101F1000E3CD80800E9CF01F0006C0550E9CF01F84
-:101F20000003CF7BE3CFC08080021DE480021E84CB
-:101F3000EBCD40FE208D18961697149512921091B5
-:101F4000580BC580F6FB0080580BC0E16F5B580B47
-:101F5000C3210C9CFEFA02E4303BF01F00B93FFCA9
-:101F60002F8DE3CD80FE7568EDB80001CF011A9A80
-:101F7000EECCFFA8F01F00B3CEA16B484029126839
-:101F8000CE606B3840191268CE206B584039126809
-:101F9000CDE0FEFA02B2301B0C9CF01F00A9EEC48B
-:101FA000FFD4302A303BECFC00DCF01F00A8089C7A
-:101FB0006F5AC4386B68EDB80000CCC1EEC4FFD4D2
-:101FC0001A9A089CF01F009FCC516B484029126858
-:101FD000CC106B3840191268CBD06B58403912685E
-:101FE000CB90FEFA026A301B0C9CF01F0095301A51
-:101FF000CDAB7568E21800021A93F9B40102F9B486
-:102000000001F8FC00DC1A9BF01F0092C1F05BECB1
-:10201000C4001A9C320A300BF01F008F6B48502806
-:102020006B3950196B585038089A303BECFC00DC87
-:10203000F01F0086300C189A189BECFC00DCF01F97
-:102040000087C3602F8DE3CFC0FE402A6B49F3EABF
-:102050000008C0D0401A6B39F3EA0008C110403ABA
-:102060006B59F3EA0008C1B04004CDFB1AD9302BFC
-:102070001ADA0C9C4FAAF01F00722FEDCCBB1AD9B4
-:10208000302B1ADA0C9C4F7AF01F006D2FEDCC2B01
-:102090004F5A302B0C9CF01F006ACBCB1AD9302B37
-:1020A0001ADA0C9C4F1AF01F00662FEDCB3B580735
-:1020B000EE0B1700F60A1700F9B80158EFD8E10B3C
-:1020C000EFFA1020ECFC00DCF01F0069CBC16B487C
-:1020D0004029F1E90009EDB90004C5D0EDB90003CC
-:1020E000C750EDB90002E081009430484E1AED4827
-:1020F00000B8301B0C9CF01F00526B384019F1E9FE
-:102100000009EDB90004C500EDB90003C7513088DE
-:102110004D9AED4800B4301B0C9CF01F00496B58E1
-:102120004039F1E90009EDB90000E080007FEDB928
-:102130000001C55130284D1AED4800BC301B0C9CE5
-:10214000F01F003FECFA00BC306BECFC00DCF01F31
-:10215000003FECFA00B4304BECFC00DCF01F003B1D
-:10216000ECFA00B8305BECFC00DCF01F0038029A9F
-:10217000049BECFC00DCF01F00421894FE91FF640D
-:102180006B57E2170002C191ECFC00DCF01F003D30
-:102190000E9CCE7A31084BCAED4800B8301B0C9C1F
-:1021A000F01F0027CABB31084B8AED4800B4301B32
-:1021B0000C9CF01F0023CB4BECFC00DCEACBFFDCDB
-:1021C000320AF01F0033089CCCCA30884B1AED4805
-:1021D00000B8301B0C9CF01F001AC90BEDB90004AD
-:1021E000FE91FF3231084ACAED4800BC301B0C9CFE
-:1021F000F01F0013CA8BEDB90000FE91FF25301BC4
-:102200004A6AED4B00B40C9CF01F000DC89BEDB961
-:102210000001FE91FF1930284A1AED4800B8301B22
-:102220000C9CF01F0007C6AB301B49EAED4B00BC0D
-:102230000C9CF01F0003C87B8003C8EC80023A1A94
-:102240008002BD688003C6C08002B4D48003C6E0AB
-:102250008002C04C800091D08002B58C8003C734CE
-:102260008003C7788003C7008003C7BC8002B52CF9
-:102270008003C8288003C86C8003C8B08002B64CB5
-:102280008002B9EC8003C8008003C8588002B91CE2
-:102290008003C8148003C8CC8003C8808003C84072
-:1022A0008003C894EBCD40C07758EDB80003F9B86F
-:1022B0000008F9F80A2FF9B80104F9F81A2F18974D
-:1022C000300A1696F8FC00DC149BF01F0025300A3B
-:1022D000EEFC00DC149BF01F0023300AEEFC00DC57
-:1022E000149BF01F002130183009ECCBFECCEF48D6
-:1022F00000B8EF4800B4EF4900C02FF976085858ED
-:10230000E08B00225808C2512FCB5849CF71EEFA0A
-:1023100000BC306BEEFC00DCF01F0014EEFA00B4E1
-:10232000304BEEFC00DCF01F0011EEFA00B8305B21
-:10233000EEFC00DCF01F000DEEFC00DCF01F000CDA
-:10234000E3CD80C03048EF4800B8EF4800B4CE0B72
-:102350003028EF4800B8EF4800B4CDAB8002B58C10
-:102360008002B52C8002B5EC8002B4D480028F804C
-:10237000EBCD40E0205D1897F8F600B0F8F800BC0F
-:102380005828C57059085F0958485F081248C2901C
-:10239000302BEEFC00E0F01F002F314A300B1A9C6E
-:1023A000F01F002D1A95EEFA00BC588AC200EEF814
-:1023B00000905808C03070785028149958895F18D8
-:1023C00058195F191069ECF8017CEEFC00E01A9ACC
-:1023D0000C9B50495038F01F00212FBDE3CD80E009
-:1023E000300BEEFC00E0F01F001BCD8B30085018C6
-:1023F000301B500BECF900F0F3EB0008FBFB1A016B
-:10240000EDB90001C120EEF800905808C1F0EEFCD3
-:1024100000D4580CCD10780C491BF01F0012FBFCA7
-:102420000A01EEFA00BCCC4B4018A1B85018CECB34
-:10243000300BF8FC00E0F01F000C300BEEFC00E06D
-:10244000F01F000AEEF800BCC9EB3089CB8B00000E
-:1024500080026178800091D08002581C8003C65CA5
-:10246000800091A0800261A48002618CEBCD40E0ED
-:10247000189716951496F8F800905808C0D0704830
-:102480005808C0A1F8FC00D4580CC060780C48EB88
-:10249000F01F000EC1501AD648DA1AD5301B0E9C18
-:1024A000F01F000C300A0E9B48BCF01F000C0E9968
-:1024B0000C9B0A9C3008488AF01F00092FEDE3CDE1
-:1024C00080E000008003C65C800091A08003C960AA
-:1024D00080023A1A800230588002740080027474BC
-:1024E000D4211295169614941897F8F900BC5849FF
-:1024F000C1C0F8FA00F4580AC10158895F08581998
-:102500005F0B104BF40B1800F9BB000AF9BB014636
-:10251000F01F0019EEFA00F4F4C8FFFFEF4800F4D2
-:10252000EEF900945809C020D822306A0C9BEECCFA
-:10253000FF04F01F0012EEF800BC5828C111EEF89D
-:1025400000D471585808C040EEFC00C45D180A99C8
-:10255000089A0C9BEEFC00DCF01F0009D8220A99B7
-:10256000089A0C9BEEFC00E0F01F0006FE99FFDECF
-:10257000CE7B00008002246C800091DC8002C3CC02
-:10258000800261FCEBCD406C1ADA18951ADB1692CA
-:102590001493301B48AAF01F000B48B6300A0A9B60
-:1025A0000C9CF01F000A0A990C9A069B049C3008A8
-:1025B000F01F00072FEDE3CD806C00008003C99071
-:1025C00080023A1A8002360080027400800274741D
-:1025D000D401F01F0002D80280022584EBCD40C058
-:1025E000189E1497109CFCF800BC5888C240580BE9
-:1025F000C1A0FCCAFF64FCF600D46C585808C19016
-:102600001ADC16981AD9300BFCFC00C41ADBFD4BFF
-:102610000104490E0E991ADE301B6C565D162FCD43
-:10262000E3CD80C0FCF600D448BA6C585808CE916F
-:10263000E3CFC0C0585CF9B80002F9B80104580BE8
-:10264000C040FD4800B4CD6BFD4800B8482ACD4BD2
-:1026500080037E2080039C38EBCD40F8FACEFFE863
-:1026600018967C35F8F400D47C037C17685C7C2ECB
-:10267000580CC0F01AD51ADE300E1AD71AD3ED4E08
-:102680000104ECFC00C468565D162FCDE3CD80F844
-:10269000E3CFC0F8D42118951694F8F70104580731
-:1026A000C020D822F8F900D472585808C4C01AD7EC
-:1026B000F94701041AD70E981AD74B6A1AD70E9BFE
-:1026C0007256F8FC00C40E995D16EAF900D42FCDBD
-:1026D00072585808C3801AD7EB4701041AD70E98CE
-:1026E0001AD74ACA1AD70E9B7256EAFC00C4301990
-:1026F0005D16EAF900D42FCD72585808C2401AD797
-:10270000EB4701041AD70E981AD74A2A1AD70E9BFC
-:102710007256EAFC00C430295D16EAF900D42FCDC8
-:1027200072585808C1001AD7EB4701041AD70E98FF
-:102730001AD7498A1AD70E9B7256EAFC00C4303960
-:102740005D162FCD5804C200EAFA00D47458580818
-:10275000C12030091AD91AD9EB4901041AD91298A3
-:102760001AD9129B7456EAFC00C4089A5D16EAFA5C
-:1027700000D42FCD75A85808C070089B3019300AB6
-:10278000EAFC00C45D183018EB480104D8220000B0
-:1027900080039C38D421204DF8F900D41897169561
-:1027A00073885808C2C11094F8C6FFEAC1C8EEFC8D
-:1027B00000C45D1B1AD4189B0E984C19E06A888ED1
-:1027C0000C9CF01F00408F2C2FFD580CC111580598
-:1027D000C140189B305CF01F003CEEF900D47388B8
-:1027E0005808C0D1737B580BCE31169CCE4BEECB24
-:1027F000FFF0F01F0036C1302FCDDC2A7378580867
-:10280000C0B0EEFC00C45D18C070189B306AEECCFE
-:10281000FFF0F01F002F6E2C580CCEA1EF39007A7C
-:102820003008F0091800C3A1EEF800D47048580829
-:10283000C100301BEEFC00C45D18C0B4EEF800D43B
-:1028400071485808C0601A9BEEFC00C45D18C214A1
-:10285000300B0E9CF01F001FEEF800D47099580941
-:10286000C070300BEEFC00C45D19EEF800D470A807
-:102870005808C050301BEEFC00C45D183018EF48FB
-:1028800000C84959300C72082FF893082FCDD82270
-:102890004038F1D8C002CDD0CB0B300848891AD8C7
-:1028A000E06A888E0E98EECBFFF0EECCFF86F01F2C
-:1028B00000058F3C2FFD580CCB81C9FB800224E022
-:1028C0008002819C80028F1C800281E4800091DC68
-:1028D0008002269400007A6CEBCD40E018971695A4
-:1028E000300BF01F001DEEC6FF64306A49BB0C9C24
-:1028F000F01F001BC2E0EEF801185808C1F00C9B55
-:102900000E9CF01F00183006EEFC00DC0C9BEF461E
-:1029100000B0F01F00150C9A0C9BEEFC00E0F01FBD
-:1029200000130C9BEEFC00E0F01F00110C9BEEFC72
-:1029300000E0F01F0010E3CD80E0EEF800D470D886
-:102940005808CDE00A9A0C9BEEFC00C45D18CD8BB4
-:102950001896CD6B800217D0800217C88000917C3A
-:10296000800226948002B9D48002581C800261E85B
-:10297000800261D4D401F01F0002D802800228D85E
-:10298000EBCD40C01897F8F800C45808C230303B6F
-:10299000F01F003DEEF800D470495809C070300BAC
-:1029A000EEFC00C45D19EEF800D470A95809C0709F
-:1029B000300BEEFC00C45D19EEF800D47098580896
-:1029C000C050300BEEFC00C45D18300B0E9CF01FA5
-:1029D000002F6E2C3006F01F002E8F266E3C580CF8
-:1029E000C040F01F002B8F36EEF800E45808F9B80D
-:1029F0000100EFF81A39EEFC0090580CC060F01F8F
-:102A000000253008EF480090EEFC008CF01F0022FB
-:102A10003006EEFC00DC0C9BEF46008CF01F001F24
-:102A2000EEFC00E0F01F001EEEFC00DCEF4600E0D4
-:102A3000F01F001CEEFC00DCF01F001BEEFC00DCB5
-:102A4000F01F001A0E9CEF4600DCF01F0019EEFC90
-:102A500000CCF01F00110E9CEF4600D0EF4600CCDA
-:102A6000F01F00140E9CF01F0014EEFC00C4580C64
-:102A7000C070EEF800D470785808C0205D18E3CD1F
-:102A800080C00000800228D88002269480028174D1
-:102A9000800242B4800091E88002B4CC800256ECFF
-:102AA00080029438800294088002C0788002189CCA
-:102AB00080021DB880021CE0EBCD4080169778099B
-:102AC0001639C0F1761899080E9CF01F000A0E9C6A
-:102AD000F01F0009E3CF808072180E38C060109993
-:102AE0005809CFB1E3CFC0806E189318CEEB000029
-:102AF00080022980800091E8EBCD40801897580C27
-:102B0000C051C1980E9CF01F000D6E0B580BCFB139
-:102B1000F01F000BF01F000B6E4C580CC060F01F34
-:102B2000000A6E4CF01F00096E8CF01F00080E9C0E
-:102B3000F01F0006E3CD808080022AB88002724C2C
-:102B40008002728480028F20800091E8EBCD40C02B
-:102B50001897580CC05130060C9CE3CD80C0F01F74
-:102B60000021CFA1334CF01F00201896CF606E08D3
-:102B70006E19991899296E286E89993899996E3C21
-:102B8000580CC040F01F00198D4C6E7C580CC04092
-:102B9000F01F00168D8C6E498D59495891096E5A57
-:102BA0008D6A4948910A49486E698D7991090C9C52
-:102BB000F01F0012C11130196C988DB95808EDF949
-:102BC0001A0C6C285808CC906C185808CC606C4CC7
-:102BD000F01F000BCC200C9C3006F01F000ACBDB52
-:102BE0008002720880028F24800091940000046C9F
-:102BF00000007AA400007AA0800275F880028F1E7F
-:102C000080022AF8D431204D580C5F08580B5F0918
-:102C1000189316971248C05030050A9C2FCDD83211
-:102C2000E06C011CF01F00C01895CF803018F948E7
-:102C3000010CFEF102F66E22620B580BC100580225
-:102C4000E0800144E2C4FFFC3006760B049CF01FD8
-:102C500000B8C0C02FF6090B580BCF810A9CF01F9B
-:102C600000B50A9CF01F00B4CD8BE2060328EB48A8
-:102C700000D46E0C580CE0800122F01F00B0EB4C29
-:102C8000008CF01F00AFEB4C0090CE906E185808EF
-:102C9000C0A0785CF01F00A86E1CEAF60090F01F40
-:102CA00000A78D5C6E385808C0C0EAF8009070BC70
-:102CB000F01F00A16E3CEAF60090F01F00A08DBC52
-:102CC000EAF800905808CCB06E4C580CCC80F01F3D
-:102CD000009DE04C0063FE9BFFC3EAC1FFEA364A59
-:102CE0006E4B029CF01F00986E5C580CE08100F95E
-:102CF0006620340CF01F008C1897CB10FEF8024CA5
-:102D00008F78FEF8024AFEF9024A8F98FEF80248D0
-:102D10008F058F458F658F898FC83006FEF4023C82
-:102D20008F168FA4FEF202388FB2EAF900907288F3
-:102D30008FD8EAF9009072988FE8EAF9009072A8AB
-:102D40008FF8F01F0088EB4C00E0E08000C20C9B85
-:102D5000F01F00850C9BEAFC00E0F01F0084EAF8FD
-:102D600000D470685808E08000A7029B0A9C5D1898
-:102D7000EB4C00C4FE90FF74EAF8009070BBEAF8D8
-:102D800000D470895809C0605D19FE95FF69EAF8A2
-:102D900000D471685808C0F0EAFC00C45D181897A8
-:102DA000C0A0029BF01F0062C0600E9B364A029CCE
-:102DB000F01F006534CCF01F005CFE90FF514EC840
-:102DC0004EC9991899294EC84EC9993899494EC883
-:102DD0004EC9995899694EC84EC9997899894EC873
-:102DE0004EC9999899A94EC84EC999B899D94EC853
-:102DF0004EC999C899E94EC84EC9F9440040F942F4
-:102E00000044990599F8F9490048F01F0069EB4C16
-:102E100000DCFE90FF25EB39007A3008F00918003D
-:102E2000C5C1300A029BF01F0063EAF80090EAFC7B
-:102E300000DC707BF01F0060EAFB00E0EAFC00DCD5
-:102E4000F01F005EEAFA009074C85808C60174D8F2
-:102E50005808C52174EA580AC080302BEAFC00DC0F
-:102E6000F01F0057FE91FEFC009B0A9CF01F0055CE
-:102E7000FE95FEF6EACBFFF0EAFC00DCF01F005204
-:102E80003FF8EB4800E4EAF900D473485808C0D092
-:102E90001A9BEAFC00C45D18C0814038EDB80002FE
-:102EA000C0413018EB4801188B0366088B18870562
-:102EB000FE9FFEB5EB4800C4CD2A6E3B6E1CF01F92
-:102EC0000043EB4C0090CFDAF94B00D4CD3A0E9C86
-:102ED000F01F0019FE9FFEC4EACAFF86CA4BF01F0E
-:102EE000001958FCFE9BFEBC6E5B310AEACCFF86E3
-:102EF000F01F0015CFEA109A301BEAFC00DCF01F2F
-:102F00000030FE91FEADEAFA0090CA5B109A300BD9
-:102F1000EAFC00DCF01F002AFE91FEA2EAFA009013
-:102F2000C97B000080028F2400000470800091A003
-:102F300080022980800091E88000919480021348EB
-:102F4000800091B8800091AC80021D60800225DC79
-:102F500080021BB8800218C8800218E8800218D8C6
-:102F60008002609C800261E8800261D48002184483
-:102F700080021850800225D0800229748002304CD3
-:102F8000800226588002360080021A3C80021928EE
-:102F900080021CA880021F0480021BA480021D5412
-:102FA0008002186E80021884800218568002C0DCED
-:102FB0008002B4C08002B4B88002B4CC8002B4D421
-:102FC000800227948002B90480023B4CEBCD40E0A4
-:102FD000306A18971695F8C6FF64497B0C9CF01F61
-:102FE0000017C270EEF801185808C1800C9B0E9CA7
-:102FF000F01F00130E9CF01F00133006EEFC00DCE7
-:103000000C9BEF4600B0F01F00100C9A0C9BEEFCDE
-:1030100000E0F01F000EE3CD80E0EEF800D470E891
-:103020005808CE500A9A0C9BEEFC00C45D18CDFBEC
-:103030001896CDDB800217C88000917C8002269410
-:10304000800276648002B9D48002581CD401F01F3B
-:103050000002D80280022FCCEBCD40C0499BF8C7BC
-:10306000FF641896306A0E9CF01F0017EDFB189C49
-:10307000E06800A2EDD8E007EDFB08A20FD81AD84F
-:103080000FC91AD90FB81AD80FA91AD90F9848FA28
-:103090001AD80C9C1ADB302BF01F000D0E9B0C9CD9
-:1030A000F01F000CECFC00DCF01F000B303B0C9C14
-:1030B000F01F000A30182FADED4800A8E3CD80C006
-:1030C000800217C88000917C8003C9B880023A1A38
-:1030D00080021AE08002BA1C80022FCCD431FACDD3
-:1030E00000D03007F94700A8189516941491580B92
-:1030F000E0800217F6F60084E8CCFFFA76ABF01F0A
-:10310000012A1AD61ADC09D81AD809C91AD909B855
-:103110001AD809A91AD909981AD809890A9C1AD95A
-:10312000FEFA0488302BF01F01220E9B306A2F8D8F
-:10313000EACCFF64F01F011F306A089BEACCFF5EF7
-:10314000F01F011D0A9CF01F011D300AEAFC00DC83
-:10315000149BF01F011B635AEDBA0003C061E2F833
-:1031600001745808E08100B1301063795809C0E05B
-:10317000E1D9C0011298EDB90001E08000A4EDB9D9
-:103180000002F9B80004E1D8E030EAF800D4710890
-:103190005808C060009BEAFC00C45D18635A5804DC
-:1031A000C07069585808C5A0F1DAC002C6E114978A
-:1031B000E2170013C5B1029B0A9CF01F0102FAC876
-:1031C000FF9453375028089B0A9CF01F00FFEAF831
-:1031D00000B45828E08001BAE089007F5818E080E8
-:1031E000017130285038EAF800B85828C7F058283C
-:1031F000E08900805818E080016230285048EAF9E0
-:1032000000BC58495F0B58895F08F7E81008C78071
-:10321000E2C9FECCE2C8FF0C16963007EC1600019E
-:103220005019500812931092505766095809E081BE
-:1032300001122FF72FC32F025847CF81EAF900BCA4
-:103240005889C671E2F800F04059F1D8C002F3E89D
-:103250001008E08101311096C5F8E8F800805808A0
-:10326000CA70F1DAC002CA40C1083509FAC8FF3095
-:1032700010D9029AFAC9FF94300B50290A9CF01F0A
-:1032800000D3CA202CCDD832E2F801485808E0819A
-:10329000010FEAF900B0089A300BEAFC00DCF01FDD
-:1032A00000CCE080017A3509FAC8FF3010D9029AC3
-:1032B000FAC9FF94089B50290A9CF01F00C4C8401B
-:1032C000CE2BA1B0C5DBE2F801785808F9B00004B4
-:1032D000F9B00105C4BB5848C8605908C831303935
-:1032E0005039EAF800B85828C83130195049C88B0D
-:1032F0005848C8505908C82130395049C81B3008AF
-:103300005058E2C8FECC30165018E2C8FF0C5008E6
-:103310005909E080011FEAF800D470A85808C0508D
-:103320000C9BEAFC00C45D18303B0A9CF01F00A90E
-:10333000354AFAC7FFE8300B0E9CF01F009E580478
-:10334000E0800126E8F8008450645098E8C8FFFA4D
-:10335000507868A95089E2FA0184581AE080009EEA
-:103360004029403850A950C84049433850D950B836
-:10337000EAF800BC5848E08000E7E0890088581867
-:10338000E08000A43018510A4014400350E850F087
-:10339000FACAFFAC0899069BFACCFF9C7208580841
-:1033A000C040F54BFFF0720814A82FC92F0B183A34
-:1033B000CF61E2F801445198EAF601185806E0801E
-:1033C0000089FEFA0212302B0A9CF01F0079301996
-:1033D000EAF800BC5908E080008F5809E0800098A6
-:1033E000305B300A0A9CF01F007D40585808C1C06D
-:1033F000EAF800D471485808C170FACBFF44EAFCDF
-:1034000000C45D18C1114328EDB80001C0D1189760
-:103410004F30189268095809E08100A12FF72FC496
-:103420002F035847CF81EAF800B05808C070103118
-:10343000C050EAFC00E0F01F006BEAFC00DC029BDD
-:10344000EB4100B0F01F00680A9CF01F00682CCD13
-:10345000D832EAFB00D4E2FA014476585808C13069
-:103460001AD91AD23009EB4901041AD94DC90E3ABA
-:103470005F081AD94DEA76560E99301BEAFC00C453
-:103480005D162FCD30165056CD5A5888C2005908B7
-:10349000FE91FF7A3048C78BE2F901A45809FE9AE1
-:1034A000FF6140985808FBF90A09C5BB6368F1D869
-:1034B000C021CF0A50375047C2FB30085048CA0AD3
-:1034C00030085038FE9FFE913008C5EB3038C5CB30
-:1034D000EAF800D470F85808FE90FF750E9BEAFCDD
-:1034E00000C45D18FE95FF6F0C99EAF800BC5908FE
-:1034F000FE91FF75029B0A9CF01F003E0A9CF01F84
-:10350000003E307B0A9CF01F0033C70BEAF80090A6
-:1035100070495819F9BB000AF9BB013CC63B745B02
-:10352000744CF01F00214B5A1ADC302B0A9CF01F00
-:103530000020306A089BEACCFF5EF01F001E2FFDC2
-:10354000FE9FFE023028C20B30195039FE9FFE4DFF
-:10355000029B0A9CF01F0027CDFAEAFB00D4E2FA96
-:10356000014476585808FE90FF5B1AD91AD3EB42F3
-:1035700001041AD20E3A5F081AD00E99765649CA3B
-:10358000301BEAFC00C45D162FCDC49B6248507806
-:1035900062595089CE1A301BEAFC00E0F01F001877
-:1035A000FE9FFE8380023A1C8003C9F880023A1A0B
-:1035B000800091D0800091DC80021DB88002B5ECC3
-:1035C000800222A48002269480021F308002938011
-:1035D000800217D08003CA6C8002246C80037E2096
-:1035E000800257488002B9D48002237080039C383F
-:1035F00080021A4880021CE08003CA488002559667
-:10360000EBCD40C021AD1897F8F800AC5808C68142
-:10361000F8F6010CEEFB009076095809C061C8F875
-:1036200072095809E080008CF2F801945808CF9193
-:103630003008EF48010C76495809C670EEFC00D4FA
-:10364000580CC0E04DAB780CF01F005AEFF8002486
-:10365000F1FC0A04EEFB009076485808C560EEF8CD
-:1036600000E85818E088008D760AEEF800C858186F
-:10367000C3F0580AC090103AC041C3981438C370C0
-:10368000740A580ACFC15826C04076485828C690B8
-:10369000580AEFFA1A32F9B80001EFF80A32EEF9D7
-:1036A00001105809C04176485818C710EEF80118A3
-:1036B0005808C4F1580AF40B1700F60A1700F5FB76
-:1036C0001004F5FA1005EEF800D470B85808C410CC
-:1036D000EEFC00C45D18C3D12E6DE3CD80C0F8F6BA
-:1036E000010C5806C9812E6DE3CD80C0740A580ABA
-:1036F000CCB0F4F801945808CFA175885808CC4193
-:1037000076485828CF41CC0B0E9CF01F002BCE5092
-:10371000EEF800B05808EFFC0A2C0E9CF01F0027B2
-:10372000300B1A9C368AF01F00261A961A9A0E9CA5
-:10373000300BF01F00242E6DE3CD80C05806FE91A3
-:10374000FF790E9C301BF01F00202E6DE3CD80C052
-:103750000E9C300A30ABF01F001D2E6DE3CD80C0F3
-:10376000580AC1D074085808EFFA1A32F9B80001A3
-:10377000EFF80A320E9C300BF01F0015CAEB302B0D
-:103780000E9CF01F0011EEFB0090C6FBEF480110ED
-:10379000129A0E9C303BF01F000BC9FB30180E9C98
-:1037A000EF4800C8149BF01F0009C97B8003C65C6A
-:1037B000800091A08002195C80022370800091D06B
-:1037C0008002792C800217D080022584800230DCB0
-:1037D0004848300A48499118910A930A5EFF000050
-:1037E00000007A7000007A78EBCD40681695189347
-:1037F000F6CCFFEDF01F0022314A1896300BF01F77
-:1038000000210A9A8D15ECCCFFF0069BF01F001EDC
-:1038100049EAF5090042AC09F50800422FF8F558CD
-:10382000004249B530088D286A198D3993062F86D4
-:103830008B1649866C08F0C9FFFF8D095909E0888D
-:1038400000180A936A0C782A580AF9F80003E7F876
-:103850000A01F9F81003F5F81A0320197838910ACB
-:103860008D09F01F000D6C095909FE9BFFED300A10
-:10387000326C149BF01F0009E3CF90688000920027
-:10388000800091D0800091DC000087F400007A7005
-:1038900000007A78800091E880014658EBCD40E046
-:1038A00030961697305E300B33A51989F2C8003078
-:1038B000EC081800E08B0019F2CA0030580AC2C5A3
-:1038C0001999F2C80030EC081800E08B0017F2C814
-:1038D00000305808C215F1EA1048EE0B0B08585B8F
-:1038E000C291E3CF80E0F2C80061FC081800E08BD1
-:1038F000000EF2CA0057CE3BF2C80061FC08180067
-:10390000E08B000DF2C80057CE5BF2C80041FC0806
-:103910001800E088000DE3CFC0E0F2C80041FC08C9
-:103920001800FE9BFFFAF2C80037CD4BF2CA0037F1
-:10393000CC6B19A8EA081800CEF12FFB586BCD20EC
-:103940002FDCCB4BEBCD40E016961497580AC4C041
-:10395000300B3095305EC1B8F2CA0030580AC365EA
-:103960001999F2C80030EA081800E08B0021F2C86B
-:1039700000305808C2B5F1EA10485808C275EC0B7F
-:103980000B082FFB1637E08800302FEC1989F2C89E
-:103990000030EA081800FE98FFE1F2C80061FC0858
-:1039A0001800E08B000EF2CA0057CD9BF2C80061F0
-:1039B000FC081800E08B000DF2C80057CDBBF2C820
-:1039C0000041FC081800E088000DE3CFC0E0F2C819
-:1039D0000041FC081800FE9BFFFAF2C80037CCAB90
-:1039E000F2CA0037CBCBE3CF80E0F6CA00015E6CB1
-:1039F000F80A000913882FF85C58B2885E1CF6C8D4
-:103A00000002100CC08819882FF85C58B888201C58
-:103A100058085E1C201ACF875EFC5EFCEBCD40C0D0
-:103A200049071696189BE0460020F9B60B200E9C1D
-:103A30000C9AF01F000D3008EE060B080F8858088E
-:103A4000C0D00E9C35E935FA2208F2081800F9FAC0
-:103A5000BE002FFC19885808CF81482CE3CD80C0C8
-:103A600000007A7C800091DCEBCD40FE189114922E
-:103A7000169C1293580BC2A0E20B00045809C20016
-:103A800002973006C0881835E08A001418070C33F6
-:103A9000E0880018E4060708E80701051AD80E9C1C
-:103AA00048CA0A9B2FF6F01F000C2FFD580CCEC4FD
-:103AB0003008EE01010CE968FFFFE3CD80FE0297BC
-:103AC0003008EE01010CE968FFFFE3CD80FE000045
-:103AD0008003DA3080009148580CC140F8FC00D0D7
-:103AE000580CC1002FCCF8F8FFFC5808C0417809E9
-:103AF0005809C0901638C0302F8CCF6B7808143816
-:103B0000CFC15EFF5EF9780C580C5E0C7828163831
-:103B1000C0515EFC782816385E0C780C580CCFB17A
-:103B20005EFC30383189F94800F0F9480058F9480E
-:103B3000005431E8F949004CF94800503FF9E06879
-:103B40000576F949017CF948019C5EFCEBCD40E02B
-:103B500018961695344CF01F000C1897C1103018A9
-:103B60009978993899485806C0500C9CF01F000766
-:103B70008F5C5805C0500A9CF01F00048FBC0E9C3F
-:103B8000E3CD80E080028F2480009194EBCD40C093
-:103B9000169679075807C051C0C86E375807C090AD
-:103BA0006E0C0C9BF01F0004CF910E9CE3CD80C0E7
-:103BB000E3CF80C0800091A0EBCD40FC1695189417
-:103BC000580C5F0B58055F081493104B1292C040BD
-:103BD0003FFCE3CD80FC580ACFC048E73006C06800
-:103BE0002FF62E07E0460038CF406E0B0A9CF01FE0
-:103BF000000ACF710699049A089B0E9C6E185D18F6
-:103C0000F9BC01FFF9BC0000E0460038CE31CE1B04
-:103C10008003CC00800091A0EBCD40801897580C19
-:103C2000C0A0780CF01F00056E1CF01F00040E9C55
-:103C3000F01F0002E3CD8080800091E8D421189429
-:103C4000169579075807C1A03006C0680E966E3CDD
-:103C5000580CC14018970A9B6E0CF01F0009CF71D9
-:103C60005806EFF81003EDF81A03EFF80003E9F82F
-:103C70000A100E9CF01F0003D82ADC2A800091A0B5
-:103C800080023C18EBCD406016961895760BF01F1D
-:103C900000056B088D38EB460040E3CD80600000E6
-:103CA00080023C3CD431202D500B129CF01F003C74
-:103CB0001890C730198A580AC670300118965011EA
-:103CC000320230930294C0382FF60D8AE40A1800AD
-:103CD0005F08E60A18005F091248E8081800CF518B
-:103CE000580AC2C00D87E40718005F18E6071800DD
-:103CF0005F191268E8081800C4505807C4300C95C2
-:103D0000C0385807C0D02FF50B87E40718005F189C
-:103D1000E60718005F191268E8081800CF31AA8476
-:103D20004A0B0C9CF01F0020C171A1A15807C06074
-:103D3000EAC6FFFF0D8A580ACCA1009CF01F001BA9
-:103D40005801C2404008F141005C40195809C25175
-:103D5000129C2FEDD832496B0C9CF01F0013C03120
-:103D6000A1B1CE5B0C9C493BF01F000FF9B80004D9
-:103D7000E3D8E031FBF91001F7B901FFFBF91A01B3
-:103D8000CD6B0C95CCDBF01F0009300840093FFCDF
-:103D9000F348005C2FEDD8322FEDDC3A800091948F
-:103DA0008003D304800091A0800091E88003D30CAD
-:103DB0008003D314EBCD40FE169CF01F00451891F4
-:103DC000C6B0198A580AC7A0189630023203309438
-:103DD000E80A18005F08E60A18005F091049300871
-:103DE000F0091800C0E0109B2FF60D8AE60A1800B3
-:103DF0005F08E80A18005F091248F6081800CF515A
-:103E0000580AC4500D87E80718005F18E607180025
-:103E10005F1910693008F0091800C3705807C350C3
-:103E2000109A0C95C0385807C0D02FF50B87E607BD
-:103E300018005F18E80718005F191268F4081800E6
-:103E4000CF3130084A3BAA880C9CF01F0023C0F1F8
-:103E5000A5A25807C060EAC6FFFF0D8A580ACB9199
-:103E6000029CF01F001E049CE3CD80FE49CB0C9CFD
-:103E7000F01F0019C031A3B2CEDB49AB0C9CF01F80
-:103E80000016C0E1A3A2CE6B0C95CDCB029CF01F17
-:103E900000135802CE913FF2049CE3CD80FE492BE3
-:103EA0000C9CF01F000DC031A1B2CD4B0C9C48FB07
-:103EB000F01F0009C071A1A2CCDBF01F00083FF287
-:103EC000CD3B029C3FF2F01F0005CCEB80009194AB
-:103ED00080039A74800091A0800091E880039A6C1E
-:103EE0008003D31C8003D3248003C8E4EBCD40803F
-:103EF0001697149C129BF01F00085BFCC031E3CFA7
-:103F0000C0801898E018FFE1CFB1EF4C0050109C32
-:103F1000E3CD808080023DB4EBCD40801697149CA9
-:103F2000129BF01F00085BFCC031E3CFC0801898E3
-:103F3000E018FFE6CFB1EF4C004C109CE3CD808041
-:103F400080023DB4D431201D500B129CF01F00485C
-:103F50001891E080007F198A580AC6B0300218967E
-:103F6000049032033094E80A18005F08E60A18004B
-:103F70005F0910493008F0091800C0E0109B2FF6C7
-:103F80000D8AE60A18005F08E80A18005F0912485F
-:103F9000F6081800CF51580AC2F00D87E80718003C
-:103FA0005F18E60718005F1910693008F00918005B
-:103FB000C3E05807C3C0109A0C95C0385807C0D04A
-:103FC0002FF50B87E60718005F18E80718005F1940
-:103FD0001268F4081800CF3130084A6BAA880C9C8C
-:103FE000F01F0025C161A1B25807C060EAC6FFFFFB
-:103FF0000D8A580ACB91029CF01F00205802C1B0D4
-:104000004009F34200545800C241009C2FFDD832B1
-:1040100049BB0C9CF01F0018C031A1A2CE6B499B7C
-:104020000C9CF01F0015C0E1A3B2CDFB0C95CD5B3D
-:10403000F01F0012300840093FFCF34800542FFDE8
-:10404000D832491B0C9CF01F000CC051A3A2CCDB42
-:104050002FFDDC3A0C9C48DBF01F0007F9B800107C
-:10406000E5D8E032F7B001FFCC0B0000800091945E
-:104070008003C8C4800091A0800091E88003D32C05
-:104080008003D3348003C8E48003C8E0D431202DFA
-:10409000500B129CF01F00391890C6D0198A580A8C
-:1040A000C610300118955011320230930294C03876
-:1040B0002FF50B8AE40A18005F08E60A18005F096A
-:1040C0001248E8081800CF51580AC2C00B87E4070D
-:1040D00018005F18E60718005F191268E808180052
-:1040E000C3F05807C3D00A96C0385807C0D02FF67F
-:1040F0000D87E40718005F18E60718005F191268BB
-:10410000E8081800CF31AC8449DB0A9CF01F001D81
-:10411000C171A1A15807C060ECC5FFFF0B8A580A06
-:10412000CCA1009CF01F00185801C1E04008F141EB
-:10413000005840195809C1F1129C2FEDD832493B63
-:104140000A9CF01F0010C031A1B1CE5B0A9C490B44
-:10415000F01F000CCFA040192FF95019CDCB0A96B3
-:10416000CD3BF01F0009300840093FFCF3480058E0
-:104170002FEDD8322FEDDC3A800091948003D340AC
-:10418000800091A0800091E88003D3448003D3484D
-:10419000EBCD40401896784CF01F00466D2CF01F78
-:1041A0000045ECFC00D0F01F00436DACF01F004157
-:1041B0006DCCF01F00406DECF01F003EECFC008069
-:1041C000F01F003CECFC0088F01F003AECFC009073
-:1041D000F01F0038ECFC0094F01F0036ECFC009857
-:1041E000F01F0034ECFC009CF01F0032ECFC00A03F
-:1041F000F01F0030ECFC00A4F01F002EECFC00A827
-:10420000F01F002CECFC00ACF01F002AECFC00B00E
-:10421000F01F0028ECFC00B4F01F0026ECFC00B8F6
-:10422000F01F0024ECFC00BCF01F0022ECFC00C0DE
-:10423000F01F0020ECFC00C4F01F001EECFC00C8C6
-:10424000F01F001CECFC00CCF01F001AECFC00D4AA
-:10425000F01F0018ECFC00D8F01F0016ECFC00DC8E
-:10426000F01F0014ECFC00E0F01F0012ECFC00E872
-:10427000F01F0010ECFC00ECF01F000EECFC0150F5
-:10428000F01F000CECFC016CF01F000AECFC01803C
-:10429000F01F0008ECFC018CF01F0006ECFC01A0F4
-:1042A000F01F00040C9CF01F0003E3CD80400000D1
-:1042B000800091E8EBCD40C0189678085808C031CE
-:1042C000C0880E987007109CF01F00155807CFA1EA
-:1042D0006D085808C031C0880E987037109CF01FC8
-:1042E00000115807CFA16C5CF01F000F6C6CF01F21
-:1042F000000E6C8CF01F000C6C9CF01F000B6CAC63
-:10430000F01F00096CBCF01F00086C1CF01F0006B9
-:104310000C9CF01F0005E3CD80C00000800241909E
-:1043200080023C18800091E8EBCD4040320818969E
-:104330001AD8E0691000F8C8FFDC785A784B792C5D
-:10434000F01F000430182FFDED480044E3CD8040FD
-:104350008002B254D421F60815011695F0C6FFFF6D
-:1043600018940C9CF01F00061897C0600A99089AD0
-:104370000C9BF01F00040E9CD822000080028F24AA
-:1043800080023A68EBCD40E016951896F6CCFFFD1A
-:10439000F01F00091897C0C00C9B0A9A322618C655
-:1043A000F01F0006EE0500093008B296B2A80E9C78
-:1043B000E3CD80E080009200800091DCD401580CB5
-:1043C000C1D0580BC160198835E92208F2081800DD
-:1043D000E08B0013129A3009C088F80907082208F8
-:1043E000F4081800E08B00092FF9123BFE9BFFF741
-:1043F000F01F0003D802F01F0003D802800243849C
-:1044000080024354D4011698F6FC0140580CC06059
-:10441000189BF0CCFEDCF01F0002D802800243BCE7
-:10442000D4011698F6FC013C580CC060189BF0CCE7
-:10443000FEECF01F0002D802800243BCD4011698A3
-:10444000F6FC0138580CC060189BF0CCFEFCF01F45
-:104450000002D802800243BCD4011698F6FC013455
-:10446000580CC060189BF0CCFF0CF01F0002D80263
-:10447000800243BCEBCD40F831EC1694F01F0028CD
-:104480001896C3906979F8C3FFE2EDB90000C360E4
-:104490001897EDB90001C1614A294A380C37F20872
-:1044A0001710E60701051AD84A0A0A9B0E9CF01F4E
-:1044B00000202FFD580CC1C51835E08A001A1807D6
-:1044C0006979EDB90002C171496949780C37F20880
-:1044D00017100E9C1AD8E6070107496A0E9BF01FB9
-:1044E00000142FFD580CC0451837E089000530082E
-:1044F000E768FFFF0C9CE3CD80F848B848EA1AD87B
-:1045000031EBF01F000B2FFD580CCF2559DCFE9925
-:10451000FFF0EC0C00076979CBDB000080028F24F0
-:104520008003936480037E208003D35880009148E9
-:104530008003D3648003D350EBCD40F81894332C20
-:10454000F01F003E1896C650F8C3FFCEEDB400042D
-:10455000C6301897EDB40003C1514B994B980C37F6
-:10456000F2081710E60701051AD84B7A0A9B0E9C31
-:10457000F01F00362FFD580CC4951835E08A00470F
-:104580001807EDB40002C1514AD94AE80C37F208C5
-:104590001710E60701051AD84ADA0A9B0E9CF01F8D
-:1045A000002B2FFD580CC3251835E08A0030180762
-:1045B000EDB40001C1514A294A280C37F2081710FE
-:1045C000E60701051AD84A3A0A9B0E9CF01F001F05
-:1045D0002FFD580CC1B51835E08A00191807EDB445
-:1045E0000000C171496949780C37F20817100E9C18
-:1045F0001AD8E6070107498A0E9BF01F00142FFD09
-:10460000580CC0451837E08900053008E768FFFFFF
-:104610000C9CE3CD80F848B8490A1AD8332BF01F18
-:10462000000B2FFD580CCF25E04C0031FE99FFEF19
-:10463000EC0C0007C90B000080028F2480039364F8
-:1046400080037E208003D374800091488003D37C54
-:104650008003D3888003D3908003D36CD401774C3C
-:10466000F01F0002D802000080024538D401773CD8
-:10467000F01F0002D802000080024538EBCD40F860
-:10468000332C1693F01F00401896C6906759F8C453
-:10469000FFCEEDB90001C6601897EDB90000C16109
-:1046A0004BA94BB80C37F2081710E80701051AD8C8
-:1046B0004B8A0A9B0E9CF01F00382FFD580CC4C576
-:1046C0001835E08A004A18076759EDB90003C1613F
-:1046D0004AE94AF80C37F2081710E80701051AD81A
-:1046E0004AEA0A9B0E9CF01F002C2FFD580CC34574
-:1046F0001835E08A003218076759EDB90002C16128
-:104700004A294A380C37F2081710E80701051AD869
-:104710004A3A0A9B0E9CF01F00202FFD580CC1C581
-:104720001835E08A001A18076759EDB90004C171FD
-:10473000496949780C37F20817100E9C1AD8E80717
-:104740000107498A0E9BF01F00142FFD580CC0452D
-:104750001837E08900053008E968FFFF0C9CE3CDBD
-:1047600080F848B8490A1AD8332BF01F000B2FFDE8
-:10477000580CCF25E04C0031FE99FFEFEC0C000700
-:104780006759C8CB80028F248003936480037E2006
-:104790008003D3A4800091488003D3B08003D390DA
-:1047A0008003D3BC8003D398EBCD40C030AC1696C9
-:1047B000F01F00181897C1806D69EDB90000C17035
-:1047C000189A301BEDB90001C0F149384939580B2E
-:1047D000F0091700149C1AD9EECBFFF6141B490AF6
-:1047E000F01F00102FFD0E9CE3CD80C048B848EAB2
-:1047F0001AD830ABF01F000B2FFD580CCF55589C2A
-:10480000FE99FFF3EE0C000A6D69300BCDCB000072
-:1048100080028F248003936480037E208003D3D0A2
-:10482000800091488003D3C8EBCD40C01697768CAA
-:10483000580CC05118960C9CE3CD80C0314CF01F31
-:1048400000101896CF90EF38001DEF3A00181AD8D4
-:10485000EF39001C1AD9EF38001B1AD8EF39001AAB
-:104860001AD9EF380019314B1AD81ADA485AF01F02
-:10487000000630082FADED680013CDEB80009200EC
-:104880008003DA4880009148EBCD40E078351696F9
-:10489000314CF01F000A1897C0C0EC050308488A85
-:1048A0001AD8314BF01F000730082FFDEF680013B6
-:1048B0000E9CE3CD80E00000800092008003DD6864
-:1048C00080009148EBCD40801697772C580CC09013
-:1048D000F01F0009189B6F2CF01F0008E3CD8080AB
-:1048E000771C580CC060F6CCFFDC320BF01F0004C4
-:1048F000E3CD8080800091B88002438480024354DD
-:10490000EBCD40807838F60800076E085808C0C024
-:10491000784C580CC0C0F60C030C189B109CF01F70
-:104920000007E3CD8080109CE3CD8080109CF01FB9
-:1049300000046E08CF3B0000800243BC800091B8A9
-:10494000EBCD40F83228169418961989F009180012
-:10495000C0A0F01F001BEBDCC001C19030070E9C13
-:10496000E3CD80F8F8C7FFFF322B0E9CF01F001537
-:10497000CF6019985808CF31B8880E9CF01F0010EE
-:10498000890C0E9CF01F00101897CEABF80316018F
-:10499000E6CCFFFFF01F000D1897CE200C9C069A66
-:1049A0000E9BF01F000BC051EE030B0C8903CD8B47
-:1049B0000E9C0A97F01F0007CD3B0000800091B8C5
-:1049C00080009158800091948000920080023944C8
-:1049D000800091E8D421205D18951094129C1696C1
-:1049E000F01F000F1897C1906C0A590AE08B001451
-:1049F000189B0A9CF01F000B0E9CF01F000B48BA7E
-:104A00001AD4314BFACCFFFCF01F0009300C2FFDFB
-:104A10002FBDD822F01F00042FBDDC2A80024940A0
-:104A2000800091DC800091E88003D3D88000914819
-:104A3000D4013038F6CCFEDCF6CBFEC0F01F00020D
-:104A4000D8020000800249D4D4013028F6CCFEEC14
-:104A5000F6CBFEC4F01F0002D8020000800249D449
-:104A6000D4013018F6CCFEFCF6CBFEC8F01F0002D5
-:104A7000D8020000800249D4D4013008F6CCFF0CE3
-:104A8000F6CBFECCF01F0002D8020000800249D411
-:104A9000EBCD40F8201D18971693129C1A9BF01F1F
-:104AA00000171895C2306E595809C0504008103987
-:104AB000E08B00206E695809C04040081039C133AE
-:104AC0006E366E44E60600066C0CF01F000D8D0578
-:104AD0006E4C580CC0504008300CE60409082FFDFD
-:104AE000E3CD80F80A9CF01F00062FFDE3CFC0F84D
-:104AF000F01F00033FFCCF4B80024940800091E84B
-:104B0000EBCD40FEF6F700D05807C0510E94089C3C
-:104B1000E3CD80FE364CF01F00191894CF90EEC6FE
-:104B2000FFFCF8C3FF9C189749514962ECFCFFFC5D
-:104B3000580CC2116C0B580BC1A02F86F01F00122D
-:104B4000CF600837E2081700E40817101ADCE60700
-:104B500001051AD80E9C48DA0A9BF01F000D2FEDB4
-:104B60001807580CC0451835FE99FFE23008E76871
-:104B7000FFFFCCEB6C0BCE2B80028F2480037E20BA
-:104B800080039364800271BC8003D3E48000914869
-:104B9000D431205D500B129CF01F0056502CE08049
-:104BA000008E198A580AE080009B3009402650196F
-:104BB000503912905049320230931294C0382FF677
-:104BC0000D8AE40A18005F08E60A18005F09124817
-:104BD000E8081800CF51580AC4E00D87E407180010
-:104BE0005F18E60718005F191268E8081800C64049
-:104BF0005807C6200C95C0385807C0D02FF50B8732
-:104C0000E40718005F18E60718005F191268E80843
-:104C10001800CF31AA842FF0403CE00B1503F01FA1
-:104C200000361891C4E040490C9CE20900060C9B38
-:104C3000F01F00328D1C6C085808C141580CC1018E
-:104C400040182FF850185807C15040482F88504836
-:104C5000EAC6FFFF0D8A580AC3C05031CB3B591C2E
-:104C6000C2404009F2F801782FF8F348017858075C
-:104C7000CED15031E0C8FFFFF0071503402CF01FE4
-:104C800000200E9B403CF01F001CC2E0F8000039E1
-:104C90003008931893084008F14C00D04019580987
-:104CA000C0D1129C2FBDD8324009F2F801742FF800
-:104CB000F3480174CC9B0C95CAEB3FFC2FBDD83256
-:104CC000403CF01F000F402CF01F000D2FBDDC3AC0
-:104CD000E0C8FFFF5031F0071503CD1B501A308795
-:104CE000503A1490CCCB403CF01F00053FFCCE7BEB
-:104CF00080009194800091F48002720C800091E811
-:104D0000D4213228129716951389F0091800C0A0F3
-:104D1000320A2DCB0E9CF01F00271896C2F03FFCE4
-:104D2000D822EEC6FFFF322B0C9CF01F0023C3C01D
-:104D3000F8060107EEC80008E0480037FE9BFFF1C7
-:104D40006B2C580CC060F01F001D0E3CC2606B2C19
-:104D50003004EB440044F01F001AEECCFFFFF01FBC
-:104D60000019EB4C0048CDC00C9B0E9AF01F0016AA
-:104D70006B28089CF0070B04D822EF390040F80993
-:104D80001800CCE16B2CF01F000E3018EB460048E9
-:104D90000C9CEB480044D8220E9A0C9B6B2CF01F05
-:104DA000000BCD61CBEB0C9CF01F00041897CC3BA3
-:104DB0008002394480009158800091B8800091E8C9
-:104DC00080009200800091DC8000917CEBCD4080DF
-:104DD0001697129C2E8BF01F0006F9BC01FFF9B844
-:104DE0000001EFF80A08E3CD808000008002389CC3
-:104DF000EBCD40C018976E38129CF00B000630AA1D
-:104E0000300BF01F000C8D0C18996E585808C030EC
-:104E1000103CC0956E6C580CC0401839E0890007F2
-:104E2000E3CF80C08D08E3CFC0C08D0CE3CFC0C0FE
-:104E300080009170D42116941895782B580BE08A35
-:104E400000557817683E6E0C78381C38C410EECACE
-:104E5000FFFC3009C058150C78381C38C3902FF966
-:104E60001639CFA52FFB0E9CA36BF01F00241896BC
-:104E7000C3506A2C580CE08A003B6C08683E7039BD
-:104E80001C39C355ECC8FFFC300AC0A81097700845
-:104E9000F40B15027039EEC8FFFC1C39C2052FFA5D
-:104EA000143CFE99FFF5F4C8FFFFEC0A002BA36841
-:104EB0001697F80A010AEC08000CA36AF01F00100C
-:104EC0008F048B166A28300C2FF88B28D82218985C
-:104ED000781C580CCFD19114D822DC2AF4C8FFFFDB
-:104EE000EC0B000BA368CE6B7817CBDB0C97300A6A
-:104EF00030480C9BCDFB0000800091F4800091C4F1
-:104F0000D4211895781CF01F000D300C8B1C8B2CB5
-:104F10006A075807C0F0189618948F140E9B0A9CC5
-:104F2000F01F00076E07F9B605FF5807CF710C9CFC
-:104F3000D8220E96CFDB0000800091E880024E342C
-:104F4000D421189578095809C1E03FFAC028109972
-:104F50007228F4080C4A72085808CFA1F4C4FFFF65
-:104F60001296E06C01A8F01F000A1897C0A09924BF
-:104F70005806EDFC1A00EBFC0A000A9CF01F000525
-:104F80000E9CD82212961294CEDB000080028F2451
-:104F900080024F005EFD5EFD5EFD5EFD5EFD5EFD1E
-:104FA000D401584BC0E0E0880007586BC0A0587B84
-:104FB000C040D802580BC091300CF01F0005D80239
-:104FC000301CF01F0003D802D80200008002172016
-:104FD000D401581BC070300A323C149BF01F0005EE
-:104FE000D80A300A322C149BF01F0002D80A0000A5
-:104FF00080014658EBCD40FE201D1094129216956C
-:10500000F01F0057E8C8FFF25C7C4D69F00C000609
-:10501000F33A0109580AC060EC0A0D085809E0810A
-:10502000008F3003500CE6060001029CF01F004E7A
-:105030000A9B1897306A400CEE0C000CF01F004BD6
-:10504000400C306A4CAB140CEE0C000CF01F004707
-:10505000400C302A4C7B2F4CEE0C000CF01F004310
-:10506000400C089A049B2F2CEE0C000CF01F003F04
-:10507000FAC8FFFC3005114A0E991AD5EE0A000C49
-:105080001AD5EC0A010A30EBF01F003B2FED581C3B
-:10509000C5914009EC090108E048003EE08B001092
-:1050A0008E085CC806085CC8AED3029B0E9CAE0896
-:1050B000F01F0032300C2FFDE3CD80FEEE09000E14
-:1050C0003888FD39000CF0091800CEB1FD39000D0B
-:1050D00038E8F0091800CE51FD38000EF808180025
-:1050E000CE01FD39000F3038F0091800CDA130286D
-:1050F000FD3A0012F00A18005F1B3FE8F00A1800A2
-:105100005F19126BEA0B1800CCC1FD380013E218CE
-:10511000001D5818CC61FD380014E21800C85888EA
-:10512000CC01FCCAFFC1FCC9FFE1C0482FF914390A
-:10513000C0E01388F6081800CFA0CB3BF4090103A8
-:10514000C72B0E9CF01F000E3FFCCB6B0FC92FA985
-:10515000EE0900091388A3A8B288CA3B8001F4E8CD
-:10516000000087F480009200800091DC00007AA8A3
-:105170008003D6548001F54480014664800091E8A4
-:10518000D401201D3068FACBFFFC16D81A9B486C5E
-:10519000F01F00064848581CF00C1700F9BC01002D
-:1051A0002FFDD80200007AA880017A88EBCD40401C
-:1051B000310A1696300B0C9CF01F000630F930783F
-:1051C0008D198D09300C30398D288D39E3CD804013
-:1051D000800091D0D401F01F0002D80A80016048FD
-:1051E000EBCD4068206DFAC3FFEE1496069C306A42
-:1051F000F01F0010FAC5FFFE0C9B310A0A9CF01F3D
-:10520000000D0A9B204D310A1A9CF01F000B069BD3
-:10521000202D306A1A9CF01F0008F01F00082FADE7
-:10522000581CF9BC01FFF9BC00002FADE3CD80682C
-:10523000800091DC8002E73680016094EBCD40680D
-:10524000206DFAC3FFEE1496069C306AF01F001022
-:10525000FAC5FFFE0C9B310A0A9CF01F000D0A9B49
-:10526000204D310A1A9CF01F000B069B202D306A3E
-:105270001A9CF01F0008F01F00082FAD581CF9BC45
-:1052800001FFF9BC00002FADE3CD8068800091DC08
-:105290008002E73680016168D401F01F0005581CC8
-:1052A000F9BC01FFF9BC0000D80200008001F370D6
-:1052B000D401F01F0005581CF9BC01FFF9BC000027
-:1052C000D80200008001F310D401169CF01F0004E6
-:1052D000581CF9BC01FFF9BC0000D802800163E052
-:1052E000D431207DFACEFFC050287C027C387C1758
-:1052F00050087C2E501E16901894149B1293580A36
-:10530000C5C0FAC5FFEA306A0A9CF01F0031202DA3
-:10531000306A0A9B1A9CF01F002FF01F002F5802C2
-:105320005F1858075F1918912FED1268C181300678
-:105330005800C26168193018F0030948F00811FFDD
-:10534000F1E9000C891C580CC365BFBC891CF01F17
-:10535000002318975817C2F02F9DDC3A5887FE9B00
-:10536000FFFDFAC6FFF2308A300B0C9CF01F001CC8
-:105370000E9A049B0C9CF01F00165800CDC04028CC
-:1053800058015F091AD8069C1AD630381AD530163B
-:10539000404A403B1AD6F01F00136819EC03094835
-:1053A0001248F1D8C01F189789180C9CF01F000EE6
-:1053B0002FCDCD1B2F9DD83AFAC5FFEA306AE06B9E
-:1053C00000FF0A9CF01F0006CA3B0000800091DC31
-:1053D0008002E736800188B080016584800091D02A
-:1053E0008001661C8001639CEBCD40C01896308C18
-:1053F000F01F00091897C0C0300899069918F01FCF
-:105400000007301CF01F00060E9CE3CD80C0E3CDEA
-:1054100080C0000080028F248001604880017A10E3
-:10542000EBCD4080209D1697FACCFFFEF01F0009BF
-:10543000581CC0402F7DE3CFC0800E9C1BBAFACB16
-:10544000FFFCF01F00051BBC2F7DE3CD808000001A
-:1054500080017800800091DCEBCD4080202D580B3E
-:10546000C120FAC7FFFE306A0E9CF01F000C0E9C94
-:10547000F01F000B581CF9BC01FFF9BC00002FED18
-:10548000E3CD8080FAC7FFFE306AE06B00FF0E9C20
-:10549000F01F0004CEDB0000800091DC8001793039
-:1054A000800091D0EBCD4040485B1896F01F00057E
-:1054B0000C9CF01F0005E3CD8040000080039C3869
-:1054C00080025458800091E8EBCD40C0202DFAC7EF
-:1054D000FFFE16960E9CF01F0008581CC0402FEDD2
-:1054E000E3CFC0C00E9B0C9C306AF01F00042FED70
-:1054F000E3CF80C080017864800091DCEBCD40C0B8
-:1055000018977939580BC0305839C0E03018EF4837
-:1055100000BC3038EF48004C1039C0808F2830086C
-:105520008F58E3CD80C0F949004C6F682FF8EEFA30
-:10553000010CEF4800586FA830098F288F59301B95
-:10554000746C7486487A5D16EEF80094EEF900905B
-:105550002FF82FF9EF480094EF490090E3CD80C079
-:1055600080037E20580C5E0C580BF9FB4A19580A30
-:10557000F9FA4A225809F9F94A1A5808F9F84A1B5F
-:105580005EFC580CF9F81024F9B90101F1D9E108D1
-:10559000F9F81A245EFC580C5E0C580BF9B801019E
-:1055A000F9F81A45F9FB0A455EFCD703EBCD40C07C
-:1055B0001897580CC04079385858C030E3CD80C097
-:1055C000F8F8010C3009706C7086488A301B5D1643
-:1055D000EEF80094EEF900902FF82FF9EF480094C0
-:1055E000EF490090E3CD80C080037E20580CF9FC89
-:1055F00010315EFC580CC0B0F8F800D45808C070E8
-:10560000F8F800D89708F8FC00D45EFC300897083A
-:105610005EF8D703580CC040588BE08800035EFD4D
-:1056200048D8F00B032FF8FC00E05EFCF8FC00DC2F
-:105630005EFC78BC5EFCF8FC00805EFC79FC5EFCE5
-:10564000F8FC00845EFC784C5EFC797C5EFC786C37
-:105650005EFC00008003D6FC580C5E0C588B5EBCD0
-:1056600048E8F00B032FF94A00E05EFCF94A00DC41
-:105670005EFC99BA5EFCF94A00805EFCF94A007C47
-:105680005EFCF94A00845EFC994A5EFCF94A005CC3
-:105690005EFC996A5EFC00008003D720580CC05065
-:1056A000580BC031783C5EFC5EFD580C5E0C580B0C
-:1056B000F9FA0A035EFCD401580CC0A0F8FC010CF6
-:1056C000580CC06078A85808C030780C5D18D80213
-:1056D000D401580CC021D80AF8FC010C580CCFC0DA
-:1056E00078B85808CF90780C5D18D802EBCD408080
-:1056F0001897580CC1E0189A300B48FCF01F000FA7
-:105700000E9A300B48ECF01F000DEEFC00C0F01FAD
-:10571000000DEEFC00CCF01F000CEEFC00D4F01FDE
-:10572000000AEEFC010CF01F00080E9CF01F0006A2
-:10573000E3CD80808002608C800274008002602053
-:10574000800270E0800091E8D401580CC050F8FC51
-:1057500000C0F01F0002D80280026410D401580C6F
-:10576000C050F8FC00C0F01F0002D802800264287C
-:10577000D401189A580CC0A030583019F8FC00C059
-:10578000F548004C95C9F01F0002D802800263BAA8
-:10579000EBCD40801897580BC04079E85888C0403E
-:1057A0003018EF4800BC30193088EF490044EF480A
-:1057B00000788F99EEFC00C0F01F0004F9B80100DA
-:1057C000EFF81A39E3CD8080800263B2EBCD40E080
-:1057D000201D189716951496580CC0513FFC2FFDAC
-:1057E000E3CD80E0F8FC00C0F01F000ACF801A9BD8
-:1057F000EEFC00C0F01F0008189BCF10400C0C3CC2
-:10580000CEF30C9A0A9CF01F0005300CCE9B0000D2
-:10581000800263B2800263CE800091DCEBCD40C099
-:1058200018971496580CC1F0F94B00C4580AC1B02F
-:1058300074087419F94800F8F94900FC7428F9480B
-:105840000100F8FC00C0580CC0E0742BF01F0007EA
-:105850006C3BEEFC00C0F01F00066C4BEEFC00C081
-:10586000F01F0004E3CD80C0800263A6800263AC19
-:1058700080026408D431FACD00A81897F8F600CC5D
-:105880005806C0F0F8F800F85808C0B00DA80DB9D7
-:10589000F3E81089F8F800D02FC91039E088000427
-:1058A0002D6DD832ECC4FFFC0999500909A0F01FF6
-:1058B000006FFAC1FFF8340A029B0E9CF01F006CC7
-:1058C0001895CEF5590CE0800090580CCEA132020C
-:1058D0005012EEF800E45808C7D1E8C5FFE4FAC357
-:1058E000FF68310A0A9B069CF01F0062310A300BE8
-:1058F0000A9CF01F00610DAA0DB9049BF3EA108900
-:10590000FACCFFD8EEFA00CC0A982FC9F01F005B42
-:10591000310A0A9B069CF01F005AC7614009E1E961
-:1059200010880DB9EBD8B0100DA8F3E81089320833
-:10593000F2CE002CF00519005FB9E04E00205F9A0E
-:10594000124AF80A1800CAD15C751C35C630580EC8
-:10595000CA81FAC3FF88029B0A9A069CF01F004581
-:105960003018308AEF4800E4E8CBFFFDEECCFF189A
-:10597000F01F0040EEFC010C78965806C0D0E93AC2
-:10598000001B0A98149B0699780CE21B0080F5DA3C
-:10599000C0025D16C865E939001B3008F00918001F
-:1059A000C5753018EF48011CEEF901185809C0718F
-:1059B000EEF800FCEDB80000FE90FF7430188FD8B0
-:1059C000EEFC010C78785808FE90FF6C780C5D189E
-:1059D000C68B308AE8CBFFFDEECCFF18F01F002805
-:1059E000FE94FF60C7BB189A029B0E9CF01F00201C
-:1059F000FE91FF580A9A029BFACCFFD80A92F01F38
-:105A0000001D5015C67B069B0A9C310AF01F001929
-:105A1000C48BFAC6FFB8E8CBFFF50C9C310AF01F27
-:105A20000015049A029BFACCFFA8F01F0012FAC3DB
-:105A3000FF880A9AE8CBFFD4069CF01F000E40199D
-:105A40000C9A2F090A9B069CF01F000EC8AB301859
-:105A5000EF480118EEF9011C5809CB11EEF800FCD3
-:105A6000EDB80001CAC1C1DB8002575C800257CC8F
-:105A7000800091DC800091D080028EF88000917CC3
-:105A800080029C38D431201D3003189730140695BD
-:105A900030213040EF4500BC6F4A580AE08000C911
-:105AA0006F585808E08100C56E7C580CE08100C238
-:105AB0006EB85808E08000BE6F385828EFF41A2FEF
-:105AC000EEF8010CEF41004C3009706C7086FEFA64
-:105AD000051E029B5D16EF4400548FC5EEF800983A
-:105AE000EEF900902FF82FF9EF480098EF49009059
-:105AF0006E7C580CC0516EB85808E08100EC6FC83D
-:105B0000EF4400705818EFF41A2F6FD85808E0814E
-:105B100000F8580CE08100A76EE85808E08100A367
-:105B20006FE8F0C900015879E08B000EFEF804C45C
-:105B3000F009032FEF4400BCEF410078EF4500402F
-:105B4000EF4400C8EEFC00C0F01F012BE08000B560
-:105B5000EF4400BC2FF3E0430064C9D10E9A300B30
-:105B6000FEFC0498F01F012630090E98FEFA048C02
-:105B7000129B129CF01F0123EEF9010C72285808A9
-:105B8000C0E0EEF801105808C0A058185F0B3008AC
-:105B90000E9CEF480110723A72285D182FFDD83222
-:105BA000EEF80088EF4400BCEF4000788F55EF45D9
-:105BB000007CEF4500C88F08CC6B6E585808E08118
-:105BC00000DF6E4B580BE08100D06E085808C161B1
-:105BD0003078EF4400BCEF480078EF440048CB3BFE
-:105BE000EEF900845809E08101846FF85808E081DB
-:105BF000015C6E4B580BE08100B86E685808CA30E3
-:105C00000E9CF01F0101C9FB6E485808E08100A9F5
-:105C10006E585808E08100B06E685808C9406F0897
-:105C20005808C910300B0E9CF01F00F7C8CB6E7CD3
-:105C30006EA95809C2F16F885808C2C06F38EF4585
-:105C400000605818EFF41A2FEF44004CEF4500584D
-:105C5000EF4500548FC58FE4EF450118EF45011C57
-:105C6000C49B6FE8EEFC00CC5818EFF41A2FEF44F9
-:105C70000078F01F00E6EEFC00D4EF4500CCF01FEA
-:105C800000E3EEFC00C0EF4500D4F01F00E18FE51B
-:105C9000C5AB580CCD416EB85808CD105829C3B0CB
-:105CA0005819C4706F3820185878FE9BFF26FEF9EB
-:105CB0000362F208032FEEF800BC5808FE91FF4C77
-:105CC000C5CB6E585808E08100FE6ED85808E080B9
-:105CD00000FE6FC95819FE90FF1A5829FE91FF1E49
-:105CE0006FD85808FE90FF1A0E9CEF490070EF44E1
-:105CF00000BCF01F00C96E7CEF450074C0BB0E9C59
-:105D0000EF4400BCEF410070F01F00C36E7CEF4514
-:105D10000074C00B6F885828CC606F388FC45898B7
-:105D2000EFF41A2FEF4100603098EF48004CCE4A54
-:105D30006F885818CB806F3858A8EFF91A2FEEF9F2
-:105D4000010C30A88FC5EF440060EF48004CFEFA0C
-:105D5000029E7286726C302B0A995D16CC0A6F080F
-:105D60005808FE90FF573068EF4400BC8FF4EF48AE
-:105D70000078CE9A6F085808FE90FF503038EF44F4
-:105D800000BC8F05EF440080EF480078CDCA6E69F3
-:105D90005809C0A06ED85808E0810117EEF800F845
-:105DA0005808E08100FC6E485808E08100EB6E88DE
-:105DB0005808C0506ED85808E08000E46F28580892
-:105DC000C050300B0E9CF01F00956E7CC93A6F7866
-:105DD0005808C8018F88EF4400BCEF40004CEF48E2
-:105DE0000058EF4800448FF8EF4800488F98EF4480
-:105DF0000040C82A6E1B580BCE606E585808FE90A3
-:105E0000FF6A3089EF4400BCEF49004CEF44005C6E
-:105E1000C73A6E2B580BC2716F696FB81039CD330A
-:105E20006ED85808C2003058EF4400BCEF48004C10
-:105E30008FC4EF440110FE9FFE60580AFE91FF4B95
-:105E4000EF4A011CEF4400BCEF44004CEF4A0060F5
-:105E5000EF4A0058EF4A00548FCA8FE4EF4A011806
-:105E6000FE9FFE4B6E685808C7B16E485808C78140
-:105E70006E585808CC71580BFE91FF2D6F696FB8A2
-:105E80001039FE93FF286ED85808FE91FF24307811
-:105E90008FCBEF48004CEF4400BC6F98EF410110EE
-:105EA0008F18FE9FFE2AEEF80088EF4900C8EF44E5
-:105EB00000BCEF4000788F59EF49007C8F08FE9FAF
-:105EC000FE436ED85808E081008AEF4400BCEF44DE
-:105ED000004CEF450060EF450058EF4500548FC57A
-:105EE0008FE4EF450118EF45011CFE9FFE06305977
-:105EF000EF4400BCEF4900781A9BEEFC00C0F01F95
-:105F000000481892C290EEF8010C4009189A708669
-:105F1000706C300B5D16049CF01F003CEEF800C85E
-:105F20005808EFF81028F9B90101F1D9E108EFF8A4
-:105F30001A28EFF80029F9B90001F1D9E008EFF8C3
-:105F40000A29EEF90090EEF8009C2FF92FF8EF499E
-:105F50000090EF48009CEF450084FE9FFDF5EF4464
-:105F600000BCEF40004CEF450058EF4500448FF572
-:105F7000EF4500488F958F85EF440040FE9FFDBDA3
-:105F80003078EF4400BCEF48004C8FC56F98EF416C
-:105F900001108F186E7CFE9FFDAEEEF800FC5808D5
-:105FA000FE91FF038FD4EEFC010C78785808C040B6
-:105FB000780C5D186E695809FE90FEF76ED8580887
-:105FC000FE90FEF36E7C3059EF4400BCEF49004C6C
-:105FD0008FC4EF440110FE9FFD8E3088EF4400BC5B
-:105FE000EF48004CEF44005CFE9FFD8780037E205D
-:105FF0008003D744800268308002608C8002740085
-:106000008002747480025790800091E88002653CA1
-:106010008003D76480025874800254FC800263E6D7
-:10602000EBCD408076085808F9B901FFF1D9E108B5
-:10603000F7F81A0076185808F9B901FFF1D9E10804
-:10604000F7F81A0176285808F9B901FFF1D9E108E3
-:10605000F7F81A0276385808F9B901FFF1D9E108C2
-:10606000F7F81A03169718991698486A300B301CDF
-:10607000F01F00050E9CF01F0005E3CD808000009E
-:10608000800260208002747480025A84D401169CBD
-:10609000F01F0002D802000080025A84D421203D63
-:1060A0001895E06C0120F01F00221897C38031E89A
-:1060B0003039F9480088F948006833C8F949006C5C
-:1060C000F9480064F945010C300430CA99A4089BD2
-:1060D0001A9CF01F00186AF850286ADA500A6AE819
-:1060E0005018EEF8010C1A99704A493B0E9CF01FAB
-:1060F0000013EF4C00C01A961898C14030160E9C41
-:106100008F76F01F000F0E9C8F74F01F000D0E98FD
-:1061100008990C9C48BA089BF01F000B0E9C2FDDC1
-:10612000D8220E9C1097F01F0009CF9B80028F246D
-:10613000800091D0000004788002711C80025A8493
-:106140008002602080027474800091E8D401580CB1
-:10615000C090F8F800D45808C050F8F800805808EB
-:10616000C020D8023018F94800809958F01F00026A
-:10617000D802000080025A84D401580CC04099AB68
-:10618000F01F0002D802000080025A84D401580C8B
-:10619000C060F94B00E0994BF01F0002D8020000EC
-:1061A00080025A84EBCD40801897580CC090996BB0
-:1061B000F94B00DC580BC0610E9CF01F0005E3CDCD
-:1061C0008080F8FC00C0F01F0003CF7B80025A845F
-:1061D000800263BAD401580CC04099DBF01F000262
-:1061E000D802000080025A84D401580CC04099BBE8
-:1061F000F01F0002D802000080025A84EBCD40E07C
-:10620000189714951296580CC3A0F8F8008C2FF824
-:10621000F948008C5839E08B0009F8F800A82FF8ED
-:10622000F94800A8E3CF80E01588306AF94800B04B
-:10623000F8CCFF4CF01F0042ECCA00040BA90BB8CD
-:10624000F1E910861436E08B00130B99300CF80935
-:106250001800C4603038F0091800C130EEF800A80A
-:10626000301C2FF8EF4800A8E3CD80E0EEF800AC3A
-:10627000300C2FF8EF4800ACE3CD80E0E3CF80E0B6
-:10628000E046002BE088004C3FE80BCBF00B1800F9
-:106290005F0A3028F00B18005F09124AF80A18004C
-:1062A000CEE13018F00B1800C3A1EEFC00CCF01FBB
-:1062B00000252FC60C9CF01F0024EF4C00CCC2F030
-:1062C0000C9A0A9BF01F001E0E9CEF4600D0301661
-:1062D000EF460074F01F001D0C9CE3CD80E0EEF84B
-:1062E00001145808C100300830398FC8EF48011434
-:1062F0008F29EF49004CEEFC010C78C85808C030DB
-:10630000780C5D18EEFC00D4F01F000E0C9CEF46DC
-:1063100000D8F01F000DEF4C00D4C031E3CF90E067
-:10632000EACBFFFCEEFA00D8F01F00050E9C3016F9
-:106330008F56F01F00060C9CE3CD80E0800091DCBE
-:10634000800091E88000920080025A84EBCD40806A
-:10635000189779685808C0B079BB580BC08070494D
-:106360005D193008EF480058EF48006CE3CD80809D
-:10637000EBCD40C01897580BC04078085878C04003
-:106380003018EF48006030786FA68F086F9C6C293A
-:10639000300A305B5D196FA86F9C7029301A304B42
-:1063A0005D19E3CD80C0F94B00745EFCF94B00B081
-:1063B0005EFC580CF9FC10135EFC580CF9B8010196
-:1063C000F9F81A06F9B9010BF9F91A005EFC580C34
-:1063D000C08079485808C05079589708794C5EFCBD
-:1063E000300897085EF8580CC0C0791A580AC09057
-:1063F000792897083009F9490048F94900445EFABC
-:106400003008109A97085EFAF94B00C45EFCD70377
-:10641000D401580CC040483BF01F0003D8020000D4
-:106420008003D7B08002634CEBCD40801897580CA6
-:10643000C0F079A8300B7019799C5D19C0916E6815
-:106440005808C0606E2820385818E0880004E3CD52
-:1064500080806F485808F9B80101EFF81A136FA847
-:106460006F9C7029301A300B5D19EEFC00A4483A7D
-:10647000302BF01F0003CECB8003D7BC80023A1A2A
-:10648000EBCD40801897580BC040780858B8C040F2
-:106490003018EF4800606F4930B88F085809F9B8D4
-:1064A0000101EFF81A136FA86F9C7029301A300B96
-:1064B0005D196FA86F9C7029300A305B5D196FA859
-:1064C0006F9C301A7029304B5D19EEFC00A4484ACD
-:1064D000302BF01F0004E3CD808000008003D81C27
-:1064E00080023A1AEBCD40C01897580BC04078088C
-:1064F00058C8C0403018EF48006030C86FA68F08F9
-:106500006F9C6C29301A302B5D196FA86F9C702915
-:10651000300A305B5D196FA86F9C301A7029304BC0
-:106520005D19EEFC00A4484A302BF01F0004E3CDB7
-:1065300080C000008003D86080023A1AEBCD406032
-:106540001896784CF01F000B30056D1C8D45F01F20
-:1065500000096D4CED450044F01F00066DA8ED45A7
-:1065600000500A9A6D9C70290A9B5D19E3CD8060EA
-:10657000800091E8EBCD40E01897580BC4F0780804
-:106580005808C4C130088F086FD95809C0B06F6867
-:106590005808C08070985808C0506FBB0E9C5D189A
-:1065A000C4114A4B0E9CF01F00246FA83006301512
-:1065B0008F16EF4500408F268F666EFA70490C9B50
-:1065C0006F9C5D196FA80C9A70290C9B6F9C5D19CC
-:1065D0006FA80C9A7029302B6F9C5D196F4CF01FBF
-:1065E00000176FA80A9BEF460050EF46004C0C9A2C
-:1065F00070296F9C5D193FF80C9A8F386FA5303B5E
-:106600006F9C6A295D196FA80C9A7029304B6F9C9A
-:106610005D19EF4600C0E3CD80E03018EF48006020
-:10662000CB2B6F686FBB70A90E9C5D19CBFB000074
-:106630008003D8948002634C800091E8EBCD40E069
-:10664000205D1897580BC04078085858C040301843
-:10665000EF48006030588F086F695809C4406FA830
-:10666000FACBFFF070596F9C5D19310A300B189509
-:106670001A9CF01F00256F1C6EE850086E295019F7
-:106680006E6850286F095039F01F002030086F6B7A
-:10669000EF48005CEF480044EEC8FFB81A9A0A9928
-:1066A0001AD80E9C405876566FBB5D16EF4C0044CE
-:1066B00040188FE82FFD5808C1616F785808C13124
-:1066C00040188F2840298F694038EF4800406F6894
-:1066D00070695809C08070785808C0506FBB0E9C14
-:1066E0005D19C0412FBDE3CD80E06F4CF01F000766
-:1066F0006F68EECAFFAC70796FBB0E9C5D19EF4CF2
-:106700000050CF1B800091D0800091E8EBCD4080FD
-:106710001897580BC04078085868C0403018EF48A8
-:10672000006030686E4C8F08F01F001A6F18580810
-:10673000C2E0EEF800B05808C2216EA86F2C8F3866
-:10674000F01F00158F4CC0706F2A6F1BF01F0013D5
-:106750006F288F586FA8301A7029303B6F9C5D19D5
-:106760006FA86F9C7029300A305B5D196FA86F9C11
-:1067700070496EFA300B5D19E3CD8080310AEECBA3
-:10678000FF7CEECCFF6CF01F0005CD8B8F48CE9BBD
-:10679000800091E880009200800091DCEBCD40FC0D
-:1067A000201D79A81897169214931294799C700959
-:1067B0005D191896C2F06F685808C23070C8580842
-:1067C000C2000E9C1A9A6FBB5D181895C1A0400CB0
-:1067D0002FBC870CF01F0015C1D03028B892B888A4
-:1067E00030188699B8B9A9891897B8A9B8C80A9B6A
-:1067F000400A2FBCF01F000E0E9C2FFDE3CD80FC45
-:106800005804C0416DCC580CC0A16DB86DA5580599
-:10681000C0A130070E9C2FFDE3CD80FC6DD81895EC
-:106820005008CD6B5008CD4B80009200800091DC69
-:10683000D431209D3004F8C9FF7CF8C8FF6C18974C
-:1068400050195008F8C0FFB808956FA8EF450060D0
-:10685000301B70196F9C5D19C0706FA8306B701978
-:106860006F9C5D19C2F16FA8306B70196F9C5D1938
-:10687000C140EEF800C45808C101EEF800C0E0487D
-:106880000032E08A0025E0480033E080011C6F8878
-:106890005808C1003014CDAB6E085818F9B8010182
-:1068A000EFF81A18EF4500C030188F086F885808A5
-:1068B000CF216F7C580CE80C1700F9BC01012F7D2B
-:1068C000D832301B0E9CF01F01EECE2B6E0958A95A
-:1068D000FE9BFFDFFEF807ACF009032F30183029CC
-:1068E000EF4800608F09CD4B300B0E9CF01F01E686
-:1068F000CCFB6E196EB81039C760300B0E9CF01FC0
-:1069000001E2CC6B6EA96E381039E0800137300B94
-:106910006E8E580EC1B06E685808C1806EAA6E396E
-:10692000123AE08000BBEEF800B05808C0F0F2C8A0
-:10693000FFFFF1D8C008103AE08000B0F2C8FFFEB7
-:10694000F1D8C008103AE08000A96E2C582CC20083
-:106950006E985808E08001236E685828E080011F77
-:106960006EAA6E39123AE0800146EEF800B058087F
-:10697000C0F0F2C8FFFFF1D8C008103AE080013B38
-:10698000F2C8FFFEF1D8C008103AE08001346E78FA
-:1069900058085F1A3008F5EB0009F0091800E0818B
-:1069A000010FEC1B0001F5EB0008F2081800E08075
-:1069B00001056EBB1699582BE080012A6E16580609
-:1069C000C071581BE080021B582BE08101630C3B17
-:1069D000E080014F0C995919C0F1580EC0416FE881
-:1069E0005808C0A0300B0E9CF01F01A8C51B6EEB11
-:1069F000580BFE90FF7C300B0E9CF01F01A5C48B42
-:106A00006FA8305B70196F9C5D19C7016FA8307B50
-:106A100070196F9C5D19C0506E685808FE91FF395F
-:106A20006FA8300B70396F9C5D19C0516E68582883
-:106A3000FE90FF2F6FA8308B70196F9C5D19FE912F
-:106A4000FF286FA8189B70396F9C5D19C0516E6844
-:106A50005828FE91FF1E6FA8307B70196F9C5D193E
-:106A6000C0806E285828C0506E685808FE90FF11EC
-:106A70006E185918E080025C5998FE91FF0AEEF8F2
-:106A800000805808FE90FF056E685808FE90FF01D0
-:106A90006E285848FE91FEFD300B0E9CF01F017DC4
-:106AA000CF7A6FA8306B70196F9C5D19FE90FEF164
-:106AB000EEFB00C4580BFE91FEEC0E9CF01F017023
-:106AC000CE7A3328EEFC00A4FEFA05CC1AD8302B7F
-:106AD000F01F0172EEF800C0301B16080E9CEF4844
-:106AE00000C0F01F016F2FFDCD3A6FAA3038FACBEE
-:106AF000FFE08F0830136F9CEF43006074595D19FD
-:106B00008F95507C8F85EF4500788F758FA58FB559
-:106B10008FC58FD55F0A408B1896583B5F88104A07
-:106B2000EA0A1800C23119A919B8F1E910885068A9
-:106B3000103BC1C319988FA8EEF900B05809C09056
-:106B4000069C4019FACAFFE8FACBFFE4F01F015592
-:106B50000D893028F0091800E080011CE08B008DC1
-:106B60003018F0091800E0800123EEF800C02FF87B
-:106B7000EF4800C0FE9FFE8D6E785808FE90FEC95B
-:106B8000EEF800B05808C080310A400B401CF01FDE
-:106B90000146FE91FEBE301BCBCA580EFE90FEF998
-:106BA0006E685808FE91FEF56E185918FE91FEDACF
-:106BB000583CFE91FED7CECA6E19C0EB301830A9F2
-:106BC000EF4800608F096F1CF01F01386E485808AD
-:106BD000C1A06E5CF01F0136EF4C0044FE90FE59E0
-:106BE0006E5A6E4BF01F01336E58EF480048FE9FFF
-:106BF000FE50300B0E9CF01F012AFE9FFE4A30090A
-:106C000050494048EF480044FE9FFE436F08580833
-:106C1000FE90FED6301830996FAA8F09EF480060B9
-:106C20007458FACBFFE86F9C5D1819A919B818962B
-:106C3000F1E910885848E08B01476F1CF01F011BD9
-:106C4000305CEF450044EF4C00486EA6F01F011881
-:106C5000E08001853029B896B889EF18004AB8C994
-:106C6000B8B8A988B8A8EF4C0044FE9FFE12584C53
-:106C7000FE90FEB3CB8A3038F0091800E08000DCCB
-:106C80003048F0091800FE91FF7230188F98C6EB5B
-:106C900030181693EF48006030496FA8E04B00FEB3
-:106CA000EFF3000D8F096EC670096F9C5D19069A8F
-:106CB0000C9BF01F0101E08100C36F1CF01F00FB63
-:106CC0006FA8EF4500446EA270096F9C5D19503C9F
-:106CD000FACCFFE8F01F00F91893C9206EB8E0481D
-:106CE00000FEE08101516FA8406670096F9C5D193C
-:106CF00030C8505CA376EF480048ECCCFFECF01FA6
-:106D000000EC1891E080012E3FE9B892B8C9302913
-:106D1000B889F8C8FFFBB0A5B085B095F8C9FFF8F1
-:106D20003038B285B295B2A5B2B8504CF8C2FFF473
-:106D30000A96C298661A6ED81438C210405CF01FCA
-:106D400000DE049AE4CBFFFC580CC1903FE814C865
-:106D50008689B4896608A988B4986609B4A907C861
-:106D6000B68886A9B6996618A988B6A86619B6B96C
-:106D7000F6C2FFFC60082FF62F88810866F35803DF
-:106D8000E0800099660B6EC81638CD50661ACD7B30
-:106D90006E185918FE91FEEB40685848FE98FEE7C1
-:106DA0003018EF4800780DC98FB9CE0A406A584AAA
-:106DB000FE98FEDD30188F780DC98FB9E04900FECE
-:106DC000FE91FED558BAFE98FED2ECC9FFFB139C8B
-:106DD000138A13A8F1EA1108F1EC1088ECCBFFF844
-:106DE0008FC817AC17B81789179AF1E91188F1EA1B
-:106DF0001108F1EC10888FD8CB9A6FA83089EF4B2F
-:106E000000608F09FACBFFE0705A6F9C5D1AFEFAA2
-:106E100002AE302BEEFC00A4F01F00A06F1CF01F90
-:106E200000A30C99EF460044009A6EAB0E9CF01F35
-:106E300000A5C1AB30188F88FE9FFE990C9C069B65
-:106E4000F01F00A1FE90FF3B6FD85808C0906F6AFA
-:106E5000580AC06074096EC81039E0800086FEFBD5
-:106E6000026A0E9C3006F01F009A6EB88F186F6C85
-:106E7000580CE08000CD5806C54078B86FBB0E9C1A
-:106E80005D18EF4C006C6FB65806E08000CA6F6A60
-:106E90006ECB30188F287429FEFA02381AD91AD30B
-:106EA0001ADB302BEEFC00A4F01F007C2FDDFE9FD0
-:106EB000FCF05806C4206F285C78A2B8A988A2A864
-:106EC000FE9FFEA1F0CC0004F0C20005F01F007888
-:106ED0001893FE90FEB45802C120ECCCFFFB300AA0
-:106EE00035DB1938F0C90021F6091800F9B80B5F35
-:106EF000E60A0B082FFA1432FE9BFFF53008E60273
-:106F00000B084F581AD34F5A1AD8302BEEFC00A456
-:106F1000F01F0062069CF01F00652FEDFE9FFE8FA4
-:106F200078380E9C5D18EF4C006CCAEB6FF858086F
-:106F3000FE90FCAFFE9FFDAA04983FE910C9B0A6E1
-:106F4000B086B096E4C9FFFCB2B6B286B296B2A6DD
-:106F50006F282F88EF480048CB0B0A9CFE9FFE85C8
-:106F60005045FE9FFE5074181033FE91FF7A7499BD
-:106F70005809FE90FF766FBB0E9C5D19FE90FF7165
-:106F80003016C74B3058406CEF4800482FACF01F0C
-:106F900000481896FE90FE35B89230283039B888EF
-:106FA000B8C9504CF8C2FFFB50250A91C1A8661A17
-:106FB0006EB8103AC130403CF01F003FC0F0660888
-:106FC0005808C5A040285808C0913FE904C93018A6
-:106FD000502860082FF12FF8810866F35803C0602D
-:106FE000660B580BCE50661ACE7B5801EFF8101284
-:106FF000E5F10E00EFF80012F7B800FFEFF80A1203
-:107000005C78ACB8A988ACA8FE9FFDFD069B6ECC51
-:10701000F01F002DEF4C0058FE90FE51C2DB6FA810
-:107020006F9C70095D196F6870291AD91AD36EC8E0
-:1070300018921AD8302B4AAAEEFC00A4F01F0017B1
-:10704000EF4600588F268F1658025F1B6EB92FDD52
-:1070500058D95F081668EC081800FE90FE30E4F876
-:1070600001605808FE91FC15E4F801685808FE908C
-:10707000FE26FE9FFC0E661804C8CACB800265740B
-:107080008003D7848002670C8002663C80026370B4
-:10709000800264808003D8A080023A1A800264E4EF
-:1070A00080028D9C8000917C800091E8800092009D
-:1070B000800091DC80023AD8800271E48003D8F02D
-:1070C0008002679C800271908003D9248002634C07
-:1070D0008003D9708003D8D08003D3E48003D930F3
-:1070E000EBCD40801897580CC0E0488BF01F00088B
-:1070F0000E9CF01F0008EEFC00ACF01F00070E9C79
-:10710000F01F0006E3CD80808003D9AC8002634C81
-:107110008002653C8002D298800091E8EBCD40F877
-:10712000203D1896169414931295E06C00C8F01F39
-:1071300000151897C1C033C8F946006499F8F9449E
-:107140000068F94300A430CA300B1A9CF01F000EEF
-:107150006A2850286A0950096A181A9C5018F01FAA
-:10716000000BEF4C00AC1A961898C0500E9C2FDD07
-:10717000E3CD80F80E9C1097F01F0005CF8B000028
-:1071800080028F24800091D08002D2C4800091E8D8
-:10719000189948A8700C580CC051C0D878FC580CED
-:1071A000C0A078081238CFB1781816385E0C78FC79
-:1071B000580CCF815EFD000000007AB01899489805
-:1071C000700C580CC051C0C878FC580CC09078089E
-:1071D0001238CFB178181638CF81782C5EFC5EFD5E
-:1071E00000007AB0189B4888700C580CC0A0189901
-:1071F000300A2FFA72F95809CFD1149897085EFC1B
-:107200001898CFDB00007AB05EFDD703EBCD40E0ED
-:1072100048D81896169570075807C051C0E86EF701
-:107220005807C0B06E2C0C9BF01F0008CF916E0861
-:107230008B086E1CE3CD80E030088B08109CE3CDFA
-:1072400080E0000000007AB0800091A0EBCD40C04B
-:1072500048B70E966E095809C0B072F88D08129C96
-:1072600072D85808C0705D186E095809CF71E3CD07
-:1072700080C0129CF01F0003CEEB000000007AB02B
-:10728000800091E8EBCD40C048D66C485808C0312A
-:10729000C0880E987057109CF01F000A5807CFA1A5
-:1072A0006C6CF01F000930086C3C8D68F01F000505
-:1072B0006C8CF01F0004E3CD80C0000000008C90B7
-:1072C000800091E880014544EBCD40F8495718967D
-:1072D000169314946E2B12952FFB6E3CA56BF01F2A
-:1072E0000012C1D06E28A568F80809066E29A569A4
-:1072F000F8090009932593146E2AF4081504F80878
-:10730000000891336E188F3C2FFA1036EFF69A0171
-:107310008F2A3018300C8FC8E3CD80F8E3CFC0F847
-:1073200000008C90800091F4EBCD404CE0634DD395
-:10733000EA1310621896F01F000DF8030648A7899B
-:10734000E06A03E8F20A0248F8080109121CF20A8E
-:10735000024AF80304428D1ABF5CA743E60C010CF5
-:107360008D0CE3CD804C0000800145C4EBCD408006
-:10737000202D4A076E495809C2C06E581039C29074
-:107380001A9CF01F001D6E484009700A1439C2444F
-:107390007018401BF40901091618C276F00B141F6F
-:1073A000E06A03E8F20A024AE0694DD3EA19106282
-:1073B000F0090448A7491619F20A000C580CE08A93
-:1073C000000E300948DA6E6BF01F000D6E488F58C2
-:1073D0002FEDE3CD80801439C030301CCF3B7018C6
-:1073E000401B103BCFB4CD7B2019F028BDC0CD7B16
-:1073F00000008C9080027328800275188001455827
-:10740000D43149A0189516931492604C580CC2B010
-:1074100030060C940C91785778480A38C09018962A
-:107420000E9C5807CF91F01F0012089CD8325BF3D6
-:107430005F0A782906395F081448E2081800CF006F
-:107440005BF25F0A783904395F081448E2081800D3
-:10745000CE705806E1F70A04EDF71A052FF4F01F75
-:107460000005CDFB1894CE0B00008C908002736C4D
-:10747000800091E8EBCD40FC18961695149212947A
-:107480001093318CF01F00211897C3A0F01F00202B
-:107490006E0A6E1B0C0AEA0B000B8F0A8F1BEE5B49
-:1074A000423FE08A000B2FFAEE3B42408F0A8F1BCF
-:1074B000EE5B423FFE99FFF98F248F338F423008F5
-:1074C0008F58494C78495809C1D072081438E0895E
-:1074D000001A2F0CC0A8F2CCFFEC72595809C0A0BA
-:1074E00072081438E0890007103ACF617218103B17
-:1074F000CF348F599907F01F0008E3CF80FCE3CF0A
-:10750000C0FC2F0CCF7B000080009200800273280B
-:1075100000008C908002736CEBCD40E0202D49661A
-:107520001A9CF01F00166C475807C1F040096E08FE
-:107530001238E089001B3005C05840096E08103928
-:10754000C1451039C0516E1940181238C0E56E5847
-:107550008D558D486E3B6E486E2C5D180E9CF01F4D
-:1075600000086C475807CEA1F01F00062FEDE3CFAF
-:1075700080E0000000008C9080027328800091E879
-:107580008002736CEBCD408049A76E3E580EC2B0AE
-:107590006E2A580AC280E08A002B7C081838C27014
-:1075A000FCC9FFF0300BC05872082F091838C050C2
-:1075B0002FFB163AFE99FFFA143BC170201A163AB7
-:1075C000C0F0161AF60C1504A56AFC0C000C2FFB73
-:1075D000A56BFC0B000BF01F00086E2A201A301858
-:1075E0008F2A8FC8E3CD8080E3CD8080300BCE7BA7
-:1075F00000008C90800091C4EBCD406048861895C7
-:10760000334A300B0C9CF01F0007ECCCFFE88D05D3
-:10761000301BF01F0005E3CF8060000000008C905D
-:10762000800091D0800144F80050F2010100000078
-:107630000000000000000000F6F800DC5808C05010
-:10764000F8F800F85808C0205EFDF6FB00D0580B93
-:10765000CFC076085808C04176185808CF602F8BE5
-:10766000CF9BD703EBCD4080300B1897F01F001352
-:10767000306A300BEECCFF64F01F0011306A300B23
-:10768000EECCFF5EF01F000E300BEEFC00E0F01FB2
-:10769000000D300BEEFC00E0F01F000BEEF800BC1C
-:1076A0005828C030E3CD8080EEFC00E0300BF01FA6
-:1076B0000007E3CD80800000800217D0800091D0C9
-:1076C000800261E8800261D4800261A4EBCD408039
-:1076D0001897F8F800945808C160300BF94B0094E3
-:1076E000F8F800D470985808C040F8FC00C45D1841
-:1076F000486A302B0E9CF01F0006300A0E9C149B2B
-:10770000F01F0004E3CD80808003D9D480023A1AB0
-:1077100080022584D431209D500C761558155F9831
-:107720007607169058075F1910693008F00918009D
-:10773000E08000B8EEC4FFFF0989F2C6FFFE0C35F9
-:10774000E08500B010923DD33301C168E208180013
-:10775000C2800C0758155F9958075F181268E40833
-:107760001800E080009EEEC4FFFF0989F2C6FFFE0C
-:107770000A36E08900960C150F88E6081800CE71CD
-:10778000305AF4091800FE98FFE6EECCFFFE306A8E
-:107790004DFBF01F0060C0B00F88E2081800CDA1BB
-:1077A00009883019F2081800FE98FFD540080E9B92
-:1077B0000C9AF0FC00DCF01F00581897C711400A23
-:1077C000FACBFFFCF4FC00DCF01F0054C21540793A
-:1077D0005809C1E040685808E0890007C19840682E
-:1077E0001037C1644079EE0B1504F20B000B400911
-:1077F0003008F2FC00DC2FF71099109AF01F0048B7
-:10780000CEF14008301BF0FC00E0F01F004660465F
-:10781000605558065F1958155F981069C760ECC429
-:10782000FFFF0989F2C7FFFE0E35C6F53003069249
-:107830000691C1A85802C0610D88330AF4081800E7
-:10784000C3A00E060E1558065F1858155F991268EA
-:10785000E2081800C3F0ECC4FFFF0989F2C7FFFE7D
-:107860000A37E08900385803CE610D883DDAF40804
-:107870001800CE113058F0091800FE98FFDD306A6C
-:107880004A3BECCCFFFEF01F0023CD5140090E9A7D
-:107890000C9BF2FC00DC3013F01F0023CCCB600704
-:1078A0005807CB604009300AF2FC00DC149BF01F43
-:1078B000001ACAEB09883019F2081800FE98FFC3B5
-:1078C00040080E9A0C9BF0FC00DC3012F01F0017F1
-:1078D000CB9B5803C0F05802C0B160485808C08024
-:1078E0004008049AF0FC00DC049BF01F00102F7D80
-:1078F000D83260465806CF004009300AF2FC00DC5E
-:10790000149BF01F0009CE8B3002CF5B80027628DB
-:107910008000917C8002B5EC8002C04C8002938094
-:10792000800255968002B58C8002B52CD431FACDF8
-:10793000009018911497586BE08B00C4FEF807482C
-:10794000F00B032F580AC0A0F8F800907009739A42
-:10795000580AC0410E9BF01F01CD304B029CF01F16
-:1079600001CCE2F801185808E0810312FAC7FF942D
-:10797000E2F800D470285808C4C00E9BE2FC00C492
-:107980005D18C475E2C6FF64306A0C9B0E9CF01F44
-:1079900001C1C3F0FB3800711AD8FB3900741AD941
-:1079A000FB3800771AD8FB39007A1AD9FB38007DEA
-:1079B0001AD8FB390080FEFA06DE1AD9301B029C69
-:1079C000F01F01B6306A0E9B0C9CF01F01B5306AA7
-:1079D000300BE2CCFF5EF01F01B3E2FA00BC2FAD2A
-:1079E000584A5F08590A5F091248C081588AE080E6
-:1079F000030C0E9B029CF01F01ACE2F80090704952
-:107A00005819E08102D5E2F800B05808E08002D0B1
-:107A1000FB3800711AD8FB3900741AD9FB3800778B
-:107A20001AD8FB39007A1AD9FB38007D1AD8FB39ED
-:107A30000080302B1AD9FEFA0672029CF01F0197C3
-:107A4000E2FB00B02FAD580BC040029CF01F019824
-:107A50000E9BE2FC00DCF01F0197622CF01F0196E8
-:107A6000300BE2FC00E0F01F0195300BE2FC00E07F
-:107A7000F01F0193E2F800BC5828C061300BE2FC13
-:107A800000E0F01F0190301BE2FC00E0F01F018BD2
-:107A9000300BE34B00F4E2F900BC59095F0A584986
-:107AA0005F081448F6081800E0800216029CF01FD8
-:107AB0000186307B029CF01F0176029CF01F01833F
-:107AC0002DCDD832580ACFD0149B7439F8FC00DC85
-:107AD000742AF01F017F2DCDD832F8FB00BC590B62
-:107AE000CF00F8F800E85858E08002355838E08BAD
-:107AF0000234E2C7FF64306AFEFB05D80E9C2F8B70
-:107B0000F01F0164EE0B1710E06800A2E3D8E00B51
-:107B1000029CF01F0171E2FC00DCF01F0170FEFA14
-:107B200005BE302B029CF01F015DE2FA00BC584AF2
-:107B30005F08590A5F091248C0B1588AE08002976D
-:107B400030080E9BE3480104029CF01F0157029C81
-:107B5000F01F01642DCDD832FEFA058C303BF01FAA
-:107B6000014F5807E08002806E0858085F1B169A84
-:107B7000E2FC00DC301BF01F015DFACCFF94F01F2B
-:107B8000015CE2F800985808E08001D541B9F2089C
-:107B90000108E048003CE08A01A6E34900982DCDA9
-:107BA000D832F01F0154E08501EBE2F900907248F1
-:107BB0005828C870E2F800AC5808C831E2FA00CC86
-:107BC0001094500AE2F000D072285808E08A00A908
-:107BD000300850187218401AF00A032850585800FC
-:107BE000E08A0097400530020A96C11808973003D2
-:107BF00030142FF2ECC6FF6404305F983009E9E8D6
-:107C00000008F2081800E08000970E940C9B029C7C
-:107C10000C93F01F0139C05078385818FE99FFE8CE
-:107C20006D585808C051ECF800805808CE004059F3
-:107C30005809CDD0ECC8FFFAECCAFFA8ECC9FFD4B4
-:107C40005048502A50394057C0486E175807CCF05A
-:107C5000EEF801945808CFA16CAA6E58103ACF6183
-:107C60006E4B404CF01F010BCF116E885808E0811D
-:107C700000E16F6AEDBA0001C061ECFB0080580BB7
-:107C8000E08100E3F1DAC001300AF4081800CDE029
-:107C90006D5B580BCDB0FACAFF94403CF01F011742
-:107CA000CD516F6841B91268CD106F3841C9126863
-:107CB000CCD06F4841D91268CC906F5841E9126816
-:107CC000CC5058065F04C96B149BF01F00F02DCDFB
-:107CD000D832149B2EACF01F010A1896FE91FEF2CA
-:107CE0006F9B580BE080012A581BFE91FEEBE34B83
-:107CF00000D8029CF01F00FB622CF01F01028326BB
-:107D0000CE0A5803E08100BF0E94E2F900904018BB
-:107D10002FF850187228401A103AFE95FF5DE2F8CD
-:107D200001085808E0800121029CF01F00F7E2F9E9
-:107D30000090C4BB5804CE600E923006C108049770
-:107D4000089930032FF6EAC5FF640C305F98F3E81A
-:107D500000083009F2081800CD500E920A9B029CD0
-:107D60000A93F01F00E5C05078385818FE99FFE9D3
-:107D700040585808CE50EACAFFFA4057506AC078B7
-:107D80006AA8103AC5006E175807CDA0EEF8019406
-:107D90005808CFA16E5A580ACF416E885808C1E1E1
-:107DA0006F5BEDBB0002C040EDBB0003CED1F1DB49
-:107DB000C002C0806B585808CE71EAF8008058089D
-:107DC000CE31EEF8014C5808C110EB190088EDB91E
-:107DD0000001CDA058055F09CB6B306AEECBFFE800
-:107DE0000A9CF01F00ACCD01CDCB1099EEC8FECCA3
-:107DF0002FF9700A580AC2612FC85849CFA1EDBBAC
-:107E00000003C071EEF800F0F1D8C002F9BA010128
-:107E1000EB190088EDB90004C030580A5F0A580A0F
-:107E2000CB30CD6B6E4B406CF01F009ACAD1CB6B40
-:107E3000306AEECBFFE80C9CF01F0096FE91FF0726
-:107E4000C19B301ACDDBFACAFF94402CF01F00AB67
-:107E5000C0306F6AC18B6F6A41B8F5E80008FE90C8
-:107E6000FF136F3841C91268FE90FF0E6F4841D969
-:107E70001268FE90FF096F5841E91268FE90FF04F6
-:107E8000C21BE2F800A85808C131306AE2CBFF6497
-:107E9000069CF01F0080C170E2F800E85838C081ED
-:107EA000306AE2CBFF5E069CF01F007AC0C00E9BDA
-:107EB000029CF01F007FE08100B50E9A069B029C99
-:107EC000F01F0092009A400BE2FC00DCF01F0090D3
-:107ED000FE9FFDF8169A029C30ABF01F008EFE9FAD
-:107EE000FDEE3017FEFA0230303B029CE34700946F
-:107EF000F01F006AE06B2710300CF01F0088E2F8DA
-:107F000000D470985808C0500E9BE2FC00C45D1865
-:107F100030EB029CF01F0082300A029BFEFC020440
-:107F2000F01F0081300802994FEA109B33CCF01FFC
-:107F3000007F41B9FE9FFE33E2F800D85808FE905A
-:107F4000FDC1E34B00D8029C301BF01F0079FE9F5F
-:107F5000FDB9582BC780E07A86A0300B029CF01F39
-:107F60000075FE9FFDC8305BE2F801105818C7206D
-:107F7000029C300AF01F006FFE9FFDA4E2F9009002
-:107F800072485828FE90FD9E301BCEFBFAC7FF9426
-:107F9000E2C6FF64306A0C9B0E9CF01F0041E2F8C1
-:107FA00001185808FE91FCF8FE9FFCE4029CF01FAB
-:107FB00000621896C230F8FB0194580BC1F1795851
-:107FC000E2180013C351189B029CF01F005CE2F8FA
-:107FD00000B05808C0701036C050E2FC00E0F01F3E
-:107FE0000058E2FC00DC0C9BE34600B0F01F00559B
-:107FF000029CF01F0055FE9FFD0D029C303BF01FC0
-:108000000053FE9FFD5FE2F800B05808FE90FCF3BD
-:10801000F0F800F0F1D8C002FE91FCEDFE9FFCEFFD
-:10802000029C300A30ABF01F0043FE9FFD4B350928
-:10803000FAC8FF70189A10D9029CFAC9FFE4F01F21
-:108040000044CC6B4C3AF01F0015E2F800E8FE9FAC
-:10805000FD4F72485818F9B80002E3F80A44F9BB1A
-:108060000000C87B0E9BFE9FFD84E2F800B058081C
-:10807000FE90FD68F0F800F0F1D8C002FE91FD62BC
-:10808000FE9FFD678003D9B880027714800217D065
-:108090008000917C8003D9F880023A1A800091DC3C
-:1080A000800091D0800226948003DA3880027638EE
-:1080B0008002BA4C80028172800261E8800261D441
-:1080C000800261A480021CE080021DB88002979C9F
-:1080D0008002762880021AE08002BA1C8003DAA8A7
-:1080E000800276648003DAE48002D19C80028F549F
-:1080F00080021E84800218F88002BD68800091A072
-:10810000800281748002189C800230DC800298A476
-:108110008002246C8003DB0480028F1C800228D83C
-:10812000800276CC800274008002747480022794EE
-:10813000800225848002195C800222A480025748B4
-:108140008002B9D48002237080022FCC80021F30BD
-:108150008003DA68580C5E0E5E1DD401201D3008C5
-:10816000767C3009BA881A9A7668129B5D182FFDC2
-:10817000D8025EFCEBCD40801897580CC090789CDC
-:10818000580CC035F01F00040E9CF01F0004E3CD16
-:108190008080000080027584800091E8EBCD40F87B
-:1081A0001896129510944063328CF01F000B1897AC
-:1081B000C0F00C9B311AF01F00093FFC8F658F74D3
-:1081C0008F838F9C30090E9A485BF01F00060E9C2F
-:1081D000E3CD80F880028F24800091AC8002815A28
-:1081E000800272C8D4011698306AF8CBFFEF109C59
-:1081F000F01F0002D80A0000800091DCD431213D3C
-:1082000076FE511E760A503A761950497628505813
-:10821000763E506E764A507A7669508976785098D4
-:10822000768E50AE769A50BA76B950D976C850E864
-:1082300076DE189850FEF8C9FFF876EA510A7654AF
-:1082400076AB500C5019E02BA44F50CB110EF8CB4D
-:10825000FFF45008512E403A700340487205502BED
-:10826000E069A478EA19D76AFC0900091409760ABA
-:10827000E06BB756EA1BE8C7F40B000B100BF5E5F3
-:108280002008066814581009E06870DBEA182420FA
-:10829000EBE3200AF20E1507FDE9139E060EFDEA38
-:1082A000000A0A5A1005140BFDE32008F606150C07
-:1082B000EDEB13461C06EDE800080658405AE0694D
-:1082C000CEEEEA19C1BD14051005EDEE2008EA0B4B
-:1082D0001511F7E512FB0C0BF7E800081C58120308
-:1082E0004069120310034078E6051516E0690FAFE8
-:1082F000EA19F57CEBE312A5F00900091605F7E68B
-:108300002008EBE800080C581C091009EBEB2008CA
-:10831000F2031507E7E913930A03E7E80008165884
-:10832000E06AC62AEA1A4787E80A000A0C0A100A15
-:10833000E7E52008F402150CE5EA13420602E5E839
-:1083400000080A58408EE0694613EA19A830FC0973
-:10835000000916091009E5E32008F2061511EDE9F8
-:1083600012F60406EDE800080658409AE06B950105
-:10837000EA1BFD46F40B000B0A0B100B40A840C98A
-:10838000F60E1516FE395BB1FDEB12AEE06A98D819
-:10839000EA1A69800C0E40BBF00A000AEDE22008E0
-:1083A000FDE80008045840C1060A50C9100AE069F7
-:1083B000F7AFEA198B44FDE62008F6090009F40B33
-:1083C0001507F7EA139B1C0BF7E800080C58F7EEAB
-:1083D000200A0C0104091009F206150CEDE91346F8
-:1083E0001606EDEB2008EDEA000A1C5A1401E2051E
-:1083F0001511EBE112F50C05EBE80008165840DA10
-:10840000E069D7BEEA19895CF40900091C09100962
-:1084100040E8F20E1516E06A1122EA1A6B90FDE9A7
-:1084200012AEF00A000A0A0EEBE62008160AFDE872
-:10843000000840FB0C58E0697193EA19FD98100A96
-:10844000F6090009FDE52008F40B1507F7EA139B70
-:108450001C0BF7E800080A580C0910094108F2063D
-:10846000150CE06A438EEA1AA679EDE91346F00A84
-:10847000000A1606F7EE2008EDE800081C580A0A64
-:10848000100A4118F4051511E0690821EA1949B4E8
-:10849000EBEA12F5F00900090C05EDEB2008EBE81A
-:1084A000000816581C091009F2031516E7E912A373
-:1084B0000A03E7E520080C680A58404EE06A256286
-:1084C000EA1AF61EFC0A000A160A408B100A40D867
-:1084D000F40E1505E069B340EA19C040FDEA13BE89
-:1084E000F6090009060E403B0C09E0665A51EA16EF
-:1084F000265EF0060006FDE320080A68065810090B
-:10850000E062C7AAEA12E9B6F6020002F20B150908
-:10851000F7E9137B41191C0BF7EE200806681C587D
-:108520000A0606021006E063E681EA13D8A1F20308
-:108530000003EC09150EF3E613291609F3EB2008E6
-:108540001C68165840CA10024078E065105DEA15B4
-:10855000D62FE0611453EA110244E8050005F40146
-:1085600000011C051601E40A1514E06EFBC8EA1EA2
-:10857000E7D3F5E212CAF00E000E120AF5E9200860
-:10858000166840BB125812031005E066CDE6EA16E5
-:1085900021E1F6060006EA0B1505F7E513BB140BFF
-:1085A000F7EA2008126841091458E06507D6EA1571
-:1085B000C3371001F2050005E2091509F3E113794B
-:1085C0001609F3EB20081468165810034068140EBF
-:1085D0001606E60A150EE0620D87EA12F4D5F5E3F9
-:1085E000132AF0020002120AF5E92008166840ABCF
-:1085F00012581205100EE06314EDEA13455AF60303
-:108600000003FC0B1514F7EE12CB140BF7EA20084D
-:10861000126840F91458E061E905EA11A9E310066F
-:10862000F2010001EC091505F3E613B91609F3EBA5
-:10863000200814681658100540581402E066A3F884
-:10864000EA16FCEFEA0A1509F0060006F5E5137ACA
-:10865000120AF5E9200816681258409E1002160307
-:10866000E40B150EF7E2132B140BF7EA200812683F
-:108670001458E06502D9EA15676F1003FC05000580
-:10868000E60E1514FDE312CE160EFDEB200814685D
-:1086900016581201100140A840E91406E060F68166
-:1086A000EA108771E20A1505F0000000F5E113BA3F
-:1086B0001C0AF5EE200816681C58E0624C8AEA1283
-:1086C0008D2A1006F2020002EC091509F3E613796F
-:1086D0001409F3EA20081C681458160540DB10053D
-:1086E0004108E434C6BEE0616122EA116D9DE80AEA
-:1086F0000007F6010001E066380CEA16FDE5F00619
-:108700000006EA08150EF1E513281208F1E9200B1E
-:10871000F7EA000A125A1C021402407A404E120074
-:108720001001E063CFA9EA134BDEF4030003E40A6F
-:108730001514F5E212CA100AF5EB200BF5E8200833
-:10874000EE0B000BF6091504F3EB13C914091258CC
-:1087500014061000F3EA200AE065EA44EA15A4BE14
-:10876000E008150BFC050005F1E01358120512088E
-:10877000105A10031401F1E92009E20B1510F7E17A
-:10878000130B100B1659F7E820081206EC0E1517FC
-:10879000FDE6129E160E1C5810054098FDEB200AAF
-:1087A000EA061504E0694B60EA19F6BBEDE513C66D
-:1087B000F00900091C0616090C5AEDEE20081403F6
-:1087C00040CBE605150BEBE313550C050A58E06AA0
-:1087D000BC70EA1ABEBF1009F60A000AEBE62008D0
-:1087E000F20B1510F7E9130B0A0B16581C0A100AA6
-:1087F00040F8F40E1517E0697EC6EA19289BFDEAD9
-:10880000129EF0090009160EF7E520081C580C0905
-:1088100010094038F2061504E06A27FAEA1AEAA1BC
-:10882000EDE913C6F00A000A1C06FDEB20080C58FF
-:108830000A0A100A4068F405150BE0693085EA1948
-:10884000D4EFEBEA1355F00900090C05EDEE200812
-:1088500016090A58408B1009E06A1D05EA1A0488B7
-:10886000EBE62008F60A000AF20B1510F7E9130BE5
-:108870000A0B16581C0A100A40B8F40E1517E069C6
-:10888000D039EA19D9D4FDEA129EF0090009160E72
-:10889000F7E520081C580C09100940E8F2061504F9
-:1088A000E06A99E5EA1AE6DBEDE913C6F00A000A88
-:1088B0001C06FDEB20080C580A0A100A4118F405A2
-:1088C000150BE0697CF8EA191FA2EBEA1355F009D1
-:1088D00000090C05EDEE200816090A58405B100946
-:1088E000E06A5665EA1AC4ACEBE62008F60A000A0C
-:1088F000F20B15101C0AF7E9130BE0692244EA1980
-:10890000F4290A0B1658100A4032F40E15171202F9
-:10891000FDEA129EEA0811FF160E409AFDE81008C3
-:10892000E069FF97EA19432A1658F40900090A0971
-:108930000C0241061002F60811FFE40A1506F5E2E2
-:1089400013AA1C0AF5E810081C58F2080005E06993
-:1089500023A7EA19AB941206FC0811FFEC0B000BDD
-:10896000EA06150AEDE513661406EDE8100814583A
-:10897000F6080008E069A039EA19FC93F00B150F1E
-:10898000FA243942F7E8131BE80900050C0BEA0E3C
-:10899000000EF40811FFF7E810080C58E06959C3FD
-:1089A000EA19655BFC08000540E2EA0E15151202A3
-:1089B000FDE512BEEC0811FF160EFDE81008165872
-:1089C000E40A000AE069CC92EA198F0CF40800026C
-:1089D0004068F00900090C09E40A1506F60811FFC1
-:1089E000F5E213AA1C0AF5E810081C58F208000268
-:1089F000E069F47DEA19FFEF40C1FC0811FF1201A4
-:108A0000E406150AE20B000BE0695DD1EA198584E2
-:108A1000EDE213661406EDE8100814584045F60818
-:108A200000011205E20B150FEA0E000EF7E1131B11
-:108A3000F40811FF0C0BE0697E4FEA196FA8F7E804
-:108A4000100840A30C581203E60A000AFC080005AF
-:108A5000EC0811FFEA0E1515FDE512BE160EFDE835
-:108A600010081658F4080003411AF60811FFE069CF
-:108A7000E6E0EA19FE2CF4090009E60A15060C09DD
-:108A8000F5E313AA1C0AF5E810081C58F2080003C5
-:108A90004088E0694314EA19A301F00900091609A6
-:108AA000FC0811FF40FBE605150AEBE3136514050E
-:108AB000EBE810081458F2080008E06911A1EA195F
-:108AC0004E08F6090009F20E000EF006150FE069D7
-:108AD0007E82EA19F753EDE81316F40811FF0A062F
-:108AE000EDE810080A58FC080001407E120EEA0862
-:108AF00011FFFC0A000AE20E1515FDE112BE0C0E74
-:108B0000FDE810080C58F40800094128F20A15067F
-:108B1000F5E913AA1C0AF4080009E068F235EA181E
-:108B2000BD3A990940D91009EC0811FFF205000B74
-:108B3000F5E8100840091C58720CF6080001E069BD
-:108B4000D2BBEA192AD740581208E20B150AF006E0
-:108B50000009F7E1136BFC0811FF140BF7E810088C
-:108B60001458F208000640B8E069D391EA19EB8680
-:108B7000F0090009F20E0008F40A11FF400EEC099A
-:108B8000150FF3E613191609F20C000CF3EA100A9C
-:108B9000165AF00A0006EC081515F1E612B8100C8A
-:108BA0009D0C401A7408120895084028700916098F
-:108BB00091092EDDD832D703EBCD40E03809764855
-:108BC000F1D8C066F608000AF56900181895F00A91
-:108BD000113F1697F6080008F0CCFFE7587AE08BB3
-:108BE0000056300BF01F002DEEC6FFE8EECCFFA8BC
-:108BF0000C9B1798178917BAF3E8108917A8F1EAA0
-:108C00001088F3E8110916A9183BCF410C9B0E9C64
-:108C1000F01F0023338A300B0C9CF01F00200C9BAC
-:108C2000ECCCFFC81798178917BAF3E8108917A872
-:108C3000F1EA1088F3E8110916A9183BCF416E48F4
-:108C40006E590C9B0E9CEF480050EF490054F01FEA
-:108C500000140E9BEECCFFF01798178917BAF3E8B3
-:108C6000108917A8F1EA1088F3E8110916A9183B32
-:108C7000CF410E9B0A9C310AF01F000A0E9C304A1D
-:108C8000300BF01F0006E3CD80E0208A300BEEC6EB
-:108C9000FFE8F01F0002CC4B800091D0800281FCE5
-:108CA000800091DCEBCD40FC1493784AF40300384B
-:108CB000103AF9F98005F9F9B005F7B90BFFF9F9A0
-:108CC000BA059948E608161DF20800089958189444
-:108CD0001692F1DAC066C381F8C5FFE8E043003FB1
-:108CE000E088002C3006EAC7FFC0E406000B340A17
-:108CF0000A9CF01F00290A9B1798178917BAF3E8F6
-:108D0000108917A8F1EA1088F3E8110916A90E3B9B
-:108D1000CF410A9B089CF01F00212C06E6060108A3
-:108D2000E048003FFE9BFFE3E6C80040E7D8C006EE
-:108D3000E018FFC02C081002069A049B0A9CF01F42
-:108D40000016E3CD80FCF00711402E88100C0E3386
-:108D5000C1D30E9AF01F0010E8C5FFE8E8CCFFA8C9
-:108D60000A9B1798178917BAF3E8108917A8F1EA30
-:108D70001088F3E8110916A9183BCF410E130E0213
-:108D80000A9B089CF01F0005CAAB069AF01F000260
-:108D9000E3CD80FC800091DC800281FCEBCD40FCC7
-:108DA000216DE0682301EA186745E06EAB89EA1E91
-:108DB000EFCD30075008501EE068DCFEEA1898BA84
-:108DC000E06E5476EA1E1032504750575028503EFD
-:108DD00018931292580CC140149416951A962FF7B6
-:108DE000090A0B0B1A9CF01F00080E33FE9BFFF9BB
-:108DF0001A9B049CF01F00052EADE3CD80FC1A9653
-:108E0000CF8B000080028CA480028BB8D431FACDC5
-:108E10000088501C500B14931292109142B0585A73
-:108E2000E08B0056E04B0040E08B0054FAC4FFF8A2
-:108E3000340A300B089CF01F002E400A401B089C8F
-:108E40000896F01F002CFAC5FFB808970D88EC189B
-:108E500000360CC80A36CFB1340851845128580363
-:108E6000C110FACCFF9CFACBFFB4300AE60E150213
-:108E7000E40A030818A8E20A030916A92FCA1C3A33
-:108E8000CF81E6CCFFFF00990A9AFAC3FFA0069BA8
-:108E9000F01F0019340A300B089CF01F0015400A1F
-:108EA000401B089CF01F00130F88EC18005C0EC8D4
-:108EB0000C37CFB1310C3408513C5184519000999A
-:108EC0000A9A069B5128302CF01F000B2DEDD8324A
-:108ED000FAC6FF881A9A0C99FACBFFFC301CF01FD7
-:108EE0000006310850165008CA2B0000800091D0AF
-:108EF000800091DC80028D9CD401202D501A5009F5
-:108F0000301A1AD8FAC9FFF8FAC8FFFCF01F00039C
-:108F10002FFD2FEDD802000080028E0C5EFC5EFE5D
-:108F20005EFCD703EBCD40C01896F01F00061897E3
-:108F3000C0500C9A300BF01F00040E9CE3CD80C093
-:108F400080009200800091D0D401F01F0002D80A66
-:108F500080014600D401F8CBFFFCF01F0002D80AC4
-:108F6000800145D4780C580C5E0C3008F948004C50
-:108F7000780C580CCFC15EFC580CF9FC10435EFC19
-:108F8000580CF9B80100F9F81A435EFCEBCD40E04B
-:108F9000189716961495314CF01F0005F9F71A032F
-:108FA000F9F61A04F9F51A02E3CD80E080028F2465
-:108FB000EBCD40E01696149578075807C160580627
-:108FC000C080306A0C9BEECCFFC0F01F000AC0A12D
-:108FD0005805C0B0EECCFFFC310A0A9BF01F00051B
-:108FE000C0406E075807CEC10E9CE3CD80E0000064
-:108FF0008000917CEBCD4040781820181696991887
-:10900000784B78390C9C5D190C9CF01F0003E3CD64
-:1090100080400000800091E8EBCD4080202D300A98
-:109020001897189B49BCF01F001C300A0E9B49BCC6
-:10903000F01F00196E085808C2201A9CF01F001873
-:109040006E08400A70EC0E993008141C109BF8084A
-:109050000C4C490A2FFCF01F00136E2BF6FA010C82
-:10906000580AC1006E08400A712C0E99141C300871
-:1090700048AAF8080C4C109BF01F000A2FEDE3CD16
-:109080008080F6CBFEB80E9CF01F0007CF80CEBBD1
-:10909000800290E4800274008002913080028F543C
-:1090A0008002747480028FB0EBCD40C01896580CCB
-:1090B000C1407809300899085809C031C0880E9914
-:1090C0007207129CF01F00065807CFA10C9CF01FDE
-:1090D00000050C9CF01F0002E3CD80C0800091E8E9
-:1090E00080029018EBCD4080202D18971A9CF01F1D
-:1090F000000E6E0A580AC0C1C1087408149B8F087C
-:10910000300A0E9CF01F00096E0A580AC06074E90C
-:1091100040081039FE9AFFF30E9CF01F00052FED5A
-:10912000E3CD808080028F5480028FF480029018FB
-:10913000D4013008782AF548010C7829F2FC0104A2
-:10914000F01F0002D8020000800255ACD43120CDBF
-:109150001096782814941293E04A00205FBAF0F930
-:109160000160189758295F18169241511448C05051
-:1091700030060C9C2F4DD832354CF01F00621890F1
-:10918000CF80089A049B2ECCF01F005F81D4FAC9CF
-:10919000FFE450965083FAC5FFF84DC81AD5303A0F
-:1091A000089B049C4DA65086F01F005AE0C8FFFCA7
-:1091B0000A9B5018310A109CF01F0053FACCFFD4C0
-:1091C000F01F0055E0C8FFC0502840BC6E29F2F8DF
-:1091D0000150F808000881E86E2AF4FB0150F4F908
-:1091E0000154E06A851FEA1A51EBB739F20A0648C2
-:1091F000301AA599180981FAE1490048306A402CD3
-:10920000069BF01F0041E141004C2FFD6E06580601
-:10921000C2903005C0680C956C0C580CC58018962F
-:10922000ECCBFFC0306A069CF01F003CCF516CD8DD
-:109230000838C5505805EDF80000EFF80A00EDF8C1
-:109240001000EBF81A006E29F2F8010C0C38F9B88E
-:109250000000F3F80A430C9B301A0E9CF01F0030FC
-:109260006E066E1859F8E08A00155806C3200C9A4D
-:1092700015088F086E28F0F90128ECCBFFC0720C9E
-:1092800072F85D180C9B300A0E9CF01F00256E06CC
-:109290005806C1F060EA6CE8103AC074C1A872E8E0
-:1092A0001438E089000612966C095809CF9181099B
-:1092B0008D006E2C6E18400A401B2FF88F18F8F99D
-:1092C00001280096720C72E85D18C54B6E06CCAB97
-:1092D00081068F000E9CF01F0013CECB089A049BD2
-:1092E000ECCCFFECF01F000DCA61310A400BECCC56
-:1092F000FFFCF01F000AC9F1009CF01F000BC3AB7C
-:1093000080028F24800091DC8003DB248003DB9CBF
-:109310008002B14480028F548000917C80028FF4DF
-:1093200080029018800091E8EBCD4080189E78076D
-:10933000580BC06116970E9CE3CD80806E075807CE
-:10934000CFB06F381638CFB11AD814997C286EDA9E
-:10935000F0C8FEC8EECBFFEC1C9CF01F00092FFDEF
-:10936000580CF8071700EFF8100EF9F81A0EF80766
-:109370001710F9B80101F9F81A14CDEB8002914CDD
-:10938000EBCD40FC1897300CEF4C010C1496129268
-:109390001094EEF50108580BC080169A189B0A9C91
-:1093A000F01F0016EF4C010C58065F13EEFC010C89
-:1093B000580C5F09F3E30008C16158045F18F3E833
-:1093C0000008C0A05803C0800C9A049B0A9CF01FA0
-:1093D000000CEF4C010C580CF9BC00FFF9BC01006B
-:1093E000E3CD80FC300A0C9B0A9CF01F00045F094F
-:1093F000EF4C010CCE3B000080028FB0800293281E
-:109400000000000000000000EBCD4080580CC100BF
-:10941000F8F901103008F94801105809C031C08826
-:109420000E997207129CF01F00045807CFA1E3CDDC
-:1094300080800000800091E8EBCD40C01897580C68
-:10944000C250F8F801245808C210189B300A491C71
-:10945000F01F0011EEFC0124F01F00103006306AEE
-:109460000C9BEF460124EECCFEE4F01F000DEEFC59
-:109470000114F01F000CEF460114EEFC0118580C0B
-:10948000C050F01F0008EF460118E3CD80C0000077
-:109490008002996880027400800256EC800091D0AE
-:1094A00080028174EBCD40F8205D189716951494D6
-:1094B000F8F601245806C0503FFC2FBDE3CD80F8DC
-:1094C000F8FA012817D81AD817C91AD917B81AD80C
-:1094D00017A91AD917981AD81789301B1AD9740CDA
-:1094E0004C6AF01F0047EEC3FEC81AD60E984C59BE
-:1094F000E06A88C7069BEEFC0140F01F0043EF4C7A
-:1095000001142F9D580CC6F0EEFC0144580CC0E02D
-:109510001AD6069B0E984BB9E06A88C7F01F003A2E
-:10952000EF4C01182FFD580CC5E0340CF01F00372C
-:109530001896C5B0EEF8012870099909EEF80128CF
-:109540003019700A4B2899199928994A99374B185C
-:10955000EEF9012C998899599967EEF8012871095B
-:1095600099A9EEF80128711999B9F01F002BEF4C59
-:109570000124C3D0314A300B1A9CF01F0028EEF9A9
-:1095800001305804E9F8105FFBF81A03300650293F
-:109590001A9A089B50165006EEFC0124F01F00207A
-:1095A000306830593FFAEEFC0124149BF01F001D77
-:1095B000306A0A9BEECCFEE4F01F001B301BEEFC71
-:1095C0000124F01F001A301BEEFC0124F01F0018CC
-:1095D0000C980E99497A0C9BEEFC0158F01F00166E
-:1095E0000C9CC6CB3FECC6AB3FCCC68B0C9CF01F93
-:1095F00000133FDCC63B00008003DBA880023A1A60
-:1096000080029AF08002819C80028F2480029A243A
-:10961000800299C48002609C800091D08002581C16
-:1096200080025564800091DC800261D4800261E890
-:109630008002996880027474800091E8EBCD40FC50
-:109640001897F8F801105808C6F0F8F801284CAA45
-:10965000700C301BF01F0049EEF801245808C0A020
-:10966000EEF801284C6A700C301BF01F0044E3CD6B
-:1096700080FCEEF801605828CF41EEF80128700C0C
-:1096800070295D19587CCED1EEF8016C5818CE9136
-:10969000EEF501105805C410EEC2FEB8EAC3FFFC97
-:1096A000300A069BEEFC0108F01F0036306A189461
-:1096B000069B049CF01F0034C0605804C3706948C6
-:1096C0005808C341EB3800091AD8EB3800081AD8FB
-:1096D0000BF81AD80BE8EEF601281AD80BD91AD9CC
-:1096E0000BC84AAA1AD8301B6C0CF01F00242FADEF
-:1096F0005804C090EEF90128E8CAFFFC069B720CE2
-:1097000072E85D186A080A9CEF480110F01F0020FB
-:10971000EEF501105805CC31EEF8012849DA700C4D
-:10972000301BF01F0016E3CD80FCEB3800091AD87F
-:10973000EB380008EEF601281AD80BF81AD80BE817
-:109740001AD80BD91AD90BC8493A1AD8301B6C0C45
-:10975000F01F000A6A08069BEEFA0134EF48011078
-:109760000E9CF01F000E0A9CF01F00092FADE3CDE8
-:1097700080FC00008003DBEC80023A1A8003DC14DA
-:1097800080028FB08000917C8003DCA0800091E893
-:109790008003DCFC8003DC4C800294A4EBCD40F819
-:1097A0001695189414931297F8FB0134580BC05077
-:1097B000F6F801485808C5D15807C4C0E8F60110AA
-:1097C0005806C4A03007C0680C976C0C580CC440F5
-:1097D0001896306A0A9BECCCFFFCF01F002CCF518E
-:1097E0005807EDF81000EFF81A00EDF80000E9F85E
-:1097F0000A44E04303E7E08A003BE8FA0110580A14
-:10980000C4006C3B74381638C065C3B8723816385B
-:10981000C054129A74095809CFA18D0995061AD31C
-:109820000BD80B8CE8F601281AD80BC91AD90BB83B
-:109830001AD80BA91AD90B98495A1AD8301B1ADC16
-:109840006C0CF01F0014089CF01F00132F9DE3CD3B
-:1098500080F8E3CD80F8310CF01F00101896C0F0AE
-:10986000306A0A9BECCCFFFCF01F000D8D33CC6BF3
-:109870000A9AF8FC0108F01F000BC9FBE3CD80F841
-:109880008D0AE9460110CCCB8000917C8003DD2459
-:1098900080023A1A8002963C80028F24800091DC7C
-:1098A00080029328EBCD40F8208D169414971895DC
-:1098B000F8F801345808C470F01F0027EEC6000104
-:1098C000C426E068009C1A93EC080248E8080007E8
-:1098D000EAC4FEB8C0682016EEC7009C5806C3351F
-:1098E000EAF901346EAA7258103ACF61724BEECC8D
-:1098F000FFFAF01F001ACF01306A089B0E9CF01F80
-:109900000017CEA0EEFB0080580BCE601A9AEECC6A
-:10991000FFA8F01F0013CE01189A0E9BEAFC010865
-:10992000F01F0010C13079485808CD604048EDB8AC
-:109930000000CD213019E06A03E80E9B0A9CF01F5D
-:10994000000ACCAB2F8DE3CD80F84048F3D8C0019E
-:10995000CF3B0000800294088000917C8002BD68AB
-:1099600080028FB08002979CEBCD4060F9380121D6
-:10997000F8F501281AD8F93901201AD9F938011F48
-:109980001AD8F939011E1AD9F938011D1AD8F9392E
-:10999000011C489A1AD9302B18966A0CF01F000740
-:1099A0000C9CF01F00070C9CF01F00062FADE3CDB0
-:1099B000806000008003DD6C80023A1A80029438D7
-:1099C0008002963CEBCD40E0201D1897F8F801147A
-:1099D0005808C0613FF60C9C2FFDE3CD80E0F8F8FD
-:1099E0000128300C5C791ADC5C5B700C70D6FAC80C
-:1099F000FFFC5D162FFD1895580CCED01899400825
-:109A0000E06A88C7EECBFEE4EEFC0114F01F000410
-:109A100018960A9CF01F0003CDFB000080028154C1
-:109A2000800091E8EBCD40E0208D14971896580BFC
-:109A3000C2614A781AD8EEF60128EF3801211AD807
-:109A4000EF3901201AD9EF38011F1AD8EF39011E5A
-:109A50001AD9EF38011D1AD8EF39011C49DA1AD981
-:109A6000302B6C0CF01F001C0E9CF01F001C0E9C79
-:109A7000F01F001B2F9D2F8DE3CD80E01A95320A39
-:109A80001A9BF01F0018C1211A9B320AEEF801340C
-:109A90008F8A1AD8EEC9FEE4EEC8FEC8EEFC0108B3
-:109AA000F01F001149182FFDCC6B0C9C310A1A9B3A
-:109AB000F01F000CC090EEF8012848DA700C302B33
-:109AC000F01F0005CB7B1A9B310ACE1B8003AD2C07
-:109AD0008003DE1880023A1A800294388002963C95
-:109AE000800257CC8002914C8003DDB48003DDCC32
-:109AF000EBCD40F81897169514931294F8F80124BA
-:109B00005808C090F8C6FEE4306A48BB0C9CF01FB1
-:109B1000000BC031E3CD80F80C9C306A0A9BF01F2B
-:109B20000007CF910899069A0A9BEEFC0124F01FCA
-:109B30000004CF1B800294008000917C800261FCB5
-:109B4000EBCD40F8FACD01001293109418961697B9
-:109B5000149530081A99F2080B082FF8E048010014
-:109B6000CFB1300E1A9C1C9BEC0B0709198AFC0A1A
-:109B700000081208FAC9FF00FDD8C0081C09F33814
-:109B8000FF0018C8F36AFF002FFBFAC8FF000E3B66
-:109B9000F9BB0200103CCE915805C4C0300E1C9792
-:109BA0001C9CF8C8FFFFFACAFF00F9D8C008180AC1
-:109BB000F53BFF00F60E0008FAC9FF00FDD8C0080B
-:109BC0001C09F338FF00F568FF00F36BFF002FF767
-:109BD0000E35FE9BFFE85804C2A006963007F8C871
-:109BE000FFFFFACAFF00F9D8C008180AF539FF00CC
-:109BF000F20E0008FACBFF00FDD8C0081C0BF738A6
-:109C0000FF00F568FF00F769FF00F538FF00100955
-:109C1000F3D9C008FACAFF00120A0D89F538FF000F
-:109C200012580CC82FF70E34FE9BFFDB2C0DE3CD32
-:109C300080F80A9E0A9CCD0BD401129E16981899A2
-:109C40001C9B149C300AF01F0002D80280029B402B
-:109C500000000000D431FACD0180340AFAC4FEC0FD
-:109C6000510C089CF01F04BF688A516A689950A97A
-:109C700068A8509868B65086684568216830416683
-:109C800050E5685250D2686A50CA687950B968087D
-:109C90005158E3E8200868D50C580A586812F00AB1
-:109CA000150150F2F5E813FA517A68E868F640E5D4
-:109CB00040A9105940980C580A5802580059F00A07
-:109CC00015010459F5E813FAF20215014178E5E9A6
-:109CD00013F2519A518240C54089105968C80458FE
-:109CE00040E20A58045840D6F00A15010C59F5E82C
-:109CF00013FA005951AA419840B640D5416240CA72
-:109D0000F2071501EFE913F768D9105968E80E5802
-:109D1000045814580C590A59F0051501F20615019A
-:109D2000EBE813F5EDE913F640B851C551B641A281
-:109D300068F940AA416504591459105941780C58E2
-:109D400040960C580A58F2021501F00A1501E5E98F
-:109D500013F2F5E813FA41C851EA51D2408640A502
-:109D6000409A418910594198045868C204581458BF
-:109D70000C590A59F0051501F2061501EBE813F527
-:109D8000EDE913F6408851F6520541E268DA68C5FC
-:109D9000EFE220091459105941A80C5868E60C58F4
-:109DA0000A58F2021501F00A1501E5E913F2F5E887
-:109DB00013FA52124208522A41B968F668D568EA85
-:109DC000105941C804584172045814580C590A5982
-:109DD000F0051501F2061501EBE813F5EDE913F6B0
-:109DE0005245523668F84222418A417541D9045998
-:109DF0001459105941E80C5841960C580A58F2026F
-:109E00001501F00A1501E5E913F2F5E813FA4248E5
-:109E1000418641A5525241F9105942080E59045841
-:109E20000C5941920A580458526AF20A1501F5E990
-:109E300013FAF0091501F3E813F9426841B641C578
-:109E400041A2527A52894219105942280C59145889
-:109E50000E590A580458F20A1501F5E913FAF009E7
-:109E60001501529AF3E813F9428852A941D641B537
-:109E700041E2423910594248145841CA0458145812
-:109E80000C5941FA0A59F0051501F2061501EBE8E3
-:109E900013F5EDE913F641D852C542A241E552B699
-:109EA00042590459145942CA105942680C58420682
-:109EB0000C580A5841F6F20E1501F0021501FDE9A1
-:109EC00013FEE5E813F2421942781458420A42257B
-:109ED000125842890C581C59F00615010A59EDE830
-:109EE00013F61459F20A1501F5E913FA0C951493B7
-:109EF000423952E652FA4216424A52D24298045825
-:109F0000125842A90C580A5942261459F00A150150
-:109F1000F5E813FA0C59530A1496F2081501425A3F
-:109F2000F1E913F84239109C531842B806581458F6
-:109F3000426A125842C90C591459424A1459F00A3B
-:109F40001501F5E813FAF2081501F1E913F8109B71
-:109F500053384278FDEC20091059425810595019D5
-:109F60004289E5EA200812584269125840195008FF
-:109F70004018A178F1E913F8400953484008A17846
-:109F8000F1E913F853584298EBEB20091059427845
-:109F9000105942A850194349E7E92009105942884D
-:109FA000105940185009532A4019A179F3E813F9C0
-:109FB000400853694009A179F3E813F953794358EC
-:109FC000EDE8200942B810594298105942C850197A
-:109FD0004369F9E92009105942A81059401850095D
-:109FE0004019A179F3E813F9400853894009A17990
-:109FF000F3E813F943785399F5E8200942B81C595E
-:10A00000105950194389F7E92009129842C9045898
-:10A010001258401950084018A178F1E913F8400986
-:10A0200053A84008A178F1E913F8434953B843987D
-:10A0300010590A591C59501943A94358125840192C
-:10A04000065804584012A172E5E913F253C2F00217
-:10A050001501E5E813F243B84369105943780C59E8
-:10A060000A5943C50A581858065853D2F202150126
-:10A07000E5E913F2F0091501F3E813F943D853F9B0
-:10A08000438910594398145904580C5916581858B4
-:10A0900053E243F54342F20C1501F0061501F9E9CC
-:10A0A00013FCEDE813F643A943B80A5918580459AC
-:10A0B0001459435A145816585406436A4402F20677
-:10A0C0001501F0051501EDE913F6EBE813F543482A
-:10A0D00054255416435543C904591459105943D8AB
-:10A0E000F20215010C58E5E913F2437654320C588C
-:10A0F0000A58F00A1501F5E813FA544A890A442966
-:10A1000043864365437A43E8125843F90C5804598F
-:10A110000A584392F0061501EDE813F654568916D5
-:10A1200004591459F2051501EBE913F55465892515
-:10A13000444243AA4389F9E2200814581258F00215
-:10A140001501E5E813F25472439544090C5943B6DE
-:10A1500089320C590A59F20A1501F5E913FA548AA1
-:10A16000894A43C6446943A5441812580C580A58F2
-:10A17000F0061501EDE813F6549643BA4429045944
-:10A1800043D2895604591459F2051501EBE913F528
-:10A1900054A58965448243EA43C944380458145895
-:10A1A0001258F0021501E5E813F254B243D54449C0
-:10A1B0000C5943F689720C5944080A59446A045AE6
-:10A1C000105A0C5AF2061501EDE913F654C6447BF9
-:10A1D00089860C5BF4061501EDEA13F654E6441586
-:10A1E00044A243E9445889A60A5B045818581258F7
-:10A1F000F0051501EBE813F554D58995185BF602C7
-:10A200001501E5EB13F254F289B2444A4489449BA8
-:10A210000A590C5B4405442644A804581458F3E634
-:10A22000200A0C580A5A5028E0657999EA155A8292
-:10A23000504A410644325116441AEE050009F7E22D
-:10A2400020081458E062EBA1EA126ED95038507918
-:10A25000040E0C99506EE068BCDCEA188F1B0C9A57
-:10A26000100C2F8A505C512A1306511941087403AF
-:10A27000720C2F485138410A2F0A514A700A41483E
-:10A28000700941580A08F0090009EC081505F1E6C3
-:10A2900013B8F2080008F5E3200918691459F00909
-:10A2A000000740F80A08F00A0009F80B151EF7EC41
-:10A2B000122BF7E320080C680658F2080008EE0994
-:10A2C0001505F3E713B9EC0A151EF009000EF5E6C3
-:10A2D000122AFC091505F7EA2008F3EE13B9EFE896
-:10A2E000000816580A01EE0C151E0601F9E7122C9B
-:10A2F0001001F9EA200812011C68E209150514583A
-:10A30000F3E113B90A001600100040E812000A0831
-:10A31000F00A0009FC0B151EF7EE122BF7EC2008D3
-:10A3200002681858F2080008E0091505F3E013B9AF
-:10A33000F009000640D80A08F00C0009E20A151ED0
-:10A34000F5E1122AF5EB200800681658F20800081B
-:10A35000EC091505F3E613B9F009000E40C80A0828
-:10A36000F00B0009E00C151EF9E0122CF9EA2008A8
-:10A370000C681458F2080008FC091505F3EE13B92F
-:10A38000F009000340B80A08F00A0009EC0B151E9A
-:10A39000F7E6122BF7EC20081C681858F2080008A2
-:10A3A000E6091505F3E313B9F009000641680A0848
-:10A3B000F00C0009FC0A151EF5EE122AF5EB200838
-:10A3C00006681658F2080008EC091505F3E613B9FB
-:10A3D000F009000E40A90A091609E60C151EF9E35A
-:10A3E000122CF9EA20080C681458F2080008FC093D
-:10A3F0001505F3EE13B9F009000340980A08F00AB6
-:10A400000009EC0B151EF7E6122BF7EC20081C6870
-:10A410001858F2080008E6091505F3E313B9F00926
-:10A42000000640890A091809FC0A151EF5EE122AD1
-:10A43000F5EB200806681658F2080008EC09150527
-:10A44000F3E613B9F009000E68C80A08F00B00091A
-:10A45000E60C151EF9E3122CF9EA20080C681458D2
-:10A46000F2080008FC091505F3EE13B9F009000124
-:10A4700068D90A091409EC0B151EF7E6122BF7EC44
-:10A4800020081C681858F2080006E2091505F3E1D7
-:10A4900013B968E8EC0900030A08F00C0009FC0A8B
-:10A4A000151EF5EE122AF5EB200802681658F20880
-:10A4B0000008E6091505F3E313B9F009000E68F981
-:10A4C0000A091609E20C151EF9E1122CF9EA200816
-:10A4D00006681458F208000BFC091505F3EE13B9D1
-:10A4E0004178F60900000A08F00A0009E606151E80
-:10A4F000EDE31226EDEC20081C681858F208000A5B
-:10A50000E0091505F3E013B9F409000341890A09CC
-:10A510001809FC0A151EF5EE122AF5E62008006857
-:10A520000C58F208000CE6091505F3E313B941983D
-:10A53000F80900010A08F0060009E00B151EF7E013
-:10A54000122BF7EA200806681458F2080008E209FE
-:10A550001505F3E113B94077F009000E1407FC0963
-:10A560001505E60A151EF3EE13B9F5E3122AF5EB0D
-:10A57000200802681658EE080008F009000341A8F8
-:10A580000408F00B0009E20C151EF9E1122CF9EA9F
-:10A5900020081C58F2080008E6091505F3E313B972
-:10A5A000F009000541B904091409FC0B151EF7EE6A
-:10A5B000122BF7EC20080658F2080008EA091505E6
-:10A5C000F3E513B9F009000641C80408F00C0009CE
-:10A5D000E60A151EF5E3122AF5EB20080A58F208E0
-:10A5E0000008EC091505F3E613B9F009000E41D98E
-:10A5F00004091609EA0C151EF9E5122CF9EA2008DF
-:10A600000C58F2080008FC091505F3EE13B9F0091F
-:10A61000000541E80408F00A0009EC0B151EF7E6F6
-:10A62000122BF7EC20081C58F2080008EA0915055F
-:10A63000F3E513B9F009000641F904091809FC0A09
-:10A64000151EF5EE122AF5EB20080A58F20800084C
-:10A65000EC091505F3E613B9F009000E42080408E9
-:10A66000F00B0009EA0C151EF9E5122CF9EA200896
-:10A670000C58F2080008FC091505F3EE13B9F009AF
-:10A680000005421904091409EC0B151EF7E6122BFC
-:10A69000F7EC20081C58F2080008EA091505F3E554
-:10A6A00013B9F009000642280408F00C0009FC0A5E
-:10A6B000151EF5EE122AF5EB20080A58F2080008DC
-:10A6C000EC091505F3E613B9F009000E4239040947
-:10A6D0001609EA0C151EF9E5122CF9EA20080C58A7
-:10A6E000F2080008FC091505F3EE13B9F00900059E
-:10A6F00042480408F00A0009EC0B151EF7E6122B7D
-:10A70000F7EC20081C58F2080008EA091505F3E5E3
-:10A7100013B9F0090006425904091809FC0A151E6C
-:10A72000F5EE122AF5EB20080A58F2080008EC09A9
-:10A730001505F3E613B9F009000E42680408F00BA2
-:10A740000009EA0C151EF9E5122CF9EA20080C584C
-:10A75000F2080008FC091505F3EE13B9F00900032F
-:10A76000427904091409EC0B151EF7E6122BF7ECDD
-:10A7700020081C58F2080008E6091505F3E313B990
-:10A78000F0090005428904091809FC0A151EF5EEB6
-:10A79000122AF5EB20080658F2080008EA09150508
-:10A7A000F3E513B9F009000E429904091609E60C05
-:10A7B000151EF9E3122CF9EA20080A58F208000BDA
-:10A7C000FC091505F3EE13B9F609000042A90409C6
-:10A7D0001409EA06151EEDE51226EDEC20081C58BA
-:10A7E000F208000AE0091505F3E013B9F4090003C3
-:10A7F00042B9FC0A151E0409F5EE122A1809F5E6FD
-:10A80000200800584065F208000C1405E6091505FB
-:10A81000E00B151EF3E313B9F7E0122BF809000162
-:10A82000F7EA200AE2081505065AF1E113B842C911
-:10A8300004090C091409E60A151EF208000EF5E3D6
-:10A84000122AF5EB20080258EA080008E066BCDC92
-:10A85000EA168F1BFC091505F3EE13B9F009000089
-:10A8600042D80C08E20C151EF00B0002F9E1122C84
-:10A87000FDEC0008FDEC100914691049E00815050D
-:10A88000F1E013B8E4090009F208000242E80C08FC
-:10A89000FC0B151EF00A0005F7EE122BE1EB000889
-:10A8A000E1EB100918691049E4081505EA090009E7
-:10A8B000F1E213B8E00A151EF2080005F5E0122ACD
-:10A8C00042F9E5EA00080C09F20C0003E5EA100978
-:10A8D00016691049EA081505F1E513B8E6090009FB
-:10A8E000F208000343080C08E40C151EF00B0006E8
-:10A8F000F9E2122CEBEC0008EBEC1009146910499A
-:10A90000E6081505EC090009F1E313B8EA0B151E7A
-:10A91000F2080006F7E5122B4319E065BCDCEA15E6
-:10A920008F1BE7EB00080A09F20A000AE7EB10099F
-:10A9300018691049EC081505F1E613B8F409000987
-:10A94000F208000243280A08E60A151EF00C000C63
-:10A95000F5E3122AEDEA0008EDEA1009166910493C
-:10A96000E4081505F8090009F1E213B8EC0C151E0E
-:10A97000F208000EF9E6122C4339E5EC00080A094A
-:10A98000F20B000BE5EC100914691049FC081505E1
-:10A99000120BF1EE13B84349F6080005E40B151E3F
-:10A9A000F7E2122BE062BCDCEA128F1BFDEB000821
-:10A9B0000409F20A000AFDEB100918691049EA08B7
-:10A9C0001505F1E513B8F4090009F208000643582B
-:10A9D0000408FC0A151EF00C000CF5EE122AEBEA36
-:10A9E0000008EBEA100916691049EC081505F8098A
-:10A9F0000009F1E613B8EA0C151EF208000EF9E59D
-:10AA0000122C4369EDEC00080409F20B000BEDEC8D
-:10AA1000100914691049FC081505F1EE13B8F60980
-:10AA20000009F208000543780408EC0B151EF00A33
-:10AA3000000AF7E6122BFDEB0008FDEB1009186980
-:10AA40001049EA081505F4090009F1E513B8FC0AF4
-:10AA5000151EF2080006F5EE122A4389EBEA0008FB
-:10AA60000409F20C000CEBEA100916691049EC0815
-:10AA70001505F1E613B8F8090009F208000E43982D
-:10AA80000408EA0C151EF00B000BF9E5122CEDEC96
-:10AA90000008EDEC100914691049FC081505F609C9
-:10AAA0000009F1EE13B8EC0B151EF2080005F7E6ED
-:10AAB000122B43A9FDEB00080409F20A000AFDEB82
-:10AAC000100918691049EA081505F1E513B8F409E9
-:10AAD0000009F208000643B80408FC0A151EF00C31
-:10AAE000000CF5EE122AEBEA0008EBEA10091669F1
-:10AAF0001049EC081505F8090009F1E613B8EA0C4D
-:10AB0000151EF208000EF9E5122C43C9EDEC000801
-:10AB10000409F20B000BEDEC100914691049FC0854
-:10AB20001505F1EE13B8F6090009F208000343D841
-:10AB30000408EC0B151EF00A000AF7E6122BFDEBD9
-:10AB40000008FDEB100918691049F4090009E6082E
-:10AB50001505F1E313B8F208000543E90409FC0AFE
-:10AB6000151EF20C000CF5EE122AE7EA0008E7EADF
-:10AB7000100916691049F8090009EA081505F1E5F8
-:10AB800013B8F208000E43F90409E60C151EF20B87
-:10AB9000000BF9E3122CEBEC0008EBEC1009146944
-:10ABA00010494057FC0815051407F1EE13B8F609D3
-:10ABB000000AEA0B151EF7E5122BFDEB0009F4085D
-:10ABC0000003FDEB1008E60A15051868F5E313BA53
-:10ABD0001248EE080009F20A00054409E06AC1D6ED
-:10ABE000EA1ACA6214091809FC06151EEDEE1226AF
-:10ABF000EDEB20080658F2080008EA091505F3E510
-:10AC000013B9F009000A4419E068C1D6EA18CA620B
-:10AC100010091609E60C151EF9E3122CF9E62008B6
-:10AC20000A58F2080008F4091505F3EA13B9EA0B0B
-:10AC3000151EF0090003F7E5122B4429E065C1D683
-:10AC4000EA15CA620A090C09F7EC20081458F20840
-:10AC50000008E6091505F3E313B9F009000EFC0935
-:10AC60001505F3EE13B9F406151EEDEA1226443A63
-:10AC7000EDEB20080A0A0658180A100A120A44497D
-:10AC80000A091609E60C151EF9E3122CF9E620084C
-:10AC90001C58F2080008F4091505F3EA13B9FC057D
-:10ACA000151EF0090003EBEE1225E6091505EBEC85
-:10ACB0002008F3E313B91458E062C1D6EA12CA625D
-:10ACC000445B040B0C0BF406151E100BEDEA122668
-:10ACD000120BEDE52008F60915050658F3EB13B93C
-:10ACE000446A040A180A100A4478F409000E040899
-:10ACF000F0050009E60A151EF5E3122AF5E620081C
-:10AD00001658F2080008FC091505F3EE13B9F0090E
-:10AD10000005448904090C09F60C151EF9EB122CE8
-:10AD2000F9EA20081C58F2080008EA091505F3E5BD
-:10AD300013B9F009000344980408F00A0009FC0B59
-:10AD4000151EF7EE122BF7EC20080A58F20800083F
-:10AD5000E6091505F3E313B9F009000E44A9040947
-:10AD60001809EA06151EEDE51226EDEB2008065837
-:10AD7000F2080008FC091505F3EE13B9F009000507
-:10AD8000EA091505F3E513B944BAE60C151E040AE1
-:10AD9000F9E3122C160AF9E620081C58100A120AC8
-:10ADA00044C904090C09FC0B151EF7EE122BF7EC35
-:10ADB00020080A58F2080002F4091505F3EA13B94D
-:10ADC00044D8E409000EE069C1D6EA19CA62120843
-:10ADD000EA06151EF00C0009EDE51226EDEB200841
-:10ADE0001458F2080008FC091505F3EE13B9F00930
-:10ADF000000CE068C1D6EA18CA62F405151EF8090D
-:10AE00001505EBEA1225F3EC13B944EA100AEBE658
-:10AE10002008160A1C58100AFC02151EF40900012D
-:10AE2000E5EE1222E06AC1D6EA1ACA62E5E5200818
-:10AE3000E20915051858F3E113B944FB140B404A15
-:10AE40000C0BA17A100B44B8F609000E4049F5E945
-:10AE500013FA14584459F1E9200B4438E069C1D67B
-:10AE6000EA19CA6289CAF7E820074108F806151EE0
-:10AE7000120AEDEC1226700CEDE22008120C0258BA
-:10AE8000FC091505F3EE13B90A0AE203151E100AB0
-:10AE9000E7E11223120AE7E62008E069C1D6EA19C1
-:10AEA000CA621C5840354030A170E1E513F0E0095A
-:10AEB000000BF4091505040BF3EA13B9100B402835
-:10AEC0004021120BE065C1D6EA15CA62A171E3E820
-:10AED00013F1E2050008F0060009FC02151EE5EE7C
-:10AEE0001222E5E320081458F2080008F6091505B7
-:10AEF000F3EB13B9F406151EF009000EEDEA122665
-:10AF0000EE051501410AEBE713F5EDE220080A0C06
-:10AF10001658060CFC091505100CF3EE13B9120CAB
-:10AF2000950C411972081C089308F609151E412A50
-:10AF3000F3EB1229740812089508413870090C09BE
-:10AF4000910989D089E189F541466C080408089C7B
-:10AF50008D08340A300BF01F00042A0DD83200008F
-:10AF6000800091DC800091D0EBCD40F878581494AB
-:10AF7000A37AF40800099959123AF9F98006F9F907
-:10AF8000B006F7B90BFFF9F9BA06FDD8C066E808B4
-:10AF9000161DF2080008996818951693E80E000926
-:10AFA000E049003FE08B000F3006FCCCFFE4E606F2
-:10AFB000000BEA0C000CE806010AF01F0014E3CDB8
-:10AFC00080F8FC061140FCCCFFE40C9AEA0C000C63
-:10AFD000F01F000EEACBFFE40A9CF01F000DECC846
-:10AFE000FFC11034E088000FE60600070E9B0A9CA4
-:10AFF0002C07F01F00072C06ECC8FFC11034FE9B85
-:10B00000FFF7300ECD3B0000800091DC80029C54A5
-:10B01000D421202D16961895300B1A94583BF9B868
-:10B020000B14F9B80818F60911FFEC08030AF3D954
-:10B03000C002A379F4090A4AE80B0B0A2FFB588BCC
-:10B04000CEE1301A49EBC038301A49EB0C9CF01FA6
-:10B05000001E6C58E21801F8E04801C0CF61308A48
-:10B060001A9B0C9CF01F00183007EE081602EE0920
-:10B0700011FFEC08032AF3D9C002A379F4090A4AA4
-:10B08000EA070B0A2FF75947CF11300B340AECCCE3
-:10B09000FFE4F01F000E0E9A300B0C9CF01F000B0B
-:10B0A000ECCCFFEC308A300BF01F00081A9C308A81
-:10B0B000300BF01F00062FEDD82200008003DE5871
-:10B0C00080029C508002AF68800091D0EBCD40FCA4
-:10B0D000217DE0682301EA186745E06EAB89EA1E2E
-:10B0E000EFCD5008E068DCFEEA1898BA3007501E31
-:10B0F0005028E06E5476EA1E1032E068E1F0EA185B
-:10B10000C3D250675057503E504818931292580C73
-:10B11000C140149416951A962FF7090A0B0B1A9C26
-:10B12000F01F00070E33FE9BFFF91A9B049CF01FD3
-:10B1300000052E9DE3CD80FC1A96CF8B8002AF6870
-:10B140008002B010D431FACD008C501C500B1493F7
-:10B150001292109142C0585AE08B0056E04B0040CA
-:10B16000E08B0054FAC4FFF8340A300B089CF01F3F
-:10B17000002E400A401B089C0896F01F002CFAC5C0
-:10B18000FFB808970D88EC1800360CC80A36CFB106
-:10B190003408518451285803C110FACCFF9CFACBD3
-:10B1A000FFB4300AE60E1502E40A030818A8E20A02
-:10B1B000030916A92FCA1C3ACF81E6CCFFFF0099DC
-:10B1C0000A9AFAC3FFA0069BF01F0019340A300B3D
-:10B1D000089CF01F0015400A401B089CF01F00133C
-:10B1E0000F88EC18005C0EC80C37CFB1314C340816
-:10B1F000513C5184519000990A9A069B5128302C59
-:10B20000F01F000B2DDDD832FAC6FF881A9A0C9970
-:10B21000FACBFFFC301CF01F0006314850165008D6
-:10B22000CA2B0000800091D0800091DC8002B0CC5D
-:10B23000D401202D501A5009301A1AD8FAC9FFF833
-:10B24000FAC8FFFCF01F00032FFD2FEDD80200000D
-:10B250008002B144D43121AD5009502B501A1892BC
-:10B2600042395809C6D0504850593008FAC7FFAC87
-:10B270005038FAC3FFD4FAC0FFC0FAC4FFE8049CF8
-:10B28000F01F003140382FF850381AD34038518819
-:10B2900040285168FAC8FF98519830484046517884
-:10B2A000B986FB380013FAC9FFA0FB68006B189B36
-:10B2B0000E98FB66006840454046302A1891B185DB
-:10B2C000049CFB650069A986FB66006AF01F001FED
-:10B2D000314A069B009CF01F001E2FFD40085818A5
-:10B2E000E08A001C301608983149069A029B049C9B
-:10B2F000F01F0018314A089B069CF01F0015009AA9
-:10B30000089B17381589125814C80E3ACFB12FF67A
-:10B3100040080C38FE99FFE940560C985946F9B69A
-:10B320000B140C180C9A5058009B404CF01F00084E
-:10B3300040585808C05040480C085048CA1B2E6D51
-:10B34000D8320000800091B88002B144800091DCC6
-:10B350008002B230D43120EDFACEFFA4109530082F
-:10B3600018927C14149716911296FB680036FB68AD
-:10B3700000377C00149CF01F00275804C3003018CD
-:10B38000FAC9FFC9508850685097FAC8FFCA505C84
-:10B3900050B6507550A950C85934E0880023300782
-:10B3A000FAC3FFECFAC6FFDCC088FB680036E8078A
-:10B3B00001055935E088001CE00700080C991AD8EF
-:10B3C0002EC70698304A029B049CF01F00132FFDE5
-:10B3D000FB3800362FF80E34FE9BFFE92F2DD832B4
-:10B3E00008953007FAC3FFECFAC6FFDC0C99069803
-:10B3F0001A96049C1AD6029B304AF01F00070A9A3C
-:10B400000C9BE007000CF01F00052FFD2F2DD832FC
-:10B41000800091B88002B144800091DC00000000FF
-:10B4200000000000EBCD4080129E1097584CC26087
-:10B43000E08A0013588CC140590CC101590B5F18A8
-:10B4400058FA5FA91248C0A130689D083039300C05
-:10B450008F09E3CD8080582CC1E0E3CFC080E04B62
-:10B4600000205F1859FA5FA91248CF8130689D0803
-:10B470003029300C8F09E3CD808058DB5F1858CA23
-:10B480005FA91248CEB130099D093018129C8F086F
-:10B49000E3CD8080585B5F18584A5FA91248CF40BF
-:10B4A000E3CFC080580C5E0CF8F8010C5808F9B8CE
-:10B4B0000100F9F81A435EFC580CF9FB1A4C5EFCCB
-:10B4C000580CF9FA1A51F9FB1A505EFC580CF9FBAA
-:10B4D0001A415EFC580CC080586BE08800035EFD8A
-:10B4E0004928F00B032F5EFEF94A016C5EFDF94A14
-:10B4F00001685EFDF94A01645EFDF94A01605EFD86
-:10B50000580ACF20F94A01585EFDF4C80001E0480E
-:10B510000063FE9BFFEAF94A01545EFD580ACE40E3
-:10B52000F94A01505EFD00008003DE5CEBCD40E097
-:10B53000189716951496580CC130F8FC0180F01F2E
-:10B54000001158055F0858065F091248C0B030085E
-:10B55000EF480188EF480180109CE3CD80E0E3CF05
-:10B56000C0E00C9CF01F0008EF4C0180CF900A9BBC
-:10B570000C9AF01F0006300CEF460188E3CD80E006
-:10B58000800091E880009200800091DCEBCD40E0EB
-:10B59000189716951496580CC130F8FC017CF01FD2
-:10B5A000001158055F0858065F091248C0B03008FE
-:10B5B000EF480184EF48017C109CE3CD80E0E3CFAD
-:10B5C000C0E00C9CF01F0008EF4C017CCF900A9B60
-:10B5D0000C9AF01F0006300CEF460184E3CD80E0AA
-:10B5E000800091E880009200800091DCEBCD40E08B
-:10B5F000189716951496580CC130F8FC0174F01F7A
-:10B60000001158055F0858065F091248C0B030089D
-:10B61000EF480178EF480174109CE3CD80E0E3CF60
-:10B62000C0E00C9CF01F0008EF4C0174CF900A9B07
-:10B630000C9AF01F0006300CEF460178E3CD80E055
-:10B64000800091E880009200800091DCEBCD40FE0C
-:10B65000189716961493580CC031E3CFC0FE7409A6
-:10B66000F8F801605828C5E0F8F1016CF8F50168B8
-:10B67000F8F201645979FE98FFF23DD8304AB68855
-:10B68000ECCCFFFEFEFB0238F01F008E30083019B4
-:10B69000ACF8ACE9ECC4FFF85905E08000A158858E
-:10B6A000E08000AA5845E08100BC0A9AFEFB02181F
-:10B6B000089CF01F00843018A8C8E8C9FFFB3008B8
-:10B6C000B288E8C5FFFA5902E08000905882E08114
-:10B6D000009F304A4FDB0A9CF01F007A3018AAC83E
-:10B6E000EAC9FFFB3008B2882FA55811E080008A14
-:10B6F0005821E08100A5304A4F5B0A9CF01F007181
-:10B70000EAC9FFFCEC0811FE1208AC98F206010C25
-:10B71000CA56870CEEF501745805E08000C1E3CFEE
-:10B7200080FEF8F8010CF8F2016C5808F9B801280D
-:10B73000F9B80016F8FA0168F8F401641039C8E3A2
-:10B7400033083009B688B6B93018B6A8F6C5FFFC7C
-:10B75000590AC6F0588AE0800082584AE081009772
-:10B760004DCB0A9CF01F00573018AAC8EAC9FFFB4E
-:10B770003008B2882FA55904C6B05884E081007EF5
-:10B78000304A4D5B0A9CF01F004F3018AAC8EAC926
-:10B79000FFFB3008B2882FA55812C661304A4CFB17
-:10B7A0000A9CF01F0048EAC8FFFC300AB08AB09A31
-:10B7B000EAC9FFFAEEF8010C5808CA503018B288EE
-:10B7C000EAC9FFF9EACCFFF8B28A310AEEFB010CB4
-:10B7D0002FCBF01F003CEAC9FFE8C95B304A4C0B95
-:10B7E000089CF01F0038C68B304A4BDB0A9CF01FC8
-:10B7F0000035C75B304A4B5B089CF01F0032C5CB5D
-:10B80000304A4B8B0A9CF01F002FC7BB5812FE9189
-:10B81000FF26304A4B4B0A9CF01F002AC60B5825C6
-:10B82000FE91FF1D304A4B1B089CF01F0026C44BA5
-:10B83000304A4AFB0A9CF01F0023C97B5901FE9144
-:10B84000FF0E304A4ABB0A9CF01F001EC5AB304AAF
-:10B850004A7B0A9CF01F001BC99B304A49EB0A9C9B
-:10B86000F01F0018C82B5822FE91FEF9304A4A2BCF
-:10B870000A9CF01F0014C98B5814FE91FEF0304A48
-:10B8800049EB0A9CF01F000FC81B582AFE91FEE7E7
-:10B89000304A49BB0A9CF01F000BC67BF01F001901
-:10B8A000EF4C0174FE90FEDB0C9B660AF01F000556
-:10B8B00066080A9CEF480178E3CD80FE8003DE989D
-:10B8C000800091DC8003DEA08003DE8C8003DE7CC0
-:10B8D0008003DE888003DE808003E1EC8003E1E406
-:10B8E0008003DE9C8003DEA48003DE948003DEB44C
-:10B8F0008003DEB08003E1E88003DEA88003DE84FD
-:10B9000080009200D401580CC060F8CCFEC8306AA8
-:10B91000F01F0002D8020000800091DCD4011898CA
-:10B92000580CC040918AF01F0002D802800091DCC0
-:10B93000EBCD40F8208D189416971493F6C6FFF0BF
-:10B94000F8F501685885C2E0E8F801645818C1604C
-:10B950006EC8E8F901286E0B1AD81AD66E2849CAA3
-:10B960001AD81AD3720C72666E186E395D162FCD06
-:10B97000580CC1552F8DE3CF80F86EC9E8FA012825
-:10B980006E0B1AD91AD66E291AD91AD3740C74668A
-:10B990006E3948FA5D162FCD580CCED42F8DE3CFDB
-:10B9A000C0F80C9B310A1A9CF01F000A0A9AEECBD1
-:10B9B000FFD8FACCFFF0F01F00070A9AEECBFFE0A9
-:10B9C000FACCFFE81A96F01F0003CBFB80039C38EB
-:10B9D000800091DCD401580CC070F94B0134F8FCA4
-:10B9E0000108F01F0002D80280028F64D401580CB5
-:10B9F000C110F8F8010C5808C08070DAF0CBFFECE9
-:10BA0000998AF01F0005D802320A109B998AF01F0C
-:10BA10000003D802800091DC800091D0EBCD408003
-:10BA20001897F01F000AEEF801287029700C5D19B4
-:10BA3000585CEFF80057F9B90001F1D9E008EFF8C8
-:10BA40000A57E3CD8080000080029438EBCD40C0DF
-:10BA500018971696580CC190306AF8CCFEB8F01FB3
-:10BA6000000F308A300BEECCFF10F01F000D3008B5
-:10BA700030190C9BEF4800F8EF4900EC306AEECC2F
-:10BA8000FEE4F01F0008C030E3CD80C00E9CF01F24
-:10BA90000006E3CD80C00000800091DC800091D0E2
-:10BAA0008000917C80029438EBCD40C016971496AC
-:10BAB000F6F8010C1838C0D0768A78D8103AC03021
-:10BAC000E3CD80C0F8CBFFEC0E9CF01F000ECF91B1
-:10BAD0003008EF48010C5806CF41320A0C9B0E9CEF
-:10BAE000F01F0009EEF90128301B720C72485D1836
-:10BAF000EEF801280C9A700C70390C9B5D19CE1B66
-:10BB00008000917C800091D0D431189716941493C2
-:10BB1000300B324A069CEE040005F01F0052EEC6C0
-:10BB2000FFFF0C35E0880034E8C800013DD2EE0884
-:10BB30000004C0D8E4091800C2B01499F2C8FFFE8E
-:10BB40001007EEC6FFFF0C35E08800220F89E409DC
-:10BB50001800C4B10837C1B00D8A580AC180F4C8B2
-:10BB6000FFFEEE0800081035C4733308F009180012
-:10BB7000CE2187270D882FE887380D89F2C8FFFE70
-:10BB80001007EEC6FFFF0C35FE9BFFE2D83A580ABD
-:10BB9000CFE03058F00A1800E08B003FEEC8FFFB02
-:10BBA0001035E08B002B14993061E2091800FE98E3
-:10BBB000FFC7EEC0FFFE304A4ABB009CF01F002BBF
-:10BBC000C3900D89E2091800FE98FFBA009C304A24
-:10BBD0004A7BF01F0026C071EEC9FFFA87790D88F5
-:10BBE000204887880D89CABB0D8AF4C8FFFEEE087D
-:10BBF00000081035CBB2DC3A14993138F00A18003D
-:10BC0000FE98FFD4304A49BBEECCFFFEF01F001770
-:10BC1000C1900D89CCAB304A497BEECCFFFEF01FC2
-:10BC20000013C0610FE93018F0091800C1000D8A37
-:10BC3000CB6BEEC9FFFA87590D88204887680D89BC
-:10BC4000C7EBEEC8FFFA87480D89C79B0FF8F808C5
-:10BC50001800CEE187070D882FE887180D89C6FBED
-:10BC6000800091D08003DE788000917C8003DEAC80
-:10BC70008003DE908003DE98EBCD4080304A189739
-:10BC8000496BF01F0017C031E3CF9080304A495B09
-:10BC90000E9CF01F0013C041302CE3CD8080304A51
-:10BCA000491B0E9CF01F000EC041308CE3CD8080FC
-:10BCB000304A48EB0E9CF01F000AC041310CE3CD26
-:10BCC00080800E9C304A48ABF01F0005F9BC000490
-:10BCD000F9BC0100E3CD80808003DEA88000917C68
-:10BCE0008003DE848003DE808003DEB48003DE8890
-:10BCF000EBCD4080304A1897496BF01F0017C031D8
-:10BD0000E3CF9080304A495B0E9CF01F0013C04186
-:10BD1000302CE3CD8080304A491B0E9CF01F000E72
-:10BD2000C041308CE3CD8080304A48EB0E9CF01F40
-:10BD3000000AC041310CE3CD80800E9C304A48ABF4
-:10BD4000F01F0005F9BC0004F9BC0100E3CD8080C0
-:10BD50008003DEA48000917C8003DE948003DE8C6F
-:10BD60008003E1E48003DEA0EBCD40FC189416963E
-:10BD70001497580BC160198B3308F00B1800C1D011
-:10BD80003008301595789548956895589505308810
-:10BD90009535952895185876E08B009BE3CFC0FC2D
-:10BDA000301830898F7B8F4B8F6B8F5B9538950860
-:10BDB00095299519E3CFC0FC300531099545956566
-:10BDC000955595759529951930289508301A8F3A0B
-:10BDD0005836FE98FFE51988F6081800CE01199923
-:10BDE000ECC800021039CDB119B919A8F1E91088D1
-:10BDF000F4081900CD4120465836E08A01112FC4BD
-:10BE0000089CF01F008A8F2C20465816E08A010BF0
-:10BE10008F15E8CCFFFC19991988F1E91082CBF055
-:10BE2000ECC30002E40815021033CB95F8C4FFFE02
-:10BE300030056E16089CF01F007D0C4C8F1C2FC423
-:10BE400020432FF50A32FE99FFF65813E08A00E5E9
-:10BE5000300A8F3A09990988F1E91082CA00202333
-:10BE6000E40815021033C9B5E8C6FFFE14956E3418
-:10BE7000304A4EFB0C9CF01F006FE08100C430186C
-:10BE800008488F382FC620432FF50A32FE99FFF15C
-:10BE90005813E08A00940D990D88F1E910888F48B5
-:10BEA000E6CB0002581BE08A008AECCCFFFE199812
-:10BEB0001989F3E810898F59F6C80002A56912386C
-:10BEC000C7F5F8C8FFFE300C8F68E3CD80FC1989F8
-:10BED0003DD8F0091800FE91FF631999ECC80002E3
-:10BEE0001039FE91FF5D304A4D3B2FECF01F0051A1
-:10BEF0001893FE91FF5509F909E8F1E91088EA085D
-:10BF00001900FE91FF4DECCA0008583AE08A005E25
-:10BF1000E8CCFFF8F01F00498F2CECCA000C0A3A5D
-:10BF2000E08A00578F13E8CCFFF419991988F1E9DA
-:10BF30001082FE90FF35F4C30002E40815021033AE
-:10BF4000FE95FF2EF8C4FFFE30056E16089CF01F0C
-:10BF5000003B0C4C8F1C2FC420432FF50A32FE9956
-:10BF6000FFF65813E08A0042300A8F3A099909888F
-:10BF7000F1E91082FE90FF142023E408150210332B
-:10BF8000FE95FF0EE8C6FFFE14956E340C9C304AF9
-:10BF90004ABBF01F0028C211301808488F382FC63E
-:10BFA00020432FF50A32FE99FFF25813E08A00145D
-:10BFB0000D880D99F1E910888F48E3CF80FC300897
-:10BFC0008F58109CE3CD80FC580AFE99FEE9581A60
-:10BFD000FE90FEE6E3CF80FC304A49AB0C9CF01F9C
-:10BFE0000015C0613028CDAB5813CF51CD8A0C9CC1
-:10BFF000304A495BF01F000FF9B80010F9B8010092
-:10C00000CCDB0C9C304A491BF01F000AF9B8000237
-:10C01000F9B80100C36B5813CD11CC1A5806FE991C
-:10C02000FEBF5816CCB1CBBA8002BC788003E1ECDD
-:10C030008000917C8003DE988002BCF08003DE9C4F
-:10C040008003DE7C8003DEB08003E1E8D401580C7D
-:10C05000C021DC0AF8F801745808CFC0169AF8FB22
-:10C060000178109CF01F0004F9BC01FEF9BC00002F
-:10C07000D80200008002BD68EBCD40801897580CB4
-:10C08000C1D0F8FC0108F01F000F300A0E9B48ECED
-:10C09000F01F000EEEFC0174F01F000DEEFC017CA1
-:10C0A000F01F000BEEFC0180F01F0009EEFC0128E0
-:10C0B000F01F00070E9CF01F0006E3CD80800000FB
-:10C0C000800290A88002C0D080027400800091E8B5
-:10C0D000D401F01F0002D8028002963CEBCD40C094
-:10C0E0001896E06C018CF01F00131897C19030185F
-:10C0F000E069A8C0F94800ECF9490150346833C937
-:10C10000F9480154F9460128F9490158189A189B31
-:10C11000489CF01F000AEF4C01081898C0400E9C84
-:10C12000E3CD80C00E9C1097F01F0005CF9B000050
-:10C1300080028F248002BAA880028F8C800091E850
-:10C14000EBCD4060149E1DD81896158CECF5012897
-:10C150001AD81DC91AD91DB81AD81DA91AD91D98DF
-:10C1600048CA1AD81ADC1ADB303B6A0CF01F000AE6
-:10C17000ECF90128311B720C72585D18ECF901289A
-:10C18000300A720C7238149B5D182F9DE3CD8060CD
-:10C190008003DF4880023A1AEBCD40C0205D109743
-:10C1A000581BC130582BC0402FBDE3CD80C0310B90
-:10C1B0001A98F01F00091A961A9B0E9C310AF01F5C
-:10C1C00000072FBDE3CD80C0310BF01F00052FBD50
-:10C1D000E3CD80C08002B230800091DC80028EF816
-:10C1E000D431201DFACEFFD81894500B149012961B
-:10C1F00010917C237C077C12306A49AB129CF01FA3
-:10C20000001AC1D05803C0800698009B400C0499C6
-:10C210000E9AF01F00160C9BE8F501280498F5D142
-:10C22000C0100E996A0C6AA65D16E8FC0104F01FA6
-:10C2300000100E9CF01F000F2FFDD832E8C5FEB88D
-:10C24000306A488B0A9CF01F0008CDD1E8F801281D
-:10C250000A9B700C70995D19EA061740CD4B0000DF
-:10C260008002B41C8000917C8002C19880025582BB
-:10C27000800091E8EBCD40E0189716961495F8F8F9
-:10C2800001685848E0800081E08A00495888C780EA
-:10C290005908C4F04C19EEF801645848C480584855
-:10C2A000E089004A5818C6605828C6604BB81AD9A9
-:10C2B0001AD8EEFA01280DD81AD80DC91AD90DB816
-:10C2C0001AD80DA91AD90D981AD80D89302B1AD958
-:10C2D000740C4B3AF01F0033EEF801282F8D700BD1
-:10C2E000707C300AF01F0030EEF90128720C72C821
-:10C2F0005D18EEF90128307B720C72185D18580534
-:10C30000C201EEFC010C580CC07079485808F9B80D
-:10C310000100F9F81A14E3CD80E05818C33058280A
-:10C32000CBA14A29EEF801645848CBA14A08CC0BAE
-:10C330004A09CB2B5888C2205908CB9149D8CB8BBE
-:10C34000EEF801280C9B700C71263019303A5D16FE
-:10C35000301BEEFC0104F01F0018EEF8016C5828A9
-:10C36000C15030080E99495A109B301CF01F001420
-:10C37000CC9B4948C9DB48D8C9BB4938C99B492926
-:10C38000C8BB4909C89B48A9C87B301BEEFC010407
-:10C39000F01F000ECE7B00008003C6288003DF74F0
-:10C3A00080023A1A800274008003DF088003DF10E5
-:10C3B00080039A74800261D48002C0D080027474B9
-:10C3C0008003C8E480039A6C800261A4D431FACD62
-:10C3D00000DC1897169314951296E0490062E08BE2
-:10C3E000000630060C9C2C9DD832129CF01F034492
-:10C3F0001892E08000D60C9A0A9BF01F034205A910
-:10C4000005B8F1E910880599F5D8B0103038F00971
-:10C410001800C0603006049CF01F033BCE4BECC8F4
-:10C420000004EBDAC01030090A385F3AE045005EDC
-:10C430005F88F5E8100CF20C1800CED13FE8E4C19B
-:10C44000FFFC038AF00A18005F1B3028F00A18006E
-:10C450005F19F7E90004F8041800CDD1EEFC0104DF
-:10C46000F01F032A039903A8F1E91088EDD8B01052
-:10C47000FDD6C003506E1C9930182019F009190020
-:10C48000E08800043FF6CC8BEEF8016459085F0A9F
-:10C490003028F00E19005F19126AE80A1800C080EF
-:10C4A000EEF801685908CEF0EDB60003CEC0EEF804
-:10C4B00000F85808E08100ABE1D6C0100098E218FF
-:10C4C0002080CE10009AE21A0800502ACDC12FC554
-:10C4D00000995055E21901005039C641405AE339DC
-:10C4E000005DE338005E263AF1E91088F7D8B01015
-:10C4F000E9DBC010083AE0830598EEF9016058299D
-:10C50000E0800550EDB00003E0810333E21000301D
-:10C51000CBA140395809E08001CAEEF90128305B0F
-:10C52000720C72185D18039903A8F1E91088E339B9
-:10C53000005DEBD8B010E33B005EFACAFF50F7E9AC
-:10C54000108BE2CCFFA1F01F02F243185808C04044
-:10C55000EDB5000CC231EEC3FEB8EEF60134EEF8D4
-:10C56000017C5808E08004E742C95809E08004C80B
-:10C57000EEFB017C580BC79042DAEEF80184103ACA
-:10C58000C70042FE42EC1ADE14981ADC069A0E9C92
-:10C59000FEFB0B80F01F02E02FED3016C3DB3FF6F1
-:10C5A000C22BE2C6FFB3FAC4FF84310A0C9B089C7D
-:10C5B000F01F02D440685C785048EEF800A8580894
-:10C5C000C301EEF800A45808FE90FF5E310A300B5C
-:10C5D0000C9CF01F02D2049A404BEECCFFDC0C986E
-:10C5E0004059F01F02CF0C9B089C310AF01F02CD6E
-:10C5F000FE91FF4A308AE2CBFFFBEECCFF10F01F2A
-:10C6000002C13018EF4800F8C6AB308AEECBFF10FD
-:10C61000E2CCFFFBF01F02C3FE99FF503FF6CFCAEA
-:10C62000402B310A0C9CF01F02BD049A404B0C9821
-:10C630004059EEC5FF9C0A9CF01F02B9310A0C9BC1
-:10C64000089CF01F02B8CBE13018EF4C00A80A9B01
-:10C65000EF4800A4340AEECCFFDCF01F02AACCBBEA
-:10C66000129CF01F02B0C10142EC580CC160EEFBFD
-:10C670000180580BC12042FEEEF80188103EC090A8
-:10C6800042C942DAC81B42FE42C942EC42DAC7CB79
-:10C690001C9AF01F02A4CF81EEF801605818E080C8
-:10C6A00000E6320AE2CBFFF3EECCFF34F01F029D2E
-:10C6B000FE91FF7503B903C8F1E91088F3D8B010F3
-:10C6C000EEF801645888E08000CC5908E08000CA88
-:10C6D000EEF80128FAC9FF2C1AD970D6700C35F97A
-:10C6E000FAC8FF24300A303B5D162FFD1896580C0F
-:10C6F000FE90FF55EEF80160E06900FE5828F20850
-:10C700001710435AB48840680A99E2190200F1E907
-:10C7100010094358E8190108F20B1608B09B435A58
-:10C72000B4A9EEF801605828E0810093300843591D
-:10C73000B2B8435AB4C8435C308AE2CBFFFB2FBC8B
-:10C74000F01F02704358300AF16A005D4359F36AE2
-:10C75000005E4358406A2B381AD84379E068888EC7
-:10C760001AD9EECBFFDC1AD606990E9CF01F026E8A
-:10C770003018EF4800EC5C752FDDEDB50006C0F118
-:10C78000FEFA09A8F4E80000FAE9007CEEF801647A
-:10C790005888E08003F65908E08003D90A90E21037
-:10C7A0000200C0E0EEFA01283019740C069B7528CF
-:10C7B000129A5D18301BEEFC0104F01F025DEEF8CA
-:10C7C0000128306B700C70195D1943165806FE90E5
-:10C7D000FEE64328FAC4FF84F0C50002334A300B5A
-:10C7E000089CF01F024EE0450020FE9BFED80D88FD
-:10C7F000F1D8C00252280D89F3D9C041C050EEF8DB
-:10C80000016458185F095209ECCBFFFE0A9AFACC72
-:10C81000FF74F01F023C0A9A52B50898FAC9FF7CCF
-:10C820000A9BEEFC0168F01F0243FE91FEB8E2CACB
-:10C83000FFC3089B0E9CF01F0240FE91FEB0009AC1
-:10C84000069B0E9C3016F01F023DFE9FFDE6435CEA
-:10C85000302AE2CBFFFD2FDCF01F022AC6DB3208B4
-:10C86000F0091900FE91FE9BC34B42EB580BFE9062
-:10C87000FF1A58065F1AEEF9018058095F0814681C
-:10C88000FE90FF116D68EDB80001FE91FF0C42F8BB
-:10C89000069A1AD80E9C1ADBFEFB08A442F842E95D
-:10C8A000F01F021D2FEDFE9FFE7AEEF90128720C9B
-:10C8B00072885D18FE90FE73EEF80128305B700CF4
-:10C8C00070195D19403BFAC6FF50324A0C9CF01FAC
-:10C8D0000213EEF801605828C0C1E338005DE33B65
-:10C8E000005E0C9AF7E8108BE2CCFFA1F01F020863
-:10C8F00043065806C0E0EEFC010C580CE08003D162
-:10C90000F8CBFFFC310A0C9CF01F0206E08003C04C
-:10C910003005EEF8016C5818E08000D45805C0606E
-:10C92000EEFB016C581BE080029BEEF800EC58080F
-:10C93000E08102B5EEC8FF545008EECAFEB8EEC959
-:10C94000FF9CE2C8FFF3508AEEC6FEC850A950987B
-:10C95000306A6E85408B0C9CF01F01F2E08500FB75
-:10C96000306A408BFAC0FFD0009CF01F01E60C9BA0
-:10C97000306AFACCFFCAF01F01E3320A409B400C38
-:10C98000F01F01E8E08500D0320A409BFACCFFC4DA
-:10C99000F01F01DC320A400BFACCFFA4F01F01D9D2
-:10C9A000340E1ADE40BE00991ADE34C80A9BFEFA25
-:10C9B00007920E9CF01F01E4EEC5FF6CFAC3FF7CEA
-:10C9C0000A9B308A069CF01F01CF0A9CEEC6FF64CA
-:10C9D000308A0C9BF01F01CB069B0C9C308AF01F09
-:10C9E00001C93018EF4800A82FEDEEF50178EEF000
-:10C9F00001745800FE90FDD3EEFA0128FAC8FF2812
-:10CA0000E9D5B0101AD8E8C9FFA1740C74D6FAC8D9
-:10CA1000FF285C79300A303B5D162FFD1893580CC7
-:10CA2000FE90FDBDEEF80160E06900FE5828F208B6
-:10CA30001710436AB48843683019B0994066436858
-:10CA40005C760C9AA3BAB0AAEEF901605829C631F7
-:10CA500030084369B2B8436AB4C8436CE2CBFFFB09
-:10CA6000308A2FBCF01F01A74368F3D4C108F169D5
-:10CA7000005D43680A9AF165005E009B436C2A1CC6
-:10CA8000F01F01A0400B436C320A2F3CF01F019DA8
-:10CA9000408940AB43682B381AD8436C0C9A1ADC97
-:10CAA000E068888E1AD30E9CF01F019F40CBEECC1D
-:10CAB000FF34320A3016F01F01932FDDFE9FFCADCC
-:10CAC000EEFC0104580CFE90FF2B320A0E9BF01F67
-:10CAD000019FC361320A8F8AEEF8013406991AD891
-:10CAE0000E9BEEC8FEC8EEFC0108F01F0199580627
-:10CAF0005F1AEEF9010C2FFD58095F081468FE90CB
-:10CB0000FF0F0C9A069BEEFC0108F01F0192FE91AC
-:10CB1000FF0EC05B436C302AE2CBFFFD2FDCF01F21
-:10CB20000179C9CB400B320AFACCFFC4F01F017562
-:10CB3000320A409BFACCFFA4F01F0172C32B310ACA
-:10CB40000E9BEEFC0104F01F0181E08101B4310A6B
-:10CB5000CC3B0C9BFAC0FFD0306A009CF01F0169EF
-:10CB6000306A408BFACCFFCAF01F0166C07B009B85
-:10CB7000E21B2000FE91FD13403A580AFE90FD0F83
-:10CB8000334AFAC0FFD0009CF01F0164EEF901287F
-:10CB90007228720C5D1850BC039903A8F1E9108843
-:10CBA000E339005DE7D8B010E338005EF1E91088A2
-:10CBB000EEF90160F7D8B0105829E080011303B9ED
-:10CBC00003C8F1E910895189EBDBC0100A34E08316
-:10CBD00000CB3028406EF00E1900E08001D80A9694
-:10CBE000129B0098FAC9FFC80C9AEEFC0168F01F6E
-:10CBF0000151E08100B9F5D3C010F1DAC082501ABA
-:10CC000050F830194068F2081900E08000C7302859
-:10CC1000406EF00E1900E08000A4401AF1DAC0C1A5
-:10CC2000C050EEF8016458185F0850D8EEF801289B
-:10CC3000306B700C70195D19009BE2CAFFC30E9C2B
-:10CC4000F01F013D1895FE91FCAAEEF80128FAC9E3
-:10CC5000FF2C0A9A1AD9303B700C70D635F9FAC8F5
-:10CC6000FF245D162FFD1894580CFE90FC98EEF8EA
-:10CC70000160E06900FE5828F20817104066435A28
-:10CC80005C76B488E21300304358E8130300E7E60B
-:10CC9000100CF80B1608B09B4359B2ACEEF80160CB
-:10CCA0005828E08102234358B0B54359B2C5435CCC
-:10CCB000E2CBFFFB308A2FBCF01F01124358300A31
-:10CCC000F16A005D4359F36A005E43582B381AD865
-:10CCD00043790C9A1AD9EEC6FEB81AD40C99E068BA
-:10CCE000888EEECBFFDC0E9CF01F010F2FDD40B9CC
-:10CCF0005879E08101F1EEF801685848E08001E6DA
-:10CD0000E08901DC5818E080014B5828E08001469A
-:10CD1000FEF804441AD8EEFA0128EF38014D1AD86B
-:10CD2000EF39014C1AD9EF38014B1AD8EF39014AC3
-:10CD30001AD9EF3801491AD8EF390148302B1AD9DE
-:10CD4000740CFEFA0416F01F0106EEF80128307B81
-:10CD5000700C701930165D192F9DFE9FFB5EF1D58A
-:10CD6000C003C0A0EEF80128306B700C70193016AB
-:10CD70005D19FE9FFB52E0460020FE9BFFF5EC0B89
-:10CD80001603FAC9FFC0E2CAFFA1EECCFFCCF01F28
-:10CD900000F5FE90FF44CE7B310AE2CBFFD3FAC40C
-:10CDA000FF84089CF01F00D7310AEECBFFCCFACCF1
-:10CDB000FF74F01F00D4E0450020FE9BFFD5FAC6AB
-:10CDC000FFC00A9AE2CBFFA10C9CF01F00CE0A988C
-:10CDD0000C99089CE06A0100320BF01F00E3C1EBE4
-:10CDE0005C7BFACAFF50E2CCFFA1F01F00C94318D8
-:10CDF0005808CB90F3D3C0105019EDB9000CCB31CB
-:10CE000043282028FAC9FFC8109A5188149B00981B
-:10CE1000EEFC0168F01F00C7CA61431B1788F1D8F8
-:10CE2000C00250F81789F3D9C041C050EEF8016430
-:10CE300058185F0950D94328F0CA0002E04A002080
-:10CE4000FE9BFF922FEBFACCFFC0F01F00AEEEF975
-:10CE50000128306B720C72185D18CEFAEEF80128BA
-:10CE600030091AD9129A700C70D6FAC8FF285D16CC
-:10CE70002FFD1893580CFE90FB92EEF5012818999F
-:10CE8000EECBFEB84358E06A888E6A0C6AA65D163F
-:10CE9000069CF01F009DFE9FFB82EECEFF54320BDE
-:10CEA000500E1C9CF01F00B1C1F1EF4C00ECFE9F36
-:10CEB000FD46EEF80128FEFA02B6700C303BF01F7A
-:10CEC00000A8EEF80128FEFA02AA700C303BF01F11
-:10CED00000A4EEF8010C5808FE90FB613008EF4802
-:10CEE000010CFE9FFD1FEEF80128FEFA028A700C6D
-:10CEF000303B3016F01F009AFE9FFA8F42EC580C20
-:10CF0000FE91FBB7EEF8017C5808C061EEF8018095
-:10CF10005808FE90FBC342F830091AD8069A1AD96D
-:10CF20000E9C42F8FEFB0254F01F007B2FEDFE9F8B
-:10CF3000FB36EEF801805808FE91FB18EEF9012847
-:10CF4000720C72B85D18FE9FFB111099303BEEF821
-:10CF500001605828C180E2CCFFC31AD9EEC8FFBCDB
-:10CF6000EEFA012830691AD830181AD930091ADCBB
-:10CF7000740C7466069A5D162FCDFE9FFC11302B43
-:10CF80003209CE6BFACCFF84CE9B5875FE98FEEC2E
-:10CF9000EAC60008FE9FFE264F98CBDA4F98CBBA20
-:10CFA000EDB0000CFE91FAB0EEF800A45808FE9027
-:10CFB000FA6B3018406EF00E1900C490406AF20A05
-:10CFC0001900FE91FAA1F1D4C003FE91FA5DF6C8F2
-:10CFD00000085C88109550785C750A9CF01F00482A
-:10CFE0001896FE90FA51E2C4FFA11899089AEA0B2C
-:10CFF0001603EECCFFCCF01F005BC2310A9A0C9BEB
-:10D00000089CF01F00400C9CF01F003F4078EA098C
-:10D0100016085C58E369005DE368005E5C59F1E95D
-:10D020001084FE9FFA711ADA1AD4EEF801284D6ABC
-:10D03000700C302B3FF6F01F004A2FEDFE9FF9EDEC
-:10D040000C9C3FF6F01F0030FE9FF9E7FAC6FF8404
-:10D05000310AE2CBFFD30C9CF01F002A310AEECB41
-:10D06000FFCCFACCFF74F01F00270898E2C9FFA19B
-:10D070000C9CE06A0100320BF01F003BE339005DBD
-:10D08000E338005EF1E91084FE9FFA3E0E9CF01F2B
-:10D09000003FEEFC0104F01F003EFE9FFC480C9A8E
-:10D0A000069BEEFC0108F01F002BEF4C010CFE91DB
-:10D0B000FC293015FE9FFC2F5888C0A05908FE910E
-:10D0C000FE294B48FE9FFE284B38FE9FFE254B381D
-:10D0D000FE9FFE22401A0C9BE21A02000E9C3016A4
-:10D0E000F01F0016FE9FF999435C302AE2CBFFFD4A
-:10D0F0002FDCF01F0004FE9FFDDC0000800092008A
-:10D10000800091DC800091E88002575C8002BB08BF
-:10D110008003E0488002C140800091D08002C19825
-:10D120008000917C8002C1E08003E1DC800261D458
-:10D130008002B4248002B9308002C2748003E0848B
-:10D140008003E1788002B354800257CC8002914C76
-:10D1500080028FB08003C6288003E19080023A1AD3
-:10D160008002D8A080029B4080028F488003E0F0BC
-:10D170008003E1308003E14C8003E0048003DF089A
-:10D180008003C8E48003DFC88002B9EC80025770D6
-:10D1900080039A748003DF1080039A6CD431204D91
-:10D1A0001894F8F80128E8F9016416955909F9B3BB
-:10D1B0000002F9B301011492700C1A9070991A9B35
-:10D1C0005D19C635E8F80128FAC9FFF8300A1AD9FE
-:10D1D000303B700C70D635F9FAC8FFF05D162FFDA4
-:10D1E0001891580CC520E8F80160E06900FE402A5B
-:10D1F0005828F2081710B4880697E8F800A4ABB7CF
-:10D200005808C050E0680900E7E810075805E068D2
-:10D210000400EFD8E1375802F9B80108EFD8E13738
-:10D220004028F3D7C108B09940283006B0A740295C
-:10D23000B2B64028308AB0C6E8C5FF04402C0A9B2D
-:10D240002FBCF01F00130A9C308BF01F00124028E7
-:10D25000F166005D4029F366005E0E99E219010057
-:10D26000FBF81002F9BA014DF1DAE1091AD9404888
-:10D2700000991AD8069A1AD1089CE068888EE8CBE3
-:10D28000FFDCF01F00052FDD2FCDD832800091DCB0
-:10D29000800239EA8002C1E0EBCD40804879720813
-:10D2A000201893081897C031F01F00050E9CF01F3E
-:10D2B0000005E3CD8080000000007AB48002D2F83F
-:10D2C000800091E8EBCD40C048976E065806C041FB
-:10D2D000F01F0008C0916E082FF8304C8F08F01F27
-:10D2E0000006E3CD80C00C9CE3CD80C000007AB482
-:10D2F0008002D30480028F24D401F01F0002D802E0
-:10D300008002D996D401F01F0002D8028002D9947D
-:10D31000D4211789179A17B8F1E9118817A9F1EAEA
-:10D320001108F1E91088990817CA17D8B168F1EA0D
-:10D33000118817EA17F91258F1EA10889918F73A84
-:10D340000008F739000BF7380009B168F1EA1188D5
-:10D35000F73A000A1258F1EA10889928189EF73A0D
-:10D36000000CF738000DF739000FF8C5FFE4B1687D
-:10D37000F73C000EF1EA11883007125849B4F1EC7D
-:10D38000108C49B69D3CC038149C2F05E80707084F
-:10D390002F0EFCF9FFF0F3E82189EC0C0F88E2185E
-:10D3A000FF001059EC0C0F98E61800FF1059EC0C18
-:10D3B0000FB8F1D8C1081059FCF8FFF4EC0C0FAB12
-:10D3C000A96BE61BFF0016599D091059FCF8FFF8E0
-:10D3D0009D1910599D29FCF8FFFCF3E8200A8B0ADF
-:10D3E0002FF758A7CD21D8228003E2F08003E6FC76
-:10D3F000EBCD40FE1892F01F002F0493E4CBFF60AA
-:10D40000E4C4FFFCE4C5FF5CE4C6FFF8E4C7FF58D2
-:10D41000E4CEFFF4E4CCFF54E4C1FFB06609760823
-:10D4200087089709680A6A0889088B0A6E086C09D8
-:10D430008D088F097C0A78089D08990A2F03210B13
-:10D440002F0421052F0621072F0E210C023BCE7140
-:10D45000E4C4FFF030134985498608972F046E0A0B
-:10D46000EC0A0F98EA080F9EEC0A0F88EA080F9C56
-:10D47000EC0A0FB8EA080F9BEC0A0FA8F809150888
-:10D48000FC0A1510F3EC1389F5EE130A1659EA0895
-:10D490000F9BF6081518F1EB1288105914590EA9B4
-:10D4A0000E34CDE12FF358A3CD91E3CD80FE0000E3
-:10D4B0008002D3108003E2FC8003E6FCD431209D7F
-:10D4C000F736000E505A178A780917B8F1EA118812
-:10D4D000179A1258F1EA210817AEF1EE208E506E1D
-:10D4E000781817CA17F9105917D8F3EA2189F3E801
-:10D4F000210917EEF3EE208E507E7828F7390008C8
-:10D50000F73A000B105AF7380009F5E9218AF73984
-:10D51000000AF5E8210AF5E920827839F73A000C8B
-:10D52000F738000FFEF7034412581894F1EA2188E7
-:10D53000F739000DF8CAFF60F1E92108500AF1E659
-:10D5400020800E91E0081618406AEE080326F3DAF0
-:10D55000C008F1D2C208EE090329EE080328504999
-:10D560005038407AEE0A0F9950296878684B105667
-:10D570004068EE000FACEE080FBA4079165AEE097B
-:10D580000F8BF6081508F1EB1388F8091518105AD7
-:10D59000F3EC1289EE020F9C125AF8081510F1EC08
-:10D5A0001308F5E82008685E68654079EE090FBB4E
-:10D5B00050884068EE020F8C1C5BEE080FAEF80836
-:10D5C0001508F1EC1388EE000F9A105BFC09151892
-:10D5D000F4081510F3EE1289F1EA1308125B407992
-:10D5E000F7E82003EE000F8BF6081508F1EB13881F
-:10D5F000EE020FBCEE090FAE0A5CFC091518105CB8
-:10D60000F3EE12894068125CEE080F9B404A4048D6
-:10D61000F6091510A968F3EB1309F1EA1388F9E983
-:10D620002000105640394038B968F1E912882E04BC
-:10D63000105640294028B169400AF3E81309EDE982
-:10D6400020021434C770E4081618408AF3DAC008C0
-:10D65000E208032EE2090326F1D0C208E2030F9983
-:10D66000E20803255019E2020FACE2030F8B6809B0
-:10D67000F6081508F1EB1388E20A0FBA125AF809F6
-:10D680001518105AF3EC1289E2000F9C125AF80890
-:10D690001510F1EC1308F5E82008E2030FBB506801
-:10D6A00040886819E2000F8AE2080FAC125BF408A8
-:10D6B0001508F8091518F1EA1388F3EC1289E2004D
-:10D6C0000FBAE2020F9C105BF8081510125BF1EC28
-:10D6D0001308F7E8200850786829E2030FAC125AC3
-:10D6E000F8091518F3EC1289E2020F8BF6081508F9
-:10D6F000F1EB1388105A125A4089E2090F9B6839DE
-:10D70000F6081510F1EB1308125EF5E82002EC099B
-:10D710001508EA081518F3E61389F1E51288125E78
-:10D720004019105EB1694018F3E81309FDE92000C3
-:10D73000C0AB4089F1D3C1084CDBFDD9C008F60865
-:10D740000706E40A1618EBD0C208F60A0709F60520
-:10D750000708F60E070CF9E9118CF3D3C008F9E8B5
-:10D76000110C4088B988F608070AF6090708F3D2B1
-:10D77000C208F1EA1188F609070AF3D0C108680E59
-:10D78000F1EA1108F609070AF1EA10881C58F009B5
-:10D790001618405AB4B8B4894059F00A1610A9882E
-:10D7A000B29AB2A8E6091618F609070AF3D0C0081B
-:10D7B000F6090708F1EA1188408AF3DAC208F60987
-:10D7C000070AF3D2C108F1EA1108F609070A40591D
-:10D7D000681EF1EA10881C58B2F8F0091618405A71
-:10D7E000B4C94059F00A1610A988B2DAB2E8E009C3
-:10D7F0001618F609070AF3D2C008F6090708F3D38A
-:10D80000C208F1EA1188F609070AF1EA1108408A0C
-:10D81000F3DAC108F609070A4059682EF1EA1088C0
-:10D820001C58F368000BF0091618405AF5690008F7
-:10D830004059F00A1610A988F36A0009F368000A33
-:10D840006839405AF9E6108C125CF8081618F80985
-:10D850001610F56C000FF568000CA98CF569000D29
-:10D86000F56C000E2F7DD8328003E2FC8003E1F0DE
-:10D87000EBCD40C01897590BC030E3CF80C0E06CAF
-:10D8800000B0F01F00061896CF900E9BF01F00040A
-:10D890000C9CE3CD80C00000800092008002D3F099
-:10D8A000D431209D129714961895500B308A0C9BFA
-:10D8B000FAC2FFE4049CF01F0034ECCBFFF8400AEE
-:10D8C0000E9CA37AF01F00300A9C310BF01F002F32
-:10D8D0001893C57040082018EE08003840095028F9
-:10D8E0005C39400A5C59F40A00285019E9D8C0088C
-:10D8F0003050FAC7FFF4FAC1FFEC40095809E08A3A
-:10D90000002940251296308A049B0E9CF01F001EB1
-:10D91000FB390013E806000812580A9BFB68001345
-:10D92000308A029CF01F00180E9A0E9B069CF01F76
-:10D930000018308A0E9B049CF01F001320160A9CCE
-:10D94000308A2085029BF01F00105806FE99FFDDEB
-:10D95000401A2010E80A0008E9D8C0085BF0CCE1C2
-:10D96000069CF01F000C049C3A691988F208180004
-:10D97000C0812FFCFAC8FFDC103CCF812F7DD83A44
-:10D980002F7DDC3A800091DC8002D8708002D4BC0C
-:10D99000800091E85EFD5EFCD4311A97202D109E28
-:10D9A000129514965809C4911638E0880057F0086B
-:10D9B0001200C0D0F608094BF0091120FC08094EEE
-:10D9C000F4090A49F4080946F3EB100BFC0516109C
-:10D9D000F9DEC010F6050D0AEC0816101499F1EBEB
-:10D9E0001108B93A103AE088000C20191C08103EC2
-:10D9F000E08B0007103AF7B90B01F1DEEB08F00AF3
-:10DA0000010BEDD6C010F6050D0AEDEB11061498CA
-:10DA1000F40C024C0C3CE088000A20181C060C3E5A
-:10DA2000E08B00050C3CF7B80B01F1E9110B300C51
-:10DA3000169A189B2FEDD8321639E08B0051F20C54
-:10DA40001200C53114385F8916355F381049F8095E
-:10DA50001800C450301BC4585808C0513019F2087F
-:10DA60000D08109EFC081200E08100911C1BFC05B3
-:10DA70001610F3DEC010301CF6050D0AEC08161067
-:10DA8000F4090243F1EB1108149B1033E088000CF9
-:10DA9000201B1C08103EE08B00071033F7BB0B0166
-:10DAA000F1DEEB08F0030103EDD6C010E6050D0230
-:10DAB000EDE311060498E40902490C39E088000AF4
-:10DAC00020181C060C3EE08B00050C39F7B80B0142
-:10DAD000F1EB110B169A189B2FEDD832300B169CD8
-:10DAE000169A189B2FEDD832F20C0945F80E11202A
-:10DAF000F00C0943F40E0A46F00E0A48F60E0A4EE0
-:10DB00000A48F0011610FC010D04EEE5FFF8F60CD2
-:10DB10000949EBD8C010EDE910090896F20E16106D
-:10DB2000EEF4FFF8EC05024BFDE4110E1C3BE0881F
-:10DB300000072016100E1C38E088006D161EF3D961
-:10DB4000C010FC010D00F3E11109009BE005024E3D
-:10DB5000123EE0880007201B10091238E0880055AB
-:10DB6000F7E6110B1C19F60306420639C0935F094C
-:10DB7000F40C094C043C5F38F3E80008C020201B7B
-:10DB8000300C169A189B2FEDD832F6080949FC087C
-:10DB9000094EF0011120FC051610F4010A42F601AD
-:10DBA0000A411242E2050D00F3DEC010E406161031
-:10DBB0000093EDE11106E009024C0C3CE0880007FF
-:10DBC00020131C060C3EE088002CEC0C0101F7D25F
-:10DBD000C010E2050D00F7E1110B009CE0090241C5
-:10DBE0001631E088000C201C1C0B163EE08B000751
-:10DBF0001631F7BC0B01F7DEEB0BF4080946021BEC
-:10DC0000F9E3110CC3AB123EF3D8EB09F7BB0B01E0
-:10DC1000CA8B1C3BF7B60B01FDD8EB0EC90B0C3CB5
-:10DC2000F7B30B01EDDEEB06CD1BD703D40130AA11
-:10DC3000300BF01F0002D8028002F0ECD4014848FB
-:10DC4000169A189B700CF01F0003D802000005986C
-:10DC50008002DC54D421F40B024BF01F00151897FE
-:10DC6000C230F8FAFFFCE01AFFFC204AE04A002428
-:10DC7000E08B00181898593AE088000F300910A975
-:10DC800010A959BAE088000910A910A9E04A002497
-:10DC9000C03110A910A9300910A991199109C048E3
-:10DCA000300BF01F00040E9CD82200008002E2BC62
-:10DCB0008002E8BCD421300EF6C80001F60614013B
-:10DCC000F808002818991897C07870046E050EA4FB
-:10DCD00091052FFE20480C3ECF95F40B000B1897B2
-:10DCE000F6C80001300EF8080028A15BC078700566
-:10DCF0006E060EA591062FFE2048163ECF95F4C85D
-:10DD00000001A15AF808002C3008C078780E720B78
-:10DD100012AE990B2FF8204C1438CF95D822D70388
-:10DD2000D431205D502C503816971496580C5F0B48
-:10DD300058075F0C1295F9EB100B40E33008F00B1D
-:10DD40001800E081028058095F09580A5F08F3E86B
-:10DD50000008F6081800E08102764BE4402B6808C2
-:10DD60001638E0840270EE08032C580CE080026B39
-:10DD70004B9BF01F003AC06168082FF88908E08FBC
-:10DD8000026268085808C05130184B598908930836
-:10DD90005806C14032D90D88F20818005F0232B926
-:10DDA000F20818005F08E5E81008C0805802F9B2D0
-:10DDB0000101F9B200022FF6C0884AACF01F002A18
-:10DDC000F9B20102F9B200004A5870085818C61199
-:10DDD0005812C2B049F95822C4A0129872043001F6
-:10DDE00032DB32BA7009F2C0FFFFEE09032C580C87
-:10DDF000E080023B1989F6091800C0805803E080D2
-:10DE00000225F4091800E081022150015014492B29
-:10DE1000F01F0012C411EE04002C029B301A2FF4E4
-:10DE2000F01F0012E08F022148A87009EE090328B4
-:10DE30005808C2F0118A32DBF60A1800C2A0580353
-:10DE4000E080020832BBF60A1800E0810203C21823
-:10DE500000007AB88003EC008002ECC800007ABCB5
-:10DE60008003EC04800326948002DCB47208EE0880
-:10DE700003285808C0E0118832D9F2081800C09071
-:10DE80005803E08001E032B9F2081800E08101DBBC
-:10DE90003009500950195805E08000A44BE4680887
-:10DEA000302AEE08032C4BDBF01F003DC0D0580396
-:10DEB000E08000986808EE080328118932B8F0095C
-:10DEC0001800E081008F4B7468085818E081008AC0
-:10DED0004B187008302AEE08032C4B0BF01F003053
-:10DEE000F9B80002E9F80A004AB468084AD1EE0815
-:10DEF000032C620833DB100CF01F002B1893C0E1D9
-:10DF00006808EE08032CF01F002968096208EE0972
-:10DF10000323F80801081803C08868086209EE089E
-:10DF20000328F8080108121850430A910C933FF493
-:10DF300030001096C4784989720849A9EE08032C6C
-:10DF400072080C9A100CF01F0016C3A1620CF01F8F
-:10DF500000171836C051069600944043C3C85BF4BE
-:10DF6000C2E0493870085808C7C062081AD848A8E3
-:10DF700070096E08EE090329A564EA04030A1ADA97
-:10DF80001AD91AD848B8700848BB702CF01F000B7B
-:10DF90002FCDC67800007AB88003EC008002E7102D
-:10DFA00000007ABC8002ECAC8002EDD0000004A43A
-:10DFB000000005988003EC1480031FE800942FF004
-:10DFC0002F01620B580BCB81069640435BF4C031A6
-:10DFD0000898C0A8E8081504EA0800087018C048A6
-:10DFE0003FF83003109458065F19F3E403F9C03189
-:10DFF0003006C5484BE162084BE3EE08032966088A
-:10E000000C9CF208070BF01F003C1896C2D14BB8CD
-:10E0100070085808C11062096608EE090329F20861
-:10E0200007081AD86E081AD84B5870084B5B702C2A
-:10E03000F01F00352FED4AF8700B2FFB910B4AC9EA
-:10E04000720AEE0A032CF80B070C300BF60C1800C2
-:10E05000F7BA00FFF3FA0A00F9B90001F1F90A0072
-:10E0600033F8109CC818199833A9F2081800C0306A
-:10E070003008C08819A9F0091800F9B80002F9B8E9
-:10E08000010149CA49A97209EE09032974030D8ADD
-:10E090002FF3F203000349D9930A5818C1505828A6
-:10E0A000C0405808C6C0C208078933D8F009180014
-:10E0B000F7B300FF4968078A3009F20A1800C10166
-:10E0C00030069106C718078933D8F0091800F7B34E
-:10E0D00000FF30080789F0091800C1B048C8910353
-:10E0E0003019484891093006C5F8000000007AB898
-:10E0F00000007ABC8002ECAC000004A4000005988B
-:10E100008003EC5080031FE8000004A000007AC0E8
-:10E110004C08402B70082FF81638C2954BE8700851
-:10E120005808C1C06E084BD71AD86E084BCB702C5C
-:10E13000F01F003C2FFD5BF4C0906E08A5644BAB54
-:10E14000EA0403091AD9702CC0686E080D894B7B4C
-:10E150001AD9702CF01F00332FFD4AE933A8720A38
-:10E16000109C2FFA930A4B299308C6D84B19EE0836
-:10E17000032A3018930A10964AF9C1584AE95BF409
-:10E18000C0D1720A2FFA930A4A2B760BEE0B032B9F
-:10E19000F60A070AF00A1800C03130189308300850
-:10E1A0004A49109693085802C1B140094A285809B3
-:10E1B0005F19700858185F08F3E80008E4081800B1
-:10E1C000C0F04018ECCAFFFFEE08002C400BF01F17
-:10E1D000001B40182FF8F006000648E8C0A8496860
-:10E1E00070085818C07148B870092FF9F206000677
-:10E1F00091065BF4C240403B580BF7F41A00A5644B
-:10E2000008056A3C6A285808C1E0910C300CC1B876
-:10E2100000007AB8000004A4000005988003EC70A8
-:10E2200080031FE88003EC948003EC9C000004A0B2
-:10E2300000007AC000007ABC8002DCB448C8700CD0
-:10E24000C0283FFC2FBDD83291002FF1FE9FFDCC9E
-:10E25000488B97084888F2CAFFFF3019910A129C30
-:10E2600048389109CF0B48489104CECB000004A058
-:10E2700000007AC000007AB8D40130091AD9129887
-:10E28000F01F00022FFDD8028002DD20D401484893
-:10E29000189B700CF01F0003D802000000000598C6
-:10E2A0008003217CD4014848189B700CF01F0003A8
-:10E2B000D8020000000005988002E2BCD431F6C705
-:10E2C000FFF518955967F9B70810F9B80BF8EFD8AA
-:10E2D000EB2716375F38F1E713F8C05030C899388C
-:10E2E000E08F01F4F01F0050E04701F7E08B001CC5
-:10E2F000EE0316034CD8F003003870361036C061B8
-:10E30000ECC8FFF870361036C0C06C18E018FFFC7F
-:10E310006C3AEC0800090A9C6C289528913AC4785C
-:10E320002FE3C4D8EE081609C041EE031603C278E5
-:10E330005848E08B0006EE0316062C83C2085948A5
-:10E34000E08B0005F0C3FFA5C1A8E0480054E08BB6
-:10E350000006EE03160C2923C128E0480154E08B87
-:10E360000006EE03160F2893C0A8EE031612E0482D
-:10E370000554E088000437E3C02828434ABAF40370
-:10E38000003A7436C1986C19E019FFFCF207010BD2
-:10E3900058FBE08A00042013C1186C38580BC0B534
-:10E3A0006C2AEC0900090A9C912A95387218A1A8D8
-:10E3B0009318CBD810961436CE712FF349BAF4CCFB
-:10E3C000FFF878261836C6F06C19E019FFFCF20742
-:10E3D000010858F8E0890091993C992C5808C055DB
-:10E3E000EC0900090A9CCE3BE04901FFE08B0013D9
-:10E3F000A399F4090038702B8D388D2B9736912610
-:10E40000A3497418301BF6090949F1E91009951957
-:10E41000C4A8F20816095848E08B000AF20A16064A
-:10E420002C8AC2488002E8CA0000059C5948E08B4B
-:10E430000005F0CAFFA5C1A8E0480054E08B000623
-:10E44000F20A160C292AC128E0480154E08B000684
-:10E45000F20A160F289AC0A8F20A1612E0480554CC
-:10E46000E088000437EAC028284A4C8BF60A0034BA
-:10E4700068280838C0E17619A34A301EFC0A094A08
-:10E48000F3EA100A1099971AC0A870280838C060DB
-:10E49000701AE01AFFFC1439CF9370398D398D282A
-:10E4A00091369326E6081402301B4B84F608094B7C
-:10E4B0006818103BE08B006EF7E80009C0B1E0136C
-:10E4C000FFFCA17B2FC3C0382FC3A17BF7E8000955
-:10E4D000CFC0E803003E06921C916236C2E86C1A77
-:10E4E000E01AFFFCF407010858F8E08A00156C3ABE
-:10E4F0006C299529933A0E99EC070007A1A9993741
-:10E5000099278D19EE0809088F2C8F3CA1A80A9C29
-:10E510008F18C0D86C395808C0F5EC0A000A741876
-:10E52000A1A80A9C95186C2893289139F01F00180F
-:10E53000ECCCFFF8D83212960236CD212FF2F1D270
-:10E54000C002C0302F81CCAB1C98F3D3C002C08175
-:10E550006819F60811FFF3E800088918C078F0C9B7
-:10E560000008201370081238CF10A17B6818103BE8
-:10E57000E08B0010580BC0D00493C0382FC3A17B90
-:10E58000F7E80009CA71CFBB0000059C8002E8CC07
-:10E5900068236612E012FFFC0E325F39E4070108BF
-:10E5A00058F85FAAF5E91009E08000A24C887001D4
-:10E5B0004C882F0170080E015BF8C0402811E01153
-:10E5C000FF80029B0A9CF01F004418965BFCC6E08B
-:10E5D000E6020008103CC0320833C6814BFA7409C9
-:10E5E000E209000995091036C0A1F5D6C007C0712F
-:10E5F000E20200026828A1A29112C4C84B5A740B0F
-:10E600005BFBC0319506C068EC0900094B3A101954
-:10E610009509F1D6C003F00911085808F20817103F
-:10E62000EDD8E1062808EC0100010A9CE3D1C007FF
-:10E63000F0010101029BF01F00284A885BFCEC0CF2
-:10E640001700F9B1000070090C1C8926020C120198
-:10E65000A1AC91018D1C0833C1D058F2E08B0005AC
-:10E6600030188D18C238305920C2E012FFF8E60287
-:10E670000008912991196618F1D8C001E5E8100841
-:10E68000871858F2E0880007E6CBFFF80A9CF01FD5
-:10E6900000144949720A491870081438F3F8BA008E
-:10E6A0004919720A1438F3F8BA0068287018E0188B
-:10E6B000FFFC0E385F390E1858F85FAAF5E910090B
-:10E6C000C1600A9CF01F0009D83A000000007ACC13
-:10E6D000000009A88002EBC800007AD08003217CEA
-:10E6E00000007AC800007AC48002E8CC6826A1A89D
-:10E6F0000E99A1A98D19EC0700070A9C89278F188C
-:10E70000F01F0003ECCCFFF8D83200008002E8CC08
-:10E71000D4013008C0D8F808070EF6080709201AF7
-:10E720002FF8F20E1800C040FC09010CD802580A5C
-:10E73000CF31149CD802588AC2F5F9EB1009E219BE
-:10E740000003E0810097E04A0020C3B4F4081402FB
-:10E75000F0091108FE09002F7669996976599959CF
-:10E7600076499949763999397629992976199919E5
-:10E7700076099909F608002BF8080028E01A00032A
-:10E78000F40A1104FE0A002F17A9B0A91799B0992D
-:10E790001789B0895EFCF40A1109FE0A002F17F9E7
-:10E7A000B8F917E9B8E917D9B8D917C9B8C917B965
-:10E7B000B8B917A9B8A91799B8991789B8895EFC8B
-:10E7C000EBCD40C01899220AB707B326B707B32686
-:10E7D000B707B326B707B326220ACF742F0AC0653E
-:10E7E000B707B326B707B326210A5C3AFE0A003FF3
-:10E7F000D703D703F736000EF366000EF736000D89
-:10E80000F366000DF736000CF366000CF736000BCC
-:10E81000F366000BF736000AF366000AF7360009C4
-:10E82000F3660009F7360008F3660008F7360007BC
-:10E83000F3660007F7360006F3660006F7360005B4
-:10E84000F3660005F7360004F3660004F7360003AC
-:10E85000F3660003F7360002F3660002F7360001A4
-:10E86000F3660001F7360000F3660000E3CD80C0D8
-:10E87000201AF60A0709F80A0B09CFB15EFCD40189
-:10E88000183BC192F60A0009123CC152F80A000B6B
-:10E890003008C068F208070E201AF6080B0E201880
-:10E8A000580ACF91D802F6080709201AF8080B0970
-:10E8B0002FF8C0283008580ACF71D8021898C038ED
-:10E8C00010CB201A580ACFD15EFC5EFC5EFCD70349
-:10E8D000D4014848169A189B700CF01F0003D80208
-:10E8E000000005988002E8E8D431201D16941892A3
-:10E8F000149B5804C051F01F005B1895C5B9500A0D
-:10E90000F01F0059400BE8C10008F6C6FFF5621C75
-:10E910005966F9B60810F9B80BF8EDD8EB2616369B
-:10E920005F38F1E613F8C05030C830058538C42987
-:10E930001890E010FFFC0C30E08401124CB8E200AB
-:10E94000000970250A39C090721AA1CAF20A000A99
-:10E95000741AEDBA0000C220721AE01AFFFCF4002B
-:10E9600000030A39C131ECC7FFF00E33C195E2064E
-:10E9700000090C13A1A393139129049C6218089514
-:10E98000F1D8C00110468316C1390C33C0957228E6
-:10E990000297723993289139CE48300A1499EDBC08
-:10E9A0000000E080009D6207E20701076E1CE01C8A
-:10E9B000FFFC5809C5E0F80000030A39C4811403BC
-:10E9C000ECC9FFF01233C5556E3A6E299529933A7A
-:10E9D000EEC5FFF8E0CA0004E04A0024E08B002501
-:10E9E0000A99593AE088001A09098B0909098F39EF
-:10E9F000EEC9FFF059BAE0880011090B930B090921
-:10EA00008F59EEC9FFE8E04A0024C071090A930A51
-:10EA1000EEC9FFE0090A8F7A090A12AA680A930A66
-:10EA2000681A931AC0785008089B0A9CF01F0010BF
-:10EA30004008EE0600090C13A1A393139129049C2E
-:10EA40006E18F1D8C00110468F16CB2814030C3372
-:10EA5000C10572287239932891396E286E39C0F831
-:10EA60008002E2BC8002E8CA0000059C8002E87EC9
-:10EA7000F80000030C33C3356E396E2893289139A2
-:10EA8000E0CA0004EECCFFF8E04A0024E08B00244A
-:10EA9000593AE088001A0908990809088F38EECC1D
-:10EAA000FFF059BAE08800110908990809088F5841
-:10EAB000EECCFFE8E04A0024C07109089908EECCCA
-:10EAC000FFE009088F78090818A8680899086818ED
-:10EAD0009918C478089BF01F0039C438049CF01FB3
-:10EAE00000381895C3A06218F8C90008A1C8E20848
-:10EAF00000081039C07172130297E013FFFC000385
-:10EB0000C308E0CA0004E04A0024E08B0020089912
-:10EB10001898593AE0880014130B10AB130B10AB84
-:10EB200059BAE088000D130B10AB130B10ABE04A81
-:10EB30000024C051130A10AA130A10AA130A10AA1B
-:10EB4000720A910A72199119C048089BF01F001BA4
-:10EB5000089B049CF01F001B049CC2A80093029712
-:10EB6000E60601096E1858F9E0880016F1D8C001D0
-:10EB7000EDE810088F181298A1A8EE06000BF60910
-:10EB8000000997187218A1A82F8B9318049CF01FE6
-:10EB9000000DC0B8F1D8C001E7E810088F18EE03E7
-:10EBA00000036618A1A88718049CEEC5FFF8F01FA3
-:10EBB00000060A9C2FFDD8328002E87E8002E2BC6B
-:10EBC0008003217C8002E8CCD42130081897487655
-:10EBD000169C8D08F01F00065BFCC0516C0858089D
-:10EBE000EFF81A03D822000000008CC48002F1E87C
-:10EBF0005EFDD703D421217DE06802041697BA6830
-:10EC0000504C500CF01F000B3008512850D848A829
-:10EC100050983FF8BA784898505C501CFAC9FF9059
-:10EC20000E9A700C1A9BF01F00062E9DD822000031
-:10EC30008002EDD08002EBF00000059880030C4CC0
-:10EC4000D421217D4988FAC9FF9016977006580B88
-:10EC5000C064E068008B3FFC8D38C228580BF60872
-:10EC600017005807F9BB01FFEFDBE10850585028A7
-:10EC7000E0680208BA683FF8504C500CBA781A9B0A
-:10EC80000C9CF01F000A5BFCC044E068008B8D38D0
-:10EC90005807F9B90100FBF81000F1F91E002E9D8C
-:10ECA000D8220000000005988002F5685C5BC0284F
-:10ECB0002FFC19885808C050F6081800CFA15EFC38
-:10ECC000580B5E0C5E1DD703F9EB100AE21A000325
-:10ECD000C341780A76095CEAC170123AC151781AC8
-:10ECE00076195CEAC110123AC0F1782A76295CEAFA
-:10ECF000C0B0123AC091783A76395CEAC0502F0C15
-:10ED00002F0B123ACE70F9DAC308F7D9C3085E0C9C
-:10ED1000161C5E1CF9DAC208F7D9C2085E0C161C74
-:10ED20005E1CF9DAC108F7D9C1085E0C161C5E1C1E
-:10ED30005C5A5C59121A5EFA178A1989580A5E09D8
-:10ED400014195E19179A1999580A5E0914195E194F
-:10ED500017AA19A9580A5E0914195E1917BA19B920
-:10ED6000580A5E0914195E192FCB2FCCCE6B000008
-:10ED70003008F6080709F8080B092FF85809CFA141
-:10ED80005EFCD703D4014848189B700CF01F0003A9
-:10ED9000D8020000000005988002ED9CD42118974D
-:10EDA0001696169CF01F0008F8C5FFFF0E9C0A9BE4
-:10EDB000F01F00061897C0500A9A0C9BF01F000421
-:10EDC0000E9CD8228002EDD08002E2BC8002E736A1
-:10EDD00030091898C0282FF8118AF20A1800CFC1FC
-:10EDE000F00C010C5EFC580AC0815EFA580AC0B0F3
-:10EDF0005808C0902FFC2FFB201A19881789F0099A
-:10EE00001800CF50198C1788101C5EFC3008103A7F
-:10EE10005E0CF6080709F8080B092FF85809CF818E
-:10EE2000103A5E0CF8080B092FF8CFBBD401484804
-:10EE3000169A189B700CF01F0003D802000005986A
-:10EE40008002EE44D421300816951696C0282FF67D
-:10EE5000580AC060201A0D89F0091800CF910A16CF
-:10EE6000ECCBFFFFF01F00071897C0800A9B0C9A9D
-:10EE7000F01F00053008EE060B080E9CD82200009B
-:10EE80008002E2BC8002E736D42118981696580B0F
-:10EE9000C0C03007C0481897F8C8FFFF109C0C9BF3
-:10EEA000F01F0005CF91C048F01F000318970E9C7B
-:10EEB000D82200008002ECACD421201D4A351897DE
-:10EEC0006A04E8F600E85806C351500B350CF01FF1
-:10EED00000206A08E94C00E8F0F900E89326930660
-:10EEE0009316F0F900E893469336F0F900E893663C
-:10EEF0009356F0F900E893B693A6F0F900E893D69C
-:10EF000093C6F0F900E893F693E6F0F900E8F346CB
-:10EF10000044F3460040F0F900E8F346004CF346A5
-:10EF20000048F0F900E8F366001CF0F800E8400B38
-:10EF30009196486870080E9CF0FA00E83019F01FAE
-:10EF400000052FFDD8220000000005988002E2A4F1
-:10EF50008002EF54D421580CC041740C580CC2905C
-:10EF600018981697113EC0A80C3EC0815809C030B1
-:10EF7000109CCF7B9508B889D8220F365806CF5100
-:10EF8000580EC051950E1C9CD822129810991697B5
-:10EF9000133E0F361C36C0A1580EFC091700F9BBF2
-:10EFA0000100F1FB1E009509D8225806CF31CEEBA7
-:10EFB000D822D703D431203D4CC8502C700116986C
-:10EFC000113EE20E0706E2160008CFB1E04E002D1A
-:10EFD000C041113E3016C058E04E002BC021113EFA
-:10EFE00058095F0C59095F053007F9E51005EE0572
-:10EFF0001800C1E0E04E0030C131118535843783FF
-:10F00000E80518005F04E60518005F05E9E510054E
-:10F01000EE051800C050119E31092FE8C098580C19
-:10F02000C070E04E0030F9B90008F9B9010AE06C8F
-:10F03000FFFFEA1C7FFF3007FC1580000E930E36A1
-:10F04000F80517000E9CEA090D0408925005E20E1F
-:10F050000704E1D4C001F9B00137F9B000575010EE
-:10F06000FCC500300890E2100004C0814010E9D4D3
-:10F07000C002FC0001055804C1C01235C1A4043C03
-:10F080005FBEFDE713FEE60E1800C101043C5F0EF3
-:10F0900040070E355F97EFEE000EE60E1800C061D8
-:10F0A000B33C3017EA0C000CC0283FF7113ECD0BE3
-:10F0B0005BF7C0E1E069FFFFEA197FFFFC1C8000FD
-:10F0C00040205806F20C170032298139C0485806F2
-:10F0D000FBBC0100580AC0705807F9B901FFF1D90B
-:10F0E000E10B950B2FDDD8320000049CD401485869
-:10F0F0001499169A189B700CF01F0003D802000098
-:10F10000000005988002EFB43028D6733FFC358BA1
-:10F11000580C5E4C482A950B5EFC000000008CC425
-:10F120003058D6733FFC358B580C5E4C482A950BF3
-:10F130005EFC000000008CC43038D6733FFC358B79
-:10F14000580C5E4C482A950B5EFC000000008CC4F5
-:10F150003048D6733FFC358B580C5E4C482A950BD3
-:10F160005EFC000000008CC430B8D6733FFC358BC9
-:10F17000580C5E4C482A950B5EFC000000008CC4C5
-:10F180003098D6733FFC358B580C5E4C482A950B53
-:10F190005EFC000000008CC4D421210D16971A9B40
-:10F1A000F01F0011C0343FFCC1C84008AE08401831
-:10F1B000AE1840288F184038AE484048AE584058E6
-:10F1C000AE684068AE7840888F4840A88FB840C885
-:10F1D0008FC840D88F5840E8300C8F7840F88F980F
-:10F1E0002F0DD8228002F180D40148C87009580937
-:10F1F000C03148B99109489948AA7208F00C000C2E
-:10F20000143CE08B0004930CC068F01F000730C86A
-:10F2100099083FF8109CD80200007AF800008CC8CA
-:10F220000000F00080031D20D431208DFAC4FFBC03
-:10F23000504B682E505812967C0B7005506E580B30
-:10F24000F40B17006803681140493008C2C92FFB4E
-:10F25000325C178AF80A18005F1EF00A18005F1C5B
-:10F26000FDEC000CF00C1800CF31580AE0800129A9
-:10F27000300C3FFA1890503A18941892F80C003C51
-:10F280001697507C4CDC0F3AF80A070E407C1C0C99
-:10F290004CBEFC0C070E201E500E4CAEFC0C070C96
-:10F2A000507C400C587CE08B00F84C7EFC0C032F0B
-:10F2B000368BF60A1800E08000F0371BF60A1800BB
-:10F2C000C07034CBF60A1800C051A3B4CE58A5B410
-:10F2D000CE380F8B36CAF40B1800C051A5B4EECB54
-:10F2E000FFFFCDB8A5A4CD88EBD5C005367CF80AC4
-:10F2F0001800E08B0027365BF60A1800C48234FB46
-:10F30000F60A1800C480E08B000C345BF60A180083
-:10F31000C3E0347BF60A1800C3A0344BC088358B99
-:10F32000F60A1800C2C0E08B0007355BF60A180029
-:10F33000C351C318363BF60A1800C2F0364BC0E87A
-:10F34000370BF60A1800C250E08B000D36EBF60AB8
-:10F350001800C1F0E08B0014369BF60A1800C1E1DA
-:10F36000C0E8375BF60A1800C0A0378BF60A180011
-:10F37000C060373BF60A1800C111C0B8EDB40004F4
-:10F38000C0A0EDB40005C0913020C0883040C068F6
-:10F390003030C0483010C0283000403B5BFBC040DC
-:10F3A000E20B0920C7985860E08B00776C0AEACC22
-:10F3B000FFFF486EFC00032F8003EE088003ED641E
-:10F3C0008003ECF88003ECAC8003ECCCF4CBFFF8CA
-:10F3D0008D0BF4EA0000E605083AC0F8F4CBFFFC18
-:10F3E0008D0B740AE605093AC088F4CBFFF88D0B43
-:10F3F000F4EA0000E605083A0E9B1895C4E8620A94
-:10F400005BFAC0B150195028E06A0080300B029CB2
-:10F41000F01F004D40284019E4CC00010E9B503CE9
-:10F42000F20C0C49C3A8620A5BFAC0B1501950280B
-:10F43000E06A0080300B029CF01F00434028401916
-:10F440002012300A0E9BE202092AF2020C49C2582D
-:10F4500016976C0AF4CBFFFC8D0B740A0E9BE60525
-:10F46000093A2FF5C1A8F4C20030C068E4020022B6
-:10F470002FF7F40200120F8A580AC0E0230A589AA4
-:10F48000FE98FFF6C0982FF70F8A580AC050230A3B
-:10F49000589AFE98FFFA0E9B407C30BAF40C180084
-:10F4A000FE91FEEE4042178C0A325F4AF00C1800C3
-:10F4B0005F1CF9EA000AF00A1800FE91FECB300842
-:10F4C000404E178AE2050021F00A1800FC091710C7
-:10F4D000E6050038069EC2A8620A583AC1E0E089F3
-:10F4E0000007581AC1A0582AC181C058585AC0C034
-:10F4F000C0B5C1386C0AF4CCFFF88D0CF4E2000002
-:10F50000F0E30000C1086C0AF4CCFFF88D0CF4E2C3
-:10F510000000F0E30000C0786C0AF4CCFFFC8D0C16
-:10F52000740A910A2FF52F882FC11235FE9AFFD643
-:10F530001C934052406E85059D0B404BE60B003CF2
-:10F540002F8DD8328002E8BCD42114977428580833
-:10F55000C0419518109CD822F01F000330088F1866
-:10F560008F28D82280032320D431FACD068850A9D1
-:10F57000169014971893580CC06078685808C031DA
-:10F58000F01F004E4CE81030C0316600C0A84CD8C7
-:10F590001030C0316610C0584CB81030E7F000028F
-:10F5A0008068EDB80003C04160485808C071009BF6
-:10F5B000069CF01F0046E0810B4080681099E2191C
-:10F5C000001A58A9C3D18079300AF4091900C385FB
-:10F5D000A1D8FB5805B86088FB4805CC60A8FB485B
-:10F5E00005D4FAC8FFD4FB4805BCFB4805ACE0686D
-:10F5F0000400FB4805C0FB4805B43008FB5905BAB8
-:10F600000E9A40A9FAC7FA54FB4805C4069C0E9B03
-:10F61000F01F002F506CC0950E9B069CF01F002D14
-:10F62000406EF9BE01FF506EFB0805B8EDB800064C
-:10F63000E0810B058068A7A8A068E08F0B00300868
-:10F64000FAC4F9F85098FB480678409CFB480674C9
-:10F65000FB48067CFB48068050573FF8FB44067089
-:10F66000FB48052C506C1896069150204055C02838
-:10F670002FF50B88300B325AF60818005F19F40882
-:10F6800018005F181268F6081800CF314059EA09CF
-:10F690000107C2E0FAF806780E088909FB480678E7
-:10F6A0008917FAF806742FF8FB4806745878E08931
-:10F6B00000132F84C1A8000080031F388003EF2CA3
-:10F6C0008003EF4C8003EF6C80031C388002F568E8
-:10F6D00080031D2CFACAF990402B029CF01F00A158
-:10F6E000E0810AA6FAC4F9F840680E0850680B8851
-:10F6F0003007EE081800E0800A8AEAC2FFFF3003F4
-:10F700005052FB6706873FFE50745043503E0690B0
-:10F71000508506920C944057C0683FFC0A97503CB5
-:10F72000C02830000F38C0281292E0480063E08003
-:10F7300001CCE0890045E0480039E0890026E04836
-:10F740000031E0840198E048002BE0800101E0896D
-:10F75000000FE0480023E080008EE048002AE080AF
-:10F76000008CE0480020E0810897C7B8E048002EF0
-:10F77000E08000F1E0480030E080017BE048002DAF
-:10F78000E081088ACE28505750420897408540743F
-:10F790001092E048004FE0800439E0890008E0481A
-:10F7A0000044E081087DE08F01DEE0480055E08004
-:10F7B00005DFE0480058E0810873C428E048006F86
-:10F7C000C430E089001FE0480069C450E089000AA5
-:10F7D000E0480064C400E0480068E081085DC63984
-:10F7E000E048006CE0800163505750420897408524
-:10F7F00040741092E048006EE0810852E08F02ED04
-:10F80000E0480073E0800553E089000BE048007099
-:10F81000E08004F9E0480071E081083EC5295057B6
-:10F8200050420897408540741092E0480075E0808F
-:10F8300005A0E0480078E0810833E08F06964CABE5
-:10F84000509BE08F06945057408508975042407473
-:10F85000E08F03DD50574085089750424074C83907
-:10F86000FB380687300AF4081800FE91FF5D320865
-:10F87000C6E8A1A3C58B0F89F2C800305898E08B69
-:10F88000001EEEC8FFFF300B2309F60B002BF20B16
-:10F89000001B1139F2CA0030589AFE98FFF7E04970
-:10F8A0000024FE91FF40E04B0020E08909C1201BAD
-:10F8B000FAF90680123BC095C108FAF90680ECCA35
-:10F8C000FFFF1236C1F5C268FAC9F9781097F20B3A
-:10F8D000003BF6F2FDA4C358FAC7F9841AD7109773
-:10F8E000FAC2FAD01AD2FAC8FBCC029C1AD8FAC8CB
-:10F8F000F974FAC9FFCC40BAF01F001C2FDD780262
-:10F90000C208FACEF9781496FC040038F0F2FDA48F
-:10F91000C18840A859F9E0890011F0CBFFFC50AB39
-:10F920007002FACCF978F8090038F142FDA42FF9F9
-:10F930001496FB490680C058700214962FC850A830
-:10F940005802FE94FEF15C32A3A3CEDAFB68068770
-:10F95000CEAA0F38E048002AC0A03009C7D800005E
-:10F960008002F5488003EDD08002F2280F88F0C9AC
-:10F9700000305899E08B001EEEC5FFFF300B2308C6
-:10F98000F60B002BF00B001B0B38F0C90030589918
-:10F99000FE98FFF7E0480024FE91FEC5E04B0020F2
-:10F9A000E0890946201BFAF80680103BC095C10883
-:10F9B000FAF90680ECCAFFFF1236C1F5C288FACA0E
-:10F9C000F978F40B003BF6FBFDA4503BC3C8FAC921
-:10F9D000F9841AD9FAC8FAD01AD8FAC8FBCC029C12
-:10F9E0001AD8FAC8F974FAC9FFCC40BAF01F027AE3
-:10F9F0002FDD780C503CC278FACEF9780E95FC04D5
-:10FA000000381496F0F8FDA45038C1D840A859F930
-:10FA1000E0890014F0CBFFFC700850AB5038FACCF2
-:10FA2000F978403BF8090038F14BFDA42FF90E9509
-:10FA3000FB4906801496C07870090E952FC850397E
-:10FA4000149650A840385808FE95FE690A97C6BA21
-:10FA5000F40B00190F38F209002BF0CA0030589A45
-:10FA6000FE98FFF83FFEF20E0C495039C5FAA7B3D5
-:10FA7000C5AA30092308F2090029F00900190F3836
-:10FA8000F0CA0030589AFE98FFF7E0480024FE9133
-:10FA9000FE4DE0490020E08908CBF2C4000130109F
-:10FAA000FE9FFE42A7A3FE9FFE3F0F89F0091800AC
-:10FAB000C0512FF7A5B3FE9FFE37A5A3FE9FFE34CE
-:10FAC000A5B3FE9FFE3150575042089740854074C1
-:10FAD0000C99FAF806805800C1D01037C064FACCEF
-:10FAE000F978F8070037C1D8FAC8F9841AD8FAC8E3
-:10FAF000FAD01AD8FAC8FBCC1AD8FAC8F974FAC9DD
-:10FB0000FFCC0A9A0E9B029CF01F02332FDD19B81E
-:10FB1000C2282FF61039C084FACBF978F6070037DF
-:10FB2000EF38FDA7C18840A959F8E0890012F2CA50
-:10FB3000FFFC50AA7209FAC2F978E408003A2FF8DB
-:10FB4000F549FDA4FB480680F1D9C008C04813B8A8
-:10FB50002FC950A9300EFB680648FB6E0687E08F60
-:10FB600006A7A5A30C92EDB30005C4D1FAF8068050
-:10FB70005800C1E01037C064FACCF978F8070037B4
-:10FB8000C1F8FAC8F9841AD8FAC8FAD00A9A1AD869
-:10FB9000FAC8FBCC1AD8FAC9FFCCFAC8F9740E9B84
-:10FBA000029CF01F020D2FDD781A7809C288ECC282
-:10FBB000FFFF1036C0A4FACBF978F6070037EEFA4B
-:10FBC000FDA8EEF9FDA4C1B840A959F8E0890013D9
-:10FBD000F2CAFFF850AAFAC6F978721AEC08003B8C
-:10FBE0007209F74AFDA8F749FDA42FF8FB480680E3
-:10FBF000C068F2C8FFF8721A50A87209049650093A
-:10FC0000501ACD58EDB30004C441FAF806805800EC
-:10FC1000C1D01037C064FACEF978FC070037C1E8CC
-:10FC2000FAC8F9841AD8FAC8FAD00A9A1AD8FAC8BF
-:10FC3000FBCC0E9B1AD8029CFAC8F974FAC9FFCC07
-:10FC4000F01F01E52FDD780AC218ECC2FFFF103665
-:10FC5000C084FACCF978F8070037EEFAFDA4C16841
-:10FC600040A959F8E0890010F2CAFFFC50AAFACB6B
-:10FC7000F978720AF6080039F34AFDA42FF8FB4818
-:10FC80000680C048720A2FC950A90496501AC8D8D5
-:10FC9000EDB30006C481FAF806805800C1D01037D1
-:10FCA000C064FAC8F978F0070037C1E8FAC8F984E7
-:10FCB0001AD8FAC8FAD01AD8FAC8FBCC1AD8FAC897
-:10FCC000F974FAC9FFCC0A9A0E9B029CF01F01C27C
-:10FCD0002FDD9818C238ECC2FFFF1036C084FAC678
-:10FCE000F978EC070037EF08FDA6C18840A959F85C
-:10FCF000E0890012F2CAFFFC50AA7209FACEF97824
-:10FD0000FC08003A2FF8F549FDA4FB480680F1D91C
-:10FD1000B010C04892182FC950A950180496BF5867
-:10FD20005008C458FAF806805800C1D01037C06493
-:10FD3000FACBF978F6070037C1E8FAC8F9841AD87F
-:10FD4000FAC8FAD00A9A1AD8FAC8FBCC0E9B1AD86D
-:10FD5000029CFAC8F974FAC9FFCCF01F019F2FDD8D
-:10FD6000780AC218ECC2FFFF1036C084FACAF978CC
-:10FD7000F4070037EEFAFDA4C16840A959F8E089FC
-:10FD80000010F2CAFFFC50AAFAC6F978720AEC0811
-:10FD90000039F34AFDA42FF8FB480680C048720AD8
-:10FDA0002FC950A90496501ABF5A500AFAEA000007
-:10FDB000580A5C2BC0E43008FAEA00003009F00A67
-:10FDC000010AF20B014B32D8FAEB0000FB68068700
-:10FDD0003010E08F04E30C99EDB30005C471FAF81C
-:10FDE00006805800C1D01037C064FACAF978F40709
-:10FDF0000037C1D8FAC8F9841AD8FAC8FAD00A9AD2
-:10FE00001AD8FAC8FBCC0E9B1AD8029CFAC8F9740F
-:10FE1000FAC9FFCCF01F01702FDD780AC2082FF657
-:10FE20001039C084FAC9F978F2070037EEFAFDA458
-:10FE3000C16840A959F8E0890010F2CAFFFC50AA35
-:10FE4000FAC3F978720AE6080039F34AFDA42FF8DC
-:10FE5000FB480680C048720A2FC950A94062049826
-:10FE60009512BF589508FE9FFC03EDB30004C441F2
-:10FE7000FAF806805800C1D01037C064FACEF9787D
-:10FE8000FC070037C1D8FAC8F9841AD8FAC8FAD0E2
-:10FE90000A9A1AD8FAC8FBCC0E9B1AD8029CFAC848
-:10FEA000F974FAC9FFCCF01F014C2FDD780AC208A3
-:10FEB0002FF61039C084FACCF978F8070037EEFA3B
-:10FEC000FDA4C16840A959F8E0890010F2CAFFFCFE
-:10FED00050AAFACBF978720AF6080039F34AFDA461
-:10FEE0002FF8FB480680C048720A2FC950A9406904
-:10FEF0009509FE9FFBBDE2130040C440FAF806805E
-:10FF00005800C1D01037C064FAC8F978F00700373C
-:10FF1000C1D8FAC8F9841AD8FAC8FAD00A9A1AD8F5
-:10FF2000FAC8FBCC0E9B1AD8029CFAC8F974FAC91D
-:10FF3000FFCCF01F01292FDD780AC2082FF61039F7
-:10FF4000C084FAC3F978E6070037EEFAFDA4C16869
-:10FF500040A959F8E0890010F2CAFFFC50AAFAC281
-:10FF6000F978720AE4080039F34AFDA42FF8FB4837
-:10FF70000680C048720A2FC950A9406EB40EFE9F79
-:10FF8000FB77FAF806805800C1D01037C064FACC6D
-:10FF9000F978F8070037C1D8FAC8F9841AD8FAC82E
-:10FFA000FAD00A9A1AD8FAC8FBCC0E9B1AD8029C2F
-:10FFB000FAC8F974FAC9FFCCF01F01072FDD780ADF
-:10FFC000C2082FF61039C084FACBF978F60700374B
-:10FFD000EEFAFDA4C16840A959F8E0890010F2CA00
-:10FFE000FFFC50AAFAC3F978720AE6080039F34A0E
-:10FFF000FDA42FF8FB480680C048720A2FC950A9FB
-:02000004800377
-:1000000040629502FE9FFB34A5A30C99EDB3000559
-:10001000C571FAF806805800C2601037C0A4FACE45
-:10002000F978FC070037EEEAFDA4FAEB0000C1887E
-:10003000FAC8F9841AD8FAC8FAD01AD8FAC8FBCC88
-:100040001AD8FAC8F974FAC9FFCC0A9A0E9B029C16
-:10005000F01F00E12FDDF8E80000FAE900003000B1
-:10006000E08F03992FF61039C0B4FAC8F978F00779
-:100070000037EEEAFDA4FAEB0000E08F038C40A904
-:1000800059F8E0890016F2CAFFF850AAF2EA000017
-:10009000FAEB0000FACAF978F4080039FAEA00002D
-:1000A000F2EBFDA42FF8FB480680E08F0374F2EA20
-:1000B00000002F89FAEB000050A9E08F036CEDB32C
-:1000C0000004C141FAF806805800C0801037C60409
-:1000D000FACAF978F4070037C7782FF61039C774D1
-:1000E000FAC9F978F2070037C6F8EDB30006C45133
-:1000F000FAF806805800C1D01037C064FACCF978FD
-:10010000F8070037C1D8FAC8F9841AD8FAC8FAD063
-:100110001AD8FAC8FBCC1AD8FAC8F974FAC9FFCCB5
-:100120000A9A0E9B029CF01F00AC2FDD9818C22883
-:100130002FF61039C084FACBF978F6070037EF08AC
-:10014000FDA6C18840A959F8E0890012F2CAFFFC57
-:1001500050AA7209FAC2F978E408003A2FF8F54972
-:10016000FDA4FB480680F1D9B010C04892182FC9F1
-:1001700050A95C785018C418FAF806805800C1D00D
-:100180001037C064FACCF978F8070037C1D8FAC83C
-:10019000F9841AD8FAC8FAD00A9A1AD8FAC8FBCC45
-:1001A0000E9B1AD8029CFAC8F974FAC9FFCCF01F4A
-:1001B000008A2FDD780AC2082FF61039C084FACBE6
-:1001C000F978F6070037EEFAFDA4C16840A959F89E
-:1001D000E0890010F2CAFFFC50AAFAC2F978720A4C
-:1001E000E4080039F34AFDA42FF8FB480680C04814
-:1001F000720A2FC950A9501A300E500E1C90E08F71
-:1002000002CA505750420897408540740C99FAF83A
-:1002100006805800C1D01037C064FACCF978F807CE
-:100220000037C1D8FAC8F9841AD8FAC8FAD01AD84F
-:10023000FAC8FBCC1AD8FAC9FFCCFAC8F9740A9AE2
-:100240000E9B029CF01F00642FDD7809C2182FF668
-:100250001039C084FACBF978F6070037EEF9FDA41F
-:10026000C17840A959F8E0890010F2CAFFFC50AAF1
-:10027000FAC2F9787209E408003AF549FDA42FF8AA
-:10028000FB480680C058F2C8FFFC50A8720933082A
-:10029000300EFB6806844D1C37885019A1B3FB68EB
-:1002A0000685500E509CE08F02755057300B50421F
-:1002B000FB6B06870897408540740C99FAF8068016
-:1002C0005800C1D01037C064FACAF978F407003773
-:1002D000C1D8FAC8F9841AD8FAC8FAD01AD8FAC814
-:1002E000FBCC0E9B1AD80A9AFAC8F974FAC9FFCC4B
-:1002F000029CF01F00392FDD7807C2082FF6103955
-:10030000C084FAC9F978F2070037EEF7FDA4C16896
-:1003100040A959F8E0890010F2CAFFFC50AA720700
-:10032000FAC2F978E4080039F347FDA42FF8FB4836
-:100330000680C04872072FC950A9403E580EC1051B
-:100340001C9A300B0E9CF01F0026E08002B6F807C6
-:100350000105403C1835E08902B0E08F02AF0E9CE9
-:100360003000F01F00201895E08F02A9A5A30C997A
-:10037000EDB30005C581FAF806805800C2001037B9
-:10038000C064FACBF978F6070037C208FAC8F984D6
-:100390001AD8FAC8FAD00A9A1AD80E9BFAC8FBCC17
-:1003A000029C1AD8FAC8F974FAC9FFCCF01F000AE7
-:1003B0002FDDF8EA0000FAEB0000C3282FF6103911
-:1003C000C124FACAF978F4070037EEE8FDA4FAE987
-:1003D0000000C2688002F2288003EDE4800328A4B4
-:1003E0008002EDD040A959F8E0890015F2CAFFF863
-:1003F00050AAF2EA0000FAEB0000FACAF978F40811
-:100400000039FAEA0000F2EBFDA42FF8FB48068061
-:10041000C078F2EA00002F89FAEB000050A93010F2
-:10042000E08F01B9EDB30004C141FAF8068058002D
-:10043000C0801037C604FACAF978F4070037C778C5
-:100440002FF61039C774FAC9F978F2070037C6F8E1
-:10045000EDB30006C451FAF806805800C1D0103739
-:10046000C064FACCF978F8070037C1D8FAC8F98423
-:100470001AD8FAC8FAD01AD8FAC8FBCC1AD8FAC8CF
-:10048000F974FAC9FFCC0A9A0E9B029CF01F0086F1
-:100490002FDD9818C2282FF61039C084FACBF978CE
-:1004A000F6070037EF08FDA6C18840A959F8E08992
-:1004B0000012F2CAFFFC50AA7209FAC2F978E408E5
-:1004C000003A2FF8F549FDA4FB480680F1D9B01099
-:1004D000C04892182FC950A95C785018C418FAF86F
-:1004E00006805800C1D01037C064FACCF978F807FC
-:1004F0000037C1D8FAC8F9841AD8FAC8FAD00A9ACB
-:100500001AD8FAC8FBCC0E9B1AD8029CFAC8F97408
-:10051000FAC9FFCCF01F00642FDD780AC2082FF65D
-:100520001039C084FACBF978F6070037EEFAFDA44B
-:10053000C16840A959F8E0890010F2CAFFFC50AA2E
-:10054000FAC2F978720AE4080039F34AFDA42FF8D8
-:10055000FB480680C048720A2FC950A9501A300EB5
-:100560003010500EC1794D1C509CEDB30005C541B3
-:10057000FAF806805800C2201037C0A4FACBF978E8
-:10058000F6070037EEE8FDA4FAE90000CF28FAC824
-:10059000F9841AD8FAC8FAD00A9A1AD80E9BFAC85F
-:1005A000FBCC029C1AD8FAC8F974FAC9FFCCF01F28
-:1005B000003E2FDDF8EA0000C0C8ECCAFFFF10368D
-:1005C000C0B4FAC9F9781496F2070037EEEAFDA430
-:1005D000FAEB0000CCE840A959F8E0890016F2E6F1
-:1005E0000000F2CBFFF8FAE7000050ABFAC6F9784A
-:1005F000EC080039FAE60000F2E7FDA42FF81496A3
-:10060000FB480680CB68F2E600002F89FAE700007D
-:1006100050A91496CAE8EDB30004C161FAF8068047
-:100620005800C0801037C6A4FACEF978FC0700370E
-:10063000C838ECCAFFFF1036E0840082FACCF978A3
-:10064000F8070037C788EDB30006C4D1FAF8068072
-:100650005800C1D01037C064FACCF978F8070037D9
-:10066000C1F8FAC8F9841AD8FAC8FAD01AD8FAC860
-:10067000FBCC1AD8FAC8F974FAC9FFCC0A9A0E9BB7
-:10068000029CF01F00092FDD9818C2A8ECCAFFFFDA
-:100690001036C0D4FACBF9781496F6070037EF0875
-:1006A000FDA6C1E88002F2288003EDE440A959F8D4
-:1006B000E0890013F2CBFFFC50AB7209FAC6F9785F
-:1006C000EC08003B2FF8F749FDA4FB480680149680
-:1006D000F1D9B010C058921814962FC950A95C785F
-:1006E0005018C458FAF806805800C1D01037C064BA
-:1006F000FACCF978F8070037C1F8FAC8F9841AD8A3
-:10070000FAC8FAD00E9B1AD8FAC8FBCC0A9A1AD8A3
-:10071000029CFAC8F974FAC9FFCCF01F00C42FDD9F
-:10072000780BC248ECCAFFFF1036C094FACBF978B8
-:10073000F60700371496EEFBFDA4C18840A959F8CE
-:10074000E0890011F2CBFFFC50ABFAC6F978720BCE
-:10075000EC080039F34BFDA42FF81496FB480680F3
-:10076000C058720B14962FC950A9501B300E500E52
-:100770004008401C300B18485F18E7E80008F608EE
-:100780001800C0703308FB620685A1B3FB680684BD
-:100790003020300AFB6A068740395809C025A7D3A4
-:1007A0004038401758085F194008FAC5F9900E48BC
-:1007B00030025F18F3E81008E4081800C5E03018AC
-:1007C000F0001800C0603028F0001800C051C3E8E5
-:1007D0000A970690C2C80A97FAE80000F5D8C00345
-:1007E0002D0A0EFAF00B1603F20C1603F7E911DBD3
-:1007F0001899169858085C29CF21FAE90000EDB342
-:100800000000C4613309F20A1800C4200EF9C408BC
-:10081000F01F008730A82D0A3009AE8AFAEA0000DE
-:10082000F01F008416991498FAE90000EECC00013C
-:1008300030A83009FAEA00001897589A5C2BFE9B02
-:10084000FFE91BF800932D08C2080A97FAE8000098
-:10085000F5D8C004409EFC0A070A0EFAF20B1604F3
-:10086000F00A1604F5E911CA1699149858085C297B
-:10087000CF01FAE90000C0C85800C091EDB30000F4
-:10088000C061FAC7F9913308AE88C0280A970E15DF
-:100890004030C14850425057407410925802E08096
-:1008A00001B6300CFB620648FB6C06873015300041
-:1008B000FAC7F9B8C03840353000069A0699E21AEE
-:1008C0000002E2190084508A5079EA000C42FB3899
-:1008D0000687300BF6081800F7B201FF580AF7B286
-:1008E00001FE5809C4514048041850385808E0899E
-:1008F000001DC3E8FB4C06784CFE310C890E891CA8
-:10090000FB4B0674587BE08900042F84C0B8FACAF8
-:10091000F990402B029CF01F0049E0810189FAC444
-:10092000F9F8403B210B503BFAF90678FAF80674C7
-:10093000F2CCFFF0F0CBFFFF4BFA403E590EFE9990
-:10094000FFDB1C09890AFB490678891EFB4B0674EC
-:10095000587BE08900042F84C0B8FACAF990402B74
-:10096000029CF01F0036E0810163FAC4F9F8FB38FD
-:100970000687300CF8081800C1F0FAF80678FAC9B2
-:10098000F9792FF88909FB4806783019FAF80674C6
-:1009900089192FF8FB4806745878E08900042F84E1
-:1009A000C0B8FACAF990402B029CF01F0024E081E5
-:1009B000013FFAC4F9F8408B580BC1F0FAF80678F9
-:1009C000FAC9F97C2FE88909FB4806783029FAF83A
-:1009D000067489192FF8FB4806745878E0890004DA
-:1009E0002F84C0B8FACAF990402B029CF01F001364
-:1009F000E081011EFAC4F9F8407AE04A0080C5118E
-:100A00004049041950395809E0890029C4A848C848
-:100A1000310EFB4C06788908891EFB4B0674587B07
-:100A2000E08900102F84C1788002F228800373408F
-:100A30008002D9988003EDF88002F5488003ECE845
-:100A4000FACAF990402B029CF01F0052E08100F09E
-:100A5000FAC4F9F8403C210C503CFAF90678FAF84F
-:100A60000674F2CCFFF0F0CBFFFF4CBA403E590EBB
-:100A7000FE99FFCF1C09890AFB490678891EFB4BAA
-:100A80000674587BE08900042F84C0B8FACAF99034
-:100A9000402B029CF01F003FE08100CAFAC4F9F825
-:100AA0000A105800E089001BC3B8FB4C0678310AD5
-:100AB0004B9C891A890CFB4B0674587BE089000417
-:100AC0002F84C0B8FACAF990402B029CF01F003165
-:100AD000E08100AEFAC4F9F82100FAF90678FAF8D4
-:100AE0000674F2CCFFF0F0CBFFFF4ABA5900FE9932
-:100AF000FFDE0009890AFB4906788910FB4B067462
-:100B0000587BE08900042F84C0B8FACAF990402BC2
-:100B1000029CF01F0020E081008BFAC4F9F8FAF87B
-:100B2000067889158907F0050005FAF80674FB4573
-:100B300006782FF8FB4806745878E08900042F8463
-:100B4000C0A8FACAF990402B029CF01F0012C6F10F
-:100B5000FAC4F9F8E2130004C41040470417580718
-:100B6000E089001CC3B8FB4C067889058913FB4B50
-:100B70000674587BE08900042F84C098009A402BAB
-:100B8000029CF01F0004C531FAC4F9F82107C0988F
-:100B90008002F5488003ECE84AB53103FAC0F990C9
-:100BA000FAF90678FAF80674F2CCFFF0F0CBFFFF02
-:100BB0004A5A5907FE99FFD90E09890A8917FB4934
-:100BC0000678FB4B0674587BE08A0009FACAF99054
-:100BD000402B029CF01F001DC2A140684049E4095F
-:100BE0000C4204085068FAF806785808C080FACA1F
-:100BF000F990402B029CF01F0015C1913003FAC4FC
-:100C0000F9F8FB430674FE9FF53302934020FAF88F
-:100C100006785808C080029CFACAF990009BF01F21
-:100C2000000BC0613008FB480674C0284020806873
-:100C3000EDB80006C0313FF25062406CFE3DF978DD
-:100C4000D83200008003EDF88002F548D431FACDA7
-:100C500001E03007503C16961295507A5087505755
-:100C60000E930E905047407E1D8957795809E080B9
-:100C700007A22FFE4D5C507E780C502CF809070817
-:100C8000E2180008C1B06C185808E08900070C9BF6
-:100C9000403CF01F004FCE816C084CCBF0C9FFFFE9
-:100CA000760A1188F4080708EDB80003CDD16C1856
-:100CB0008D0920182FF08D18CE7BE0490025E081AA
-:100CC000008906941091109236CA344C358E407BC0
-:100CD0001739507B364BF6091800E08000BBE08BDB
-:100CE0000042F8091800E08000B4E08B0021339B3B
-:100CF000F6091800E08B01D2330BF6091800E082E8
-:100D00000094325BF6091800C640E08B000B5809CE
-:100D1000E080074F324BF6091800E08101BFC8A8F8
-:100D200032ABF6091800E08101B9C6D8FC091800F9
-:100D3000E08000A4E08B000C34CBF6091800C7005B
-:100D400034FAF4091800E08101A9C8C835BAF409D9
-:100D50001800E0800098363AF4091800E081019EFE
-:100D6000C9E836FBF6091800C7E0E08B0017369B90
-:100D7000F6091800C720E08B0008368BF60918002A
-:100D8000E081018CC4F8F4091800C3F036EAF409D4
-:100D90001800E0810183C8D8373AF4091800C1303F
-:100DA000E08B0008370AF4091800E0810177C7A832
-:100DB000375AF4091800C5C0378AF4091800E081D1
-:100DC000016DC5B83029C7590000049C800328BCB8
-:100DD0006C185808E08900080C9B403CF01F006428
-:100DE000E08106E0407A6C08F539FFFF118AF20ACB
-:100DF0001800E08106E02FF82FF08D086C182018FD
-:100E00008D18C32BA5A1C64B407B1789F409180088
-:100E1000C0512FFBA1B1507BC5BBA1A1C59BA1B106
-:100E2000C57BA3A1C55BE4020022A17223021202CA
-:100E3000C4FBE0420020E08B0007E4C4000130184E
-:100E40003002C46B3168403A9538E08F06ABA1A1FF
-:100E50004C8930AE5089C2B84C6C300B508C505B12
-:100E6000C279A1A14C4A3089508A5059C2194C2EDE
-:100E700030AC508E505CC1C94BFBA9B1508B310ACC
-:100E8000C169301950085019407BFACCFFD4F01FCB
-:100E9000003BA7A1507C40194008C0B9A7A1300968
-:100EA000C0894B59E81102205089310E505EC009AB
-:100EB000EDB10004FE90FED9EDB10002C441580826
-:100EC000C2500E34C064FACCFE20F8040024C2786C
-:100ED000FACAFED40A99F407002A0E98130B14AB31
-:100EE0002FF81034CFC4EEC9FFFFEE0811FFF0C792
-:100EF000FFFF2FE808080807EA080025F2070007A7
-:100F0000FAC8FED4F0040324C1C8E6C8FFFF0E33BC
-:100F1000C094FACBFE201093F6040024E8F4FF4CB2
-:100F2000C1086A042FC559F7E089000B1093FACA6B
-:100F3000FE20F40700282FF7F144FF4CC02810933F
-:100F4000A800C92AEDB10000C1A15808E0800088BE
-:100F50000E34C635FACAFED40A99F407002A0E9850
-:100F6000130B14AB2FF81034CFC4C678800328BC01
-:100F70008002EFB480032E6C800329ECE2110002A2
-:100F8000C4805808C2500E34C064FACCFE20F80465
-:100F90000024C278FACAFED40A99F407002A0E98EF
-:100FA000130B14AB2FF81034CFC4EEC9FFFFEE08BB
-:100FB00011FFF0C7FFFF2FE808080807EA0800251F
-:100FC000F2070007FAC8FED4F0040324C1C8E6C83B
-:100FD000FFFF0E33C094FACBFE201093F6040024DA
-:100FE000E8F4FF4CC1086A042FC559F7E089000BEB
-:100FF0001093FACAFE20F40700282FF7F144FF4CA3
-:10100000C0281093E008141F89108908FE9FFE2D48
-:101010005808C2500E34C064FAC9FE20F2040024FD
-:10102000C278FACAFED40A99F407002A0E98130B64
-:1010300014AB2FF81034CFC4EEC9FFFFEE0811FF38
-:10104000F0C7FFFF2FE808080807EA080025F207A5
-:101050000007FAC8FED4F0040324C1C8E6C8FFFFA5
-:101060000E33C094FAC2FE201093E4040024E8F486
-:10107000FF4CC1086A042FC559F7E089000B109393
-:10108000FACEFE20FC0700282FF7F144FF4CC028C1
-:1010900010938900FE9FFDE9402CF8090709EDB97E
-:1010A0000000C021A1A14C7B30AA508B505A30398E
-:1010B0006C1A580AE089000C501950080C9B403CEF
-:1010C000F01F004140194008E081056CEDB10006B9
-:1010D000C151C1F86C1A201A8D1A580AE08A00040E
-:1010E0008D0CC0B8501950080C9B403CF01F0036C6
-:1010F00040194008E08105562FF06C0A4B3EF4CCB5
-:10110000FFFF7C0B158AF60A070AEDBA0003CE3002
-:101110005829E08001C05839E080031D5819E0804B
-:10112000011B029CE21C0010502C5802F9B2000175
-:10113000E3D1C001E080009B580CC0303001C4985E
-:101140005808C2500E34C064FACBFE20F6040024C6
-:10115000C278FACAFED40A99F407002A0E98130B33
-:1011600014AB2FF81034CFC4EEC9FFFFEE0811FF07
-:10117000F0C7FFFF2FE808080807EA080025F20774
-:101180000007FAC8FED4F0040324C228E6C8FFFF13
-:101190000E33C094FACAFE201093F4040024E8F43D
-:1011A000FF4CC1686A042FC559F7E08900111093FC
-:1011B000FAC9FE20F20700282FF7F144FF4CC0883F
-:1011C0008002EFB4800328BC0000049C10930891B7
-:1011D00030044D5E7C081034E08004E46C08118912
-:1011E000FAC8FE200808F169FFCC6C1820188D1889
-:1011F0006C082FF8308A8D08300BFACCFE2CF01FCB
-:10120000004B2FF4FAC8FE2C0899FACAFE54029B30
-:10121000403CF01F00475BFCE08004C4580CC061F8
-:10122000402C580CC051830CC0385BECC0B0080097
-:10123000402B2012580BF9B40100F7B100FCFBF46D
-:1012400000026C185808E089000B0C9B403CF01F12
-:101250000039C0505804C050E08F04A45802CBA1FC
-:10126000402A580AFE91FD01C718402E580EC1A011
-:101270006C186C090438C0F4100910128D091001A3
-:101280000C9B403CF01F002BCF405801E08101E651
-:10129000E08F0488040904188D098D180401E08F7B
-:1012A00001DD5808C2500E34C064FACCFE20F804A8
-:1012B0000024C278FACAFED40A99F407002A0E98CC
-:1012C000130B14AB2FF81034CFC4EEC9FFFFEE0898
-:1012D00011FFF0C7FFFF2FE808080807EA080025FC
-:1012E000F2070007FAC8FED4F0040324C258E6C887
-:1012F000FFFF0E33C094FACBFE201093F6040024B7
-:10130000E8F4FF4CC1986A042FC559F7E08900142E
-:101310001093FACAFE20F40700282FF7F144FF4C7F
-:10132000C0B80000000009AC8002E8BC800328407F
-:10133000800328BC1093049A089C0C99301BF01F62
-:1013400000C9E080042FF800000040492FF95049FF
-:10135000FE9FFC8B5802F9B200FFEDB10004C261A0
-:1013600030040891C1286C188D0920188D182FF4AD
-:101370000832E080008D5808E08900080C9B403C52
-:10138000F01F00B9E08100846C08FACEFE20F0C99D
-:10139000FFFF1188FC080008F138FE4CE208180035
-:1013A000CE315804C741E08F04065808C2500E34AD
-:1013B000C064FACCFE20F8040024C278FACAFED435
-:1013C0000A99F407002A0E98130B14AB2FF8103467
-:1013D000CFC4EEC9FFFFEE0811FFF0C7FFFF2FE8F3
-:1013E00008080807EA080025F2070007FAC8FED433
-:1013F000F0040324C1C8E6C8FFFF0E33C094FACB43
-:10140000FE201093F6040024E8F4FF4CC1086A049F
-:101410002FC559F7E089000B1093FACAFE20F40794
-:1014200000282FF7F144FF4CC02810930891300892
-:10143000C1886C1A201A8D1A133A02CA8D095802F3
-:10144000C1D06C195809E089000D50080C9B403C34
-:10145000F01F00854008C0500831C101E08F03A291
-:101460006C0AFACEFE2014992012158AFC0A000A92
-:10147000F53AFE4CF00A1800CDD1E2040104E080F8
-:10148000039A404C2FFC504C3008A2880800FE9F65
-:10149000FBEC029BE21B0010502B5802F9B200FF3C
-:1014A000E3D1C001E08000BC580BC050FACAFE2452
-:1014B000506AC4385808C2500E34C064FAC9FE20BD
-:1014C000F2040024C278FACAFED40A99F407002A6A
-:1014D0000E98130B14AB2FF81034CFC4EEC9FFFFD6
-:1014E000EE0811FFF0C7FFFF2FE808080807EA0819
-:1014F0000025F2070007FAC8FED4F0040324C1C88F
-:10150000E6C8FFFF0E33C094FACEFE201093FC0411
-:101510000024E8F4FF4CC1086A042FC559F7E0899C
-:10152000000B1093FACCFE20F80700282FF7F144A7
-:10153000FF4CC0281093506430014CC4C598680813
-:101540001031E080032FFAC8FE200208F169FFCCB9
-:101550006C1820188D186C082FF8308A8D08300B05
-:10156000FACCFE2CF01F00422FF1FAC8FE2C029993
-:10157000FACAFE54406B403CF01F003E5BFCE0802A
-:101580000311580CC041406B970CC0385BECC23063
-:10159000406A740CF01F0038C100FAC4FE20020437
-:1015A0002354C088098B201120140C9A403CF01F52
-:1015B00000335801CF81C2C80200402920125809C7
-:1015C000F8011710FBF80006F7B800FCFBF80A0654
-:1015D000FBF100026C185808E089000B0C9B403CA2
-:1015E000F01F0021C0505801E08102DCC1186C08D6
-:1015F00058025F1A11894A2E300C7C08F00907083E
-:10160000EC180008F5E80238F8081800C991402BDA
-:10161000580BFE91FB2A406A950BC98A402E580E42
-:10162000C300C1086C188D0A20188D182FF10232E2
-:10163000C1405808E08900070C9B403CF01F000A9D
-:10164000C0C16C0848ECF0CAFFFF78091188F208A5
-:101650000708EDB80003CE710200FE9FFB060000F4
-:10166000800320B8800328BC000009AC8002E8BCDD
-:10167000800328408003274880032FF40000049C47
-:101680005808C2500E34C064FACBFE20F604002481
-:10169000C278FACAFED40A99F407002A0E98130BEE
-:1016A00014AB2FF81034CFC4EEC9FFFFEE0811FFC2
-:1016B000F0C7FFFF2FE808080807EA080025F2072F
-:1016C0000007FAC8FED4F0040324C1C8E6C8FFFF2F
-:1016D0000E33C094FACAFE201093F4040024E8F4F8
-:1016E000FF4CC1086A042FC559F7E089000B10931D
-:1016F000FAC9FE20F20700282FF7F144FF4CC0285A
-:1017000010930891C1286C1920198D19113902C93B
-:101710008D085802C1506C185808E08900070C9BCE
-:10172000403CF01F0059C0C16C094D8E12987C0AD4
-:1017300013892012F4090709EDB90003CE51404C7A
-:101740002FFC504C08103008E2000000A288FE9FD9
-:10175000FA8CE4C90001E0490026E08B0005300B5B
-:10176000506BC058E4CA00273272506A3009FACE72
-:10177000FE54509950A7E8110D80502E35894057DE
-:101780006C0A339C158AF80A1800E08B0015338B1D
-:10179000F60A1800C4E2330BF60A1800C270E08B98
-:1017A000004532BBF60A1800C51032DBF60A1800F5
-:1017B000C7C1C4C8F20A1800C4E0E08B000AF4CB29
-:1017C0000041305EFC0B1800E08B0070C398361CA3
-:1017D000F80A1800C6A3366BF60A1800E088003134
-:1017E000378EFC0A1800C611C368029BEDB1000BCE
-:1017F000C3C15807E06B0200E3DBE031F9B7000832
-:10180000EDB1000AC041E011FA7FC2F8409B406C84
-:101810002FFB580CF7BC0101FBFC1A06F7B201FFC5
-:10182000E011FC7F509BC248499EFC070417C0B8DA
-:10183000497CF80704175887E0890006C36858A751
-:10184000E08A0034E011F47FC108EDB10007C2D195
-:10185000A7D1C0B8029BE21B0600E04B0200C251B8
-:10186000A9D13107E8110500402B16CA502B6C1A7C
-:10187000201A8D1A580AE08A000D6C0A2FFA8D0A78
-:10188000C1180000800328BC0000049C8003EF08FE
-:10189000501950080C9B403CF01F00BD40194008F7
-:1018A000C0412012FE91FF6E505740A7EDB10008D5
-:1018B000C161FAC9FE54402A123AE088000B40295F
-:1018C0000C9A137B403C50085029F01F00B240088E
-:1018D000FAC9FE5440221232E080016D029AE21AE7
-:1018E0000010E081014B402EBC8A50084059FACBD1
-:1018F000FE54403C40825D1202994008E2190020EB
-:10190000C2A05808C1400E34C064FACEFE20FC04C8
-:101910000024C1D9FACAFED40A99F407002A0E9805
-:10192000130B14AB2FF81034CFC4CF68E6C8FFFFF9
-:101930000E33C064FACBFE20F6040024C0796A049A
-:101940002FC559F7E08901151093FACAFE20F40754
-:101950000028C0A9EDB10002C4415808C2500E349D
-:10196000C064FAC9FE20F2040024C278FACAFED488
-:101970000A99F407002A0E98130B14AB2FF81034B1
-:10198000CFC4EEC9FFFFEE0811FFF0C7FFFF2FE83D
-:1019900008080807EA080025F2070007FAC8FED47D
-:1019A000F0040324C1C8E6C8FFFF0E33C094FAC296
-:1019B000FE201093E4040024E8F4FF4CC1086A04FC
-:1019C0002FC559F7E089000B1093FACEFE20FC07D3
-:1019D00000282FF7F144FF4CC0281093A80CCCA886
-:1019E000F5D1C001C2A05808C1400E34C064FACB82
-:1019F000FE20F6040024CAB8FACAFED40A99F407F5
-:101A0000002A0E98130B14AB2FF81034CFC4C8481B
-:101A1000E6C8FFFF0E33C064FACAFE20F4040024B7
-:101A2000C9586A042FC559F7E08900A31093FAC971
-:101A3000FE20F2070028C988E2110002C5904D6916
-:101A400040821232C091FACBFE544059403C5008BB
-:101A5000F01F0052C088FACBFE544059403C500859
-:101A6000F01F004F40085808C2500E34C064FACE30
-:101A7000FE20FC040024C278FACCFED40A99F807B0
-:101A8000002C0E98130E18AE2FF81034CFC4EEC9E8
-:101A9000FFFFEE0811FFF0C7FFFF2FE80808080757
-:101AA000EA080025F2070007FAC8FED4F004032470
-:101AB000C1C8E6C8FFFF0E33C094FACCFE201093D5
-:101AC000F8040024E8F4FF4CC1086A042FC559F754
-:101AD000E089000B1093FAC9FE20F20700282FF7C7
-:101AE000F144FF4CC0281093891A890BC438580858
-:101AF000C2500E34C064FAC8FE20F0040024C2783C
-:101B0000FACAFED40A99F407002A0E98130B14ABF4
-:101B10002FF81034CFC4EEC9FFFFEE0811FFF0C755
-:101B2000FFFF2FE808080807EA080025F20700076A
-:101B3000FAC8FED4F0040324C1C8E6C8FFFF0E3380
-:101B4000C094FAC2FE20E40400241093E8F4FF4C91
-:101B5000C1086A042FC559F7E089000B1093FACE2B
-:101B6000FE20FC070028F144FF4C2FF7C0281093FB
-:101B7000890C404C2FFC504CFAC8FE54409B10106E
-:101B8000402A1600F4000000FE9FF86F800328BC76
-:101B900080032FF480032E6C80032CE480032B340D
-:101BA00040495809C0508C68EDB80006C0313FF874
-:101BB0005048404C288DD832D421217D1497189656
-:101BC000129A5807C064E068008B99383FFCC2281D
-:101BD0005807EE0C1700F9B901FFEFD9E10C109985
-:101BE000E0680208BA683FF8504B505C500B502C2C
-:101BF000BA781A9B0C9CF01F00095BFCC044E0689B
-:101C0000008B8D385807F9B90100FBF81000F1F985
-:101C10001E002E9DD82200008002F568D401129883
-:101C20001499169A189B483C780CF01F0003D802B0
-:101C30000000059880031BB8D4214B3818961697DE
-:101C4000700C580CC06078685808C031F01F002F25
-:101C50004AF81037C0514AC870087007C0E84AD81F
-:101C60001037C0514A8870087017C0784AA81037DA
-:101C7000C0414A58700870278E68EDB80003C1E073
-:101C8000EDB80004C3E1EDB80002C1516EDB580BA2
-:101C9000C0A0EEC8FFBC103BC0400C9CF01F001F52
-:101CA00030088FD88E68E018FFDBAE6830088F18D8
-:101CB0006E488F088E68A3B8AE686E485808C0B1E9
-:101CC0008E68E2180280E0480200C0500C9C0E9B17
-:101CD000F01F00138E69F1D9C001C07030088F2841
-:101CE0006E585C388F68C068EDB90001EFF81005D8
-:101CF0008F286E485808C0618E68EDB80007C02173
-:101D0000DC2AD82A0000059880031F388003EF2CB6
-:101D10008003EF4C8003EF6C8003217C8003276CF1
-:101D20004828700C2F4C5EFC00000598D4211697B3
-:101D3000189676485808C7D0580CC060786858087C
-:101D4000C031F01F003D4BD81037C0316C07C0A820
-:101D50004BB81037C0316C17C0584BA81037EDF78F
-:101D600000028E6A1498EDBA0003C420ABBAAE6AC2
-:101D70006E185808E08900066F085808E08A005A73
-:101D80006EB85808C560E21A1000C0306F55C0F830
-:101D900030196E8B0C9C5D1818955BFCC0816C38FB
-:101DA00059D8C4708E68A7A8AE68D8228E68EDB8DE
-:101DB0000002C0916E1810156ED85808EFF8101078
-:101DC000EBD8E1156EB80C9C30090A9A6E8B5D1841
-:101DD0008E680A3CC261ABD8300C6E49AE688F1C6D
-:101DE0008F09EDB8000CC251EF450054D8226E4562
-:101DF0005805C1F06E04F5DAC0028F05F9B801008C
-:101E0000EFF800050A148F28C11808990A9A6EA8DD
-:101E10006E8B0C9C5D181814580CE08900078E68B6
-:101E2000A7A83FFCAE68D82218055804FE99FFEF1A
-:101E3000D82A000080031F388003EF2C8003EF4C6A
-:101E40008003EF6CD401189B580CC0714868487B24
-:101E5000700CF01F0007D8024868700CF01F0003D8
-:101E6000D80200008003ECA880031D2C800325E825
-:101E7000000005985EFC5EFCD401483BF01F0003A7
-:101E8000D80200008003629080032640D42116957A
-:101E9000F606105CECCBFFF4F01F00071897C0901B
-:101EA0009915300B2F4C0C9A8F2C8F0BF01F0003C1
-:101EB0000E9CD8228002E2BC8002E8BCD42149C832
-:101EC000189670076E685808C0410E9CF01F0019E4
-:101ED000EEC7FF2830056E2C6E18C0689869EA09B5
-:101EE0001900C1202A4C2018CFA76E085808C071CD
-:101EF000304B0C9CF01F00108F0CC0306E07CECB07
-:101F000030C88D38D8223008F948004C99089928F3
-:101F1000991899489958996899D899E8F9480048C2
-:101F20003FF8B8783018B868D82200008003ECA8D1
-:101F300080031F3880031E8CD421189678675807B9
-:101F4000C4714A48301599A8F94700D8F94700DC10
-:101F5000F94700E09965F01F00208D0C0C9CF01FE4
-:101F6000001E8D1C0C9CF01F001C6C093048930750
-:101F7000B268931793276C18B27793479357936778
-:101F80009389910791179127494E495B939E93AB93
-:101F9000494A495493BA93C43099B069B07591C411
-:101FA0009147915791679188919E91AB91BA8D2CF1
-:101FB00031289907B868991799273028B87899C4B3
-:101FC0009967999E99AB99BA99479957998CD82254
-:101FD00080031E7880031EBC80032B1080032AD848
-:101FE00080032AAC80032A9CD4014858169AFAC967
-:101FF000FFFC189B700CF01F0003D802000005982E
-:1020000080033424D43114901291169310971895AC
-:10201000F20A02425802C0310491C418580CC06040
-:1020200078685808C031F01F001F49F81037C031D8
-:102030006A07C0A849D81037C0316A17C05849C8C4
-:102040001037EBF700026E185808C03430088F18AC
-:102050000496C148F01F00176E08080308160E9B6F
-:10206000F00400040A9C8F04F01F0013C070E40603
-:102070000109F2000D081091C1286E146E08069C2B
-:10208000089A109B0836FE9BFFE70C9AF01F000988
-:102090006E080C088F086E180C188F18029CD83226
-:1020A00080031F388003EF2C8003EF4C8003EF6C1C
-:1020B0008002E736800328BCD40112981499169A3E
-:1020C000189B483C780CF01F0003D80200000598CC
-:1020D00080032004D42116951897F01F00234A345A
-:1020E00068287016E016FFFCECC8FF91F0050105AA
-:1020F000E015FF80EAC50080E045007FE08A00230C
-:10210000300B0E9CF01F001A68280C08103CC1A16F
-:10211000EA0B11000E9CF01F00165BFCC171300B26
-:102120000E9CF01F00136828F808010958F9E08A8E
-:10213000000AA1A9911948F8700948F8F80901099D
-:1021400091090E9CF01F000DD82A68280A16A1A636
-:102150009116489870090A190E9C9109F01F000702
-:10216000DA2A00008002E8CA0000059C8002EBC861
-:10217000000009A800007AD08002E8CCD42116968D
-:102180001897580BE08000CAF01F004E20864CEADA
-:102190006C18742EF9D8C001A1C8EC080009721B94
-:1021A000E01BFFFC1C39C1D1F6080008580CC081A7
-:1021B0006C09121612086C3B6C299729933B1099F5
-:1021C0009526A1A98D194C1972091238C0634C08C3
-:1021D0000E9C700BF01F003F0E9CF01F003FD8229A
-:1021E000931B580CC030300CC1086C0EF4C5FFF8BE
-:1021F0001C161C086C2E0A3EF9BC0001EDF51003FC
-:10220000EBFE1A02FDF51A03F20B000E7C1EEDBE6A
-:102210000000C1301608580CC0C14ABE722B2F8E68
-:102220001C3BC071973697268D2B8D3B301CC058B8
-:10223000722B7239932B97391099EC080908A1A9D0
-:102240008D19580CC671E04801FFE08B0013A3986C
-:10225000F4080039722B8D398D2B97369326A348BD
-:102260007419301BF6080948F3E810089518C528BA
-:10227000F00916095849E08B0006F00B16062C8B66
-:10228000C2D85949E08B0005F2CBFFA5C278E049DE
-:102290000054E08B0006F00B160C292BC1F8E04926
-:1022A0000154E08B0006F00B160F289BC178F00B51
-:1022B0001612E0490554E088001137EBC0F8000021
-:1022C0008002E8CA0000059C000009A400007ACC46
-:1022D000800320D48002E8CC284BF40B003C782902
-:1022E0001839C0E17418A34B301CF80B094BF1EB03
-:1022F000100B1298951BC0A872291839C060721A69
-:10230000E01AFFFC1438CF9372388D388D2993363C
-:1023100091260E9CF01F0002D82200008002E8CC1B
-:10232000D431203D14941895169774285808E080ED
-:10233000014A9668EDB80003C04176485808C0C10C
-:102340000E9B0A9CF01F00A1C0708E68A7A8AE6803
-:1023500030988B38C3598E6368000696E2160002E7
-:10236000C2103003E06204000696C04860036016A5
-:102370002F805806CFC0E0460400EC091780E4091E
-:1023800017B0069A6EA86E8B0A9C5D181816580C2A
-:10239000E08A0114682818188928E08001141803BD
-:1023A000CE9BE7D3C001C07050060C930C91501522
-:1023B0000892CA0806960891C048600360162F80EC
-:1023C0005806CFC08E686E241099E2190200C570BD
-:1023D0000836C4531099E2190480C4106E4B6E097C
-:1023E000161950096E59109CF209001A3028F40889
-:1023F0000C08FAE9000410944009E21C04002FF9CB
-:102400000C091238F2041730580CC110089B0A9CB2
-:10241000F01F006F1892C150400A6E4BF01F006D04
-:102420008E68E018FB7FA7B8AE68C0E8089A0A9CDF
-:10243000F01F00691892C0816E4B0A9CF01F006764
-:1024400030C88B38CBA8400A4009E80A010AE409E1
-:1024500000088F548F2A8F088F420C940836EC04A2
-:102460001730069B089A6E0CF01F005D6E08080876
-:102470008F086E2808180C948F28C30808365FBA96
-:102480006E0C6E48103C5FB8F5E80008F2081800C2
-:10249000C0E0069B089AF01F00526E0808080E9BC9
-:1024A0008F080A9CF01F004FC190C8786E591236F1
-:1024B000C0A36EA8069A6E8B0A9C5D181894E089DA
-:1024C000000EC7B80C9A069BF01F00456E080C085A
-:1024D0000C948F086E280C188F28622808188328FF
-:1024E000C71008160803C6DB6003601130082F8090
-:1024F00050085801CFA0400A580AC181029A30AB57
-:10250000069CF01F0039F9B80101F9D8E106EDD3B6
-:10251000E116F9B90101FBF91A00F9B80001E3D895
-:10252000E006F9B80001FBF80A000236EC04178057
-:10253000E20417B06E596E25F20500050A345F9A61
-:102540006E0C6E48103C5FB8F5E80008300AF408DD
-:102550001800C0E0069B0A9AF01F00216E080A08C6
-:102560000E9B8F08401CF01F001FC180C2681234F0
-:10257000C0A56EA8069A6E8B401C5D181895E08960
-:10258000000EC1B8089A069BF01F00156E080808D7
-:1025900008958F086E2808188F280A16C0710E9BA0
-:1025A000401CF01F0010C091500664280A188528AE
-:1025B000C0900A110A03C9EB8E68A7A8AE683FFC59
-:1025C000C028300C2FDDD83280031C388002E2BCDA
-:1025D0008002E7368002E8E88003217C8002E87E02
-:1025E00080031D2C800328A4D43130051893169045
-:1025F0000A91F01F00123FF2E6C7FF28C1786E264D
-:102600006E142F46C0D88C08E2081900C0808C18C0
-:10261000E4081900C040069C5D1018452A462014A5
-:10262000ECCB000C5804CF046E075807CE91F01F76
-:1026300000040A9CD832000080031E7480031E76BA
-:10264000D43130051691F8C7FF280A92F01F001008
-:102650003FF3C1686E266E142F46C0C88C08E4088C
-:102660001900C0708C18E6081900C0305D111845BB
-:102670002A462014ECCC000C5804CF146E075807DF
-:10268000CEA1F01F00040A9CD832000080031E7403
-:1026900080031E76D401201D4848189B1A9A700C9E
-:1026A000F01F00032FFDD80200000598800326B01C
-:1026B000D431169414921895F01F00204A08700720
-:1026C0005807C050300633DA0C98C0780A9CF01FC7
-:1026D000001D0E9CD8322FF6E8060709F0091800F5
-:1026E0005F1BF40918005F191669F0091800CF4143
-:1026F000C1A8029C0C9A089BF01F0013C1216E0117
-:102700000C010388E6081800C0C148D870080A9C6C
-:102710001017A3478507F01F000BE2CCFFFFD8324C
-:102720002FC7C02833D36E015801CE410A9CF01F39
-:102730000005029CD8320000800361BC000009B093
-:10274000800361BE8002EDE6E04C00FFE0880003FC
-:102750005EFD48487008F00C070CE21C00085EFCA7
-:102760000000049C481C5EFC8003EF8CD42120FDFB
-:10277000966816971896E2180002C3C1967BF00B74
-:102780001900C0551A9AF01F002AC0F48E650A98E5
-:10279000ABB8E2150080AE683004E0680400F9B51B
-:1027A0000140F0051700C1B84018E218F000E048F9
-:1027B00020005F04E0488000C0D16EB949D81039CC
-:1027C000C0918E68E0650400ABA8EF450050AE688C
-:1027D000C0688E68E0650400ABB8AE680A9B0C9CCC
-:1027E000F01F00158E68C0D1EDB80009C1E0A1B896
-:1027F000AE68EEC8FFB98F488F0830188F58C1589F
-:10280000A7B88F4CAE688F5548C88F0C8DA8580458
-:10281000C0C08E7CF01F000AEFF81206F9B9010162
-:10282000F1D9E138EFF81C062F1DD822800362A8E9
-:1028300080032AAC8002E2BC80031E788002F1682B
-:10284000D42118971096580AC041149B3019486A31
-:10285000F01F00065BFCC06130088D08E068008A4C
-:102860008F38D82280037E208003286C201D5809D1
-:102870005F09580BFA0B1700580A5F18F3E80008B5
-:102880003009F2081800C0303FECC0B8580AC03117
-:10289000149CC078158997091589F00918005F1CE8
-:1028A0002FFD5EFCF7DBC008C068201A19881638B7
-:1028B0005E0C2FFC580ACFA15EFAD703D4211697DD
-:1028C0001896580CC06078685808C031F01F00385E
-:1028D0004B881037C0316C07C0A84B781037C03117
-:1028E0006C17C0584B581037EDF7000230088F189E
-:1028F0008E68EDB80005C590EDB80002C1A0EDB836
-:102900000004C060A7A8AE6830988D38C4D8EDB870
-:102910000003C0B10E9B0C9CF01F0029C4618E689F
-:102920008F6CA3D88F2CAE688E68A3A8AE68C14800
-:102930006EDB580BC110EEC8FFBC103BC0400C9CB6
-:10294000F01F0020300C6F088FDC8F185808C04033
-:102950006EF88F08D8226E485808C0510E9B0C9C08
-:10296000F01F00198E68F1D8C002C0604978498B09
-:10297000700CF01F00186E4A6E980C9C8F0A6E59EE
-:102980006E8B5D188E688F1CADD8AE68580CE08ACF
-:102990000003D82A580CC041A5B8AE68C058A7A8F3
-:1029A000AE6830088F18DC2ADC2A000080031F384C
-:1029B0008003EF2C8003EF4C8003EF6C80031D2C11
-:1029C0008003217C8003276C8003ECA8800329D43A
-:1029D00080032640D4019868E21800095898C02066
-:1029E000D80AF01F0002D80280031E44D431189E7A
-:1029F0001738E048005EC030300AC0381738301A47
-:102A00003009FC090B0A2FF9E0490100CFB1580841
-:102A1000C041F6CC0001D832149632D4EC16000135
-:102A2000300735D5C0381498129BFC080B06F6C940
-:102A3000FFFF178A129CE80A1800C090EA0A1800E3
-:102A4000C1E0EE0A1800CF01169CD832138C103C5E
-:102A50005F53E04C005D5F0AE7EA100AEE0A1800D7
-:102A6000C03032D8CE2BF0CAFFFFFC0A000A14C6D1
-:102A70002FF81838CFD52FEB2FE9CDCBD8321498BB
-:102A8000F5DBC01FF00C1100104CFC187FF0F5ECCA
-:102A900013FCF00C010CBF9C5EFCD703D401967BA9
-:102AA000F01F0002D8020000800353E0D4211697E3
-:102AB000967BF01F00098E681099ADC95BFCEFF999
-:102AC0000C06EFFC1A15E0691000F1D9E138EFF8B7
-:102AD0001C06D822800362D4D421966816971495D8
-:102AE0001294E21801001896C0603029300A967BD3
-:102AF000F01F00068E68ADC808990A9A8E7B0C9C60
-:102B0000AE68F01F0003D822800362D4800353B460
-:102B1000D4211697967BF01F0007C0656F581808E0
-:102B2000EF480054D8228E68ADC8AE68D8220000A5
-:102B30008003694CD431208D4DB8500B7008507C07
-:102B4000502A1295501816970F36401AF4060704AB
-:102B5000E2140008CFA1E046002DC0410F3630142A
-:102B6000C058E046002BC0210F3658055F085905B4
-:102B70005F0A3009F1EA100AF20A1800C1D0E046F3
-:102B80000030C1210F8A358B378CF60A18005F0B95
-:102B9000F80A18005F0A144BF20B1800C0500F9689
-:102BA00031052FE7C0985808C070E0460030F9B5ED
-:102BB0000008F9B5010A5804C0713FF0E061FFFF59
-:102BC000EA117FFFC0483000FC118000EA03141FA7
-:102BD0000A980699009A029BF01F00340699505AF1
-:102BE0000A98009A029BF01F0032069C14981699CE
-:102BF000300A30003001149E109212934019F206F0
-:102C0000070BF3DBC001F9B90137F9B90057506977
-:102C1000ECC80030EDBB0002C0804069F7DBC002A9
-:102C2000EC090108580BC2D00A38C2B40430E601DE
-:102C300013005FB9F3EA13FAFC0A1800C1F104307B
-:102C4000E60113005F09405A14385F9AF5E900095C
-:102C5000FC091800C131E005064AEA010249504862
-:102C6000F8000349BF58F20B000B5038FAE0000C93
-:102C70001400E20B0041301AC0283FFA0F36CBFB9C
-:102C80005BFAC1715804C0713FF0E061FFFFEA11C7
-:102C90007FFFC0483000FC11800032284079933813
-:102CA000C10800000000049C800373408002D99892
-:102CB0005804C07030083009F0000100F2010141F1
-:102CC00040285808C0B0580AF9B801FFEFD8E10A07
-:102CD000FBFA1A00402940089308009A029B2F8DA6
-:102CE000D8320000D431209D4DE816927008508CE7
-:102CF000505A1295504816970F36404EFC0607035F
-:102D0000E2130008CFA1E046002DC0410F3630137A
-:102D1000C058E046002BC0210F3658055F08590502
-:102D20005F0A3009F1EA100AF20A1800C1D0E04641
-:102D30000030C1210F8A358B378CF60A18005F0BE3
-:102D4000F80A18005F0A144BF20B1800C0500F96D7
-:102D500031052FE7C0985808C070E0460030F9B53B
-:102D60000008F9B5010AEA04141F0A9808993FFA05
-:102D70003FFBF01F003D0899502B503A0A983FFA4C
-:102D80003FFBF01F003A300B300830094041E206AB
-:102D9000070EE1DEC001ECCC00305800F9B101377C
-:102DA000F9B100571C90E2100004C061EC01010C65
-:102DB000FDDEC002C3700A3CC354FAE000080038CC
-:102DC000E20913005FBE3000FDEB13FBE00B1800BF
-:102DD000C261FAE00008143C5F9E0038E20913006B
-:102DE0005F0B3000FDEB000BE00B1800C181F0051C
-:102DF0000640EA09024BFAE10000E808034BF6013D
-:102E00000001507C5001BF5CFAE00000506C301BA8
-:102E1000FAE800180008F2010049C0283FFB0F360D
-:102E2000CB6B5BFBC071322840803FF981383FF8A3
-:102E3000C0985803C07030043005E8080108EA095A
-:102E40000149405E580EC080580BF9BA01FFEFDA15
-:102E5000E102405A9502109A129B2F7DD832000051
-:102E60000000049C8002D99880037340D431203D37
-:102E70004C48502C70011698113EE20E0705E215E1
-:102E80000008CFB1E04E002DC041113E3015C058B2
-:102E9000E04E002BC021113E58095F0C59095F0616
-:102EA0003007F9E61006EE061800C1E0E04E0030EB
-:102EB000C131118635843783E80618005F04E606C1
-:102EC00018005F06E9E61006EE061800C050119ED5
-:102ED00031092FE8C098580CC070E04E0030F9B9A5
-:102EE0000008F9B9010A3FF3E6090D023007500363
-:102EF0000E9C0E93E20E0704E1D4C001F9B0013735
-:102F0000F9B000575010FCC600300890E2100004E1
-:102F1000C0814010E9D4C002FC0001065804C1C0C1
-:102F20001236C1A4043C5FBEFDE713FEE60E180096
-:102F3000C101043C5F0E40070E365F97EFEE000EB6
-:102F4000E60E1800C061B33C3017EC0C000CC02832
-:102F50003FF7113ECD0B5BF7C061322940200E9C3C
-:102F60008139C0485805FBBC0100580AC070580799
-:102F7000F9B901FFF1D9E10B950B2FDDD832000033
-:102F80000000049CD421169776DBEEC8FFBC103BF2
-:102F9000C171E06B0400F01F0015C250E06804002E
-:102FA0008FDC8FE8EF380046F8CCFC03B8A8EF3888
-:102FB0000045B898EF380044B8888F0CC1386EE5EA
-:102FC000EA041501089AF01F000A1896C0C00A9A70
-:102FD000189BF80500050A9CF01F00068FE48F057A
-:102FE0008FD6D82ADC2A00008002E2BC8002E8E802
-:102FF0008002E736D4211697149618955BFBC650CD
-:10300000580CC06078685808C031F01F00314B1868
-:103010001036C0316A06C0A84AF81036C0316A16A8
-:10302000C0584AE81036EBF600028C68A5D8AC68A8
-:10303000EDB80002C140EDB80004C461EDB8000372
-:10304000C0B10C9B0A9CF01F0026C3E18C688D6CFC
-:10305000A3D88D2CAC688C68A3A8AC680E946CD8EF
-:103060005C545808C1006C196CE81039C0650A9CA2
-:103070000C9BF01F001CC2816C0820188D08B084C6
-:103080000897C0C86C495809C0C06C081238E0885D
-:10309000000911770837C0518D086C182FF8C12826
-:1030A0006C18ED4800406C088DF8ECC8FFBC8DD85A
-:1030B00030388DE8ECC8FFBAED6400468D080897FB
-:1030C00030188D18C0283FF70E9CD82280031F3877
-:1030D0008003EF2C8003EF4C8003EF6C80031D2CEA
-:1030E00080032F84D431208DFAC4FFBC504B682E4E
-:1030F000505812967C0B7005506E580BF40B17004D
-:103100006803681140493008C2C92FFB325C178A36
-:10311000F80A18005F1EF00A18005F1CFDEC000C96
-:10312000F00C1800CF31580AE0800129300C3FFA2A
-:103130001890503A18941892F80C003C1697507C4E
-:103140004CDC0F3AF80A070E407C1C0C4CBEFC0C01
-:10315000070E201E500E4CAEFC0C070C507C400C91
-:10316000587CE08B00F84C7EFC0C032F368BF60A63
-:103170001800E08000F0371BF60A1800C07034CB4E
-:10318000F60A1800C051A3B4CE58A5B4CE380F8BA0
-:1031900036CAF40B1800C051A5B4EECBFFFFCDB872
-:1031A000A5A4CD88EBD5C005367CF80A1800E08BC5
-:1031B0000027365BF60A1800C48234FBF60A1800B2
-:1031C000C480E08B000C345BF60A1800C3E0347B4B
-:1031D000F60A1800C3A0344BC088358BF60A1800D5
-:1031E000C2C0E08B0007355BF60A1800C351C31854
-:1031F000363BF60A1800C2F0364BC0E8370BF60A29
-:103200001800C250E08B000D36EBF60A1800C1F032
-:10321000E08B0014369BF60A1800C1E1C0E8375B6A
-:10322000F60A1800C0A0378BF60A1800C060373BBA
-:10323000F60A1800C111C0B8EDB40004C0A0EDB486
-:103240000005C0913020C0883040C0683030C04890
-:103250003010C0283000403B5BFBC040E20B09202F
-:10326000C7985860E08B00776C0AEACCFFFF486E85
-:10327000FC00032F8003F2708003F1D48003F16817
-:103280008003EFC88003EFE8F4CBFFF88D0BF4EA7E
-:103290000000E605083AC0F8F4CBFFFC8D0B740A79
-:1032A000E605093AC088F4CBFFF88D0BF4EA00007C
-:1032B000E605083A0E9B1895C4E8620A5BFAC0B1AD
-:1032C00050195028E06A0080300B029CF01F004D1E
-:1032D00040284019E4CC00010E9B503CF20C0C49F4
-:1032E000C3A8620A5BFAC0B150195028E06A008096
-:1032F000300B029CF01F0043402840192012300A76
-:103300000E9BE202092AF2020C49C25816976C0A77
-:10331000F4CBFFFC8D0B740A0E9BE605093A2FF5E2
-:10332000C1A8F4C20030C068E40200222FF7F40202
-:1033300000120F8A580AC0E0230A589AFE98FFF636
-:10334000C0982FF70F8A580AC050230A589AFE983F
-:10335000FFFA0E9B407C30BAF40C1800FE91FEEE92
-:103360004042178C0A325F4AF00C18005F1CF9EAE1
-:10337000000AF00A1800FE91FECB3008404E178A72
-:10338000E2050021F00A1800FC091710E6050038D4
-:10339000069EC2A8620A583AC1E0E0890007581A9E
-:1033A000C1A0582AC181C058585AC0C0C0B5C13840
-:1033B0006C0AF4CCFFF88D0CF4E20000F0E300009E
-:1033C000C1086C0AF4CCFFF88D0CF4E20000F0E3C5
-:1033D0000000C0786C0AF4CCFFFC8D0C740A910AD2
-:1033E0002FF52F882FC11235FE9AFFD61C9340521D
-:1033F000406E85059D0B404BE60B003C2F8DD8326F
-:103400008002E8BCD421149774285808C04195184C
-:10341000109CD822F01F000330088F188F28D82264
-:1034200080032320D431FACD06BC5109169114979C
-:103430001895F01F0056780C50CC5805C0706A687B
-:103440005808C0410A9CF01F00524D281031C0316D
-:103450006A01C0A84D081031C0316A11C0584CF83B
-:103460001031EBF100028268EDB80003C041624800
-:103470005808C071029B0A9CF01F0049E0810F941C
-:1034800082681099E219001A58A9C3D18279300ACA
-:10349000F4091900C385A1D8FB5805D06288FB4800
-:1034A00005E462A8FB4805ECFAC8FFBCFB4805D45C
-:1034B000FB4805C4E0680400FB4805D8FB4805CC80
-:1034C0003008FB5905D20E9A4109FAC7FA3CFB486D
-:1034D00005DC0A9C0E9BF01F003350BCC0950E9B70
-:1034E0000A9CF01F003140BEF9BE01FF50BEFB0830
-:1034F00005D0EDB80006E0810F598268A7A8A26840
-:10350000E08F0F543008FB4806B4FB480690FB4898
-:10351000068CFB4806B03008300950A75078FAC432
-:10352000F9E03FF85059FB440688FB480544129CDB
-:10353000506950D950E950B9129740A2325A300818
-:10354000C0282FF20589F00918005F1BF409180044
-:103550005F19F3EB000BF00B1800CF4140ABE40B0D
-:103560000106C300FAF806900C08890BFB48069088
-:103570008916FAF8068C2FF8FB48068C5878E089F3
-:1035800000152F84C1C800008003276480031F3802
-:103590008003EF2C8003EF4C8003EF6C80031C381A
-:1035A0008003342480031D2CFACAF978029B0A9CFC
-:1035B000F01F0071E0810EF4FAC4F9E040BA0C0A81
-:1035C00050BA05893008F0091800E0800ED930099A
-:1035D000FB6806BB0E96E4C8FFFF3FFE50945041C7
-:1035E0000E940491508950A8502E50391293129085
-:1035F00010970A92C0783FFC0A97502CC038300BC5
-:10360000503B0F38C0281290F0C90020E049005804
-:10361000E08B0A4A4D9AF409032F50A750800C976B
-:103620000495089602924D6940941090404150D9FB
-:10363000E08F08AA3008FB3906BBF0091800CE213C
-:103640003208C6E8A1A3CDEB0F89F2C80030589824
-:10365000E08B001DEEC8FFFF300B2309F60B002B9B
-:10366000F20B001B1139F2CA0030589AFE98FFF78E
-:10367000E0490024CC51E04B0020E0890E90201B53
-:10368000FAF906B4123BC095C108FAF906B4ECCABF
-:10369000FFFF1236C1F5C268FACEF9441097FC0B51
-:1036A000003BF6F0FD88C3581097FAC8F9501AD8B5
-:1036B000FAC8FAB81AD8FAC8FBB4029A1AD8049C05
-:1036C000FAC8F940FAC9FFB4F01F002E2FDD7800C8
-:1036D000C208FACCF9441496F8040038F0F0FD88DA
-:1036E000C188410859F9E0890011F0CBFFFC510B6A
-:1036F0007000FACBF944F6090038F140FD882FF943
-:103700001496FB4906B4C058700014962FC851088F
-:103710005800FE94FF785C30A3A3C74B32B8FB6817
-:1037200006BBC70B0F38E048002AC0303009C80874
-:103730000F88F0C900305899E08B0026EEC5FFFFD6
-:10374000300B2308F60B002BF00B001B0B38F0C9D5
-:1037500000305899FE98FFF7E0480024FE91FF5191
-:10376000E04B0020E0890E1B201BFAF806B4103B4A
-:10377000C115C188800334048003F0048003EDD0B8
-:10378000800330E4FAFA06B4ECC9FFFF1436C1F541
-:10379000C288FACAF944F40B003BF6FBFD88502BB3
-:1037A000C3C8FAC8F9501AD8FAC8FAB81AD8FAC869
-:1037B000FBB4029A1AD8049CFAC8F940FAC9FFB4BB
-:1037C000F01F017B2FDD780C502CC27812960E95DD
-:1037D000FAC9F944F2040038F0F8FD885028C1D83D
-:1037E000410859FAE0890014F0CBFFFC7008510B36
-:1037F0005028FAC6F944402EEC0A0038F14EFD88F4
-:103800002FFA0E95FB4A06B41296C078700C0E95EE
-:103810002FC8502C12965108402B580BFE95FEEDE8
-:103820000A97CF0AF20900290F38F4090019F0CAE3
-:103830000030589AFE98FFF83FFAF20A0C495029D6
-:10384000CE4AA7B3CDFA30092308F2090029F009BE
-:1038500000190F38F0CA0030589AFE98FFF7E04878
-:103860000024FE91FED2E0490020E0890D98F2C4C8
-:10387000000130195039CC6AA3B3CC4AA7A3CC2A93
-:103880000F8836CEFC081800C0412FF7A5B3CBAA8D
-:10389000A5A3CB8AA5B3CB6A50A750800C971090F4
-:1038A00008960495409402920E994041FAF806B4A5
-:1038B000403C580CC1D01036C064FACBF944F6062F
-:1038C0000036C1D8FAC8F9501AD8FAC8FAB81AD8C6
-:1038D000FAC8FBB41AD8FAC8F940FAC9FFB4049A76
-:1038E0000C9B0A9CF01F01322FDD19B8C2282FF75C
-:1038F0001039C084FACAF944F4060036ED38FD8B5D
-:10390000C188410959F8E0890012F2CAFFFC510A46
-:103910007209FAC6F944EC08003A2FF8F549FD8817
-:10392000FB4806B4F1D9C008C04813B82FC95109E3
-:10393000FB680660300E30083012FB6806BB502E64
-:10394000E08F08C450A750800C9704950896029207
-:10395000409410904041A5A3C0A850A750800C9758
-:10396000049508960292409410904041EDB30005F2
-:10397000C511FAF806B4403C580CC1E01036C064DA
-:10398000FACBF944F6060036C208FAC8F9501AD83C
-:10399000FAC8FAB80C9B1AD8FAC8FBB41AD8FAC9F4
-:1039A000FFB4FAC8F940049A0A9CF01F01012FDD08
-:1039B000781B7809C2B8EECAFFFF1037C0B4FAC945
-:1039C000F9441497F2060036ECFBFD8CECF9FD8807
-:1039D000C1D8410959F8E0890014F2CBFFF8510B26
-:1039E000FAC6F944721BEC08003C7209F94BFD8CD5
-:1039F000F949FD882FF81497FB4806B4C078F2C83F
-:103A0000FFF8721B1497510872091698FAE9000022
-:103A1000CAE8EDB30004C171FAF806B4403E580E8E
-:103A2000C0801036C694FACCF944F8060036C8288F
-:103A3000EECAFFFF1037E0840081FACBF944F606A6
-:103A40000036C778EDB30006C4B1FAF806B4403CBE
-:103A5000580CC1D01036C064FACBF944F6060036D3
-:103A6000C1F8FAC8F9501AD8FAC8FAB81AD8FAC878
-:103A7000FBB41AD8FAC8F940FAC9FFB4049A0C9BEF
-:103A80000A9CF01F00CB2FDD9818C268EECAFFFF1A
-:103A90001037C094FAC9F9441497F2060036ED08BD
-:103AA000FD8AC1A8410959F8E0890013F2CBFFFC57
-:103AB000510B7209FAC6F944EC08003B2FF8F7499C
-:103AC000FD88FB4806B41497F1D9B010C05892187D
-:103AD00014972FC951095018BF585008C488FAF8D4
-:103AE00006B4403C580CC1D01036C064FACBF9443F
-:103AF000F6060036C1F8FAC8F9501AD8FAC8FAB86A
-:103B00000C9B1AD8FAC8FBB4049A1AD80A9CFAC8B3
-:103B1000F940FAC9FFB4F01F00A62FDD780BC248A8
-:103B2000EECAFFFF1037C094FAC9F944F206003616
-:103B30001497ECFBFD88C188410959F8E089001110
-:103B4000F2CBFFFC510BFAC6F944720BEC080039BA
-:103B5000F34BFD882FF81497FB4806B4C058720B3E
-:103B600014972FC95109501BBF5B500BFAEA000094
-:103B7000580A5C2BC0E43008FAEA00003009F00A69
-:103B8000010AF20B014B32D8FAEB0000FB6806BBCE
-:103B90003018E08F071150A750800C9704950896B5
-:103BA00002924094109040410E99EDB30003C4116D
-:103BB000FAF806B4403A580AC1901036C645FAC819
-:103BC000F9501AD8FAC8FAB81AD8FAC8FBB40C9B3C
-:103BD0001AD8049AFAC8F940FAC9FFB40A9CF01F2F
-:103BE00000742FDD78165076C4882FF71039C0C4C2
-:103BF000FACEF944FC060036ECFCFD8C507CECF669
-:103C0000FD885056C668410959F8E0890010F2CA8B
-:103C1000FFF8721B510A7209FACAF944507B5059D5
-:103C2000F4080039405B407AC47872185078C4C8F0
-:103C3000FAF806B4403E580EC2301036C094FACCA2
-:103C4000F944F8060036ECFBFD8C507BCD9BFAC89E
-:103C5000F9501AD8FAC8FAB8049A1AD8FAC8FBB4B4
-:103C60000C9B1AD80A9CFAC8F940FAC9FFB4F01F95
-:103C700000502FDD781A507A780C505CC2A82FF7CC
-:103C80001039C094FAC9F944F2060036ECF8FD8CFC
-:103C90005078CB6B410959F8E0890015F2CAFFF85A
-:103CA00072167209510A5059FACEF9445076FC083E
-:103CB0000039405B0C9AF2EBFD882FF8FB4806B404
-:103CC000C088721C507CF2C8FFF851087209505924
-:103CD000405B407AF01F00371896C1503008300919
-:103CE000405B407AF01F0034C04032D8FB6806BB0E
-:103CF0004B284B36A7D3E0400047F00617A03032E0
-:103D0000E08F06E7405B407AF01F002EC0C05026CF
-:103D10004AD84AE6A7D3E0400047F00617A0303261
-:103D2000E08F06DD402A5BFAC04130695029C11896
-:103D3000E04000475F09E04000675F08F3E81008D3
-:103D4000F8081800C06040285808F9B80001502849
-:103D500040784059FAE90694A9A3FAF8069458085D
-:103D6000C065405E300C506E509CC078405B32DACB
-:103D7000EE1B8000509A506BE04000465F09E04027
-:103D800000665F08F3E810085048C0404022303910
-:103D9000C228E04000455F09E04000655F084046FA
-:103DA0001049EC091800C1314022C148800330E4B9
-:103DB0008003697880036FC08003F2408003F2447F
-:103DC00080032A7E8003F2488003F24C402EFCC21E
-:103DD000FFFF3029FAC8F95C1AD8FAC8F9541AD882
-:103DE000FAC8F94C0A9C1AD80498409B40AAF01FC4
-:103DF00001E0E04000475F19E04000675F18189657
-:103E00002FDDF3E80008C041EDB30000C301EC0270
-:103E1000000C503C404B580BC1500D893308F00941
-:103E20001800C0B130083009406B407AF01F01D152
-:103E3000FBB20001FBF20BAB403AFAF806AC100AF9
-:103E4000503A406B30083009407AF01F01CAC090E8
-:103E50004039FB4906A4C05810C9FB4806A4C02835
-:103E60003309FAF806A4403E1C38CF73E0400047FF
-:103E70005F09E04000675F08F3E81008FAF906A45C
-:103E80000C1950695808C0B0FAF806AC5BD8C05598
-:103E9000402C1838E08A006A2020C058E0400065B5
-:103EA000E0890046FAFB06ACFB60069C201BFB4B3E
-:103EB00006ACC0475C3B32D8C02832B8FB68069DD0
-:103EC000589BE08A001DFAC9FA3530AA12980E9C58
-:103ED0000C92F60A0C060E9B2D0B10FB0C9B5896B1
-:103EE000FE99FFF92D0B1897049610FBFACAF96298
-:103EF000C038113B14CB1238CFD3C0982D0B3308E8
-:103F0000FB6B069FFB68069EFACAF960FAC8F96463
-:103F1000F408010850E81092406B1602581BE08923
-:103F20000005EDB30000C3512FF2C338E040006636
-:103F3000C1C1FAF206AC5802E08A000C402A580AC5
-:103F4000C041EDB30000C2512FF240291202C0B8A7
-:103F500040285808C061EDB30000C0303012C1984D
-:103F600040222FE23660C158FAF206AC406E1C3295
-:103F7000C065EDB30000F7B200FFC0A8E40811026D
-:103F8000406C5802F00217A0F9B20901180236700D
-:103F9000409B580BE080059D32D8FB6806BBE08F44
-:103FA000059C50A704950C970292089640414094B6
-:103FB0000E99EDB30005C481FAF806B4403E580EE0
-:103FC000C1D01036C064FACCF944F8060036C1D826
-:103FD000FAC8F9501AD8FAC8FAB8049A1AD8FAC81E
-:103FE000FBB40C9B1AD80A9CFAC8F940FAC9FFB472
-:103FF000F01F01612FDD780AC2082FF71039C08445
-:10400000FACBF944F6060036ECFAFD88C16841099E
-:1040100059F8E0890010F2CAFFFC510AFAC6F944C7
-:10402000720AEC080039F34AFD882FF8FB4806B401
-:10403000C048720A2FC9510940BE1C98951EBF582E
-:104040009508FE9FFA7CEDB30004C480E2130040A3
-:10405000C450FAF806B4403C580CC1D01036C064C5
-:10406000FACBF944F6060036C1D8FAC8F9501AD886
-:10407000FAC8FAB8049A1AD8FAC8FBB40C9B1AD832
-:104080000A9CFAC8F940FAC9FFB4F01F013B2FDDC2
-:10409000780AC2082FF71039C084FACAF944F40626
-:1040A0000036ECFAFD88C168410959F8E089001032
-:1040B000F2CAFFFC510AFAC6F944720AEC08003948
-:1040C000F34AFD882FF8FB4806B4C048720A2FC98E
-:1040D000510940BEB40EFE9FFA32FAF806B4403CD5
-:1040E000580CC1D01036C064FACBF944F60600363D
-:1040F000C1D8FAC8F9501AD8FAC8FAB8049A1AD826
-:10410000FAC8FBB40C9B1AD80A9CFAC8F940FAC941
-:10411000FFB4F01F01192FDD780AC2082FF71039FC
-:10412000C084FACAF944F4060036ECFAFD88C16886
-:10413000410959F8E0890010F2CAFFFC510AFAC699
-:10414000F944720AEC080039F34AFD882FF8FB485D
-:1041500006B4C048720A2FC9510940BE950EFE9F91
-:10416000F9EE50A750800C9704950896029240945F
-:1041700010904041A5A3C0A850A750800C9704956B
-:1041800008960292409410904041EDB30005C5D1CD
-:10419000FAF806B4403C580CC2601036C0A4FACB02
-:1041A000F944F6060036ECE8FD88FAE90000C1881B
-:1041B000FAC8F9501AD8FAC8FAB8049A1AD80C9B57
-:1041C000FAC8FBB40A9C1AD8FAC8F940FAC9FFB475
-:1041D000F01F00E92FDDF8EA0000FAEB00003008DC
-:1041E000E08F03E7EECAFFFF1037C0B4FAC9F94405
-:1041F0001497F2060036ECEAFD88FAEB0000C1885D
-:10420000410959F8E0890018F2E60000F2CBFFF806
-:10421000FAE70000510BFAC6F944EC080039FAE657
-:104220000000F2E7FD882FF81497FB4806B44038E9
-:10423000E08F03BFF2E600004038FAE700002F8964
-:1042400014975109E08F03B5EDB30004C161FAF88A
-:1042500006B4403E580EC0801036C674FACCF944FD
-:10426000F8060036C808EECAFFFF1037C7F4FACBCD
-:10427000F944F6060036C768EDB30006C4A1FAF8A3
-:1042800006B4403C580CC1D01036C064FACBF94497
-:10429000F6060036C1F8FAC8F9501AD8FAC8FAB8C2
-:1042A0001AD8FAC8FBB41AD8FAC8F940FAC9FFB448
-:1042B000049A0C9B0A9CF01F00B02FDD9818C2686E
-:1042C000EECAFFFF1037C094FAC9F9441497F206FA
-:1042D0000036ED08FD8AC1A8410959F8E0890013AC
-:1042E000F2CBFFFC510B7209FAC6F944EC08003B13
-:1042F0002FF8F749FD88FB4806B41497F1D9B010A0
-:10430000C058921814972FC951095C785018C46886
-:10431000FAF806B4403C580CC1D01036C064FACB51
-:10432000F944F6060036C1F8FAC8F9501AD8FAC8A6
-:10433000FAB80C9B1AD8FAC8FBB4049A1AD80A9C8B
-:10434000FAC8F940FAC9FFB4F01F008B2FDD780BD3
-:10435000C248EECAFFFF1037C094FAC9F944F2060A
-:1043600000361497ECFBFD88C188410959F8E089B3
-:104370000011F2CBFFFC510BFAC6F944720BEC08AA
-:104380000039F34BFD882FF81497FB4806B4C0584A
-:10439000720B14972FC95109501B300E500E1C98E8
-:1043A000E08F030750A750800C970495089602925F
-:1043B000409440410E99FAF806B4403C580CC1D0E4
-:1043C0001036C064FACBF944F6060036C1D8FAC8F4
-:1043D000F9501AD8FAC8FAB81AD8FAC8FBB41AD8D9
-:1043E000FAC9FFB4FAC8F940049A0C9B0A9CF01F62
-:1043F00000622FDD7809C2182FF71039C084FACA7D
-:10440000F944F4060036ECF9FD88C178410959F801
-:10441000E0890010F2CAFFFC510AFAC6F944720999
-:10442000EC08003AF549FD882FF8FB4806B4C0585F
-:10443000F2C8FFFC510872093308FB6806B83788D8
-:10444000300EFB6806B94CDC5019A1B3500E50DC9D
-:1044500030283780E08F02AD50A750801090300890
-:10446000FB6806BB0C970495089602924094404165
-:104470000E99FAF806B4403B580BC1D01036C06410
-:10448000FACAF944F4060036C1D8FAC8F9501AD865
-:10449000FAC8FAB81AD8FAC8FBB40C9B1AD8049A0E
-:1044A000FAC8F940FAC9FFB40A9CF01F00332FDDA7
-:1044B0007806C2082FF71039C084FAC9F944F20609
-:1044C0000036ECF6FD88C168410959F8E089001012
-:1044D000F2CAFFFC510A7206FACEF944FC08003910
-:1044E000F346FD882FF8FB4806B4C04872062FC972
-:1044F0005109402C580CC105189A300B0C9CF01F28
-:104500000020E08002E9F8060102402B1632E08923
-:1045100002E3E08F02DE300A0C9C502AF01F0019E3
-:104520001892E08F02DC50A750800C9704950896F3
-:104530000292409410904041A5A3C0A850A750807B
-:104540000C97049508960292409410904041EDB368
-:104550000005C611FAF806B440395809C2C0103631
-:10456000C124FAC8F944F0060036C2E88003552C8D
-:1045700080036F32800330E48003EDE4800328A4DD
-:104580008002EDD0FAC8F9501AD8FAC8FAB81AD889
-:10459000FAC8FBB41AD8FAC8F940FAC9FFB4049AA9
-:1045A0000C9B0A9CF01F00C82FDDF8E80000FAE918
-:1045B0000000C2E8EECAFFFF1037C0B4FAC8F944E1
-:1045C0001497F0060036ECEAFD88FAEB0000C2080A
-:1045D000410959F8E0890016F2E60000F2CBFFF835
-:1045E000FAE70000510BFAC6F944EC080039FAE684
-:1045F0000000F2E7FD882FF81497FB4806B4C08846
-:10460000F2E600002F89FAE70000510914973018EC
-:10461000E08F01CFEDB30004C161FAF806B4403E6B
-:10462000580EC0801036C674FACCF944F80600362D
-:10463000C808EECAFFFF1037C7F4FACBF944F606F4
-:104640000036C768EDB30006C4A1FAF806B4403CD2
-:10465000580CC1D01036C064FACBF944F6060036C7
-:10466000C1F8FAC8F9501AD8FAC8FAB81AD8FAC86C
-:10467000FBB41AD8FAC8F940FAC9FFB4049A0C9BE3
-:104680000A9CF01F00912FDD9818C268EECAFFFF48
-:104690001037C094FAC9F9441497F2060036ED08B1
-:1046A000FD8AC1A8410959F8E0890013F2CBFFFC4B
-:1046B000510B7209FAC6F944EC08003B2FF8F74990
-:1046C000FD88FB4806B41497F1D9B010C058921871
-:1046D00014972FC951095C785018C468FAF806B4C9
-:1046E000403C580CC1D01036C064FACBF944F606F1
-:1046F0000036C1F8FAC8F9501AD8FAC8FAB80C9BB3
-:104700001AD8FAC8FBB4049A1AD80A9CFAC8F94015
-:10471000FAC9FFB4F01F006C2FDD780BC248EECA57
-:10472000FFFF1037C094FAC9F944F2060036149717
-:10473000ECFBFD88C188410959F8E0890011F2CBF2
-:10474000FFFC510BFAC6F944720BEC080039F34B2D
-:10475000FD882FF81497FB4806B4C058720B1497C5
-:104760002FC95109501B300E3018500EC21950A7D6
-:1047700050800C970495089602924D4C40941090EE
-:10478000404150DCEDB30005C551FAF806B4403B9A
-:10479000580BC2201036C0A4FACAF944F4060036F9
-:1047A000ECE8FD88FAE90000CF58FAC8F9501AD8A9
-:1047B000FAC8FAB8049A1AD80C9BFAC8FBB40A9C37
-:1047C0001AD8FAC8F940FAC9FFB4F01F003F2FDD2C
-:1047D000F8EA0000C0C8EECAFFFF1037C0B4FAC93B
-:1047E000F9441497F2060036ECEAFD88FAEB000073
-:1047F000CD18410959F8E0890016F2E60000F2CB25
-:10480000FFF8FAE70000510BFAC6F944EC0800394A
-:10481000FAE60000F2E7FD882FF81497FB4806B48B
-:10482000CB98F2E600002F89FAE7000051091497AF
-:10483000CB18EDB30004C171FAF806B4403E580E2F
-:10484000C0801036C6C4FACCF944F8060036C85801
-:10485000EECAFFFF1037E0840084FACBF944F60675
-:104860000036C7A8EDB30006C4E1FAF806B4403C30
-:10487000580CC1D01036C064FACBF944F6060036A5
-:10488000C1F8FAC8F9501AD8FAC8FAB81AD8FAC84A
-:10489000FBB41AD8FAC8F940FAC9FFB4049A0C9BC1
-:1048A0000A9CF01F00092FDD9818C2A8EECAFFFF6E
-:1048B0001037C0D4FAC9F9441497F2060036ED084F
-:1048C000FD8AC1E8800330E48003EDE4410959F832
-:1048D000E0890013F2CBFFFC510B7209FAC6F944D0
-:1048E000EC08003B2FF8F749FD88FB4806B4149705
-:1048F000F1D9B010C058921814972FC951095C789B
-:104900005018C468FAF806B4403C580CC1D01036B0
-:10491000C064FACBF944F6060036C1F8FAC8F9507B
-:104920001AD8FAC8FAB80C9B1AD8FAC8FBB4049A79
-:104930001AD80A9CFAC8F940FAC9FFB4F01F00C996
-:104940002FDD780BC248EECAFFFF1037C094FAC9BA
-:10495000F944F20600361497ECFBFD88C188410942
-:1049600059F8E0890011F2CBFFFC510BFAC6F9446B
-:10497000720BEC080039F34BFD882FF81497FB48B5
-:1049800006B4C058720B14972FC95109501B300E32
-:10499000500E4008401C18485F18E7E80008C07037
-:1049A0003308FB6006B9A1B3FB6806B830283009AC
-:1049B000FB6906BB402B580BC025A7D3402A4009F2
-:1049C000580A5F1A4016FAC2F9780C495F19F5E9DE
-:1049D0001009C5C03019F2081800C0603029F2086B
-:1049E0001800C041C3C80496C3080496FAE8000042
-:1049F000F5D8C0032D0A0CFAF00B1603F20C1603BF
-:104A0000F7E911DB1899169858085C29CF21FAE9C3
-:104A10000000EDB30000C4513309F20A1800C410BD
-:104A20000CF9C3F8FAEA000030A83009F01F008E34
-:104A300030A82D0A3009AC8AFAEA0000F01F008B7A
-:104A400016991498FAE900002016FAEA0000589A1C
-:104A50005C2BFE9BFFE91BF82D08C2080496FAE8C0
-:104A60000000F5D8C00440DEFC0A070A0CFAF20B7D
-:104A70001604F00A1604F5E911CA16991498580894
-:104A80005C29CF01FAE90000C0C85808C091EDB315
-:104A90000000C061FAC6F9793308AC88C0280496D2
-:104AA0000C12C1C850A7508040940C9710900495E8
-:104AB00040415808E0800464FB680660300C300810
-:104AC0003012FB6806BB502CFAC6F9A0C078300B38
-:104AD000502BC0484022300A502A4029E4090C4992
-:104AE000FB3806BB5039069E3009E21E0002F20870
-:104AF0001800FBF81003F7B801FFFBF81A03069B38
-:104B0000580EFBFC1003F7BC01FEFBFC1A03E21B72
-:104B1000008450FE509BC451408A4039121A504ABA
-:104B2000580AE089001FC3D82F092FF84D0E310C09
-:104B3000FB490690890E891CFB48068C5878E08951
-:104B400000042F84C0B8FACAF978029B0A9CF01FAF
-:104B50000049E0810425FAC4F9E0404B210B504B99
-:104B6000FAF90690FAF8068C4C1A404E590EFE9946
-:104B7000FFDD1C092FF8890AFB490690891EFB48B6
-:104B8000068C5878E08900042F84C0B8FACAF978F6
-:104B9000029B0A9CF01F0037E0810402FAC4F9E08E
-:104BA0003009FB3806BBF2081800C1F0FAF806908D
-:104BB000FAC9F9452FF88909FB4806903019FAF827
-:104BC000068C89192FF8FB48068C5878E089000478
-:104BD0002F84C0B8FACAF978029B0A9CF01F0025FE
-:104BE000E08103DEFAC4F9E040FC580CC1F0FAF8A9
-:104BF0000690FAC9F9482FE88909FB480690302940
-:104C0000FAF8068C89192FF8FB48068C5878E08949
-:104C100000042F84C0B8FACAF978029B0A9CF01FDE
-:104C20000015E08103BDFAC4F9E0409BE04B008031
-:104C3000C511408A4039121A504A580AE089002B9F
-:104C4000C4982F092FF848CE310CFB490690890EE5
-:104C5000891CFB48068C5878E08900102F84C178A5
-:104C6000800330E4800373408002D9988003F250BF
-:104C7000800334048003F260FACAF978029B0A9C2C
-:104C8000F01F004CE081038CFAC4F9E0404B210B8B
-:104C9000504BFAF90690FAF8068C4C7A404E590EB1
-:104CA000FE99FFD11C092FF8890AFB490690891E3D
-:104CB000FB48068C5878E08900042F84C0B8FACAF3
-:104CC000F978029B0A9CF01F003BE0810369FAC45B
-:104CD000F9E0402C041C502C580CE089001FC3D86C
-:104CE0002F092FF84B4B310AFB490690890B891A83
-:104CF000FB48068C5878E08900042F84C0B8FACAB3
-:104D0000F978029B0A9CF01F002BE0810349FAC44A
-:104D1000F9E0402921095029FAF90690FAF8068CA1
-:104D20004A5A402E590EFE99FFDD1C092FF8890AB8
-:104D3000FB490690891EFB48068C5878E0890004E0
-:104D40002F84C0B8FACAF978029B0A9CF01F001998
-:104D5000E0810326FAC4F9E0EDB30008C0B0FAF828
-:104D6000069089128906F0020002FB420690E08F4D
-:104D700001DBE0400065E08A01DD30083009405B7E
-:104D8000407AF01F000EC7E0FAF8069048C92FF8E5
-:104D90008909FB4806903019FAF8068C89192FF812
-:104DA000FB48068C5878E089000D2F84C14800002C
-:104DB000800334048003F26080036F328003A6C056
-:104DC000FACAF978029B0A9CF01F0078E08102E899
-:104DD000FAC4F9E0FAF806AC406C1838C055EDB3E7
-:104DE0000000E081026DFAF806902FF840CBFB48F6
-:104DF00006903019FAF8068C890B2FF88919FB48B0
-:104E0000068C5878E08900042F84C0B8FACAF97873
-:104E1000029B0A9CF01F0065E08102C2FAC4F9E01F
-:104E2000406620165806E089001DE08F02492F09D0
-:104E30002FF8FB49069089028910FB48068C5878A8
-:104E4000E08900042F84C0B8FACAF978029B0A9C52
-:104E5000F01F0056E08102A4FAC4F9E02106C03830
-:104E60004D323100FAF90690FAF8068C4D0A5906CF
-:104E7000FE99FFDF0C09890AFB4906902FF8891675
-:104E8000C559FAFA06AC580AE0890096FAF8069075
-:104E90004C892FF88909FB4806903019FAF8068CDE
-:104EA00089192FF8FB48068C5878E08900042F8474
-:104EB000C0B8FACAF978029B0A9CF01F003CE08156
-:104EC000026FFAC4F9E0FAF806AC5808C081406AEB
-:104ED000580AC051EDB30000E08101F240C9FAF870
-:104EE00006902FF88909FB4806903019FAF8068CCD
-:104EF00089192FF8FB48068C5878E08900042F8424
-:104F0000C0B8FACAF978029B0A9CF01F0028E08119
-:104F10000247FAC4F9E0FAF206AC5C325802E089C2
-:104F2000001DC3B82F092FF8310EFB4906908900E8
-:104F3000891EFB48068C5878E08900042F84C0B88D
-:104F4000FACAF978029B0A9CF01F0018E081022837
-:104F5000FAC4F9E02102C0284950FAF90690FAF89B
-:104F6000068C493A5902FE99FFDF04092FF8890A95
-:104F7000FB4906908912FB48068C5878E0890004AA
-:104F80002F84C0B8FACAF978029B0A9CF01F000768
-:104F9000E0810206FAC4F9E0406CFAF8069089064E
-:104FA000891C1808CBE80000800334048003F260F9
-:104FB0008003A6C0FAF90690FAF8068C406B163A00
-:104FC000C6D516092FF88906FB490690891BFB48B0
-:104FD000068C5878E08900042F84C0B8FACAF978A2
-:104FE000029B0A9CF01F006FE08101DAFAC4F9E02D
-:104FF000FAF606AC406A14165806E089001CC3B8DD
-:105000002F092FF8FB49069089028910FB48068C6E
-:105010005878E08900042F84C0B8FACAF978029B56
-:105020000A9CF01F0060E08101BBFAC4F9E0210690
-:10503000C0384DD23100FAF90690FAF8068C4DAA24
-:105040005906FE99FFDF0C092FF8890AFB490690E3
-:105050008916FB48068C5878E08900042F84C0B874
-:10506000FACAF978029B0A9CF01F004EE081019871
-:10507000FAC4F9E0EDB30000E081012240C9FAF87A
-:1050800006902FF88909FB4806903019FAF8068C2B
-:1050900089192FF8FB48068CC04914092FF8FB49E1
-:1050A00006908906891AFB48068C5878E089000426
-:1050B0002F84C0B8FACAF978029B0A9CF01F003905
-:1050C000E081016EFAC4F9E040C88908FAF8069058
-:1050D0002FF83019FB4806908919FAF8068C2FF83A
-:1050E000FB48068CFAF206AC5878E08900042F845D
-:1050F000C0B8FACAF978029B0A9CF01F002AE08126
-:10510000014FFAC4F9E00406FAF806AC8906FAF988
-:1051100006904066406E1016F208010889161C08B9
-:10512000FB480690FAF8068C2FF8FB48068CCB98C3
-:10513000406C581CE0890006EDB30000E081008758
-:10514000FAF806902FF83019FB4806908906FAF80D
-:10515000068C89192FF8FB48068C5878E0890004E2
-:105160002F84C0B8FACAF978029B0A9CF01F000D80
-:10517000E0810116FAC4F9E0FAF806902FF840CB66
-:10518000FB4806903019FAF8068C890B2FF889191C
-:10519000FB48068C5878E08900092F84C10800007C
-:1051A000800334048003F260FACAF978029B0A9CF7
-:1051B000F01F006FE08100F4FAC4F9E03008300914
-:1051C000405B407AF01F006B40682018580CC0D13B
-:1051D0002FF689188906FAF606901006FAF8068C5A
-:1051E000FB4606902FF8C2F810965808E089001C7C
-:1051F000C4982F092FF8FB49069089028910FB48B3
-:10520000068C5878E08900042F84C0B8FACAF9786F
-:10521000029B0A9CF01F0056E08100C2FAC4F9E02C
-:105220002106C0384D423100FAF90690FAF8068C92
-:105230004D1A5906FE99FFDF0C09890AFB490690B1
-:105240002FF88916FB48068CC0E8FAF806902FF86C
-:105250003019FB4806908906FAF8068C89192FF850
-:10526000FB48068C5878E08900042F84C0B8FACA3D
-:10527000F978029B0A9CF01F003EE0810091FAC47D
-:10528000F9E040EAFAF806901408FAC9F964FB4814
-:105290000690891AFAF8068C89092FF8FB48068CC3
-:1052A0005878E08900042F84C0A8FACAF978029BD4
-:1052B0000A9CF01F002FC731FAC4F9E0E213000482
-:1052C000C3D04086403912165806E089001AC368D8
-:1052D0002F092FF8FB49069089038912FB48068C99
-:1052E0005878E08900042F84C098009A029B0A9C99
-:1052F000F01F001FC541FAC4F9E02106C05849F368
-:105300003102FAC0F978FAF90690FAF8068C49BA2F
-:105310005906FE99FFDF0C092FF8890A8916FB4907
-:105320000690FB48068C5878E08A0009FACAF9789A
-:10533000029B0A9CF01F000EC32140BC4036408EE9
-:10534000EC0E0C48100C50BCFAF806905808C080BF
-:10535000FACAF978029B0A9CF01F0005C201300BC3
-:10536000FAC4F9E0FB4B068CFE9FF0E9800334049D
-:1053700080036F328003F2608003F250FAF80690E7
-:105380005808C0800A9CFACAF978029BF01F0009ED
-:10539000C0613008FB48068CC02840418268EDB8E7
-:1053A0000006C0313FFA50BA40BCFE3DF944D83245
-:1053B00080033404D42116981897109C3008149B4D
-:1053C0004866129A8D08F01F00065BFCC0516C08FD
-:1053D0005808EFF81A03D82200008CC48002F1505C
-:1053E000D421300818974876169C8D08F01F0006C7
-:1053F0005BFCC0516C085808EFF81A03D822000073
-:1054000000008CC48002F108D431202D1897784810
-:1054100076460C38C034300CC858ECC2FFFCF6C3DA
-:10542000FFECF6020329F802032C2FF92016F809E5
-:105430000D08F6020022EEC4FFEC10955808C410C7
-:105440003009069A08981291500B700EB18E501EBA
-:10545000150EFC001610FDDEC010EA0E0341FDD152
-:10546000C010B181401BEA000240E2000000E3D01E
-:10547000C010021B501B700BE3DBC0100209F20EC0
-:10548000010EB01EFC091410401EFC090009B009F1
-:10549000E00116102FC8B149043AFE98FFD8400B1E
-:1054A000580CC0F1ECC8FFFBEE080028C0282016FD
-:1054B00020480838E088000570095809CF908F46C9
-:1054C0000E9CF01F001AC2D52FF508983009070B63
-:1054D000F60A1610700CF7DBC010F80E1610141E2A
-:1054E000F5DCC010161A120AB01AB14AFC0A0009FB
-:1054F000B0092FC8B1490433FE98FFEBECC8FFFB9D
-:10550000EE0803295809C0D1EE080028C02820164B
-:1055100020480838E088000570095809CF908F4668
-:105520000A9C2FEDD8320000800363EED43121AD08
-:10553000FAC4FF7418971695682C50C96816680944
-:1055400050E81494512CFAE5000851596E9558050D
-:10555000C091310CF01F004799358F9C9915992502
-:1055600099056E9972085808C0F0721A911A301A8B
-:105570007219F4090949109B91290E9CF01F003EF5
-:105580006E9830099109402810945808C064F1D8E9
-:10559000C01F50283018C02830088D08FC1C7FF030
-:1055A00040260C98E6187FF01838C1C1E068270F34
-:1055B000415B9708403A580AC061EDD6C014C0312B
-:1055C0004AECC0284AEC41295809E08005DEF8C8B9
-:1055D000FFFD3009118AF20A1800C190F8C8FFF8DF
-:1055E000C168FAEA00083008FAEB003C3009F01F05
-:1055F0000025C1103018415A950841294A285809F8
-:10560000C041109CE08F05C1109C2FF841258B08EC
-:10561000E08F05BBFAC8FF9CFAC9FFA0FAEA003C7C
-:105620000E9CEBD6C28BF01F001918935805C0D002
-:10563000FAEA003C3004F1DBC014EAC503FF109B1A
-:105640005174EA1B3FF0C3284188419C100CF8C5F7
-:10565000FBCEE0450020E08A001BF8CCFBEE403B8F
-:10566000EA081140F60C0A4CEC0809460C4CC148FB
-:105670008002E2A4800364208003F3708003F37C43
-:1056800080036F328003A6C0800364D0EA0C11202F
-:10569000403AF40C094CF01F006BFC18FE10301956
-:1056A000EAC50433F00B000B51793008FC193FF8C0
-:1056B000F01F0065E0684361EA18636FE06987A73F
-:1056C000EA193FD2F01F0061E068C8B3EA188B60A6
-:1056D000E0698A28EA193FC6F01F005D0A9C149011
-:1056E0001691F01F005CE06879FBEA18509FE069B2
-:1056F0004413EA193FD3F01F005514981699009AE5
-:10570000029BF01F005314901691F01F00533008B5
-:1057100018963009009A029BF01F0050C0C00C9CE4
-:10572000F01F004C14981699009A029BF01F004C31
-:10573000F7B600015966E088000530185148C128C5
-:105740004C88FAEA003CF0060238F01F0044F9B435
-:105750000000FBF40A14F7B60101F9BC0100FBFCE0
-:105760001A14419020100A10C04650403000C04822
-:10577000300B5C30504BEC0211005806FBFA400431
-:10578000F5D6E40AFBFA4A04FBF64A11F9B2040022
-:10579000E1D6E510F9B90500FBF95A1140C858984F
-:1057A000E08B00205858F9B40A01FBF5900CF7B5CE
-:1057B0000904FBF59A0CF9B4090040CC583CC2D05E
-:1057C000E0890005582CC101C18840CB584BC0600E
-:1057D000585BC0A1301A50DAC228301950D9C0F82D
-:1057E0003008301450C83FF5301C300B509550DC59
-:1057F0000A91312850EBC208300A50DA40E95809C2
-:10580000E089000730185098109150E8C15840E5E1
-:1058100050950A910A98C108300C50DC40EBEC0B13
-:10582000000B509B16982FF85808E089000510913E
-:105830003018C028109130096E9A95193049C178F6
-:1058400080036E4A80036B7C800369A480036D181B
-:1058500080036E5280036E2480036FC080036F321A
-:105860008003F38C6A1AA1792FFA8B1A6E95F2CA0B
-:10587000FFEC103AFE98FFF86A1B0E9CF01F0053D5
-:1058800058E15F888B0CF1E400046E987008508832
-:10589000E08001985806E08A0040F3D6C0044CC866
-:1058A000F0090234FAE50018EC041404EDB4000425
-:1058B000C0303025C0F84C78F0E80020FAEA003C0F
-:1058C000E9D4C004F01F0044303514981699FAE961
-:1058D00000084C0C50A30C931896C0F8FAEA001874
-:1058E000EDB40000C081ECE800002FF5F01F003B94
-:1058F000FAEB0018A1542F865804CF11FAE80018CB
-:10590000FAEA00080696F01F003440A3149816998E
-:10591000FAE90008C2D8EC081100C0313025C2886D
-:105920004ACCF0041404501CF1D8C0044A89FAEAA5
-:10593000003CF2080238F01F0029401C506330255B
-:105940000C93FAEB00081896C0F8FAEA0008EDB4D8
-:105950000000C081ECE800002FF5F01F0020FAEBFA
-:105960000008A1542F865804CF1106964063414A7F
-:10597000580AC370FAE8000858015F94FAE9001861
-:105980003008FC193FF0FAEA0018F01F0015F9BCC6
-:105990000000F9BC0101E9EC000CC2304098580845
-:1059A000E08A010C3008FC194024ECC40001FAEA3A
-:1059B00000182FF55064F01F0009409414981699B0
-:1059C000FAE90008C1080000800364588003F38CE2
-:1059D0008003F45480037028800369A480036FC09F
-:1059E000506602940A9CF01F0069FAE80008F01F54
-:1059F00000683008FC19401CF01F006614981699C6
-:105A0000FAE90028FC18FCC040A5100550A5580470
-:105A1000C211FAEA00083008FC194014F01F005EB9
-:105A200040BCFAEB000814981699189A0A9BF01FCC
-:105A3000005BE08102740A9840B9EE188000FAEA2F
-:105A40000008109512980A99F01F0054E081025E38
-:105A5000CB484D39E8C8000140D55805C4F0300C9A
-:105A6000F2080238513C300AFC1B3FE0F01F004DA9
-:105A7000FAE800284085F01F0048FAEB0028FAEA0F
-:105A80000008F01F0049516CF01F0040149816994F
-:105A9000FAEA0008F01F0040FAEB000841682D0800
-:105AA0000AC841392FF95139FAE80028F01F003BA4
-:105AB000E081035AFAE80008300AFC1B3FF0F01FAF
-:105AC0000036FAE80028F01F0035FAEA002830080E
-:105AD000FC194024E08100E8413C083CC6E4F01F8A
-:105AE000002C3008FAEB0028FC194024FAEA0008E0
-:105AF000F01F0027FAEB0008CC3B40850805F208B0
-:105B0000023A5135FAE800284085F01F0021FAEBEF
-:105B10000028FAEA0008F01F0024516CF01F001B57
-:105B200014981699FAEA0008F01F001BFAEB000817
-:105B300041682D080AC8413C1835C3713008FC196A
-:105B40003FE0FAEA0028F01F00134085FAE8000859
-:105B50000805F01F0012E08100A7FAE80028300ACB
-:105B6000FC1B3FE0F01F000C14981699FAEA00089D
-:105B7000F01F000AC22033090A98117AF20A1800AD
-:105B8000E08102F21095CF9B80036E52800369A4DE
-:105B900080036D1880036B7C80036FC08003F38CDF
-:105BA0008003702880036E243008FC194024F01F05
-:105BB0000056FAEB0008CAEBFAEA003CFAEB0008E0
-:105BC00058E65FAB418A3008F40911FFF7E903F9A1
-:105BD000F0091800E080008140EA58015FA9F3EA6B
-:105BE00003F94CAAF4060234FAE50010F009180093
-:105BF000C1405801E081018A3008FC194014089A1C
-:105C00000A9BF01F0041FAE80008F01F0041E08104
-:105C1000017D0292E08F018540853014FAE8001082
-:105C2000FAEA0008F01F003BF01F003B1892F01F3B
-:105C3000003BFAE80010F01F003414981699FAEAB5
-:105C40000008F01F0037FAEB0008E4C8FFD00AC8CC
-:105C5000FC19402430080234C331FAE80008F01F70
-:105C600000311691149014980299FAEA0010F01F6E
-:105C7000002EC1A1FAE80010009A029BF01F002B31
-:105C8000E0800271E5D2C001C0F1E08F026C408A71
-:105C90001438C0301095C098330840892FF6B28868
-:105CA0004088C088406633990A98117AF20A180031
-:105CB000CEF0506611892FF9B089E08F0255F01FA0
-:105CC00000122FF4FAEB000830083009F01F00171B
-:105CD000CA60E08F024840D85808C0510498009527
-:105CE00040D4C4A840C55815E08900224174580426
-:105CF000C040F4C9FBCDC0484199F209113604985F
-:105D00000095C2F8800369A48003F38C80036F5868
-:105D10008003702880036E2480036E5280036B7CA6
-:105D200080036D1880036FC080036F32E2C80001EA
-:105D30005801E0051740E2091740E1D1E515F9B92E
-:105D400005001032E5D8E418F1D2E518E5D8E502EF
-:105D5000FBFC5011F9D8E50CFBFC5A11F9B8050011
-:105D6000404B120B5008504B1200301B0E9CF01F82
-:105D7000010840081894404A58055F99580A5F9AEC
-:105D8000F5E90009C080404CF8050D49121C1210BD
-:105D9000504C12155802E08A002740DB580BC1D046
-:105DA0005808E08A0017109A5008089B0E9CF01FB4
-:105DB00000F9069A189B18940E9CF01F00F718998A
-:105DC000069B50190E9CF01F00F5401940081293D5
-:105DD000E408010AC080C028049A069B0E9CF01FAC
-:105DE00000ED1893301B0E9CF01F00E9411A189229
-:105DF000580AE08A0007189B0E9CF01F00E61892D4
-:105E000040C95819E089001440385808C101402998
-:105E1000F1D9C014C0C11298E6187FF0C080404C80
-:105E2000301B2FFC2FF0504C506BC038300A506A9A
-:105E300041195809C031301CC09864482FC8E40883
-:105E4000032CF01F00D7F80C1120404BF80B000872
-:105E5000F1D8C005C0C0F00811205848E08A0006FB
-:105E60002048100B504BC0785848C070404A2E480C
-:105E7000100A504A100010055800E08A0008069BDE
-:105E8000009A0E9CF01F00C7189340495809E08AF9
-:105E90000008049B129A0E9CF01F00C21892414801
-:105EA0005808C1B0049B069CF01F00BFC164069B4C
-:105EB000300930AA0E9CF01F00BD2016189340DC5C
-:105EC000580CC0314091C098089B4091300930AACD
-:105ED0000E9CF01F00B6189458015FA940CB582BB8
-:105EE0005F98F3E80008C2505801C111049B029961
-:105EF000305A0E9CF01F00AD1892189B069CF01FA4
-:105F000000AAE089000FC0383002049440EA30094A
-:105F10005CDA4085506A5049C0F9089240660494A2
-:105F20002FF65066331840850AC830085048C049DB
-:105F300040DC580CE08000B55805E08A0008089B5A
-:105F40000A9A0E9CF01F00971894406B580BC031B2
-:105F5000089CC138681B0E9CF01F0095684A189574
-:105F6000E8CBFFF42FEA2F4CA36AF01F00920A9BA4
-:105F7000301A0E9CF01F008B5044403A3019F5DA6D
-:105F8000C001189450DA40855099502650E1049B86
-:105F9000069CF01F0089404BF8C0FFD0069CF01F04
-:105FA0000082089A506C049B0E9CF01F008418918C
-:105FB00078385808C0303016C068189B069CF01F0F
-:105FC000007A18960E9C029BF01F007440CCEDECFA
-:105FD0001008C0D140DB580BC0A14026E04000397A
-:105FE000C300406A580AE0890024C2F84069580991
-:105FF000C085129840CC1848C1D140DB580BC1A1D4
-:106000000C9940265809E08A0021069B301A0E9C04
-:10601000F01F0064049B1893F01F0063E0890006E2
-:10602000C141EDB00000C111E0400039C0A02FF027
-:10603000C0C85806E08A000C4026E0400039C04144
-:1060400033980AC8C6782FF00AC0C7580AC0409AC9
-:1060500040E9123AC430069B300930AA0E9CF01F6A
-:106060000053404818930838C091109B300930AA5B
-:106070000E9CF01F004E504CC0E8404B300930AA37
-:106080000E9CF01F004A089B504C300930AA0E9C11
-:10609000F01F00461894409C2FFC509CC79B301862
-:1060A0000690408508930C941096049B009CF01F6A
-:1060B00000422D0C0ACC0236C0A4009B300930AA45
-:1060C0000E9C2FF6F01F00391890CF0B0896300B5E
-:1060D0000694504B00931890C0284026069B301A17
-:1060E0000E9CF01F0030049B1893F01F002FE089D6
-:1060F0000012C1B1E1D0C001C0D1C17840891238CD
-:10610000C0301095C0882FF650663318408CB88880
-:10611000C138339A0A981179F4091800CF002FF981
-:10612000B089C0981095C02833090A98117AF20AEC
-:106130001800CF905066049B0E9CF01F0018580466
-:10614000C120404B083B5F19580B5F18F3E800086B
-:10615000C0400E9CF01F0011089B0E9CF01F000F0A
-:10616000C02850660E9C069BF01F000C3008AA88C1
-:106170004068415A2FF841299508408C5809FBF88E
-:106180001012F1F51A002E6DD8320000800368005D
-:10619000800368A0800366F88003642080036300A6
-:1061A00080036664800363EE80036818800364588C
-:1061B0008002E736800354088003658C5EFC5EFC39
-:1061C000D42118961697580BC0311695C508F01FA4
-:1061D00000295806C0706C685808C0410C9CF01F1C
-:1061E00000264A681037C0316C07C0A84A481037EB
-:1061F000C0316C17C0584A381037EDF700028E696D
-:106200003008F0091900C051F01F001F3005C2F816
-:106210000E9B0C9CF01F001D6EC818955808C0609E
-:106220006E8B0C9C5D18F9B505FF8E68EDB8000704
-:10623000C0516E4B0C9CF01F00166EDB580BC0A0BB
-:10624000EEC8FFBC103BC0400C9CF01F0011300892
-:106250008FD86F2B580BC0700C9CF01F000D3008AE
-:10626000EF4800483008AE68F01F00070A9CD822AB
-:1062700080031E7480031F388003EF2C8003EF4CD3
-:106280008003EF6C80031E7680031D2C8003217C2D
-:10629000D4014848189B700CF01F0003D80200007E
-:1062A00000000598800361C0D42116981897109CAF
-:1062B00030084876149B8D08F01F00065BFCC05127
-:1062C0006C085808EFF81A03D822000000008CC4AC
-:1062D0008002F198D42116981897109C3008149BCE
-:1062E0004866129A8D08F01F00065BFCC0516C08CE
-:1062F0005808EFF81A03D82200008CC48002F1205D
-:106300001898E01C0000F0091510580CF20817004E
-:10631000F9BC0010F9BC0100109AF0091508E61A42
-:10632000FF00F7BC00F8F2081700109AF0091504F6
-:10633000E61AF000F7BC00FCF2081700109AF0090A
-:106340001502E61AC000F7BC00FEF2081700580854
-:106350005E5CEDB8001EF9BC0120F7BC00FF5EFCDE
-:1063600018997808F9D8C003C150EDB80000C021D1
-:106370005EFD109BF00A1601E21B0002A388580B79
-:10638000F3FA1A00F9BC0101F3F80A00F9BC0002A3
-:106390005EFCF5D8C010F00B1610580AF60817006E
-:1063A000F9BC0010F7D8C008F00A1608580BF7BC63
-:1063B00000F8F4081700F7D8C004F00A1604580BC8
-:1063C000F7BC00FCF4081700F7D8C002F00A160268
-:1063D000580BF7BC00FEF4081700EDB80000C060D1
-:1063E000A198C031320C5EFC2FFC93085EFCD401F6
-:1063F00018987649784C121CC1312FB9A369120B39
-:10640000F00900092EC8134E174A143EC060F9BCAB
-:1064100003FFF9BC0201D8021039FE9BFFF6D80237
-:10642000D4211897169578965806C091310CF01F14
-:10643000000A99368F9C9916992699065805C0909E
-:106440006A196E987038F009032A8B0AF009092539
-:10645000D82200008002E2A4D421189716967895DD
-:106460005805C091310CF01F001999358F9C991572
-:10647000992599056E956A385808C0B1310A304B94
-:106480000E9CF01F00138B3C6E98703C580CC1B0F2
-:106490006E987038F0060028700C580CC0407809CF
-:1064A0009109C0E80E9C30170E9BEE060947EECA14
-:1064B000FFFBA36AF01F0006C060991699273008F9
-:1064C00099389948D82200008002E2A48002DC5466
-:1064D000D431202D1693129610951492301BF01F74
-:1064E0000029F3D3C0145009F1D3C01FF0011614D2
-:1064F000FC1A0010F3DAE139FBF91A00189458027B
-:10650000C1E0FACCFFF818D2F01F001F4018C0D02D
-:106510004009F80A1120F20A094AF5E810088958DA
-:10652000F20C0A495009C028895840085808F9B3A4
-:106530000102F9B3000189688943C0981A9CF01FD1
-:106540000012301340082E0C894389585801C0901E
-:10655000E2C1043318018D01F80C11358B0CC0D841
-:10656000E6C8FFFCF8CC0432A5738D0CE808032CB8
-:10657000F01F000618138B03089C2FEDD832000083
-:10658000800364588003636080036300D4317448DF
-:106590007645169714961015C1312FB8EECEFFEC44
-:1065A000A368F408000BEE080008114A1749123AD4
-:1065B000C030C0E2C0781C38FE9BFFF9C4A8580563
-:1065C000C0640E9830150C971096C02830056E1BCD
-:1065D000F01F00246E496C4499352FB4F2C5FFFBBF
-:1065E000EC040024EE0500252EC62EC7F8C8FFECEB
-:1065F000300A0F0E0D0BFC021610F6031610FDDE0E
-:10660000C010E4030103F7DBC010FC0B010BF60A1A
-:10661000000AB01AB14AE60A000AB00A2FC8B14A05
-:106620000836CE83C0D80F0BF60E1610F7DBC0105D
-:10663000160AB01AB14A1C0AB00A2FC8B14A0A3762
-:10664000CF33C0282019114A580ACFD09949D832DF
-:10665000300BF01F00043018994830089958D83290
-:1066600080036458D43116977646F40214052FF649
-:10667000149318940406761B6E28C0382FFBA1785B
-:106680001036FE99FFFD089CF01F001A300918957E
-:10669000F8C8FFEC129AC03810AA2FF90439CFD5E8
-:1066A0006E4BE7D3C0052FBBEEC9FFECEE0B002B02
-:1066B0005803C130E60C1120300A7202E40309428B
-:1066C000044A10AA130AF40C0A4A1639CF73910A25
-:1066D000580AC0702FF6C058130A10AA1639CFD323
-:1066E000089C20160E9B8B46F01F00030A9CD83294
-:1066F0008003645880036420D431202D7649744887
-:10670000169614951039EC081750EA061750F00544
-:1067100017506C2876437442761BE4030007103749
-:10672000F7BB09FFF01F0036EEC4FFFBF8C9FFEC12
-:10673000F8040024300A1298C02810AA0838CFE3C1
-:106740002FB32FB2EC030023EA020022ECCBFFECC4
-:106750005012EACAFFECC44894955805C20012983A
-:106760001696300E50090D02E400161070017009E3
-:10677000B181E5D2C010E0050341AB32E1D9C010D0
-:106780000002E40E000EB01EB18E1C01B001E20E3C
-:1067900016102FC80636CE834009910E94865806EF
-:1067A000C1D072021298169E3005B0121D0190825F
-:1067B000E1D1C010AD30E0020002E4050005B005F3
-:1067C000B185B1812FC8AD319092E20200020A0278
-:1067D000E4051610063ECEA391022FCA2FC9401819
-:1067E000103ACBB3C02820175807E08A00050948A3
-:1067F0005808CFA099472FEDD83200008003645885
-:10680000D4211697301BF01F00043019995799496D
-:10681000D822000080036458D431300812951697AE
-:1068200018967644F6C9FFEC720BF60C1610F7DBDF
-:10683000C010F40C024CF40B0345F7D5C010B18521
-:106840001805EA0C1510F80B000B12AB2FF8B185E8
-:106850000838CEB55805C1D06E281034C1456E1B1E
-:106860000C9C2FFBF01F000C6E4AEECBFFF418932C
-:106870002FEA2F4CA36AF01F00090E9B0C9CF01FFF
-:1068800000080697E8C8FFFF2FB48F48EE040925DB
-:106890000E9CD832800364588002E736800364205F
-:1068A000D431149618971694F1DAC002C0902018CB
-:1068B0004A19F208032A3009F01F00201894A34651
-:1068C000C3706E955805C091310CF01F001D9935AD
-:1068D0008F9C9915992599056E9366255805C0D109
-:1068E000E06B02710E9CF01F0017872C3008189582
-:1068F0009908C038069C1895EDB60000C0C1089BE9
-:106900000A9A0E9CF01F0010089B18930E9C069488
-:10691000F01F000EA156C0C06A035803CEC10A9AE8
-:106920000A9B0E9CF01F00088B0C9903CE5B089C01
-:10693000D83200008003F380800368188002E2A44C
-:1069400080036800800366F880036420D4211698D1
-:106950001897109C3008149B4866129A8D08F01FF7
-:1069600000065BFCC0516C085808EFF81A03D822E7
-:1069700000008CC48002F1381498FC197FF0F5DB1C
-:10698000C01FF00B1100F7E81008F5E813F8F20843
-:106990000108F00C1100F9E81008F00C141F2FFC8E
-:1069A0005EFCD703F5EB101CE08000DCD421F7E996
-:1069B000200EEFDBC28B3015C430AB6BF7EA136BE4
-:1069C000AB6AF7D5D3C2EDD9C28BC5C0A1785CF94B
-:1069D000F3D5D2ABE04707FFC770E04607FFC740DB
-:1069E000EE06000CE02C03FEF6080644F40907440A
-:1069F000F4080646F609064A0807F405004A5C0B47
-:106A0000EDBB0014C050A1775CFA5CFB201C580C55
-:106A1000E08A006FE04C07FFE084009CF7DCD28B3B
-:106A2000EDEA11F6EFE61217EE178000F1B7042039
-:106A30000E0A5C0BEDBE001FEFBB001FD822E41B4B
-:106A4000000FF40C1200F6061200F7BC03E1F80682
-:106A50001730F7B60201E0460020C0D4EC0C11203C
-:106A6000F606094BF40C0A4C184BF406094A20B6FA
-:106A70000C17CAABF406094BC640300A20B60C17F7
-:106A8000CA3BE419000FF00C1200F2051200F7BC2B
-:106A900003EAF8051730F7B5020AE0450020C0D434
-:106AA000EA0C1120F2050949F00C0A4C1849F005CE
-:106AB000094820250A16C8FBF0050949C4203008FA
-:106AC00020250A16C88BE419000FE41B000F144B95
-:106AD0001049E04707FFC091580BC381E04607FF0C
-:106AE000C3815809C360C3285809C330C2F85C3C4D
-:106AF0002FFCF1BC04C0E04C0020C114F8081120A8
-:106B00000E46EE0C0A47F40809491247F40C0A4AEB
-:106B1000F6080949124AF60C0A4BC83BF80811203E
-:106B2000F9B90000C030F60809490E46EDEA101622
-:106B3000F40C0A4AF3EA1007F60C0A4A300BC71B9A
-:106B40001C9BE61B8000300AD8223FFB3FFAD8226C
-:106B5000F06B0000EDBE001FEFBB001F300AD82213
-:106B6000F7E9200BE61B8000F9D9C28BE04C07FF48
-:106B70005E1C3FFA3FFB5EFCEE198000F7E9200C3B
-:106B8000E08600CAEBCD40E0169CE61C8000BFDB2F
-:106B9000BFD9103AF20B1300C0921697129B0E99B0
-:106BA0001497109A0E98EE1C8000F6071614AB7B13
-:106BB000F7EA135BAB7ABFBBF2061614C440AB799D
-:106BC000F3E81359AB78BFB9E04707FFC4F00E26CE
-:106BD000C120EC051120E0460020C7C2F005094E97
-:106BE000F2050945F0060A48F2060A490A48580E15
-:106BF0005F1E1C48101AF609014BF6061200C0E091
-:106C0000C783EC0E1120F606094BF40E0A4E1C4BFE
-:106C1000F406094A0C17E08A0039F4091515AB9AF5
-:106C2000F5EB115AAB9BF7D7D28B184BFC178000B2
-:106C3000EDBA0000F7B701FF0E395F29120A5C0BAD
-:106C4000E3CD80E0AB79F3E81359AB78F3E8100EAD
-:106C5000F9B60101EE0E1100F9B70001EFBB001FFC
-:106C6000F7EA100EF9B70000CB0BBFDBF7EA100E06
-:106C7000C081E04607FFC050F9E7114BE3CD80E04B
-:106C80003FFA3FFBE3CD80E05C372FF7F1B704C05C
-:106C9000E0470020C114EE081120F40809495F16EE
-:106CA000F4070A4A0C4AF6080949F5E9100AF407FC
-:106CB0000A4B3007CB3BEE081140F608094914494E
-:106CC0005F16F6070A4A0C4A300B3007CA7BE3CD41
-:106CD00080E0F1B604C0F00E1700C040F205094E86
-:106CE000104EF2060A483009580E5F1E1C48C83B79
-:106CF000F4061200F9B70300F9B60300F9BC03006B
-:106D0000F7B602E0F406094B300A0C17FE9AFFBEF4
-:106D1000C85B0000EE198000F7E9200CFE96FF2EFC
-:106D2000EBCD40E0169CE61C8000BFDBBFD9123BD8
-:106D3000C0721697129B0E991497109A0E98300EE7
-:106D4000EFDBC28BF7DBC014B5ABEDD9C28BC5F05E
-:106D5000F3D9C014B5A9E04707FFC2500E26C0F012
-:106D6000EC051120E0460020C352F005094EF20563
-:106D70000945F0060A48F2060A490A48100AF609C7
-:106D8000004BEDBB0015C340F7D7D28B184BF9DA97
-:106D9000C001184EEE1E8000F1BE04201C0A5C0BE0
-:106DA000E3CD80E0B5CBF7EA100EC101E04607FF66
-:106DB000C030E3CD80E0B5C9F3E8100EC071300AF1
-:106DC000FC1B7FF0184BE3CD80E03FFA3FFBE3CDA7
-:106DD00080E0F1B604C0F00E1700C060F205094E65
-:106DE00058085F18104EF2060A483009CC8BFDEEA9
-:106DF000101EA19B5D0A5D0E2FF7E04707FFF9BA51
-:106E00000000F9BB0000F9BE0000CBFB30165807AC
-:106E1000CA31B5CB100AF609004B184BE3CD80E020
-:106E2000580B5E6DF60C1501B59CE02C03FF5E3D22
-:106E3000F80C111F1699AB7BBFBBF7EA135BF60C7E
-:106E40000A4BA1795E2B5C3B5EFBF8CB0000300C5B
-:106E5000C038189B5C4B300A5E0BD401E069041EFD
-:106E6000F6081200C170C0C3F00E1120F608094BDD
-:106E7000F40E0A4E1C4BF408094A1019C0B8F40865
-:106E80001200F9B80300F7B802E0F408094B300A21
-:106E900010195809E08900305C392FF9E0490036B3
-:106EA000C043300B300AC2682F69F2081120E04954
-:106EB0000020C0B2F408094EF6080948F4090A4A4D
-:106EC000F6090A4B104BC088F608094E144E169A64
-:106ED000300BF4090A4AEDBA0000C0921C7EC04192
-:106EE000EDBA0001C0422FFAF7BB02FF5CFC5D0B5C
-:106EF0005D0AD802E06803FFEDBA000BF7B800FFA7
-:106F0000100A5C0BF7B903FEE04907FFC055300AD1
-:106F1000FC1BFFE0C0C8EDBB001FF7B90101AB9A35
-:106F2000F5EB115AA17BAB9BF7E9115BA17C5D0BE3
-:106F3000D802103AF20B1300C080A17BA179144B48
-:106F4000124B104B5E0F5EFDA17BFC1CFFE0580A4C
-:106F5000F80B13005E8F5EFD1ADE1AD7A17B5F3C33
-:106F6000A1795F375CFCFC1EFFE0580AFC0B1300A4
-:106F7000E08B001D5808FC091300E08B0018580B2B
-:106F8000F5BA0000C1501B071B0E583CC0A0581C8E
-:106F9000C0335E0F5E1D103AF20B13005E2F5E3D94
-:106FA0001438F60913005E2F5E3D1B07D80A5817E8
-:106FB0005F0C5809F5B800001B071B0E5E0F5EFC46
-:106FC0001ADE1AD7A17B5F3CA1795F375CFCFC1EFF
-:106FD000FFE0580AFC0B1300E08B001D5808FC0969
-:106FE0001300E08B0018580BF5BA0000C1501B07C6
-:106FF0001B0E583CC0A0581CC0335E0D5E1F103ADB
-:10700000F20B13005E2D5E3F1438F60913005E2D5F
-:107010005E3F1B07D80A58175F1C5809F5B80000D7
-:107020001B071B0E5E0D5EFCEBCD40FFF7E9200E4B
-:10703000F6071614A97BF7EA137BA97ABDBBE41BFC
-:107040003FFFABD7E08000CCE04707FFE08400B50E
-:10705000F2061614A979F3E81379A978BDB9E419F1
-:107060003FFFABD6E08000E2E04607FFE08400B2DD
-:107070000C17FE37FC01FC1C8000F8031601E9D94F
-:10708000C3625CD4E7D4D382E6090644F80501253F
-:10709000E6050644EA031502E6090644F80501255B
-:1070A000E6050644EA031502E6090644F80501254B
-:1070B000E6050644EA031502E6080640E40907402F
-:1070C000E609064402045C05A365EBE413E5A3644A
-:1070D0005C34F8050145E6040640E4050740E60592
-:1070E000064402045C05EA031502E7E413E3E80240
-:1070F0001502E6080640E4090740E60906440204D2
-:107100005C05A365EBE413E5A3645C34F805014575
-:10711000E6040640E4050740E605064402045C0573
-:10712000EA031502E7E413E3E8021502E60A064063
-:10713000E40B0740E60B064202025C03EDB3001CC1
-:10714000C090A1725CF32017A39AF5EB11DAA39B10
-:10715000C058A58AF5EB11CAA58B5807E08A008BA9
-:10716000E012FF00E8120080E6080640E40907404C
-:10717000E4080644E60906480005F00100485C09F9
-:10718000F9D2C10158045C25F4081300F609130074
-:107190005F36F8061700E40A1608F5E3118AE60BD5
-:1071A0001608F7D7D28BEDBE001FEFBB001F0C0AED
-:1071B0005C0BE3CD80FFE41B000F144BE08100A7C4
-:1071C000F2061614ABD6E04607FFE08100A4C9E83A
-:1071D000E419000F1049E081009AC928A37BF7EA5F
-:1071E00013DBA37AF5EB1004E08000A0F604120094
-:1071F000C170C0C3E8051120F604094BF4050A4527
-:107200000A4BF404094A0817C0B8F4041200F9B490
-:107210000300F7B402E0F404094B300A0817A38A0C
-:10722000F5EB11EAA38BC11BA379F3E813D9A3787B
-:10723000F3E81004C6F0F2041200C170C0C3E80500
-:107240001120F2040949F0050A450A49F0040948E9
-:107250000816C0B8F0041200F9B40300F7B402E055
-:10726000F004094930080816A388F1E911E8A38958
-:10727000CFCA5C372FF7F1B704C0E0470020C154F4
-:10728000EE061120E4070A42E606094C1842E6071A
-:107290000A43F4060941F4070A4AF606094C184A5B
-:1072A000F6070A4B3000C158EE061120F9B0000075
-:1072B000F9BC0000C050F4060940F606094CE60788
-:1072C0000A423003F4070A411841F6070A4A300B14
-:1072D000E012FF00E8120080E6080646E4090746CF
-:1072E000E4080644E60906480C05F00700485C0976
-:1072F0003007F9D2C1010034E2051300C46B1C9BB6
-:10730000E61B8000300AE3CD80FF3FFB300AE3CD6F
-:1073100080FFF5EB1004C0901C9BE61B8000EA1B6D
-:107320007FF0300AE3CD80FFF1E91015CEF0E9D906
-:10733000C28BE04407FFCE41F1E910C5CE10CE6B01
-:10734000D4311A97202D109C1295149E16931696E0
-:107350005809C4411638E088005AF0081200C0D01D
-:10736000F6080946F808094CF00B1120F408094EFC
-:10737000F40B0A4BF7E61006F80A1610EBDCC01007
-:10738000EC0A0D02FC091610EA02024BF3E31109A4
-:10739000123BE08800091809123CE08B0005123B03
-:1073A000F3DCEB09F20B010BFDDEC010F60A0D0A4F
-:1073B000FDEB110EEA0A024A1C3AE0880009180E99
-:1073C0001C3CE08B00051C3AFDDCEB0EFC0A010ABC
-:1073D000300BF4080A4A2FEDD8321639FE9BFFFD18
-:1073E000F2091200C46114385F8B06355F3AF7EA80
-:1073F000100AF20A1800C060FC08010AE6050146FE
-:10740000149E0C9B1C9A2FEDD8325808C05130198D
-:10741000F2080D08109CF8081200E0810084EC0CC2
-:10742000010BF8031610EBDCC010F6030D0AFC0983
-:107430001610EA0A024AF3EB1109123AE088000931
-:107440001809123CE08B0005123AF3DCEB09141921
-:10745000FDDEC010F2030D02FDE3110EEA02024A46
-:107460001C3AFE98FFB5180E1C3CFE9BFFB1CACB20
-:10747000F20E1120EA090945F609094BE60E0A4306
-:10748000F0090941F4090942F00E0A48F40E0A4ACB
-:107490000A48164AF0061610F9D8C010E6060D0480
-:1074A000F4031610089BE7E51103E80C02450635C6
-:1074B000E0880007201B10030638E0880072F5DA28
-:1074C000C0100A13E6060D04F5E51106E80C024C9F
-:1074D000089A0C3CE0880007201A10060C38E08857
-:1074E000005AF5EB110B1816F601064A149C1636D5
-:1074F000C0735F0514325F3AEBEA000AC060F8011E
-:107500000104F608014B089CE40C010AEC0B01464F
-:10751000EC090A4BF4090A4AEC0E09460C4A2FED15
-:10752000D832F0011120F4010A4BF808094CEC089C
-:107530000949EC010A41F7E91009F8031610EBDCE0
-:10754000C010E2030D00F20B1610EA00024EF7E144
-:10755000110B163EE0880006180B163CE088002749
-:10756000F60E0101F3D9C010E2030D00F3E1110999
-:10757000EA00024B123BE08800091809123CE08B3C
-:107580000005123BF3DCEB09F20B010BF408094E8A
-:10759000C4DB0C3CF7BA0B01EDD8EB06CA3B063551
-:1075A000F7BB0B01E7D8EB03C8BB163EF7DCEB0BD0
-:0275B000CD8B81
-:10760000C0080000C0080000C0080000C00800005A
-:10761000C0080000C0080000C0080000C00800004A
-:10762000C0080000C0080000C0080000C00800003A
-:10763000C0080000C0080000C0080000C00800002A
-:10764000C0080000C00800000000000000000000AA
-:10765000C008000000000000000000000000000062
-:10766000C008000000000000000000000000000052
-:10767000C008000000000000000000000000000042
-:1076800000000000000000000000000000000000FA
-:1076900000000000000000000000000000000000EA
-:1076A00000000000000000000000000000000000DA
-:1076B00000000000000000000000000000000000CA
-:1076C00000000000000000000000000000000000BA
-:1076D00000000000000000000000000000000000AA
-:1076E000000000000000000000000000000000009A
-:1076F000000000000000000000000000000000008A
-:10770000C0080000300CF01F0012580CF80F1710C2
-:10771000D603301CF01F000E580CF80F1710D603BC
-:10772000302CF01F000B580CF80F1710D603303C0C
-:10773000F01F0007580CF80F1710D60300000104C3
-:107740004000011280000120C000012E8000A41C16
-:107750000000000000000000000000000000000029
-:107760000000000000000000000000000000000019
-:107770000000000000000000000000000000000009
-:1077800000000000000000000000000000000000F9
-:1077900000000000000000000000000000000000E9
-:1077A00000000000000000000000000000000000D9
-:1077B00000000000000000000000000000000000C9
-:1077C00000000000000000000000000000000000B9
-:1077D00000000000000000000000000000000000A9
-:1077E0000000000000000000000000000000000099
-:1077F0000000000000000000000000000000000089
-:1078000073656E645265706C790000006765745F23
-:10781000646174615F7463705F636D645F63620071
-:107820006765745F7265706C795F686F73745F62AF
-:10783000795F6E616D655F63620000006765745F0C
-:107840007265706C795F7363616E5F6E6574776F7C
-:10785000726B735F636200006765745F7265706C62
-:10786000795F6964785F6E65745F63620000000031
-:107870007365745F706173737068726173655F6361
-:107880006D645F63620000007365745F6B65795FB0
-:10789000636D645F6362000063616C6C5F7265704E
-:1078A0006C795F6362000000617661696C5F64619E
-:1078B00074615F7463705F636D645F636200000096
-:1078C0007365744D6170536F636B4D6F6465000039
-:1078D0006765745374617274436D6453657100001D
-:1078E0007365745F6E65745F636D645F63620000EF
-:1078F0007365745F69705F636F6E6669675F636D00
-:10790000645F63620000000073656E644572726FAD
-:107910007200000073746172745F736572766572D1
-:107920005F7463705F636D645F6362007370695F4F
-:10793000736C61766552656365697665496E74003E
-:107940006765745F636C69656E745F737461746599
-:107950005F7463705F636D645F63620073656E6420
-:107960005F646174615F7564705F636D645F6362BF
-:1079700000000000636865636B4D7367466F726D4E
-:107980006174000073746172745F7363616E5F6E23
-:1079900065745F636D645F6362000000666F756E9F
-:1079A00064486F737442794E616D65007365745FEE
-:1079B0006B65795F636D645F63620000696E697413
-:1079C0005370690073746172745F636C69656E747F
-:1079D0005F746370000000007370695F706F6C6C9F
-:1079E000000000006765745F726573756C745F6397
-:1079F0006D645F636200000073746F705F636C6935
-:107A0000656E745F7463705F636D645F63620000D2
-:107A100073746172745F7365727665725F7463709C
-:107A2000000000007365745F706173737068726149
-:107A300073655F636D645F63620000007365745F0C
-:107A4000726573756C745F636D6400007365745F59
-:107A5000646E735F636F6E6669675F636D645F63B7
-:107A6000620000006765745F73746174655F7463BE
-:107A7000705F636D645F6362000000007265715F38
-:107A80007265706C795F686F73745F62795F6E6145
-:107A90006D655F636200000073746172745F636C94
-:107AA00069656E745F7463705F636D645F636200C9
-:107AB000572D5B25735D2057726F6E67207465725A
-:107AC0006D696E6174696F6E20696E6465783A25C0
-:107AD00064206E506172616D3A2564206964783A61
-:107AE00025642031366269743A25640A000000007A
-:107AF0003078257820000000572D5B25735D2049E4
-:107B00006E646578206F7574206F662072616E6791
-:107B1000653A2025640A00005B25735D20535349B4
-:107B2000443A25730A0000005B25735D20525353CD
-:107B3000493A25640A0000005B25735D20454E43E9
-:107B4000543A25640A0000005B25735D205365618B
-:107B5000726368696E6720666F7220486F73743A4B
-:107B60002069703D3078257820666F756E643D25FC
-:107B7000640A00005B25735D20666F756E64486F54
-:107B8000737442794E616D653A20466F756E64205C
-:107B9000486F73743A206E616D653D25732069707E
-:107BA0003D307825780A00005B25735D20696653B7
-:107BB00074617475733A256420726573756C743AD8
-:107BC00025640A004C69737420436F6D6D616E64A7
-:107BD000732066756C6C210A000000005245434515
-:107BE000495645005452414E534D4954000000003F
-:107BF0005B25735D204D6170205B25642C20257012
-:107C00002C2025735D0A00005B25735D20535049CD
-:107C100020696E697469616C697A6174696F6E203C
-:107C20006661696C65642100572D5B25735D204595
-:107C300072726F7220636F6E6669677572696E67C4
-:107C4000205350490A000000572D5B25735D202505
-:107C5000645D20446973616C6C2E2025642F25645B
-:107C600020636D643A25640A00000000572D5B25EF
-:107C7000735D2025645D20446973616C6C2E202542
-:107C8000640A00005B25735D3A200000572D5B25D8
-:107C9000735D2025645D204E6F7420666F756E6481
-:107CA00020656E6420636D643A20307825780A0080
-:107CB0005B25735D2025732025640A00572D5B2505
-:107CC000735D20456E64206F6620636D6420706173
-:107CD00072616D73000000005B25735D2064617448
-:107CE00061417661696C3A25640A0000572D5B2575
-:107CF000735D2054544350206E6F7420666F756E10
-:107D00006420666F7220736F636B3A25640A00000B
-:107D10005B25735D20736F636B3A25642073746118
-:107D200074653A25640A00005B25735D20737461F5
-:107D300074653A25640A00005B25735D2053746105
-:107D40007274204E6574776F726B205363616E207E
-:107D500025640A00572D5B25735D206572723D25F1
-:107D6000640A00005B25735D204C6F6F6B696E6762
-:107D700020666F7220486F73743A206E616D653DA6
-:107D800025730A005B25735D20466F756E6420487D
-:107D90006F73743A206E616D653D25732069703D87
-:107DA000307825780A0000005B25735D2053746FDE
-:107DB0007020636C69656E7420736F636B3A256421
-:107DC0000A00000055445000544350005B25735D89
-:107DD00020416464723A307825782C20706F727478
-:107DE0003A25642C20736F636B3A25642C207072E3
-:107DF0006F743A25730A0000572D5B25735D205080
-:107E0000726576696F757320636C69656E74202581
-:107E100070206E6F742073746F7070656420210A17
-:107E2000000000005B25735D205374617274204371
-:107E30006C69656E74202573202570205B30782571
-:107E4000782C2025642C2025645D204F4B210A00CE
-:107E50005B25735D20537461727420436C69656E99
-:107E600074202573202570205B307825782C202500
-:107E7000642C2025645D204641494C4544210A007C
-:107E8000572D5B25735D205374696C6C20636F6E96
-:107E90006E65637465642E2E2E776169740A000026
-:107EA000572D5B25735D20494620646F776E2E2E1B
-:107EB0002E776169740A00005B25735D205374613D
-:107EC000727420536572766572202573205B256479
-:107ED0002C2025645D204F4B210A0000572D5B2587
-:107EE000735D2053746172742053657276657220DD
-:107EF0002573205B25642C2025645D204641494C78
-:107F00004544210A000000005B25735D2025702098
-:107F10006E756D506172616D3D2564207061726D8A
-:107F200073546F4368616E67653D25640A00000005
-:107F30005B25735D2025645D206E69663A2570209F
-:107F40006C7769705F616464723D307825780A00EF
-:107F50005B25735D20257320706172616D733D2513
-:107F6000640A00005B25735D20506173733A20251D
-:107F7000732025640A000000572D5B25735D2025C2
-:107F800073203A204661696C656420746F206164D7
-:107F90006420706173737068726173650A00000019
-:107FA000436F6E6E65637420746F206E6574776FB7
-:107FB000726B2E2E2E0000006572723D25640A0041
-:107FC0004F4B0A00572D5B25735D205353494420C6
-:107FD0006C656E206F7574206F662072616E6765C8
-:107FE000000000005B25735D2025730A000000007F
-:107FF000572D5B25735D2053656E642053504920D7
-:108000006572726F72210A003D3D3E003C3D3D00AD
-:10801000572D5B25735D20556E6B6E6F776E2063F9
-:108020006D6420307825780A00000000572D5B250C
-:10803000735D2025645D20436865636B20666F7205
-:108040006D6174206D7367206661696C6564210AD7
-:1080500000000000444F574E000000005550000043
-:1080600049462020207374617475733A2025730A81
-:1080700000000000434F4E4E207374617475733AD4
-:108080002025730A00000000536F636B6574206E37
-:108090002E3A256428256429205B307825785D20D8
-:1080A000257320257320616464723A257320706FF4
-:1080B00072743A25640A00005B2564207470637052
-:1080C0002D25705D2D5374617475733A25640A0013
-:1080D0005B746C63702D25705D2D537461747573C2
-:1080E0003A25640A000000005B757063702D2570EE
-:1080F0005D20666C6167733A3078257820206C6F5C
-:1081000063616C3A25735B307825785D2D25640AB0
-:108110000000000072656D6F74653A257328307831
-:108120002578292D25640A004E4F0000594553003B
-:108130004461746120617661696C3A25730A0000BC
-:108140002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D5F
-:108150002D2D2D2D2D2D2D2D2D2D2D2D2D2D0A009F
-:108160005B25735D205363616E206E6F7420636FB7
-:108170006D706C65746564210A0000005B25735D99
-:10818000204E6574776F726B73206E6F7420666F0C
-:10819000756E64210A000000636F756C64206E6F59
-:1081A0007420616C6C6F6361746520616C6C206716
-:1081B0007569206E65742061727261790A00000031
-:1081C000636F756C64206E6F7420616C6C6F63619B
-:1081D000746520616C6C20677569206E6574730A24
-:1081E000000000005B25735D202564202D20257391
-:1081F000205B25645D2D202564202D202564202D05
-:1082000020307825780A000D000B000C000A0000D1
-:108210007365745F726573756C745F636D64000081
-:108220008000636C800063988000637E80006398A8
-:108230008000638E80006398800063648000639890
-:10824000800063688000638A800063786174637073
-:108250005F706F6C6C5F636F6E6E00007564705F53
-:10826000737461727400000072656D6F76654E659F
-:1082700077436C69656E74436F6E6E0061756470F0
-:108280005F726563765F6362000000006765745328
-:1082900074617465546370006172645F7463705FCD
-:1082A00073746F7000000000617463705F636F6EC1
-:1082B0006E5F6572725F6362000000006765744EF6
-:1082C0006577436C69656E74436F6E6E4964000038
-:1082D000617463705F636F6E6E5F636C695F65721C
-:1082E000725F636200000000617463705F616363CA
-:1082F0006570745F636200007564705F73746172AF
-:10830000740000005B25735D20747463703A2570FF
-:108310002069643D25642C20747063623D25700AD9
-:1083200000000000572D5B25735D204E6F205661C5
-:108330006C696420636C69656E7420666F7220746A
-:108340007463703A25700A005B25735D2025645DB7
-:1083500020747463703A257020747063623A2570DB
-:108360002073746174653A2564206C7063623A25E9
-:10837000702073746174653A2564206C6566743A84
-:1083800025642073656E743A25640A00572D5B25B9
-:10839000735D20544350206E6F7420696E69746958
-:1083A000616C697A656420747463703A2570207416
-:1083B0007063623A2570206C7063623A25700A001F
-:1083C000572D5B25735D204E6F2056616C696420CC
-:1083D000496420666F7220747463703A257020704F
-:1083E00063623A25700A00005B25735D2062756642
-:1083F0003A2570206C656E3A25640A00572D5B257E
-:10840000735D2054544350205B25705D3A20636FA8
-:10841000756C64206E6F7420616C6C6F6361746541
-:1084200020706275660A0000572D5B25735D20542D
-:10843000544350205B25705D3A207564705F73650E
-:108440006E642829206661696C65640A000000007A
-:108450005B25735D2054544350205B25702D25709F
-:108460005D3A20636F6E6E65637420256420256419
-:108470000A0000005B25735D206C6566743D256411
-:10848000206C656E3A25640A000000005B25735D70
-:10849000207463705F7772697465206661696C65CA
-:1084A000642025702073746174653A2564206C65BE
-:1084B0006E3A2564206572723A25640A0000000055
-:1084C000572D5B25735D2074746370203D3D204EF5
-:1084D000554C4C210A0000005B25735D20747463C9
-:1084E000703A2570207063623A2570206275663A92
-:1084F0002570206C656E3A25640A00005B25735D6B
-:1085000020272573270A00005B25735D20506163D7
-:108510006B65742073656E74207063623A257020F9
-:108520006C656E3A2564206475723A2564206C652A
-:1085300066743A25640A00005B25735D2054544339
-:1085400050205B25705D3A20636C65616E536F63EC
-:108550006B53746174655F63622025640A000000D8
-:108560005B25735D20436C6F73696E672074706365
-:10857000623A2073746174653A30782578206572A8
-:10858000723A25640A0000005B25735D20436C6F1E
-:1085900073696E67206C7063623A207374617465EE
-:1085A0003A30782578206572723A25640A00000016
-:1085B0005B25735D2046726565696E672070617921
-:1085C0006C6F61642025642D25700A005B25735D46
-:1085D00020436C6F73696E6720747063625B2570F3
-:1085E0005D3A2073746174653A307825782065723D
-:1085F000723A25640A000000572D5B25735D204305
-:10860000616E6E6F7420636C6F73652069643A25C8
-:10861000642D2570207075742070656E64696E67B6
-:108620000A0000005B25735D202D2D2D2D2D2D2D95
-:108630002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0A8D
-:1086400000000000572D5B25735D2074746370205B
-:108650003D204E554C4C210A000000005B25735D07
-:1086600020666C75736820646174613A207470636D
-:10867000623A2570206572723A25640A0000000093
-:10868000572D5B25735D2054544350205B25705D4E
-:108690003A20636F6E6E656374696F6E20657272E7
-:1086A0006F723A202564206375727249643A2564BA
-:1086B0000A00000041626F727420636F6E6E656322
-:1086C00074696F6E0A000000572D5B25735D20549E
-:1086D000544350205B25705D3A20636F6E6E656376
-:1086E00074696F6E206572726F723A202564206122
-:1086F00072673A25700A0000572D5B25735D205480
-:10870000544350205B25705D3A2066726565206D8C
-:10871000656D6F72790A00005B25735D20554450CA
-:1087200020496E7365727420257020736F636B3AF5
-:10873000256420616464723A257320706F72743A04
-:1087400025640A00572D5B25735D20545443502047
-:108750005B2D5D3A20696E76616C6964206D6F6493
-:10876000650A0000572D5B25735D2054544350204B
-:108770005B2D5D3A20696E76616C6964206E62756E
-:10878000660A0000572D5B25735D2054544350202A
-:108790005B2D5D3A20696E76616C69642062756656
-:1087A0006C656E0A00000000572D5B25735D205438
-:1087B000544350205B2D5D3A20636F756C64206ECE
-:1087C0006F7420616C6C6F63617465206D656D6F93
-:1087D000727920666F7220747463700A0000000062
-:1087E000572D5B25735D2054544350205B25705DED
-:1087F0003A20636F756C64206E6F7420616C6C6FCF
-:1088000063617465207063620A0000005B25735D1C
-:108810002025732C20757063623A25702025733AE9
-:1088200025640A00572D5B25735D20545443502066
-:108830005B25705D3A2075647020636F6E6E6563B2
-:1088400074206661696C65640A000000572D5B2521
-:10885000735D2054544350205B25705D3A2062695B
-:108860006E64206661696C6564206572723D256482
-:1088700020506F727420616C726561647920757329
-:1088800065640A005B25735D2025732C206C6F6383
-:108890003A307825782D25642072656D3A30782538
-:1088A000782D25640A0000005B25735D20416C6C07
-:1088B0006F63207061796C6F61642025642D257071
-:1088C0000A000000572D5B25735D2054544350204F
-:1088D0005B25705D3A20636F756C64206E6F742049
-:1088E000616C6C6F63617465207061796C6F616439
-:1088F0000A0000005B25735D205B747063625D2D70
-:108900002570207061796C6F61643A25700A0000EF
-:10891000572D5B25735D2054544350205B25705DBB
-:108920003A2074637020636F6E6E656374206661B5
-:10893000696C65640A0000005B25735D2042454652
-:108940004F52452042494E4420747463703A25705A
-:10895000206C7063623A2570207063623A25700A59
-:1089600000000000572D5B25735D205454435020B8
-:108970005B25705D3A206C697374656E2066616971
-:108980006C65640A00000000572D5B25735D205361
-:108990007461727420736572766572204641494C29
-:1089A0004544210A000000005B25735D20545443B8
-:1089B00050205B25702D25705D3A206E6275663DF6
-:1089C00025642C206275666C656E3D25642C2070D4
-:1089D0006F72743D2564202825732F2573290A00A2
-:1089E0007574726C3A6E3A703A7600002573000026
-:1089F0005B25735D2041524420544350205B257019
-:108A00005D3A20616363657074206E6577205B2535
-:108A1000705D0A005B25735D206C6F63616C3A25A5
-:108A2000642072656D6F74653A2564207374617497
-:108A3000653A25640A0000007061796C6F616420FA
-:108A40006E6F74206672656564210000572D5B258A
-:108A5000735D2041524420544350205B25705D20BB
-:108A60006172673D257020726574726965733D257A
-:108A7000642061626F72740A000000005B25735D00
-:108A8000206B656570416C697665436E743A256448
-:108A9000206B6565705F69646C653A25642070655C
-:108AA00072736973745F636E743A25640A00000020
-:108AB0005B25735D2041524420544350205B257058
-:108AC0002D25705D206172673D257020726574727E
-:108AD0006965733D25642070656E642E636C6F73E9
-:108AE000653A2564206C656E3A25640A0000000032
-:108AF0005B25735D2041524420544350205B257018
-:108B00002D25705D2074727920746F20636C6F73F3
-:108B1000652070656E64696E673A256420657272BF
-:108B20003A25642069643A25640A00005B25735D78
-:108B30002041524420544350205B25702D25705D08
-:108B4000206172673D257020726574726965733D9E
-:108B500025642070656E642E636C6F73653A2564BE
-:108B600020636F6E6E3A25640A000000572D5B2566
-:108B7000735D2041524420544350205B25702D25C5
-:108B8000705D206172673D25702072657472696541
-:108B9000733D25640A0000005B25735D204152444B
-:108BA00020544350205B25702D25705D2074727910
-:108BB00020746F20636C6F73652070656E64696EDE
-:108BC000673A25640A0000005B25735D206C656EC2
-:108BD0003A25640A000000005B25735D20736F6313
-:108BE0006B3A2564207063623A2570207062756666
-:108BF0003A2570206572723A256420627566537456
-:108C00006F72653A2570206C656E3A25640A000023
-:108C10005B25735D20617463705F726563765F636B
-:108C20006220703D4E554C4C206F6E20736F636B0D
-:108C30003A2564207063623A25700A00572D5B253F
-:108C4000735D206572723D256420703D25700A00B9
-:108C50005B25735D205265636569766564202570C8
-:108C6000206C656E3A25640A000000006174637030
-:108C70005F737461727400007463705F73656E6417
-:108C80005F646174615F70636200000061746370AF
-:108C90005F706F6C6C000000617463705F7265637D
-:108CA000765F6362000000006172645F7463705FEE
-:108CB000737461727400000067657446697273743E
-:108CC000436C69656E7400006172645F7463705F09
-:108CD00064657374726F7900636C6F73655F636F43
-:108CE0006E6E000073656E6455647044617461005B
-:108CF000696E736572744E6577436C69656E744313
-:108D00006F6E6E0061636B5F726563766564000011
-:108D10007463705F636F6E6E6563745F636200009F
-:108D200073656E645463704461746100636C6F7347
-:108D3000655F636F6E6E5F7063620000636C656198
-:108D40006E536F636B53746174655F636200000000
-:108D50007463705F646174615F73656E74000000BA
-:108D600061636B416E6446726565446174610000C5
-:108D7000676574417661696C5463704461746142E3
-:108D80007974650066726565744461746100000001
-:108D9000676574546370446174614279746500005E
-:108DA00063616C634D657267654C656E0000000021
-:108DB000696E73657274427566000000697341766E
-:108DC00061696C5463704461746142797465000038
-:108DD00066726565744461746149647800000000DE
-:108DE0005B25735D202570205B25642C25645D0A5E
-:108DF00000000000686561644275663D256420746A
-:108E000061696C4275663D25640A000025645D2039
-:108E10007063623A2570204275663A202570204CB6
-:108E2000656E3A25640A00005B25735D20205B2592
-:108E3000645D3A206C656E3A2564206964783A2551
-:108E40006420746F743A25640A0000005B25735D2A
-:108E500020417661696C61626C6564206461746153
-:108E60003A2025640A000000572D5B25735D2069B8
-:108E70006478427566206F7574206F662072616E2B
-:108E800067653A2025640A005B25735D2025702004
-:108E90006964783A25640A00572D5B25735D20428A
-:108EA0007566203D3D204E554C4C21005B25735D81
-:108EB0002041636B207063623A2570206C656E3AC6
-:108EC000256420736F636B3A256420646174613A92
-:108ED00025700A005B25735D206765743A25642060
-:108EE00025702025640A00005B25735D206368659A
-:108EF000636B3A25642025642025700A0000000079
-:108F00005B25735D2046726565202570206F74684F
-:108F1000657220627566202564207461696C3A254B
-:108F20006420686561643A25640A0000572D5B255A
-:108F3000735D204F76657277726974696E6720621F
-:108F40007566666572202570206964783A2564210B
-:108F50000A000000572D5B25735D20706275665F07
-:108F6000636F70795F7061727469616C20666169AA
-:108F70006C65643A207372633A25702C20647374B4
-:108F80003A25702C206C656E3A25640A00000000BA
-:108F9000572D5B25735D2041766F696420746F20C7
-:108FA0004F76657277726974652064617461205BC5
-:108FB00025642D25645D210A000000005B25735D9A
-:108FC00020496E736572745B25645D3A2025703AA2
-:108FD00025642D2564205B25642C25645D0A000032
-:108FE000572D5B25735D20536F636B206F75742065
-:108FF0006F662072616E67653A20736F636B3D2503
-:1090000064000000696E736572745F70427566007B
-:109010006765745F70427566000000000000E10043
-:1090200008040000000000000F01110110011301ED
-:109030000E01110110010F0106000500636D645F50
-:109040007365745F69700000636D645F736574704D
-:1090500061737300636D645F7374617274436C69F0
-:1090600000000000466F756E6420486F73743A20EC
-:109070006E616D653D25732069703D307825780AF5
-:109080000000000075736167653A206474203C310C
-:109090007C303E0A0000000075736167653A2073FA
-:1090A000656E64556470205B736F636B5D0A097352
-:1090B0006F636B3A20736F636B6574204E756D62DE
-:1090C00065720A00536F636B65743A2025640A0069
-:1090D0005061747465726E547970653A2025640A23
-:1090E0000000000050726F766100000031323334AE
-:1090F000353637383930000046696E65546573740B
-:10910000000000006F6666004465627567204F4688
-:10911000460A00007072696E740000004465627552
-:10912000672009656E61626C65643A203078257845
-:109130000A000000566572626F736520656E616299
-:109140006C65643A20307825780A000044756D70AB
-:109150002009656E61626C65643A20307825780A72
-:1091600000000000504F6F6C6C2009656E61626CEE
-:1091700065643A20307825780A00000044656275FD
-:1091800067204F4E0A00000075736167653A2064DE
-:1091900065627567203C73656374696F6E3E203C41
-:1091A0006C6576656C3E0A0973656374696F6E3A27
-:1091B00020696E69742C20636D2C207370692C20DB
-:1091C000746370202C207574696C2C207761726E2A
-:1091D0000A096C6576656C20203A203020286F667D
-:1091E00066292C203120286F6E292C2032202876E9
-:1091F0006572626F7365290A096F723A206465624D
-:109200007567207072696E742F6F6E2F6F66660AB5
-:1092100000000000696E697400000000737069004E
-:1092200074637000636D00007574696C0000000069
-:109230007761726E00000000616C6C0044756D70A7
-:1092400020416C6C20427566666572730A000000EE
-:1092500075736167653A2064756D7050627566203C
-:109260005B736F636B5D0A09736F636B3A20736F97
-:10927000636B6574204E756D6265720A00000000B4
-:109280006E6F6E650000000044656C6574696E6702
-:1092900020574550206B6579730A0000757361672C
-:1092A000653A207365746B6579203C6B65795F69FD
-:1092B00064782028302D33293E203C6B6579206965
-:1092C0006E206865783E0A09206F723A20736574D3
-:1092D0006B6579206E6F6E650A000000205745505F
-:1092E000206B6579206D75737420626520313020A4
-:1092F000285745502D343029206F722032362028CF
-:109300005745502D31303429206469676974730AD8
-:1093100000000000776C5F61706920766572736988
-:109320006F6E2076322E372E300A00006661696C2F
-:10933000656420746F20676574206D6163206164CB
-:1093400064726573730A0000687720616464723A1E
-:109350002025730A000000006C696E6B2073746135
-:109360007475733A20000000697020616464723A79
-:10937000202573202D2000006E65746D61736B3A9B
-:10938000202573202D200000676174657761793A8C
-:109390002025730A00000000697020696E746572F0
-:1093A0006661636520697320646F776E0A00000050
-:1093B00064686370203A2000656E61626C65640ABF
-:1093C0000000000064697361626C65640A0000005B
-:1093D000444E533A202573202D2000007573616799
-:1093E000653A207374617274436C69203C697061E2
-:1093F0006464723E203C706F72743E203C736F63F5
-:109400006B3E203C7463702830292F7564702831BE
-:10941000293E0A00537461727420636C69656E742E
-:10942000206F6E206164647220307825782C207063
-:109430006F727420256420736F636B202564206D28
-:109440006F64652025640A00572D5B25735D2053EA
-:109450007461727420636C69656E74206F6E207025
-:109460006F727420256420736F636B2025642070F5
-:10947000726F74202564206D6F646520256420461A
-:1094800041494C45440A000075736167653A207391
-:1094900074617274537276203C706F72743E203C1B
-:1094A000736F636B3E203C7463702830292F7564A2
-:1094B000702831293E0A00005374617274202573AC
-:1094C00020736572766572206F6E20706F727420E3
-:1094D000256420736F636B2025640A00572D5B257C
-:1094E000735D2053746172742025732073657276E6
-:1094F0006572206F6E20706F727420256420736F08
-:10950000636B202564204641494C45440A00000015
-:1095100075736167653A20736574646E73205B319F
-:109520002D325D206161612E6262622E6363632E63
-:109530006464640A0000000053657420444E5320A4
-:1095400073657276657220256420746F2025730A16
-:10955000000000003D3D3E20444E53313A2025732B
-:109560000A0000003D3D3E20444E53323A20257310
-:109570000A00000075736167653A20676574486F7B
-:109580007374203C686F73746E616D653E0A0000F1
-:1095900075736167653A207770617373203C7373EC
-:1095A00069643E203C706173737068726173653EDC
-:1095B0000A0000002573203A204661696C6564202A
-:1095C000746F20616464207061737370687261737A
-:1095D000650A000075736167653A20647061737392
-:1095E000203C737369643E0A000000002573203A32
-:1095F000204661696C656420746F2064656C6574D5
-:109600006520706173737068726173650A00000091
-:1096100075736167653A206970636F6E666967206C
-:109620003C69703E203C6E65746D61736B3E203CFE
-:10963000676174657761792D69703E0A00000000EA
-:1096400020206F72203A206970636F6E6669672010
-:109650006E6F6E652028746F20656E61626C652088
-:1096600044484350290A00005B25735D206E6966FB
-:109670003A2570206C7769705F616464723D307860
-:1096800025780A0075736167653A20636F6E6E65B1
-:109690006374203C737369643E0A0000636D645F09
-:1096A000737461727453727600000000636D645FBE
-:1096B00064656C70617373004D494D4C4644000005
-:1096C0000A24200024200000617661696C61626CCC
-:1096D0006520636F6D6D616E64733A0A000000006F
-:1096E000202025730A000000636F756C64206E6F84
-:1096F0007420616C6C6F63617465206669726D774C
-:10970000617265206275666665720A00547565202F
-:109710004D61722032362032323A30393A353420B7
-:109720003230313300000000776C5F696E69745F1E
-:10973000636F6D706C6574655F6362006661696C10
-:10974000656420746F20696E697420776C20636F84
-:109750006E6E206D67720000572D5B25735D205380
-:109760007069206E6F7420696E697469616C697AC2
-:1097700065640A006C696E6B20646F776E2C2072D2
-:10978000656C6561736520646863700A00000000A1
-:109790006C696E6B20646F776E0A00006C696E6B8B
-:1097A0002075702C20636F6E6E6563746564207421
-:1097B0006F20222573220A007265717565737469C2
-:1097C0006E672064686370202E2E2E20000000003B
-:1097D0004641494C45440A00626F756E6420746FBF
-:1097E0002025730A00000000572D5B25735D20497A
-:1097F0006E74657266616365206E6F74207570218A
-:109800000A0000007363616E00000000636F6E6EFB
-:10981000656374007365746B6579000073746174BB
-:1098200075730000646562756700000064756D7093
-:10983000427566006970636F6E66696700000000BC
-:10984000747463700000000077706173730000002F
-:109850006470617373000000676574486F7374000F
-:10986000736574444E53000073746172745372765E
-:10987000000000007374617274436C6900000000A2
-:1098800073656E645564700041726475696E6F2013
-:109890005769666920537461727475702E2E2E207C
-:1098A0005B25735D0A0000006F7574206F66206D84
-:1098B000656D6F72790000006661696C6564207483
-:1098C0006F207072657061726520666F72206669C4
-:1098D000726D7761726520646F776E6C6F61640A78
-:1098E00000000000436F756C64206E6F7420646527
-:1098F0007465637420776C206465766963652C20D9
-:1099000061626F7274696E670A000000496E766169
-:109910006C6964206669726D776172652064617438
-:10992000612C2061626F7274696E670A000000002A
-:109930004661696C656420746F2073746172742071
-:10994000776C20696E697469616C697A6174696F9A
-:109950006E0A0000312E312E3000000069705F73F6
-:1099600074617475735F63620000000002000000A0
-:1099700000B71B000800000100010000286E756C94
-:109980006C290000253032782D253032782D253095
-:1099900032782D253032782D253032782D25303211
-:1099A00078000000256C752E256C752E256C752EA3
-:1099B000256C75007373696420746F6F206C6F6E13
-:1099C0006720286D6178202564290A00257320000E
-:1099D00022257322000000002052535349202564A1
-:1099E0002064426D200000002041642D486F6320F8
-:1099F00000000000202857455020656E6372797082
-:109A000074696F6E290000002028544B495020656E
-:109A10006E6372797074696F6E2900002028434369
-:109A20004D5020656E6372797074696F6E29000005
-:109A3000202020002530325820000000256300003F
-:109A40006E6F206E65747320666F756E640A000019
-:109A5000496E76616C6964206C656E6774680A0093
-:109A600025642E25642E25642E256400544B495010
-:109A70000000000043434D500000000057455000D7
-:109A8000776C5F636D5F696E6974000073656C6508
-:109A900063745F6E65740000776C5F636F6E6E5FFA
-:109AA0006C6F73745F636200776C5F7363616E5F8A
-:109AB000636F6D706C6574655F636200776C5F6582
-:109AC00076656E745F636200776C5F6D6564696173
-:109AD0005F636F6E6E65637465645F636200000050
-:109AE0005B25735D20434D3A206F7574206F6620AF
-:109AF0006D656D6F72790A005B25735D20434D3A89
-:109B000020636F756C64206E6F7420726567697373
-:109B1000746572206576656E742063620A000000C9
-:109B20005B25735D20434D3A20696E697469616CF1
-:109B3000697A65640A0000005B25735D20434D3A35
-:109B400020636F6E6E656374656420746F20257387
-:109B50000A0000005B25735D20434D3A20636F6E61
-:109B60006E656374206661696C65642C2073636143
-:109B70006E6E696E670A00005B25735D20434D3A87
-:109B800020636F756C64206E6F74207374617274DF
-:109B9000207363616E20616674657220636F6E6E00
-:109BA000656374206661696C210A00005B25735D42
-:109BB00020434D3A20646973636F6E6E656374650C
-:109BC000640A00005B25735D20434D3A20636F6E8D
-:109BD0006E656374696F6E206C6F73742C20736391
-:109BE000616E6E696E670A005B25735D20434D3AB6
-:109BF00020636F756C64206E6F742073746172746F
-:109C0000207363616E20616674657220636F6E6E8F
-:109C1000656374206C6F7374210A00005B25735DAB
-:109C200020434D3A207363616E20636F6D706C65E5
-:109C30007465640A00000000FFFFFFFFFFFF0000E3
-:109C40005B25735D20434D3A20526F616D696E67ED
-:109C50002066726F6D207273736920256420746FA3
-:109C60002025640A000000005B25735D20434D3A07
-:109C7000204E6F2063616E64696461746520666F55
-:109C8000756E6420666F7220737369642022257379
-:109C9000220A00005B25735D20434D3A206661690E
-:109CA0006C656420746F20636F6E6E6563740A0068
-:109CB0005B25735D20434D3A206661696C656420C5
-:109CC000746F207363616E0A000000005B25735D92
-:109CD00020434D3A20756E68616E646C6564206542
-:109CE00076656E740A000000776C5F636F6E6E5F5E
-:109CF0006661696C7572655F636200000000000157
-:109D0000000018500000000B00001854000000096B
-:109D1000000018800000000F000018A400000001DF
-:109D2000000018E000000001000018E4000000013D
-:109D300000001810000000010000181400000001CD
-:109D400000001818000000010000181C00000001AD
-:109D5000000018200000000100001824000000018D
-:109D600000001828000000010000182C000000036B
-:109D700000001830000000010000183C0000000145
-:109D8000000018400000000100001844000000011D
-:109D900000001848000000010000184C4173736572
-:109DA0007274696F6E2022257322206661696C656A
-:109DB00064206174206C696E6520256420696E20C2
-:109DC00025730A002E2E2F7372632F534F4654575C
-:109DD0004152455F4652414D45574F524B2F5345D7
-:109DE0005256494345532F4C5749502F6C77697051
-:109DF0002D312E332E322F7372632F636F72652FC6
-:109E0000646863702E630000646863705F6F7074D1
-:109E1000696F6E3A20646863702D3E6F7074696F6D
-:109E20006E735F6F75745F6C656E202B2032202B14
-:109E3000206F7074696F6E5F6C656E203C3D2044CE
-:109E40004843505F4F5054494F4E535F4C454E006E
-:109E5000646863705F6F7074696F6E5F6279746558
-:109E60003A20646863702D3E6F7074696F6E735F23
-:109E70006F75745F6C656E203C20444843505F4FA3
-:109E80005054494F4E535F4C454E00006468637018
-:109E90005F6F7074696F6E5F747261696C65723A3E
-:109EA000206468637020213D204E554C4C0000001A
-:109EB000646863705F6F7074696F6E5F74726169FC
-:109EC0006C65723A20646863702D3E6D73675F6FD6
-:109ED000757420213D204E554C4C0A006468637017
-:109EE0005F6F7074696F6E5F747261696C65723AEE
-:109EF00020646863702D3E6F7074696F6E735F6F5E
-:109F000075745F6C656E203C20444843505F4F5031
-:109F100054494F4E535F4C454E0A000064686370CD
-:109F20005F6F7074696F6E5F73686F72743A2064EC
-:109F30006863702D3E6F7074696F6E735F6F7574B8
-:109F40005F6C656E202B2032203C3D2044484350FE
-:109F50005F4F5054494F4E535F4C454E0000000038
-:109F6000646863705F6F7074696F6E5F6C6F6E674B
-:109F70003A20646863702D3E6F7074696F6E735F12
-:109F80006F75745F6C656E202B2034203C3D20443F
-:109F90004843505F4F5054494F4E535F4C454E001D
-:109FA0007265706C79207761736E277420667265B4
-:109FB00065640000646863705F6372656174655F07
-:109FC000726571756573743A206E657469662021D7
-:109FD0003D204E554C4C0000646863705F637265B1
-:109FE0006174655F726571756573743A2064686346
-:109FF0007020213D204E554C4C0000006468637079
-:10A000005F6372656174655F726571756573743ADB
-:10A0100020646863702D3E705F6F7574203D3D2035
-:10A020004E554C4C00000000646863705F637265BD
-:10A030006174655F726571756573743A20646863F5
-:10A04000702D3E6D73675F6F7574203D3D204E55DA
-:10A050004C4C0000646863705F6372656174655F97
-:10A06000726571756573743A20636865636B2074FB
-:10A07000686174206669727374207062756620630B
-:10A08000616E20686F6C64207374727563742064F1
-:10A090006863705F6D736700646863705F64656CAC
-:10A0A0006574655F726571756573743A206E657469
-:10A0B000696620213D204E554C4C00006468637059
-:10A0C0005F64656C6574655F726571756573743A1C
-:10A0D000206468637020213D204E554C4C000000E8
-:10A0E000646863705F64656C6574655F72657175E3
-:10A0F0006573743A20646863702D3E705F6F757489
-:10A1000020213D204E554C4C0000000064686370D7
-:10A110005F64656C6574655F726571756573743ACB
-:10A1200020646863702D3E6D73675F6F75742021C6
-:10A130003D204E554C4C00006E6574696620213DF3
-:10A14000204E554C4C0000007062756620705F6FA9
-:10A150007574207761736E2774206672656564007C
-:10A16000646863705F62696E643A206E65746966E4
-:10A1700020213D204E554C4C000000006468637067
-:10A180005F62696E643A206468637020213D204EEE
-:10A19000554C4C00726574203D3D2073697A656FA3
-:10A1A000662873747275637420646863705F6D737E
-:10A1B0006729202D20444843505F4F5054494F4E4B
-:10A1C000535F4C454E000000726574203D3D206495
-:10A1D0006863702D3E6F7074696F6E735F696E5F38
-:10A1E0006C656E002E2E2F7372632F534F4654579B
-:10A1F0004152455F4652414D45574F524B2F5345B3
-:10A200005256494345532F4C5749502F6C7769702C
-:10A210002D312E332E322F7372632F636F72652FA1
-:10A22000646E732E63000000646E73207365727633
-:10A230006572206F7574206F66206172726179009B
-:10A24000646E732073657276657220686173206E28
-:10A250006F20495020616464726573732073657464
-:10A260000000000070627566206D75737420626571
-:10A2700020696E206F6E652070696563650000005F
-:10A28000617272617920696E646578206F757420DF
-:10A290006F6620626F756E6473000000756E6B6E82
-:10A2A0006F776E20646E735F7461626C6520656E9B
-:10A2B0007472792073746174653A00006C6F636125
-:10A2C0006C686F73740000003230382E36372E32CF
-:10A2D00032322E3232320000000400040004000248
-:10A2E000002000050002001E002000002E2E2F730B
-:10A2F00072632F534F4654574152455F4652414D6A
-:10A3000045574F524B2F53455256494345532F4CB7
-:10A310005749502F6C7769702D312E332E322F73A1
-:10A3200072632F636F72652F6D656D702E63000011
-:10A330006D656D705F667265653A206D656D207044
-:10A34000726F7065726C7920616C69676E6564000C
-:10A350006D656D705F6D616C6C6F633A20747970C0
-:10A3600065203C204D454D505F4D41580000000098
-:10A370006D656D705F6D616C6C6F633A206D656DBE
-:10A38000702070726F7065726C7920616C69676E95
-:10A3900065640000001C002000B0002400140020B0
-:10A3A00000080010025400002E2E2F7372632F53EA
-:10A3B0004F4654574152455F4652414D45574F52C3
-:10A3C0004B2F53455256494345532F4C5749502F15
-:10A3D0006C7769702D312E332E322F7372632F6399
-:10A3E0006F72652F6E657469662E6300626F6775A4
-:10A3F0007320706275663A206C656E20213D207472
-:10A400006F745F6C656E20627574206E6578742061
-:10A410003D3D204E554C4C210000000073686F7587
-:10A420006C64206E6F74206265206E756C6C207396
-:10A43000696E636520666972737420213D206C61CA
-:10A4400073742100696620666972737420213D204F
-:10A450004E554C4C2C206C617374206D75737420B8
-:10A46000616C736F20626520213D204E554C4C007D
-:10A470002E2E2F7372632F534F4654574152455F10
-:10A480004652414D45574F524B2F53455256494323
-:10A4900045532F4C5749502F6C7769702D312E330F
-:10A4A0002E322F7372632F636F72652F7062756621
-:10A4B0002E630000286820213D204E554C4C292059
-:10A4C000262620287420213D204E554C4C2920283A
-:10A4D00070726F6772616D6D65722076696F6C6105
-:10A4E000746573204150492900000000702D3E74AE
-:10A4F0006F745F6C656E203D3D20702D3E6C656E07
-:10A5000020286F66206C6173742070627566206904
-:10A510006E20636861696E2900000000696E6372D5
-:10A52000656D656E745F6D61676E697475646520D5
-:10A530003C3D20702D3E6C656E0000006261642021
-:10A5400070627566207479706500000070627566CF
-:10A550005F74616B653A20696E76616C6964206234
-:10A5600075660000706275665F74616B653A20699C
-:10A570006E76616C6964206461746170747200004D
-:10A58000706275665F74616B653A20696E76616CA6
-:10A590006964207062756600646964206E6F74205F
-:10A5A000636F707920616C6C2064617461000000DD
-:10A5B000706275665F636F70795F706172746961F4
-:10A5C0006C3A20696E76616C696420627566000081
-:10A5D000706275665F636F70795F706172746961D4
-:10A5E0006C3A20696E76616C696420646174617094
-:10A5F00074720000706275665F636F70793A2074E0
-:10A600006172676574206E6F742062696720656E81
-:10A610006F75676820746F20686F6C6420736F7546
-:10A6200072636500705F746F20213D204E554C4C65
-:10A63000000000006F66667365745F746F203C3DB8
-:10A6400020705F746F2D3E6C656E00006F666673E0
-:10A6500065745F66726F6D203C3D20705F66726F3F
-:10A660006D2D3E6C656E0000706275665F636F7085
-:10A6700079282920646F6573206E6F7420616C6C7B
-:10A680006F77207061636B65742071756575657394
-:10A69000210A0000706275665F667265653A207314
-:10A6A000616E6520747970650000000070627566E7
-:10A6B0005F667265653A20702D3E726566203E20A9
-:10A6C00030000000702D3E746F745F6C656E203D2D
-:10A6D0003D20702D3E6C656E202B20712D3E746FD9
-:10A6E000745F6C656E000000702D3E746F745F6C5B
-:10A6F000656E203D3D20702D3E6C656E00000000B3
-:10A70000706275665F7265616C6C6F633A20702071
-:10A71000213D204E554C4C00706275665F7265613C
-:10A720006C6C6F633A2073616E6520702D3E747996
-:10A730007065000067726F77203C206D61785F75EF
-:10A7400031365F7400000000706275665F7265618B
-:10A750006C6C6F633A207120213D204E554C4C00AB
-:10A76000706275665F616C6C6F633A206261642031
-:10A7700070627566206C617965720000636865635C
-:10A780006B20702D3E7061796C6F6164202B20709E
-:10A790002D3E6C656E20646F6573206E6F74206F44
-:10A7A000766572666C6F77207062756600000000D7
-:10A7B000504255465F504F4F4C5F42554653495AA1
-:10A7C00045206D75737420626520626967676572E4
-:10A7D000207468616E204D454D5F414C49474E4D98
-:10A7E000454E540072656D5F6C656E203C206D6156
-:10A7F000785F7531365F7400706275665F616C6C8E
-:10A800006F633A207062756620712D3E7061796CBD
-:10A810006F61642070726F7065726C7920616C6911
-:10A82000676E656400000000706275665F616C6C45
-:10A830006F633A206572726F6E656F7573207479FD
-:10A8400070650000706275665F636F707920666185
-:10A85000696C656400000000010203040506070737
-:10A8600007070707070000002E2E2F7372632F5370
-:10A870004F4654574152455F4652414D45574F52FE
-:10A880004B2F53455256494345532F4C5749502F50
-:10A890006C7769702D312E332E322F7372632F63D4
-:10A8A0006F72652F7463702E630000007463705FB5
-:10A8B000706362735F73616E653A20616374697679
-:10A8C00065207063622D3E737461746520213D20A4
-:10A8D000434C4F53454400007463705F7063627370
-:10A8E0005F73616E653A2061637469766520706399
-:10A8F000622D3E737461746520213D204C49535490
-:10A90000454E00007463705F706362735F73616EC5
-:10A91000653A20616374697665207063622D3E73C9
-:10A920007461746520213D2054494D452D5741499E
-:10A93000540000007463705F706362735F73616ED4
-:10A94000653A207477207063622D3E73746174657C
-:10A95000203D3D2054494D452D57414954000000AC
-:10A960007463705F62696E643A2063616E206F6E1B
-:10A970006C792062696E6420696E207374617465FD
-:10A9800020434C4F534544007463705F7265637697
-:10A9900065643A206C656E20776F756C6420777201
-:10A9A0006170207263765F776E640A00756E7365FE
-:10A9B0006E74207365676D656E7473206C65616B72
-:10A9C000696E6700756E61636B6564207365676DA2
-:10A9D000656E7473206C65616B696E6700000000C2
-:10A9E0006F6F736571207365676D656E7473206C2E
-:10A9F00065616B696E6700007463705F7063625FAE
-:10AA000072656D6F76653A207463705F7063627310
-:10AA10005F73616E652829007463705F6C6973747D
-:10AA2000656E3A2070636220616C726561647920A2
-:10AA3000636F6E6E65637465640000007463705FBD
-:10AA4000736C6F77746D723A2061637469766520F8
-:10AA50007063622D3E737461746520213D20434C08
-:10AA60004F5345440A0000007463705F736C6F7746
-:10AA7000746D723A20616374697665207063622D2B
-:10AA80003E737461746520213D204C495354454EFA
-:10AA90000A0000007463705F736C6F77746D723AB4
-:10AAA00020616374697665207063622D3E73746102
-:10AAB000746520213D2054494D452D574149540A84
-:10AAC000000000007463705F736C6F77746D723A8E
-:10AAD000206D6964646C652074637020213D20746E
-:10AAE00063705F6163746976655F706362730000B1
-:10AAF0007463705F736C6F77746D723A20666972FD
-:10AB0000737420706362203D3D207463705F6163E5
-:10AB1000746976655F706362730000007463705FD0
-:10AB2000736C6F77746D723A2054494D452D5741BF
-:10AB30004954207063622D3E7374617465203D3DFD
-:10AB40002054494D452D5741495400007463705FAE
-:10AB5000736C6F77746D723A206D6964646C6520F4
-:10AB600074637020213D207463705F74775F70633D
-:10AB7000627300007463705F736C6F77746D723A08
-:10AB800020666972737420706362203D3D20746397
-:10AB9000705F74775F706362730000007463705F4E
-:10ABA000636F6E6E6563743A2063616E206F6E6CC6
-:10ABB0007920636F6E6E65637465642066726F6D75
-:10ABC00020737461746520434C4F5345440000006A
-:10ABD00053594E5F53454E540000000053594E5F89
-:10ABE000524356440000000045535441424C4953DF
-:10ABF0004845440046494E5F574149545F31000083
-:10AC000046494E5F574149545F320000434C4F5311
-:10AC1000455F574149540000434C4F53494E47004C
-:10AC20004C4153545F41434B0000000054494D4593
-:10AC30005F5741495400000003060C18306078004B
-:10AC40008000FAFC8000FC6C8000FD4E8000FDB4AA
-:10AC50008000FE368000FD4E8000FE788000FEF809
-:10AC60002E2E2F7372632F534F4654574152455F18
-:10AC70004652414D45574F524B2F5345525649432B
-:10AC800045532F4C5749502F6C7769702D312E3317
-:10AC90002E322F7372632F636F72652F7463705F30
-:10ACA000696E2E63000000007063622D3E736E6457
-:10ACB0005F71756575656C656E203E3D20706275CF
-:10ACC000665F636C656E286E6578742D3E70290032
-:10ACD0007463705F726563656976653A2076616C4E
-:10ACE0006964207175657565206C656E67746800B0
-:10ACF000696E7365672E7020213D204E554C4C00C7
-:10AD0000696E73616E65206F6666736574210000FD
-:10AD10007062756620746F6F2073686F72742100A3
-:10AD2000706275665F686561646572206661696CF2
-:10AD3000656400007463705F726563656976653A87
-:10AD4000207365676D656E74206E6F742074726910
-:10AD50006D6D656420636F72726563746C792074C5
-:10AD60006F207263765F776E640A00007463705FB1
-:10AD7000726563656976653A207365676D656E74A3
-:10AD8000206E6F74207472696D6D656420636F72DC
-:10AD9000726563746C7920746F206F6F73657120B6
-:10ADA00071756575650A00007463705F726563652F
-:10ADB0006976653A207463706C656E203E2072631C
-:10ADC000765F776E640A00007463705F7265636516
-:10ADD0006976653A206F6F736571207463706C6576
-:10ADE0006E203E207263765F776E640A000000007A
-:10ADF0007463705F696E7075743A2061637469760C
-:10AE000065207063622D3E737461746520213D205E
-:10AE1000434C4F53454400007463705F696E707516
-:10AE2000743A20616374697665207063622D3E73A5
-:10AE30007461746520213D2054494D452D57414989
-:10AE4000540000007463705F696E7075743A20611D
-:10AE50006374697665207063622D3E7374617465F6
-:10AE600020213D204C495354454E00007463705FCF
-:10AE7000696E7075743A207063622D3E6E657874E9
-:10AE800020213D2070636220286265666F72652014
-:10AE900063616368652900007463705F696E707533
-:10AEA000743A207063622D3E6E65787420213D20D7
-:10AEB00070636220286166746572206361636865EF
-:10AEC000290000007463705F696E7075743A2054D5
-:10AED000494D452D57414954207063622D3E73748E
-:10AEE000617465203D3D2054494D452D57414954DD
-:10AEF000000000007463705F696E7075743A2070B2
-:10AF000063622D3E737461746520213D20434C4F74
-:10AF1000534544007063622D3E736E645F717565C6
-:10AF200075656C656E203E20300000007063622DF8
-:10AF30003E61636365707420213D204E554C4C008A
-:10AF40007463705F696E7075743A207463705F70BB
-:10AF50006362735F73616E65282900002E2E2F7364
-:10AF600072632F534F4654574152455F4652414DED
-:10AF700045574F524B2F53455256494345532F4C3B
-:10AF80005749502F6C7769702D312E332E322F7325
-:10AF900072632F636F72652F7463705F6F75742EA9
-:10AFA00063000000636865636B20746861742066E9
-:10AFB0006972737420706275662063616E20686FB9
-:10AFC0006C6420737472756374207463705F68645A
-:10AFD000720000007463705F656E71756575653A27
-:10AFE000207061636B6574206E65656473207061A9
-:10AFF000796C6F61642C206F7074696F6E732C2094
-:10B000006F722053594E2F46494E202870726F6739
-:10B0100072616D6D65722076696F6C617465732005
-:10B0200041504929000000007463705F656E7175BE
-:10B030006575653A206C656E20213D2030207C7C52
-:10B0400020617267203D3D204E554C4C2028707287
-:10B050006F6772616D6D65722076696F6C61746582
-:10B0600073204150492900007463705F656E7175EB
-:10B070006575653A207062756673206F6E20717514
-:10B08000657565203D3E206174206C656173742098
-:10B090006F6E65207175657565206E6F6E2D656DBF
-:10B0A000707479007463705F656E71756575653A6B
-:10B0B000206E6F207062756673206F6E20717565EB
-:10B0C0007565203D3E20626F7468207175657565F9
-:10B0D0007320656D707479007573656720213D205C
-:10B0E0004E554C4C00000000636865636B2074682B
-:10B0F0006174206669727374207062756620636182
-:10B100006E20686F6C642074686520636F6D706C6E
-:10B11000657465207365676C656E000070627566A6
-:10B120005F686561646572206661696C65640A00C8
-:10B1300046494E20656E71756575656420746F674C
-:10B140006574686572207769746820646174610051
-:10B150007A65726F2D6C656E6774682070627566B3
-:10B16000000000007463705F656E71756575653A07
-:10B170002076616C6964207175657565206C656EFB
-:10B1800067746800525354206E6F74206578706540
-:10B190006374656420686572652100002E2E2F732C
-:10B1A00072632F534F4654574152455F4652414DAB
-:10B1B00045574F524B2F53455256494345532F4CF9
-:10B1C0005749502F6C7769702D312E332E322F73E3
-:10B1D00072632F636F72652F7564702E63000000B9
-:10B1E000726562696E64203D3D203000636865636E
-:10B1F0006B20746861742066697273742070627564
-:10B20000662063616E20686F6C642073747275636E
-:10B2100074207564705F686472000000702D3E7069
-:10B2200061796C6F6164203D3D20697068647200D3
-:10B230002E2E2F7372632F534F4654574152455F42
-:10B240004652414D45574F524B2F53455256494355
-:10B2500045532F4C5749502F6C7769702D312E3341
-:10B260002E322F7372632F636F72652F697076347D
-:10B270002F69636D702E6300636865636B2074686B
-:10B2800061742066697273742070627566206361F0
-:10B290006E20686F6C642069636D70206D657373D8
-:10B2A0006167650069636D705F696E7075743A20DF
-:10B2B0006D6F76696E6720702D3E7061796C6F617D
-:10B2C0006420746F2069702068656164657220660F
-:10B2D00061696C65640A0000636865636B2074686B
-:10B2E0006174206669727374207062756620636190
-:10B2F0006E20686F6C642073747275637420746858
-:10B30000652049434D502068656164657200000006
-:10B3100069636D705F696E7075743A20636F7079E0
-:10B32000696E6720746F206E657720706275662085
-:10B330006661696C65640A0069636D705F696E704F
-:10B3400075743A20726573746F72696E67206F72DC
-:10B350006967696E616C20702D3E7061796C6F61F8
-:10B3600064206661696C65640A00000043616E27B1
-:10B3700074206D6F7665206F7665722068656164F4
-:10B38000657220696E207061636B65740000000057
-:10B390002E2E2F7372632F534F4654574152455FE1
-:10B3A0004652414D45574F524B2F534552564943F4
-:10B3B00045532F4C5749502F6C7769702D312E33E0
-:10B3C0002E322F7372632F636F72652F697076341C
-:10B3D0002F69702E63000000636865636B207468DA
-:10B3E000617420666972737420706275662063618F
-:10B3F0006E20686F6C64207374727563742069705A
-:10B400005F68647200FFFFFFFF00000000000000A3
-:10B410002E2E2F7372632F534F4654574152455F60
-:10B420004652414D45574F524B2F53455256494373
-:10B4300045532F4C5749502F6C7769702D312E335F
-:10B440002E322F7372632F636F72652F697076349B
-:10B450002F69705F667261672E630000746869739C
-:10B46000206E656564732061207062756620696E68
-:10B47000206F6E65207069656365210073616E6978
-:10B48000747920636865636B206C696E6B656420FA
-:10B490006C697374000000007072657620213D2095
-:10B4A00069707200707265762D3E6E657874203D0D
-:10B4B0003D2069707200000069705F72656173738E
-:10B4C0005F70627566636F756E74203E3D20636CBD
-:10B4D000656E0000636865636B20667261676D6509
-:10B4E0006E747320646F6E2774206F7665726C6162
-:10B4F000700000006E6F2070726576696F75732042
-:10B50000667261676D656E742C2074686973206D56
-:10B51000757374206265207468652066697273743F
-:10B5200020667261676D656E7421000073616E69DB
-:10B53000747920636865636B0000000076616C6954
-:10B54000646174655F646174616772616D3A6E65B0
-:10B5500078745F70627566213D4E554C4C0000005A
-:10B5600076616C69646174655F646174616772615E
-:10B570006D3A646174616772616D20656E64213D2E
-:10B58000646174616772616D206C656E00FFFFFF1E
-:10B59000FFFFFF002E2E2F7372632F534F46545719
-:10B5A0004152455F4652414D45574F524B2F5345EF
-:10B5B0005256494345532F4C5749502F6C77697069
-:10B5C0002D312E332E322F7372632F6E65746966A0
-:10B5D0002F6574686172702E630000006E65746977
-:10B5E000662D3E6877616464725F6C656E206D7570
-:10B5F0007374206265207468652073616D652061D5
-:10B6000073204554484152505F4857414444525F6B
-:10B610004C454E20666F722065746861727021001F
-:10B620007120213D204E554C4C000000712D3E7084
-:10B6300020213D204E554C4C00000000722D3E70E4
-:10B6400020213D204E554C4C000000006172705F7F
-:10B650007461626C655B695D2E71203D3D204E55C5
-:10B660004C4C000069203C204152505F5441424CF8
-:10B67000455F53495A4500006E657469662D3E6802
-:10B6800077616464725F6C656E203D3D204554486F
-:10B690004152505F4857414444525F4C454E000070
-:10B6A000636865636B207468617420666972737483
-:10B6B00020706275662063616E20686F6C64207311
-:10B6C0007472756374206574686172705F68647207
-:10B6D000000000006172705F7461626C655B695D9F
-:10B6E0002E7374617465203D3D2050454E44494E93
-:10B6F00047206F7220535441424C45006E6F2070BA
-:10B7000061636B65742071756575657320616C6C20
-:10B710006F77656421000000000000002E2E2F735B
-:10B7200072632F534F4654574152455F4652414D25
-:10B7300045574F524B2F53455256494345532F4C73
-:10B740005749502F6C7769702D706F72742D312EA0
-:10B75000332E322F48442F69662F6E657469662F29
-:10B76000776C69662E6300000A09000052580000D9
-:10B7700054580000FFFFFF740000000001FFFFFFAE
-:10B780000000FFFFFFFFFF400000000001FFFFFF80
-:10B7900041505000484D4700312E352E312E370094
-:10B7A000312E352E312E3100312E352E312E3400F2
-:10B7B00080017C7C80017C7480017C7C80017C6ABF
-:10B7C00080017DCA80017D7880017D2A80017CD83E
-:10B7D00080017C86800185D2800185CA800185CA6E
-:10B7E000800185D2800185C2800185C2800185BA31
-:10B7F000800185BA02040B0C121618242C30424822
-:10B80000606C0000322E312E312E310078C40E00D3
-:10B81000352E332E31000000352E332E350000003A
-:10B82000352E332E340000008001BF808001BF928E
-:10B830008001BFA88001BF5A8001BF668001BFD4CC
-:10B840008001BF5A8001BFE08001BF5A8001BF5A0A
-:10B850008001BF5A8001BF5A8001BF5A8001BF5A80
-:10B860008001BF5A8001BF5A8001BF5A8001BF5A70
-:10B870008001BF5A8001BF5A8001BF5A8001BF5A60
-:10B880008001BF5A8001BF5A8001BF5A8001BF5A50
-:10B890008001BF5A8001BF5A8001BF5A8001BF5A40
-:10B8A0008001BF5A8001BF5A8001BF5A8001BF5A30
-:10B8B0008001BF5A8001BF5A8001BF5A8001BF5A20
-:10B8C0008001BF5A8001BF5A8001BF5A8001BF5A10
-:10B8D0008001BF5A8001BF5A8001BF5A8001BF5A00
-:10B8E0008001BF5A8001BF5A8001BF5A8001BF5AF0
-:10B8F0008001BF5A8001BF5A8001BF5A8001BF5AE0
-:10B900008001BF5A8001BF5A8001BF5A8001BF5ACF
-:10B910008001BF5A8001BF5A8001BF5A8001BF5ABF
-:10B920008001BF5A8001BF7C8001C0448001BF5AA2
-:10B930008001C0448001BF5A8001C17C8001BF5A90
-:10B940008001C1708001BF5A8001C1648001BF5A6B
-:10B950008001BF5A8001BF5A8001BF5A8001C1AC2B
-:10B960008001BF5A8001BF5A8001C1A08001BF5A27
-:10B970008001C1948001BF5A8001BF5A8001BF5A23
-:10B980008001BF5A8001BF5A8001BF5A8001BF5A4F
-:10B990008001BF5A8001BF5A8001BF5A8001BF5A3F
-:10B9A0008001BF5A8001BF5A8001BF5A8001BF5A2F
-:10B9B0008001BF5A8001BF5A8001BF5A8001BF5A1F
-:10B9C0008001BF5A8001BF5A8001BF5A8001BF5A0F
-:10B9D0008001BF5A8001BF5A8001BF5A8001BF5AFF
-:10B9E0008001BF5A8001BF5A8001BF5A8001BF5AEF
-:10B9F0008001BF5A8001BF5A8001BF5A8001BF5ADF
-:10BA00008001BF5A8001BF5A8001BF5A8001BF5ACE
-:10BA10008001BF5A8001BF5A8001BF5A8001BF5ABE
-:10BA20008001BF5A8001BF5A8001BF5A8001BF5AAE
-:10BA30008001BF5A8001BF5A8001BF5A8001BF5A9E
-:10BA40008001BF5A8001BF5A8001BF5A8001BF5A8E
-:10BA50008001BF5A8001BF5A8001BF5A8001BF5A7E
-:10BA60008001BF5A8001BF5A8001BF5A8001BF5A6E
-:10BA70008001BF5A8001BF5A8001BF5A8001BF5A5E
-:10BA80008001BF5A8001BF5A8001BF5A8001BF5A4E
-:10BA90008001BF5A8001BF5A8001BF5A8001BF5A3E
-:10BAA0008001BF5A8001BF5A8001BF5A8001BF5A2E
-:10BAB0008001BF5A8001BF5A8001BF5A8001BF5A1E
-:10BAC0008001BF5A8001BF5A8001BF5A8001BF5A0E
-:10BAD0008001BF5A8001BF5A8001BF5A8001BF5AFE
-:10BAE0008001BF5A8001BF5A8001BF5A8001BF5AEE
-:10BAF0008001BF5A8001BF5A8001BF5A8001BF5ADE
-:10BB00008001BF5A8001BF5A8001BF5A8001BF5ACD
-:10BB10008001BF5A8001C02C8001C1588001C02C17
-:10BB20008001C02C8001C1888001BF5A8001C044BF
-:10BB30008001BF5A8001C0508001BF5A8001C050AF
-:10BB40008001BF5A8001C02C8001BF5A8001C02CE7
-:10BB50008001C0388001C0388001C0388001BF5AE0
-:10BB60008001C02C8001C02C8001C14C8001BF5AD3
-:10BB70008001BF5A8001C1408001BF5A8001BF5A75
-:10BB80008001BF5A8001BF5A8001BF5A8001BF5A4D
-:10BB90008001BF5A8001BF5A8001BF5A8001BF5A3D
-:10BBA0008001C1348001BF5A8001BF5A8001BF5A51
-:10BBB0008001BF5A8001BF5A8001BF5A8001BF5A1D
-:10BBC0008001C1288001BF5A8001BF5A8001BF5A3D
-:10BBD0008001BF5A8001BF5A8001BF5A8001BF5AFD
-:10BBE0008001BF5A8001BF5A8001BF5A8001BF5AED
-:10BBF0008001BF5A8001BF5A8001BF5A8001BF5ADD
-:10BC00008001BF5A8001BF5A8001BF5A8001BF5ACC
-:10BC10008001BF5A8001BF5A8001BF5A8001BF5ABC
-:10BC20008001BF5A8001BF5A8001BF5A8001BF5AAC
-:10BC30008001BF5A8001BF5A8001BF5A8001BF5A9C
-:10BC40008001BF5A8001BF5A8001BF5A8001BF5A8C
-:10BC50008001BF5A8001BF5A8001BF5A8001BF5A7C
-:10BC60008001BF5A8001BF5A8001BF5A8001BF5A6C
-:10BC70008001BF5A8001BF5A8001BF5A8001BF5A5C
-:10BC80008001BF5A8001BF5A8001BF5A8001BF5A4C
-:10BC90008001BF5A8001BF5A8001BF5A8001BF5A3C
-:10BCA0008001BF5A8001BF5A8001BF5A8001BF5A2C
-:10BCB0008001BF5A8001BF5A8001BF5A8001BF5A1C
-:10BCC0008001BF5A8001BF5A8001BF5A8001BF5A0C
-:10BCD0008001BF5A8001BF5A8001BF5A8001BF5AFC
-:10BCE0008001BF5A8001BF5A8001BF5A8001BF5AEC
-:10BCF0008001BF5A8001BF5A8001BF5A8001BF5ADC
-:10BD00008001BF5A8001BF5A8001BF5A8001BF5ACB
-:10BD10008001BF5A8001BF5A8001BF5A8001BF5ABB
-:10BD20008001BF5A8001BF5A8001BF5A8001BF5AAB
-:10BD30008001BF5A8001BF5A8001BF5A8001BF5A9B
-:10BD40008001BF5A8001BF5A8001BF5A8001BF5A8B
-:10BD50008001BF5A8001BF5A8001BF5A8001BF5A7B
-:10BD60008001BF5A8001BF5A8001BF5A8001C11CA7
-:10BD70008001C1108001BF5A8001C1048001BF5AF7
-:10BD80008001BF5A8001BF5A8001C0F88001C0EC19
-:10BD90008001BF5A8001BF5A8001C0E08001BF5AB4
-:10BDA0008001BF5A8001C0D48001C0C88001C0BCDE
-:10BDB0008001C0B08001C0A48001C0988001C08C07
-:10BDC0008001BF5A8001C0808001C0748001BF5AC9
-:10BDD0008001C0688001C05C8001C48E8001C47C89
-:10BDE0008001C46A8001C4588001C4468001C43403
-:10BDF0008001C3928001C3928001C4228001C410DB
-:10BE00008001C3FE8001C3EC8001C3DA8001C3C896
-:10BE10008001C3B68001C3A48001C3A48001C4A073
-:10BE20008001C2D48001C2D48001C2D48001C5C0C7
-:10BE30008001C5AE8001C59C8001C2D48001C2D4FE
-:10BE40008001C58A8001C2D48001C2D48001C57836
-:10BE50008001C5668001C5548001C5428001C5309E
-:10BE60008001C51E8001C50C8001C4FA8001C4E8B0
-:10BE70008001C2D48001C4D68001C4C48001C2D470
-:10BE80008001C2D48001C2D48001C2D48001C2D456
-:10BE90008001C2D48001C2D48001C2D48001C2D446
-:10BEA0008001C2D48001C2D48001C2D48001C2D436
-:10BEB0008001C2D48001C2D48001C2D48001C2D426
-:10BEC0008001C2D48001C2D48001C2D48001C2D416
-:10BED0008001C2D48001C2D48001C2D48001C2D406
-:10BEE0008001C2D48001C2D48001C2D48001C2D4F6
-:10BEF0008001C2D48001C2D48001C2D48001C2D4E6
-:10BF00008001C2D48001C2D48001C2D48001C2D4D5
-:10BF10008001C2D48001C2D48001C2D48001C2D4C5
-:10BF20008001C2D48001C2D48001C2D48001C2D4B5
-:10BF30008001C2D48001C2D48001C2D48001C2D4A5
-:10BF40008001C2D48001C2D48001C2D48001C2D495
-:10BF50008001C2D48001C2D48001C2D48001C2D485
-:10BF60008001C2D48001C2D48001C2D48001C2D475
-:10BF70008001C2D48001C2D48001C2D48001C2D465
-:10BF80008001C2D48001C2D48001C2D48001C2D455
-:10BF90008001C2D48001C2D48001C2D48001C2D445
-:10BFA0008001C2D48001C2D48001C2D48001C2D435
-:10BFB0008001C2D48001C2D48001C2D48001C2D425
-:10BFC0008001C2D48001C2D48001C2D48001C2D415
-:10BFD0008001C2D48001C2D48001C2D48001C2D405
-:10BFE0008001C2D48001C2D48001C2D48001C2D4F5
-:10BFF0008001C2D48001C2D48001C2D48001C2D4E5
-:10C000008001C2D48001C2D48001C2D48001C2D4D4
-:10C010008001C4B28001EFCA8001EFCE8001EF7AC7
-:10C020008001EF7A8001EF828001EF8A8001EF9238
-:10C030008001EF9A8001EFA28001EFAA8001EFB2A8
-:10C040008001EFBA8001EFC28001EFD68001F96074
-:10C050008001F93E8001F9CC8001F8A68001F9BE8B
-:10C060008001F91C8001F8A68001F8E28001F8A6A1
-:10C070008001F8A68001F8A68001F8A68001F8A644
-:10C080008001F8A68001F8A68001F8A68001F8A634
-:10C090008001F8A68001F8A68001F8A68001F8A624
-:10C0A0008001F8A68001F8A68001F8A68001F8A614
-:10C0B0008001F8A68001F8A68001F8A68001F8A604
-:10C0C0008001F8A68001F8A68001F8A68001F8A6F4
-:10C0D0008001F8A68001F8A68001F8A68001F8A6E4
-:10C0E0008001F8A68001F8A68001F8A68001F8A6D4
-:10C0F0008001F8A68001F8A68001F8A68001F8A6C4
-:10C100008001F8A68001F8A68001F8A68001F8A6B3
-:10C110008001F8A68001F8A68001F8A68001F8A6A3
-:10C120008001F8A68001F8A68001F8A68001F8A693
-:10C130008001F8A68001F8A68001F8A68001F8A683
-:10C140008001F8A68001F8A68001F8C08001FA58A5
-:10C150008001F8F08001F8F08001F90E8001F8F01C
-:10C160008001F8F08001F8F08001F8F08001F8F02B
-:10C170008001F8F08001F8F08001F8F08001F8F01B
-:10C180008001F8F08001F90E8001F8F08001F8F0EC
-:10C190008001F8F08001F8F08001F8F08001F8F0FB
-:10C1A0008001F8F08001FA488001F8F08001F8F091
-:10C1B0008001F8F08001F8F08001F8F08001F8F0DB
-:10C1C0008001F8F08001F8F08001F8F08001F8F0CB
-:10C1D0008001F8F08001F8F08001F8F08001F8F0BB
-:10C1E0008001F8F08001F8F08001F8F08001F8F0AB
-:10C1F0008001F8F08001F8F08001F8F08001F8F09B
-:10C200008001F8F08001F8F08001F8F08001F8F08A
-:10C210008001F8F08001F8F08001F8F08001F8F07A
-:10C220008001F8F08001F8F08001F8F08001F8F06A
-:10C230008001F8F08001F8F08001F8F08001F8F05A
-:10C240008001F8F08001F8F08001F8F08001F8F04A
-:10C250008001F8F08001F8F08001F8F08001F8F03A
-:10C260008001F8F08001F8F08001F8F08001F8F02A
-:10C270008001F8F08001F8F08001F8F08001F8F01A
-:10C280008001F8F08001F8F08001F8F08001F8F00A
-:10C290008001F8F08001F8F08001F8F08001F8F0FA
-:10C2A0008001F8F08001F8F08001F8F08001F8F0EA
-:10C2B0008001F8F08001F8F08001F8F08001F8F0DA
-:10C2C0008001F8F08001F8F08001F8F08001F8F0CA
-:10C2D0008001F8F08001F8F08001F8F08001F8F0BA
-:10C2E0008001F8F08001F8F08001F8F08001F8F0AA
-:10C2F0008001F8F08001F8F08001F8F08001F8F09A
-:10C300008001F8F08001F8F08001F8F08001F8F089
-:10C310008001F8F08001F8F08001F8F08001F8F079
-:10C320008001F8F08001F8F08001F8F08001F8F069
-:10C330008001F8F08001F8F08001F8F08001F8F059
-:10C340008001F8F08001F8F08001F8F08001F8F049
-:10C350008001F90E8001FA348001F8F08001F90EB5
-:10C360008001F8F08001F8F08001F8F08001F8F029
-:10C370008001F8F08001F8F08001F8F08001F90EFA
-:10C380008001F8F08001F8F08001FA2C8001FA2495
-:10C390008001FA1C8001FA148001FA0C8001FA0471
-:10C3A0008001FA408001F8F08001FA5057455F495A
-:10C3B0004E445F38303231315F434F4E4E45435427
-:10C3C0004544000057455F494E445F3830323131B3
-:10C3D0005F444953434F4E4E454354494E47000036
-:10C3E00057455F494E445F38303231315F494253DF
-:10C3F000535F444953434F4E4E4543544544000018
-:10C40000332E312E322E312E34000000352E3233B1
-:10C4100000000000352E32322E320000352E32322E
-:10C420002E310000352E322E39000000352E3138E5
-:10C430002E310000352E31382E320000352E3232AA
-:10C440002E340000352E32342E320000352E323498
-:10C450002E310000352E31312E310000352E322E96
-:10C4600032000000352E31362E320000352E3136A6
-:10C470002E310000312E312E312E323200000000DC
-:10C48000352E322E31392E3500000000352E322E59
-:10C4900031392E3400000000352E322E31392E3342
-:10C4A00000000000352E322E31392E3200000000FF
-:10C4B000352E322E31392E3100000000352E322E2D
-:10C4C00031000000352E31312E320000352E313151
-:10C4D0002E330000352E31312E340000352E31310F
-:10C4E0002E350000352E31312E360000352E3131FB
-:10C4F0002E380000352E31312E37000073736964F9
-:10C500000000000070736B004A756E6B41500000B4
-:10C5100057534300656170005746412D53696D7054
-:10C520006C65436F6E6669672D456E726F6C6C65E6
-:10C53000652D312D300000006964656E7469747971
-:10C54000000000006E7277696669000064656661CC
-:10C55000756C740057455F494E445F383032313155
-:10C560005F444953434F4E4E4543544544000000F9
-:10C5700057455F494E445F50414952574953455FC3
-:10C580004D49435F4552524F5200000057455F49A5
-:10C590004E445F47524F55505F4D49435F4552529D
-:10C5A0004F52000057455F494E445F43414E444956
-:10C5B000444154455F4C495354000000494E4143A7
-:10C5C0005449564500000000444953434F4E4E45E0
-:10C5D00043544544000000005343414E4E494E47EA
-:10C5E000000000004153534F43494154494E470016
-:10C5F0004153534F43494154454400003457415936
-:10C600005F48414E445348414B45000047524F5507
-:10C61000505F48414E445348414B4500434F4D50B5
-:10C620004C45544544000000554E4B4E4F574E006C
-:10C630004354524C2D4556454E542D5445524D4968
-:10C640004E4154494E47202D207369676E616C201E
-:10C650002564207265636569766564007769726533
-:10C660006400000043616E63656C6C696E672061F5
-:10C67000757468656E7469636174696F6E2074693E
-:10C680006D656F75740000005750413A2045415068
-:10C690004F4C2070726F63657373696E6720636FB0
-:10C6A0006D706C657465000043616E63656C6C69E8
-:10C6B0006E67207363616E207265717565737400B7
-:10C6C00052534E3A207573696E672049454545209F
-:10C6D0003830322E3131692F44392E3000000000BD
-:10C6E0005750413A207573696E672049454545208A
-:10C6F0003830322E3131692F44332E3000000000A3
-:10C700005750413A204661696C656420746F20700F
-:10C7100061727365205750412049452066726F6DE4
-:10C72000206173736F63696174696F6E20696E66EF
-:10C730006F0000005750413A2044726976657220BC
-:10C74000757365642064697361626C6564206772E7
-:10C750006F75702063697068657220307825782065
-:10C76000286D61736B203078257829202D20726523
-:10C770006A656374000000005750413A20447269B2
-:10C7800076657220757365642064697361626C6597
-:10C790006420706169727769736520636970686588
-:10C7A00072203078257820286D61736B20307825D1
-:10C7B0007829202D2072656A656374005750413ACC
-:10C7C00020447269766572207573656420646973AC
-:10C7D00061626C6564206B6579206D616E6167656F
-:10C7E0006D656E74203078257820286D61736B201C
-:10C7F0003078257829202D2072656A6563740000E1
-:10C800005750413A207573696E672047544B204357
-:10C81000434D50005750413A207573696E67204769
-:10C82000544B20544B4950005750413A207573697E
-:10C830006E672047544B205745503130340000007C
-:10C840005750413A207573696E672047544B205703
-:10C8500045503430000000005750413A207573694C
-:10C860006E672050544B2043434D50005750413A7F
-:10C87000207573696E672050544B20544B4950000B
-:10C880005750413A207573696E672050544B204EC3
-:10C890004F4E45005750413A207573696E67204BE3
-:10C8A00045595F4D474D54203830322E31580000E5
-:10C8B0005750413A207573696E67204B45595F4D5B
-:10C8C000474D54205750412D50534B005750413A3B
-:10C8D000207573696E67204B45595F4D474D542055
-:10C8E0005750412D4E4F4E45000000005750413AE1
-:10C8F000204661696C656420746F2073656C6563A4
-:10C9000074205750412F52534E0000004661696C0D
-:10C91000656420746F20706172736520746865208F
-:10C92000636F6E66696775726174696F6E206669A0
-:10C930006C652027257327202D2065786974696E22
-:10C94000670000005265636F6E6669677572617497
-:10C95000696F6E20636F6D706C65746564000000B4
-:10C9600053657474696E672061757468656E746967
-:10C97000636174696F6E2074696D656F75743A20B8
-:10C98000256420736563202564207573656300004A
-:10C9900053657474696E67207363616E207265718C
-:10C9A000756573743A2025642073656320256420BF
-:10C9B000757365630000000041757468656E746985
-:10C9C000636174696F6E20776974682025303278EE
-:10C9D0003A253032783A253032783A253032783A72
-:10C9E000253032783A253032782074696D656420BC
-:10C9F0006F75742E00000000547279696E672074A0
-:10CA00006F206173736F63696174652077697468FF
-:10CA100020253032783A253032783A253032783A4B
-:10CA2000253032783A253032783A2530327820284D
-:10CA3000535349443D2725732720667265713D2570
-:10CA400064204D487A290000547279696E67207419
-:10CA50006F206173736F63696174652077697468AF
-:10CA60002053534944202725732700004173736FD7
-:10CA700063696174696F6E20726571756573742086
-:10CA8000746F2074686520647269766572206661CF
-:10CA9000696C6564000000007770615F7375707089
-:10CAA0006C6963616E742076302E352E31300A4306
-:10CAB0006F7079726967687420286329203230307A
-:10CAC000332D323030382C204A6F756E69204D611D
-:10CAD0006C696E656E203C6A4077312E66693E2037
-:10CAE000616E6420636F6E7472696275746F7273C5
-:10CAF00000000000546869732070726F6772616D86
-:10CB0000206973206672656520736F667477617241
-:10CB1000652E20596F752063616E2064697374728D
-:10CB2000696275746520697420616E642F6F72206C
-:10CB30006D6F646966792069740A756E6465722028
-:10CB4000746865207465726D73206F662074686503
-:10CB500020474E552047656E6572616C20507562A6
-:10CB60006C6963204C6963656E73652076657273CA
-:10CB7000696F6E20322E0A0A416C7465726E6174A0
-:10CB80006976656C792C207468697320736F66749C
-:10CB900077617265206D61792062652064697374C4
-:10CBA0007269627574656420756E6465722074685C
-:10CBB00065207465726D73206F66207468650A4223
-:10CBC0005344206C6963656E73652E205365652040
-:10CBD000524541444D4520616E6420434F505949B0
-:10CBE0004E4720666F72206D6F72652064657461B8
-:10CBF000696C732E0A0000002530325800000000D6
-:10CC00008003C4FC80024A908002490000000010AA
-:10CC100000000014000000000000002000000000E0
-:10CC20008003D3EC80024DF0800248880000006051
-:10CC300000000000000000000000000100000000F3
-:10CC40008003D3F880024DCC800248280000000009
-:10CC500000000000000000000000000000000000D4
-:10CC60008003C50480024D00800248C4000000001B
-:10CC700000000000000000000000000000000001B3
-:10CC80008003D4008002408C800247A8000000008E
-:10CC90000000000000000000000000000000000094
-:10CCA0008003D40880023F448002467C00000000DC
-:10CCB0000000000000000000000000000000000074
-:10CCC0008003D41480023F188002466C00000000EC
-:10CCD0000000000000000000000000000000000054
-:10CCE0008003D42080023EEC8002465C00000000FD
-:10CCF0000000000000000000000000000000000034
-:10CD00008003D42880023CA4800244740000000008
-:10CD10000000000000000000000000000000000013
-:10CD20008003C51480024B9080024B00000000007D
-:10CD300000000000000000000000000000000000F3
-:10CD40008003C53880024A908002490000000068D4
-:10CD50000000006C00000000000000000000000067
-:10CD60008003D43480024A908002490000000070A1
-:10CD7000000000740000000000000000000000003F
-:10CD80008003D44880024A90800249000000007865
-:10CD90000000007C000000100000002000000001E6
-:10CDA0008003D45080024A90800249000000008035
-:10CDB00000000084000000000000000000000000EF
-:10CDC0008003D45480024A90800249000000008809
-:10CDD0000000008C000000000000000000000001C6
-:10CDE0008003D46080024A908002490000000090D5
-:10CDF0000000000000000000000000000000000033
-:10CE00008003D46880024A908002490000000094A8
-:10CE10000000000000000000000000000000000012
-:10CE20008003D47080024A9080024900000000987C
-:10CE300000000000000000000000000000000000F2
-:10CE40008003D47C80024A90800249000000009C4C
-:10CE500000000000000000000000000000000000D2
-:10CE60008003D48880024A9080024900000000A01C
-:10CE700000000000000000000000000000000001B1
-:10CE80008003D49C80024A9080024900000000A4E4
-:10CE90000000000000000000000000000000000092
-:10CEA0008003D4A480024A9080024900000000A8B8
-:10CEB0000000000000000000000000000000000072
-:10CEC0008003D4B480024A9080024900000000AC84
-:10CED0000000000000000000000000000000000052
-:10CEE0008003D4C880024A9080024900000000B04C
-:10CEF0000000000000000000000000000000000032
-:10CF00008003D4D480024A9080024900000000B41B
-:10CF10000000000000000000000000000000000011
-:10CF20008003D4E080024A9080024900000000B8EB
-:10CF300000000000000000000000000000000000F1
-:10CF40008003D4F080024A9080024900000000BCB7
-:10CF500000000000000000000000000000000000D1
-:10CF60008003D50080024A9080024900000000C082
-:10CF700000000000000000000000000000000001B0
-:10CF80008003D51480024A9080024900000000C44A
-:10CF90000000000000000000000000000000000091
-:10CFA0008003D52080024A9080024900000000C81A
-:10CFB0000000000000000000000000000000000071
-:10CFC0008003D53080024A9080024900000000CCE6
-:10CFD0000000000000000000000000000000000051
-:10CFE0008003D54480024A9080024900000000D4AA
-:10CFF0000000000000000000000000000000000031
-:10D000008003D54C80024A9080024900000000D87D
-:10D010000000000000000000000000000000000010
-:10D020008003D55480024A9080024900000000DC51
-:10D0300000000000000000000000000000000000F0
-:10D040008003D55C80024A9080024900000000E025
-:10D0500000000000000000000000000000000001CF
-:10D060008003D56080024A9080024900000000E8F9
-:10D0700000000000000000000000000000000000B0
-:10D080008003D56C80024A9080024900000000ECC9
-:10D090000000000000000000000000000000000090
-:10D0A0008003D65C80024DF080024888000000E4D6
-:10D0B0000000000000000000000000000000000070
-:10D0C0008003D57480024DF080024888000000F093
-:10D0D0000000000000000000000000000000000050
-:10D0E0008003D58080024A78800244580000000006
-:10D0F000000000000000000000000000000000012F
-:10D100008003D58C80024A608002443C000000000D
-:10D11000000000000000000000000000000000010E
-:10D120008003D59880024A48800244200000000015
-:10D1300000000000000000000000000000000001EE
-:10D140008003D5A480024A3080024404000000001D
-:10D1500000000000000000000000000000000001CE
-:10D160008003D5B080024DF0800248880000014461
-:10D1700000000000000000000000000000000000AF
-:10D180008003D5C080024DF0800248880000000C6A
-:10D19000000000000000000000000000000000008F
-:10D1A0008003D5CC80024DF0800248880000017CCD
-:10D1B000000000000000000000000000000000006F
-:10D1C0008003D5DC80024A90800249000000018083
-:10D1D000000000000000000000000000000000004F
-:10D1E0008003D5E880024DF0800248880000019C51
-:10D1F000000000000000000000000000000000002F
-:10D200008003D5F880024DF0800248880000018438
-:10D21000000000000000000000000001000000000D
-:10D220008003D60080024DF0800248880000006430
-:10D2300000000000000000000000000200000000EC
-:10D240008003D60880024DF0800248880000014823
-:10D2500000000000000000000000000100000000CD
-:10D260008003D62080024DF080024888000001949F
-:10D2700000000000000000000000000100000000AD
-:10D280008003D62C80024A9080024900000001A051
-:10D29000000000000000000000000000000000008E
-:10D2A0008003D63480024DF0800248880000019847
-:10D2B000000000000000000000000001000000006D
-:10D2C0008003D63C80024DF0800248880000014C6B
-:10D2D000000000000000000000000001000000004D
-:10D2E0008003D64880024DF080024888000001A4E7
-:10D2F00000000000000000000000271000000000F7
-:10D300002A0000004F50454E000000005348415293
-:10D31000454400004C454150000000005745503145
-:10D320003034000057455034300000005750412D34
-:10D3300045415000494545453830323158000000DC
-:10D340005750410052534E005750413200000000E8
-:10D3500025734F50454E00002573534841524544B4
-:10D360000000000025734C454150000025734343E5
-:10D370004D5000002573544B49500000257357450C
-:10D3800050313034000000002573574550343000D0
-:10D3900025734E4F4E45000025735750412D505375
-:10D3A0004B00000025735750412D454150000000AF
-:10D3B000257349454545383032315800257357505B
-:10D3C000412D4E4F4E45000025735750410000003F
-:10D3D000257352534E0000007765705F6B657925A9
-:10D3E0006400000025732573000000007363616E04
-:10D3F0005F73736964000000627373696400000006
-:10D4000070726F746F0000006B65795F6D676D748B
-:10D4100000000000706169727769736500000000A8
-:10D4200067726F7570000000617574685F616C678A
-:10D4300000000000616E6F6E796D6F75735F6964D7
-:10D44000656E74697479000065617070736B0000BB
-:10D450006E61690070617373776F72640000000021
-:10D4600063615F636572740063615F70617468001B
-:10D47000636C69656E745F6365727400707269765F
-:10D480006174655F6B657900707269766174655F60
-:10D490006B65795F706173737764000064685F66C1
-:10D4A000696C65007375626A6563745F6D6174634E
-:10D4B00068000000616C747375626A6563745F6D07
-:10D4C000617463680000000063615F6365727432B9
-:10D4D0000000000063615F7061746832000000004A
-:10D4E000636C69656E745F6365727432000000007E
-:10D4F000707269766174655F6B6579320000000057
-:10D50000707269766174655F6B6579325F706173A3
-:10D510007377640064685F66696C653200000000C0
-:10D520007375626A6563745F6D617463683200006D
-:10D53000616C747375626A6563745F6D617463684E
-:10D5400032000000706861736531000070686173BB
-:10D5500065320000706373630000000070696E0044
-:10D56000656E67696E655F69640000006B65795F71
-:10D57000696400006561706F6C5F666C6167730061
-:10D580007765705F6B657930000000007765705FCC
-:10D590006B657931000000007765705F6B657932EB
-:10D5A000000000007765705F6B6579330000000054
-:10D5B0007765705F74785F6B6579696478000000E7
-:10D5C0007072696F72697479000000006561705F44
-:10D5D000776F726B61726F756E6400007061635F6C
-:10D5E00066696C6500000000667261676D656E7447
-:10D5F0005F73697A650000006D6F6465000000006C
-:10D600007573655F7770730070726F6163746976AC
-:10D61000655F6B65795F63616368696E67000000D1
-:10D6200064697361626C65640000000069645F7323
-:10D6300074720000706565726B6579006D6978655C
-:10D64000645F63656C6C00006672657175656E631E
-:10D6500079000000888E000077696669656E6769E9
-:10D660006E65000057694669456E67696E65000022
-:10D670008003D6588003D664800254C880025420A8
-:10D6800080024F98800252E0800253E8800254A446
-:10D690000000000080024F9A800252C880024F941E
-:10D6A00080024F96800252B08002529880024F9CB6
-:10D6B00080024F9E8002523C800251E0800251D491
-:10D6C000800251AC00000000000000008002518088
-:10D6D00080024FF480024FD00000000000000000E4
-:10D6E000000000000000000000000000000000003A
-:10D6F000000000000000000080024FA08002564E93
-:10D700008002564A80025646800256408002563CAD
-:10D7100080025636800256328002562C80025626EF
-:10D72000800256928002568C800256888002568271
-:10D730008002567C80025676800256728002566CB9
-:10D740008002566680025B3480025C0880025BE0E7
-:10D7500080025BBA80025BA080025B3480025B3493
-:10D7600080025B3480025DC280025E3A80025E12FB
-:10D7700080025D8E80025CC280025AF680025DF4F7
-:10D7800080025DCE800268DC80026AA280026A00AC
-:10D7900080026904800268F2800269EE800268DC1F
-:10D7A000800268DC800268E8800268E8800268E83D
-:10D7B000696E76616C696461746500004354524C13
-:10D7C0002D4556454E542D4541502D535543434507
-:10D7D0005353204541502061757468656E746963C8
-:10D7E0006174696F6E20636F6D706C657465642021
-:10D7F0007375636365737366756C6C7920286261F9
-:10D80000736564206F6E206C6F776572206C617930
-:10D810006572207375636365737329004354524CBA
-:10D820002D4556454E542D4541502D5355434345A6
-:10D830005353204541502061757468656E74696367
-:10D840006174696F6E20636F6D706C6574656420C0
-:10D850007375636365737366756C6C7900000000A3
-:10D860004354524C2D4556454E542D4541502D465E
-:10D8700041494C55524520454150206175746865B9
-:10D880006E7469636174696F6E206661696C65644A
-:10D8900000000000494E495449414C495A45000096
-:10D8A0004541503A206D6F7265207468616E202585
-:10D8B000642061757468656E7469636174696F6E04
-:10D8C00020726F756E6473202D2061626F72740018
-:10D8D0004354524C2D4556454E542D4541502D4EE6
-:10D8E0004F54494649434154494F4E2000000000DF
-:10D8F0004354524C2D4556454E542D4541502D53C1
-:10D900005441525445442045415020617574686526
-:10D910006E7469636174696F6E207374617274658B
-:10D92000640000004745545F4D4554484F44000093
-:10D930004541503A204661696C656420746F2069E6
-:10D940006E697469616C697A6520454150206D6526
-:10D9500074686F643A2076656E646F722025752056
-:10D960006D6574686F642025752028257329000073
-:10D970004354524C2D4556454E542D4541502D4D46
-:10D980004554484F44204541502076656E646F727F
-:10D99000202575206D6574686F6420257520282505
-:10D9A00073292073656C656374656400454150207C
-:10D9B0006465696E697400008002794480027ADAD5
-:10D9C00080027B5880027BA280027CC880027CD2CD
-:10D9D00080027AC45750413A20544B495020636F1B
-:10D9E000756E7465726D656173757265732073749D
-:10D9F0006F707065640000004173736F63696174D8
-:10DA0000656420746F2061206E6577204253533A1D
-:10DA10002042535349443D253032783A25303278FC
-:10DA20003A253032783A253032783A253032783A11
-:10DA300025303278000000004173736F63696174B0
-:10DA40006564207769746820253032783A25303251
-:10DA5000783A253032783A253032783A25303278A3
-:10DA60003A253032780000005750413A20342D5783
-:10DA700061792048616E647368616B6520666169D5
-:10DA80006C6564202D207072652D73686172656409
-:10DA9000206B6579206D617920626520696E636F06
-:10DAA00072726563740000004354524C2D45564514
-:10DAB0004E542D444953434F4E4E45435445442004
-:10DAC0002D20446973636F6E6E656374206576659F
-:10DAD0006E74202D2072656D6F7665206B6579738D
-:10DAE000000000004D69636861656C204D4943206A
-:10DAF0006661696C757265206465746563746564DC
-:10DB000000000000544B495020636F756E746572BD
-:10DB10006D65617375726573207374617274656489
-:10DB200000000000000000080000000600000006E1
-:10DB3000496E646578202F204141202F20504D4BA5
-:10DB40004944202F2065787069726174696F6E2076
-:10DB500028696E207365636F6E647329202F206FB0
-:10DB600070706F7274756E69737469630A00000077
-:10DB7000256420253032783A253032783A25303203
-:10DB8000783A253032783A253032783A2530327872
-:10DB9000200000002025642025640A00504D4B2001
-:10DBA0004E616D650000000052534E3A207374615F
-:10DBB0007274696E67207072652D61757468656E28
-:10DBC0007469636174696F6E2077697468202530A9
-:10DBD00032783A253032783A253032783A25303268
-:10DBE000783A253032783A253032780052534E3A1E
-:10DBF0002070726F63657373696E6720504D4B536D
-:10DC0000412063616E646964617465206C6973743A
-:10DC10000000000052534E3A206E6F7420696E204F
-:10DC20007375697461626C652073746174652066D4
-:10DC30006F72206E6577207072652D6175746865EE
-:10DC40006E7469636174696F6E00000052534E3ADE
-:10DC500020504D4B53412063616E6469646174656B
-:10DC600020253032783A253032783A253032783AE9
-:10DC7000253032783A253032783A253032782073A0
-:10DC8000656C656374656420666F72207072652DC3
-:10DC900061757468656E7469636174696F6E0000A4
-:10DCA00052534E3A20504D4B53412063616E64698C
-:10DCB0006461746520253032783A253032783A250F
-:10DCC0003032783A253032783A253032783A253079
-:10DCD000327820646F6573206E6F74206E656564A2
-:10DCE000207072652D61757468656E746963617406
-:10DCF000696F6E20616E796D6F72650052534E3A96
-:10DD0000206E6F206D6F72652070656E64696E673E
-:10DD100020504D4B53412063616E646964617465AA
-:10DD20007300000052534E3A2061646465642050D1
-:10DD30004D4B53412063616368652063616E646984
-:10DD40006461746520253032783A253032783A257E
-:10DD50003032783A253032783A253032783A2530E8
-:10DD60003278207072696F202564000052534E3A59
-:10DD7000207072652D61757468656E746963617475
-:10DD8000696F6E207769746820253032783A2530C3
-:10DD900032783A253032783A253032783A253032A6
-:10DDA000783A253032782074696D6564206F757417
-:10DDB00000000000636F6D706C657465642073759E
-:10DDC000636365737366756C6C79000052534E3AE9
-:10DDD000206661696C656420746F20676574206DCE
-:10DDE00061737465722073657373696F6E206B6500
-:10DDF000792066726F6D207072652D617574682070
-:10DE00004541504F4C207374617465206D616368A7
-:10DE1000696E65730000000052534E3A20707265BF
-:10DE20002D61757468656E7469636174696F6E20C5
-:10DE30007769746820253032783A253032783A256F
-:10DE40003032783A253032783A253032783A2530F7
-:10DE50003278202573000000800000008002B51C8D
-:10DE60008002B50A8002B5008002B4FA8002B4F4E0
-:10DE70008002B4EE8002B4E8000FAC010050F20260
-:10DE8000000FAC02000FAC01000FAC050050F20215
-:10DE9000000FAC040050F2010050F2010050F201FA
-:10DEA0000050F2050050F200000FAC00000FAC0370
-:10DEB0000050F200000FAC0449454545203830328F
-:10DEC0002E315820286E6F20575041290000000045
-:10DED0005750412F49454545203830322E31582F73
-:10DEE00045415000575041322F4945454520383073
-:10DEF000322E31582F45415000000000575041321A
-:10DF00002D50534B000000005745502D3430000079
-:10DF10005745502D313034007061697277697365EF
-:10DF20005F6369706865723D25730A67726F75700B
-:10DF30005F6369706865723D25730A6B65795F6D13
-:10DF4000676D743D25730A005750413A20257320B0
-:10DF5000287372633D253032783A253032783A257D
-:10DF60003032783A253032783A253032783A2530D6
-:10DF7000327829005750413A204B6579206E656709
-:10DF80006F74696174696F6E20636F6D706C657416
-:10DF90006564207769746820253032783A253032FC
-:10DFA000783A253032783A253032783A253032784E
-:10DFB0003A25303278205B50544B3D25732047542E
-:10DFC0004B3D25735D0000005750413A20496E7665
-:10DFD000616C6964204541504F4C2D4B657920663A
-:10DFE00072616D65202D206B65795F6461746120BD
-:10DFF0006F766572666C6F7720282564203E202539
-:10E000006C752900494520696E20332F34206D73CB
-:10E010006720646F6573206E6F74206D6174636830
-:10E02000207769746820494520696E2042656163E4
-:10E030006F6E2F50726F62655265737020286E6F1D
-:10E040002049453F29000000494520696E20332FB3
-:10E0500034206D736720646F6573206E6F74206D5C
-:10E0600061746368207769746820494520696E206F
-:10E07000426561636F6E2F50726F62655265737097
-:10E0800000000000506F737369626C6520646F77E5
-:10E090006E67726164652061747461636B2064658E
-:10E0A000746563746564202D2052534E207761732C
-:10E0B00020656E61626C656420616E642052534E0F
-:10E0C0002049452077617320696E206D7367203386
-:10E0D0002F342C20627574206E6F7420696E20427C
-:10E0E0006561636F6E2F50726F6265526573700069
-:10E0F0005750413A204661696C656420746F20670F
-:10E100006574206D61737465722073657373696FD4
-:10E110006E206B65792066726F6D204541504F4CC3
-:10E12000207374617465206D616368696E65730046
-:10E130005750413A204B65792068616E647368617D
-:10E140006B652061626F7274656400005750413ADC
-:10E15000204661696C656420746F20676574207265
-:10E16000616E646F6D206461746120666F7220530C
-:10E170004E6F6E6365000000506169727769736568
-:10E18000206B657920657870616E73696F6E000031
-:10E190005750413A2047726F75702072656B6579F0
-:10E1A000696E6720636F6D706C6574656420776954
-:10E1B000746820253032783A253032783A2530326A
-:10E1C000783A253032783A253032783A253032782C
-:10E1D000205B47544B3D25735D00000000000000AC
-:10E1E000000000000050F204000FAC02000FAC0170
-:10E1F00052096AD53036A538BF40A39E81F3D7FBBC
-:10E200007CE339829B2FFF87348E4344C4DEE9CB05
-:10E21000547B9432A6C2233DEE4C950B42FAC34E7A
-:10E22000082EA16628D924B2765BA2496D8BD12530
-:10E2300072F8F66486689816D4A45CCC5D65B692D4
-:10E240006C704850FDEDB9DA5E154657A78D9D8478
-:10E2500090D8AB008CBCD30AF7E45805B8B3450698
-:10E26000D02C1E8FCA3F0F02C1AFBD0301138A6BB2
-:10E270003A9111414F67DCEA97F2CFCEF0B4E673E2
-:10E2800096AC7422E7AD3585E2F937E81C75DF6E90
-:10E2900047F11A711D29C5896FB7620EAA18BE1BF6
-:10E2A000FC563E4BC6D279209ADBC0FE78CD5AF49C
-:10E2B0001FDDA8338807C731B11210592780EC5FE2
-:10E2C00060517FA919B54A0D2DE57A9F93C99CEF3E
-:10E2D000A0E03B4DAE2AF5B0C8EBBB3C835399613F
-:10E2E000172B047EBA77D626E169146355210C7D7D
-:10E2F00001020408102040801B36000051F4A75092
-:10E300007E4165531A17A4C33A275E963BAB6BCB8D
-:10E310001F9D45F1ACFA58AB4BE303932030FA55FF
-:10E32000AD766DF688CC7691F5024C254FE5D7FC9D
-:10E33000C52ACBD726354480B562A38FDEB15A49B2
-:10E3400025BA1B6745EA0E985DFEC0E1C32F750232
-:10E35000814CF0128D4697A36BD3F9C6038F5FE70C
-:10E3600015929C95BF6D7AEB955259DAD4BE832DE8
-:10E37000587421D349E069298EC9C84475C2896A95
-:10E38000F48E797899583E6B27B971DDBEE14FB6AE
-:10E39000F088AD17C920AC667DCE3AB463DF4A1869
-:10E3A000E51A31829751336062537F45B16477E05B
-:10E3B000BB6BAE84FE81A01CF9082B947048685892
-:10E3C0008F45FD1994DE6C87527BF8B7AB73D3236E
-:10E3D000724B02E2E31F8F576655AB2AB2EB280758
-:10E3E0002FB5C20386C57B9AD33708A5302887F29C
-:10E3F00023BFA5B202036ABAED16825C8ACF1C2B3A
-:10E40000A779B492F307F2F04E69E2A165DAF4CD90
-:10E410000605BED5D134621FC4A6FE8A342E539D94
-:10E42000A2F355A0058AE132A4F6EB750B83EC3913
-:10E430004060EFAA5E719F06BD6E10513E218AF9C1
-:10E4400096DD063DDD3E05AE4DE6BD4691548DB5EB
-:10E4500071C45D050406D46F605015FF1998FB2444
-:10E46000D6BDE997894043CC67D99E77B0E842BDD5
-:10E4700007898B88E7195B3879C8EEDBA17C0A47EE
-:10E480007C420FE9F8841EC90000000009808683E1
-:10E49000322BED481E1170AC6C5A724EFD0EFFFB14
-:10E4A0000F8538563DAED51E362D39270A0FD96453
-:10E4B000685CA6219B5B54D124362E3A0C0A67B1C6
-:10E4C0009357E70FB4EE96D21B9B919E80C0C54F29
-:10E4D00061DC20A25A774B691C121A16E293BA0A21
-:10E4E000C0A02AE53C22E043121B171D0E090D0BAC
-:10E4F000F28BC7AD2DB6A8B9141EA9C857F119855E
-:10E50000AF75074CEE99DDBBA37F60FDF701269F39
-:10E510005C72F5BC44663BC55BFB7E348B4329765D
-:10E52000CB23C6DCB6EDFC68B8E4F163D731DCCAB6
-:10E53000426385101397224084C61120854A247DAA
-:10E54000D2BB3DF8AEF93211C729A16D1D9E2F4BEC
-:10E55000DCB230F30D8652EC77C1E3D02BB3166CEE
-:10E56000A970B999119448FA47E96422A8FC8CC4AF
-:10E57000A0F03F1A567D2CD8223390EF87494EC722
-:10E58000D938D1C18CCAA2FE98D40B36A6F581CF5A
-:10E59000A57ADE28DAB78E263FADBFA42C3A9DE4DB
-:10E5A0005078920D6A5FCC9B547E4662F68D13C202
-:10E5B00090D8B8E82E39F75E82C3AFF59F5D80BE74
-:10E5C00069D0937C6FD52DA9CF2512B3C8AC993BE8
-:10E5D00010187DA7E89C636EDB3BBB7BCD267809DA
-:10E5E0006E5918F4EC9AB701834F9AA8E6956E65B8
-:10E5F000AAFFE67E21BCCF08EF15E8E6BAE79BD973
-:10E600004A6F36CEEA9F09D429B07CD631A4B2AF86
-:10E610002A3F2331C6A5943035A266C0744EBC375C
-:10E62000FC82CAA6E090D0B033A7D815F104984A6E
-:10E6300041ECDAF77FCD500E1791F62F764DD68D3F
-:10E6400043EFB04DCCAA4D54E49604DF9ED1B5E320
-:10E650004C6A881BC12C1FB84665517F9D5EEA0439
-:10E66000018C355DFA877473FB0B412EB3671D5A1D
-:10E6700092DBD252E91056336DD647139AD7618C8C
-:10E6800037A10C7A59F8148EEB133C89CEA927EEEA
-:10E69000B761C935E11CE5ED7A47B13C9CD2DF5941
-:10E6A00055F2733F1814CE7973C737BF53F7CDEACD
-:10E6B0005FFDAA5BDF3D6F147844DB86CAAFF38150
-:10E6C000B968C43E3824342CC2A3405F161DC372FF
-:10E6D000BCE2250C283C498BFF0D954139A80171FE
-:10E6E000080CB3DED8B4E49C6456C1907BCB846143
-:10E6F000D532B670486C5C74D0B85742C66363A517
-:10E70000F87C7C84EE777799F67B7B8DFFF2F20DB7
-:10E71000D66B6BBDDE6F6FB191C5C55460303050A4
-:10E7200002010103CE6767A9562B2B7DE7FEFE1978
-:10E73000B5D7D7624DABABE6EC76769A8FCACA45B1
-:10E740001F82829D89C9C940FA7D7D87EFFAFA153B
-:10E75000B25959EB8E4747C9FBF0F00B41ADADEC18
-:10E76000B3D4D4675FA2A2FD45AFAFEA239C9CBFA0
-:10E7700053A4A4F7E47272969BC0C05B75B7B7C28E
-:10E78000E1FDFD1C3D9393AE4C26266A6C36365A4D
-:10E790007E3F3F41F5F7F70283CCCC4F6834345CC1
-:10E7A00051A5A5F4D1E5E534F9F1F108E2717193D1
-:10E7B000ABD8D873623131532A15153F0804040CC5
-:10E7C00095C7C752462323659DC3C35E30181828DA
-:10E7D000379696A10A05050F2F9A9AB50E070709D5
-:10E7E000241212361B80809BDFE2E23DCDEBEB264C
-:10E7F0004E2727697FB2B2CDEA75759F1209091BB2
-:10E800001D83839E582C2C74341A1A2E361B1B2DF4
-:10E81000DC6E6EB2B45A5AEE5BA0A0FBA45252F664
-:10E82000763B3B4DB7D6D6617DB3B3CE5229297B1B
-:10E83000DDE3E33E5E2F2F7113848497A65353F5D7
-:10E84000B9D1D16800000000C1EDED2C402020605E
-:10E85000E3FCFC1F79B1B1C8B65B5BEDD46A6ABE5C
-:10E860008DCBCB4667BEBED97239394B944A4ADE4E
-:10E87000984C4CD4B05858E885CFCF4ABBD0D06B19
-:10E88000C5EFEF2A4FAAAAE5EDFBFB16864343C569
-:10E890009A4D4DD766333355118585948A4545CFBA
-:10E8A000E9F9F91004020206FE7F7F81A05050F0C2
-:10E8B000783C3C44259F9FBA4BA8A8E3A25151F352
-:10E8C0005DA3A3FE804040C0058F8F8A3F9292AD2A
-:10E8D000219D9DBC70383848F1F5F50463BCBCDF60
-:10E8E00077B6B6C1AFDADA75422121632010103055
-:10E8F000E5FFFF1AFDF3F30EBFD2D26D81CDCD4CF3
-:10E90000180C0C1426131335C3ECEC2FBE5F5FE11B
-:10E91000359797A2884444CC2E17173993C4C4570F
-:10E9200055A7A7F2FC7E7E827A3D3D47C86464AC61
-:10E93000BA5D5DE73219192BE6737395C06060A06C
-:10E94000198181989E4F4FD1A3DCDC7F442222663F
-:10E95000542A2A7E3B9090AB0B8888838C4646CA0B
-:10E96000C7EEEE296BB8B8D32814143CA7DEDE79C5
-:10E97000BC5E5EE2160B0B1DADDBDB76DBE0E03B45
-:10E9800064323256743A3A4E140A0A1E924949DBEE
-:10E990000C06060A4824246CB85C5CE49FC2C25D85
-:10E9A000BDD3D36E43ACACEFC46262A6399191A8DB
-:10E9B000319595A4D3E4E437F279798BD5E7E73242
-:10E9C0008BC8C8436E373759DA6D6DB7018D8D8CA2
-:10E9D000B1D5D5649C4E4ED249A9A9E0D86C6CB48F
-:10E9E000AC5656FAF3F4F407CFEAEA25CA6565AFE8
-:10E9F000F47A7A8E47AEAEE9100808186FBABAD525
-:10EA0000F07878884A25256F5C2E2E72381C1C24DD
-:10EA100057A6A6F173B4B4C797C6C651CBE8E8238E
-:10EA2000A1DDDD7CE874749C3E1F1F21964B4BDDFD
-:10EA300061BDBDDC0D8B8B860F8A8A85E07070907E
-:10EA40007C3E3E4271B5B5C4CC6666AA904848D8B3
-:10EA500006030305F7F6F6011C0E0E12C26161A350
-:10EA60006A35355FAE5757F969B9B9D017868691BF
-:10EA700099C1C1583A1D1D27279E9EB9D9E1E13899
-:10EA8000EBF8F8132B9898B322111133D26969BBB4
-:10EA9000A9D9D970078E8E89339494A72D9B9BB6E4
-:10EAA0003C1E1E2215878792C9E9E92087CECE49F0
-:10EAB000AA5555FF50282878A5DFDF7A038C8C8F64
-:10EAC00059A1A1F8098989801A0D0D1765BFBFDA10
-:10EAD000D7E6E631844242C6D06868B8824141C375
-:10EAE000299999B05A2D2D771E0F0F117BB0B0CBFD
-:10EAF000A85454FC6DBBBBD62C16163A002020201F
-:10EB000020202020202028282828282020202020DD
-:10EB100020202020202020202020202020881010AD
-:10EB20001010101010101010101010101004040409
-:10EB300004040404040404101010101010104141C7
-:10EB400041414141010101010101010101010101B5
-:10EB500001010101010101011010101010104242C9
-:10EB60004242424202020202020202020202020285
-:10EB70000202020202020202101010102000000025
-:10EB80000000000000000000000000000000000085
-:10EB90000000000000000000000000000000000075
-:10EBA0000000000000000000000000000000000065
-:10EBB0000000000000000000000000000000000055
-:10EBC0000000000000000000000000000000000045
-:10EBD0000000000000000000000000000000000035
-:10EBE0000000000000000000000000000000000025
-:10EBF0000000000000000000000000000000000015
-:10EC00002D2D0000504F5349584C595F434F5252DD
-:10EC10004543540025733A206F7074696F6E20600D
-:10EC200025732720697320616D626967756F75733D
-:10EC30002028636F756C6420626520602D2D25731C
-:10EC400027206F7220602D2D257327290A000000D0
-:10EC500025733A20696E76616C6964206F707469FF
-:10EC60006F6E202D2D20602D2563270A00000000E7
-:10EC700025733A20617267756D656E7420726571D7
-:10EC8000756972656420666F72206F7074696F6E4B
-:10EC9000206000002D2D2573270A00002D256327F5
-:10ECA0000A00000043000000000004A88002F4668F
-:10ECB0008002F4888002F2B08002F2E88002F4520E
-:10ECC0008002F4508002F3FE8002F4268002F3DC1E
-:10ECD0008002F3DC8002F3CC8002F3DC8002F3EAF2
-:10ECE0008002F3EA8002F3DC3030303030303030F4
-:10ECF000303030303030303001020B040B0506016B
-:10ED00000B01020B040B0506010B0B0B03040B0597
-:10ED10000B0B0B0B0B0B040B050B0B0B0B0B0B0B50
-:10ED20000B0B0B0B0B05080B040B0B070B0B0B0949
-:10ED30000B040B050B0B0B0B0A0B040B0B0B0B0B38
-:10ED40000B0B0B040B0B0B0B0B0B0B030B0B0B0B22
-:10ED50000B0B0B0B080B0B0B0B0B0B00000000003D
-:10ED6000000000000001000304000000000001009A
-:10ED7000030400000000000007030400000000007E
-:10ED80000000030400000000000000000400000078
-:10ED90000000020003040000000000010005060559
-:10EDA0000000000001000506000000000000000354
-:10EDB0000400000000000008000000000000000047
-:10EDC000080000000000000000000000000000003B
-:10EDD0003031323334353637383941424344454691
-:10EDE0000000000030313233343536373839616253
-:10EDF0006364656600000000202020202020202081
-:10EE000020202020202020200808080808080808C2
-:10EE10000808080808080808080808080808080872
-:10EE2000080808080808080807080807020808076B
-:10EE30000808060708070508000101010101010192
-:10EE40000101080808080808080408040404040468
-:10EE50000808080803080804080808040804080843
-:10EE6000040808080808080808040804040404043E
-:10EE70000304030803080404040308040304080843
-:10EE8000040803080808080808080808080808080B
-:10EE900008080808080808080808080808080808F2
-:10EEA00008080808080808080808080808080808E2
-:10EEB00008080808080808080808080808080808D2
-:10EEC00008080808080808080808080808080808C2
-:10EED00008080808080808080808080808080808B2
-:10EEE00008080808080808080808080808080808A2
-:10EEF0000808080808080808080808080808080892
-:10EF00000808080808080808000A000100020003B1
-:10EF1000000400050006000700080009000A000BB5
-:10EF2000000C000D000E000F00100000000000009B
-:10EF300000000000000000000000000000000000D1
-:10EF400000000000000000000000000000000000C1
-:10EF500000000000000000000000000000000000B1
-:10EF600000000000000000000000000000000000A1
-:10EF70000000000000000000000000000000000091
-:10EF800000000000000000000000000080037FB4CB
-:10EF900080037E2080037E2080037E2080037E20ED
-:10EFA00080037E2080037E2080037E2080037E20DD
-:10EFB00080037E20FFFFFFFFFFFFFFFF49534F2D20
-:10EFC000383835392D310000800333228003334433
-:10EFD0008003316C800331A48003330E8003330C33
-:10EFE000800332BA800332E2800332988003329881
-:10EFF0008003328880033298800332A6800332A6D1
-:10F00000800332988003363480034AA480034AA4E4
-:10F010008003364480034AA480034AA480034AA4A0
-:10F0200080034AA480034AA480034AA4800336488C
-:10F030008003371C80034AA48003371880033724D9
-:10F0400080034AA480033842800338468003384650
-:10F0500080033846800338468003384680033846AC
-:10F0600080033846800338468003384680034AA42C
-:10F0700080034AA480034AA480034AA480034AA4CC
-:10F0800080034AA480034AA480034AA480034AA4BC
-:10F0900080034AA48003394480033B9680034AA43A
-:10F0A00080033B9680034AA480034AA480034AA4B9
-:10F0B00080034AA48003387880034AA480034AA4CA
-:10F0C0008003416280034AA480034AA480034AA4C7
-:10F0D00080034AA480034AA48003452680034AA4EF
-:10F0E00080034AA48003361A80034AA480034AA4FA
-:10F0F00080034AA480034AA480034AA480034AA44C
-:10F1000080034AA480034AA480034AA480034AA43B
-:10F11000800338988003395A80033B9680033B96DE
-:10F1200080033B968003387C8003395A80034AA4CD
-:10F1300080034AA48003388080034AA480033FA24E
-:10F1400080034178800343A48003389480034AA459
-:10F150008003445880034AA48003453C80034AA4AA
-:10F1600080034AA48003476E01020B040B050601CD
-:10F170000B01020B040B0506010B0B0B03040B0523
-:10F180000B0B0B0B0B0B040B050B0B0B0B0B0B0BDC
-:10F190000B0B0B0B0B05080B040B0B070B0B0B09D5
-:10F1A0000B040B050B0B0B0B0A0B040B0B0B0B0BC4
-:10F1B0000B0B0B040B0B0B0B0B0B0B030B0B0B0BAE
-:10F1C0000B0B0B0B080B0B0B0B0B0B0000000000C9
-:10F1D0000000000000010003040000000000010026
-:10F1E000030400000000000007030400000000000A
-:10F1F0000000030400000000000000000400000004
-:10F2000000000200030400000000000100050605E4
-:10F2100000000000010005060000000000000003DF
-:10F2200004000000000000080000000000000000D2
-:10F2300008000000000000000000000000000000C6
-:10F24000494E4600696E66004E414E006E616E008A
-:10F2500020202020202020202020202020202020AE
-:10F26000303030303030303030303030303030309E
-:10F27000080808080808080808080808080808080E
-:10F2800008080808080808080808080808080808FE
-:10F2900007080807020808070808060708070508FE
-:10F2A0000001010101010101010108080808080825
-:10F2B00008040804040404040808080803080804EF
-:10F2C00008080804080408080408080808080808CA
-:10F2D00008040804040404040304030803080404E1
-:10F2E00004030804030408080408030808080808BD
-:10F2F000080808080808080808080808080808088E
-:10F30000080808080808080808080808080808087D
-:10F31000080808080808080808080808080808086D
-:10F32000080808080808080808080808080808085D
-:10F33000080808080808080808080808080808084D
-:10F34000080808080808080808080808080808083D
-:10F35000080808080808080808080808080808082D
-:10F36000080808080808080808080808080808081D
-:10F37000496E66696E697479000000004E614E0046
-:10F3800000000005000000190000007D3FF00000B3
-:10F390000000000040240000000000004059000070
-:10F3A00000000000408F40000000000040C38800C3
-:10F3B0000000000040F86A0000000000412E848038
-:10F3C00000000000416312D0000000004197D78484
-:10F3D0000000000041CDCD65000000004202A05FAA
-:10F3E0002000000042374876E8000000426D1A9481
-:10F3F000A200000042A2309CE540000042D6BCC4FE
-:10F400001E900000430C6BF5263400004341C37985
-:10F4100037E080004376345785D8A00043ABC16DF8
-:10F42000674EC80043E158E460913D004415AF1DAC
-:10F4300078B58C40444B1AE4D6E2EF504480F0CFCC
-:10F44000064DD59244B52D02C7E14AF644EA784309
-:10F4500079D99DB44341C37937E080004693B8B56C
-:10F46000B5056E174D384F03E93FF9F55A827748D5
-:0CF47000F9301D3275154FDD7F73BF3C75
-:10F480000000000455736167653A2074746370204E
-:10F490002D742F2D72205B2D6F7074696F6E735DEC
-:10F4A00020686F73740A20202020202020202D6CDB
-:10F4B0002020202020206C656E677468206F6620F5
-:10F4C00062756673207772697474656E20746F203C
-:10F4D0006E6574776F726B202864656661756C74F5
-:10F4E0002031303234290A20202020202020202DD5
-:10F4F0006E2020202020206E756D626572206F6660
-:10F500002062756673207772697474656E20746FFB
-:10F51000206E6574776F726B202864656661756C08
-:10F52000742031303234290A20202020202020204D
-:10F530002D70202020202020706F7274206E756D39
-:10F5400062657220746F2073656E6420746F20286A
-:10F5500064656661756C742032303030290A202071
-:10F560002020202020202D752020202020207564A0
-:10F57000700A20202020202020202D7620202020EE
-:10F580002020766572626F73650A000080039954CB
-:10F59000000000000000000000000000000000006B
-:10F5A000000000000000000000000000000000005B
-:10F5B000000000000000000000000000000000004B
-:10F5C000000000000000000000000000000000003B
-:10F5D000000000000000000000000000000000002B
-:10F5E000000000000000000000000000000000001B
-:10F5F000000000000000000000000000000000000B
-:10F6000000000000000000000000000000000000FA
-:10F6100000000000000000000000000000000000EA
-:10F6200000000000000000000000000000000000DA
-:10F6300000000000000000000000000000000000CA
-:10F6400000000000000000000000000000000000BA
-:10F6500000000000000000000000000000000000AA
-:10F660000000000400000000ABCD00000000196E97
-:10F6700010000000FFFFFFFFFFFFFFFFFF7590007E
-:10F68000000001FFFFFFFFFEFFFFFFFFFF751000FF
-:10F69000000001FFFFFFFFFE00050000800149ECB4
-:10F6A000800149EC800149EC800149EC0000000038
-:10F6B000000002340000000C02040B0C1216182487
-:10F6C0003048606C000000000000000000000000F6
-:10F6D00000000010010000146D3E86B0FFFFFFFF28
-:10F6E000FFFF0000000003E800000001000000012F
-:10F6F00000000320000000010000000000000008DE
-:10F70000000000020000006400000000000000058E
-:10F710000000000F000000050000000F000013882B
-:10F7200000001388000007D00000138800003E800E
-:10F73000000000020000000C02040B0C121618243A
-:10F740003048606C00000000000000000000000075
-:10F7500000000000000000000D0102030405060780
-:10F7600008090A0B0C0D000000000011FF0000004A
-:10F770000000000000000000000000000000000089
-:10F780000000000000000000000000000000FFFF7B
-:10F79000FFFFFFFF00000001000000030000000168
-:10F7A0000000000100000000000000010000000156
-:10F7B0000000000100000001000000000000000146
-:10F7C0000000000A00000005000000000000000525
-:10F7D00000000000FFFFFFFF00000001000000002C
-:10F7E00000000002FF000000000000000000000018
-:10F7F0000000000000000000000000000000000009
-:10F80000000000000000FFFFFFFFFFFF00000001FD
-:10F810000000000300000000000007D000000064AA
-:10F8200003010100060200000000000C82848B8CA2
-:10F83000129618243048606C0000000000000000A0
-:10F8400000000000000000000000000100000001B6
-:10F85000000000010014000000000014000007D0A8
-:10F860000000000000000001000000000000000691
-:10F8700000000001FFFFFFFF0A00000064756D6DCE
-:10F88000795F7373696400000000000000000000ED
-:10F890000000000000000000000000000000000068
-:10F8A000303030313032303330343035303630373C
-:10F8B0003038303930613062306330643065306602
-:10F8C0003130313131323133313431353136313714
-:10F8D00031383139316131623163316431653166DA
-:10F8E00000000000000000028003D670000000004D
-:10F8F000800255EC80025614800256588002569CB5
-:10F90000800256AA800255F4800256B6800256D074
-:10F910008002614C8003EAFD0000003F000000010E
-:10F920008003EF2C8003EF4C8003EF6C000000009D
-:10F9300000000000000000000000000000000000C7
-:10F940008003ECA4000000000000000000000000A4
-:10F9500000000000000000000000000000000000A7
-:10F960000000000000000000000000000000000097
-:10F970000000000000000000000000000000000087
-:10F980000000000000000000000000000000000077
-:10F990000000000000000000000000000000000067
-:10F9A0000000000000000000000000000000000057
-:10F9B0000000000000000000000000000000000047
-:10F9C0000000000000000000000000000000000037
-:10F9D0000000000000000000000000000000000027
-:10F9E0000000000000000000000000000000000017
-:10F9F0000000000000000000000000000000000007
-:10FA000000000000000000000000000000000000F6
-:10FA1000000004A800000000000000000000059C99
-:10FA20000000059C000005A4000005A4000005AC32
-:10FA3000000005AC000005B4000005B4000005BCE2
-:10FA4000000005BC000005C4000005C4000005CC92
-:10FA5000000005CC000005D4000005D4000005DC42
-:10FA6000000005DC000005E4000005E4000005ECF2
-:10FA7000000005EC000005F4000005F4000005FCA2
-:10FA8000000005FC00000604000006040000060C4F
-:10FA90000000060C00000614000006140000061CFE
-:10FAA0000000061C00000624000006240000062CAE
-:10FAB0000000062C00000634000006340000063C5E
-:10FAC0000000063C00000644000006440000064C0E
-:10FAD0000000064C00000654000006540000065CBE
-:10FAE0000000065C00000664000006640000066C6E
-:10FAF0000000066C00000674000006740000067C1E
-:10FB00000000067C00000684000006840000068CCD
-:10FB10000000068C00000694000006940000069C7D
-:10FB20000000069C000006A4000006A4000006AC2D
-:10FB3000000006AC000006B4000006B4000006BCDD
-:10FB4000000006BC000006C4000006C4000006CC8D
-:10FB5000000006CC000006D4000006D4000006DC3D
-:10FB6000000006DC000006E4000006E4000006ECED
-:10FB7000000006EC000006F4000006F4000006FC9D
-:10FB8000000006FC00000704000007040000070C4A
-:10FB90000000070C00000714000007140000071CF9
-:10FBA0000000071C00000724000007240000072CA9
-:10FBB0000000072C00000734000007340000073C59
-:10FBC0000000073C00000744000007440000074C09
-:10FBD0000000074C00000754000007540000075CB9
-:10FBE0000000075C00000764000007640000076C69
-:10FBF0000000076C00000774000007740000077C19
-:10FC00000000077C00000784000007840000078CC8
-:10FC10000000078C00000794000007940000079C78
-:10FC20000000079C000007A4000007A4000007AC28
-:10FC3000000007AC000007B4000007B4000007BCD8
-:10FC4000000007BC000007C4000007C4000007CC88
-:10FC5000000007CC000007D4000007D4000007DC38
-:10FC6000000007DC000007E4000007E4000007ECE8
-:10FC7000000007EC000007F4000007F4000007FC98
-:10FC8000000007FC00000804000008040000080C45
-:10FC90000000080C00000814000008140000081CF4
-:10FCA0000000081C00000824000008240000082CA4
-:10FCB0000000082C00000834000008340000083C54
-:10FCC0000000083C00000844000008440000084C04
-:10FCD0000000084C00000854000008540000085CB4
-:10FCE0000000085C00000864000008640000086C64
-:10FCF0000000086C00000874000008740000087C14
-:10FD00000000087C00000884000008840000088CC3
-:10FD10000000088C00000894000008940000089C73
-:10FD20000000089C000008A4000008A4000008AC23
-:10FD3000000008AC000008B4000008B4000008BCD3
-:10FD4000000008BC000008C4000008C4000008CC83
-:10FD5000000008CC000008D4000008D4000008DC33
-:10FD6000000008DC000008E4000008E4000008ECE3
-:10FD7000000008EC000008F4000008F4000008FC93
-:10FD8000000008FC00000904000009040000090C40
-:10FD90000000090C00000914000009140000091CEF
-:10FDA0000000091C00000924000009240000092C9F
-:10FDB0000000092C00000934000009340000093C4F
-:10FDC0000000093C00000944000009440000094CFF
-:10FDD0000000094C00000954000009540000095CAF
-:10FDE0000000095C00000964000009640000096C5F
-:10FDF0000000096C00000974000009740000097C0F
-:10FE00000000097C00000984000009840000098CBE
-:10FE10000000098C00000994000009940002000011
-:0CFE2000FFFFFFFF0000000100007AFC63
-:040000058000000077
-:00000001FF
diff --git a/firmwares/wifishield/wifiHD/src/CONFIG/conf_access.h b/firmwares/wifishield/wifiHD/src/CONFIG/conf_access.h
deleted file mode 100644
index 2d38d50..0000000
--- a/firmwares/wifishield/wifiHD/src/CONFIG/conf_access.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Memory access control configuration file.
- *
- * This file contains the possible external configuration of the memory access
- * control.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _CONF_ACCESS_H_
-#define _CONF_ACCESS_H_
-
-#include "compiler.h"
-#include "board.h"
-
-
-/*! \name Activation of Logical Unit Numbers
- */
-//! @{
-#define LUN_0 DISABLE //!< On-Chip Virtual Memory.
-#define LUN_1 ENABLE //!< AT45DBX Data Flash.
-#define LUN_2 DISABLE //!< SD/MMC Card over SPI.
-#define LUN_3 DISABLE
-#define LUN_4 DISABLE
-#define LUN_5 DISABLE
-#define LUN_6 DISABLE
-#define LUN_7 DISABLE
-#define LUN_USB DISABLE //!< Host Mass-Storage Memory.
-//! @}
-
-/*! \name LUN 0 Definitions
- */
-//! @{
-#define VIRTUAL_MEM LUN_0
-#define LUN_ID_VIRTUAL_MEM LUN_ID_0
-#define LUN_0_INCLUDE "virtual_mem.h"
-#define Lun_0_test_unit_ready virtual_test_unit_ready
-#define Lun_0_read_capacity virtual_read_capacity
-#define Lun_0_wr_protect virtual_wr_protect
-#define Lun_0_removal virtual_removal
-#define Lun_0_usb_read_10 virtual_usb_read_10
-#define Lun_0_usb_write_10 virtual_usb_write_10
-#define Lun_0_mem_2_ram virtual_mem_2_ram
-#define Lun_0_ram_2_mem virtual_ram_2_mem
-#define LUN_0_NAME "\"On-Chip Virtual Memory\""
-//! @}
-
-/*! \name LUN 1 Definitions
- */
-//! @{
-#define AT45DBX_MEM LUN_1
-#define LUN_ID_AT45DBX_MEM LUN_ID_1
-#define LUN_1_INCLUDE "at45dbx_mem.h"
-#define Lun_1_test_unit_ready at45dbx_test_unit_ready
-#define Lun_1_read_capacity at45dbx_read_capacity
-#define Lun_1_wr_protect at45dbx_wr_protect
-#define Lun_1_removal at45dbx_removal
-#define Lun_1_usb_read_10 at45dbx_usb_read_10
-#define Lun_1_usb_write_10 at45dbx_usb_write_10
-#define Lun_1_mem_2_ram at45dbx_df_2_ram
-#define Lun_1_ram_2_mem at45dbx_ram_2_df
-#define LUN_1_NAME "\"AT45DBX Data Flash\""
-//! @}
-
-/*! \name LUN 2 Definitions
- */
-//! @{
-#define SD_MMC_SPI_MEM LUN_2
-#define LUN_ID_SD_MMC_SPI_MEM LUN_ID_2
-#define LUN_2_INCLUDE "sd_mmc_spi_mem.h"
-#define Lun_2_test_unit_ready sd_mmc_spi_test_unit_ready
-#define Lun_2_read_capacity sd_mmc_spi_read_capacity
-#define Lun_2_wr_protect sd_mmc_spi_wr_protect
-#define Lun_2_removal sd_mmc_spi_removal
-#define Lun_2_usb_read_10 sd_mmc_spi_usb_read_10
-#define Lun_2_usb_write_10 sd_mmc_spi_usb_write_10
-#define Lun_2_mem_2_ram sd_mmc_spi_mem_2_ram
-#define Lun_2_ram_2_mem sd_mmc_spi_ram_2_mem
-#define LUN_2_NAME "\"SD/MMC Card over SPI\""
-//! @}
-
-/*! \name USB LUNs Definitions
- */
-//! @{
-#define MEM_USB LUN_USB
-#define LUN_ID_MEM_USB LUN_ID_USB
-#define LUN_USB_INCLUDE "host_mem.h"
-#define Lun_usb_test_unit_ready(lun) host_test_unit_ready(lun)
-#define Lun_usb_read_capacity(lun, nb_sect) host_read_capacity(lun, nb_sect)
-#define Lun_usb_read_sector_size(lun) host_read_sector_size(lun)
-#define Lun_usb_wr_protect(lun) host_wr_protect(lun)
-#define Lun_usb_removal() host_removal()
-#define Lun_usb_mem_2_ram(addr, ram) host_read_10_ram(addr, ram)
-#define Lun_usb_ram_2_mem(addr, ram) host_write_10_ram(addr, ram)
-#define LUN_USB_NAME "\"Host Mass-Storage Memory\""
-//! @}
-
-/*! \name Actions Associated with Memory Accesses
- *
- * Write here the action to associate with each memory access.
- *
- * \warning Be careful not to waste time in order not to disturb the functions.
- */
-//! @{
-#define memory_start_read_action(nb_sectors)
-#define memory_stop_read_action()
-#define memory_start_write_action(nb_sectors)
-#define memory_stop_write_action()
-//! @}
-
-/*! \name Activation of Interface Features
- */
-//! @{
-#define ACCESS_USB DISABLED //!< MEM <-> USB interface.
-#define ACCESS_MEM_TO_RAM ENABLED //!< MEM <-> RAM interface.
-#define ACCESS_STREAM ENABLED //!< Streaming MEM <-> MEM interface. //mlf
-#define ACCESS_STREAM_RECORD DISABLED //!< Streaming MEM <-> MEM interface in record mode.
-#define ACCESS_MEM_TO_MEM DISABLED //!< MEM <-> MEM interface.
-#define ACCESS_CODEC DISABLED //!< Codec interface.
-//! @}
-
-/*! \name Specific Options for Access Control
- */
-//! @{
-#define GLOBAL_WR_PROTECT DISABLED //!< Management of a global write protection.
-//! @}
-
-
-#endif // _CONF_ACCESS_H_
diff --git a/firmwares/wifishield/wifiHD/src/CONFIG/conf_at45dbx.h b/firmwares/wifishield/wifiHD/src/CONFIG/conf_at45dbx.h
deleted file mode 100644
index 3280e4f..0000000
--- a/firmwares/wifishield/wifiHD/src/CONFIG/conf_at45dbx.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT45DBX configuration file.
- *
- * This file contains the possible external configuration of the AT45DBX.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _CONF_AT45DBX_H_
-#define _CONF_AT45DBX_H_
-
-
-#include "conf_access.h"
-
-#if AT45DBX_MEM == DISABLE
- #error conf_at45dbx.h is #included although AT45DBX_MEM is disabled
-#endif
-
-
-#include "at45dbx.h"
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-//! Size of AT45DBX data flash memories to manage.
-#define AT45DBX_MEM_SIZE AT45DBX_1MB
-
-//! Number of AT45DBX components to manage.
-#define AT45DBX_MEM_CNT 1
-
-//! First chip select used by AT45DBX components on the SPI module instance.
-//! AT45DBX_SPI_NPCS0_PIN always corresponds to this first NPCS, whatever it is.
-#define AT45DBX_SPI_FIRST_NPCS AT45DBX_SPI_NPCS
-
-//! SPI master speed in Hz.
-#define AT45DBX_SPI_MASTER_SPEED 12000000
-
-//! Number of bits in each SPI transfer.
-#define AT45DBX_SPI_BITS 8
-
-
-#endif // _CONF_AT45DBX_H_
diff --git a/firmwares/wifishield/wifiHD/src/CONFIG/conf_ebi.h b/firmwares/wifishield/wifiHD/src/CONFIG/conf_ebi.h
deleted file mode 100644
index aacdb13..0000000
--- a/firmwares/wifishield/wifiHD/src/CONFIG/conf_ebi.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief CONF_EBI EBI/SMC driver for AVR32 UC3.
- *
- * \note The values defined in this file are device-specific. See the device
- * datasheet for further information.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SMC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _CONF_EBI_H_
-#define _CONF_EBI_H_
-
-#include "compiler.h"
-#include "board.h"
-
-#if (ET024006DHU_SMC_USE_NCS == 0)
-#define SMC_USE_NCS0
-#define SMC_COMPONENT_CS0 ET024006DHU_SMC_COMPONENT_CS
-#else
-
-#if (ET024006DHU_SMC_USE_NCS == 2)
-#define SMC_USE_NCS2
-#define SMC_COMPONENT_CS2 ET024006DHU_SMC_COMPONENT_CS
-
-#else
-#error This board is not supported
-#endif
-#endif
-
-#define EBI_DATA_0 ET024006DHU_EBI_DATA_0
-#define EBI_DATA_1 ET024006DHU_EBI_DATA_1
-#define EBI_DATA_2 ET024006DHU_EBI_DATA_2
-#define EBI_DATA_3 ET024006DHU_EBI_DATA_3
-#define EBI_DATA_4 ET024006DHU_EBI_DATA_4
-#define EBI_DATA_5 ET024006DHU_EBI_DATA_5
-#define EBI_DATA_6 ET024006DHU_EBI_DATA_6
-#define EBI_DATA_7 ET024006DHU_EBI_DATA_7
-#define EBI_DATA_8 ET024006DHU_EBI_DATA_8
-#define EBI_DATA_9 ET024006DHU_EBI_DATA_9
-#define EBI_DATA_10 ET024006DHU_EBI_DATA_10
-#define EBI_DATA_11 ET024006DHU_EBI_DATA_11
-#define EBI_DATA_12 ET024006DHU_EBI_DATA_12
-#define EBI_DATA_13 ET024006DHU_EBI_DATA_13
-#define EBI_DATA_14 ET024006DHU_EBI_DATA_14
-#define EBI_DATA_15 ET024006DHU_EBI_DATA_15
-
-#if BOARD==EVK1105
-#ifdef EVK1105_REV3
-#define EBI_ADDR_19 AVR32_EBI_ADDR_19
-#define EBI_NCS_2 ET024006DHU_EBI_NCS
-#else
-#define EBI_ADDR_21 ET024006DHU_EBI_ADDR_21
-#define EBI_NCS_0 ET024006DHU_EBI_NCS
-#endif
-#elif BOARD == UC3C_EK
-#define EBI_ADDR_22 AVR32_EBI_ADDR_22
-#define EBI_NCS_0 ET024006DHU_EBI_NCS
-#elif BOARD == EVK1104
-#define EBI_ADDR_21 ET024006DHU_EBI_ADDR_21
-#define EBI_NCS_0 ET024006DHU_EBI_NCS
-#endif
-
-
-#define EBI_NWE0 ET024006DHU_EBI_NWE
-#define EBI_NRD ET024006DHU_EBI_NRD
-
-#endif // _CONF_EBI_H_
diff --git a/firmwares/wifishield/wifiHD/src/CONFIG/conf_sd_mmc_spi.h b/firmwares/wifishield/wifiHD/src/CONFIG/conf_sd_mmc_spi.h
deleted file mode 100644
index 94b55e1..0000000
--- a/firmwares/wifishield/wifiHD/src/CONFIG/conf_sd_mmc_spi.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief SD/MMC configuration file.
- *
- * This file contains the possible external configuration of the SD/MMC.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _CONF_SD_MMC_SPI_H_
-#define _CONF_SD_MMC_SPI_H_
-
-
-#include "conf_access.h"
-
-#if SD_MMC_SPI_MEM == DISABLE
- #error conf_sd_mmc_spi.h is #included although SD_MMC_SPI_MEM is disabled
-#endif
-
-
-#include "sd_mmc_spi.h"
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-//! SPI master speed in Hz.
-#define SD_MMC_SPI_MASTER_SPEED 12000000
-
-//! Number of bits in each SPI transfer.
-#define SD_MMC_SPI_BITS 8
-
-
-#endif // _CONF_SD_MMC_SPI_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/ASM/trampoline.x b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/ASM/trampoline.x
deleted file mode 100644
index c127121..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/ASM/trampoline.x
+++ /dev/null
@@ -1,74 +0,0 @@
-/* This file is part of the ATMEL AVR32-SoftwareFramework-AT32UC3A-1.4.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AVR32 UC3 ISP trampoline.
- *
- * In order to be able to program a project with both BatchISP and JTAGICE mkII
- * without having to take the general-purpose fuses into consideration, add this
- * file to the project and change the program entry point to _trampoline.
- *
- * The pre-programmed ISP will be erased if JTAGICE mkII is used.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32UC devices can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (C) 2006-2008, Atmel Corporation All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of ATMEL may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include "conf_isp.h"
-
-
-//! @{
-//! \verbatim
-
-
- // This must be linked @ 0x80000000 if it is to be run upon reset.
- .section .reset, "ax", @progbits
-
-
- .global _trampoline
- .type _trampoline, @function
-_trampoline:
- // Jump to program start.
- rjmp program_start
-
- .org PROGRAM_START_OFFSET
-program_start:
- // Jump to the C runtime startup routine.
- lda.w pc, _stext
-
-
-//! \endverbatim
-//! @}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/arduino.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/arduino.h
deleted file mode 100644
index e687723..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/arduino.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT32UC3A EVK1100 board header file.
- *
- * This file contains definitions and services related to the features of the
- * EVK1100 board rev. B and C.
- *
- * To use this board, define BOARD=EVK1100.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 AT32UC3A devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _ARDUINO_H_
-#define _ARDUINO_H_
-
-#include "compiler.h"
-
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-# include "led.h"
-#endif // __AVR32_ABI_COMPILER__
-
-
-/*! \name Oscillator Definitions
- */
-//! @{
-
-// RCOsc has no custom calibration by default. Set the following definition to
-// the appropriate value if a custom RCOsc calibration has been applied to your
-// part.
-//#define FRCOSC AVR32_PM_RCOSC_FREQUENCY //!< RCOsc frequency: Hz.
-
-#define FOSC32 32768 //!< Osc32 frequency: Hz.
-#define OSC32_STARTUP AVR32_PM_OSCCTRL32_STARTUP_8192_RCOSC //!< Osc32 startup time: RCOsc periods.
-
-#define FOSC0 12000000 //!< Osc0 frequency: Hz.
-#define OSC0_STARTUP AVR32_PM_OSCCTRL0_STARTUP_2048_RCOSC //!< Osc0 startup time: RCOsc periods.
-
-// Osc1 crystal is not mounted by default. Set the following definitions to the
-// appropriate values if a custom Osc1 crystal is mounted on your board.
-//#define FOSC1 12000000 //!< Osc1 frequency: Hz.
-//#define OSC1_STARTUP AVR32_PM_OSCCTRL1_STARTUP_2048_RCOSC //!< Osc1 startup time: RCOsc periods.
-
-//! @}
-
-
-//! Number of LEDs.
-#define LED_COUNT 0
-
-/*! \name GPIO Connections of LEDs
- */
-//! @{
-#define LED0_GPIO AVR32_PIN_PB19
-#define LED1_GPIO AVR32_PIN_PB20
-#define LED2_GPIO AVR32_PIN_PB21
-#define DEB_PIN_GPIO AVR32_PIN_PA20
-#define DEB2_PIN_GPIO AVR32_PIN_PB00
-//! @}
-
-/*! \name PWM Channels of LEDs
- */
-//! @{
-#define LED0_PWM 0
-#define LED1_PWM 1
-#define LED2_PWM 2
-//! @}
-
-/*! \name PWM Functions of LEDs
- */
-//! @{
-#define LED0_PWM_FUNCTION AVR32_PWM_0_FUNCTION
-#define LED1_PWM_FUNCTION AVR32_PWM_1_FUNCTION
-#define LED2_PWM_FUNCTION AVR32_PWM_2_FUNCTION
-//! @}
-
-/*! \name Color Identifiers of LEDs to Use with LED Functions
- */
-//! @{
-#define LED_MONO0_GREEN LED0
-#define LED_MONO1_RED LED1
-#define LED_MONO2_BLU LED2
-//! @}
-
-#if 0
-/*! \name SPI Connections of the DIP204 LCD
- */
-//! @{
-#define DIP204_SPI (&AVR32_SPI1)
-#define DIP204_SPI_NPCS 2
-#define DIP204_SPI_SCK_PIN AVR32_SPI1_SCK_0_0_PIN
-#define DIP204_SPI_SCK_FUNCTION AVR32_SPI1_SCK_0_0_FUNCTION
-#define DIP204_SPI_MISO_PIN AVR32_SPI1_MISO_0_0_PIN
-#define DIP204_SPI_MISO_FUNCTION AVR32_SPI1_MISO_0_0_FUNCTION
-#define DIP204_SPI_MOSI_PIN AVR32_SPI1_MOSI_0_0_PIN
-#define DIP204_SPI_MOSI_FUNCTION AVR32_SPI1_MOSI_0_0_FUNCTION
-#define DIP204_SPI_NPCS_PIN AVR32_SPI1_NPCS_2_0_PIN
-#define DIP204_SPI_NPCS_FUNCTION AVR32_SPI1_NPCS_2_0_FUNCTION
-//! @}
-
-/*! \name GPIO and PWM Connections of the DIP204 LCD Backlight
- */
-//! @{
-#define DIP204_BACKLIGHT_PIN AVR32_PIN_PB18
-#define DIP204_PWM_CHANNEL 6
-#define DIP204_PWM_PIN AVR32_PWM_6_PIN
-#define DIP204_PWM_FUNCTION AVR32_PWM_6_FUNCTION
-//! @}
-#endif
-
-/*! \name SPI Connections of the AT45DBX Data Flash Memory
- */
-//! @{
-#define AT45DBX_SPI (&AVR32_SPI1)
-#define AT45DBX_SPI_NPCS 2
-#define AT45DBX_SPI_SCK_PIN AVR32_SPI1_SCK_0_0_PIN
-#define AT45DBX_SPI_SCK_FUNCTION AVR32_SPI1_SCK_0_0_FUNCTION
-#define AT45DBX_SPI_MISO_PIN AVR32_SPI1_MISO_0_0_PIN
-#define AT45DBX_SPI_MISO_FUNCTION AVR32_SPI1_MISO_0_0_FUNCTION
-#define AT45DBX_SPI_MOSI_PIN AVR32_SPI1_MOSI_0_0_PIN
-#define AT45DBX_SPI_MOSI_FUNCTION AVR32_SPI1_MOSI_0_0_FUNCTION
-#define AT45DBX_SPI_NPCS2_PIN AVR32_SPI1_NPCS_2_0_PIN
-#define AT45DBX_SPI_NPCS2_FUNCTION AVR32_SPI1_NPCS_2_0_FUNCTION
-#define AT45DBX_CHIP_RESET AVR32_PIN_PA02
-//! @}
-
-
-/*! \name GPIO and SPI Connections of the SD/MMC Connector
- */
-//! @{
-//#define SD_MMC_CARD_DETECT_PIN AVR32_PIN_PA02
-//#define SD_MMC_WRITE_PROTECT_PIN AVR32_PIN_PA07
-#define SD_MMC_SPI (&AVR32_SPI1)
-#define SD_MMC_SPI_NPCS 1
-#define SD_MMC_SPI_SCK_PIN AVR32_SPI1_SCK_0_0_PIN
-#define SD_MMC_SPI_SCK_FUNCTION AVR32_SPI1_SCK_0_0_FUNCTION
-#define SD_MMC_SPI_MISO_PIN AVR32_SPI1_MISO_0_0_PIN
-#define SD_MMC_SPI_MISO_FUNCTION AVR32_SPI1_MISO_0_0_FUNCTION
-#define SD_MMC_SPI_MOSI_PIN AVR32_SPI1_MOSI_0_0_PIN
-#define SD_MMC_SPI_MOSI_FUNCTION AVR32_SPI1_MOSI_0_0_FUNCTION
-#define SD_MMC_SPI_NPCS_PIN AVR32_SPI1_NPCS_1_0_PIN
-#define SD_MMC_SPI_NPCS_FUNCTION AVR32_SPI1_NPCS_1_0_FUNCTION
-//! @}
-
-/* Timer Counter to generate clock for WiFi chip*/
-# define WIFI_TC (&AVR32_TC)
-# define WIFI_TC_CHANNEL_ID 0
-# define WIFI_TC_CHANNEL_PIN AVR32_TC_A0_0_0_PIN
-# define WIFI_TC_CHANNEL_FUNCTION AVR32_TC_A0_0_0_FUNCTION
-// Note that TC_A0_0_0 pin is pin 6 (PB23) on AT32UC3A1512 QFP100.
-
-/* Pin related to WiFi chip communication */
-#ifndef USE_POLL
- #define USE_POLL
-#endif
- #define SPI_CS 0
- #define AVR32_SPI AVR32_SPI1
- #define GPIO_IRQ_PIN AVR32_PIN_PA03
- #define GPIO_IRQ AVR32_GPIO_IRQ_7
- #define GPIO_W_RESET_PIN AVR32_PIN_PA07
- #define GPIO_W_SHUTDOWN_PIN AVR32_PIN_PA09
-
-/* Pin related to shield communication */
- #define ARDUINO_HANDSHAKE_PIN AVR32_PIN_PA25
- #define ARDUINO_EXTINT_PIN AVR32_PIN_PA04 //not used
-
- #define AVR32_PDCA_PID_TX AVR32_PDCA_PID_SPI1_TX
- #define AVR32_PDCA_PID_RX AVR32_PDCA_PID_SPI1_RX
-
-
-#if 0
-/*! \name TWI Connections of the Spare TWI Connector
- */
-//! @{
-#define SPARE_TWI (&AVR32_TWI)
-#define SPARE_TWI_SCL_PIN AVR32_TWI_SCL_0_0_PIN
-#define SPARE_TWI_SCL_FUNCTION AVR32_TWI_SCL_0_0_FUNCTION
-#define SPARE_TWI_SDA_PIN AVR32_TWI_SDA_0_0_PIN
-#define SPARE_TWI_SDA_FUNCTION AVR32_TWI_SDA_0_0_FUNCTION
-//! @}
-
-
-/*! \name SPI Connections of the Spare SPI Connector
- */
-//! @{
-#define SPARE_SPI (&AVR32_SPI0)
-#define SPARE_SPI_NPCS 0
-#define SPARE_SPI_SCK_PIN AVR32_SPI0_SCK_0_0_PIN
-#define SPARE_SPI_SCK_FUNCTION AVR32_SPI0_SCK_0_0_FUNCTION
-#define SPARE_SPI_MISO_PIN AVR32_SPI0_MISO_0_0_PIN
-#define SPARE_SPI_MISO_FUNCTION AVR32_SPI0_MISO_0_0_FUNCTION
-#define SPARE_SPI_MOSI_PIN AVR32_SPI0_MOSI_0_0_PIN
-#define SPARE_SPI_MOSI_FUNCTION AVR32_SPI0_MOSI_0_0_FUNCTION
-#define SPARE_SPI_NPCS_PIN AVR32_SPI0_NPCS_0_0_PIN
-#define SPARE_SPI_NPCS_FUNCTION AVR32_SPI0_NPCS_0_0_FUNCTION
-//! @}
-#endif
-
-#endif // _ARDUINO_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c
deleted file mode 100644
index d7cd439..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT32UC3A EVK1100 board LEDs support package.
- *
- * This file contains definitions and services related to the LED features of
- * the EVK1100 board.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 AT32UC3A devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-#include "preprocessor.h"
-#include "compiler.h"
-#include "arduino.h"
-#include "led.h"
-
-
-//! Structure describing LED hardware connections.
-typedef const struct
-{
- struct
- {
- U32 PORT; //!< LED GPIO port.
- U32 PIN_MASK; //!< Bit-mask of LED pin in GPIO port.
- } GPIO; //!< LED GPIO descriptor.
- struct
- {
- S32 CHANNEL; //!< LED PWM channel (< 0 if N/A).
- S32 FUNCTION; //!< LED pin PWM function (< 0 if N/A).
- } PWM; //!< LED PWM descriptor.
-} tLED_DESCRIPTOR;
-
-
-//! Hardware descriptors of all LEDs.
-static tLED_DESCRIPTOR LED_DESCRIPTOR[LED_COUNT] =
-{
-#define INSERT_LED_DESCRIPTOR(LED_NO, unused) \
- { \
- {LED##LED_NO##_GPIO / 32, 1 << (LED##LED_NO##_GPIO % 32)},\
- {LED##LED_NO##_PWM, LED##LED_NO##_PWM_FUNCTION } \
- },
- MREPEAT(LED_COUNT, INSERT_LED_DESCRIPTOR, ~)
-#undef INSERT_LED_DESCRIPTOR
-};
-
-
-//! Saved state of all LEDs.
-static volatile U32 LED_State = (1 << LED_COUNT) - 1;
-
-
-U32 LED_Read_Display(void)
-{
- return LED_State;
-}
-
-
-void LED_Display(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor;
- volatile avr32_gpio_port_t *led_gpio_port;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- LED_State = leds;
-
- // For all LEDs...
- for (led_descriptor = &LED_DESCRIPTOR[0];
- led_descriptor < LED_DESCRIPTOR + LED_COUNT;
- led_descriptor++)
- {
- // Set the LED to the requested state.
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- if (leds & 1)
- {
- led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK;
- }
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= 1;
- }
-}
-
-
-U32 LED_Read_Display_Mask(U32 mask)
-{
- return Rd_bits(LED_State, mask);
-}
-
-
-void LED_Display_Mask(U32 mask, U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- mask &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Wr_bits(LED_State, mask, leds);
-
- // While there are specified LEDs left to manage...
- while (mask)
- {
- // Select the next specified LED and set it to the requested state.
- led_shift = 1 + ctz(mask);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- leds >>= led_shift - 1;
- if (leds & 1)
- {
- led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK;
- }
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= 1;
- mask >>= led_shift;
- }
-}
-
-
-Bool LED_Test(U32 leds)
-{
- return Tst_bits(LED_State, leds);
-}
-
-
-void LED_Off(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Clr_bits(LED_State, leds);
-
- // While there are specified LEDs left to manage...
- while (leds)
- {
- // Select the next specified LED and turn it off.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= led_shift;
- }
-}
-
-
-void LED_On(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Set_bits(LED_State, leds);
-
- // While there are specified LEDs left to manage...
- while (leds)
- {
- // Select the next specified LED and turn it on.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= led_shift;
- }
-}
-
-
-void LED_Toggle(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Tgl_bits(LED_State, leds);
-
- // While there are specified LEDs left to manage...
- while (leds)
- {
- // Select the next specified LED and toggle it.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- led_gpio_port->ovrt = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= led_shift;
- }
-}
-
-
-U32 LED_Read_Display_Field(U32 field)
-{
- return Rd_bitfield(LED_State, field);
-}
-
-
-void LED_Display_Field(U32 field, U32 leds)
-{
- // Move the bit-field to the appropriate position for the bit-mask.
- LED_Display_Mask(field, leds << ctz(field));
-}
-
-
-U8 LED_Get_Intensity(U32 led)
-{
- tLED_DESCRIPTOR *led_descriptor;
-
- // Check that the argument value is valid.
- led = ctz(led);
- led_descriptor = &LED_DESCRIPTOR[led];
- if (led >= LED_COUNT || led_descriptor->PWM.CHANNEL < 0) return 0;
-
- // Return the duty cycle value if the LED PWM channel is enabled, else 0.
- return (AVR32_PWM.sr & (1 << led_descriptor->PWM.CHANNEL)) ?
- AVR32_PWM.channel[led_descriptor->PWM.CHANNEL].cdty : 0;
-}
-
-
-void LED_Set_Intensity(U32 leds, U8 intensity)
-{
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_pwm_channel_t *led_pwm_channel;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // For each specified LED...
- for (leds &= (1 << LED_COUNT) - 1; leds; leds >>= led_shift)
- {
- // Select the next specified LED and check that it has a PWM channel.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- if (led_descriptor->PWM.CHANNEL < 0) continue;
-
- // Initialize or update the LED PWM channel.
- led_pwm_channel = &AVR32_PWM.channel[led_descriptor->PWM.CHANNEL];
- if (!(AVR32_PWM.sr & (1 << led_descriptor->PWM.CHANNEL)))
- {
- led_pwm_channel->cmr = (AVR32_PWM_CPRE_MCK << AVR32_PWM_CPRE_OFFSET) &
- ~(AVR32_PWM_CALG_MASK |
- AVR32_PWM_CPOL_MASK |
- AVR32_PWM_CPD_MASK);
- led_pwm_channel->cprd = 0x000000FF;
- led_pwm_channel->cdty = intensity;
- AVR32_PWM.ena = 1 << led_descriptor->PWM.CHANNEL;
- }
- else
- {
- AVR32_PWM.isr;
- while (!(AVR32_PWM.isr & (1 << led_descriptor->PWM.CHANNEL)));
- led_pwm_channel->cupd = intensity;
- }
-
- // Switch the LED pin to its PWM function.
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- if (led_descriptor->PWM.FUNCTION & 0x1)
- {
- led_gpio_port->pmr0s = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->pmr0c = led_descriptor->GPIO.PIN_MASK;
- }
- if (led_descriptor->PWM.FUNCTION & 0x2)
- {
- led_gpio_port->pmr1s = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->pmr1c = led_descriptor->GPIO.PIN_MASK;
- }
- led_gpio_port->gperc = led_descriptor->GPIO.PIN_MASK;
- }
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.h
deleted file mode 100644
index a577124..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT32UC3A EVK1100 board LEDs support package.
- *
- * This file contains definitions and services related to the LED features of
- * the EVK1100 board.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 AT32UC3A devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _LED_H_
-#define _LED_H_
-
-#include "compiler.h"
-
-
-/*! \name Identifiers of LEDs to Use with LED Functions
- */
-//! @{
-#define LED0 0x01
-#define LED1 0x02
-#define LED2 0x04
-#define LED3 0x08
-#define LED4 0x10
-#define LED5 0x20
-#define LED6 0x40
-#define LED7 0x80
-//! @}
-
-
-/*! \brief Gets the last state of all LEDs set through the LED API.
- *
- * \return State of all LEDs (1 bit per LED).
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U32 LED_Read_Display(void);
-
-/*! \brief Sets the state of all LEDs.
- *
- * \param leds New state of all LEDs (1 bit per LED).
- *
- * \note The pins of all LEDs are set to GPIO output mode.
- */
-extern void LED_Display(U32 leds);
-
-/*! \brief Gets the last state of the specified LEDs set through the LED API.
- *
- * \param mask LEDs of which to get the state (1 bit per LED).
- *
- * \return State of the specified LEDs (1 bit per LED).
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U32 LED_Read_Display_Mask(U32 mask);
-
-/*! \brief Sets the state of the specified LEDs.
- *
- * \param mask LEDs of which to set the state (1 bit per LED).
- *
- * \param leds New state of the specified LEDs (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Display_Mask(U32 mask, U32 leds);
-
-/*! \brief Tests the last state of the specified LEDs set through the LED API.
- *
- * \param leds LEDs of which to test the state (1 bit per LED).
- *
- * \return \c TRUE if at least one of the specified LEDs has a state on, else
- * \c FALSE.
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern Bool LED_Test(U32 leds);
-
-/*! \brief Turns off the specified LEDs.
- *
- * \param leds LEDs to turn off (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Off(U32 leds);
-
-/*! \brief Turns on the specified LEDs.
- *
- * \param leds LEDs to turn on (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_On(U32 leds);
-
-/*! \brief Toggles the specified LEDs.
- *
- * \param leds LEDs to toggle (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Toggle(U32 leds);
-
-/*! \brief Gets as a bit-field the last state of the specified LEDs set through
- * the LED API.
- *
- * \param field LEDs of which to get the state (1 bit per LED).
- *
- * \return State of the specified LEDs (1 bit per LED, beginning with the first
- * specified LED).
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U32 LED_Read_Display_Field(U32 field);
-
-/*! \brief Sets as a bit-field the state of the specified LEDs.
- *
- * \param field LEDs of which to set the state (1 bit per LED).
- * \param leds New state of the specified LEDs (1 bit per LED, beginning with
- * the first specified LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Display_Field(U32 field, U32 leds);
-
-/*! \brief Gets the intensity of the specified LED.
- *
- * \param led LED of which to get the intensity (1 bit per LED; only the least
- * significant set bit is used).
- *
- * \return Intensity of the specified LED (0x00 to 0xFF).
- *
- * \warning The PWM channel of the specified LED is supposed to be used only by
- * this module.
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U8 LED_Get_Intensity(U32 led);
-
-/*! \brief Sets the intensity of the specified LEDs.
- *
- * \param leds LEDs of which to set the intensity (1 bit per LED).
- * \param intensity New intensity of the specified LEDs (0x00 to 0xFF).
- *
- * \warning The PWM channels of the specified LEDs are supposed to be used only
- * by this module.
- *
- * \note The pins of the specified LEDs are set to PWM output mode.
- */
-extern void LED_Set_Intensity(U32 leds, U8 intensity);
-
-
-#endif // _LED_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/evk1105.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/evk1105.h
deleted file mode 100644
index edda44c..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/evk1105.h
+++ /dev/null
@@ -1,433 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT32UC3A EVK1105 board header file.
- *
- * This file contains definitions and services related to the features of the
- * EVK1105 board rev. B.
- *
- * To use this board, define BOARD=EVK1105.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 AT32UC3A devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _EVK1105_H_
-#define _EVK1105_H_
-
-#ifdef EVK1105_REV3
-# include "evk1105_rev3.h"
-#else
-
-#include "compiler.h"
-
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-# include "led.h"
-#endif // __AVR32_ABI_COMPILER__
-
-
-/*! \name Oscillator Definitions
- */
-//! @{
-
-// RCOsc has no custom calibration by default. Set the following definition to
-// the appropriate value if a custom RCOsc calibration has been applied to your
-// part.
-//#define FRCOSC AVR32_PM_RCOSC_FREQUENCY //!< RCOsc frequency: Hz.
-
-#define FOSC32 32768 //!< Osc32 frequency: Hz.
-#define OSC32_STARTUP AVR32_PM_OSCCTRL32_STARTUP_8192_RCOSC //!< Osc32 startup time: RCOsc periods.
-
-#define FOSC0 12000000 //!< Osc0 frequency: Hz.
-#define OSC0_STARTUP AVR32_PM_OSCCTRL0_STARTUP_2048_RCOSC //!< Osc0 startup time: RCOsc periods.
-
-#define FOSC1 11289600 //!< Osc1 frequency: Hz
-#define OSC1_STARTUP AVR32_PM_OSCCTRL1_STARTUP_2048_RCOSC //!< Osc1 startup time: RCOsc periods.
-
-
-//! @}
-
-
-/*! \name SDRAM Definitions
- */
-//! @{
-
-//! Part header file of used SDRAM(s).
-#define SDRAM_PART_HDR "MT48LC16M16A2TG7E/mt48lc16m16a2tg7e.h"
-
-//! Data bus width to use the SDRAM(s) with (16 or 32 bits; always 16 bits on
-//! UC3).
-#define SDRAM_DBW 16
-//! @}
-
-
-/*! \name USB Definitions
- */
-//! @{
-//! Multiplexed pin used for USB_ID: AVR32_USBB_USB_ID_x_x.
-//! To be selected according to the AVR32_USBB_USB_ID_x_x_PIN and
-//! AVR32_USBB_USB_ID_x_x_FUNCTION definitions from <avr32/uc3axxxx.h>.
-#define AVR32_USBB_USB_ID_0_2_PIN 21
-#define AVR32_USBB_USB_ID_0_2_FUNCTION 2
-#define USB_ID AVR32_USBB_USB_ID_0_2
-
-//! Multiplexed pin used for USB_VBOF: AVR32_USBB_USB_VBOF_x_x.
-//! To be selected according to the AVR32_USBB_USB_VBOF_x_x_PIN and
-//! AVR32_USBB_USB_VBOF_x_x_FUNCTION definitions from <avr32/uc3axxxx.h>.
-# define USB_VBOF AVR32_USBB_USB_VBOF_0_1
-
-
-//! Active level of the USB_VBOF output pin.
-# define USB_VBOF_ACTIVE_LEVEL LOW
-
-//! USB overcurrent detection pin.
-# define USB_OVERCURRENT_DETECT_PIN AVR32_PIN_PX15
-
-//! @}
-
-
-//! GPIO connection of the MAC PHY PWR_DOWN/INT signal.
-# define MACB_INTERRUPT_PIN AVR32_PIN_PA26
-
-
-
-//! Number of LEDs.
-#define LED_COUNT 4
-
-/*! \name GPIO Connections of LEDs
- */
-//! @{
-# define LED0_GPIO AVR32_PIN_PB27
-# define LED1_GPIO AVR32_PIN_PB28
-# define LED2_GPIO AVR32_PIN_PA05
-# define LED3_GPIO AVR32_PIN_PA06
-//! @}
-
-/*! \name Color Identifiers of LEDs to Use with LED Functions
- */
-//! @{
-#define LED_MONO0_GREEN LED0
-#define LED_MONO1_GREEN LED1
-#define LED_MONO2_GREEN LED2
-#define LED_MONO3_GREEN LED3
-//! @}
-
-/*! \name PWM Channels of LEDs
- */
-//! @{
-#define LED0_PWM 4
-#define LED1_PWM 5
-#define LED2_PWM (-1)
-#define LED3_PWM (-1)
-//! @}
-
-/*! \name PWM Functions of LEDs
- */
-//! @{
-/* TODO: Implement PWM functionality */
-#define LED0_PWM_FUNCTION (-1)//AVR32_PWM_0_FUNCTION
-#define LED1_PWM_FUNCTION (-1)//AVR32_PWM_1_FUNCTION
-#define LED2_PWM_FUNCTION (-1)
-#define LED3_PWM_FUNCTION (-1)
-//! @}
-
-//! External interrupt connection of touch sensor.
-#define QT1081_EIC_EXTINT_PIN AVR32_EIC_EXTINT_1_PIN
-#define QT1081_EIC_EXTINT_FUNCTION AVR32_EIC_EXTINT_1_FUNCTION
-#define QT1081_EIC_EXTINT_IRQ AVR32_EIC_IRQ_1
-#define QT1081_EIC_EXTINT_INT AVR32_EIC_INT1
-/*! \name Touch sensor low power mode select
- */
-#define QT1081_LP_MODE AVR32_PIN_PB29
-
-/*! \name GPIO Connections of touch buttons
- */
-//! @{
-#define QT1081_TOUCH_SENSOR_0 AVR32_PIN_PB22
-#define QT1081_TOUCH_SENSOR_0_PRESSED 1
-#define QT1081_TOUCH_SENSOR_1 AVR32_PIN_PB23
-#define QT1081_TOUCH_SENSOR_1_PRESSED 1
-#define QT1081_TOUCH_SENSOR_2 AVR32_PIN_PB24
-#define QT1081_TOUCH_SENSOR_2_PRESSED 1
-#define QT1081_TOUCH_SENSOR_3 AVR32_PIN_PB25
-#define QT1081_TOUCH_SENSOR_3_PRESSED 1
-#define QT1081_TOUCH_SENSOR_4 AVR32_PIN_PB26
-#define QT1081_TOUCH_SENSOR_4_PRESSED 1
-
-#define QT1081_TOUCH_SENSOR_ENTER QT1081_TOUCH_SENSOR_4
-#define QT1081_TOUCH_SENSOR_ENTER_PRESSED QT1081_TOUCH_SENSOR_4_PRESSED
-#define QT1081_TOUCH_SENSOR_LEFT QT1081_TOUCH_SENSOR_3
-#define QT1081_TOUCH_SENSOR_LEFT_PRESSED QT1081_TOUCH_SENSOR_3_PRESSED
-#define QT1081_TOUCH_SENSOR_RIGHT QT1081_TOUCH_SENSOR_2
-#define QT1081_TOUCH_SENSOR_RIGHT_PRESSED QT1081_TOUCH_SENSOR_2_PRESSED
-#define QT1081_TOUCH_SENSOR_UP QT1081_TOUCH_SENSOR_0
-#define QT1081_TOUCH_SENSOR_UP_PRESSED QT1081_TOUCH_SENSOR_0_PRESSED
-#define QT1081_TOUCH_SENSOR_DOWN QT1081_TOUCH_SENSOR_1
-#define QT1081_TOUCH_SENSOR_DOWN_PRESSED QT1081_TOUCH_SENSOR_1_PRESSED
-//! @}
-
-/*! \name SPI Connections of the AT45DBX Data Flash Memory
- */
-//! @{
-#define AT45DBX_SPI (&AVR32_SPI0)
-#define AT45DBX_SPI_NPCS 0
-#define AT45DBX_SPI_SCK_PIN AVR32_SPI0_SCK_0_0_PIN
-#define AT45DBX_SPI_SCK_FUNCTION AVR32_SPI0_SCK_0_0_FUNCTION
-#define AT45DBX_SPI_MISO_PIN AVR32_SPI0_MISO_0_0_PIN
-#define AT45DBX_SPI_MISO_FUNCTION AVR32_SPI0_MISO_0_0_FUNCTION
-#define AT45DBX_SPI_MOSI_PIN AVR32_SPI0_MOSI_0_0_PIN
-#define AT45DBX_SPI_MOSI_FUNCTION AVR32_SPI0_MOSI_0_0_FUNCTION
-#define AT45DBX_SPI_NPCS0_PIN AVR32_SPI0_NPCS_0_0_PIN
-#define AT45DBX_SPI_NPCS0_FUNCTION AVR32_SPI0_NPCS_0_0_FUNCTION
-//! @}
-
-/*! \name GPIO and SPI Connections of the SD/MMC Connector
- */
-//! @{
-#define SD_MMC_CARD_DETECT_PIN AVR32_PIN_PA02
-#define SD_MMC_WRITE_PROTECT_PIN AVR32_PIN_PA18
-#define SD_MMC_SPI (&AVR32_SPI0)
-#define SD_MMC_SPI_NPCS 1
-#define SD_MMC_SPI_SCK_PIN AVR32_SPI0_SCK_0_0_PIN
-#define SD_MMC_SPI_SCK_FUNCTION AVR32_SPI0_SCK_0_0_FUNCTION
-#define SD_MMC_SPI_MISO_PIN AVR32_SPI0_MISO_0_0_PIN
-#define SD_MMC_SPI_MISO_FUNCTION AVR32_SPI0_MISO_0_0_FUNCTION
-#define SD_MMC_SPI_MOSI_PIN AVR32_SPI0_MOSI_0_0_PIN
-#define SD_MMC_SPI_MOSI_FUNCTION AVR32_SPI0_MOSI_0_0_FUNCTION
-#define SD_MMC_SPI_NPCS_PIN AVR32_SPI0_NPCS_1_0_PIN
-#define SD_MMC_SPI_NPCS_FUNCTION AVR32_SPI0_NPCS_1_0_FUNCTION
-//! @}
-
-
-/*! \name TWI expansion
- */
-//! @{
-#define EXPANSION_TWI (&AVR32_TWI)
-#define EXPANSION_RESET AVR32_PIN_PX16
-#define EXPANSION_TWI_SCL_PIN AVR32_TWI_SCL_0_0_PIN
-#define EXPANSION_TWI_SCL_FUNCTION AVR32_TWI_SCL_0_0_FUNCTION
-#define EXPANSION_TWI_SDA_PIN AVR32_TWI_SDA_0_0_PIN
-#define EXPANSION_TWI_SDA_FUNCTION AVR32_TWI_SDA_0_0_FUNCTION
-//! @}
-
-/*! \name Wireless expansion
- */
-
-#define WEXPANSION_EXTINT_PIN AVR32_EIC_EXTINT_8_PIN
-#define WEXPANSION_EXTINT_FUNCTION AVR32_EIC_EXTINT_8_FUNCTION
-#define WEXPANSION_GPIO1 AVR32_PIN_PB30
-#define WEXPANSION_GPIO2 AVR32_PIN_PB31
-
-#define WEXPANSION_SPI (&AVR32_SPI0)
-#define WEXPANSION_SPI_NPCS 2
-#define WEXPANSION_SPI_SCK_PIN AVR32_SPI0_SCK_0_0_PIN
-#define WEXPANSION_SPI_SCK_FUNCTION AVR32_SPI0_SCK_0_0_FUNCTION
-#define WEXPANSION_SPI_MISO_PIN AVR32_SPI0_MISO_0_0_PIN
-#define WEXPANSION_SPI_MISO_FUNCTION AVR32_SPI0_MISO_0_0_FUNCTION
-#define WEXPANSION_SPI_MOSI_PIN AVR32_SPI0_MOSI_0_0_PIN
-#define WEXPANSION_SPI_MOSI_FUNCTION AVR32_SPI0_MOSI_0_0_FUNCTION
-#define WEXPANSION_SPI_NPCS_PIN AVR32_SPI0_NPCS_2_0_PIN
-#define WEXPANSION_SPI_NPCS_FUNCTION AVR32_SPI0_NPCS_2_0_FUNCTION
-
-//! @}
-
-/*! \name ET024006DHU TFT display
- */
-//! @{
-
-#define ET024006DHU_TE_PIN AVR32_PIN_PX19
-#define ET024006DHU_RESET_PIN AVR32_PIN_PX22
-#define ET024006DHU_BL_PIN AVR32_PWM_6_PIN
-#define ET024006DHU_BL_FUNCTION AVR32_PWM_6_FUNCTION
-#define ET024006DHU_DNC_PIN AVR32_EBI_ADDR_21_1_PIN
-#define ET024006DHU_DNC_FUNCTION AVR32_EBI_ADDR_21_1_FUNCTION
-#define ET024006DHU_EBI_NCS_PIN AVR32_EBI_NCS_0_1_PIN
-#define ET024006DHU_EBI_NCS_FUNCTION AVR32_EBI_NCS_0_1_FUNCTION
-
-//! @}
-/*! \name Optional SPI connection to the TFT
- */
-//! @{
-
-#define ET024006DHU_SPI (&AVR32_SPI0)
-#define ET024006DHU_SPI_NPCS 3
-#define ET024006DHU_SPI_SCK_PIN AVR32_SPI0_SCK_0_0_PIN
-#define ET024006DHU_SPI_SCK_FUNCTION AVR32_SPI0_SCK_0_0_FUNCTION
-#define ET024006DHU_SPI_MISO_PIN AVR32_SPI0_MISO_0_0_PIN
-#define ET024006DHU_SPI_MISO_FUNCTION AVR32_SPI0_MISO_0_0_FUNCTION
-#define ET024006DHU_SPI_MOSI_PIN AVR32_SPI0_MOSI_0_0_PIN
-#define ET024006DHU_SPI_MOSI_FUNCTION AVR32_SPI0_MOSI_0_0_FUNCTION
-#define ET024006DHU_SPI_NPCS_PIN AVR32_SPI1_NPCS_3_0_PIN
-#define ET024006DHU_SPI_NPCS_FUNCTION AVR32_SPI1_NPCS_3_0_FUNCTION
-
-//! @}
-
-
-/*! \name Audio amplifier connection to the DAC
- */
-//! @{
-
-#define TPA6130_ABDAC (&AVR32_ABDAC)
-
-#define TPA6130_DATA0_PIN AVR32_ABDAC_DATA_0_1_PIN
-#define TPA6130_DATA0_FUNCTION AVR32_ABDAC_DATA_0_1_FUNCTION
-#define TPA6130_DATAN0_PIN AVR32_ABDAC_DATAN_0_1_PIN
-#define TPA6130_DATAN0_FUNCTION AVR32_ABDAC_DATAN_0_1_FUNCTION
-#define TPA6130_DATA1_PIN AVR32_ABDAC_DATA_1_1_PIN
-#define TPA6130_DATA1_FUNCTION AVR32_ABDAC_DATA_1_1_FUNCTION
-#define TPA6130_DATAN1_PIN AVR32_ABDAC_DATAN_1_1_PIN
-#define TPA6130_DATAN1_FUNCTION AVR32_ABDAC_DATAN_1_1_FUNCTION
-
-#define TPA6130_ABDAC_PDCA_PID AVR32_PDCA_PID_ABDAC_TX
-#define TPA6130_ABDAC_PDCA_CHANNEL 0
-#define TPA6130_ABDAC_PDCA_IRQ AVR32_PDCA_IRQ_0
-#define TPA6130_ABDAC_PDCA_INT_LEVEL AVR32_INTC_INT3
-
-#define TPA6130_TWI (&AVR32_TWI)
-#define TPA6130_TWI_SCL_PIN AVR32_TWI_SCL_0_0_PIN
-#define TPA6130_TWI_SCL_FUNCTION AVR32_TWI_SCL_0_0_FUNCTION
-#define TPA6130_TWI_SDA_PIN AVR32_TWI_SDA_0_0_PIN
-#define TPA6130_TWI_SDA_FUNCTION AVR32_TWI_SDA_0_0_FUNCTION
-
-//! }@
-/*! \name TI TLV320AIC23B sound chip
- */
-//! @{
-#define TLV320_SSC (&AVR32_SSC)
-#define TLV320_SSC_TX_CLOCK_PIN AVR32_SSC_TX_CLOCK_0_PIN
-#define TLV320_SSC_TX_CLOCK_FUNCTION AVR32_SSC_TX_CLOCK_0_FUNCTION
-#define TLV320_SSC_TX_DATA_PIN AVR32_SSC_TX_DATA_0_PIN
-#define TLV320_SSC_TX_DATA_FUNCTION AVR32_SSC_TX_DATA_0_FUNCTION
-#define TLV320_SSC_TX_FRAME_SYNC_PIN AVR32_SSC_TX_FRAME_SYNC_0_PIN
-#define TLV320_SSC_TX_FRAME_SYNC_FUNCTION AVR32_SSC_TX_FRAME_SYNC_0_FUNCTION
-
-#define TLV320_TWI (&AVR32_TWI)
-#define TLV320_TWI_SCL_PIN AVR32_TWI_SCL_0_0_PIN
-#define TLV320_TWI_SCL_FUNCTION AVR32_TWI_SCL_0_0_FUNCTION
-#define TLV320_TWI_SDA_PIN AVR32_TWI_SDA_0_0_PIN
-#define TLV320_TWI_SDA_FUNCTION AVR32_TWI_SDA_0_0_FUNCTION
-
-#define TLV320_PM_GCLK_PIN AVR32_PM_GCLK_0_0_PIN
-#define TLV320_PM_GCLK_FUNCTION AVR32_PM_GCLK_0_0_FUNCTION
-//! @}
-
-////! \name SPI: Apple Authentication Chip Hardware Connections
-////! @{
-#define IPOD_AUTH_CHIP_SPI (&AVR32_SPI0)
-#define IPOD_AUTH_CHIP_SPI_IRQ AVR32_SPI0_IRQ
-#define IPOD_AUTH_CHIP_SPI_NPCS 2
-#define IPOD_AUTH_CHIP_SPI_SCK_PIN AVR32_SPI0_SCK_0_0_PIN
-#define IPOD_AUTH_CHIP_SPI_SCK_FUNCTION AVR32_SPI0_SCK_0_0_FUNCTION
-#define IPOD_AUTH_CHIP_SPI_MISO_PIN AVR32_SPI0_MISO_0_0_PIN
-#define IPOD_AUTH_CHIP_SPI_MISO_FUNCTION AVR32_SPI0_MISO_0_0_FUNCTION
-#define IPOD_AUTH_CHIP_SPI_MOSI_PIN AVR32_SPI0_MOSI_0_0_PIN
-#define IPOD_AUTH_CHIP_SPI_MOSI_FUNCTION AVR32_SPI0_MOSI_0_0_FUNCTION
-#define IPOD_AUTH_CHIP_SPI_NPCS_PIN AVR32_SPI0_NPCS_2_0_PIN
-#define IPOD_AUTH_CHIP_SPI_NPCS_FUNCTION AVR32_SPI0_NPCS_2_0_FUNCTION
-#define IPOD_AUTH_CHIP_SPI_N_RESET_PIN AVR32_PIN_PB30
-#define IPOD_AUTH_CHIP_SPI_CP_READY_PIN AVR32_PIN_PB31
-//! }@
-
-/*! \name Connections of the iPOD Authentication Coprocessor
- */
-//! @{
-
-#define IPOD_AUTH_CHIP_TWI (&AVR32_TWI)
-#define IPOD_AUTH_CHIP_TWI_SCL_PIN AVR32_TWI_SCL_0_0_PIN
-#define IPOD_AUTH_CHIP_TWI_SCL_FUNCTION AVR32_TWI_SCL_0_0_FUNCTION
-#define IPOD_AUTH_CHIP_TWI_SDA_PIN AVR32_TWI_SDA_0_0_PIN
-#define IPOD_AUTH_CHIP_TWI_SDA_FUNCTION AVR32_TWI_SDA_0_0_FUNCTION
-#define IPOD_AUTH_CHIP_TWI_N_RESET_PIN AVR32_PIN_PX16
-
-//! @}
-
-/*! \name USART connection to the UC3B board controller
- */
-//! @{
-
-#define USART0_RXD_PIN AVR32_USART0_RXD_0_0_PIN
-#define USART0_RXD_FUNCTION AVR32_USART0_RXD_0_0_FUNCTION
-#define USART0_TXD_PIN AVR32_USART0_TXD_0_0_PIN
-#define USART0_TXD_FUNCTION AVR32_USART0_TXD_0_0_FUNCTION
-#define USART0_RTS_PIN AVR32_USART0_RTS_0_0_PIN
-#define USART0_RTS_FUNCTION AVR32_USART0_RTS_0_0_FUNCTION
-#define USART0_CTS_PIN AVR32_USART0_CTS_0_0_PIN
-#define USART0_CTS_FUNCTION AVR32_USART0_CTS_0_0_FUNCTION
-
-//! @}
-
-#define ADC_VEXT_PIN AVR32_ADC_AD_7_PIN
-#define ADC_VEXT_FUNCTION AVR32_ADC_AD_7_FUNCTION
-
-/*! \name LCD Connections of the ET024006DHU display
- */
-//! @{
-#define ET024006DHU_SMC_USE_NCS 0
-#define ET024006DHU_SMC_COMPONENT_CS "smc_et024006dhu.h"
-
-#define ET024006DHU_EBI_DATA_0 AVR32_EBI_DATA_0
-#define ET024006DHU_EBI_DATA_1 AVR32_EBI_DATA_1
-#define ET024006DHU_EBI_DATA_2 AVR32_EBI_DATA_2
-#define ET024006DHU_EBI_DATA_3 AVR32_EBI_DATA_3
-#define ET024006DHU_EBI_DATA_4 AVR32_EBI_DATA_4
-#define ET024006DHU_EBI_DATA_5 AVR32_EBI_DATA_5
-#define ET024006DHU_EBI_DATA_6 AVR32_EBI_DATA_6
-#define ET024006DHU_EBI_DATA_7 AVR32_EBI_DATA_7
-#define ET024006DHU_EBI_DATA_8 AVR32_EBI_DATA_8
-#define ET024006DHU_EBI_DATA_9 AVR32_EBI_DATA_9
-#define ET024006DHU_EBI_DATA_10 AVR32_EBI_DATA_10
-#define ET024006DHU_EBI_DATA_11 AVR32_EBI_DATA_11
-#define ET024006DHU_EBI_DATA_12 AVR32_EBI_DATA_12
-#define ET024006DHU_EBI_DATA_13 AVR32_EBI_DATA_13
-#define ET024006DHU_EBI_DATA_14 AVR32_EBI_DATA_14
-#define ET024006DHU_EBI_DATA_15 AVR32_EBI_DATA_15
-
-#define ET024006DHU_EBI_ADDR_21 AVR32_EBI_ADDR_21_1
-
-#define ET024006DHU_EBI_NWE AVR32_EBI_NWE0_0
-#define ET024006DHU_EBI_NRD AVR32_EBI_NRD_0
-#define ET024006DHU_EBI_NCS AVR32_EBI_NCS_0_1
-//! @}
-
-
-#endif // !EVK1105_REVA
-
-#endif // _EVK1105_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.c
deleted file mode 100644
index 561652a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT32UC3A EVK1105 board LEDs support package.
- *
- * This file contains definitions and services related to the LED features of
- * the EVK1105 board.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 AT32UC3A devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-#include "preprocessor.h"
-#include "compiler.h"
-#include "evk1105.h"
-#include "led.h"
-
-
-//! Structure describing LED hardware connections.
-typedef const struct
-{
- struct
- {
- U32 PORT; //!< LED GPIO port.
- U32 PIN_MASK; //!< Bit-mask of LED pin in GPIO port.
- } GPIO; //!< LED GPIO descriptor.
- struct
- {
- S32 CHANNEL; //!< LED PWM channel (< 0 if N/A).
- S32 FUNCTION; //!< LED pin PWM function (< 0 if N/A).
- } PWM; //!< LED PWM descriptor.
-} tLED_DESCRIPTOR;
-
-
-//! Hardware descriptors of all LEDs.
-static tLED_DESCRIPTOR LED_DESCRIPTOR[LED_COUNT] =
-{
-#define INSERT_LED_DESCRIPTOR(LED_NO, unused) \
- { \
- {LED##LED_NO##_GPIO / 32, 1 << (LED##LED_NO##_GPIO % 32)},\
- {LED##LED_NO##_PWM, LED##LED_NO##_PWM_FUNCTION } \
- },
- MREPEAT(LED_COUNT, INSERT_LED_DESCRIPTOR, ~)
-#undef INSERT_LED_DESCRIPTOR
-};
-
-
-//! Saved state of all LEDs.
-static volatile U32 LED_State = (1 << LED_COUNT) - 1;
-
-
-U32 LED_Read_Display(void)
-{
- return LED_State;
-}
-
-
-void LED_Display(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor;
- volatile avr32_gpio_port_t *led_gpio_port;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- LED_State = leds;
-
- // For all LEDs...
- for (led_descriptor = &LED_DESCRIPTOR[0];
- led_descriptor < LED_DESCRIPTOR + LED_COUNT;
- led_descriptor++)
- {
- // Set the LED to the requested state.
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- if (leds & 1)
- {
- led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK;
- }
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= 1;
- }
-}
-
-
-U32 LED_Read_Display_Mask(U32 mask)
-{
- return Rd_bits(LED_State, mask);
-}
-
-
-void LED_Display_Mask(U32 mask, U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- mask &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Wr_bits(LED_State, mask, leds);
-
- // While there are specified LEDs left to manage...
- while (mask)
- {
- // Select the next specified LED and set it to the requested state.
- led_shift = 1 + ctz(mask);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- leds >>= led_shift - 1;
- if (leds & 1)
- {
- led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK;
- }
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= 1;
- mask >>= led_shift;
- }
-}
-
-
-Bool LED_Test(U32 leds)
-{
- return Tst_bits(LED_State, leds);
-}
-
-
-void LED_Off(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Clr_bits(LED_State, leds);
-
- // While there are specified LEDs left to manage...
- while (leds)
- {
- // Select the next specified LED and turn it off.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= led_shift;
- }
-}
-
-
-void LED_On(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Set_bits(LED_State, leds);
-
- // While there are specified LEDs left to manage...
- while (leds)
- {
- // Select the next specified LED and turn it on.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= led_shift;
- }
-}
-
-
-void LED_Toggle(U32 leds)
-{
- // Use the LED descriptors to get the connections of a given LED to the MCU.
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // Make sure only existing LEDs are specified.
- leds &= (1 << LED_COUNT) - 1;
-
- // Update the saved state of all LEDs with the requested changes.
- Tgl_bits(LED_State, leds);
-
- // While there are specified LEDs left to manage...
- while (leds)
- {
- // Select the next specified LED and toggle it.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- led_gpio_port->ovrt = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK;
- led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK;
- leds >>= led_shift;
- }
-}
-
-
-U32 LED_Read_Display_Field(U32 field)
-{
- return Rd_bitfield(LED_State, field);
-}
-
-
-void LED_Display_Field(U32 field, U32 leds)
-{
- // Move the bit-field to the appropriate position for the bit-mask.
- LED_Display_Mask(field, leds << ctz(field));
-}
-
-
-U8 LED_Get_Intensity(U32 led)
-{
- tLED_DESCRIPTOR *led_descriptor;
-
- // Check that the argument value is valid.
- led = ctz(led);
- led_descriptor = &LED_DESCRIPTOR[led];
- if (led >= LED_COUNT || led_descriptor->PWM.CHANNEL < 0) return 0;
-
- // Return the duty cycle value if the LED PWM channel is enabled, else 0.
- return (AVR32_PWM.sr & (1 << led_descriptor->PWM.CHANNEL)) ?
- AVR32_PWM.channel[led_descriptor->PWM.CHANNEL].cdty : 0;
-}
-
-
-void LED_Set_Intensity(U32 leds, U8 intensity)
-{
- tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1;
- volatile avr32_pwm_channel_t *led_pwm_channel;
- volatile avr32_gpio_port_t *led_gpio_port;
- U8 led_shift;
-
- // For each specified LED...
- for (leds &= (1 << LED_COUNT) - 1; leds; leds >>= led_shift)
- {
- // Select the next specified LED and check that it has a PWM channel.
- led_shift = 1 + ctz(leds);
- led_descriptor += led_shift;
- if (led_descriptor->PWM.CHANNEL < 0) continue;
-
- // Initialize or update the LED PWM channel.
- led_pwm_channel = &AVR32_PWM.channel[led_descriptor->PWM.CHANNEL];
- if (!(AVR32_PWM.sr & (1 << led_descriptor->PWM.CHANNEL)))
- {
- led_pwm_channel->cmr = (AVR32_PWM_CPRE_MCK << AVR32_PWM_CPRE_OFFSET) &
- ~(AVR32_PWM_CALG_MASK |
- AVR32_PWM_CPOL_MASK |
- AVR32_PWM_CPD_MASK);
- led_pwm_channel->cprd = 0x000000FF;
- led_pwm_channel->cdty = intensity;
- AVR32_PWM.ena = 1 << led_descriptor->PWM.CHANNEL;
- }
- else
- {
- AVR32_PWM.isr;
- while (!(AVR32_PWM.isr & (1 << led_descriptor->PWM.CHANNEL)));
- led_pwm_channel->cupd = intensity;
- }
-
- // Switch the LED pin to its PWM function.
- led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT];
- if (led_descriptor->PWM.FUNCTION & 0x1)
- {
- led_gpio_port->pmr0s = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->pmr0c = led_descriptor->GPIO.PIN_MASK;
- }
- if (led_descriptor->PWM.FUNCTION & 0x2)
- {
- led_gpio_port->pmr1s = led_descriptor->GPIO.PIN_MASK;
- }
- else
- {
- led_gpio_port->pmr1c = led_descriptor->GPIO.PIN_MASK;
- }
- led_gpio_port->gperc = led_descriptor->GPIO.PIN_MASK;
- }
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.h
deleted file mode 100644
index 7766b6a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT32UC3A EVK1105 board LEDs support package.
- *
- * This file contains definitions and services related to the LED features of
- * the EVK1105 board.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 AT32UC3A devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _LED_H_
-#define _LED_H_
-
-#include "compiler.h"
-
-
-/*! \name Identifiers of LEDs to Use with LED Functions
- */
-//! @{
-#define LED0 0x01
-#define LED1 0x02
-#define LED2 0x04
-#define LED3 0x08
-//! @}
-
-
-/*! \brief Gets the last state of all LEDs set through the LED API.
- *
- * \return State of all LEDs (1 bit per LED).
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U32 LED_Read_Display(void);
-
-/*! \brief Sets the state of all LEDs.
- *
- * \param leds New state of all LEDs (1 bit per LED).
- *
- * \note The pins of all LEDs are set to GPIO output mode.
- */
-extern void LED_Display(U32 leds);
-
-/*! \brief Gets the last state of the specified LEDs set through the LED API.
- *
- * \param mask LEDs of which to get the state (1 bit per LED).
- *
- * \return State of the specified LEDs (1 bit per LED).
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U32 LED_Read_Display_Mask(U32 mask);
-
-/*! \brief Sets the state of the specified LEDs.
- *
- * \param mask LEDs of which to set the state (1 bit per LED).
- *
- * \param leds New state of the specified LEDs (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Display_Mask(U32 mask, U32 leds);
-
-/*! \brief Tests the last state of the specified LEDs set through the LED API.
- *
- * \param leds LEDs of which to test the state (1 bit per LED).
- *
- * \return \c TRUE if at least one of the specified LEDs has a state on, else
- * \c FALSE.
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern Bool LED_Test(U32 leds);
-
-/*! \brief Turns off the specified LEDs.
- *
- * \param leds LEDs to turn off (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Off(U32 leds);
-
-/*! \brief Turns on the specified LEDs.
- *
- * \param leds LEDs to turn on (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_On(U32 leds);
-
-/*! \brief Toggles the specified LEDs.
- *
- * \param leds LEDs to toggle (1 bit per LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Toggle(U32 leds);
-
-/*! \brief Gets as a bit-field the last state of the specified LEDs set through
- * the LED API.
- *
- * \param field LEDs of which to get the state (1 bit per LED).
- *
- * \return State of the specified LEDs (1 bit per LED, beginning with the first
- * specified LED).
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U32 LED_Read_Display_Field(U32 field);
-
-/*! \brief Sets as a bit-field the state of the specified LEDs.
- *
- * \param field LEDs of which to set the state (1 bit per LED).
- * \param leds New state of the specified LEDs (1 bit per LED, beginning with
- * the first specified LED).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-extern void LED_Display_Field(U32 field, U32 leds);
-
-/*! \brief Gets the intensity of the specified LED.
- *
- * \param led LED of which to get the intensity (1 bit per LED; only the least
- * significant set bit is used).
- *
- * \return Intensity of the specified LED (0x00 to 0xFF).
- *
- * \warning The PWM channel of the specified LED is supposed to be used only by
- * this module.
- *
- * \note The GPIO pin configuration of all LEDs is left unchanged.
- */
-extern U8 LED_Get_Intensity(U32 led);
-
-/*! \brief Sets the intensity of the specified LEDs.
- *
- * \param leds LEDs of which to set the intensity (1 bit per LED).
- * \param intensity New intensity of the specified LEDs (0x00 to 0xFF).
- *
- * \warning The PWM channels of the specified LEDs are supposed to be used only
- * by this module.
- *
- * \note The pins of the specified LEDs are set to PWM output mode.
- */
-extern void LED_Set_Intensity(U32 leds, U8 intensity);
-
-
-#endif // _LED_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h
deleted file mode 100644
index 78ee91e..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Standard board header file.
- *
- * This file includes the appropriate board header file according to the
- * defined board.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-#include <avr32/io.h>
-
-/*! \name Base Boards
- */
-//! @{
-#define EVK1100 1 //!< AT32UC3A EVK1100 board.
-#define EVK1101 2 //!< AT32UC3B EVK1101 board.
-#define UC3C_EK 3 //!< AT32UC3C UC3C_EK board.
-#define EVK1104 4 //!< AT32UC3A3 EVK1104 board.
-#define EVK1105 5 //!< AT32UC3A EVK1105 board.
-#define STK1000 6 //!< AT32AP7000 STK1000 board.
-#define NGW100 7 //!< AT32AP7000 NGW100 board.
-#define STK600_RCUC3L0 8 //!< STK600 RCUC3L0 board.
-#define UC3L_EK 9 //!< AT32UC3L-EK board.
-#define USER_BOARD 99 //!< User-reserved board (if any).
-//! @}
-
-/*! \name Extension Boards
- */
-//! @{
-#define EXT1102 1 //!< AT32UC3B EXT1102 board.
-#define MC300 2 //!< AT32UC3 MC300 board.
-#define USER_EXT_BOARD 99 //!< User-reserved extension board (if any).
-//! @}
-
-#if BOARD == EVK1100
- #include "EVK1100/evk1100.h"
-#elif BOARD == EVK1101
- #include "EVK1101/evk1101.h"
-#elif BOARD == UC3C_EK
- #include "UC3C_EK/uc3c_ek.h"
-#elif BOARD == EVK1104
- #include "EVK1104/evk1104.h"
-#elif BOARD == EVK1105
- #include "EVK1105/evk1105.h"
-#elif BOARD == STK1000
- #include "STK1000/stk1000.h"
-#elif BOARD == NGW100
- #include "NGW100/ngw100.h"
-#elif BOARD == STK600_RCUC3L0
- #include "STK600/RCUC3L0/stk600_rcuc3l0.h"
-#elif BOARD == UC3L_EK
- #include "UC3L_EK/uc3l_ek.h"
-#elif BOARD == ARDUINO
- #include "ARDUINO/arduino.h"
-#else
- #error No known AVR32 board defined
-#endif
-
-#if (defined EXT_BOARD)
- #if EXT_BOARD == EXT1102
- #include "EXT1102/ext1102.h"
- #elif EXT_BOARD == MC300
- #include "MC300/mc300.h"
- #elif EXT_BOARD == USER_EXT_BOARD
- // User-reserved area: #include the header file of your extension board here
- // (if any).
- #endif
-#endif
-
-
-#ifndef FRCOSC
- #define FRCOSC AVR32_PM_RCOSC_FREQUENCY //!< Default RCOsc frequency.
-#endif
-
-
-#endif // _BOARD_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h.my b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h.my
deleted file mode 100644
index 78ee91e..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/board.h.my
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Standard board header file.
- *
- * This file includes the appropriate board header file according to the
- * defined board.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-#include <avr32/io.h>
-
-/*! \name Base Boards
- */
-//! @{
-#define EVK1100 1 //!< AT32UC3A EVK1100 board.
-#define EVK1101 2 //!< AT32UC3B EVK1101 board.
-#define UC3C_EK 3 //!< AT32UC3C UC3C_EK board.
-#define EVK1104 4 //!< AT32UC3A3 EVK1104 board.
-#define EVK1105 5 //!< AT32UC3A EVK1105 board.
-#define STK1000 6 //!< AT32AP7000 STK1000 board.
-#define NGW100 7 //!< AT32AP7000 NGW100 board.
-#define STK600_RCUC3L0 8 //!< STK600 RCUC3L0 board.
-#define UC3L_EK 9 //!< AT32UC3L-EK board.
-#define USER_BOARD 99 //!< User-reserved board (if any).
-//! @}
-
-/*! \name Extension Boards
- */
-//! @{
-#define EXT1102 1 //!< AT32UC3B EXT1102 board.
-#define MC300 2 //!< AT32UC3 MC300 board.
-#define USER_EXT_BOARD 99 //!< User-reserved extension board (if any).
-//! @}
-
-#if BOARD == EVK1100
- #include "EVK1100/evk1100.h"
-#elif BOARD == EVK1101
- #include "EVK1101/evk1101.h"
-#elif BOARD == UC3C_EK
- #include "UC3C_EK/uc3c_ek.h"
-#elif BOARD == EVK1104
- #include "EVK1104/evk1104.h"
-#elif BOARD == EVK1105
- #include "EVK1105/evk1105.h"
-#elif BOARD == STK1000
- #include "STK1000/stk1000.h"
-#elif BOARD == NGW100
- #include "NGW100/ngw100.h"
-#elif BOARD == STK600_RCUC3L0
- #include "STK600/RCUC3L0/stk600_rcuc3l0.h"
-#elif BOARD == UC3L_EK
- #include "UC3L_EK/uc3l_ek.h"
-#elif BOARD == ARDUINO
- #include "ARDUINO/arduino.h"
-#else
- #error No known AVR32 board defined
-#endif
-
-#if (defined EXT_BOARD)
- #if EXT_BOARD == EXT1102
- #include "EXT1102/ext1102.h"
- #elif EXT_BOARD == MC300
- #include "MC300/mc300.h"
- #elif EXT_BOARD == USER_EXT_BOARD
- // User-reserved area: #include the header file of your extension board here
- // (if any).
- #endif
-#endif
-
-
-#ifndef FRCOSC
- #define FRCOSC AVR32_PM_RCOSC_FREQUENCY //!< Default RCOsc frequency.
-#endif
-
-
-#endif // _BOARD_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.c
deleted file mode 100644
index 93d3dd9..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.c
+++ /dev/null
@@ -1,653 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Management of the AT45DBX data flash controller through SPI.
- *
- * This file manages the accesses to the AT45DBX data flash components.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-//_____ I N C L U D E S ___________________________________________________
-
-#include "conf_access.h"
-
-
-#if AT45DBX_MEM == ENABLE
-
-#include "compiler.h"
-#include "board.h"
-#include "gpio.h"
-#include "spi.h"
-#include "conf_at45dbx.h"
-#include "at45dbx.h"
-
-
-#if AT45DBX_MEM_CNT > 4
- #error AT45DBX_MEM_CNT must not exceed 4
-#endif
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-/*! \name AT45DBX Group A Commands
- */
-//! @{
-#define AT45DBX_CMDA_RD_PAGE 0xD2 //!< Main Memory Page Read (Serial/8-bit Mode).
-#define AT45DBX_CMDA_RD_ARRAY_LEG 0xE8 //!< Continuous Array Read, Legacy Command (Serial/8-bit Mode).
-#define AT45DBX_CMDA_RD_ARRAY_LF_SM 0x03 //!< Continuous Array Read, Low-Frequency Mode (Serial Mode).
-#define AT45DBX_CMDA_RD_ARRAY_AF_SM 0x0B //!< Continuous Array Read, Any-Frequency Mode (Serial Mode).
-#define AT45DBX_CMDA_RD_SECTOR_PROT_REG 0x32 //!< Read Sector Protection Register (Serial/8-bit Mode).
-#define AT45DBX_CMDA_RD_SECTOR_LKDN_REG 0x35 //!< Read Sector Lockdown Register (Serial/8-bit Mode).
-#define AT45DBX_CMDA_RD_SECURITY_REG 0x77 //!< Read Security Register (Serial/8-bit Mode).
-//! @}
-
-/*! \name AT45DBX Group B Commands
- */
-//! @{
-#define AT45DBX_CMDB_ER_PAGE 0x81 //!< Page Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_ER_BLOCK 0x50 //!< Block Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_ER_SECTOR 0x7C //!< Sector Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_ER_CHIP 0xC794809A //!< Chip Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_XFR_PAGE_TO_BUF1 0x53 //!< Main Memory Page to Buffer 1 Transfer (Serial/8-bit Mode).
-#define AT45DBX_CMDB_XFR_PAGE_TO_BUF2 0x55 //!< Main Memory Page to Buffer 2 Transfer (Serial/8-bit Mode).
-#define AT45DBX_CMDB_CMP_PAGE_TO_BUF1 0x60 //!< Main Memory Page to Buffer 1 Compare (Serial/8-bit Mode).
-#define AT45DBX_CMDB_CMP_PAGE_TO_BUF2 0x61 //!< Main Memory Page to Buffer 2 Compare (Serial/8-bit Mode).
-#define AT45DBX_CMDB_PR_BUF1_TO_PAGE_ER 0x83 //!< Buffer 1 to Main Memory Page Program with Built-in Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_PR_BUF2_TO_PAGE_ER 0x86 //!< Buffer 2 to Main Memory Page Program with Built-in Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_PR_BUF1_TO_PAGE 0x88 //!< Buffer 1 to Main Memory Page Program without Built-in Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_PR_BUF2_TO_PAGE 0x89 //!< Buffer 2 to Main Memory Page Program without Built-in Erase (Serial/8-bit Mode).
-#define AT45DBX_CMDB_PR_PAGE_TH_BUF1 0x82 //!< Main Memory Page Program through Buffer 1 (Serial/8-bit Mode).
-#define AT45DBX_CMDB_PR_PAGE_TH_BUF2 0x85 //!< Main Memory Page Program through Buffer 2 (Serial/8-bit Mode).
-#define AT45DBX_CMDB_RWR_PAGE_TH_BUF1 0x58 //!< Auto Page Rewrite through Buffer 1 (Serial/8-bit Mode).
-#define AT45DBX_CMDB_RWR_PAGE_TH_BUF2 0x59 //!< Auto Page Rewrite through Buffer 2 (Serial/8-bit Mode).
-//! @}
-
-/*! \name AT45DBX Group C Commands
- */
-//! @{
-#define AT45DBX_CMDC_RD_BUF1_LF_SM 0xD1 //!< Buffer 1 Read, Low-Frequency Mode (Serial Mode).
-#define AT45DBX_CMDC_RD_BUF2_LF_SM 0xD3 //!< Buffer 2 Read, Low-Frequency Mode (Serial Mode).
-#define AT45DBX_CMDC_RD_BUF1_AF_SM 0xD4 //!< Buffer 1 Read, Any-Frequency Mode (Serial Mode).
-#define AT45DBX_CMDC_RD_BUF2_AF_SM 0xD6 //!< Buffer 2 Read, Any-Frequency Mode (Serial Mode).
-#define AT45DBX_CMDC_RD_BUF1_AF_8M 0x54 //!< Buffer 1 Read, Any-Frequency Mode (8-bit Mode).
-#define AT45DBX_CMDC_RD_BUF2_AF_8M 0x56 //!< Buffer 2 Read, Any-Frequency Mode (8-bit Mode).
-#define AT45DBX_CMDC_WR_BUF1 0x84 //!< Buffer 1 Write (Serial/8-bit Mode).
-#define AT45DBX_CMDC_WR_BUF2 0x87 //!< Buffer 2 Write (Serial/8-bit Mode).
-#define AT45DBX_CMDC_RD_STATUS_REG 0xD7 //!< Status Register Read (Serial/8-bit Mode).
-#define AT45DBX_CMDC_RD_MNFCT_DEV_ID_SM 0x9F //!< Manufacturer and Device ID Read (Serial Mode).
-//! @}
-
-/*! \name AT45DBX Group D Commands
- */
-//! @{
-#define AT45DBX_CMDD_EN_SECTOR_PROT 0x3D2A7FA9 //!< Enable Sector Protection (Serial/8-bit Mode).
-#define AT45DBX_CMDD_DIS_SECTOR_PROT 0x3D2A7F9A //!< Disable Sector Protection (Serial/8-bit Mode).
-#define AT45DBX_CMDD_ER_SECTOR_PROT_REG 0x3D2A7FCF //!< Erase Sector Protection Register (Serial/8-bit Mode).
-#define AT45DBX_CMDD_PR_SECTOR_PROT_REG 0x3D2A7FFC //!< Program Sector Protection Register (Serial/8-bit Mode).
-#define AT45DBX_CMDD_LKDN_SECTOR 0x3D2A7F30 //!< Sector Lockdown (Serial/8-bit Mode).
-#define AT45DBX_CMDD_PR_SECURITY_REG 0x9B000000 //!< Program Security Register (Serial/8-bit Mode).
-#define AT45DBX_CMDD_PR_CONF_REG 0x3D2A80A6 //!< Program Configuration Register (Serial/8-bit Mode).
-#define AT45DBX_CMDD_DEEP_PWR_DN 0xB9 //!< Deep Power-down (Serial/8-bit Mode).
-#define AT45DBX_CMDD_RSM_DEEP_PWR_DN 0xAB //!< Resume from Deep Power-down (Serial/8-bit Mode).
-//! @}
-
-
-/*! \name Bit-Masks and Values for the Status Register
- */
-//! @{
-#define AT45DBX_MSK_BUSY 0x80 //!< Busy status bit-mask.
-#define AT45DBX_BUSY 0x00 //!< Busy status value (0x00 when busy, 0x80 when ready).
-#define AT45DBX_MSK_DENSITY 0x3C //!< Device density bit-mask.
-//! @}
-#if AT45DBX_MEM_SIZE == AT45DBX_1MB
-
-/*! \name AT45DB081 Memories
- */
-//! @{
-#define AT45DBX_DENSITY 0x24 //!< Device density value.
-#define AT45DBX_BYTE_ADDR_BITS 9 //!< Address bits for byte position within buffer.
-
-//! @}
-#elif AT45DBX_MEM_SIZE == AT45DBX_2MB
-
-/*! \name AT45DB161 Memories
- */
-//! @{
-#define AT45DBX_DENSITY 0x2C //!< Device density value.
-#define AT45DBX_BYTE_ADDR_BITS 10 //!< Address bits for byte position within buffer.
-//! @}
-
-#elif AT45DBX_MEM_SIZE == AT45DBX_4MB
-
-/*! \name AT45DB321 Memories
- */
-//! @{
-#define AT45DBX_DENSITY 0x34 //!< Device density value.
-#define AT45DBX_BYTE_ADDR_BITS 10 //!< Address bits for byte position within buffer.
-//! @}
-
-#elif AT45DBX_MEM_SIZE == AT45DBX_8MB
-
-/*! \name AT45DB642 Memories
- */
-//! @{
-#define AT45DBX_DENSITY 0x3C //!< Device density value.
-#define AT45DBX_BYTE_ADDR_BITS 11 //!< Address bits for byte position within buffer.
-//! @}
-
-#else
- #error AT45DBX_MEM_SIZE is not defined to a supported value
-#endif
-
-//! Address bits for page selection.
-#define AT45DBX_PAGE_ADDR_BITS (AT45DBX_MEM_SIZE - AT45DBX_PAGE_BITS)
-
-//! Number of bits for addresses within pages.
-#define AT45DBX_PAGE_BITS (AT45DBX_BYTE_ADDR_BITS - 1)
-
-//! Page size in bytes.
-#define AT45DBX_PAGE_SIZE (1 << AT45DBX_PAGE_BITS)
-
-//! Bit-mask for byte position within buffer in \ref gl_ptr_mem.
-#define AT45DBX_MSK_PTR_BYTE ((1 << AT45DBX_PAGE_BITS) - 1)
-
-//! Bit-mask for page selection in \ref gl_ptr_mem.
-#define AT45DBX_MSK_PTR_PAGE (((1 << AT45DBX_PAGE_ADDR_BITS) - 1) << AT45DBX_PAGE_BITS)
-
-//! Bit-mask for byte position within sector in \ref gl_ptr_mem.
-#define AT45DBX_MSK_PTR_SECTOR ((1 << AT45DBX_SECTOR_BITS) - 1)
-
-
-/*! \brief Sends a dummy byte through SPI.
- */
-#define spi_write_dummy() spi_write(AT45DBX_SPI, 0xFF)
-
-
-//! Boolean indicating whether memory is in busy state.
-static Bool at45dbx_busy;
-
-//! Memory data pointer.
-static U32 gl_ptr_mem;
-
-//! Sector buffer.
-static U8 sector_buf[AT45DBX_SECTOR_SIZE];
-
-
-/*! \name Control Functions
- */
-//! @{
-
-
-Bool at45dbx_init(spi_options_t spiOptions, unsigned int pba_hz)
-{
- // Setup SPI registers according to spiOptions.
- for (spiOptions.reg = AT45DBX_SPI_FIRST_NPCS;
- spiOptions.reg < AT45DBX_SPI_FIRST_NPCS + AT45DBX_MEM_CNT;
- spiOptions.reg++)
- {
- if (spi_setupChipReg(AT45DBX_SPI, &spiOptions, pba_hz) != SPI_OK) return KO;
- }
-
- // Memory ready.
- at45dbx_busy = FALSE;
-
- return OK;
-}
-
-
-/*! \brief Selects or unselects a DF memory.
- *
- * \param memidx Memory ID of DF to select or unselect.
- * \param bSelect Boolean indicating whether the DF memory has to be selected.
- */
-static void at45dbx_chipselect_df(U8 memidx, Bool bSelect)
-{
- if (bSelect)
- {
- // Select SPI chip.
- spi_selectChip(AT45DBX_SPI, AT45DBX_SPI_FIRST_NPCS + memidx);
- }
- else
- {
- // Unselect SPI chip.
- spi_unselectChip(AT45DBX_SPI, AT45DBX_SPI_FIRST_NPCS + memidx);
- }
-}
-
-
-Bool at45dbx_mem_check(void)
-{
- U8 df;
- U16 status = 0;
-
- // DF memory check.
- for (df = 0; df < AT45DBX_MEM_CNT; df++)
- {
- // Select the DF memory to check.
- at45dbx_chipselect_df(df, TRUE);
-
- // Send the Status Register Read command.
- spi_write(AT45DBX_SPI, AT45DBX_CMDC_RD_STATUS_REG);
-
- // Send a dummy byte to read the status register.
- spi_write_dummy();
- spi_read(AT45DBX_SPI, &status);
-
- // Unselect the checked DF memory.
- at45dbx_chipselect_df(df, FALSE);
-
- // Unexpected device density value.
- if ((status & AT45DBX_MSK_DENSITY) < AT45DBX_DENSITY) return KO;
- }
-
- return OK;
-}
-
-
-/*! \brief Waits until the DF is ready.
- */
-static void at45dbx_wait_ready(void)
-{
- U16 status;
-
- // Select the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, TRUE);
-
- // Send the Status Register Read command.
- spi_write(AT45DBX_SPI, AT45DBX_CMDC_RD_STATUS_REG);
-
- // Read the status register until the DF is ready.
- do
- {
- // Send a dummy byte to read the status register.
- spi_write_dummy();
- spi_read(AT45DBX_SPI, &status);
- } while ((status & AT45DBX_MSK_BUSY) == AT45DBX_BUSY);
-
- // Unselect the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-}
-
-
-Bool at45dbx_read_open(U32 sector)
-{
- U32 addr;
-
- // Set the global memory pointer to a byte address.
- gl_ptr_mem = sector << AT45DBX_SECTOR_BITS; // gl_ptr_mem = sector * AT45DBX_SECTOR_SIZE.
-
- // If the DF memory is busy, wait until it's ready.
- if (at45dbx_busy) at45dbx_wait_ready();
- at45dbx_busy = FALSE;
-
- // Select the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, TRUE);
-
- // Initiate a page read at a given sector.
-
- // Send the Main Memory Page Read command.
- spi_write(AT45DBX_SPI, AT45DBX_CMDA_RD_PAGE);
-
- // Send the three address bytes, which comprise:
- // - (24 - (AT45DBX_PAGE_ADDR_BITS + AT45DBX_BYTE_ADDR_BITS)) reserved bits;
- // - then AT45DBX_PAGE_ADDR_BITS bits specifying the page in main memory to be read;
- // - then AT45DBX_BYTE_ADDR_BITS bits specifying the starting byte address within that page.
- // NOTE: The bits of gl_ptr_mem above the AT45DBX_MEM_SIZE bits are useless for the local
- // DF addressing. They are used for DF discrimination when there are several DFs.
- addr = (Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_PAGE) << AT45DBX_BYTE_ADDR_BITS) |
- Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_BYTE);
- spi_write(AT45DBX_SPI, LSB2W(addr));
- spi_write(AT45DBX_SPI, LSB1W(addr));
- spi_write(AT45DBX_SPI, LSB0W(addr));
-
- // Send 32 don't care clock cycles to initialize the read operation.
- spi_write_dummy();
- spi_write_dummy();
- spi_write_dummy();
- spi_write_dummy();
-
- return OK;
-}
-
-
-void at45dbx_read_close(void)
-{
- // Unselect the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-
- // Memory ready.
- at45dbx_busy = FALSE;
-}
-
-
-Bool at45dbx_write_open(U32 sector)
-{
- U32 addr;
-
- // Set the global memory pointer to a byte address.
- gl_ptr_mem = sector << AT45DBX_SECTOR_BITS; // gl_ptr_mem = sector * AT45DBX_SECTOR_SIZE.
-
- // If the DF memory is busy, wait until it's ready.
- if (at45dbx_busy) at45dbx_wait_ready();
- at45dbx_busy = FALSE;
-
-#if AT45DBX_PAGE_SIZE > AT45DBX_SECTOR_SIZE
- // Select the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, TRUE);
-
- // Transfer the content of the current page to buffer 1.
-
- // Send the Main Memory Page to Buffer 1 Transfer command.
- spi_write(AT45DBX_SPI, AT45DBX_CMDB_XFR_PAGE_TO_BUF1);
-
- // Send the three address bytes, which comprise:
- // - (24 - (AT45DBX_PAGE_ADDR_BITS + AT45DBX_BYTE_ADDR_BITS)) reserved bits;
- // - then AT45DBX_PAGE_ADDR_BITS bits specifying the page in main memory to be read;
- // - then AT45DBX_BYTE_ADDR_BITS don't care bits.
- // NOTE: The bits of gl_ptr_mem above the AT45DBX_MEM_SIZE bits are useless for the local
- // DF addressing. They are used for DF discrimination when there are several DFs.
- addr = Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_PAGE) << AT45DBX_BYTE_ADDR_BITS;
- spi_write(AT45DBX_SPI, LSB2W(addr));
- spi_write(AT45DBX_SPI, LSB1W(addr));
- spi_write(AT45DBX_SPI, LSB0W(addr));
-
- // Unselect the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-
- // Wait for end of page transfer.
- at45dbx_wait_ready();
-#endif
-
- // Select the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, TRUE);
-
- // Initiate a page write at a given sector.
-
- // Send the Main Memory Page Program through Buffer 1 command.
- spi_write(AT45DBX_SPI, AT45DBX_CMDB_PR_PAGE_TH_BUF1);
-
- // Send the three address bytes, which comprise:
- // - (24 - (AT45DBX_PAGE_ADDR_BITS + AT45DBX_BYTE_ADDR_BITS)) reserved bits;
- // - then AT45DBX_PAGE_ADDR_BITS bits specifying the page in main memory to be written;
- // - then AT45DBX_BYTE_ADDR_BITS bits specifying the starting byte address within that page.
- // NOTE: The bits of gl_ptr_mem above the AT45DBX_MEM_SIZE bits are useless for the local
- // DF addressing. They are used for DF discrimination when there are several DFs.
- addr = (Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_PAGE) << AT45DBX_BYTE_ADDR_BITS) |
- Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_BYTE);
- spi_write(AT45DBX_SPI, LSB2W(addr));
- spi_write(AT45DBX_SPI, LSB1W(addr));
- spi_write(AT45DBX_SPI, LSB0W(addr));
-
- return OK;
-}
-
-
-void at45dbx_write_close(void)
-{
- // While end of logical sector not reached, zero-fill remaining memory bytes.
- while (Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_SECTOR))
- {
- spi_write(AT45DBX_SPI, 0x00);
- gl_ptr_mem++;
- }
-
- // Unselect the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-
- // Memory busy.
- at45dbx_busy = TRUE;
-}
-
-
-//! @}
-
-
-/*! \name Single-Byte Access Functions
- */
-//! @{
-
-
-U8 at45dbx_read_byte(void)
-{
- U16 data;
-
- // Memory busy.
- if (at45dbx_busy)
- {
- // Being here, we know that we previously finished a page read.
- // => We have to access the next page.
-
- // Memory ready.
- at45dbx_busy = FALSE;
-
- // Eventually select the next DF and open the next page.
- // NOTE: at45dbx_read_open input parameter is a sector.
- at45dbx_read_open(gl_ptr_mem >> AT45DBX_SECTOR_BITS); // gl_ptr_mem / AT45DBX_SECTOR_SIZE.
- }
-
- // Send a dummy byte to read the next data byte.
- spi_write_dummy();
- spi_read(AT45DBX_SPI, &data);
- gl_ptr_mem++;
-
- // If end of page reached,
- if (!Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_BYTE))
- {
- // unselect the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-
- // Memory busy.
- at45dbx_busy = TRUE;
- }
-
- return data;
-}
-
-
-Bool at45dbx_write_byte(U8 b)
-{
- // Memory busy.
- if (at45dbx_busy)
- {
- // Being here, we know that we previously launched a page programming.
- // => We have to access the next page.
-
- // Eventually select the next DF and open the next page.
- // NOTE: at45dbx_write_open input parameter is a sector.
- at45dbx_write_open(gl_ptr_mem >> AT45DBX_SECTOR_BITS); // gl_ptr_mem / AT45DBX_SECTOR_SIZE.
- }
-
- // Write the next data byte.
- spi_write(AT45DBX_SPI, b);
- gl_ptr_mem++;
-
- // If end of page reached,
- if (!Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_BYTE))
- {
- // unselect the DF memory gl_ptr_mem points to in order to program the page.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-
- // Memory busy.
- at45dbx_busy = TRUE;
- }
-
- return OK;
-}
-
-
-//! @}
-
-
-/*! \name Multiple-Sector Access Functions
- */
-//! @{
-
-
-Bool at45dbx_read_multiple_sector(U16 nb_sector)
-{
- while (nb_sector--)
- {
- // Read the next sector.
- at45dbx_read_sector_2_ram(sector_buf);
- at45dbx_read_multiple_sector_callback(sector_buf);
- }
-
- return OK;
-}
-
-
-Bool at45dbx_write_multiple_sector(U16 nb_sector)
-{
- while (nb_sector--)
- {
- // Write the next sector.
- at45dbx_write_multiple_sector_callback(sector_buf);
- at45dbx_write_sector_from_ram(sector_buf);
- }
-
- return OK;
-}
-
-
-//! @}
-
-
-/*! \name Single-Sector Access Functions
- */
-//! @{
-
-
-Bool at45dbx_read_sector_2_ram(void *ram)
-{
- U8 *_ram = ram;
- U16 i;
- U16 data;
-
- // Memory busy.
- if (at45dbx_busy)
- {
- // Being here, we know that we previously finished a page read.
- // => We have to access the next page.
-
- // Memory ready.
- at45dbx_busy = FALSE;
-
- // Eventually select the next DF and open the next page.
- // NOTE: at45dbx_read_open input parameter is a sector.
- at45dbx_read_open(gl_ptr_mem >> AT45DBX_SECTOR_BITS); // gl_ptr_mem / AT45DBX_SECTOR_SIZE.
- }
-
- // Read the next sector.
- for (i = AT45DBX_SECTOR_SIZE; i; i--)
- {
- // Send a dummy byte to read the next data byte.
- spi_write_dummy();
- spi_read(AT45DBX_SPI, &data);
- *_ram++ = data;
- }
-
- // Update the memory pointer.
- gl_ptr_mem += AT45DBX_SECTOR_SIZE;
-
-#if AT45DBX_PAGE_SIZE > AT45DBX_SECTOR_SIZE
- // If end of page reached,
- if (!Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_BYTE))
-#endif
- {
- // unselect the DF memory gl_ptr_mem points to.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-
- // Memory busy.
- at45dbx_busy = TRUE;
- }
-
- return OK;
-}
-
-
-Bool at45dbx_write_sector_from_ram(const void *ram)
-{
- const U8 *_ram = ram;
- U16 i;
-
- // Memory busy.
- if (at45dbx_busy)
- {
- // Being here, we know that we previously launched a page programming.
- // => We have to access the next page.
-
- // Eventually select the next DF and open the next page.
- // NOTE: at45dbx_write_open input parameter is a sector.
- at45dbx_write_open(gl_ptr_mem >> AT45DBX_SECTOR_BITS); // gl_ptr_mem / AT45DBX_SECTOR_SIZE.
- }
-
- // Write the next sector.
- for (i = AT45DBX_SECTOR_SIZE; i; i--)
- {
- // Write the next data byte.
- spi_write(AT45DBX_SPI, *_ram++);
- }
-
- // Update the memory pointer.
- gl_ptr_mem += AT45DBX_SECTOR_SIZE;
-
-#if AT45DBX_PAGE_SIZE > AT45DBX_SECTOR_SIZE
- // If end of page reached,
- if (!Rd_bitfield(gl_ptr_mem, AT45DBX_MSK_PTR_BYTE))
-#endif
- {
- // unselect the DF memory gl_ptr_mem points to in order to program the page.
- at45dbx_chipselect_df(gl_ptr_mem >> AT45DBX_MEM_SIZE, FALSE);
-
- // Memory busy.
- at45dbx_busy = TRUE;
- }
-
- return OK;
-}
-
-
-//! @}
-
-
-#endif // AT45DBX_MEM == ENABLE
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.h
deleted file mode 100644
index e5263b2..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Management of the AT45DBX data flash controller through SPI.
- *
- * This file manages the accesses to the AT45DBX data flash components.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _AT45DBX_H_
-#define _AT45DBX_H_
-
-
-#include "conf_access.h"
-
-#if AT45DBX_MEM == DISABLE
- #error at45dbx.h is #included although AT45DBX_MEM is disabled
-#endif
-
-
-#include "spi.h"
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-/*! \name Available AT45DBX Sizes
- *
- * Number of address bits of available AT45DBX data flash memories.
- *
- * \note Only memories with page sizes of at least 512 bytes (sector size) are
- * supported.
- */
-//! @{
-#define AT45DBX_1MB 20
-#define AT45DBX_2MB 21
-#define AT45DBX_4MB 22
-#define AT45DBX_8MB 23
-//! @}
-
-// AT45DBX_1MB
-#define AT45DBX_SECTOR_BITS 8 //! Number of bits for addresses within sectors.
-// AT45DBX_2MB AT45DBX_4MB AT45DBX_8MB
-//#define AT45DBX_SECTOR_BITS 9 //! Number of bits for addresses within sectors.
-
-//! Sector size in bytes.
-#define AT45DBX_SECTOR_SIZE (1 << AT45DBX_SECTOR_BITS)
-
-
-//_____ D E C L A R A T I O N S ____________________________________________
-
-/*! \name Control Functions
- */
-//! @{
-
-/*! \brief Initializes the data flash controller and the SPI channel by which
- * the DF is controlled.
- *
- * \param spiOptions Initialization options of the DF SPI channel.
- * \param pba_hz SPI module input clock frequency (PBA clock, Hz).
- *
- * \retval OK Success.
- * \retval KO Failure.
- */
-extern Bool at45dbx_init(spi_options_t spiOptions, unsigned int pba_hz);
-
-/*! \brief Performs a memory check on all DFs.
- *
- * \retval OK Success.
- * \retval KO Failure.
- */
-extern Bool at45dbx_mem_check(void);
-
-/*! \brief Opens a DF memory in read mode at a given sector.
- *
- * \param sector Start sector.
- *
- * \retval OK Success.
- * \retval KO Failure.
- *
- * \note Sector may be page-unaligned (depending on the DF page size).
- */
-extern Bool at45dbx_read_open(U32 sector);
-
-/*! \brief Unselects the current DF memory.
- */
-extern void at45dbx_read_close(void);
-
-/*! \brief This function opens a DF memory in write mode at a given sector.
- *
- * \param sector Start sector.
- *
- * \retval OK Success.
- * \retval KO Failure.
- *
- * \note Sector may be page-unaligned (depending on the DF page size).
- *
- * \note If \ref AT45DBX_PAGE_SIZE > \ref AT45DBX_SECTOR_SIZE, page content is
- * first loaded in buffer to then be partially updated by write byte or
- * write sector functions.
- */
-extern Bool at45dbx_write_open(U32 sector);
-
-/*! \brief Fills the end of the current logical sector and launches page programming.
- */
-extern void at45dbx_write_close(void);
-
-//! @}
-
-
-/*! \name Single-Byte Access Functions
- */
-//! @{
-
-/*! \brief Performs a single byte read from DF memory.
- *
- * \return The read byte.
- *
- * \note First call must be preceded by a call to the \ref at45dbx_read_open
- * function.
- */
-extern U8 at45dbx_read_byte(void);
-
-/*! \brief Performs a single byte write to DF memory.
- *
- * \param b The byte to write.
- *
- * \retval OK Success.
- * \retval KO Failure.
- *
- * \note First call must be preceded by a call to the \ref at45dbx_write_open
- * function.
- */
-extern Bool at45dbx_write_byte(U8 b);
-
-//! @}
-
-
-/*! \name Multiple-Sector Access Functions
- */
-//! @{
-
-/*! \brief Reads \a nb_sector sectors from DF memory.
- *
- * Data flow is: DF -> callback.
- *
- * \param nb_sector Number of contiguous sectors to read.
- *
- * \retval OK Success.
- * \retval KO Failure.
- *
- * \note First call must be preceded by a call to the \ref at45dbx_read_open
- * function.
- *
- * \note As \ref AT45DBX_PAGE_SIZE is always a multiple of
- * \ref AT45DBX_SECTOR_SIZE, there is no need to check page end for each
- * byte.
- */
-extern Bool at45dbx_read_multiple_sector(U16 nb_sector);
-
-/*! \brief Callback function invoked after each sector read during
- * \ref at45dbx_read_multiple_sector.
- *
- * \param psector Pointer to read sector.
- */
-extern void at45dbx_read_multiple_sector_callback(const void *psector);
-
-/*! \brief Writes \a nb_sector sectors to DF memory.
- *
- * Data flow is: callback -> DF.
- *
- * \param nb_sector Number of contiguous sectors to write.
- *
- * \retval OK Success.
- * \retval KO Failure.
- *
- * \note First call must be preceded by a call to the \ref at45dbx_write_open
- * function.
- *
- * \note As \ref AT45DBX_PAGE_SIZE is always a multiple of
- * \ref AT45DBX_SECTOR_SIZE, there is no need to check page end for each
- * byte.
- */
-extern Bool at45dbx_write_multiple_sector(U16 nb_sector);
-
-/*! \brief Callback function invoked before each sector write during
- * \ref at45dbx_write_multiple_sector.
- *
- * \param psector Pointer to sector to write.
- */
-extern void at45dbx_write_multiple_sector_callback(void *psector);
-
-//! @}
-
-
-/*! \name Single-Sector Access Functions
- */
-//! @{
-
-/*! \brief Reads 1 DF sector to a RAM buffer.
- *
- * Data flow is: DF -> RAM.
- *
- * \param ram Pointer to RAM buffer.
- *
- * \retval OK Success.
- * \retval KO Failure.
- *
- * \note First call must be preceded by a call to the \ref at45dbx_read_open
- * function.
- */
-extern Bool at45dbx_read_sector_2_ram(void *ram);
-
-/*! \brief Writes 1 DF sector from a RAM buffer.
- *
- * Data flow is: RAM -> DF.
- *
- * \param ram Pointer to RAM buffer.
- *
- * \retval OK Success.
- * \retval KO Failure.
- *
- * \note First call must be preceded by a call to the \ref at45dbx_write_open
- * function.
- */
-extern Bool at45dbx_write_sector_from_ram(const void *ram);
-
-//! @}
-
-
-#endif // _AT45DBX_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.c
deleted file mode 100644
index 4c0ace2..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief CTRL_ACCESS interface for the AT45DBX data flash controller.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-//_____ I N C L U D E S ___________________________________________________
-
-#include "conf_access.h"
-
-
-#if AT45DBX_MEM == ENABLE
-
-#include "conf_at45dbx.h"
-#include "at45dbx.h"
-#include "at45dbx_mem.h"
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-//! Whether to detect write accesses to the memory.
-#define AT45DBX_MEM_TEST_CHANGE_STATE ENABLED
-
-
-#if (ACCESS_USB == ENABLED || ACCESS_MEM_TO_RAM == ENABLED) && AT45DBX_MEM_TEST_CHANGE_STATE == ENABLED
-
-//! Memory data modified flag.
-static volatile Bool s_b_data_modify = FALSE;
-
-#endif
-
-
-/*! \name Control Interface
- */
-//! @{
-
-
-Ctrl_status at45dbx_test_unit_ready(void)
-{
- return (at45dbx_mem_check() == OK) ? CTRL_GOOD : CTRL_NO_PRESENT;
-}
-
-
-Ctrl_status at45dbx_read_capacity(U32 *u32_nb_sector)
-{
- *u32_nb_sector = (AT45DBX_MEM_CNT << (AT45DBX_MEM_SIZE - AT45DBX_SECTOR_BITS)) - 1;
-
- return CTRL_GOOD;
-}
-
-
-Bool at45dbx_wr_protect(void)
-{
- return FALSE;
-}
-
-
-Bool at45dbx_removal(void)
-{
- return FALSE;
-}
-
-
-//! @}
-
-
-#if ACCESS_USB == ENABLED
-
-#include "usb_drv.h"
-#include "scsi_decoder.h"
-
-
-/*! \name MEM <-> USB Interface
- */
-//! @{
-
-
-Ctrl_status at45dbx_usb_read_10(U32 addr, U16 nb_sector)
-{
- if (addr + nb_sector > AT45DBX_MEM_CNT << (AT45DBX_MEM_SIZE - AT45DBX_SECTOR_BITS)) return CTRL_FAIL;
-
- at45dbx_read_open(addr);
- at45dbx_read_multiple_sector(nb_sector);
- at45dbx_read_close();
-
- return CTRL_GOOD;
-}
-
-
-void at45dbx_read_multiple_sector_callback(const void *psector)
-{
- U16 data_to_transfer = AT45DBX_SECTOR_SIZE;
-
- // Transfer read sector to the USB interface.
- while (data_to_transfer)
- {
- while (!Is_usb_in_ready(g_scsi_ep_ms_in))
- {
- if(!Is_usb_endpoint_enabled(g_scsi_ep_ms_in))
- return; // USB Reset
- }
-
- Usb_reset_endpoint_fifo_access(g_scsi_ep_ms_in);
- data_to_transfer = usb_write_ep_txpacket(g_scsi_ep_ms_in, psector,
- data_to_transfer, &psector);
- Usb_ack_in_ready_send(g_scsi_ep_ms_in);
- }
-}
-
-
-Ctrl_status at45dbx_usb_write_10(U32 addr, U16 nb_sector)
-{
- if (addr + nb_sector > AT45DBX_MEM_CNT << (AT45DBX_MEM_SIZE - AT45DBX_SECTOR_BITS)) return CTRL_FAIL;
-
-#if AT45DBX_MEM_TEST_CHANGE_STATE == ENABLED
- if (nb_sector) s_b_data_modify = TRUE;
-#endif
-
- at45dbx_write_open(addr);
- at45dbx_write_multiple_sector(nb_sector);
- at45dbx_write_close();
-
- return CTRL_GOOD;
-}
-
-
-void at45dbx_write_multiple_sector_callback(void *psector)
-{
- U16 data_to_transfer = AT45DBX_SECTOR_SIZE;
-
- // Transfer sector to write from the USB interface.
- while (data_to_transfer)
- {
- while (!Is_usb_out_received(g_scsi_ep_ms_out))
- {
- if(!Is_usb_endpoint_enabled(g_scsi_ep_ms_out))
- return; // USB Reset
- }
-
- Usb_reset_endpoint_fifo_access(g_scsi_ep_ms_out);
- data_to_transfer = usb_read_ep_rxpacket(g_scsi_ep_ms_out, psector,
- data_to_transfer, &psector);
- Usb_ack_out_received_free(g_scsi_ep_ms_out);
- }
-}
-
-
-//! @}
-
-#endif // ACCESS_USB == ENABLED
-
-
-#if ACCESS_MEM_TO_RAM == ENABLED
-
-/*! \name MEM <-> RAM Interface
- */
-//! @{
-
-
-Ctrl_status at45dbx_df_2_ram(U32 addr, void *ram)
-{
- if (addr + 1 > AT45DBX_MEM_CNT << (AT45DBX_MEM_SIZE - AT45DBX_SECTOR_BITS)) return CTRL_FAIL;
-
- at45dbx_read_open(addr);
- at45dbx_read_sector_2_ram(ram);
- at45dbx_read_close();
-
- return CTRL_GOOD;
-}
-
-
-Ctrl_status at45dbx_ram_2_df(U32 addr, const void *ram)
-{
- if (addr + 1 > AT45DBX_MEM_CNT << (AT45DBX_MEM_SIZE - AT45DBX_SECTOR_BITS)) return CTRL_FAIL;
-
-#if AT45DBX_MEM_TEST_CHANGE_STATE == ENABLED
- s_b_data_modify = TRUE;
-#endif
-
- at45dbx_write_open(addr);
- at45dbx_write_sector_from_ram(ram);
- at45dbx_write_close();
-
- return CTRL_GOOD;
-}
-
-
-//! @}
-
-#endif // ACCESS_MEM_TO_RAM == ENABLED
-
-
-#endif // AT45DBX_MEM == ENABLE
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.h
deleted file mode 100644
index de24fa3..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief CTRL_ACCESS interface for the AT45DBX data flash controller.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _AT45DBX_MEM_H_
-#define _AT45DBX_MEM_H_
-
-
-#include "conf_access.h"
-
-#if AT45DBX_MEM == DISABLE
- #error at45dbx_mem.h is #included although AT45DBX_MEM is disabled
-#endif
-
-
-#include "ctrl_access.h"
-
-
-//_____ D E C L A R A T I O N S ____________________________________________
-
-/*! \name Control Interface
- */
-//! @{
-
-/*! \brief Tests the memory state and initializes the memory if required.
- *
- * The TEST UNIT READY SCSI primary command allows an application client to poll
- * a LUN until it is ready without having to allocate memory for returned data.
- *
- * This command may be used to check the media status of LUNs with removable
- * media.
- *
- * \return Status.
- */
-extern Ctrl_status at45dbx_test_unit_ready(void);
-
-/*! \brief Returns the address of the last valid sector in the memory.
- *
- * \param u32_nb_sector Pointer to the address of the last valid sector.
- *
- * \return Status.
- */
-extern Ctrl_status at45dbx_read_capacity(U32 *u32_nb_sector);
-
-/*! \brief Returns the write-protection state of the memory.
- *
- * \return \c TRUE if the memory is write-protected, else \c FALSE.
- *
- * \note Only used by removable memories with hardware-specific write
- * protection.
- */
-extern Bool at45dbx_wr_protect(void);
-
-/*! \brief Tells whether the memory is removable.
- *
- * \return \c TRUE if the memory is removable, else \c FALSE.
- */
-extern Bool at45dbx_removal(void);
-
-//! @}
-
-
-#if ACCESS_USB == ENABLED
-
-/*! \name MEM <-> USB Interface
- */
-//! @{
-
-/*! \brief Tranfers data from the memory to USB.
- *
- * \param addr Address of first memory sector to read.
- * \param nb_sector Number of sectors to transfer.
- *
- * \return Status.
- */
-extern Ctrl_status at45dbx_usb_read_10(U32 addr, U16 nb_sector);
-
-/*! \brief Tranfers data from USB to the memory.
- *
- * \param addr Address of first memory sector to write.
- * \param nb_sector Number of sectors to transfer.
- *
- * \return Status.
- */
-extern Ctrl_status at45dbx_usb_write_10(U32 addr, U16 nb_sector);
-
-//! @}
-
-#endif
-
-
-#if ACCESS_MEM_TO_RAM == ENABLED
-
-/*! \name MEM <-> RAM Interface
- */
-//! @{
-
-/*! \brief Copies 1 data sector from the memory to RAM.
- *
- * \param addr Address of first memory sector to read.
- * \param ram Pointer to RAM buffer to write.
- *
- * \return Status.
- */
-extern Ctrl_status at45dbx_df_2_ram(U32 addr, void *ram);
-
-/*! \brief Copies 1 data sector from RAM to the memory.
- *
- * \param addr Address of first memory sector to write.
- * \param ram Pointer to RAM buffer to read.
- *
- * \return Status.
- */
-extern Ctrl_status at45dbx_ram_2_df(U32 addr, const void *ram);
-
-//! @}
-
-#endif
-
-
-#endif // _AT45DBX_MEM_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.a b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.a
deleted file mode 100644
index e01ab14..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.a
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.a b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.a
deleted file mode 100644
index 9aa4f24..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.a
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a
deleted file mode 100644
index 00536f5..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.a b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.a
deleted file mode 100644
index a61dea3..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.a
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.a b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.a
deleted file mode 100644
index 6883192..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.a
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a
deleted file mode 100644
index 0b09aa8..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/revision.txt b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/revision.txt
deleted file mode 100644
index 5420c93..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/revision.txt
+++ /dev/null
@@ -1 +0,0 @@
-Revision: 2491
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_api.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_api.h
deleted file mode 100644
index 17ba2ba..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_api.h
+++ /dev/null
@@ -1,1687 +0,0 @@
-/*
- * Programming interface for wl_api.
- * Copyright (C) 2010 HD Wireless AB
- *
- * You should have received a copy of the license along with this library.
- */
-
-/*! \file wl_api.h *************************************************************
- *
- * \brief Basic WiFi API
- *
- * This file provides the wl_api interface.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices:
- * \li SPB104 + EVK1100
- * \li SPB104 + EVK1101
- * \li SPB104 + EVK1104
- * \li SPB104 + EVK1105 (SPI)
- * \li SPB104 + EVK1105 (SPI + irq)
- * \li SPB105 + EVK1105 (SPI)
- * - AppNote:
- *
- * \author H&D Wireless AB: \n
- *
- *****************************************************************************
- *
- * \section intro Introduction
- * This is the documentation for the generic WiFi Driver API \a wl_api.
- *
- * \section files Main Files
- * - wl_api.h : WiFi driver interface.
- * - lib_ucr*_hd_wifi_standalone_v*.*.a - Driver library.
- *
- */
-/** \mainpage wl_api Reference Manual
-
-\image html images/wl_api_block_diagram_small.png "wl_api Architecture"
-
-(o)WL API &copy; is a programming interface for WiFi (802.11). It aims
-to be a complete interface for embedded applications wanting to use
-wireless as a communications interface. (o)WL API &copy; is shortened
-"wl_api" in this document.
-
-wl_api has been designed to meet the following goals :
- \li Simple : The API is as simple as is practicable
- to make it easy to use.
- \li Minimal size : The API is usable on very resource constrained
- platforms.
- \li Portable : The API is deployable on any platform with a standards
- compliant C compiler.
- \li OS independent : The API is deployable on systems using a real time
- operating system as well as with applications running on the
- "bare metal" of a hardware platform (that is without an operating system).
-
-As a consequence of these design goals wl_api does not allow very fine
-grained control of most parameters relating to 802.11 networks. That
-would increase the flexibility of the API while also increasing
-complexity and code size. When the underlying WiFi hardware can
-support a richer feature set the extra features can be offered as a
-add-on library if required.
-
-The wl_api is implemented by two libraries. The core library is
-compiled for a hardware platform and is independent of operating
-system or IP stack. The core library contains all WiFi
-functionality. The core library is supported by a suite of transport
-libraries. The transport libraries implements the hardware
-communication layer and are specific to the type of hardware interface
-used to connect the host platform to the WiFi hardware. For example,
-there are transport libraries for SPI and for SDIO. Only the core
-library has a public interface (wl_api.h) but applications will need
-to link with both the core library and a transport library matching
-the hardware configuration.
-
-\section wl_api_princ Operation Principles
-
-There are three important properties of wl_api to keep in mind when
-programming with it.
-
-The first is that wl_api is \b asynchronous. For instance, when the
-\a wl_connect() function is called to attempt connection with an access
-point it will trigger a sequence of packets being exchanged with the
-access point after which, if everything is okay, a connection has been
-established. The \a wl_connect() call is asynchronous (or non-blocking)
-which means that you don't know if the connection attempt has
-succeeded after the call returns. You only know if the sequence was
-successfully started or not. To find out if, and when, the connection
-attempt was successful you must register an event handler using the
-function \a wl_register_event_cb(). This is true of a number of API calls
-(which is indicated in their documentation).
-
-The second important property is that wl_api is \b polled. wl_api
-never executes "by itself", since it would then have to support
-interrupts, timers, locks and other operating system dependent
-features. Instead all asynchronous processes proceed when wl_api is
-polled by calling the \a wl_tick() function. When \a wl_tick() is called
-wl_api reacts to any received management frames, expires any internal timers and
-performs any other tasks necessary for forward progress. After
-\a wl_tick() returns nothing will happen unless it or some other wl_api
-function is called again. Also, to send and receive data, the \a wl_process_rx()
-and \a wl_process_tx() must be invoked upon reception and transmission of data.
-
-The third important property is that wl_api is \b not \b thread \b safe.
-All wl_api calls must execute in the same context since the
-library has no knowledge of the locking mechanisms available (if any).
-
-\section wl_api_code_examples A note on the code examples
-
-The code examples illustrate how to call the different wl_api functions.
-They do not constitute a complete program. Functions with the prefix "app_"
-in the code examples are application specific calls that illustrate a
-particular action. These functions are not part of the API and will have
-to be implemented if needed. For a complete working code example see
-one of the H&D Wireless software reference designs, such as the WiFi HTTP
-server demo code in the Atmel Software Framework.
-
-The API is structured into these functional groups:
-
-\li \ref wl_api
-\li \ref wl_wifi
-\li \ref wl_data
-\li \ref wl_transport
-\li \ref wl_custom
-
-Also documented here is the transport layers for SPI and SDIO.
-There interfaces are only necessary when porting the library to
-a new hardware platform.
-
-\li \ref wl_spi
-\li \ref wl_sdio
-
- * \section contactinfo Contact Information
- * For further information, visit
- * <A href="http://www.hd-wireless.se/">H&D Wireless</A>.\n
- * Support and FAQ: http://www.atmel.com/
- */
-
-#ifndef WL_API_H
-#define WL_API_H
-
-#define WL_API_RELEASE_NAME "v2.7.0"
-
-/*! Maximum size of a SSID */
-#define WL_SSID_MAX_LENGTH 32
-/*! Size of a MAC-address or BSSID */
-#define WL_MAC_ADDR_LENGTH 6
-/*! Maximum length of a passphrase */
-#define WL_MAX_PASS_LEN 64
-/*! Indicates that there is no SNR information */
-#define WL_SNR_UNKNOWN -128
-
-#define SPB104 104
-#define SPB105 105
-
-/*! \ingroup wl_api
- * API Error codes */
-typedef enum {
- WL_FAILURE = -1,
- WL_SUCCESS = 1,
- WL_NOEFFECT,
- WL_OOM,
- WL_INVALID_LENGTH,
- WL_NOT_SUPPORTED,
- WL_ABSORBED,
- WL_RESOURCES,
- WL_BUSY,
- WL_RETRY, /*!< Retry the operation later. The driver is busy
- resolving an operation that conflicts with the
- request. */
- WL_INVALID_ARGS,
- WL_AVAIL,
- WL_CARD_FAILURE, /*!< Could not detect SPB device */
- WL_FIRMWARE_INVALID, /*!< Invalid firmware data */
-
-} wl_err_t;
-
-/*! \ingroup wl_wifi
- * Event identifiers */
-enum wl_event_id_t {
- WL_EVENT_MEDIA_CONNECTED = 0,
- WL_EVENT_CONN_FAILURE,
- WL_EVENT_MEDIA_DISCONNECTED,
- WL_EVENT_SCAN_COMPLETE,
- WL_EVENT_FAILURE,
- MAX_WL_EVENT
-};
-
-/*! \ingroup wl_wifi
- * Authentication modes */
-enum wl_auth_mode {
- AUTH_MODE_INVALID,
- AUTH_MODE_AUTO,
- AUTH_MODE_OPEN_SYSTEM,
- AUTH_MODE_SHARED_KEY,
- AUTH_MODE_WPA,
- AUTH_MODE_WPA2,
- AUTH_MODE_WPA_PSK,
- AUTH_MODE_WPA2_PSK
-};
-
-/*! \ingroup wl_wifi
- * Encryption modes */
-enum wl_enc_type { /* Values map to 802.11 encryption suites... */
- ENC_TYPE_WEP = 5,
- ENC_TYPE_TKIP = 2,
- ENC_TYPE_CCMP = 4,
- /* ... except these two, 7 and 8 are reserved in 802.11-2007 */
- ENC_TYPE_NONE = 7,
- ENC_TYPE_AUTO = 8
-};
-
-enum wl_host_attention_mode {
- WL_HOST_ATTENTION_SDIO = 0x1, /*!< For SDIO or polled SPI */
- WL_HOST_ATTENTION_SPI = 0x5a /*!< For SPI with interrupt line */
-};
-
-/*! \ingroup wl_wifi
- * Event descriptor
-*/
-struct wl_event_t {
- enum wl_event_id_t id; /**< Event identifier. */
-
-};
-
-/*! \ingroup wl_wifi
- * Infrastructure (ESS) or Ad-hoc (IBSS) connection modes.
- */
-enum wl_conn_type_t {
- WL_CONN_TYPE_INFRA, /*!< For infrastructure mode (default) */
- WL_CONN_TYPE_ADHOC /*!< For ad-hoc mode */
-};
-
-/* Note:
- * If your environment does not have stdint.h you will have to
- * define the fixed-width integer types specified in that file
- * yourself, make sure that those definitions are included
- * before any inclusions of wl_api.h, and build with the macro
- * WITHOUT_STDINT defined. In this case the wl_api library
- * must have been built with the same integer type definitions.
- */
-
-#ifndef WITHOUT_STDINT
-#include <stdint.h>
-#endif
-
-/* Note:
- * If your environment does not have stdio.h you will have to define
- * the size_t type yourself, make sure that that definition is
- * included before any inclusions of wl_api.h, and build with the
- * macro WITHOUT_STDIO defined. In this case the wl_api library must
- * have been built with the same size_t type definition.
- */
-#ifndef WITHOUT_STDIO
-#include <stdio.h>
-#endif
-
-/*! \ingroup wl_wifi
- *
- * \brief SSID representation.
- *
- * The SSID is a binary string and cannot be treated as a
- * C-string safely. An empty SSID is represented by a
- * SSID struct with the len field set to 0.
- */
-struct wl_ssid_t
-{
- char ssid[WL_SSID_MAX_LENGTH]; /**< Octet array containing the SSID data. */
- uint8_t len; /**< Length of valid data in ssid member.
- * Cannot be longer than WL_SSID_MAX_LENGTH. */
-};
-
-/*! \ingroup wl_wifi
- *
- * MAC-address/BSSID representation
- *
- * A broadcast BSSID is one with all octets set to 0xFF.
- */
-struct wl_mac_addr_t
-{
- uint8_t octet[WL_MAC_ADDR_LENGTH]; /**< Octet array containing the MAC address
- * data. This array is always WL_MAC_ADDR_LENGTH bytes.
- */
-};
-
-/*! \ingroup wl_wifi
- *
- * Network representation
- *
- */
-struct wl_network_t
-{
- struct wl_ssid_t ssid; /**< The SSID of the network. */
- struct wl_mac_addr_t bssid; /**< The BSSID of the network. */
- uint8_t channel; /**< The wlan channel which the network uses */
- uint32_t beacon_period; /**< Beacon period for the network */
- uint16_t dtim_period; /**< DTIM period for the network */
- int32_t rssi; /**< Received Signal Strength in dBm (measured on beacons) */
- int32_t snr; /**< Received Signal to noise ratio in dBm (measured on beacons) */
- uint8_t enc_type; /**< The encryption type used in the network. */
-
- enum wl_conn_type_t net_type; /**< Type of network (Infrastructure or Ad-Hoc */
- size_t ie_len; /**< Always 0 unless wl_api has been built with WL_CONFIG_WPA_SUPPLICANT */
-
- uint8_t ie[0]; /**< Not used unless wl_api has been built with WL_CONFIG_WPA_SUPPLICANT */
-};
-
-/*! \ingroup wl_wifi
- * Network list representation. Array of pointers to wl_network_t entries.
- *
- */
-struct wl_network_list_t
-{
- struct wl_network_t **net; /**< The list of pointers to networks */
- size_t cnt; /**< Number of networks */
-};
-
-#define WL_RATE_1MBIT 2
-#define WL_RATE_2MBIT 4
-#define WL_RATE_5_5MBIT 11
-#define WL_RATE_6MBIT 12
-#define WL_RATE_9MBIT 18
-#define WL_RATE_11MBIT 22
-#define WL_RATE_12MBIT 24
-#define WL_RATE_18MBIT 36
-#define WL_RATE_22MBIT 44
-#define WL_RATE_24MBIT 48
-#define WL_RATE_33MBIT 66
-#define WL_RATE_36MBIT 72
-#define WL_RATE_48MBIT 96
-#define WL_RATE_54MBIT 108
-#define WL_RATE_NUM_RATES 14
-#define WL_RATE_INVALID WL_RATE_NUM_RATES
-
-/*! \ingroup wl_wifi
- *
- * Rate representation
- *
- */
-typedef uint8_t wl_rate_t;
-
-/** \defgroup wl_api Library support functions
- *
- * These functions manage the library in general. They concern initalizing
- * the library, downloading firmware to the WiFi chip and handling events
- * from the library.
-
-For this example we assume that the application is running stand-alone
-without an operating system.
-
-Before the library can do anything it needs to start up the WiFi
-hardware by downloading a firmware image. The firmware image is
-relatively big (around 144kB) and is therefore not included in the library
-it is only needed once. It is up to the application to decide where to
-store the firmware image and how to read it into the wl_api library.
-
-Step one is to write a function of the type \a ::wl_fw_read_cb_t
-that wl_api will call to retrive the firmware image. Assuming that you
-have some spare RAM (or whatever memory type is used for read only
-data, such as FLASH memory) on your platform you can simply include
-the firmware image from the \a wl_fw.h header file and write a
-firmware read function like this
-
-\code
-static size_t fw_read_cb(void* ctx,
- uint8_t** buf,
- size_t offset,
- size_t len)
-{
- if ( NULL == buf ) {
- return 0;
- }
- *buf = ((uint8_t*) fw_buf) + offset;
- if ( len > ( fw_len - offset ) ) {
- return fw_len - offset;
- }
- return len;
-}
-
-\endcode
-
-If the firmware image is stored in ROM this function may have to read
-it back block by block instead.
-
-First, firmware must be downloaded to the device
-
-\code
-if ( wl_transport_init(fw_read_cb, NULL, &mode) != WL_SUCCESS ) {
- app_error("Firmware download failed");
- return 0;
-}
-\endcode
-
-The wl_api library is then initialized like this
-
-\code
-if ( wl_init(NULL, init_complete_cb, mode) != WL_SUCCESS ) {
- app_error("Init failed");
- return 0;
-}
-\endcode
-
-The library startup process will now require \a wl_poll() to be called
-a number of times before it can complete. In addition, if the
-application needs to know when the startup process has completed so
-that it can, for example, start up an IP stack it will have to supply
-a valid callback function of the type \a ::wl_init_complete_cb_t as a parameter
-to the \a wl_init() call and start polling the wl_api library.
-
-The init complete callback will only be executed during a call to \a wl_poll()
-or another wl_api function. This simplifies the implementation since no
-internal locking is required and the wl_api library becomes OS-independent.
-
-\code
-static void init_complete_cb(void* ctx) {
- init_ip_stack();
-}
-\endcode
-
-Registering the event callback is straightforward :
-
-\code
-if (wl_register_event_cb(event_cb, NULL) != WL_SUCCESS) {
- app_error("Failed to register event handler");
- return 0;
-}
-\endcode
-
-Similar to \a wl_poll(), there is also a \a wl_tick() function that takes a
-free running "tick" counter with millisecond resolution as an argument so
-that it can trigger internal timers when necessary. Assuming that such a tick
-counter is provided by the macro GET_MS_TICK() the wl_api execution loop becomes
-
-\code
-while (TRUE) {
- wl_tick(GET_MS_TICK());
- wl_poll();
-}
-\endcode
-
-In a stand-alone application this loop would usually be the main application
-loop and include application specific calls as well.
-
-After some number of main loop iterations the init_complete_cb will be
-invoked and the application can initialize its IP stack.
-
- * @{
- */
-
-/*! \brief WiFi event callback.
- *
- * This function receives WiFi events that the application
- * wants notification of. This function is supplied by the user
- * of the API.
- *
- * @param event Struct describing the type of event and, for some
- * events, additional information regarding the
- * status of the event. See wl_event_t for additional
- * information.
- * @param ctx A context handle. This handle is passed
- * untouched to the callback and has the same value
- * as the context registered with the callback in
- * wl_register_event_cb().
- */
-typedef void (*wl_event_cb_t) (struct wl_event_t event, void* ctx);
-
-
-/*! \brief Initialization complete callback function.
- *
- * Invoked when WiFi initialization is complete.
- *
- * @param ctx Opaque context pointer as provided to \a wl_init() that will be
- * passed back to the callback.
- */
-typedef void (wl_init_complete_cb_t)(void* ctx);
-
-
-/*! \brief Register an event handler.
- *
- * Register an event handler with the driver. This
- * event handler will be called whenever a event
- * listed in #wl_event_id_t occurs.
- * See #wl_event_cb_t and #wl_event_id_t for more details.
- *
- * @param cb Event callback function to register.
- * @param ctx Opaque context pointer that will be
- * passed to the callback when it is
- * invoked. This parameter is never
- * accessed by the API.
- * @return WL_SUCCESS
- */
-wl_err_t wl_register_event_cb(wl_event_cb_t cb, void* ctx);
-
-/*! \brief Initialize the wl_api library.
- *
- * Note that \a wl_poll() must be called for this function to progress
- * towards complete init
- *
- * The startup process will proceed asynchronously and will inkove
- * init_complete_cb when completed. The callback will not be invoked if any
- * error occurs during initialization.
- *
- * This function should be called after firmware has been downloaded to the
- * device.
- *
- * @param ctx Opaque context pointer that will be passed to the callback
- * when invoked. This parameter is never accessed by the API.
- * @param init_complete_cb callback function to invoke when initialization is
- * complete.
- * @param mode Indicates the host attention mode used by the device. If
- * \a wl_transport_init() was used to download the firmware image to the
- * device, the proper mode can be obtained from the mode parameter of
- * that function.
- *
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE
- */
-wl_err_t wl_init(void* ctx, wl_init_complete_cb_t init_complete_cb,
- enum wl_host_attention_mode mode);
-
-
-/*! \brief Shutdown the wl_api library and free resources.
- *
- * \a wl_init() must be invoked to startup the library
- * again.
- *
- * @return
- * - WL_SUCCESS on success
- * - WL_FAILURE
- *
- */
-wl_err_t wl_shutdown(void);
-
-
-/*! \brief WiFi driver timer tick function
- *
- * Periodic timers are triggered from this function so it should be called as
- * often as possible if precision timing is required (traffic timeouts,
- * authentication timeouts etc).
- *
- * @param tick A tick count in us. This is used to expire timers
- * in the driver.
- */
-void wl_tick(uint32_t tick);
-
-/*! @} */
-
-
-/** \defgroup wl_wifi Connection Management
- *
- * These functions access WiFi-specific functionality such as
- * scanning, connect/disconnect, authentication and encryption,
- * and power save modes.
- *
-
-\section scanning Scanning
-
-To scan all channels that are available in the current regulatory
-domain
-
-\code
- if ( wl_scan() != WL_SUCCESS ) {
- // May be busy scanning already, no fatal error
- return 0;
- }
-\endcode
-
-Since wl_scan() only starts the scanning process the application
-should add code to the event handler to catch the "scan complete" event
-and retrieve the list of seen networks from the library
-
-\code
-static void event_cb(struct wl_event_t event, void* ctx) {
- switch(event.id) {
- case WL_EVENT_SCAN_COMPLETE:
- struct wl_network_list_t *netlist;
- uint8_t netcnt;
-
- wl_get_network_list(&netlist);
- netcnt = netlist->cnt;
- while (--netcnt) {
- print_network(netlist->net[netcnt]);
- }
- break;
- }
-}
-\endcode
-
-The function print_network() could display the network name, the SSID, in
-a user interface. It is important to keep in mind is that despite the fact
-that the SSID is usually presented as a ASCII string, it is
-in fact just a byte string and can legally contain all kinds of
-non-printable characters, including a 0-byte. This means that it is
-easy to end up with buffer overrun bugs if the SSID is ever treated
-as a normal string without precautions.
-
-\code
-void print_network(struct wl_network_t* wl_network)
-{
- char ssid[WL_SSID_MAX_LENGTH + 1];
- memset(ssid, 0, sizeof(ssid));
- memcpy(ssid, wl_network->ssid.ssid, wl_network->ssid.len);
- if (app_is_printable(ssid)) {
- app_print("\"%s\" ", ssid);
- }
- else {
- app_print("<binary SSID> ");
- }
- switch (wl_network->enc_type) {
- case ENC_TYPE_WEP :
- app_print("(WEP encryption)");
- break;
- case ENC_TYPE_TKIP :
- app_print("(TKIP encryption)");
- break;
- case ENC_TYPE_CCMP :
- app_print("(CCMP encryption)");
- break;
- }
- app_print("\n");
-}
-\endcode
-
-\section connecting Connecting
-
-To connect to an access point (beware binary SSIDs) the connection process
-must be started
-
-\code
- if ( wl_connect("My AP", strlen("My AP"))
- != WL_SUCCESS ) {
- app_error("Connection failed.\n");
- return 0;
- }
-\endcode
-
-and the \a WL_EVENT_MEDIA_CONNECTED and \a WL_EVENT_CONN_FAILURE events should be
-caught. To detect that a connection is terminated after it has been successfully established
-(such as when the AP goes out of range) the \a WL_EVENT_MEDIA_DISCONNECTED event
-must be also be caught
-
-
-\code
-static void event_cb(struct wl_event_t event, void* ctx) {
- switch(event.id) {
- case WL_EVENT_SCAN_COMPLETE:
- struct wl_network_list_t *netlist;
- uint8_t netcnt;
-
- wl_get_network_list(&netlist);
- netcnt = netlist->cnt;
- while (--netcnt) {
- print_network(netlist->net[netcnt]);
- }
- break;
- case WL_EVENT_CONN_FAILURE:
- app_error("Connection failed\n");
- break;
- case WL_EVENT_MEDIA_CONNECTED:
- app_print("Connected to Access Point\n");
- app_ip_interface_up();
- break;
- case WL_EVENT_MEDIA_DISCONNECTED:
- app_print("Disconnected from Access Point\n");
- app_ip_interface_down();
- break;
- }
-}
-\endcode
-
-\section security Security
-
-To use WEP a WEP key must be added before the connection is initiated.
-To set the 40-bit WEP key 0xDEADBEEF00 as default key for key index 0 do
-
-\code
- char key[5] = { 0xDE, 0xAD, 0xBE, 0xEF, 0x00 };
- struct wl_mac_addr_t bssid;
-
- // This means that the bssid is a broadcast bssid and the WEP key will be a default key instead of a key-mapping key.
- memset(&bssid.octet, 0xff, sizeof bssid.octet);
-
- if ( wl_add_wep_key(0, sizeof key, key, &bssid)
- != WL_SUCCESS ) {
- app_error("Failed to add WEP key.");
- return 0;
- }
-\endcode
-
-To use WPA/WPA2 with a Pre-shared key a passphrase must be associated
-with the network before the connection is initiated.
-
-\code
- struct wl_network_t net;
- char passphrase[] = "MySecretKey";
-
- memset(&net, 0, sizeof net);
- memset(net.bssid.octet, 0xFF, sizeof net.bssid.octet);
- strncpy(net.ssid.ssid, "My AP", strlen("My AP"));
- net.ssid.len = strlen("My AP");
- net.enc_type = ENC_TYPE_AUTO;
- if (wl_set_passphrase(&net,
- passphrase,
- strlen(passphrase),
- ENC_TYPE_AUTO,
- AUTH_MODE_AUTO)
- != WL_SUCCESS) {
- app_error("Failed to add passphrase");
- }
-\endcode
-
-The library supports several passphrase-network associations to be
-configured simultaneously. Be aware that the \a wl_connect() call
-can take up to 15 seconds longer than normal when using a pre-shared
-WPA/WPA2 key since the platform must calculate a temporal encryption
-key from the passphrase before the connection attempt can start.
-
- * @{
- */
-
-
-/*! \brief Scan all channels.
- *
- * Starts a scan of all WiFi channels allowed in this regulatory
- * domain. The list of allowed channels (the domain) is adapted to the
- * channels announced as allowed by the first AP heard.
- *
- * The scan will proceed asynchronously and will raise a
- * WL_EVENT_SCAN_COMPLETE event when completed.
- *
- * Currently, there's a limit on the scan list size that depends on the
- * architecture (6 networks for the AVR32 UCR1 architecture 16 networks for
- * other architectures. If more network exist, the strongest networks are
- * chosen. Note that the limitation on the scan list size does not limit the
- * networks which the device can connect to. See wl_connect() for more
- * details.
- *
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE.
- */
-wl_err_t wl_scan(void);
-
-/*! \brief Get the list of currently known networks.
- *
- * Retrieves the list of currently known networks from
- * the driver. To ensure that this list is up-to-date
- * a wl_scan() call should be issued and this function
- * should be called upon reception of the WL_EVENT_SCAN_COMPLETE
- * event. This function can be called at other times
- * but the list of networks retrieved then might not
- * correspond to the networks actually in range.
- *
- * Note that a successful scan does not necessarily
- * find any networks.
- *
- * @param network_list Output buffer. The API call returns
- * a pointer to allocated memory containing the network list.
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE.
- */
-wl_err_t wl_get_network_list(struct wl_network_list_t **network_list);
-
-#ifdef WFE_6_12
-/*! \brief Start a Ad-hoc network.
- *
- * Attempt to start a Ad-hoc (IBSS) network. If a Ad-hoc network
- * is successfully started then a WL_EVENT_MEDIA_CONNECTED event
- * will be raised once the first peer station connects to the Ad-hoc
- * network (and not when the network is announced on the air).
- *
- * If a Ad-hoc network should be started with encryption
- * enabled then \a wl_set_passphrase() should be called before
- * \a wl_start_adhoc_net() to configure the security parameters.
- * The Ad-hoc network is started with the security parameters
- * (if any) that was configured for the specified \a ssid.
- *
- * @param ssid The SSID of the new network. If there's a network
- * already present with this SSID this call will fail.
- * @param channel The channel to use. Valid channels are 1-14
- * @param auth_mode The authentication mode to use. Supported
- * authentication modes for Ad-hoc networks are
- * AUTH_MODE_OPEN_SYSTEM and AUTH_MODE_SHARED_KEY.
- * Passing other modes will cause a WL_INVALID_ARGS return.
- * If AUTH_MODE_SHARED_KEY is used then a valid WEP
- * key must be set with a call to \a wl_add_wep_key()
- * and the default WEP key index must be set with a
- * call to \a wl_set_default_wep_key().
- * @return
- * - WL_SUCCESS on success.
- * - WL_INVALID_ARGS if the ssid is malformed, if
- * the channel not valid or if the authentication mode
- * is invalid.
- * - WL_RETRY if the driver is busy resolving a conflicting
- * operation. The operation should be retried after a wait
- * (at least one call to wl_poll() for polled implementations).
- * - WL_BUSY if the driver is already connected or if a network
- * with the same SSID is already known.
- *
- */
-wl_err_t wl_start_adhoc_net(struct wl_ssid_t ssid,
- uint8_t channel,
- enum wl_auth_mode auth_mode);
-#endif
-/*! \brief Connect to a SSID.
- *
- * Attempt to connect to a given SSID. If the driver is already
- * connected to an AP with a different SSID then this call will
- * return WL_BUSY and wl_disconnect() should be called before
- * trying again.
- *
- * The connection process will proceed asynchronously and will raise a
- * WL_EVENT_MEDIA_CONNECTED event when completed, or a WL_EVENT_CONN_FAILURE
- * when failed. After a WL_EVENT_MEDIA_CONNECTED event has been raised
- * a WL_EVENT_MEDIA_DISCONNECT event will be raised if the connection is
- * terminated. Note that this can be caused by external factors and can
- * happen at any time.
- *
- * If wl_connect() is invoked with a network that is not shown in the
- * scan list, the device will probe for that specific network and connect
- * to it, if found. This is also the method to use in order to connect to
- * "hidden" networks (AP's that doesn't broadcast its SSID).
- *
- * @param ssid Pointer to the SSID string.
- * Freed by caller.
- * @param ssid_len Length of the SSID string in octets. Max value is 32.
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE if the network could not be found
- * - WL_BUSY if the driver is already connected
- * - WL_RETRY if the driver is busy resolving a conflicting operation.
- * The operation should be retried after a wait (at least one call to wl_poll()
- * for polled implementations).
- */
-wl_err_t wl_connect(char* ssid, size_t ssid_len);
-
-/*! \brief Connect to a BSSID
- *
- * Attempt to connect to a given BSSID. If the driver is already
- * connected to an AP with a different BSSID then this call will
- * return WL_BUSY and wl_disconnect() should be called before
- * trying again.
- *
- * The connection process will proceed asynchronously and will raise a
- * WL_EVENT_MEDIA_CONNECTED event when completed, or a WL_EVENT_CONN_FAILURE
- * when failed. After a WL_EVENT_MEDIA_CONNECTED event has been raised
- * a WL_EVENT_MEDIA_DISCONNECT event will be raised if the connection is
- * terminated. Note that this can be caused by external factors and can
- * happen at any time.
- *
- * If wl_connect_bssid() is invoked with a network that is not shown in the
- * scan list, the device will probe for that specific network and connect
- * to it, if found.
- *
- * @param bssid Pointer to the BSSID. Freed by caller.
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE if the network could not be found
- * - WL_BUSY if the driver is already connected
- * - WL_RETRY if the driver is busy resolving a conflicting operation.
- * The operation should be retried after a wait (at least one call to wl_poll()
- * for polled implementations).
- */
-wl_err_t wl_connect_bssid(struct wl_mac_addr_t bssid);
-
-/*! \brief Disconnect from the network
- *
- * Disconnect from any currently associated network.
- *
- * The disconnection process will proceed asynchronously and will raise a
- * WL_EVENT_MEDIA_DISCONNECTED event when completed.
- * @return
- * - WL_SUCCESS if the disconnect process was started
- * - WL_FAILURE if the driver was not connected
- * - WL_RETRY if the driver is in the process of connecting.
- * In this case the disconnect must be retried after
- * the connection attempt has completed (resulted in a
- * WL_EVENT_MEDIA_CONNECTED or a WL_EVENT_CONN_FAILURE event).
- */
-wl_err_t wl_disconnect(void);
-
-/*!
- * @brief Add a WEP encryption key to the device.
- *
- * Configure a key into the device. The key type (WEP-40, WEP-104)
- * is determined by the size of the key (5 bytes for WEP-40, 13 bytes for WEP-104).
- *
- * @param key_idx The key index to set. Valid values are 0-3.
- * @param key_len Length of key in bytes. Valid values are 5 and 13.
- * @param key Key input buffer.
- * @param bssid BSSID that the key applies to. If this is
- * the broadcast BSSID then the key is configured
- * as one of the default keys (not _the_ default key,
- * this must be set by calling set_default_wep_key()
- * after adding it). If the BSSID is a valid unicast
- * bssid then the key is configured as a key-mapping
- * key ( See 802.11-2007 8.2.1.3 ).
- * @return
- * - WL_SUCCESS on success.
- * - WL_INVALID_LENGTH if the key length is bad.
- * - WL_FAILURE on failure
- */
-wl_err_t wl_add_wep_key(uint8_t key_idx,
- size_t key_len,
- const void *key,
- struct wl_mac_addr_t *bssid);
-
-/*! @brief Set the default WEP key index.
- *
- * Select which WEP key to use for transmitted packets.
- * For this to work correctly you must have added a WEP
- * key with \a wl_add_wep_key() as a default key, using the
- * same index as the one set in this call.
- * @param key_idx Index of the key to make the default key.
- * Valid values are 0-3.
- * @return WL_SUCCESS or WL_FAILURE.
- */
-wl_err_t wl_set_default_wep_key(uint8_t key_idx);
-
-/*! \brief Delete a WEP key.
- *
- * Deletes a WEP key from the driver.
- *
- * @param key_idx The index of the key to delete. Valid values are 0-3.
- * @param bssid BSSID that the key applies to. If this is
- * the broadcast BSSID then the key deleted is a default key.
- * If the BSSID is a valid unicast bssid then the deleted
- * key is a key-mapping key.
- * @return WL_SUCCESS or WL_FAILURE
- */
-wl_err_t wl_delete_wep_key(uint8_t key_idx, struct wl_mac_addr_t *bssid);
-
-/*! @brief Set a WPA/WPA2 passphase
- *
- * Associate a WPA/WPA2/RSN passphrase with a network.
- * The number of passphrases that can be stored can
- * vary but is always at least one. Passphrases can
- * be added until \a wl_add_wpa_passphrase() returns
- * WL_RESOURCES.
- *
- * @param net Network with which to associate the passphrase.
- * @param passphrase Passphrase. Valid characters in a passphrase
- * must lie between ASCII 32-126 (decimal).
- * @param len Length of passphrase. Valid lengths are 8-63.
- * @param enc_type Encryption type. If this is set to ENC_TYPE_AUTO
- * then the most secure supported mode will be automatically
- * selected. Normally you only need to pass something else here
- * if you need to enforce picking a certain encryption mode when
- * the network supports several modes and you don't want to use
- * the best one.
- * @param auth_mode Authentication mode. If this is set to AUTH_MODE_AUTO
- * then the most secure mode will be automatically selected.
- * Normally you only need to pass something else here if the network
- * announces support for both WPA and WPA2/RSN and the passphrases are
- * different.
- * @return
- * - WL_SUCCESS
- * - WL_INVALID_ARGS if the passphrase length is invalid.
- * - WL_RESOURCES if no more passphrases can be added.
- */
-wl_err_t wl_set_passphrase(const struct wl_network_t *net,
- const char *passphrase,
- const size_t len,
- const enum wl_enc_type enc_type,
- const enum wl_auth_mode auth_mode);
-
-/*! @brief Remove a WPA/WPA2 passphase
- *
- * Remove a WPA/WPA2/RSN passphrase associated with a network.
- *
- * @param net Network with which to associate the passphrase.
- * If net is NULL then all stored passphrases will be
- * cleared.
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE if no passphrase was associated with the net.
- */
-wl_err_t wl_clear_passphrase(struct wl_network_t *net);
-
-
-/*! \brief Enable legacy power save mode
- *
- * Enable legacy power save mode. In legacy power save mode, the device
- * will power down when idle. When connected, the device will wake up to
- * receive beacon frames and any buffered data from the AP. The response
- * time when legacy power save is enabled might therefore be as long as the
- * AP beacon interval (mostly 100 ms). However, the throughput should not
- * be affected.
- *
- * @return WL_SUCCESS or WL_FAILURE.
- */
-wl_err_t wl_enable_ps(void);
-
-/*! \brief Disable legacy power save mode
- *
- * @return WL_SUCCESS or WL_FAILURE.
- */
-wl_err_t wl_disable_ps(void);
-
-/*! \brief Configure power save parameters.
- *
- * @param use_ps_poll Use PS-Poll frames to retrieve buffered data. Any changes
- * to this parameter will take effect upon next connect
- * or when power save is enabled through wl_enable_ps().
- * Note: To retrieve one buffered packet, the ps poll scheme
- * needs one ps poll packet to the AP instead of two null
- * packets in the power management bit scheme. Ps poll avoids
- * the overhead of traffic monitoring time in active mode as
- * well. But since each ps poll request can make the AP
- * release only one buffered packet, it is not the optimal
- * scheme for applications with heavy downlink traffic.
- * @param ps_traffic_timeout Timeout in [ms] to wait for more buffered data
- * from AP. This setting has no effect if
- * use_ps_poll is 1. Any changes to this parameter
- * will take effect immediately.
- * @param ps_delay Power save will de delayed ps_delay [ms] after connecting to
- * an AP.
- * @param rx_all_dtim If set to 1, then STA will wake up to listen to every
- * beacon containing DTIM (delivery traffic indication messages) when
- * connected. The actual DTIM interval is configured in the AP.
- * If the DTIM interval, as configured in the AP, is larger than
- * \a listen_interval, the STA will wakeup according to the
- * \a listen_interval parameter.
- * @param listen_interval The Listen Interval field is used to indicate to the
- * AP how often a STA in power save mode wakes to listen
- * to beacon frames. The value of this parameter is expressed in units
- * of Beacon Interval. An AP may use the Listen Interval information in
- * determining the lifetime of frames that it buffers for a STA.
- * Any changes to this parameter will take effect upon next association.
- *
- * @return WL_SUCCESS or WL_FAILURE.
- */
-wl_err_t wl_conf_ps(uint8_t use_ps_poll,
- uint32_t ps_traffic_timeout,
- uint32_t ps_delay,
- uint8_t rx_all_dtim,
- uint16_t listen_interval);
-
-/*! \brief Get the interface MAC address.
- *
- * Return the 802.3 MAC address of the network interface.
- *
- * @param buf Output buffer. It must be at least WL_MAC_ADDR_LENGTH
- * bytes long and only the first WL_MAC_ADDR_LENGTH bytes
- * will contain valid data.
- * @return
- * - WL_FAILURE if the interface is not up.
- * - WL_SUCCESS
- */
-wl_err_t wl_get_mac_addr(uint8_t* buf);
-
-/*! \brief Return the associated network.
- *
- * Return the description of the currently associated
- * network, if any.
- *
- * @return The network description, or NULL of the driver
- * is unconnected.
- */
-struct wl_network_t* wl_get_current_network(void);
-/*! @} */
-
-/** \defgroup wl_data Data Transfer
- *
- * \brief Packet processing interface.
- *
- * Note that the examples in this group assumes that the transport library
- * functions in the \a wl_transport group are being used. For more information,
- * See the documentation for those functions in the \a wl_transport group.
-
-For the IP stack integration you need to intercept received packets so
-they can be sent up the stack and to transmit packets coming down the
-stack.
-
-By default the wl_api library discards all data packets. To receive
-them the application must register a rx interrupt service routine (isr)
-using the \a wl_register_rx_isr() function.
-
-\code
-static void rx_isr(void* ctx) {
- rx_pending = TRUE;
-}
-\endcode
-
-Since the rx_isr() function is only called in interrupt context, it is not
-safe to perform the actual read directly from rx_isr(). If an OS is used,
-the normal case is to signal a receiver thread to invoke the ip stack
-read function to read the pending data. In a system that runs without an OS
-(as in the example), a flag is set to indicate that wl_rx() can be invoked
-from the ip stack read function next time the ip stack is polled.
-The beginning of a ip stack read function can look like this
-
-\code
-static void ip_stack_rx_pkt() {
- char *pkt = malloc(MAX_PKT_SIZE);
- uint16_t len = MAX_PKT_SIZE;
-
- if (p == NULL) {
- app_error("Out of memory.");
- return;
- }
- wl_rx(pkt, &len);
- if (0 == len) {
- app_error("Packet reception failed.");
- free(pkt);
- return
- }
-}
-\endcode
-
-Since the ip_stack_rx_pkt() function should only be called when there is
-actually a packet ready to read you do not have to check the return value
-from \a wl_rx() since it only returns failure if there is no packet ready to
-read.
-
-A packet arriving from the WiFi interface can be either a data
-packet or a message from the WiFi hardware to the WiFi driver
-(which is implemented by the wl_api library). This means that
-wl_api must process every packet to decide if it is an internal
-message or a data frame that
-should be passed up to the application. Data packets are
-prefixed with an extra header containing some administrative
-information, and may be followed by padding bytes and so
-wl_api also needs to strip the extra header and any padding
-before the packet can be safely ingested by the IP stack.
-All this happens in the function \a wl_process_rx() which \b must
-be called on every packet received by a call to \a wl_rx().
-
-Continuing the ip_stack_rx_pkt() example
-
-\code
- {
- char* stripped_pkt;
- size_t stripped_pkt_len;
- uint16_t vlan;
- int status;
-
- status = wl_process_rx(pkt,
- len,
- &stripped_pkt,
- &stripped_pkt_len,
- &vlan);
- if (WL_ABSORBED == status) {
- // This is normal. The packet was a
- // wl_api-internal message.
- free(pkt);
- return;
- }
- app_ip_stack_input(stripped_pkt,
- stripped_pkt_len,
- vlan);
- free(pkt);
- }
-}
-\endcode
-
-If \a wl_process_rx() decides that the packet was a command it processes
-it and returns \a WL_ABSORBED to signal that the packet should
-not be used by anyone else. Otherwise stripped_pkt is
-pointing to the beginning of a 802.3 Ethernet frame of length
-stripped_pkt_len. If the IP stack supports VLAN and QoS
-the extra VLAN tag should be passed to the IP stack
-together with the packet. For IP stacks without this support the VLAN tag
-contents can safely be ignored, but it must still be filled in by \a wl_process_tx().
-
-To register the receive isr
-
-\code
- wl_register_rx_isr(rx_isr, NULL);
-\endcode
-
-Transmitting data packets happens in a similar way but does not
-require a callback/isr since the application/IP stack knows when it has
-packets to send.
-
-\code
-int ip_stack_tx_pkt(char *pkt, size_t len, uint16_t vlan_tag) {
- int status;
- char wlan_hdr[WL_HEADER_SIZE];
- // The packet must have an Ethernet header
- if (len < ETHERNET_HEADER_SIZE) {
- app_error("Invalid packet length");
- return 0;
- }
- hdr_len = sizeof wlan_hdr;
- status = wl_process_tx(pkt,
- ETHERNET_HEADER_SIZE,
- len,
- wlan_hdr,
- vlan_tag,
- NULL);
- if ( WL_SUCCESS != status ) {
- app_error("Packet processing failed");
- return 0;
- }
- // Transmit the header first
- if (wl_tx(wlan_hdr, hdr_len) != WL_SUCCESS) {
- app_error("Header transmission failed");
- return 0;
- }
- // Then transmit the data packet
- if (wl_tx(pkt, len) != WL_SUCCESS) {
- app_error("Packet transmission failed");
- return 0;
- }
-}
-\endcode
-
-The final piece of the puzzle in the IP stack integration is
-the MAC address of the WiFi interface
-
-\code
- char mac_addr[WL_MAC_ADDR_LENGTH];
-
- wl_get_mac_addr(mac_addr);
- ip_stack_set_mac_address(mac_addr);
-\endcode
-
- * @{
- */
-
-/*! Size of the wl_api packet header */
-#ifdef WFE_6_12
-#define WL_HEADER_SIZE 16
-#else
-#define WL_HEADER_SIZE 14
-#endif
-
-/*! Maximum packet size (including wl_api headers and paddings)
- *
- * Maximum packet size is obtained with the following data:
- *
- * 1500 bytes of Ethernet payload (MTU) + 14 bytes of Ethernet header +
- * WL_HEADER_SIZE of wl header. This data is then size-aligned to 16.
- *
- */
-#define WL_MAX_PKT_LEN 1536
-
-
-/*!
- * \brief Process rx packet.
- *
- * Processes a raw rx packet by unencrypting it (if necessary)
- * and stripping headers so as to output a 802.3 frame.
- *
- * wl_process_rx() will strip bytes both from the head and from the tail.
- *
- * Upon return from wl_process_rx(), the pointer at stripped_pkt will
- * point to the start of the Ethernet header, hence adjusting the offset
- * by WL_HEADER_LEN bytes. Any padding (added by the wifi device) will
- * be removed from the tail of the packet, hence making len smaller.
- *
- * The wl_api library of the device will not perform any Ethernet padding
- * removal. The padding removal performed by wl_process_rx() is only for
- * the padding used in the protocol shared by the host and the device.
- * This padding is mainly there to ensure that the host does not have to
- * deal with rx of odd-sized data buffers (which some DMA's have problems
- * to handle).
- *
- * @param pkt Input buffer (raw packet)
- * @param pkt_len Length of the input buffer (in bytes)
- * @param stripped_pkt Pointer to the packet with the
- * transport header stripped.
- * @param stripped_pkt_len Length of the stripped packet.
- * @param vlanid_prio VLAN ID and 802.1p priority value
- * using following format:
- * <PRE>
- * 1
- * 5|432109876543|210
- * -+------------+---
- * 0| VLANID |PRI
- * </PRE>
- *
- * @returns
- * - WL_FAILURE
- * - WL_ABSORBED if the packet was an internal driver command
- * and not a proper data packet. The packet should
- * be freed and the stripped_pkt will not point
- * to a valid packet.
- * - WL_SUCCESS
- */
-wl_err_t wl_process_rx(char *pkt, size_t pkt_len, char **stripped_pkt,
- size_t *stripped_pkt_len, uint16_t *vlanid_prio);
-
-/*! \brief Process tx packet.
- *
- * Prepare tx packet for transmission.
- *
- * This function is typically used only by the TCP/IP stack driver.
- *
- * Takes a Ethernet II frame header and generates a message passing header
- * for it.
- *
- * The caller should ensure that any frames injected into wl_process_tx()
- * are proper Ethernet frames. The wl_api library or the device will not
- * perform any Ethernet padding if the frames are too short.
- *
- * The Ethernet header is assumed to have the following layout :
- * <dst addr:6><src addr:6><type:2>...
- * The rest of the Ethernet header buffer (if any) is ignored.
- *
- * A note on the TX packet representation :
- * If your TX packets are simple contiguous buffers you can ignore
- * the rest of this note and pass NULL in parameter \a pkt_handle.
- * A TX packet may have a more complex structure than a RX packet
- * (which must be a contiguous, flat buffer). The IP stack may
- * for example represent a packet as a linked list of buffers where
- * the Ethernet header, the IP header and other headers, are represented
- * by separate buffers. In some cases, such as when the driver is
- * running in SoftAP mode, a TX packet has to be copied and queued
- * internally for later processing and to support this when packets
- * have a complicated structure a special data access function can
- * be registered. See \a wl_register_pkt_read_cb() for details.
- * If you use \a wl_process_tx() with non-simple packets you
- * should pass a handle to the packet in parameter \a pkt_handle
- * and register an access function with \a wl_register_pkt_read_cb().
- *
- * @param eth_hdr Input buffer (Ethernet header)
- * @param eth_hdr_len Input buffer length (must be >= 14)
- * This is usually the same as pkt_len unless e.g linked list or buffers
- * chained in other ways are being used.
- * @param pkt_len Length of the complete data packet (in bytes)
- * @param hdr Pointer to the header buffer (must be
- * allocated by the caller). The length of the buffer
- * must be at least WL_HEADER_SIZE bytes.
- * @param vlanid_prio VLAN ID and 802.1p priority value
- * using following format:
- * <PRE>
- * 1
- * 5|432109876543|210
- * -+------------+---
- * 0| VLANID |PRI
- * </PRE>
- * Ignored for legacy association (no WMM)
- * @param pkt_handle A handle to the complete packet. If this parameter
- * is NULL then \a eth_hdr is expected to point to the whole packet
- * in a single contiguous buffer (the default). If a different packet
- * representation is used this parameter should be a handle to the
- * complete packet and will be passed unmodified to the data
- * access function that was registered with \a wl_register_pkt_read_cb().
- *
- * @returns
- * - WL_FAILURE
- * - WL_RESOURCES if packet can not be processed at the moment.
- * The caller must either drop the packet or try
- * retransmit it later.
- * - WL_AVAIL if network not available
- * - WL_SUCCESS if packet is ready for transmission through wl_tx().
- */
-wl_err_t wl_process_tx(char *eth_hdr,
- size_t eth_hdr_len,
- size_t pkt_len,
- char *hdr,
- uint16_t vlanid_prio,
- void *pkt_handle);
-
-
-/*! \brief Get current TX and RX rate used for data transfer
- *
- * During transmission and reception of data, the actual rate used will depend
- * on the signal quality. This function can be used to get the actual rate used
- * for the last tx and rx data.
- *
- * @param tx will hold the tx rate upon successful return.
- * @param rx will hold the rx rate upon successful return.
- *
- * @return
- * - WL_SUCCESS on success
- * - WL_FAILURE on failure.
- */
-wl_err_t wl_get_rate(wl_rate_t *tx, wl_rate_t *rx);
-
-
-/*! @} */ /* End wl_data group */
-
-
-/** \defgroup wl_transport Transport interface
- *
- * \brief Low level transport interface.
- *
- * These functions access the low level transport driver which makes
- * the application independent of the actual physical transport
- * layer (usually SDIO or SPI).
- *
-
-For applications running on an real time kernel or without an
-operating system, the provided transport library will fit right into the
-application design. However, when running on a more complex operating system
-(such as windows or linux) which has its own transport primitivies and
-components (and probably its own IP stack) it might be preferred to design a
-custom transport library for that specific environment. Therefore, these
-transport interface functions are fully optional.
-
-
- * @{
- */
-
-#define WL_RX_MIN_PKT_LEN 32
-
-
-/*! \brief WiFi event callback.
- *
- * This function is invoked in interrupt context when there is new data
- * available from the mac. This function is supplied by the user
- * of the API.
- *
- * This function is typically used only by the TCP/IP stack driver.
- *
- * @param ctx A context handle. This handle is passed
- * untouched to the callback and has the same value
- * as the context registered with the callback in
- * wl_register_event_cb().
- */
-typedef void (*wl_rx_isr_t) (void* ctx);
-
-
-/*! \brief Firmware access function.
- *
- * Reads the WiFi firmware image. This function is supplied by
- * the user of this API since storage for the firmware image is
- * managed by the application.
- *
- * This function should read the specified number of bytes of the
- * firmware image starting at the specified \a offset. The number of
- * bytes to read is given in \a len. Upon return, \a buf should point
- * to a buffer which holds the read data and the number of valid bytes
- * in \a buf is returned from the call.
- *
- * This function will be called repeatedly until the complete firmware
- * image has been read.
- *
- * This function may be called again at any time while the driver is
- * running to download further pieces of the WiFi firmware image as
- * needed by the runtime requirements. This will normally only happen
- * when the driver switches between networks of different kinds such
- * as from WEP to WPA, or from ESS to IBSS for example.
- *
- * For convenience, any time a firmware chunk has been completely
- * downloaded this function will be called once with the \a buf
- * parameter set to NULL to indicate that no more data is needed right
- * now and that any dynamically allocated buffers which holds firmware
- * data can be freed without much performance impact.
- *
- * @param ctx Opaque context pointer as provided to \a wl_init() that will be
- * passed back to the callback.
- * @param buf Should be assigned the address of the buffer holding the read
- * data upon return. This parameter can be NULL which indicates
- * that there are no further immediately pending accesses.
- * @param offset Offset in bytes from the start of the firmware image.
- * Data should be copied into buf starting at \a offset.
- * @param len The number of bytes to copy into \a buf.
- * @return The number of bytes copied into buf. This may be smaller than
- * \len if the implementation of the function so requires.
- */
-typedef size_t (wl_fw_read_cb_t)(void *ctx,
- const uint8_t **buf,
- size_t offset,
- size_t len);
-
-
-/*! \brief Initialize the transport interface and download the WiFi firmware
- * image to the device.
- *
- * This operation will proceed synchronously until the firmware is completely
- * downloaded. wl_init() should be called after this function has returned to
- * perform device initialization.
- *
- * @param fw_read_cb callback function to invoke during firmware download.
- * @param ctx Opaque context pointer that will be passed to the callbacks
- * when they are invoked. This parameter is never
- * accessed by the API.
- * @param mode will hold the host attention mode used by the transport layer.
- * This parameter can be passed directly to \a wl_init().
- *
- * @return
- *
- * - WL_CARD_FAILURE if the wl hardware device is not available
- * - WL_FIRMWARE_INVALID if the firmware obtained through fw_read_cb is
- * invalid.
- * - WL_OOM if the necessary memory could not be allocated.
- */
-wl_err_t wl_transport_init(wl_fw_read_cb_t *fw_read_cb,
- void *ctx,
- enum wl_host_attention_mode *mode);
-
-/*! \brief WiFi driver forward progress function
- *
- * This function must be called in polled environments to
- * ensure forward progress. The call can be made as often as possible from
- * the main application loop. However, the call will not have any effect unless
- * there is an interrupt pending from the hardware.
- *
- * In interrupt mode, wl_poll() must be called if no interrupt
- * handler is registered through wl_register_rx_isr(). When an interrupt
- * handler is registered, it is no longer necessary to invoke wl_poll().
- *
- * Note that this function should not be invoked from interrupt context.
- *
- */
-void wl_poll(void);
-
-
-/*! \brief Register RX callback
- *
- * Register function to be called by the low level transport driver
- * when a new packet is available or when there is a state change in the
- * data path. When invoked, any pending data can be fetched by calling wl_rx().
- *
- * This function is typically used only by the TCP/IP stack driver.
- * Note, the registered function is called in interrupt context.
- *
- * @param isr rx interrup handler.
- * @param ctx Opaque context pointer that is passed unmodified to the
- * rx_cb callback when it is invoked.
- *
- * @return WL_SUCCESS
- */
-wl_err_t wl_register_rx_isr(wl_rx_isr_t isr, void* ctx);
-
-
-/*! \brief Read pending packet
- *
- * Read a pending packet from the low level transport driver.
- * The read packet must be passed to the wl_process_rx() function
- * for proper driver operation.
- *
- * @param buf Buffer to read the packet into. This buffer must be
- * at least WL_MAX_PKT_LEN bytes long.
- * @param len Length of buf in bytes. Contains the length of the
- * read packet in bytes on output.
- * @return
- * - WL_FAILURE if no RX packet is pending.
- * - WL_SUCCESS
- */
-wl_err_t wl_rx(uint8_t* buf, uint16_t* len);
-
-/*! \brief Send processed tx packet
- *
- * Send a packet to the low level transport driver.
- * This packet has to have been successfully processed by the
- * wl_process_tx() function.
- *
- * @param buf Buffer to send.
- * @param len Length of buf in bytes.
- *
- * @return
- * - WL_FAILURE if the interface is not ready to send.
- * - WL_SUCCESS if the packet was successfully transmitted.
- */
-wl_err_t wl_tx(const uint8_t* buf, uint16_t len);
-
-
-/*! \brief Configure data alignment
- *
- * This function can be used if the host SDIO/SPI controller has certain
- * requirements on the data transfer sizes that can be used on the SDIO/SPI bus.
- *
- * If the txsize parameter is non-zero, additional padding data should be added
- * when performing the low level transfer of data buffer of sizes that are not
- * a multiple of the size_align parameter. See \ref wl_sdio and \ref wl_spi for
- * more information.
- *
- * @param txsize will configure the size alignment for tx data.
- *
- */
-void wl_conf_alignment(uint8_t txsize);
-
-
-/*! @} */ /* End wl_transport group */
-
-
-/** \defgroup wl_custom Custom environment support
- *
- * \brief Support for custom environments
- *
- * These functions should only be used in cases where the transport library is
- * not used at all. This usually applies to operating systems and environments
- * where there already exists a transport layer framework, e.g. linux or
- * windows.
- *
- *
-
-Note that the \a wl_poll() function is part of the transport library. Therefore,
-it should not be used in custom environments. Therefore, it is necessary to
-implement a custom polling or interrupt based scheme to ensure that any
-incoming packets are processed by the core.
-
- * @{
- */
-
- /*! \brief Wakeup callback function.
- *
- * Invoked when the WiFi device should wake up from power save mode.
- * This function should send the proper commands to the device.
- *
- * Note that this type should only be used in custom environments, where
- * the transport library is not used.
- *
- * @param ctx Opaque context pointer as provided to \a wl_register_wakeup_cb()
- * that will be passed back to the callback.
- * @param wakeup indicates whether wakeup should be set or cleared in the
- * device.
- */
-typedef void (wl_wakeup_cb_t)(void* ctx, uint8_t wakeup);
-
-/*! \brief Register wakeup callback function.
- *
- * Register a function that will be invoked when the WiFi device should wake
- * up from power save mode.
- *
- * Note that this function should only be used in custom environments, where
- * the transport library is not used.
- *
- * @param wakeup_cb Will be invoked when the device should wakeup from sleep
- * mode.
- * @param ctx Opaque context pointer that will be passed back to the callback.
- */
-void wl_register_wakeup_cb(wl_wakeup_cb_t *wakeup_cb, void *ctx);
-
-
-/*! \brief Management tx callback function.
- *
- * Invoked when the a management message should be transmitted to the
- * WiFi device. This function should ensure that the message is passed through
- * to the device and should never fail.
- *
- * Note that this type should only be used in custom environments, where
- * the transport library is not used.
- *
- * @param ctx Opaque context pointer as provided to \a wl_register_mgmt_tx_cb()
- * that will be passed back to the callback.
- * @param buf Points to the buffer which holds the management data,
- * @param len Size of the buffer.
- */
-typedef void (wl_mgmt_tx_cb_t)(void *ctx, const uint8_t *buf, uint16_t len);
-
-
-/*! \brief Register management tx callback function
- *
- * Register a function that will be invoked when a management message should
- * be transmitted to the device.
- *
- * Note that this function should only be used in custom environments, where
- * the transport library is not used.
- *
- * IMPORTANT : In a custom environment without a transport library \a
- * wl_register_mgmt_tx_cb() \b must have been called
- * before \a wl_fw_download() is called since \a
- * wl_fw_download() depends on the \a mgmt_tx_cb() to send
- * the firmware data to the WiFi chip.
- *
- * @param mgmt_tx_cb The callback function to invoke.
- * @param ctx Opaque context pointer that will be passed back to the callback.
- */
-void wl_register_mgmt_tx_cb(wl_mgmt_tx_cb_t *mgmt_tx_cb, void *ctx);
-
-
-
-/*! \brief Download the WiFi firmware image to the device.
- *
- * This operation will proceed synchronously until the firmware is completely
- * downloaded. wl_init() should be called after this function has returned to
- * perform device initialization. This function depends on \a
- * wl_register_mgmt_tx_cb(). See that function for details.
- *
- * @param ctx Opaque context pointer that will be passed to the callbacks
- * when they are invoked. This parameter is never
- * accessed by the API.
- * @param fw_read_cb callback function to invoke during firmware download.
- *
- * @return
- *
- * - WL_CARD_FAILURE if the wl hardware device is not available
- * - WL_FIRMWARE_INVALID if the firmware obtained through fw_read_cb is
- * invalid.
- * - WL_OOM if the necessary memory could not be allocated.
- */
- wl_err_t wl_fw_download(wl_fw_read_cb_t *fw_read_cb, void *ctx);
-
-
-
-/*! @} */ /* End wl_custom group */
-
-
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h
deleted file mode 100644
index 5be5f37..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_fw.h
+++ /dev/null
@@ -1,19287 +0,0 @@
-/*
- * Programming interface for wl_api.
- * Copyright (C) 2010 HD Wireless AB
- *
- * You should have received a copy of the license along with this library.
- */
-
-#ifndef WITHOUT_STDINT
-#include <stdint.h>
-#endif
-const uint8_t fw_buf[154188] = {
- 0x10, 0x61, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x30, 0x00, 0x00, 0x00, 0x10, 0x61, 0x04, 0x00,
- 0x38, 0x61, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x00, 0x00, 0x00, 0x20, 0x61, 0x04, 0x00,
- 0x30, 0x61, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x30, 0x61, 0x04, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x10, 0x61, 0x04, 0x00,
- 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xee,
- 0xee, 0xee, 0x18, 0xf0, 0x9f, 0xe5, 0x18, 0xf0,
- 0x9f, 0xe5, 0x18, 0xf0, 0x9f, 0xe5, 0x18, 0xf0,
- 0x9f, 0xe5, 0x00, 0x00, 0xa0, 0xe1, 0x18, 0xf0,
- 0x9f, 0xe5, 0x18, 0xf0, 0x9f, 0xe5, 0x44, 0x00,
- 0x00, 0x00, 0xb4, 0x08, 0x00, 0x00, 0xb4, 0x08,
- 0x00, 0x00, 0xb4, 0x08, 0x00, 0x00, 0xb4, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x08,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x00, 0x00,
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0f, 0xe1, 0x1f, 0x00, 0xc0, 0xe3,
- 0x13, 0x00, 0x80, 0xe3, 0xc0, 0x00, 0x80, 0xe3,
- 0x00, 0xf0, 0x2f, 0xe1, 0x1c, 0xf0, 0x9f, 0xe5,
- 0x3d, 0x02, 0x00, 0xeb, 0x5a, 0x02, 0x00, 0xeb,
- 0x8d, 0x02, 0x00, 0xeb, 0x01, 0x00, 0x8f, 0xe2,
- 0x10, 0xff, 0x2f, 0xe1, 0x41, 0xf0, 0xde, 0xfb,
- 0x01, 0xf0, 0xdc, 0xfd, 0x3c, 0x00, 0x78, 0x00,
- 0x00, 0x00, 0xfe, 0xe7, 0x00, 0x00, 0x5c, 0x00,
- 0x00, 0x00, 0x78, 0x47, 0xc0, 0x46, 0x01, 0x00,
- 0x00, 0xea, 0x78, 0x47, 0xc0, 0x46, 0x17, 0x00,
- 0x00, 0xea, 0x8c, 0x11, 0x9f, 0xe5, 0x00, 0x20,
- 0x91, 0xe5, 0x00, 0x30, 0x0f, 0xe1, 0x84, 0x11,
- 0x9f, 0xe5, 0xfd, 0x20, 0xa1, 0xe8, 0x80, 0x01,
- 0x9f, 0xe5, 0x80, 0x21, 0x9f, 0xe5, 0x01, 0x20,
- 0x42, 0xe0, 0x0d, 0x00, 0x40, 0xe0, 0x3c, 0x00,
- 0xb4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0xe1,
- 0x28, 0x00, 0x00, 0xaa, 0x68, 0x01, 0x9f, 0xe5,
- 0x0d, 0x00, 0x50, 0xe1, 0x02, 0x00, 0x00, 0xba,
- 0x04, 0x20, 0x10, 0xe4, 0x04, 0x20, 0x81, 0xe4,
- 0xfa, 0xff, 0xff, 0xea, 0x58, 0x11, 0x9f, 0xe5,
- 0x58, 0x01, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5,
- 0x3c, 0x11, 0x9f, 0xe5, 0x50, 0x01, 0x9f, 0xe5,
- 0x00, 0x00, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1,
- 0x3c, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x48, 0x11,
- 0x9f, 0xe5, 0x00, 0x00, 0x91, 0xe5, 0x24, 0x11,
- 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0x2c, 0x11,
- 0x9f, 0xe5, 0x38, 0x01, 0x9f, 0xe5, 0x00, 0x00,
- 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x74, 0x02,
- 0x00, 0xeb, 0x10, 0x01, 0x9f, 0xe5, 0x28, 0x11,
- 0x9f, 0xe5, 0x04, 0x20, 0x91, 0xe4, 0x04, 0x20,
- 0x00, 0xe4, 0x04, 0x21, 0x9f, 0xe5, 0x02, 0x00,
- 0x51, 0xe1, 0x3c, 0x00, 0x2c, 0x01, 0x00, 0x00,
- 0xfa, 0xff, 0xff, 0x1a, 0xf0, 0x10, 0x9f, 0xe5,
- 0xfd, 0x20, 0xb1, 0xe8, 0x03, 0xf0, 0x2f, 0xe1,
- 0xe0, 0x10, 0x9f, 0xe5, 0x00, 0x20, 0x81, 0xe5,
- 0xe8, 0x10, 0x9f, 0xe5, 0xf4, 0x20, 0x9f, 0xe5,
- 0x00, 0x20, 0x81, 0xe5, 0x02, 0x10, 0x80, 0xe2,
- 0x00, 0x00, 0x20, 0xe0, 0x01, 0x00, 0x40, 0xe2,
- 0x11, 0xff, 0x2f, 0xe1, 0x01, 0x00, 0x8f, 0xe2,
- 0x10, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x68, 0x01,
- 0x00, 0x00, 0x01, 0xf0, 0x9c, 0xf8, 0x78, 0x47,
- 0x00, 0x00, 0x01, 0x00, 0x8f, 0xe2, 0x10, 0xff,
- 0x2f, 0xe1, 0x01, 0xf0, 0x94, 0xf8, 0x78, 0x47,
- 0x00, 0x00, 0x03, 0x00, 0x2d, 0xe9, 0x00, 0x10,
- 0x0f, 0xe1, 0x00, 0x10, 0x80, 0xe5, 0xb8, 0x10,
- 0x9f, 0xe5, 0x04, 0x10, 0x80, 0xe5, 0x00, 0x10,
- 0xa0, 0xe1, 0x10, 0x00, 0x80, 0xe2, 0xfc, 0x1f,
- 0xa0, 0xe8, 0x00, 0x20, 0xa0, 0xe1, 0x3c, 0x00,
- 0xa4, 0x01, 0x00, 0x00, 0x01, 0x30, 0xa0, 0xe1,
- 0x03, 0x00, 0xbd, 0xe8, 0x08, 0x00, 0x83, 0xe5,
- 0x0c, 0x10, 0x83, 0xe5, 0xd3, 0x00, 0xa0, 0xe3,
- 0x00, 0xf0, 0x21, 0xe1, 0x00, 0x60, 0xa2, 0xe8,
- 0x00, 0x10, 0x4f, 0xe1, 0x04, 0x10, 0x82, 0xe4,
- 0xd2, 0x00, 0xa0, 0xe3, 0x00, 0xf0, 0x21, 0xe1,
- 0x00, 0x60, 0xa2, 0xe8, 0x00, 0x10, 0x4f, 0xe1,
- 0x04, 0x10, 0x82, 0xe4, 0xd1, 0x00, 0xa0, 0xe3,
- 0x3c, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xf0,
- 0x21, 0xe1, 0x00, 0x7f, 0xa2, 0xe8, 0x00, 0x10,
- 0x4f, 0xe1, 0x04, 0x10, 0x82, 0xe4, 0xd7, 0x00,
- 0xa0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 0x00, 0x60,
- 0xa2, 0xe8, 0x00, 0x10, 0x4f, 0xe1, 0x04, 0x10,
- 0x82, 0xe4, 0xdb, 0x00, 0xa0, 0xe3, 0x00, 0xf0,
- 0x21, 0xe1, 0x00, 0x60, 0xa2, 0xe8, 0x00, 0x10,
- 0x4f, 0xe1, 0x00, 0x10, 0x82, 0xe5, 0x00, 0x00,
- 0x93, 0xe5, 0x3c, 0x00, 0x1c, 0x02, 0x00, 0x00,
- 0x00, 0xf0, 0x2f, 0xe1, 0x1e, 0xff, 0x2f, 0xe1,
- 0x20, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00,
- 0x20, 0xee, 0x01, 0x00, 0xd8, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x18, 0xf0, 0x9f, 0xe5,
- 0x10, 0x01, 0x00, 0x00, 0x08, 0x03, 0x00, 0x00,
- 0xee, 0xee, 0xee, 0xee, 0x24, 0x03, 0x00, 0x00,
- 0x20, 0x02, 0x00, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x63, 0x1c, 0x0b, 0x4d, 0x3c, 0x00, 0x58, 0x02,
- 0x00, 0x00, 0x01, 0xd1, 0x6c, 0x69, 0x10, 0xe0,
- 0x00, 0xf0, 0x6c, 0xfb, 0x09, 0x48, 0xff, 0xf7,
- 0x0c, 0xff, 0xec, 0x60, 0x08, 0x4a, 0x51, 0x68,
- 0x50, 0x68, 0x88, 0x42, 0xfc, 0xd0, 0x02, 0x20,
- 0x28, 0x70, 0x01, 0x21, 0x8a, 0x20, 0x01, 0xf0,
- 0x12, 0xf8, 0x20, 0x1c, 0xb0, 0xbd, 0x30, 0x00,
- 0x07, 0x00, 0x51, 0x02, 0x00, 0x00, 0x00, 0x03,
- 0x07, 0x00, 0xb0, 0xb5, 0x05, 0x1c, 0x3c, 0x00,
- 0x94, 0x02, 0x00, 0x00, 0x00, 0x24, 0x00, 0xf0,
- 0x50, 0xfb, 0x14, 0x48, 0xff, 0xf7, 0xf0, 0xfe,
- 0x13, 0x49, 0x14, 0x48, 0xc1, 0x60, 0x01, 0x21,
- 0x13, 0x4a, 0x49, 0x03, 0x91, 0x60, 0x13, 0x49,
- 0xca, 0x78, 0x08, 0x23, 0x9a, 0x43, 0xca, 0x70,
- 0xca, 0x78, 0x04, 0x23, 0x1a, 0x43, 0xca, 0x70,
- 0x6b, 0x1c, 0x0d, 0xd0, 0x0e, 0x4b, 0x5a, 0x68,
- 0x59, 0x68, 0x91, 0x42, 0xfc, 0xd0, 0xbe, 0x21,
- 0x3c, 0x00, 0xd0, 0x02, 0x00, 0x00, 0x19, 0x73,
- 0x19, 0x7a, 0x11, 0x22, 0x91, 0x43, 0x19, 0x72,
- 0x19, 0x7a, 0xc9, 0x07, 0xfc, 0xd4, 0x02, 0x21,
- 0x01, 0x70, 0xff, 0xf7, 0xd0, 0xfe, 0x20, 0x1c,
- 0xb0, 0xbd, 0x91, 0x02, 0x00, 0x00, 0xff, 0xff,
- 0xff, 0x00, 0x30, 0x00, 0x07, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47,
- 0x08, 0x47, 0x10, 0x47, 0x18, 0x47, 0x20, 0x47,
- 0x28, 0x47, 0x30, 0x47, 0x38, 0x47, 0x10, 0xb5,
- 0x04, 0x1c, 0x10, 0x1c, 0x00, 0xf0, 0x23, 0xf9,
- 0x03, 0xc4, 0x10, 0xbc, 0x08, 0xbc, 0x18, 0x47,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0x03, 0x00, 0x00,
- 0x10, 0xb4, 0x04, 0x2a, 0x0e, 0xd3, 0x03, 0x1c,
- 0x0b, 0x43, 0x9b, 0x07, 0x0a, 0xd1, 0x08, 0xc8,
- 0x10, 0xc9, 0xa3, 0x42, 0x02, 0xd1, 0x04, 0x3a,
- 0x04, 0x2a, 0xf8, 0xd2, 0xa3, 0x42, 0x01, 0xd0,
- 0x04, 0x38, 0x04, 0x39, 0x00, 0x2a, 0x02, 0xd1,
- 0x00, 0x20, 0x10, 0xbc, 0x70, 0x47, 0xd3, 0x07,
- 0x01, 0xd5, 0x01, 0x32, 0x05, 0xe0, 0x03, 0x78,
- 0x0c, 0x78, 0x01, 0x31, 0x3c, 0x00, 0x38, 0x04,
- 0x00, 0x00, 0x01, 0x30, 0xa3, 0x42, 0x07, 0xd1,
- 0x03, 0x78, 0x0c, 0x78, 0x01, 0x31, 0x01, 0x30,
- 0xa3, 0x42, 0x01, 0xd1, 0x02, 0x3a, 0xf1, 0xd1,
- 0x18, 0x1b, 0xe9, 0xe7, 0x00, 0x00, 0x78, 0x47,
- 0x00, 0x00, 0x00, 0x20, 0xa0, 0xe3, 0x04, 0x00,
- 0x51, 0xe3, 0x08, 0x00, 0x00, 0x3a, 0x03, 0xc0,
- 0x10, 0xe2, 0x0d, 0x00, 0x00, 0x0a, 0x04, 0xc0,
- 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x3c, 0x00,
- 0x74, 0x04, 0x00, 0x00, 0x01, 0x20, 0xc0, 0xe4,
- 0x01, 0x20, 0xc0, 0xa4, 0x01, 0x20, 0xc0, 0xc4,
- 0x0c, 0x10, 0x41, 0xe0, 0x06, 0x00, 0x00, 0xea,
- 0x81, 0xcf, 0xb0, 0xe1, 0x01, 0x20, 0xc0, 0x24,
- 0x01, 0x20, 0xc0, 0x24, 0x01, 0x20, 0xc0, 0x44,
- 0x1e, 0xff, 0x2f, 0xe1, 0x78, 0x47, 0x00, 0x00,
- 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x40, 0x2d, 0xe9,
- 0x02, 0x30, 0xa0, 0xe1, 0x02, 0xc0, 0xa0, 0xe1,
- 0x3c, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x02, 0xe0,
- 0xa0, 0xe1, 0x20, 0x10, 0x51, 0xe2, 0x0c, 0x50,
- 0xa0, 0x28, 0x0c, 0x50, 0xa0, 0x28, 0x20, 0x10,
- 0x51, 0x22, 0xfb, 0xff, 0xff, 0x2a, 0x01, 0x1e,
- 0xb0, 0xe1, 0x0c, 0x50, 0xa0, 0x28, 0x0c, 0x00,
- 0xa0, 0x48, 0x00, 0x40, 0xbd, 0xe8, 0x01, 0x11,
- 0xb0, 0xe1, 0x04, 0x20, 0x80, 0x24, 0x1e, 0xff,
- 0x2f, 0x01, 0x01, 0x20, 0xc0, 0x44, 0x01, 0x20,
- 0xc0, 0x44, 0x3c, 0x00, 0xec, 0x04, 0x00, 0x00,
- 0x40, 0x04, 0x11, 0xe3, 0x01, 0x20, 0xc0, 0x14,
- 0x1e, 0xff, 0x2f, 0xe1, 0x78, 0x47, 0x00, 0x00,
- 0x03, 0x00, 0x52, 0xe3, 0x3e, 0x00, 0x00, 0x9a,
- 0x03, 0xc0, 0x10, 0xe2, 0x08, 0x00, 0x00, 0x0a,
- 0x01, 0x30, 0xd1, 0xe4, 0x02, 0x00, 0x5c, 0xe3,
- 0x0c, 0x20, 0x82, 0xe0, 0x01, 0xc0, 0xd1, 0x94,
- 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0x34,
- 0x04, 0x20, 0x42, 0xe2, 0x3c, 0x00, 0x28, 0x05,
- 0x00, 0x00, 0x01, 0xc0, 0xc0, 0x94, 0x01, 0x30,
- 0xc0, 0x34, 0x03, 0x30, 0x11, 0xe2, 0x1e, 0x00,
- 0x00, 0x0a, 0x04, 0x20, 0x52, 0xe2, 0x2f, 0x00,
- 0x00, 0x3a, 0x03, 0xc0, 0x31, 0xe7, 0x02, 0x00,
- 0x53, 0xe3, 0x08, 0x00, 0x00, 0x0a, 0x0f, 0x00,
- 0x00, 0x8a, 0x2c, 0x34, 0xa0, 0xe1, 0x04, 0xc0,
- 0xb1, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0x0c, 0x3c,
- 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0x3c, 0x00,
- 0x64, 0x05, 0x00, 0x00, 0xf9, 0xff, 0xff, 0x2a,
- 0x01, 0x10, 0x81, 0xe2, 0x23, 0x00, 0x00, 0xea,
- 0x2c, 0x38, 0xa0, 0xe1, 0x04, 0xc0, 0xb1, 0xe5,
- 0x04, 0x20, 0x52, 0xe2, 0x0c, 0x38, 0x83, 0xe1,
- 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0x2a,
- 0x02, 0x10, 0x81, 0xe2, 0x1b, 0x00, 0x00, 0xea,
- 0x2c, 0x3c, 0xa0, 0xe1, 0x04, 0xc0, 0xb1, 0xe5,
- 0x04, 0x20, 0x52, 0xe2, 0x0c, 0x34, 0x83, 0xe1,
- 0x3c, 0x00, 0xa0, 0x05, 0x00, 0x00, 0x04, 0x30,
- 0x80, 0xe4, 0xf9, 0xff, 0xff, 0x2a, 0x03, 0x10,
- 0x81, 0xe2, 0x13, 0x00, 0x00, 0xea, 0x78, 0x47,
- 0x00, 0x00, 0x10, 0x40, 0x2d, 0xe9, 0x20, 0x20,
- 0x52, 0xe2, 0x05, 0x00, 0x00, 0x3a, 0x18, 0x50,
- 0xb1, 0x28, 0x18, 0x50, 0xa0, 0x28, 0x18, 0x50,
- 0xb1, 0x28, 0x18, 0x50, 0xa0, 0x28, 0x20, 0x20,
- 0x52, 0x22, 0xf9, 0xff, 0xff, 0x2a, 0x02, 0xce,
- 0xb0, 0xe1, 0x3c, 0x00, 0xdc, 0x05, 0x00, 0x00,
- 0x18, 0x50, 0xb1, 0x28, 0x18, 0x50, 0xa0, 0x28,
- 0x18, 0x00, 0xb1, 0x48, 0x18, 0x00, 0xa0, 0x48,
- 0x10, 0x40, 0xbd, 0xe8, 0x02, 0xcf, 0xb0, 0xe1,
- 0x04, 0x30, 0x91, 0x24, 0x04, 0x30, 0x80, 0x24,
- 0x1e, 0xff, 0x2f, 0x01, 0x82, 0x2f, 0xb0, 0xe1,
- 0x01, 0x20, 0xd1, 0x44, 0x01, 0x30, 0xd1, 0x24,
- 0x01, 0xc0, 0xd1, 0x24, 0x01, 0x20, 0xc0, 0x44,
- 0x01, 0x30, 0xc0, 0x24, 0x3c, 0x00, 0x18, 0x06,
- 0x00, 0x00, 0x01, 0xc0, 0xc0, 0x24, 0x1e, 0xff,
- 0x2f, 0xe1, 0x78, 0x47, 0x00, 0x00, 0xff, 0x30,
- 0x01, 0xe2, 0x02, 0x10, 0xa0, 0xe1, 0x03, 0x24,
- 0x83, 0xe1, 0x02, 0x28, 0x82, 0xe1, 0x88, 0xff,
- 0xff, 0xea, 0x78, 0x47, 0x00, 0x00, 0x80, 0x24,
- 0x10, 0xe2, 0x00, 0x00, 0x60, 0x42, 0x41, 0x30,
- 0x32, 0xe0, 0x00, 0x10, 0x61, 0x22, 0xa1, 0xc1,
- 0x70, 0xe0, 0x20, 0x00, 0x00, 0x3a, 0x3c, 0x00,
- 0x54, 0x06, 0x00, 0x00, 0x21, 0xc4, 0x70, 0xe0,
- 0x0f, 0x00, 0x00, 0x3a, 0x00, 0x04, 0xa0, 0xe1,
- 0xff, 0x24, 0x82, 0xe3, 0x21, 0xc2, 0x70, 0xe0,
- 0x17, 0x00, 0x00, 0x3a, 0x21, 0xc4, 0x70, 0xe0,
- 0x09, 0x00, 0x00, 0x3a, 0x00, 0x04, 0xa0, 0xe1,
- 0xff, 0x28, 0x82, 0xe3, 0x21, 0xc4, 0x70, 0xe0,
- 0x00, 0x04, 0xa0, 0x21, 0xff, 0x2c, 0x82, 0x23,
- 0x21, 0xc2, 0x70, 0xe0, 0x0e, 0x00, 0x00, 0x3a,
- 0x3c, 0x00, 0x90, 0x06, 0x00, 0x00, 0x00, 0xc0,
- 0x70, 0xe2, 0x83, 0x00, 0x00, 0x2a, 0x20, 0x04,
- 0xa0, 0x21, 0xa1, 0xc3, 0x70, 0xe0, 0x80, 0x13,
- 0x41, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0x21, 0xc3,
- 0x70, 0xe0, 0x00, 0x13, 0x41, 0x20, 0x02, 0x20,
- 0xa2, 0xe0, 0xa1, 0xc2, 0x70, 0xe0, 0x80, 0x12,
- 0x41, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0x21, 0xc2,
- 0x70, 0xe0, 0x00, 0x12, 0x41, 0x20, 0x02, 0x20,
- 0xa2, 0xe0, 0x3c, 0x00, 0xcc, 0x06, 0x00, 0x00,
- 0xa1, 0xc1, 0x70, 0xe0, 0x80, 0x11, 0x41, 0x20,
- 0x02, 0x20, 0xa2, 0xe0, 0x21, 0xc1, 0x70, 0xe0,
- 0x00, 0x11, 0x41, 0x20, 0x02, 0x20, 0xa2, 0xe0,
- 0xa1, 0xc0, 0x70, 0xe0, 0x80, 0x10, 0x41, 0x20,
- 0x02, 0x20, 0xa2, 0xe0, 0x01, 0xc0, 0x70, 0xe0,
- 0x00, 0x10, 0x41, 0x20, 0x02, 0x20, 0xb2, 0xe0,
- 0xe5, 0xff, 0xff, 0x2a, 0xc3, 0x0f, 0x32, 0xe0,
- 0xa3, 0x0f, 0x80, 0xe0, 0x3c, 0x00, 0x08, 0x07,
- 0x00, 0x00, 0x00, 0x10, 0x61, 0x22, 0x1e, 0xff,
- 0x2f, 0xe1, 0x78, 0x47, 0x00, 0x00, 0x00, 0x20,
- 0xa0, 0xe3, 0xa1, 0xc1, 0x70, 0xe0, 0x20, 0x00,
- 0x00, 0x3a, 0x21, 0xc4, 0x70, 0xe0, 0x0f, 0x00,
- 0x00, 0x3a, 0x00, 0x04, 0xa0, 0xe1, 0xff, 0x24,
- 0x82, 0xe3, 0x21, 0xc2, 0x70, 0xe0, 0x17, 0x00,
- 0x00, 0x3a, 0x21, 0xc4, 0x70, 0xe0, 0x09, 0x00,
- 0x00, 0x3a, 0x00, 0x04, 0xa0, 0xe1, 0x3c, 0x00,
- 0x44, 0x07, 0x00, 0x00, 0xff, 0x28, 0x82, 0xe3,
- 0x21, 0xc4, 0x70, 0xe0, 0x00, 0x04, 0xa0, 0x21,
- 0xff, 0x2c, 0x82, 0x23, 0x21, 0xc2, 0x70, 0xe0,
- 0x0e, 0x00, 0x00, 0x3a, 0x00, 0xc0, 0x70, 0xe2,
- 0x50, 0x00, 0x00, 0x2a, 0x20, 0x04, 0xa0, 0x21,
- 0xa1, 0xc3, 0x70, 0xe0, 0x80, 0x13, 0x41, 0x20,
- 0x02, 0x20, 0xa2, 0xe0, 0x21, 0xc3, 0x70, 0xe0,
- 0x00, 0x13, 0x41, 0x20, 0x02, 0x20, 0xa2, 0xe0,
- 0x3c, 0x00, 0x80, 0x07, 0x00, 0x00, 0xa1, 0xc2,
- 0x70, 0xe0, 0x80, 0x12, 0x41, 0x20, 0x02, 0x20,
- 0xa2, 0xe0, 0x21, 0xc2, 0x70, 0xe0, 0x00, 0x12,
- 0x41, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0xa1, 0xc1,
- 0x70, 0xe0, 0x80, 0x11, 0x41, 0x20, 0x02, 0x20,
- 0xa2, 0xe0, 0x21, 0xc1, 0x70, 0xe0, 0x00, 0x11,
- 0x41, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0xa1, 0xc0,
- 0x70, 0xe0, 0x80, 0x10, 0x41, 0x20, 0x02, 0x20,
- 0xa2, 0xe0, 0x3c, 0x00, 0xbc, 0x07, 0x00, 0x00,
- 0x01, 0xc0, 0x70, 0xe0, 0x00, 0x10, 0x41, 0x20,
- 0x02, 0x20, 0xb2, 0xe0, 0xe5, 0xff, 0xff, 0x2a,
- 0x02, 0x00, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1,
- 0x78, 0x47, 0x00, 0x00, 0x0a, 0x10, 0x40, 0xe2,
- 0x20, 0x01, 0x40, 0xe0, 0x20, 0x02, 0x80, 0xe0,
- 0x20, 0x04, 0x80, 0xe0, 0x20, 0x08, 0x80, 0xe0,
- 0xa0, 0x01, 0xa0, 0xe1, 0x00, 0x21, 0x80, 0xe0,
- 0x82, 0x10, 0x51, 0xe0, 0x3c, 0x00, 0xf8, 0x07,
- 0x00, 0x00, 0x01, 0x00, 0x80, 0x52, 0x0a, 0x10,
- 0x81, 0x42, 0x1e, 0xff, 0x2f, 0xe1, 0x30, 0xb4,
- 0x44, 0x1c, 0x81, 0x07, 0x08, 0xd0, 0x01, 0x78,
- 0x01, 0x30, 0x00, 0x29, 0x02, 0xd1, 0x00, 0x1b,
- 0x30, 0xbc, 0x70, 0x47, 0x81, 0x07, 0xf6, 0xd1,
- 0x0b, 0x4a, 0xd5, 0x01, 0x02, 0xc8, 0x8b, 0x1a,
- 0x8b, 0x43, 0x2b, 0x40, 0xfa, 0xd0, 0x00, 0x1b,
- 0x0a, 0x06, 0x01, 0xd1, 0x03, 0x38, 0x3c, 0x00,
- 0x34, 0x08, 0x00, 0x00, 0xef, 0xe7, 0x0a, 0x04,
- 0x12, 0x0e, 0x01, 0xd1, 0x02, 0x38, 0xea, 0xe7,
- 0x09, 0x02, 0x09, 0x0e, 0xe7, 0xd1, 0x01, 0x38,
- 0xe5, 0xe7, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
- 0xf0, 0xb4, 0x03, 0x1c, 0x04, 0x1c, 0x0c, 0x43,
- 0xa4, 0x07, 0x0c, 0xd1, 0x10, 0x4d, 0xef, 0x01,
- 0x02, 0xe0, 0x04, 0x31, 0x04, 0x3a, 0x10, 0xc3,
- 0x04, 0x2a, 0x04, 0xd3, 0x0c, 0x68, 0x66, 0x1b,
- 0x3c, 0x00, 0x70, 0x08, 0x00, 0x00, 0xa6, 0x43,
- 0x3e, 0x40, 0xf5, 0xd0, 0x00, 0x2a, 0x07, 0xd0,
- 0x0c, 0x78, 0x01, 0x31, 0x1c, 0x70, 0x01, 0x33,
- 0x00, 0x2c, 0x03, 0xd0, 0x01, 0x3a, 0xf7, 0xd1,
- 0xf0, 0xbc, 0x70, 0x47, 0x01, 0x2a, 0xfb, 0xd9,
- 0x51, 0x1e, 0x00, 0x22, 0x1a, 0x70, 0x01, 0x33,
- 0x01, 0x39, 0xfb, 0xd1, 0xf4, 0xe7, 0x01, 0x01,
- 0x01, 0x01, 0x78, 0x47, 0x00, 0x00, 0x02, 0x00,
- 0xa0, 0xe3, 0x3c, 0x00, 0xac, 0x08, 0x00, 0x00,
- 0x02, 0x10, 0xa0, 0xe3, 0x2e, 0xfe, 0xff, 0xea,
- 0x1f, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0x0f, 0xe1,
- 0xc0, 0x00, 0x80, 0xe3, 0x00, 0xf0, 0x2f, 0xe1,
- 0x81, 0x00, 0xa0, 0xe3, 0x02, 0x10, 0xa0, 0xe3,
- 0x01, 0x20, 0x8f, 0xe2, 0x12, 0xff, 0x2f, 0xe1,
- 0x00, 0xf0, 0xe6, 0xfc, 0x78, 0x47, 0x00, 0x00,
- 0x1f, 0x40, 0xbd, 0xe8, 0xfe, 0xff, 0xff, 0xea,
- 0x1f, 0x50, 0x2d, 0xe9, 0x3c, 0x00, 0xe8, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x8f, 0xe2, 0x10, 0xff,
- 0x2f, 0xe1, 0x00, 0xf0, 0x40, 0xfb, 0x78, 0x47,
- 0x00, 0x00, 0x1f, 0x50, 0xbd, 0xe8, 0x04, 0xf0,
- 0x5e, 0xe2, 0x1f, 0x50, 0x2d, 0xe9, 0x01, 0x00,
- 0x8f, 0xe2, 0x10, 0xff, 0x2f, 0xe1, 0x00, 0xf0,
- 0x18, 0xfb, 0x78, 0x47, 0x00, 0x00, 0x1f, 0x50,
- 0xbd, 0xe8, 0x04, 0xf0, 0x5e, 0xe2, 0x00, 0xbd,
- 0x01, 0xb5, 0x00, 0xa0, 0x00, 0x47, 0x3c, 0x00,
- 0x24, 0x09, 0x00, 0x00, 0x00, 0x30, 0x0f, 0xe1,
- 0xc0, 0x30, 0xc3, 0xe3, 0x03, 0xf0, 0x21, 0xe1,
- 0x01, 0x00, 0x8f, 0xe2, 0x10, 0xff, 0x2f, 0xe1,
- 0x01, 0xbd, 0x01, 0xb5, 0x00, 0xa0, 0x00, 0x47,
- 0x00, 0x30, 0x0f, 0xe1, 0xc0, 0x30, 0x83, 0xe3,
- 0x03, 0xf0, 0x21, 0xe1, 0x01, 0x00, 0x8f, 0xe2,
- 0x10, 0xff, 0x2f, 0xe1, 0x01, 0xbd, 0x00, 0x00,
- 0x18, 0x00, 0x9f, 0xe5, 0x04, 0x10, 0x90, 0xe4,
- 0x3c, 0x00, 0x60, 0x09, 0x00, 0x00, 0x00, 0x00,
- 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x04, 0x20,
- 0x90, 0xe4, 0x00, 0x20, 0x81, 0xe5, 0xf9, 0xff,
- 0xff, 0xea, 0x0e, 0xf0, 0xa0, 0xe1, 0x7c, 0x09,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00,
- 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xd8, 0x03,
- 0x00, 0x00, 0xd8, 0x03, 0x00, 0x00, 0xd8, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0x09, 0x00, 0x00,
- 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
- 0x44, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
- 0x00, 0x80, 0x01, 0x00, 0x10, 0x8e, 0x01, 0x00,
- 0x10, 0x8e, 0x01, 0x00, 0x88, 0xf8, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x00,
- 0xc4, 0x33, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0e, 0x50, 0xa0, 0xe1,
- 0x58, 0x40, 0x9f, 0xe5, 0x3c, 0x00, 0xd8, 0x09,
- 0x00, 0x00, 0x04, 0x00, 0x94, 0xe4, 0x01, 0x00,
- 0x50, 0xe3, 0x05, 0xf0, 0xa0, 0x01, 0x04, 0x10,
- 0x94, 0xe4, 0x04, 0x20, 0x94, 0xe4, 0x03, 0x00,
- 0x00, 0xeb, 0x04, 0x00, 0x94, 0xe4, 0x04, 0x10,
- 0x94, 0xe4, 0x07, 0x00, 0x00, 0xeb, 0xf5, 0xff,
- 0xff, 0xea, 0x01, 0x00, 0x50, 0xe1, 0x0e, 0xf0,
- 0xa0, 0x01, 0x02, 0x00, 0x51, 0xe1, 0x04, 0x30,
- 0x90, 0x14, 0x04, 0x30, 0x81, 0x14, 0x3c, 0x00,
- 0x14, 0x0a, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x1a,
- 0x0e, 0xf0, 0xa0, 0xe1, 0x14, 0x20, 0x9f, 0xe5,
- 0x00, 0x20, 0x92, 0xe5, 0x01, 0x00, 0x50, 0xe1,
- 0x04, 0x20, 0x80, 0x14, 0xfc, 0xff, 0xff, 0x1a,
- 0x0e, 0xf0, 0xa0, 0xe1, 0x80, 0x09, 0x00, 0x00,
- 0xcc, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
- 0x20, 0xe6, 0x01, 0x00, 0x13, 0x00, 0x00, 0x00,
- 0x53, 0x56, 0x43, 0x5f, 0x00, 0x04, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0x0a, 0x00, 0x00, 0x20, 0xee,
- 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x49, 0x52,
- 0x51, 0x5f, 0x00, 0x02, 0x00, 0x00, 0x20, 0xf2,
- 0x01, 0x00, 0x11, 0x00, 0x00, 0x00, 0x46, 0x49,
- 0x51, 0x5f, 0x80, 0x00, 0x00, 0x00, 0x20, 0xf4,
- 0x01, 0x00, 0x17, 0x00, 0x00, 0x00, 0x41, 0x42,
- 0x54, 0x5f, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xf4,
- 0x01, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x55, 0x4e,
- 0x44, 0x5f, 0x3c, 0x00, 0x8c, 0x0a, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xa0, 0xf4, 0x01, 0x00,
- 0x1f, 0x00, 0x00, 0x00, 0x55, 0x53, 0x52, 0x5f,
- 0x01, 0x00, 0x00, 0x00, 0x0e, 0x50, 0xa0, 0xe1,
- 0x00, 0x60, 0x0f, 0xe1, 0x8c, 0x40, 0x9f, 0xe5,
- 0x04, 0x10, 0x94, 0xe4, 0x01, 0x00, 0x51, 0xe3,
- 0x09, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x94, 0xe4,
- 0x01, 0x10, 0x80, 0xe0, 0x03, 0x10, 0xc1, 0xe3,
- 0x04, 0x20, 0x94, 0xe4, 0x3c, 0x00, 0xc8, 0x0a,
- 0x00, 0x00, 0xc0, 0x20, 0x82, 0xe3, 0x02, 0xf0,
- 0x2f, 0xe1, 0x04, 0xd0, 0x41, 0xe2, 0x04, 0x20,
- 0x94, 0xe4, 0x13, 0x00, 0x00, 0xeb, 0xf2, 0xff,
- 0xff, 0xea, 0x06, 0xf0, 0x2f, 0xe1, 0x05, 0xf0,
- 0xa0, 0xe1, 0x0e, 0x50, 0xa0, 0xe1, 0x00, 0x60,
- 0x0f, 0xe1, 0x44, 0x40, 0x9f, 0xe5, 0x04, 0x10,
- 0x94, 0xe4, 0x01, 0x00, 0x51, 0xe3, 0x08, 0x00,
- 0x00, 0x0a, 0x04, 0x00, 0x94, 0xe4, 0x3c, 0x00,
- 0x04, 0x0b, 0x00, 0x00, 0x01, 0x10, 0x80, 0xe0,
- 0x03, 0x10, 0xc1, 0xe3, 0x04, 0x20, 0x94, 0xe4,
- 0xc0, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x2f, 0xe1,
- 0x04, 0xd0, 0x41, 0xe2, 0x04, 0x20, 0x94, 0xe4,
- 0xf3, 0xff, 0xff, 0xea, 0x06, 0xf0, 0x2f, 0xe1,
- 0x05, 0xf0, 0xa0, 0xe1, 0x01, 0x00, 0x50, 0xe1,
- 0x04, 0x20, 0x80, 0x14, 0xfc, 0xff, 0xff, 0x1a,
- 0x0e, 0xf0, 0xa0, 0xe1, 0x3c, 0x0a, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0x0b, 0x00, 0x00, 0x01, 0x60,
- 0xc0, 0x46, 0xc0, 0x46, 0xc0, 0x46, 0x70, 0x47,
- 0x00, 0x00, 0x10, 0x1e, 0x10, 0xee, 0x02, 0x00,
- 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a, 0x10, 0x0e,
- 0x01, 0xee, 0x10, 0x1e, 0x10, 0xee, 0x02, 0x00,
- 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a, 0x1e, 0xff,
- 0x2f, 0xe1, 0x10, 0x1e, 0x10, 0xee, 0x01, 0x00,
- 0x11, 0xe3, 0x03, 0x00, 0x00, 0x0a, 0x10, 0x1e,
- 0x11, 0xee, 0x3c, 0x00, 0x7c, 0x0b, 0x00, 0x00,
- 0x00, 0x10, 0x80, 0xe5, 0x01, 0x00, 0xa0, 0xe3,
- 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x20, 0xe0,
- 0x1e, 0xff, 0x2f, 0xe1, 0x8d, 0x46, 0x97, 0x46,
- 0x78, 0x47, 0xc0, 0x46, 0x78, 0xfd, 0xff, 0xea,
- 0x10, 0xb5, 0x04, 0x1c, 0x03, 0x28, 0x01, 0xd9,
- 0x00, 0xf0, 0xac, 0xfb, 0x0c, 0x48, 0x40, 0x68,
- 0x00, 0x28, 0x00, 0xd0, 0x03, 0x24, 0x0b, 0x48,
- 0x01, 0x68, 0x09, 0x48, 0x3c, 0x00, 0xb8, 0x0b,
- 0x00, 0x00, 0x12, 0x30, 0x00, 0x29, 0x05, 0xd0,
- 0x06, 0x21, 0x61, 0x43, 0x40, 0x5c, 0xc3, 0x00,
- 0x18, 0x18, 0x04, 0xe0, 0x06, 0x21, 0x61, 0x43,
- 0x40, 0x5c, 0x14, 0x23, 0x58, 0x43, 0x0a, 0x30,
- 0x00, 0x06, 0x00, 0x0e, 0x10, 0xbd, 0xd4, 0x7a,
- 0x01, 0x00, 0xa8, 0x69, 0x01, 0x00, 0x80, 0xb5,
- 0x09, 0x4a, 0x09, 0x49, 0x03, 0x20, 0x00, 0xf0,
- 0xf2, 0xf9, 0x08, 0x49, 0x08, 0x20, 0x3c, 0x00,
- 0xf4, 0x0b, 0x00, 0x00, 0x08, 0x60, 0x48, 0x60,
- 0x07, 0x49, 0x1d, 0x20, 0x01, 0xf0, 0xb2, 0xfc,
- 0x06, 0x49, 0x1e, 0x20, 0x01, 0xf0, 0xae, 0xfc,
- 0x80, 0xbd, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00,
- 0x31, 0x27, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0x29, 0x25, 0x00, 0x00, 0x31, 0x25, 0x00, 0x00,
- 0x05, 0x49, 0x80, 0xb5, 0x08, 0x20, 0x88, 0x60,
- 0x1d, 0x20, 0x01, 0xf0, 0xbf, 0xfc, 0x1e, 0x20,
- 0x3c, 0x00, 0x30, 0x0c, 0x00, 0x00, 0x01, 0xf0,
- 0xbc, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x02, 0x1c, 0x08, 0x1c, 0xd1, 0x2a,
- 0x80, 0xb5, 0x01, 0xd1, 0x05, 0xf0, 0x19, 0xfc,
- 0x80, 0xbd, 0x03, 0x49, 0x80, 0xb5, 0x00, 0x20,
- 0x08, 0x80, 0x05, 0x20, 0x05, 0xf0, 0xd5, 0xfb,
- 0x80, 0xbd, 0xb0, 0x74, 0x01, 0x00, 0x80, 0xb5,
- 0x54, 0x28, 0x01, 0xd1, 0x06, 0xf0, 0xcd, 0xf8,
- 0x80, 0xbd, 0x3c, 0x00, 0x6c, 0x0c, 0x00, 0x00,
- 0xb0, 0xb5, 0x10, 0x4d, 0x02, 0x1c, 0x01, 0x24,
- 0x01, 0x2a, 0x0d, 0x48, 0x29, 0x68, 0x06, 0xd0,
- 0xc4, 0x2a, 0x03, 0xd1, 0x6a, 0x68, 0x00, 0x2a,
- 0x05, 0xd0, 0xac, 0x60, 0xb0, 0xbd, 0x0e, 0xf0,
- 0x89, 0xfb, 0x6c, 0x60, 0x08, 0xe0, 0x00, 0x22,
- 0xaa, 0x60, 0x6c, 0x60, 0x0e, 0xf0, 0x82, 0xfb,
- 0x00, 0x21, 0x04, 0x20, 0x12, 0xf0, 0xc8, 0xfc,
- 0x06, 0xf0, 0xd8, 0xf8, 0x3c, 0x00, 0xa8, 0x0c,
- 0x00, 0x00, 0xb0, 0xbd, 0x00, 0x00, 0xc4, 0x60,
- 0x01, 0x00, 0xbc, 0x74, 0x01, 0x00, 0x05, 0x4a,
- 0x51, 0x69, 0x08, 0x1a, 0x11, 0x69, 0x09, 0x68,
- 0x10, 0x31, 0x81, 0x42, 0x01, 0xd8, 0x50, 0x61,
- 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x8c, 0x6e,
- 0x01, 0x00, 0x01, 0x49, 0x49, 0x68, 0x40, 0x1a,
- 0x70, 0x47, 0x8c, 0x6e, 0x01, 0x00, 0x01, 0x48,
- 0x40, 0x69, 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0x0c, 0x00, 0x00, 0x8c, 0x6e, 0x01, 0x00,
- 0x02, 0x4a, 0x51, 0x69, 0x08, 0x18, 0x50, 0x61,
- 0x70, 0x47, 0x00, 0x00, 0x8c, 0x6e, 0x01, 0x00,
- 0x0e, 0x49, 0x0f, 0x48, 0x10, 0xb5, 0x19, 0x22,
- 0x92, 0x01, 0x41, 0x60, 0x89, 0x18, 0xc1, 0x60,
- 0x0b, 0x49, 0x00, 0x22, 0x0c, 0x31, 0x01, 0x60,
- 0x0a, 0x49, 0x82, 0x60, 0x09, 0x68, 0x01, 0x23,
- 0xdb, 0x03, 0xc9, 0x18, 0x08, 0x4c, 0x41, 0x61,
- 0x3c, 0x00, 0x20, 0x0d, 0x00, 0x00, 0x21, 0x68,
- 0x00, 0x29, 0x02, 0xd0, 0x07, 0x49, 0x01, 0x61,
- 0x01, 0xe0, 0x00, 0xf0, 0x0c, 0xf8, 0x22, 0x60,
- 0x10, 0xbd, 0x44, 0xdc, 0x01, 0x00, 0x8c, 0x6e,
- 0x01, 0x00, 0xc8, 0x09, 0x00, 0x00, 0x34, 0x58,
- 0x01, 0x00, 0xc4, 0x09, 0x00, 0x00, 0x01, 0x48,
- 0x02, 0x49, 0x08, 0x61, 0x70, 0x47, 0xc8, 0x09,
- 0x00, 0x00, 0x8c, 0x6e, 0x01, 0x00, 0x08, 0x28,
- 0x05, 0xd2, 0x3c, 0x00, 0x5c, 0x0d, 0x00, 0x00,
- 0x03, 0x4b, 0x80, 0x00, 0x19, 0x50, 0x02, 0x49,
- 0x20, 0x31, 0x0a, 0x50, 0x70, 0x47, 0x00, 0x00,
- 0x64, 0x6d, 0x01, 0x00, 0x70, 0xb5, 0x06, 0x1c,
- 0x0d, 0x48, 0x0d, 0x1c, 0x00, 0x68, 0x14, 0x1c,
- 0x00, 0x28, 0x03, 0xd1, 0x20, 0x1c, 0x00, 0xf0,
- 0x09, 0xfc, 0x70, 0xbd, 0x28, 0x06, 0x01, 0xd5,
- 0x00, 0xf0, 0x22, 0xfe, 0x22, 0x1c, 0x29, 0x1c,
- 0x30, 0x1c, 0x08, 0xf0, 0x3c, 0x00, 0x98, 0x0d,
- 0x00, 0x00, 0xdd, 0xfd, 0x01, 0x1c, 0x03, 0x48,
- 0x54, 0x30, 0x43, 0x69, 0x32, 0x1c, 0xff, 0xf7,
- 0x1b, 0xfb, 0x70, 0xbd, 0x00, 0x00, 0x50, 0x6d,
- 0x01, 0x00, 0xf8, 0xb5, 0x06, 0x1c, 0x0d, 0x48,
- 0x1f, 0x1c, 0x00, 0x68, 0x15, 0x1c, 0x0c, 0x1c,
- 0x00, 0x28, 0x02, 0xd1, 0x28, 0x1c, 0x00, 0xf0,
- 0xe8, 0xfb, 0x20, 0x06, 0x01, 0xd5, 0x00, 0xf0,
- 0x02, 0xfe, 0x2a, 0x1c, 0x21, 0x1c, 0x3c, 0x00,
- 0xd4, 0x0d, 0x00, 0x00, 0x30, 0x1c, 0x08, 0xf0,
- 0xbd, 0xfd, 0x01, 0x1c, 0x03, 0x48, 0x54, 0x30,
- 0x43, 0x69, 0x3a, 0x1c, 0xff, 0xf7, 0xfb, 0xfa,
- 0xf8, 0xbd, 0x00, 0x00, 0x50, 0x6d, 0x01, 0x00,
- 0xf8, 0xb5, 0xf1, 0x28, 0x4e, 0xd1, 0x2a, 0x48,
- 0x69, 0x46, 0x82, 0x69, 0xff, 0xf7, 0xee, 0xfa,
- 0x27, 0x49, 0x00, 0x26, 0x54, 0x39, 0xc8, 0x68,
- 0x8b, 0x68, 0xc2, 0x00, 0x01, 0x30, 0xd5, 0x18,
- 0x3c, 0x00, 0x10, 0x0e, 0x00, 0x00, 0x07, 0x28,
- 0xc8, 0x60, 0x00, 0xd1, 0xce, 0x60, 0x22, 0x48,
- 0x6c, 0x68, 0x00, 0x68, 0x00, 0x28, 0x03, 0xd0,
- 0x00, 0x21, 0x20, 0x1c, 0x08, 0xf0, 0x3b, 0xfb,
- 0x6e, 0x60, 0x25, 0x68, 0x20, 0x89, 0xa9, 0x78,
- 0x02, 0x39, 0x40, 0x1a, 0xe9, 0x78, 0x40, 0x1a,
- 0x20, 0x81, 0xa8, 0x78, 0x28, 0x18, 0x02, 0x38,
- 0x20, 0x60, 0x6e, 0x78, 0x28, 0x78, 0x08, 0x28,
- 0x17, 0xd2, 0x3c, 0x00, 0x4c, 0x0e, 0x00, 0x00,
- 0x30, 0x06, 0x07, 0xd5, 0x27, 0x1c, 0x20, 0x1c,
- 0x00, 0xf0, 0x7a, 0xfc, 0x04, 0x1c, 0x38, 0x1c,
- 0x00, 0xf0, 0x9c, 0xfb, 0x28, 0x78, 0x0f, 0x49,
- 0x40, 0x39, 0x80, 0x00, 0x0a, 0x58, 0x00, 0x2a,
- 0x04, 0xd0, 0x31, 0x1c, 0x20, 0x1c, 0xff, 0xf7,
- 0xb3, 0xfa, 0x08, 0xe0, 0x05, 0x21, 0x00, 0xe0,
- 0x04, 0x21, 0x06, 0x20, 0x00, 0xf0, 0x10, 0xfa,
- 0x20, 0x1c, 0x00, 0xf0, 0x3c, 0x00, 0x88, 0x0e,
- 0x00, 0x00, 0x87, 0xfb, 0x30, 0x06, 0x01, 0xd5,
- 0x00, 0xf0, 0xa1, 0xfd, 0xf8, 0xbd, 0x01, 0x21,
- 0x06, 0x20, 0x00, 0xf0, 0x04, 0xfa, 0xf9, 0xe7,
- 0x00, 0x00, 0xa4, 0x6d, 0x01, 0x00, 0xcc, 0x5c,
- 0x01, 0x00, 0xf8, 0xb5, 0x1a, 0x4d, 0x19, 0x4f,
- 0x01, 0x24, 0x54, 0x35, 0x29, 0x1c, 0x03, 0x20,
- 0x7c, 0x60, 0x17, 0x4b, 0x18, 0x4a, 0x05, 0xf0,
- 0xf4, 0xfb, 0x00, 0x28, 0x02, 0xd0, 0x3c, 0x00,
- 0xc4, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x38, 0x60,
- 0x1f, 0xe0, 0x3c, 0x60, 0x07, 0x21, 0x28, 0x1c,
- 0xea, 0x69, 0xff, 0xf7, 0x83, 0xfa, 0x38, 0x20,
- 0x00, 0xf0, 0x80, 0xfc, 0x00, 0x24, 0xb8, 0x60,
- 0xb8, 0x68, 0xe6, 0x00, 0x35, 0x18, 0x68, 0x46,
- 0x02, 0x21, 0x00, 0xf0, 0x75, 0xfb, 0x28, 0x60,
- 0x28, 0x1c, 0x00, 0xf0, 0xa5, 0xfd, 0xb8, 0x68,
- 0x81, 0x59, 0x06, 0x48, 0x54, 0x30, 0x02, 0x6a,
- 0x3c, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xff, 0xf7,
- 0x6c, 0xfa, 0x01, 0x34, 0x07, 0x2c, 0xea, 0xdb,
- 0x00, 0x20, 0xf8, 0x60, 0x38, 0x61, 0xf8, 0xbd,
- 0x00, 0x00, 0x50, 0x6d, 0x01, 0x00, 0x81, 0x9a,
- 0x00, 0x00, 0x61, 0x9a, 0x00, 0x00, 0x05, 0x48,
- 0x80, 0xb5, 0x00, 0x68, 0x00, 0x28, 0x05, 0xd0,
- 0x03, 0x48, 0x54, 0x30, 0x42, 0x6a, 0x00, 0x21,
- 0xff, 0xf7, 0x53, 0xfa, 0x80, 0xbd, 0x50, 0x6d,
- 0x01, 0x00, 0x3c, 0x00, 0x3c, 0x0f, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x70, 0xb5, 0x0a, 0x4e,
- 0x09, 0x4d, 0x08, 0x4c, 0x08, 0x3e, 0xa1, 0x69,
- 0x00, 0x29, 0x07, 0xd0, 0x30, 0x68, 0x41, 0x60,
- 0x00, 0x7b, 0x81, 0x00, 0x69, 0x58, 0xff, 0xf7,
- 0x3e, 0xfa, 0xf4, 0xe7, 0x03, 0x49, 0x02, 0x20,
- 0x08, 0x70, 0x70, 0xbd, 0x00, 0x10, 0x07, 0x00,
- 0xe0, 0x7e, 0x01, 0x00, 0x00, 0x02, 0x07, 0x00,
- 0x70, 0xb5, 0x0a, 0x4e, 0x3c, 0x00, 0x78, 0x0f,
- 0x00, 0x00, 0x09, 0x4d, 0x08, 0x4c, 0x08, 0x3e,
- 0xe1, 0x69, 0x00, 0x29, 0x07, 0xd0, 0x70, 0x68,
- 0x41, 0x60, 0x00, 0x7b, 0x81, 0x00, 0x69, 0x58,
- 0xff, 0xf7, 0x24, 0xfa, 0xf4, 0xe7, 0x03, 0x49,
- 0x02, 0x20, 0x08, 0x70, 0x70, 0xbd, 0x00, 0x10,
- 0x07, 0x00, 0xe0, 0x7e, 0x01, 0x00, 0x00, 0x02,
- 0x07, 0x00, 0xb0, 0xb5, 0x09, 0x4d, 0x04, 0x1c,
- 0x28, 0x1c, 0x20, 0x22, 0x40, 0x30, 0x3c, 0x00,
- 0xb4, 0x0f, 0x00, 0x00, 0x05, 0x49, 0xff, 0xf7,
- 0x9f, 0xfa, 0xe0, 0x68, 0xe8, 0x60, 0x20, 0x69,
- 0x28, 0x61, 0xa0, 0x6a, 0xa8, 0x62, 0x60, 0x68,
- 0x68, 0x60, 0xb0, 0xbd, 0x70, 0x52, 0x01, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0xf8, 0xb5, 0x00, 0x24,
- 0x00, 0x23, 0x20, 0x28, 0x01, 0xdb, 0x01, 0x24,
- 0x07, 0xe0, 0x08, 0x4e, 0x80, 0x00, 0x35, 0x58,
- 0x07, 0x4f, 0xbd, 0x42, 0x00, 0xd0, 0x2b, 0x1c,
- 0x3c, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x31, 0x50,
- 0x13, 0x60, 0x00, 0x2c, 0x03, 0xd0, 0x21, 0x1c,
- 0x82, 0x20, 0x00, 0xf0, 0x52, 0xf9, 0x20, 0x1c,
- 0xf8, 0xbd, 0xe0, 0x7e, 0x01, 0x00, 0x75, 0x75,
- 0x00, 0x00, 0xb0, 0xb5, 0x0b, 0x4d, 0x04, 0x1c,
- 0x28, 0x68, 0x00, 0x28, 0x0f, 0xd0, 0x20, 0x1c,
- 0x12, 0xf0, 0xb7, 0xfd, 0x00, 0x28, 0x0a, 0xd0,
- 0x21, 0x7a, 0x28, 0x7a, 0x0a, 0x07, 0x00, 0x07,
- 0x00, 0x0f, 0x3c, 0x00, 0x2c, 0x10, 0x00, 0x00,
- 0x12, 0x0f, 0x90, 0x42, 0x29, 0x72, 0x01, 0xd0,
- 0x01, 0x20, 0xb0, 0xbd, 0x00, 0x20, 0xb0, 0xbd,
- 0x70, 0x78, 0x01, 0x00, 0xf0, 0xb5, 0x42, 0x4e,
- 0x05, 0x1c, 0x30, 0x68, 0x85, 0xb0, 0x00, 0x28,
- 0x63, 0xd0, 0x00, 0x24, 0x00, 0x20, 0x00, 0x2d,
- 0x06, 0xd0, 0x69, 0x78, 0x18, 0x29, 0x03, 0xd1,
- 0xe9, 0x79, 0x01, 0x29, 0x00, 0xd1, 0x01, 0x20,
- 0x00, 0x28, 0x45, 0xd0, 0x3c, 0x00, 0x68, 0x10,
- 0x00, 0x00, 0x00, 0x20, 0xb0, 0x72, 0x81, 0x00,
- 0x4a, 0x19, 0x93, 0x7a, 0x59, 0x06, 0x89, 0x0f,
- 0xdb, 0x06, 0x04, 0xd5, 0xb3, 0x7a, 0x01, 0x27,
- 0x8f, 0x40, 0x3b, 0x43, 0xb3, 0x72, 0xd2, 0x7a,
- 0x13, 0x09, 0x12, 0x07, 0x12, 0x0f, 0x93, 0x42,
- 0x05, 0xd3, 0x01, 0x22, 0x8a, 0x40, 0x14, 0x43,
- 0x01, 0xaa, 0x89, 0x00, 0x50, 0x50, 0x01, 0x30,
- 0x04, 0x28, 0xe4, 0xdb, 0xb0, 0x7a, 0x3c, 0x00,
- 0xa4, 0x10, 0x00, 0x00, 0x20, 0x40, 0x01, 0x07,
- 0x0d, 0xd5, 0x41, 0x07, 0x09, 0xd5, 0xc1, 0x07,
- 0x05, 0xd5, 0x81, 0x07, 0x01, 0xd5, 0x00, 0x24,
- 0x05, 0xe0, 0x02, 0x99, 0x02, 0xe0, 0x01, 0x99,
- 0x00, 0xe0, 0x03, 0x99, 0x04, 0x91, 0x41, 0x07,
- 0x09, 0xd5, 0xc1, 0x07, 0x05, 0xd5, 0x81, 0x07,
- 0x01, 0xd5, 0x00, 0x24, 0x03, 0xe0, 0x02, 0x99,
- 0x00, 0xe0, 0x01, 0x99, 0x03, 0x91, 0xc1, 0x07,
- 0x3c, 0x00, 0xe0, 0x10, 0x00, 0x00, 0x05, 0xd5,
- 0x81, 0x07, 0x01, 0xd5, 0x00, 0x24, 0x01, 0xe0,
- 0x02, 0x99, 0x01, 0x91, 0x80, 0x07, 0x01, 0xd5,
- 0x00, 0x24, 0x22, 0xe0, 0x0f, 0x2c, 0x20, 0xd1,
- 0x70, 0x68, 0x00, 0x28, 0x0b, 0xd0, 0x04, 0x9a,
- 0x02, 0xab, 0x00, 0x92, 0x0a, 0xcb, 0x01, 0x9a,
- 0x28, 0x1c, 0x0b, 0xf0, 0x8a, 0xfb, 0x00, 0x20,
- 0x70, 0x60, 0x10, 0xe0, 0x17, 0xe0, 0x30, 0x7a,
- 0x29, 0x7a, 0x3c, 0x00, 0x1c, 0x11, 0x00, 0x00,
- 0x00, 0x07, 0x09, 0x07, 0x09, 0x0f, 0x00, 0x0f,
- 0x88, 0x42, 0x07, 0xd0, 0x04, 0x9a, 0x02, 0xab,
- 0x00, 0x92, 0x0a, 0xcb, 0x01, 0x9a, 0x28, 0x1c,
- 0x0b, 0xf0, 0x76, 0xfb, 0x28, 0x7a, 0x30, 0x72,
- 0x01, 0x20, 0x0f, 0x2c, 0x00, 0xd0, 0x00, 0x20,
- 0x05, 0xb0, 0xf0, 0xbd, 0x01, 0x20, 0xfb, 0xe7,
- 0x70, 0x78, 0x01, 0x00, 0x0d, 0x4a, 0x70, 0xb5,
- 0x11, 0x68, 0x00, 0x20, 0x3c, 0x00, 0x58, 0x11,
- 0x00, 0x00, 0x00, 0x29, 0x0e, 0xd0, 0x11, 0x7a,
- 0x09, 0x06, 0x0b, 0xd5, 0x53, 0x7a, 0x94, 0x7a,
- 0x03, 0x21, 0x01, 0x25, 0x2a, 0x1c, 0x8a, 0x40,
- 0x1e, 0x1c, 0x16, 0x40, 0x03, 0xd0, 0x22, 0x40,
- 0x01, 0xd1, 0x01, 0x20, 0x70, 0xbd, 0xff, 0x31,
- 0x09, 0x06, 0x09, 0x16, 0xf2, 0xd5, 0x70, 0xbd,
- 0x00, 0x00, 0x70, 0x78, 0x01, 0x00, 0x10, 0xb5,
- 0x08, 0x4c, 0x20, 0x68, 0x00, 0x28, 0x3c, 0x00,
- 0x94, 0x11, 0x00, 0x00, 0x04, 0xd0, 0x60, 0x68,
- 0x00, 0x28, 0x01, 0xd1, 0x0b, 0xf0, 0xc0, 0xfb,
- 0x00, 0x20, 0x00, 0x21, 0x00, 0x22, 0x07, 0xc4,
- 0x0c, 0x3c, 0x01, 0x20, 0x60, 0x60, 0x10, 0xbd,
- 0x70, 0x78, 0x01, 0x00, 0x01, 0x49, 0x01, 0x20,
- 0x08, 0x60, 0x70, 0x47, 0x70, 0x78, 0x01, 0x00,
- 0xf8, 0xb5, 0x0e, 0x4d, 0x04, 0x1c, 0x00, 0x20,
- 0x68, 0x72, 0x20, 0x1c, 0x12, 0xf0, 0xde, 0xfc,
- 0x3c, 0x00, 0xd0, 0x11, 0x00, 0x00, 0x00, 0x28,
- 0x12, 0xd0, 0x00, 0x20, 0x03, 0x21, 0x01, 0x22,
- 0x0f, 0x1a, 0x16, 0x1c, 0x23, 0x7a, 0xbe, 0x40,
- 0x33, 0x40, 0x04, 0xd0, 0x6b, 0x7a, 0x16, 0x1c,
- 0x86, 0x40, 0x33, 0x43, 0x6b, 0x72, 0x01, 0x30,
- 0x00, 0x06, 0x00, 0x0e, 0x03, 0x28, 0xef, 0xd9,
- 0xf8, 0xbd, 0x70, 0x78, 0x01, 0x00, 0x92, 0x00,
- 0x51, 0x18, 0x8a, 0x7a, 0x12, 0x07, 0x12, 0x0f,
- 0x02, 0x70, 0x3c, 0x00, 0x0c, 0x12, 0x00, 0x00,
- 0xca, 0x7a, 0x12, 0x07, 0x12, 0x0f, 0x42, 0x70,
- 0xca, 0x7a, 0x12, 0x09, 0x82, 0x70, 0x09, 0x7b,
- 0x81, 0x80, 0x70, 0x47, 0x03, 0x4a, 0x0f, 0x21,
- 0x52, 0x7a, 0x01, 0x20, 0x91, 0x43, 0x00, 0xd0,
- 0x00, 0x20, 0x70, 0x47, 0x70, 0x78, 0x01, 0x00,
- 0x40, 0x07, 0x05, 0x49, 0x40, 0x0f, 0x05, 0x4a,
- 0x09, 0x56, 0x52, 0x7a, 0x01, 0x20, 0x0a, 0x40,
- 0x00, 0xd1, 0x00, 0x20, 0x3c, 0x00, 0x48, 0x12,
- 0x00, 0x00, 0x70, 0x47, 0x00, 0x00, 0x5e, 0x46,
- 0x01, 0x00, 0x70, 0x78, 0x01, 0x00, 0x12, 0x4a,
- 0x70, 0xb5, 0x53, 0x7a, 0x94, 0x7a, 0xff, 0x20,
- 0x03, 0x21, 0x01, 0x25, 0x2a, 0x1c, 0x8a, 0x40,
- 0x1e, 0x1c, 0x16, 0x40, 0x14, 0xd0, 0x22, 0x40,
- 0x12, 0xd1, 0x08, 0x06, 0x00, 0x0e, 0x07, 0xd0,
- 0x01, 0x28, 0x07, 0xd0, 0x02, 0x28, 0x07, 0xd0,
- 0x03, 0x28, 0x07, 0xd1, 0x07, 0x20, 0x3c, 0x00,
- 0x84, 0x12, 0x00, 0x00, 0x70, 0xbd, 0x03, 0x20,
- 0x70, 0xbd, 0x01, 0x20, 0x70, 0xbd, 0x05, 0x20,
- 0x70, 0xbd, 0xff, 0x20, 0x70, 0xbd, 0xff, 0x31,
- 0x09, 0x06, 0x09, 0x16, 0xe1, 0xd5, 0x70, 0xbd,
- 0x70, 0x78, 0x01, 0x00, 0xf8, 0xb5, 0x04, 0x1c,
- 0x13, 0x48, 0x0d, 0x1c, 0x81, 0x68, 0x00, 0x29,
- 0x05, 0xd0, 0x01, 0x7b, 0x00, 0x29, 0x01, 0xd1,
- 0x04, 0x73, 0x45, 0x73, 0xf8, 0xbd, 0x0f, 0x4e,
- 0x3c, 0x00, 0xc0, 0x12, 0x00, 0x00, 0x31, 0x1c,
- 0x20, 0x31, 0x8a, 0x79, 0x00, 0xab, 0x1a, 0x70,
- 0xc9, 0x79, 0x59, 0x70, 0x42, 0x68, 0x00, 0x2a,
- 0x07, 0xd0, 0x20, 0x02, 0x28, 0x43, 0x01, 0x1c,
- 0x00, 0x20, 0xff, 0xf7, 0x7e, 0xf8, 0x00, 0x28,
- 0x04, 0xd1, 0x2a, 0x1c, 0x21, 0x1c, 0x00, 0x20,
- 0x11, 0xf0, 0x0f, 0xf8, 0x00, 0xab, 0x18, 0x88,
- 0xf0, 0x84, 0xe2, 0xe7, 0x00, 0x00, 0x88, 0x5a,
- 0x01, 0x00, 0x3c, 0x00, 0xfc, 0x12, 0x00, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0x80, 0xb5, 0x01, 0x21,
- 0x81, 0x20, 0xff, 0xf7, 0xcd, 0xff, 0x80, 0xbd,
- 0x01, 0x49, 0x01, 0x20, 0x88, 0x60, 0x70, 0x47,
- 0x88, 0x5a, 0x01, 0x00, 0x05, 0x49, 0x80, 0xb5,
- 0x00, 0x20, 0x88, 0x60, 0x08, 0x7b, 0x00, 0x28,
- 0x02, 0xd0, 0x49, 0x7b, 0xff, 0xf7, 0xbc, 0xff,
- 0x80, 0xbd, 0x00, 0x00, 0x88, 0x5a, 0x01, 0x00,
- 0x02, 0x4a, 0x01, 0x1c, 0x3c, 0x00, 0x38, 0x13,
- 0x00, 0x00, 0x50, 0x68, 0x51, 0x60, 0x70, 0x47,
- 0x00, 0x00, 0x88, 0x5a, 0x01, 0x00, 0x10, 0xb5,
- 0x0c, 0x1c, 0x07, 0xf0, 0x64, 0xfa, 0x04, 0x61,
- 0x00, 0x20, 0x10, 0xbd, 0x00, 0x00, 0xff, 0xb5,
- 0x0e, 0x1c, 0x1f, 0x1c, 0x38, 0x20, 0x81, 0xb0,
- 0x00, 0xf0, 0x3d, 0xfa, 0x1d, 0x49, 0x04, 0x1c,
- 0x48, 0x69, 0x00, 0x28, 0x01, 0xd1, 0x4c, 0x61,
- 0x00, 0xe0, 0x04, 0x60, 0x30, 0x01, 0x3c, 0x00,
- 0x74, 0x13, 0x00, 0x00, 0x00, 0x90, 0x00, 0x04,
- 0x00, 0x0c, 0x00, 0xf0, 0x15, 0xfa, 0x05, 0x1c,
- 0x00, 0x99, 0xff, 0xf7, 0x8b, 0xf8, 0x00, 0x20,
- 0x73, 0x1e, 0x04, 0xe0, 0x01, 0x01, 0x4a, 0x19,
- 0x10, 0x32, 0x6a, 0x50, 0x01, 0x30, 0x98, 0x42,
- 0xf8, 0xd3, 0x00, 0x01, 0x2d, 0x50, 0x38, 0x21,
- 0x20, 0x1c, 0xff, 0xf7, 0x7b, 0xf8, 0xa5, 0x60,
- 0x65, 0x60, 0xe6, 0x85, 0x0c, 0x20, 0x60, 0x86,
- 0x3c, 0x00, 0xb0, 0x13, 0x00, 0x00, 0xaf, 0x20,
- 0x80, 0x01, 0xe0, 0x61, 0x0e, 0x20, 0xe0, 0x86,
- 0x00, 0x20, 0x20, 0x60, 0x01, 0x98, 0xe0, 0x60,
- 0x38, 0x68, 0x60, 0x61, 0x03, 0x99, 0x04, 0x48,
- 0x08, 0x60, 0x04, 0x48, 0x38, 0x60, 0x05, 0xb0,
- 0x00, 0x20, 0xf0, 0xbd, 0x00, 0x00, 0xfc, 0x5a,
- 0x01, 0x00, 0xdd, 0x15, 0x01, 0x00, 0xfd, 0x16,
- 0x01, 0x00, 0x02, 0x1c, 0x08, 0x1c, 0xf0, 0x2a,
- 0x80, 0xb5, 0x3c, 0x00, 0xec, 0x13, 0x00, 0x00,
- 0x04, 0xd0, 0xf1, 0x2a, 0x07, 0xd1, 0x06, 0xf0,
- 0x09, 0xfb, 0x80, 0xbd, 0x07, 0xf0, 0x0c, 0xfa,
- 0x0d, 0xf0, 0xa8, 0xfa, 0x80, 0xbd, 0x01, 0x21,
- 0x02, 0x20, 0xff, 0xf7, 0x4d, 0xff, 0x80, 0xbd,
- 0x01, 0x49, 0x00, 0x20, 0x48, 0x61, 0x70, 0x47,
- 0xfc, 0x5a, 0x01, 0x00, 0x00, 0x28, 0x02, 0xd0,
- 0x00, 0x29, 0x00, 0xd0, 0xc1, 0x60, 0x70, 0x47,
- 0xf8, 0xb5, 0x17, 0x1c, 0x3c, 0x00, 0x28, 0x14,
- 0x00, 0x00, 0x0e, 0x1c, 0x05, 0x1c, 0x1c, 0x1c,
- 0x1c, 0x30, 0x07, 0xf0, 0xc8, 0xf8, 0x01, 0x69,
- 0x42, 0x69, 0x80, 0x68, 0x89, 0x19, 0x89, 0x1a,
- 0x81, 0x42, 0x06, 0xd2, 0x23, 0x1c, 0x3a, 0x1c,
- 0x31, 0x1c, 0x28, 0x1c, 0x00, 0xf0, 0x05, 0xf8,
- 0xf8, 0xbd, 0x00, 0x20, 0x38, 0x60, 0x20, 0x60,
- 0xfa, 0xe7, 0xff, 0xb5, 0x85, 0xb0, 0x05, 0x98,
- 0x01, 0x27, 0x0e, 0x1c, 0x1c, 0x30, 0x3c, 0x00,
- 0x64, 0x14, 0x00, 0x00, 0x07, 0xf0, 0xae, 0xf8,
- 0x04, 0x1c, 0x80, 0x88, 0x04, 0x30, 0x03, 0x90,
- 0x2c, 0x48, 0x04, 0x90, 0x80, 0x79, 0x02, 0x90,
- 0xa0, 0x69, 0xb0, 0x42, 0x17, 0xd2, 0x35, 0x1a,
- 0x11, 0xe0, 0x03, 0x98, 0xff, 0xf7, 0x16, 0xfc,
- 0x00, 0x28, 0x06, 0xd1, 0x01, 0x21, 0x8e, 0x20,
- 0xff, 0xf7, 0x08, 0xff, 0x00, 0x25, 0x00, 0x27,
- 0x05, 0xe0, 0x21, 0x68, 0x01, 0x60, 0x20, 0x60,
- 0x3c, 0x00, 0xa0, 0x14, 0x00, 0x00, 0xa0, 0x69,
- 0x01, 0x30, 0xa0, 0x61, 0x01, 0x3d, 0xeb, 0xd2,
- 0x00, 0x2f, 0x35, 0xd0, 0xa0, 0x69, 0x80, 0x1b,
- 0xa0, 0x61, 0x20, 0x69, 0x80, 0x19, 0x20, 0x61,
- 0x61, 0x69, 0x40, 0x1a, 0xe1, 0x68, 0x88, 0x42,
- 0x03, 0xd9, 0x07, 0x21, 0x8e, 0x20, 0xff, 0xf7,
- 0xec, 0xfe, 0x25, 0x68, 0x2f, 0x1c, 0x70, 0x1e,
- 0x01, 0x95, 0x00, 0xe0, 0x3f, 0x68, 0x01, 0x38,
- 0xfc, 0xd2, 0x3c, 0x00, 0xdc, 0x14, 0x00, 0x00,
- 0x38, 0x68, 0x20, 0x60, 0x02, 0x98, 0x04, 0x99,
- 0x88, 0x71, 0x2e, 0x68, 0x2c, 0x60, 0x32, 0x1d,
- 0x00, 0x92, 0x29, 0x1c, 0x20, 0x31, 0x01, 0x22,
- 0x28, 0x1d, 0x05, 0x9b, 0x08, 0xf0, 0x7a, 0xfc,
- 0xbd, 0x42, 0x01, 0xd0, 0x35, 0x1c, 0xf0, 0xe7,
- 0x00, 0x20, 0x38, 0x61, 0x01, 0x98, 0x07, 0x99,
- 0x04, 0x30, 0x08, 0x60, 0x08, 0x98, 0x04, 0x37,
- 0x07, 0x60, 0x09, 0xb0, 0x3c, 0x00, 0x18, 0x15,
- 0x00, 0x00, 0xf0, 0xbd, 0x02, 0x98, 0x04, 0x99,
- 0x88, 0x71, 0xf9, 0xe7, 0x00, 0x00, 0x20, 0x10,
- 0x07, 0x00, 0x38, 0xb5, 0x04, 0x1c, 0x15, 0x1c,
- 0x00, 0x20, 0x0c, 0x60, 0x09, 0xe0, 0xe2, 0x68,
- 0x20, 0x1c, 0x00, 0x92, 0xa3, 0x8a, 0x21, 0x68,
- 0xa2, 0x69, 0x08, 0xf0, 0x56, 0xfc, 0x20, 0x1c,
- 0xe4, 0x68, 0x00, 0x2c, 0xf3, 0xd1, 0x28, 0x60,
- 0x38, 0xbd, 0x80, 0xb5, 0x0c, 0xe0, 0x3c, 0x00,
- 0x54, 0x15, 0x00, 0x00, 0xc2, 0x68, 0x8a, 0x42,
- 0x08, 0xd1, 0x00, 0x21, 0xc1, 0x60, 0x00, 0x28,
- 0x03, 0xd1, 0x06, 0x21, 0x8e, 0x20, 0xff, 0xf7,
- 0x9d, 0xfe, 0x80, 0xbd, 0x10, 0x1c, 0x00, 0x28,
- 0xf7, 0xd0, 0xef, 0xe7, 0x10, 0xb5, 0x04, 0x1c,
- 0x0c, 0xd0, 0xa0, 0x69, 0x00, 0x28, 0x06, 0xd1,
- 0x20, 0x69, 0x00, 0x28, 0x03, 0xd0, 0x06, 0xf0,
- 0xf7, 0xfd, 0x00, 0x20, 0x20, 0x61, 0x20, 0x1c,
- 0x3c, 0x00, 0x90, 0x15, 0x00, 0x00, 0x06, 0xf0,
- 0xf2, 0xfd, 0x10, 0xbd, 0x00, 0x00, 0x10, 0xb5,
- 0x00, 0x28, 0x09, 0xd0, 0xc4, 0x68, 0x03, 0xe0,
- 0xff, 0xf7, 0xe7, 0xff, 0x20, 0x1c, 0xf9, 0xe7,
- 0x00, 0x2c, 0xf9, 0xd1, 0xff, 0xf7, 0xe1, 0xff,
- 0x10, 0xbd, 0x01, 0x1c, 0x00, 0x20, 0x04, 0xe0,
- 0x0a, 0x89, 0xc9, 0x68, 0x10, 0x18, 0x00, 0x04,
- 0x00, 0x0c, 0x00, 0x29, 0xf8, 0xd1, 0x70, 0x47,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0x15, 0x00, 0x00,
- 0x00, 0xe0, 0x08, 0x1c, 0xc1, 0x68, 0x00, 0x29,
- 0xfb, 0xd1, 0x70, 0x47, 0xf8, 0xb5, 0x06, 0x1c,
- 0x0c, 0x1c, 0x1c, 0x20, 0x00, 0xf0, 0x68, 0xfa,
- 0x05, 0x1c, 0x00, 0x2e, 0x01, 0xd1, 0x00, 0x2c,
- 0x02, 0xd1, 0x30, 0x1c, 0x01, 0x21, 0x03, 0xe0,
- 0x20, 0x1c, 0x00, 0xf0, 0x5d, 0xfa, 0x00, 0x21,
- 0x00, 0x22, 0x00, 0x92, 0x0a, 0x1c, 0x01, 0x1c,
- 0x23, 0x1c, 0x28, 0x1c, 0x3c, 0x00, 0x08, 0x16,
- 0x00, 0x00, 0x08, 0xf0, 0xf2, 0xfb, 0x28, 0x1c,
- 0xf8, 0xbd, 0xb0, 0xb5, 0x03, 0x32, 0x92, 0x08,
- 0x92, 0x00, 0x14, 0x04, 0x24, 0x0c, 0x09, 0x19,
- 0x1d, 0x1c, 0xc9, 0x18, 0x09, 0x04, 0x09, 0x0c,
- 0xff, 0xf7, 0xd7, 0xff, 0x01, 0x89, 0x02, 0x68,
- 0x12, 0x19, 0x09, 0x1b, 0x49, 0x1b, 0x02, 0x60,
- 0x01, 0x81, 0xb0, 0xbd, 0x00, 0x00, 0xf8, 0xb5,
- 0x0a, 0x4c, 0xa0, 0x21, 0x20, 0x1c, 0x3c, 0x00,
- 0x44, 0x16, 0x00, 0x00, 0xfe, 0xf7, 0x2a, 0xff,
- 0x00, 0x20, 0x26, 0x1c, 0xa0, 0x36, 0x07, 0x4d,
- 0x07, 0xe0, 0x0c, 0x21, 0x41, 0x43, 0x49, 0x19,
- 0x0e, 0xc9, 0x27, 0x1d, 0x0e, 0xc7, 0x20, 0x34,
- 0x01, 0x30, 0xa6, 0x42, 0xf5, 0xd1, 0xf8, 0xbd,
- 0xd0, 0x5c, 0x01, 0x00, 0xc8, 0x3f, 0x01, 0x00,
- 0xf7, 0xb5, 0xc4, 0x68, 0x06, 0x1c, 0x00, 0x25,
- 0x00, 0x2c, 0x82, 0xb0, 0x23, 0xd0, 0x20, 0x89,
- 0x3c, 0x00, 0x80, 0x16, 0x00, 0x00, 0x90, 0x42,
- 0x20, 0xd3, 0xe1, 0x68, 0x87, 0x1a, 0x01, 0x91,
- 0x00, 0x21, 0xe1, 0x60, 0x03, 0x99, 0x00, 0x20,
- 0xff, 0xf7, 0xa1, 0xff, 0x05, 0x1c, 0x20, 0x89,
- 0xc0, 0x1b, 0x20, 0x81, 0x2a, 0x68, 0x03, 0x99,
- 0x30, 0x1c, 0x00, 0xf0, 0x16, 0xf8, 0x20, 0x89,
- 0xc0, 0x19, 0x20, 0x81, 0x01, 0x99, 0x20, 0x1c,
- 0xff, 0xf7, 0xb1, 0xfe, 0x21, 0x1c, 0x28, 0x1c,
- 0xff, 0xf7, 0x3c, 0x00, 0xbc, 0x16, 0x00, 0x00,
- 0xad, 0xfe, 0x29, 0x1c, 0x30, 0x1c, 0xff, 0xf7,
- 0xa9, 0xfe, 0x01, 0x20, 0x00, 0x2d, 0x00, 0xd1,
- 0x00, 0x20, 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00,
- 0xf7, 0xb5, 0x04, 0x1c, 0x0e, 0x1c, 0x00, 0x20,
- 0x01, 0xe0, 0x20, 0x1c, 0x0c, 0x1c, 0xe1, 0x68,
- 0x00, 0x29, 0xfa, 0xd1, 0x27, 0x89, 0xb7, 0x42,
- 0x0a, 0xd3, 0xb8, 0x1b, 0x00, 0x04, 0x00, 0x0c,
- 0x20, 0x81, 0x21, 0x68, 0x3c, 0x00, 0xf8, 0x16,
- 0x00, 0x00, 0x09, 0x18, 0x02, 0x98, 0x32, 0x1c,
- 0xfe, 0xf7, 0xfb, 0xfe, 0xfe, 0xbd, 0xf1, 0x1b,
- 0x0d, 0x04, 0x2d, 0x0c, 0x00, 0x28, 0x19, 0xd0,
- 0x01, 0x89, 0xa9, 0x42, 0x16, 0xd3, 0x49, 0x1b,
- 0x09, 0x04, 0x09, 0x0c, 0x01, 0x81, 0x00, 0x68,
- 0x41, 0x18, 0x02, 0x98, 0x2a, 0x1c, 0xfe, 0xf7,
- 0xe8, 0xfe, 0x21, 0x68, 0x02, 0x98, 0x72, 0x1b,
- 0x40, 0x19, 0xfe, 0xf7, 0xe2, 0xfe, 0x3c, 0x00,
- 0x34, 0x17, 0x00, 0x00, 0x20, 0x89, 0xc0, 0x1b,
- 0x20, 0x81, 0x20, 0x68, 0xc0, 0x19, 0x20, 0x60,
- 0xdf, 0xe7, 0x03, 0x21, 0x8e, 0x20, 0xff, 0xf7,
- 0xad, 0xfd, 0xda, 0xe7, 0xf8, 0xb5, 0x04, 0x1c,
- 0x00, 0x26, 0x13, 0xe0, 0x21, 0x89, 0x00, 0x20,
- 0xff, 0xf7, 0x3e, 0xff, 0x05, 0x1c, 0x22, 0x89,
- 0x21, 0x68, 0x00, 0x68, 0xfe, 0xf7, 0xc8, 0xfe,
- 0x00, 0x2e, 0x01, 0xd1, 0x2e, 0x1c, 0x03, 0xe0,
- 0x3c, 0x00, 0x70, 0x17, 0x00, 0x00, 0x29, 0x1c,
- 0x38, 0x1c, 0xff, 0xf7, 0x50, 0xfe, 0xe4, 0x68,
- 0x2f, 0x1c, 0x00, 0x2c, 0xe9, 0xd1, 0x30, 0x1c,
- 0xf8, 0xbd, 0xb0, 0xb5, 0x04, 0x1c, 0x00, 0x89,
- 0x40, 0x1a, 0x05, 0x04, 0x20, 0x68, 0x2d, 0x0c,
- 0x40, 0x18, 0x29, 0x1c, 0xff, 0xf7, 0x1f, 0xff,
- 0x21, 0x89, 0x49, 0x1b, 0x21, 0x81, 0xe1, 0x68,
- 0xc1, 0x60, 0xe0, 0x60, 0xb0, 0xbd, 0x10, 0xb5,
- 0x03, 0x30, 0x3c, 0x00, 0xac, 0x17, 0x00, 0x00,
- 0x09, 0x4a, 0x81, 0x08, 0x10, 0x68, 0x3d, 0x24,
- 0x08, 0x4b, 0x64, 0x01, 0x89, 0x00, 0x09, 0x18,
- 0x1b, 0x19, 0x99, 0x42, 0x01, 0xd8, 0x11, 0x60,
- 0x10, 0xbd, 0x0f, 0x21, 0x80, 0x20, 0xff, 0xf7,
- 0x6b, 0xfd, 0x00, 0x20, 0x10, 0xbd, 0x00, 0x00,
- 0xb4, 0xcf, 0x01, 0x00, 0x14, 0xc8, 0x01, 0x00,
- 0x10, 0xb5, 0x11, 0xf0, 0x61, 0xff, 0x04, 0x1c,
- 0x03, 0xd1, 0x0d, 0x21, 0x3c, 0x00, 0xe8, 0x17,
- 0x00, 0x00, 0x80, 0x20, 0xff, 0xf7, 0x5b, 0xfd,
- 0x20, 0x1c, 0x10, 0xbd, 0x00, 0x00, 0xb0, 0xb5,
- 0x01, 0x1f, 0x0b, 0x68, 0x0d, 0x48, 0x00, 0x22,
- 0x83, 0x42, 0x04, 0xd0, 0x01, 0x32, 0x10, 0x30,
- 0x03, 0x2a, 0xf9, 0xd3, 0x01, 0xe0, 0x03, 0x2a,
- 0x06, 0xd3, 0x09, 0x24, 0x21, 0x1c, 0x80, 0x20,
- 0xff, 0xf7, 0x45, 0xfd, 0x20, 0x1c, 0xb0, 0xbd,
- 0x05, 0x4b, 0x00, 0x24, 0x9a, 0x79, 0x3c, 0x00,
- 0x24, 0x18, 0x00, 0x00, 0x85, 0x68, 0x0d, 0x60,
- 0x81, 0x60, 0x9a, 0x71, 0xf5, 0xe7, 0x00, 0x00,
- 0x20, 0x57, 0x01, 0x00, 0x20, 0x10, 0x07, 0x00,
- 0xb0, 0xb5, 0x00, 0x21, 0x10, 0x4a, 0x00, 0x23,
- 0xd4, 0x68, 0x84, 0x42, 0x04, 0xd2, 0x01, 0x33,
- 0x10, 0x32, 0x03, 0x2b, 0xf8, 0xd3, 0x01, 0xe0,
- 0x03, 0x2b, 0x01, 0xd3, 0x04, 0x21, 0x0e, 0xe0,
- 0x0a, 0x4c, 0xa3, 0x79, 0x90, 0x68, 0x00, 0x28,
- 0x3c, 0x00, 0x60, 0x18, 0x00, 0x00, 0x02, 0xd1,
- 0xa3, 0x71, 0x03, 0x21, 0x06, 0xe0, 0x05, 0x68,
- 0x95, 0x60, 0xa3, 0x71, 0x00, 0x29, 0x01, 0xd1,
- 0x04, 0xc0, 0xb0, 0xbd, 0x80, 0x20, 0xff, 0xf7,
- 0x14, 0xfd, 0x00, 0x20, 0xb0, 0xbd, 0x20, 0x57,
- 0x01, 0x00, 0x20, 0x10, 0x07, 0x00, 0xa0, 0x30,
- 0x00, 0x8a, 0x40, 0x07, 0x40, 0x0f, 0x08, 0x28,
- 0x0f, 0xd2, 0x01, 0xa3, 0x1b, 0x5c, 0x5b, 0x00,
- 0x9f, 0x44, 0x3c, 0x00, 0x9c, 0x18, 0x00, 0x00,
- 0x05, 0x03, 0x03, 0x05, 0x07, 0x07, 0x09, 0x09,
- 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47,
- 0x02, 0x20, 0x70, 0x47, 0x03, 0x20, 0x70, 0x47,
- 0x04, 0x20, 0x70, 0x47, 0xb0, 0xb5, 0x10, 0x4d,
- 0x68, 0x69, 0x00, 0x28, 0x07, 0xd0, 0x0e, 0x49,
- 0x00, 0x22, 0x2c, 0x31, 0x03, 0xc9, 0x01, 0x43,
- 0x03, 0x20, 0x06, 0xf0, 0xcf, 0xff, 0x0b, 0x4c,
- 0x00, 0x22, 0x03, 0xcc, 0x3c, 0x00, 0xd8, 0x18,
- 0x00, 0x00, 0x08, 0x3c, 0x01, 0x43, 0x03, 0x20,
- 0x06, 0xf0, 0xaf, 0xff, 0x03, 0xcc, 0x08, 0x43,
- 0x07, 0x49, 0x4a, 0x68, 0x02, 0x43, 0x4a, 0x60,
- 0x8a, 0x68, 0x10, 0x43, 0x88, 0x60, 0x01, 0x20,
- 0x68, 0x61, 0xb0, 0xbd, 0x00, 0x00, 0x64, 0x73,
- 0x01, 0x00, 0xb0, 0x58, 0x01, 0x00, 0x10, 0x00,
- 0x07, 0x00, 0xb0, 0xb5, 0x0c, 0x1c, 0x0f, 0xf0,
- 0xa8, 0xfa, 0x05, 0x4d, 0xe8, 0x6a, 0x3c, 0x00,
- 0x14, 0x19, 0x00, 0x00, 0x00, 0x28, 0x06, 0xd1,
- 0x00, 0x2c, 0x04, 0xd0, 0x20, 0x1c, 0x0f, 0xf0,
- 0xb7, 0xfd, 0x01, 0x20, 0x28, 0x70, 0xb0, 0xbd,
- 0xf4, 0x6e, 0x01, 0x00, 0x05, 0x49, 0x80, 0xb5,
- 0x88, 0x6a, 0x00, 0x28, 0x04, 0xda, 0x00, 0x20,
- 0x88, 0x62, 0x01, 0x21, 0x0d, 0xf0, 0x42, 0xfd,
- 0x80, 0xbd, 0x00, 0x00, 0xac, 0x7e, 0x01, 0x00,
- 0xf8, 0xb5, 0x1e, 0x4d, 0x04, 0x1c, 0x00, 0x20,
- 0x3c, 0x00, 0x50, 0x19, 0x00, 0x00, 0x68, 0x62,
- 0xa8, 0x70, 0x1c, 0x48, 0x00, 0x78, 0xc0, 0x07,
- 0x22, 0xd5, 0xb8, 0x20, 0x03, 0x59, 0x1a, 0x48,
- 0x00, 0x78, 0x0e, 0x28, 0x09, 0xd1, 0x0a, 0x1c,
- 0x80, 0x32, 0x06, 0xd0, 0x18, 0x4e, 0x0d, 0x20,
- 0x32, 0x5c, 0x8a, 0x42, 0x01, 0xdd, 0x01, 0x38,
- 0xfa, 0xd1, 0x59, 0x1e, 0x0b, 0x06, 0x1b, 0x0e,
- 0xab, 0x70, 0xab, 0x62, 0x0e, 0x28, 0x0b, 0xd2,
- 0x08, 0xe0, 0x3c, 0x00, 0x8c, 0x19, 0x00, 0x00,
- 0x62, 0x18, 0xb0, 0x32, 0x12, 0x7b, 0x82, 0x42,
- 0x02, 0xd8, 0x58, 0x1a, 0xa8, 0x62, 0x02, 0xe0,
- 0x01, 0x39, 0x00, 0x29, 0xf4, 0xda, 0x0e, 0xf0,
- 0x35, 0xf9, 0x00, 0x90, 0x00, 0xab, 0x18, 0x78,
- 0x59, 0x78, 0x81, 0x42, 0x00, 0xd9, 0x58, 0x78,
- 0xed, 0x30, 0xe8, 0x70, 0x01, 0x21, 0x20, 0x1c,
- 0x0d, 0xf0, 0x02, 0xfd, 0xf8, 0xbd, 0x00, 0x00,
- 0xac, 0x7e, 0x01, 0x00, 0x3c, 0x00, 0xc8, 0x19,
- 0x00, 0x00, 0x1d, 0x75, 0x01, 0x00, 0x11, 0x67,
- 0x01, 0x00, 0xc7, 0x52, 0x01, 0x00, 0x0e, 0x49,
- 0x10, 0xb5, 0x08, 0x69, 0x8b, 0x68, 0xc2, 0x00,
- 0xd4, 0x18, 0x62, 0x68, 0x00, 0x2a, 0x0f, 0xd1,
- 0x01, 0x30, 0x08, 0x61, 0x07, 0x28, 0x01, 0xd1,
- 0x00, 0x20, 0x08, 0x61, 0x20, 0x1c, 0x00, 0xf0,
- 0x24, 0xf8, 0x05, 0x48, 0x21, 0x68, 0x54, 0x30,
- 0x02, 0x6a, 0xfe, 0xf7, 0xec, 0xfc, 0x3c, 0x00,
- 0x04, 0x1a, 0x00, 0x00, 0x10, 0xbd, 0x06, 0x21,
- 0x06, 0x20, 0xff, 0xf7, 0x4b, 0xfc, 0x10, 0xbd,
- 0x50, 0x6d, 0x01, 0x00, 0x08, 0x49, 0x09, 0x79,
- 0xc9, 0x07, 0x08, 0x4a, 0x08, 0xd4, 0x00, 0xe0,
- 0x08, 0x1c, 0xc1, 0x68, 0x00, 0x29, 0xfb, 0xd1,
- 0x01, 0x89, 0x04, 0x31, 0x01, 0x81, 0x00, 0xe0,
- 0x00, 0x20, 0xd0, 0x62, 0x70, 0x47, 0x00, 0x00,
- 0x60, 0x80, 0x07, 0x00, 0x04, 0x6c, 0x01, 0x00,
- 0x3c, 0x00, 0x40, 0x1a, 0x00, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x19, 0x21, 0x89, 0x01, 0x00, 0x20,
- 0xff, 0xf7, 0xc5, 0xfd, 0x01, 0x1c, 0x60, 0x60,
- 0x20, 0x68, 0xff, 0xf7, 0xe0, 0xfc, 0x60, 0x68,
- 0x21, 0x68, 0x08, 0x30, 0x08, 0x60, 0x10, 0xbd,
- 0x00, 0x00, 0x0a, 0x28, 0x01, 0xda, 0x04, 0x20,
- 0x04, 0xe0, 0x50, 0x28, 0x01, 0xda, 0x05, 0x20,
- 0x00, 0xe0, 0x07, 0x20, 0x04, 0x4a, 0x11, 0x78,
- 0x38, 0x23, 0x3c, 0x00, 0x7c, 0x1a, 0x00, 0x00,
- 0xc0, 0x00, 0x18, 0x40, 0x99, 0x43, 0x08, 0x43,
- 0x10, 0x70, 0x70, 0x47, 0x88, 0x00, 0x07, 0x00,
- 0xb0, 0xb5, 0x05, 0x1c, 0x07, 0x48, 0x40, 0x68,
- 0x08, 0xe0, 0x01, 0x69, 0xa9, 0x42, 0x04, 0xd1,
- 0x44, 0x68, 0x05, 0xf0, 0xc7, 0xfd, 0x20, 0x1c,
- 0x00, 0xe0, 0x40, 0x68, 0x00, 0x28, 0xf4, 0xd1,
- 0xb0, 0xbd, 0x00, 0x00, 0x58, 0x75, 0x01, 0x00,
- 0xf8, 0xb5, 0x00, 0x25, 0x3c, 0x00, 0xb8, 0x1a,
- 0x00, 0x00, 0x06, 0xf0, 0x84, 0xfd, 0x11, 0x4f,
- 0x04, 0x1c, 0xbe, 0x79, 0x20, 0x68, 0x00, 0x28,
- 0x07, 0xd1, 0xa0, 0x88, 0x04, 0x30, 0xff, 0xf7,
- 0xf2, 0xf8, 0x00, 0x28, 0x06, 0xd1, 0x01, 0x21,
- 0x0f, 0xe0, 0x01, 0x68, 0x21, 0x60, 0xa1, 0x69,
- 0x01, 0x39, 0xa1, 0x61, 0x10, 0xc0, 0x05, 0x1c,
- 0x20, 0x69, 0x01, 0x30, 0x20, 0x61, 0x61, 0x69,
- 0x40, 0x1a, 0xe1, 0x68, 0x88, 0x42, 0x3c, 0x00,
- 0xf4, 0x1a, 0x00, 0x00, 0x03, 0xd9, 0x07, 0x21,
- 0x8e, 0x20, 0xff, 0xf7, 0xd3, 0xfb, 0xbe, 0x71,
- 0x28, 0x1c, 0xf8, 0xbd, 0x20, 0x10, 0x07, 0x00,
- 0xb0, 0xb5, 0x09, 0xf0, 0xbb, 0xff, 0x2f, 0x4c,
- 0x00, 0x28, 0x20, 0x74, 0x03, 0xd0, 0x01, 0x21,
- 0x01, 0x20, 0x0a, 0xf0, 0x71, 0xfc, 0x2b, 0x4d,
- 0x14, 0x35, 0x28, 0x68, 0x00, 0x28, 0x4d, 0xd0,
- 0x01, 0x21, 0x0f, 0x20, 0x11, 0xf0, 0x82, 0xfd,
- 0x3c, 0x00, 0x30, 0x1b, 0x00, 0x00, 0x28, 0x89,
- 0x08, 0xf0, 0xfb, 0xff, 0x01, 0x1c, 0x01, 0x22,
- 0x0f, 0x20, 0x11, 0xf0, 0x40, 0xfd, 0xe0, 0x78,
- 0x01, 0x25, 0x02, 0x28, 0x36, 0xd1, 0x0a, 0xf0,
- 0xc6, 0xf8, 0x00, 0x28, 0x0a, 0xd0, 0x0b, 0xf0,
- 0x92, 0xfb, 0x1e, 0x49, 0x09, 0x68, 0x40, 0x18,
- 0x11, 0xf0, 0x5f, 0xf8, 0x00, 0x28, 0x01, 0xd1,
- 0x02, 0x20, 0x2f, 0xe0, 0xe0, 0x78, 0x02, 0x28,
- 0x24, 0xd1, 0x3c, 0x00, 0x6c, 0x1b, 0x00, 0x00,
- 0x60, 0x70, 0x25, 0x70, 0x60, 0x68, 0x01, 0x28,
- 0x1c, 0xd0, 0x15, 0x48, 0x10, 0x38, 0x81, 0x7b,
- 0x00, 0x29, 0x04, 0xd1, 0x85, 0x73, 0x0f, 0x20,
- 0x13, 0x49, 0x10, 0xf0, 0x01, 0xfc, 0x08, 0xf0,
- 0x4f, 0xfe, 0x00, 0x28, 0x07, 0xd0, 0x0e, 0x48,
- 0x01, 0x21, 0x98, 0x38, 0x00, 0x69, 0x01, 0xf0,
- 0xb7, 0xfd, 0x00, 0x28, 0x05, 0xd0, 0x01, 0x20,
- 0x0e, 0xf0, 0x0c, 0xfd, 0x3c, 0x00, 0xa8, 0x1b,
- 0x00, 0x00, 0x01, 0x20, 0x0e, 0xf0, 0x1d, 0xfc,
- 0xb0, 0xbd, 0x05, 0xf0, 0xdc, 0xfe, 0xb0, 0xbd,
- 0xe0, 0x78, 0x00, 0x28, 0x01, 0xd1, 0x25, 0x70,
- 0xf7, 0xe7, 0x03, 0x20, 0x00, 0xe0, 0x04, 0x20,
- 0x0d, 0xf0, 0x8d, 0xfa, 0xb0, 0xbd, 0x84, 0x66,
- 0x01, 0x00, 0x6c, 0x57, 0x01, 0x00, 0xe9, 0x03,
- 0x01, 0x00, 0x70, 0xb5, 0x04, 0x1c, 0x00, 0x21,
- 0x00, 0x20, 0x0a, 0x4d, 0x00, 0xe0, 0x3c, 0x00,
- 0xe4, 0x1b, 0x00, 0x00, 0x01, 0x31, 0xcb, 0x00,
- 0x5a, 0x19, 0x16, 0x79, 0x01, 0x2e, 0x02, 0xd0,
- 0x52, 0x79, 0xa2, 0x42, 0x02, 0xd0, 0x0b, 0x29,
- 0xf4, 0xd3, 0x70, 0xbd, 0x0b, 0x29, 0xfc, 0xd2,
- 0xc8, 0x00, 0x01, 0x21, 0x5a, 0x19, 0x28, 0x58,
- 0x11, 0x71, 0x70, 0xbd, 0x38, 0x58, 0x01, 0x00,
- 0x05, 0x48, 0x80, 0xb5, 0x00, 0x7f, 0x24, 0x23,
- 0x04, 0x49, 0x58, 0x43, 0x40, 0x18, 0x00, 0x6a,
- 0x3c, 0x00, 0x20, 0x1c, 0x00, 0x00, 0xfe, 0xf7,
- 0xda, 0xfb, 0x80, 0xbd, 0x00, 0x00, 0xd4, 0x79,
- 0x01, 0x00, 0x94, 0x46, 0x01, 0x00, 0x80, 0xb5,
- 0x04, 0xf0, 0x37, 0xff, 0x00, 0x20, 0x11, 0xf0,
- 0x84, 0xfc, 0x00, 0x20, 0x80, 0xbd, 0xb0, 0xb5,
- 0x05, 0x4c, 0x05, 0x1c, 0x20, 0x6b, 0xe1, 0x6a,
- 0x02, 0xf0, 0xe3, 0xfd, 0x29, 0x1c, 0xa0, 0x6a,
- 0x02, 0xf0, 0x11, 0xfb, 0xb0, 0xbd, 0xa4, 0x6c,
- 0x01, 0x00, 0x3c, 0x00, 0x5c, 0x1c, 0x00, 0x00,
- 0xb0, 0xb5, 0x03, 0x1c, 0x08, 0x1c, 0x14, 0x1c,
- 0x00, 0x2b, 0x0c, 0x4d, 0x09, 0xd0, 0x69, 0x69,
- 0x89, 0x00, 0x01, 0x31, 0x0a, 0x04, 0x12, 0x0c,
- 0x22, 0x80, 0x29, 0x1c, 0xfe, 0xf7, 0x3e, 0xfc,
- 0x0a, 0xe0, 0x01, 0x1c, 0x28, 0x1c, 0x22, 0x88,
- 0xfe, 0xf7, 0x38, 0xfc, 0x20, 0x88, 0x01, 0x28,
- 0x02, 0xd9, 0x80, 0x08, 0x01, 0x38, 0x68, 0x61,
- 0x01, 0x20, 0xb0, 0xbd, 0x3c, 0x00, 0x98, 0x1c,
- 0x00, 0x00, 0x20, 0x6e, 0x01, 0x00, 0xf1, 0xb5,
- 0x00, 0x98, 0x00, 0x26, 0xc1, 0x68, 0x08, 0x68,
- 0x09, 0x89, 0x1c, 0x29, 0x34, 0xd3, 0xc1, 0x88,
- 0xff, 0x23, 0x01, 0x33, 0x99, 0x42, 0x2f, 0xd1,
- 0x01, 0x88, 0xc9, 0x1a, 0x2c, 0xd1, 0x41, 0x88,
- 0x08, 0x29, 0x29, 0xd1, 0x01, 0x79, 0x06, 0x29,
- 0x26, 0xd1, 0x41, 0x79, 0x04, 0x29, 0x23, 0xd1,
- 0x00, 0x25, 0x00, 0x24, 0x07, 0x1c, 0x3c, 0x00,
- 0xd4, 0x1c, 0x00, 0x00, 0x18, 0x37, 0x0b, 0xe0,
- 0xa0, 0x00, 0x41, 0x18, 0x04, 0x31, 0x04, 0x22,
- 0x38, 0x1c, 0xfe, 0xf7, 0x8b, 0xfb, 0x00, 0x28,
- 0x01, 0xd1, 0x01, 0x25, 0x04, 0xe0, 0x01, 0x34,
- 0x0a, 0x49, 0x48, 0x69, 0xa0, 0x42, 0xef, 0xd8,
- 0x08, 0x49, 0x08, 0x78, 0x00, 0x28, 0x0a, 0xd0,
- 0x01, 0x28, 0x01, 0xd0, 0x02, 0x28, 0x06, 0xd1,
- 0x00, 0x2d, 0x04, 0xd1, 0x00, 0x98, 0xc0, 0x68,
- 0x3c, 0x00, 0x10, 0x1d, 0x00, 0x00, 0xff, 0xf7,
- 0x42, 0xfc, 0x01, 0x26, 0x30, 0x1c, 0xf8, 0xbd,
- 0x00, 0x00, 0x20, 0x6e, 0x01, 0x00, 0x01, 0x48,
- 0x40, 0x68, 0x70, 0x47, 0x00, 0x00, 0x20, 0x6e,
- 0x01, 0x00, 0x02, 0x49, 0x48, 0x60, 0x01, 0x20,
- 0x48, 0x61, 0x70, 0x47, 0x00, 0x00, 0x20, 0x6e,
- 0x01, 0x00, 0x70, 0xb5, 0x04, 0x1c, 0x01, 0x26,
- 0x03, 0xf0, 0xef, 0xfa, 0x25, 0x1c, 0x10, 0x35,
- 0x00, 0x28, 0x3c, 0x00, 0x4c, 0x1d, 0x00, 0x00,
- 0x04, 0xd0, 0x00, 0x20, 0x20, 0x77, 0x03, 0xf0,
- 0xf1, 0xfb, 0x07, 0xe0, 0x03, 0xf0, 0x38, 0xfd,
- 0x00, 0x28, 0x09, 0xd0, 0x01, 0x20, 0x20, 0x77,
- 0x03, 0xf0, 0xce, 0xfc, 0x01, 0x1c, 0x06, 0x22,
- 0x28, 0x1c, 0xfe, 0xf7, 0xc3, 0xfb, 0x02, 0xe0,
- 0x02, 0x20, 0x20, 0x77, 0x00, 0x26, 0x30, 0x1c,
- 0x70, 0xbd, 0x00, 0x00, 0x03, 0x48, 0x80, 0x7a,
- 0xc0, 0x07, 0x03, 0x49, 0x3c, 0x00, 0x88, 0x1d,
- 0x00, 0x00, 0xc0, 0x0f, 0x88, 0x62, 0x70, 0x47,
- 0x00, 0x00, 0x40, 0x90, 0x07, 0x00, 0xa4, 0x6c,
- 0x01, 0x00, 0x01, 0x49, 0x01, 0x20, 0x88, 0x62,
- 0x70, 0x47, 0xa4, 0x6c, 0x01, 0x00, 0x06, 0x48,
- 0x80, 0x7a, 0xc1, 0x07, 0x06, 0x4a, 0xc9, 0x0f,
- 0x91, 0x62, 0x20, 0x21, 0x80, 0x07, 0x00, 0xd4,
- 0x00, 0x21, 0xa0, 0x32, 0x11, 0x70, 0x70, 0x47,
- 0x00, 0x00, 0x40, 0x90, 0x07, 0x00, 0x3c, 0x00,
- 0xc4, 0x1d, 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00,
- 0x07, 0x4a, 0x12, 0x68, 0x07, 0x4b, 0x9b, 0x69,
- 0x1a, 0x40, 0x01, 0xd0, 0x01, 0x22, 0x00, 0xe0,
- 0x00, 0x22, 0x0a, 0x60, 0x01, 0x21, 0x00, 0x2a,
- 0x00, 0xd0, 0x00, 0x21, 0x01, 0x60, 0x70, 0x47,
- 0x10, 0x00, 0x07, 0x00, 0xa4, 0x6c, 0x01, 0x00,
- 0x01, 0x22, 0x02, 0x60, 0x0a, 0x60, 0x70, 0x47,
- 0xb0, 0xb5, 0x0d, 0x1c, 0x01, 0x1c, 0x58, 0x31,
- 0x3c, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x04, 0x1c,
- 0x06, 0x22, 0x28, 0x1d, 0xfe, 0xf7, 0x77, 0xfb,
- 0x21, 0x1c, 0x5e, 0x31, 0x06, 0x22, 0x28, 0x1c,
- 0x0a, 0x30, 0xfe, 0xf7, 0x70, 0xfb, 0x21, 0x1c,
- 0x64, 0x31, 0x06, 0x22, 0x28, 0x1c, 0x10, 0x30,
- 0xfe, 0xf7, 0x69, 0xfb, 0xb0, 0xbd, 0xfe, 0xb5,
- 0x00, 0x25, 0x1d, 0x72, 0x17, 0x1c, 0x0e, 0x1c,
- 0xb2, 0x6d, 0x00, 0x21, 0x92, 0x19, 0x50, 0x32,
- 0xd2, 0x7a, 0x3c, 0x00, 0x3c, 0x1e, 0x00, 0x00,
- 0x1c, 0x1c, 0x5a, 0x72, 0x00, 0x78, 0x32, 0x1c,
- 0x80, 0x32, 0xc0, 0x07, 0xc0, 0x17, 0x01, 0x30,
- 0x01, 0x90, 0x08, 0x98, 0x02, 0x92, 0x00, 0x28,
- 0x01, 0xd1, 0x30, 0x7f, 0x2b, 0xe0, 0x37, 0x48,
- 0x00, 0x68, 0x00, 0x28, 0x00, 0xdd, 0x01, 0x1c,
- 0x01, 0x98, 0x00, 0x28, 0x02, 0xd0, 0x08, 0x98,
- 0x01, 0x28, 0x10, 0xd1, 0x02, 0x9a, 0x90, 0x6b,
- 0x00, 0x28, 0x06, 0xd0, 0x3c, 0x00, 0x78, 0x1e,
- 0x00, 0x00, 0x88, 0x42, 0x01, 0xd9, 0x45, 0x1a,
- 0x01, 0x3d, 0x70, 0x19, 0xb0, 0x30, 0x03, 0xe0,
- 0xb5, 0x6d, 0x01, 0x3d, 0x70, 0x19, 0x50, 0x30,
- 0x00, 0x7b, 0x0f, 0xe0, 0x02, 0x9a, 0x10, 0x6a,
- 0x00, 0x28, 0x07, 0xd0, 0x88, 0x42, 0x01, 0xd9,
- 0x45, 0x1a, 0x01, 0x3d, 0x70, 0x19, 0xa0, 0x30,
- 0x00, 0x79, 0x03, 0xe0, 0xbd, 0x69, 0x01, 0x3d,
- 0x78, 0x19, 0x00, 0x7f, 0xa0, 0x72, 0x3c, 0x00,
- 0xb4, 0x1e, 0x00, 0x00, 0x0e, 0xf0, 0x0c, 0xf8,
- 0x0e, 0x28, 0x11, 0xd1, 0xa0, 0x7a, 0x08, 0xf0,
- 0x67, 0xff, 0x00, 0x28, 0x0c, 0xd0, 0x78, 0x68,
- 0x00, 0x28, 0x05, 0xd1, 0x1b, 0x48, 0x00, 0x25,
- 0x00, 0x78, 0x08, 0xf0, 0x4b, 0xff, 0x02, 0xe0,
- 0x45, 0x1e, 0x78, 0x19, 0x00, 0x7a, 0xa0, 0x72,
- 0x02, 0x9a, 0x50, 0x69, 0x00, 0x28, 0x17, 0xd0,
- 0x08, 0x98, 0x01, 0x28, 0x14, 0xd0, 0xa0, 0x7a,
- 0x3c, 0x00, 0xf0, 0x1e, 0x00, 0x00, 0x08, 0xf0,
- 0x4e, 0xff, 0x00, 0x28, 0x0f, 0xd0, 0x01, 0x98,
- 0x00, 0x28, 0x07, 0xd0, 0x02, 0x20, 0x20, 0x72,
- 0x70, 0x6c, 0x80, 0x19, 0x40, 0x30, 0xc0, 0x79,
- 0x60, 0x72, 0x04, 0xe0, 0x7d, 0x68, 0x01, 0x3d,
- 0x78, 0x19, 0x00, 0x7a, 0xa0, 0x72, 0x02, 0x9a,
- 0xa0, 0x7a, 0x91, 0x69, 0x08, 0xf0, 0x51, 0xff,
- 0x20, 0x60, 0x02, 0x9a, 0x60, 0x7a, 0x91, 0x69,
- 0x08, 0xf0, 0x3c, 0x00, 0x2c, 0x1f, 0x00, 0x00,
- 0x4b, 0xff, 0x60, 0x60, 0xa0, 0x7a, 0xe0, 0x72,
- 0x25, 0x73, 0xfe, 0xbd, 0xd4, 0x7e, 0x01, 0x00,
- 0x90, 0x57, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0e,
- 0x00, 0x2a, 0x8c, 0xb5, 0x01, 0xd0, 0x8a, 0x22,
- 0x00, 0xe0, 0x88, 0x22, 0x00, 0xab, 0x1a, 0x80,
- 0x0c, 0xf0, 0xc2, 0xf8, 0x01, 0x90, 0x68, 0x46,
- 0x0b, 0xf0, 0xbc, 0xfa, 0x8c, 0xbd, 0x00, 0x00,
- 0x01, 0x1c, 0x08, 0x48, 0x3c, 0x00, 0x68, 0x1f,
- 0x00, 0x00, 0x80, 0xb5, 0x00, 0x68, 0x00, 0x28,
- 0x09, 0xd0, 0x49, 0x68, 0x02, 0x20, 0x00, 0x29,
- 0x00, 0xd1, 0x01, 0x20, 0x01, 0x06, 0x09, 0x0e,
- 0x00, 0x20, 0x06, 0xf0, 0xd8, 0xff, 0x80, 0xbd,
- 0x00, 0x00, 0x20, 0x67, 0x01, 0x00, 0x1c, 0xb5,
- 0x01, 0x90, 0x04, 0x1c, 0x44, 0x30, 0x01, 0xaa,
- 0x69, 0x46, 0x11, 0xf0, 0xb8, 0xfd, 0x00, 0x28,
- 0x0b, 0xd0, 0xa0, 0x69, 0x00, 0x21, 0x3c, 0x00,
- 0xa4, 0x1f, 0x00, 0x00, 0xc2, 0x07, 0xd2, 0x0f,
- 0x02, 0x20, 0xff, 0xf7, 0xc9, 0xff, 0x00, 0x21,
- 0x20, 0x1c, 0x0f, 0xf0, 0xd9, 0xfe, 0x1c, 0xbd,
- 0x04, 0x21, 0x98, 0x20, 0xff, 0xf7, 0x72, 0xf9,
- 0xf9, 0xe7, 0x00, 0x00, 0x8c, 0xb5, 0x00, 0xab,
- 0x84, 0x21, 0x19, 0x80, 0x05, 0x4b, 0x02, 0x1c,
- 0x18, 0x1c, 0x99, 0x8a, 0x0c, 0xf0, 0x8e, 0xf8,
- 0x01, 0x90, 0x68, 0x46, 0x0b, 0xf0, 0x7c, 0xfa,
- 0x3c, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x8c, 0xbd,
- 0x00, 0x00, 0x70, 0x7c, 0x01, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x06, 0x49, 0x80, 0xb5, 0xc9, 0x68,
- 0x14, 0x23, 0x40, 0x31, 0x89, 0x7a, 0x04, 0x4a,
- 0x59, 0x43, 0x89, 0x18, 0x80, 0x00, 0x08, 0x58,
- 0xfe, 0xf7, 0xe9, 0xf9, 0x80, 0xbd, 0x70, 0x7c,
- 0x01, 0x00, 0x54, 0x47, 0x01, 0x00, 0x80, 0xb5,
- 0x00, 0x20, 0xff, 0xf7, 0xd6, 0xff, 0x80, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0x20, 0x00, 0x00,
- 0x80, 0xb5, 0x12, 0x48, 0x11, 0x49, 0x80, 0x8a,
- 0x0a, 0x8b, 0x00, 0x21, 0x00, 0x28, 0xc2, 0xb0,
- 0x0c, 0xd1, 0x01, 0x2a, 0x05, 0xd0, 0x02, 0x2a,
- 0x15, 0xd0, 0x00, 0xab, 0x5a, 0x80, 0x0e, 0x22,
- 0x07, 0xe0, 0x02, 0x22, 0x00, 0xab, 0x5a, 0x80,
- 0x99, 0x80, 0x04, 0xe0, 0x00, 0xab, 0x5a, 0x80,
- 0x0d, 0x22, 0x00, 0xab, 0x9a, 0x80, 0x00, 0xab,
- 0x18, 0x80, 0xff, 0x20, 0x3c, 0x00, 0x58, 0x20,
- 0x00, 0x00, 0x98, 0x71, 0xd9, 0x71, 0x68, 0x46,
- 0x00, 0xf0, 0xd1, 0xf9, 0x42, 0xb0, 0x80, 0xbd,
- 0x00, 0x00, 0x70, 0x7c, 0x01, 0x00, 0x10, 0xb5,
- 0x09, 0xf0, 0x5f, 0xfc, 0x00, 0x20, 0x05, 0xf0,
- 0x2a, 0xf9, 0x03, 0x4c, 0xe0, 0x8a, 0x05, 0xf0,
- 0x36, 0xf9, 0x20, 0x1c, 0x0f, 0xf0, 0xb3, 0xfe,
- 0x10, 0xbd, 0x70, 0x7c, 0x01, 0x00, 0x1c, 0xb5,
- 0x09, 0xf0, 0x4f, 0xfc, 0x07, 0x20, 0x3c, 0x00,
- 0x94, 0x20, 0x00, 0x00, 0x00, 0xab, 0x07, 0x4c,
- 0x18, 0x80, 0xe1, 0x8a, 0x20, 0x1c, 0x0c, 0xf0,
- 0x0b, 0xf8, 0x01, 0x90, 0x68, 0x46, 0x0b, 0xf0,
- 0x17, 0xfa, 0x20, 0x1c, 0x0f, 0xf0, 0x9e, 0xfe,
- 0x1c, 0xbd, 0x00, 0x00, 0x70, 0x7c, 0x01, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x98, 0x20, 0xff, 0xf7,
- 0xf1, 0xf8, 0x80, 0xbd, 0x10, 0xb5, 0x15, 0x4c,
- 0xc2, 0xb0, 0xa0, 0x8a, 0x00, 0x28, 0x03, 0xd0,
- 0x3c, 0x00, 0xd0, 0x20, 0x00, 0x00, 0x01, 0x28,
- 0x1e, 0xd1, 0x02, 0x20, 0x00, 0xe0, 0x01, 0x20,
- 0xe1, 0x68, 0x40, 0x31, 0x88, 0x72, 0x20, 0x69,
- 0x08, 0xf0, 0x23, 0xfd, 0x02, 0x1c, 0x0c, 0x48,
- 0x18, 0x38, 0x80, 0x88, 0xe1, 0x68, 0x0f, 0xf0,
- 0xa4, 0xfe, 0xa0, 0x8a, 0x00, 0xab, 0x18, 0x80,
- 0x01, 0x20, 0x58, 0x80, 0x00, 0x20, 0x98, 0x80,
- 0xff, 0x21, 0x99, 0x71, 0xd8, 0x71, 0x68, 0x46,
- 0x00, 0xf0, 0x3c, 0x00, 0x0c, 0x21, 0x00, 0x00,
- 0x7b, 0xf9, 0x42, 0xb0, 0x10, 0xbd, 0x03, 0x21,
- 0x98, 0x20, 0xff, 0xf7, 0xc5, 0xf8, 0xf8, 0xe7,
- 0x70, 0x7c, 0x01, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x80, 0xb5, 0x03, 0x48, 0x0f, 0xf0, 0x60, 0xfe,
- 0x00, 0x20, 0x05, 0xf0, 0xcd, 0xf8, 0x80, 0xbd,
- 0x70, 0x7c, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x48,
- 0x0f, 0xf0, 0x56, 0xfe, 0x80, 0xbd, 0x00, 0x00,
- 0x70, 0x7c, 0x01, 0x00, 0x3c, 0x00, 0x48, 0x21,
- 0x00, 0x00, 0x80, 0xb5, 0x02, 0x21, 0x98, 0x20,
- 0xff, 0xf7, 0xa9, 0xf8, 0x80, 0xbd, 0x80, 0xb5,
- 0x03, 0x20, 0xff, 0xf7, 0x34, 0xff, 0x80, 0xbd,
- 0x00, 0x00, 0xf0, 0xb5, 0x21, 0x4e, 0x00, 0x27,
- 0xb1, 0x8a, 0x30, 0x1c, 0x00, 0x25, 0x04, 0x24,
- 0x00, 0x29, 0x00, 0x8b, 0xc3, 0xb0, 0x1e, 0xd1,
- 0x01, 0x28, 0x07, 0xd0, 0x31, 0x1c, 0x49, 0x8b,
- 0x02, 0x28, 0x12, 0xd1, 0x00, 0x29, 0x3c, 0x00,
- 0x84, 0x21, 0x00, 0x00, 0x07, 0xd1, 0x00, 0x24,
- 0x05, 0xe0, 0x00, 0x24, 0x01, 0x25, 0x02, 0x20,
- 0x00, 0xab, 0xd8, 0x80, 0x1f, 0x81, 0x0f, 0xf0,
- 0x7f, 0xff, 0x00, 0x2c, 0x10, 0xd1, 0xf1, 0x68,
- 0x05, 0x20, 0x40, 0x31, 0x88, 0x72, 0x0e, 0xe0,
- 0x00, 0x29, 0x1a, 0xd1, 0x00, 0xab, 0xd8, 0x80,
- 0x0e, 0x20, 0x02, 0xe0, 0x00, 0xab, 0xd8, 0x80,
- 0x0d, 0x20, 0x00, 0xab, 0x18, 0x81, 0x07, 0xe0,
- 0x3c, 0x00, 0xc0, 0x21, 0x00, 0x00, 0x30, 0x1c,
- 0x0f, 0xf0, 0x13, 0xfe, 0x20, 0x1c, 0xff, 0xf7,
- 0xfc, 0xfe, 0x00, 0x2d, 0x08, 0xd0, 0xb0, 0x8a,
- 0x00, 0xab, 0x98, 0x80, 0xff, 0x20, 0x98, 0x72,
- 0xdf, 0x72, 0x01, 0xa8, 0x00, 0xf0, 0x11, 0xf9,
- 0x43, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0x70, 0x7c,
- 0x01, 0x00, 0x10, 0xb5, 0x00, 0x20, 0x05, 0xf0,
- 0x6c, 0xf8, 0x04, 0x4c, 0xe0, 0x8a, 0x05, 0xf0,
- 0x78, 0xf8, 0x3c, 0x00, 0xfc, 0x21, 0x00, 0x00,
- 0x0f, 0xf0, 0x4c, 0xff, 0x20, 0x1c, 0x0f, 0xf0,
- 0xf3, 0xfd, 0x10, 0xbd, 0x70, 0x7c, 0x01, 0x00,
- 0x80, 0xb5, 0x04, 0x20, 0xff, 0xf7, 0xd8, 0xfe,
- 0x01, 0x48, 0x0f, 0xf0, 0xe9, 0xfd, 0x80, 0xbd,
- 0x70, 0x7c, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x20,
- 0xff, 0xf7, 0xce, 0xfe, 0x01, 0x20, 0x05, 0xf0,
- 0x5f, 0xf8, 0x02, 0x48, 0x0f, 0xf0, 0xdc, 0xfd,
- 0x80, 0xbd, 0x00, 0x00, 0x3c, 0x00, 0x38, 0x22,
- 0x00, 0x00, 0x70, 0x7c, 0x01, 0x00, 0x80, 0xb5,
- 0x03, 0x20, 0xff, 0xf7, 0xc0, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0xb0, 0xb5, 0x1d, 0x4d, 0xc2, 0xb0,
- 0x28, 0x8b, 0x00, 0xab, 0xff, 0x21, 0x58, 0x80,
- 0x99, 0x71, 0x00, 0x21, 0xd9, 0x71, 0xaa, 0x8a,
- 0x00, 0x24, 0x01, 0x2a, 0x18, 0xd1, 0x2a, 0x1c,
- 0x52, 0x8b, 0x02, 0x28, 0x0f, 0xd1, 0x00, 0x2a,
- 0x16, 0xd1, 0x03, 0x20, 0x58, 0x80, 0x3c, 0x00,
- 0x74, 0x22, 0x00, 0x00, 0x99, 0x80, 0x2c, 0x1c,
- 0xff, 0x22, 0x98, 0x1d, 0xe9, 0x69, 0xfe, 0xf7,
- 0x3b, 0xf9, 0xe1, 0x68, 0x04, 0x20, 0x40, 0x31,
- 0x88, 0x72, 0x10, 0xe0, 0x00, 0x2a, 0x06, 0xd1,
- 0x01, 0x24, 0x0e, 0x20, 0x01, 0xe0, 0x01, 0x24,
- 0x0d, 0x20, 0x00, 0xab, 0x98, 0x80, 0x28, 0x1c,
- 0x0f, 0xf0, 0xa4, 0xfd, 0x04, 0x20, 0xff, 0xf7,
- 0x8d, 0xfe, 0x00, 0x2c, 0x05, 0xd0, 0xa8, 0x8a,
- 0x3c, 0x00, 0xb0, 0x22, 0x00, 0x00, 0x00, 0xab,
- 0x18, 0x80, 0x68, 0x46, 0x00, 0xf0, 0xa5, 0xf8,
- 0x42, 0xb0, 0xb0, 0xbd, 0x00, 0x00, 0x70, 0x7c,
- 0x01, 0x00, 0x10, 0xb5, 0x00, 0x20, 0x05, 0xf0,
- 0x00, 0xf8, 0x03, 0x4c, 0xe0, 0x8a, 0x05, 0xf0,
- 0x0c, 0xf8, 0x20, 0x1c, 0x0f, 0xf0, 0x89, 0xfd,
- 0x10, 0xbd, 0x70, 0x7c, 0x01, 0x00, 0x80, 0xb5,
- 0x04, 0x20, 0xff, 0xf7, 0x6e, 0xfe, 0x01, 0x48,
- 0x0f, 0xf0, 0x3c, 0x00, 0xec, 0x22, 0x00, 0x00,
- 0x7f, 0xfd, 0x80, 0xbd, 0x70, 0x7c, 0x01, 0x00,
- 0x80, 0xb5, 0x02, 0x20, 0xff, 0xf7, 0x64, 0xfe,
- 0x01, 0x20, 0x04, 0xf0, 0xf5, 0xff, 0x02, 0x48,
- 0x0f, 0xf0, 0x72, 0xfd, 0x80, 0xbd, 0x00, 0x00,
- 0x70, 0x7c, 0x01, 0x00, 0x80, 0xb5, 0x03, 0x20,
- 0xff, 0xf7, 0x56, 0xfe, 0x80, 0xbd, 0x00, 0x00,
- 0xb0, 0xb5, 0x19, 0x4d, 0x04, 0x24, 0xa9, 0x8a,
- 0x28, 0x1c, 0x02, 0x8b, 0x3c, 0x00, 0x28, 0x23,
- 0x00, 0x00, 0xc2, 0xb0, 0x01, 0x29, 0x14, 0xd1,
- 0x40, 0x8b, 0x04, 0x2a, 0x0b, 0xd1, 0x00, 0x28,
- 0x00, 0xd1, 0x00, 0x24, 0x0f, 0xf0, 0xad, 0xfe,
- 0x00, 0x2c, 0x19, 0xd1, 0xe9, 0x68, 0x05, 0x20,
- 0x40, 0x31, 0x88, 0x72, 0x17, 0xe0, 0x00, 0x28,
- 0x10, 0xd1, 0x00, 0xab, 0x5a, 0x80, 0x0e, 0x20,
- 0x02, 0xe0, 0x00, 0xab, 0x5a, 0x80, 0x0d, 0x20,
- 0x00, 0xab, 0x98, 0x80, 0x19, 0x80, 0x3c, 0x00,
- 0x64, 0x23, 0x00, 0x00, 0xff, 0x20, 0x98, 0x71,
- 0x00, 0x20, 0xd8, 0x71, 0x68, 0x46, 0x00, 0xf0,
- 0x49, 0xf8, 0x42, 0xb0, 0xb0, 0xbd, 0x28, 0x1c,
- 0x0f, 0xf0, 0x38, 0xfd, 0x20, 0x1c, 0xff, 0xf7,
- 0x21, 0xfe, 0xf6, 0xe7, 0x70, 0x7c, 0x01, 0x00,
- 0x10, 0xb5, 0x00, 0x20, 0x04, 0xf0, 0x9e, 0xff,
- 0x03, 0x4c, 0xe0, 0x8a, 0x04, 0xf0, 0xaa, 0xff,
- 0x20, 0x1c, 0x0f, 0xf0, 0x27, 0xfd, 0x10, 0xbd,
- 0x3c, 0x00, 0xa0, 0x23, 0x00, 0x00, 0x70, 0x7c,
- 0x01, 0x00, 0x80, 0xb5, 0x04, 0x20, 0xff, 0xf7,
- 0x0c, 0xfe, 0x01, 0x48, 0x0f, 0xf0, 0x1d, 0xfd,
- 0x80, 0xbd, 0x70, 0x7c, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x20, 0xff, 0xf7, 0x02, 0xfe, 0x01, 0x20,
- 0x04, 0xf0, 0x93, 0xff, 0x02, 0x48, 0x0f, 0xf0,
- 0x10, 0xfd, 0x80, 0xbd, 0x00, 0x00, 0x70, 0x7c,
- 0x01, 0x00, 0xb0, 0xb5, 0x0a, 0x4d, 0x01, 0x1c,
- 0x44, 0x31, 0x3c, 0x00, 0xdc, 0x23, 0x00, 0x00,
- 0x04, 0x1c, 0x06, 0x22, 0x28, 0x1c, 0xfe, 0xf7,
- 0x89, 0xf8, 0xec, 0x60, 0x20, 0x69, 0x03, 0xf0,
- 0x97, 0xf8, 0x01, 0x1c, 0x06, 0x22, 0xa8, 0x18,
- 0xfe, 0xf7, 0x80, 0xf8, 0x04, 0x20, 0xff, 0xf7,
- 0xf7, 0xfd, 0xb0, 0xbd, 0x70, 0x7c, 0x01, 0x00,
- 0x90, 0xb5, 0x04, 0x1c, 0x80, 0x88, 0x93, 0xb0,
- 0x00, 0x28, 0x06, 0xd0, 0x15, 0x49, 0x06, 0x22,
- 0x48, 0x80, 0x18, 0x31, 0x3c, 0x00, 0x18, 0x24,
- 0x00, 0x00, 0x88, 0x1f, 0xfe, 0xf7, 0x6d, 0xf8,
- 0x68, 0x46, 0x0c, 0xf0, 0x14, 0xf8, 0x20, 0x88,
- 0x01, 0x28, 0x08, 0xd1, 0x60, 0x88, 0x03, 0x28,
- 0x05, 0xd1, 0xa0, 0x88, 0x00, 0x28, 0x02, 0xd1,
- 0x06, 0x20, 0x0c, 0xa9, 0x08, 0x70, 0xa0, 0x79,
- 0x06, 0x21, 0xff, 0x28, 0x04, 0xd0, 0xe0, 0x79,
- 0x00, 0x28, 0x01, 0xd0, 0x01, 0x1c, 0x08, 0x31,
- 0x0b, 0x20, 0x08, 0xaa, 0x50, 0x72, 0x3c, 0x00,
- 0x54, 0x24, 0x00, 0x00, 0x20, 0x1c, 0x08, 0xf0,
- 0x3b, 0xff, 0x03, 0x90, 0x68, 0x46, 0x0b, 0xf0,
- 0x31, 0xf8, 0x13, 0xb0, 0x90, 0xbd, 0x00, 0x00,
- 0x58, 0x7c, 0x01, 0x00, 0x07, 0x4b, 0x1a, 0x78,
- 0x82, 0x42, 0x01, 0xd0, 0x00, 0x29, 0x07, 0xd0,
- 0xff, 0x20, 0x18, 0x70, 0x04, 0x48, 0x01, 0x88,
- 0x01, 0x22, 0x52, 0x03, 0x91, 0x43, 0x01, 0x80,
- 0x70, 0x47, 0x00, 0x00, 0x4c, 0x7b, 0x01, 0x00,
- 0x3c, 0x00, 0x90, 0x24, 0x00, 0x00, 0x32, 0x80,
- 0x07, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x0c, 0x23,
- 0x07, 0x49, 0x58, 0x43, 0x40, 0x18, 0x00, 0x79,
- 0x0a, 0xf0, 0x4f, 0xf9, 0x01, 0x20, 0x03, 0x49,
- 0xa0, 0x40, 0x08, 0x39, 0x0a, 0x78, 0x10, 0x43,
- 0x08, 0x70, 0x10, 0xbd, 0x00, 0x00, 0x74, 0x7a,
- 0x01, 0x00, 0x03, 0x4a, 0x00, 0x21, 0x11, 0x54,
- 0x80, 0x00, 0x30, 0x32, 0x10, 0x58, 0x01, 0x70,
- 0x70, 0x47, 0x3c, 0x00, 0xcc, 0x24, 0x00, 0x00,
- 0xe0, 0x7a, 0x01, 0x00, 0x10, 0xb5, 0x04, 0x1c,
- 0x05, 0x28, 0x01, 0xd3, 0xfe, 0xf7, 0x12, 0xff,
- 0x20, 0x1c, 0xff, 0xf7, 0xed, 0xff, 0x00, 0x21,
- 0x20, 0x1c, 0x0e, 0xf0, 0x89, 0xfb, 0x10, 0xbd,
- 0x05, 0x49, 0x80, 0xb5, 0x88, 0x60, 0x08, 0x7f,
- 0x24, 0x23, 0x04, 0x49, 0x58, 0x43, 0x08, 0x58,
- 0xfd, 0xf7, 0x6c, 0xff, 0x80, 0xbd, 0x00, 0x00,
- 0xd4, 0x79, 0x01, 0x00, 0x3c, 0x00, 0x08, 0x25,
- 0x00, 0x00, 0x94, 0x46, 0x01, 0x00, 0x80, 0xb5,
- 0x01, 0x21, 0x91, 0x20, 0xfe, 0xf7, 0xc7, 0xfe,
- 0x80, 0xbd, 0x02, 0x4a, 0x11, 0x68, 0x81, 0x43,
- 0x11, 0x60, 0x70, 0x47, 0x00, 0x00, 0x78, 0x6e,
- 0x01, 0x00, 0x80, 0xb5, 0xfe, 0xf7, 0xe9, 0xfe,
- 0x80, 0xbd, 0x80, 0xb5, 0xfe, 0xf7, 0xe5, 0xfe,
- 0x80, 0xbd, 0x80, 0xb5, 0x00, 0xf0, 0x31, 0xfa,
- 0x80, 0xbd, 0x03, 0x49, 0x80, 0xb5, 0x3c, 0x00,
- 0x44, 0x25, 0x00, 0x00, 0x04, 0x20, 0x88, 0x60,
- 0x00, 0xf0, 0xd0, 0xf9, 0x80, 0xbd, 0x00, 0x00,
- 0x00, 0x30, 0x07, 0x00, 0x80, 0xb5, 0x00, 0xf0,
- 0x99, 0xfa, 0x80, 0xbd, 0x80, 0xb5, 0x00, 0xf0,
- 0x99, 0xfb, 0x80, 0xbd, 0x38, 0xb5, 0x20, 0x28,
- 0x15, 0xd2, 0x0d, 0x4c, 0x22, 0x1c, 0x20, 0x32,
- 0x95, 0x79, 0x00, 0xab, 0x1d, 0x70, 0xd2, 0x79,
- 0x5a, 0x70, 0x0a, 0x4b, 0x82, 0x00, 0x99, 0x50,
- 0x3c, 0x00, 0x80, 0x25, 0x00, 0x00, 0x01, 0x21,
- 0x81, 0x40, 0x08, 0x48, 0x01, 0x60, 0x42, 0x68,
- 0x11, 0x43, 0x41, 0x60, 0x00, 0xab, 0x18, 0x88,
- 0xe0, 0x84, 0x38, 0xbd, 0x01, 0x21, 0xff, 0x20,
- 0xfe, 0xf7, 0x83, 0xfe, 0xf9, 0xe7, 0x00, 0x10,
- 0x07, 0x00, 0x30, 0x74, 0x01, 0x00, 0x00, 0x40,
- 0x07, 0x00, 0x20, 0x28, 0x09, 0xd2, 0x05, 0x49,
- 0x06, 0x4b, 0x82, 0x00, 0x99, 0x50, 0x05, 0x4a,
- 0x51, 0x68, 0x3c, 0x00, 0xbc, 0x25, 0x00, 0x00,
- 0x01, 0x23, 0x83, 0x40, 0x99, 0x43, 0x51, 0x60,
- 0x70, 0x47, 0x00, 0x00, 0xa9, 0x75, 0x00, 0x00,
- 0x30, 0x74, 0x01, 0x00, 0x00, 0x40, 0x07, 0x00,
- 0x02, 0x4a, 0x11, 0x68, 0x08, 0x43, 0x10, 0x60,
- 0x70, 0x47, 0x00, 0x00, 0x78, 0x6e, 0x01, 0x00,
- 0x0b, 0x48, 0x01, 0x68, 0x03, 0x22, 0x12, 0x04,
- 0x11, 0x43, 0x01, 0x60, 0x01, 0x68, 0x07, 0x22,
- 0x12, 0x06, 0x91, 0x43, 0x3c, 0x00, 0xf8, 0x25,
- 0x00, 0x00, 0x01, 0x22, 0x52, 0x06, 0x89, 0x18,
- 0x01, 0x60, 0x01, 0x68, 0x12, 0x0c, 0x11, 0x43,
- 0x01, 0x60, 0x01, 0x68, 0x52, 0x08, 0x11, 0x43,
- 0x01, 0x60, 0x70, 0x47, 0x00, 0x00, 0x80, 0x00,
- 0x07, 0x00, 0xfe, 0xb5, 0x1c, 0x4e, 0x05, 0x1c,
- 0xb0, 0x8a, 0xf2, 0x68, 0x12, 0xd0, 0x01, 0x24,
- 0x00, 0x29, 0x09, 0xd1, 0x11, 0x6d, 0x02, 0xaa,
- 0x01, 0xab, 0xfe, 0xf7, 0xf8, 0xfe, 0x3c, 0x00,
- 0x34, 0x26, 0x00, 0x00, 0x02, 0x98, 0x00, 0x28,
- 0x01, 0xd0, 0x00, 0x24, 0x0b, 0xe0, 0x01, 0xaa,
- 0x02, 0xa9, 0x28, 0x1c, 0xfe, 0xf7, 0x70, 0xff,
- 0x05, 0xe0, 0x11, 0x6d, 0x02, 0xaa, 0x00, 0x24,
- 0x01, 0xab, 0xfe, 0xf7, 0x01, 0xff, 0x0e, 0x49,
- 0x08, 0x1c, 0x20, 0x30, 0x82, 0x79, 0x00, 0xab,
- 0x1a, 0x70, 0xc0, 0x79, 0x58, 0x70, 0x30, 0x68,
- 0x00, 0x28, 0x02, 0xd1, 0x02, 0x98, 0x30, 0x60,
- 0x3c, 0x00, 0x70, 0x26, 0x00, 0x00, 0x02, 0xe0,
- 0x02, 0x98, 0x72, 0x68, 0xd0, 0x60, 0x01, 0x98,
- 0x00, 0xab, 0x70, 0x60, 0x18, 0x88, 0xc8, 0x84,
- 0xf0, 0x68, 0xc0, 0x6c, 0xf0, 0x60, 0x20, 0x1c,
- 0xfe, 0xbd, 0x24, 0x7e, 0x01, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0xf8, 0xb5, 0x04, 0x1c, 0x54, 0x27,
- 0x1d, 0x4e, 0x00, 0x20, 0x30, 0x60, 0x70, 0x60,
- 0x67, 0x43, 0x38, 0x04, 0x15, 0x1c, 0x00, 0x0c,
- 0xb1, 0x82, 0x3c, 0x00, 0xac, 0x26, 0x00, 0x00,
- 0xff, 0xf7, 0x96, 0xf8, 0x08, 0x21, 0x30, 0x61,
- 0x00, 0x26, 0x17, 0x4a, 0x14, 0xe0, 0x03, 0x1c,
- 0x24, 0x33, 0x42, 0x61, 0x03, 0x61, 0xc6, 0x61,
- 0x01, 0x83, 0x08, 0x33, 0x03, 0x60, 0xb1, 0x23,
- 0x43, 0x60, 0x03, 0x1c, 0x64, 0x33, 0xc3, 0x60,
- 0x0c, 0x23, 0x03, 0x81, 0x03, 0x1c, 0x54, 0x33,
- 0x4c, 0x30, 0x28, 0xc0, 0x01, 0x3c, 0x18, 0x1c,
- 0x00, 0x2c, 0xe8, 0xd1, 0x3c, 0x00, 0xe8, 0x26,
- 0x00, 0x00, 0x09, 0x4e, 0x07, 0x22, 0x30, 0x69,
- 0xd2, 0x43, 0xc1, 0x19, 0x50, 0x50, 0x02, 0x1c,
- 0x10, 0x32, 0x80, 0x39, 0x8a, 0x63, 0xf0, 0x60,
- 0xb0, 0x60, 0x00, 0x21, 0x00, 0x20, 0xff, 0xf7,
- 0x88, 0xff, 0x30, 0x69, 0xf0, 0x60, 0xb0, 0x60,
- 0xf8, 0xbd, 0x24, 0x7e, 0x01, 0x00, 0x91, 0x00,
- 0x05, 0x00, 0x01, 0x48, 0x40, 0x6a, 0x70, 0x47,
- 0x00, 0x00, 0xe8, 0x7d, 0x01, 0x00, 0x3c, 0x00,
- 0x24, 0x27, 0x00, 0x00, 0x01, 0x48, 0x00, 0x88,
- 0x70, 0x47, 0x00, 0x00, 0xfc, 0x6b, 0x01, 0x00,
- 0x06, 0x49, 0x80, 0xb5, 0x08, 0x88, 0x01, 0x30,
- 0x08, 0x80, 0x05, 0x49, 0x08, 0x20, 0x08, 0x60,
- 0x04, 0x49, 0x88, 0x69, 0x88, 0x61, 0x00, 0xf0,
- 0x21, 0xf8, 0x80, 0xbd, 0xfc, 0x6b, 0x01, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0x00, 0x30, 0x07, 0x00,
- 0x03, 0x4a, 0x01, 0x20, 0x12, 0x1d, 0x06, 0xca,
- 0x3c, 0x00, 0x60, 0x27, 0x00, 0x00, 0x91, 0x42,
- 0x00, 0xd1, 0x00, 0x20, 0x70, 0x47, 0xe8, 0x7d,
- 0x01, 0x00, 0x06, 0x48, 0x00, 0xb5, 0xc0, 0x7c,
- 0x00, 0x28, 0x03, 0xd1, 0xff, 0xf7, 0xef, 0xff,
- 0x00, 0x28, 0x01, 0xd0, 0x01, 0x20, 0x00, 0xbd,
- 0x00, 0x20, 0x00, 0xbd, 0x00, 0x00, 0xa0, 0x80,
- 0x07, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x80, 0x07,
- 0x02, 0xd5, 0x06, 0xf0, 0x3e, 0xfd, 0x03, 0xe0,
- 0xe0, 0x07, 0x3c, 0x00, 0x9c, 0x27, 0x00, 0x00,
- 0x01, 0xd5, 0x06, 0xf0, 0xe3, 0xfd, 0x60, 0x07,
- 0x01, 0xd5, 0xfe, 0xf7, 0xab, 0xfd, 0x10, 0xbd,
- 0x02, 0x4a, 0x01, 0x1c, 0x10, 0x68, 0x11, 0x60,
- 0x70, 0x47, 0x00, 0x00, 0xe8, 0x7d, 0x01, 0x00,
- 0x38, 0xb5, 0x20, 0x4d, 0x2c, 0x1c, 0x20, 0x34,
- 0xa0, 0x79, 0x00, 0xab, 0x18, 0x70, 0xe0, 0x79,
- 0x58, 0x70, 0xfe, 0xf7, 0x27, 0xfa, 0x00, 0xab,
- 0x18, 0x88, 0xe8, 0x84, 0x3c, 0x00, 0xd8, 0x27,
- 0x00, 0x00, 0x1a, 0x48, 0x81, 0x78, 0x08, 0x22,
- 0x91, 0x43, 0x81, 0x70, 0x81, 0x78, 0x11, 0x43,
- 0x81, 0x70, 0x17, 0x48, 0x41, 0x68, 0x80, 0x22,
- 0x91, 0x43, 0x41, 0x60, 0x01, 0x68, 0x11, 0x43,
- 0x01, 0x60, 0x00, 0x20, 0x01, 0x30, 0x64, 0x28,
- 0xfc, 0xd3, 0xa0, 0x79, 0x0f, 0x4d, 0x00, 0xab,
- 0x18, 0x70, 0xe0, 0x79, 0x10, 0x4c, 0x58, 0x70,
- 0x20, 0x1c, 0x10, 0x30, 0x00, 0xf0, 0x3c, 0x00,
- 0x14, 0x28, 0x00, 0x00, 0xdf, 0xfb, 0x00, 0x20,
- 0xc0, 0x43, 0xa0, 0x61, 0xff, 0xf7, 0x9c, 0xff,
- 0x00, 0x28, 0x09, 0xd0, 0x0a, 0x49, 0x08, 0x69,
- 0x01, 0x30, 0x08, 0x61, 0x00, 0x20, 0x3c, 0x31,
- 0x89, 0x68, 0x48, 0x63, 0x06, 0xf0, 0xee, 0xfc,
- 0x00, 0xab, 0x18, 0x88, 0xe8, 0x84, 0x38, 0xbd,
- 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00,
- 0xf4, 0x00, 0x07, 0x00, 0x00, 0x30, 0x07, 0x00,
- 0x3c, 0x00, 0x50, 0x28, 0x00, 0x00, 0xe8, 0x7d,
- 0x01, 0x00, 0x0a, 0x48, 0x80, 0xb5, 0x00, 0x6a,
- 0x00, 0x28, 0x01, 0xd0, 0xfe, 0xf7, 0xc1, 0xf9,
- 0x07, 0x48, 0x07, 0x49, 0x3c, 0x30, 0x80, 0x68,
- 0x10, 0x30, 0x48, 0x61, 0x01, 0x20, 0x08, 0x61,
- 0x05, 0x49, 0x08, 0x68, 0x80, 0x22, 0x90, 0x43,
- 0x08, 0x60, 0x80, 0xbd, 0x00, 0x00, 0xe8, 0x7d,
- 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0xf4, 0x00,
- 0x07, 0x00, 0x3c, 0x00, 0x8c, 0x28, 0x00, 0x00,
- 0x80, 0xb5, 0x0c, 0xf0, 0xcb, 0xfe, 0x06, 0xf0,
- 0xbf, 0xfc, 0x80, 0xbd, 0x01, 0x49, 0xc8, 0x62,
- 0x70, 0x47, 0x00, 0x00, 0xe8, 0x7d, 0x01, 0x00,
- 0x02, 0x4a, 0x91, 0x6a, 0x08, 0x43, 0x90, 0x62,
- 0x70, 0x47, 0x00, 0x00, 0xe8, 0x7d, 0x01, 0x00,
- 0x18, 0x23, 0x06, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x00, 0x21, 0x02, 0x79, 0x03, 0x68, 0x1a, 0x70,
- 0x01, 0x31, 0x08, 0x30, 0x3c, 0x00, 0xc8, 0x28,
- 0x00, 0x00, 0x03, 0x29, 0xf8, 0xd3, 0x70, 0x47,
- 0x00, 0x00, 0x28, 0x52, 0x01, 0x00, 0x03, 0x49,
- 0x00, 0x28, 0x00, 0xd0, 0x01, 0x1c, 0x02, 0x48,
- 0x81, 0x62, 0x70, 0x47, 0x00, 0x00, 0x85, 0x75,
- 0x00, 0x00, 0x04, 0x6c, 0x01, 0x00, 0xf8, 0xb5,
- 0xff, 0xf7, 0x33, 0xff, 0x28, 0x4f, 0x00, 0x28,
- 0x04, 0xd0, 0xff, 0xf7, 0xc8, 0xff, 0x38, 0x6a,
- 0x01, 0x30, 0x38, 0x62, 0xf8, 0x6a, 0x3c, 0x00,
- 0x04, 0x29, 0x00, 0x00, 0x00, 0x28, 0x02, 0xd0,
- 0x01, 0x89, 0x04, 0x39, 0x01, 0x81, 0x38, 0x6b,
- 0x00, 0x25, 0x00, 0x28, 0x08, 0xd0, 0x0b, 0x20,
- 0x3d, 0x63, 0x10, 0xf0, 0xe5, 0xfa, 0x1e, 0x49,
- 0x08, 0x68, 0x21, 0x22, 0x90, 0x43, 0x08, 0x60,
- 0x38, 0x78, 0x3c, 0x21, 0x1b, 0x4a, 0x41, 0x43,
- 0x8c, 0x18, 0xff, 0x22, 0x79, 0x6a, 0x3a, 0x70,
- 0x00, 0x29, 0x0c, 0xd0, 0xb9, 0x69, 0x01, 0x31,
- 0x3c, 0x00, 0x40, 0x29, 0x00, 0x00, 0xb9, 0x61,
- 0x7d, 0x62, 0xbd, 0x68, 0x00, 0x2d, 0x04, 0xd0,
- 0x63, 0x6b, 0x7a, 0x6b, 0x00, 0x21, 0xfd, 0xf7,
- 0x47, 0xfd, 0xf8, 0xbd, 0x04, 0x28, 0x03, 0xd3,
- 0x01, 0x21, 0x84, 0x20, 0xfe, 0xf7, 0xa1, 0xfc,
- 0x38, 0x69, 0x26, 0x1c, 0x01, 0x30, 0x38, 0x61,
- 0x20, 0x36, 0x30, 0x78, 0x02, 0x28, 0x03, 0xd0,
- 0x0c, 0x21, 0x84, 0x20, 0xfe, 0xf7, 0x95, 0xfc,
- 0x35, 0x70, 0x3c, 0x00, 0x7c, 0x29, 0x00, 0x00,
- 0xa1, 0x69, 0x00, 0x29, 0xe8, 0xd0, 0x63, 0x6b,
- 0x30, 0x34, 0x20, 0x78, 0x0c, 0x1c, 0x00, 0x21,
- 0x7a, 0x6b, 0xfd, 0xf7, 0x27, 0xfd, 0xdf, 0xe7,
- 0x04, 0x6c, 0x01, 0x00, 0xf4, 0x00, 0x07, 0x00,
- 0x18, 0xdb, 0x01, 0x00, 0x10, 0xb5, 0x0b, 0x4c,
- 0x60, 0x6a, 0x00, 0x28, 0x0e, 0xd0, 0x0a, 0x48,
- 0x00, 0xf0, 0x12, 0xfb, 0x00, 0x20, 0x60, 0x62,
- 0xa4, 0x68, 0x00, 0x2c, 0x3c, 0x00, 0xb8, 0x29,
- 0x00, 0x00, 0x05, 0xd0, 0x7e, 0x23, 0xdb, 0x43,
- 0x00, 0x22, 0x01, 0x21, 0xfd, 0xf7, 0x0d, 0xfd,
- 0x10, 0xbd, 0xe0, 0x69, 0x01, 0x30, 0xe0, 0x61,
- 0x10, 0xbd, 0x04, 0x6c, 0x01, 0x00, 0x00, 0x30,
- 0x07, 0x00, 0x09, 0x48, 0x41, 0x68, 0x3f, 0x22,
- 0x12, 0x04, 0x91, 0x43, 0x0d, 0x22, 0x12, 0x04,
- 0x89, 0x18, 0x41, 0x60, 0x41, 0x68, 0x01, 0x22,
- 0x52, 0x02, 0x91, 0x43, 0x41, 0x60, 0x3c, 0x00,
- 0xf4, 0x29, 0x00, 0x00, 0x03, 0x48, 0x81, 0x78,
- 0x81, 0x70, 0x81, 0x78, 0x81, 0x70, 0x70, 0x47,
- 0x80, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00,
- 0xf0, 0xb5, 0x01, 0x25, 0x08, 0x24, 0x00, 0x20,
- 0x0e, 0x4a, 0x0f, 0x49, 0x00, 0x26, 0x3c, 0x23,
- 0x43, 0x43, 0xd1, 0x52, 0x9b, 0x18, 0x5d, 0x71,
- 0x9b, 0x60, 0x5e, 0x61, 0x1c, 0x82, 0xc0, 0x27,
- 0xdf, 0x60, 0x20, 0x27, 0xfe, 0x54, 0x9e, 0x61,
- 0x3c, 0x00, 0x30, 0x2a, 0x00, 0x00, 0x30, 0x27,
- 0xfe, 0x54, 0x07, 0x4f, 0x3f, 0x18, 0x20, 0x37,
- 0x01, 0x30, 0x05, 0x28, 0x9f, 0x63, 0xe9, 0xd3,
- 0x05, 0x48, 0xff, 0x32, 0x01, 0x32, 0x90, 0x62,
- 0xf0, 0xbd, 0x18, 0xdb, 0x01, 0x00, 0xbe, 0xba,
- 0x00, 0x00, 0x30, 0x80, 0x07, 0x00, 0x06, 0x6c,
- 0x01, 0x00, 0x01, 0x49, 0x48, 0x60, 0x70, 0x47,
- 0x00, 0x00, 0x04, 0x6c, 0x01, 0x00, 0x05, 0x49,
- 0x08, 0x5c, 0x3c, 0x00, 0x6c, 0x2a, 0x00, 0x00,
- 0x05, 0x49, 0x49, 0x68, 0x40, 0x18, 0xc0, 0x06,
- 0xc0, 0x0e, 0x04, 0x49, 0x20, 0x30, 0x48, 0x72,
- 0x70, 0x47, 0x00, 0x00, 0xa0, 0x57, 0x01, 0x00,
- 0x04, 0x6c, 0x01, 0x00, 0x00, 0x80, 0x07, 0x00,
- 0x80, 0xb5, 0x15, 0x21, 0x84, 0x20, 0xfe, 0xf7,
- 0x07, 0xfc, 0x80, 0xbd, 0xf8, 0xb5, 0x43, 0x48,
- 0x84, 0x68, 0x03, 0x34, 0x42, 0x4d, 0x04, 0xe0,
- 0x20, 0x1c, 0x10, 0xf0, 0x3c, 0x00, 0xa8, 0x2a,
- 0x00, 0x00, 0xb9, 0xf8, 0x00, 0x28, 0x71, 0xd1,
- 0x28, 0x69, 0xc0, 0x07, 0xf7, 0xd5, 0x3e, 0x48,
- 0x28, 0x60, 0x3e, 0x4a, 0x14, 0x1c, 0x20, 0x34,
- 0x20, 0x79, 0x00, 0x90, 0x3c, 0x23, 0x3c, 0x49,
- 0x58, 0x43, 0x45, 0x18, 0x28, 0x79, 0xff, 0xf7,
- 0xcc, 0xff, 0x28, 0x1c, 0x3a, 0x49, 0x08, 0x30,
- 0x48, 0x60, 0x01, 0x26, 0x08, 0x1c, 0x06, 0x60,
- 0x68, 0x6a, 0x00, 0x28, 0x0d, 0xd0, 0x3c, 0x00,
- 0xe4, 0x2a, 0x00, 0x00, 0xa9, 0x6a, 0x92, 0x6a,
- 0x35, 0x4b, 0x9f, 0x68, 0xd7, 0x1b, 0x1a, 0x68,
- 0x51, 0x18, 0x79, 0x18, 0x8a, 0x42, 0x5a, 0x68,
- 0x00, 0xd8, 0x00, 0xe0, 0x01, 0x32, 0x06, 0xc0,
- 0xe8, 0x6a, 0xfe, 0xf7, 0x87, 0xff, 0x2d, 0x49,
- 0xe8, 0x6a, 0x48, 0x60, 0x30, 0x1c, 0x0e, 0x60,
- 0x66, 0x79, 0x1f, 0xe0, 0x2b, 0x48, 0x46, 0x61,
- 0x04, 0x7f, 0x29, 0x49, 0x20, 0x1c, 0x50, 0x39,
- 0x3c, 0x00, 0x20, 0x2b, 0x00, 0x00, 0x89, 0x6a,
- 0xfd, 0xf7, 0x5a, 0xfc, 0x00, 0x98, 0x84, 0x42,
- 0x10, 0xd0, 0x3c, 0x20, 0x22, 0x49, 0x60, 0x43,
- 0x40, 0x18, 0x87, 0x69, 0x00, 0x2f, 0x09, 0xd0,
- 0x00, 0x21, 0x20, 0x30, 0x01, 0x70, 0x7e, 0x23,
- 0xdb, 0x43, 0x02, 0x21, 0x00, 0x22, 0x20, 0x1c,
- 0xfd, 0xf7, 0x4c, 0xfc, 0x01, 0x20, 0xa0, 0x40,
- 0x86, 0x43, 0x00, 0x2e, 0xdd, 0xd1, 0xe9, 0x69,
- 0x00, 0x29, 0x3c, 0x00, 0x5c, 0x2b, 0x00, 0x00,
- 0x03, 0xd0, 0x30, 0x20, 0x40, 0x5d, 0xfd, 0xf7,
- 0x3a, 0xfc, 0x16, 0x4c, 0x50, 0x3c, 0x60, 0x6a,
- 0x00, 0x28, 0x03, 0xd0, 0x0a, 0x21, 0x84, 0x20,
- 0xfe, 0xf7, 0x96, 0xfb, 0x20, 0x35, 0x28, 0x78,
- 0x01, 0x28, 0x03, 0xd0, 0x0b, 0x21, 0x84, 0x20,
- 0xfe, 0xf7, 0x8e, 0xfb, 0x02, 0x20, 0x28, 0x70,
- 0xe0, 0x68, 0x01, 0x30, 0x00, 0xe0, 0x07, 0xe0,
- 0xe0, 0x60, 0x00, 0x98, 0x3c, 0x00, 0x98, 0x2b,
- 0x00, 0x00, 0x20, 0x70, 0x00, 0x98, 0x60, 0x70,
- 0x0a, 0x48, 0x00, 0x68, 0x60, 0x63, 0xf8, 0xbd,
- 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x40,
- 0x07, 0x00, 0x01, 0x00, 0x00, 0x01, 0x30, 0x80,
- 0x07, 0x00, 0x18, 0xdb, 0x01, 0x00, 0x00, 0x30,
- 0x07, 0x00, 0x54, 0x6c, 0x01, 0x00, 0x00, 0xa0,
- 0x07, 0x00, 0x78, 0x6e, 0x01, 0x00, 0x3c, 0x22,
- 0x3c, 0x23, 0x4a, 0x43, 0x09, 0x49, 0x3c, 0x00,
- 0xd4, 0x2b, 0x00, 0x00, 0xb0, 0xb5, 0x54, 0x18,
- 0x58, 0x43, 0x45, 0x18, 0x21, 0x1c, 0x38, 0x22,
- 0x28, 0x1c, 0xfd, 0xf7, 0xe5, 0xfc, 0xa0, 0x6b,
- 0x00, 0x78, 0xa9, 0x6b, 0x08, 0x70, 0x00, 0x20,
- 0x20, 0x34, 0x20, 0x70, 0xb0, 0xbd, 0x00, 0x00,
- 0x18, 0xdb, 0x01, 0x00, 0x3c, 0x23, 0x07, 0x49,
- 0x58, 0x43, 0x10, 0xb5, 0x44, 0x18, 0x20, 0x34,
- 0x20, 0x78, 0x02, 0x28, 0x03, 0xd1, 0x0d, 0x21,
- 0x3c, 0x00, 0x10, 0x2c, 0x00, 0x00, 0x84, 0x20,
- 0xfe, 0xf7, 0x47, 0xfb, 0x00, 0x20, 0x20, 0x70,
- 0x10, 0xbd, 0x18, 0xdb, 0x01, 0x00, 0xff, 0xb5,
- 0x3c, 0x20, 0x48, 0x43, 0x1a, 0x49, 0x81, 0xb0,
- 0x44, 0x18, 0x26, 0x1c, 0x20, 0x36, 0x30, 0x78,
- 0x15, 0x1c, 0x0f, 0x9f, 0x02, 0x28, 0x03, 0xd1,
- 0x04, 0x21, 0x84, 0x20, 0xfe, 0xf7, 0x31, 0xfb,
- 0x01, 0x20, 0x30, 0x70, 0x25, 0x71, 0x0b, 0x99,
- 0x30, 0x22, 0x3c, 0x00, 0x4c, 0x2c, 0x00, 0x00,
- 0x61, 0x80, 0x0a, 0x99, 0xe1, 0x62, 0x0d, 0x99,
- 0xa1, 0x61, 0x0c, 0x99, 0xe1, 0x61, 0x0e, 0x99,
- 0x61, 0x62, 0xa7, 0x62, 0x01, 0x99, 0x11, 0x55,
- 0x7e, 0x21, 0xc9, 0x43, 0x61, 0x63, 0x04, 0x99,
- 0x00, 0x29, 0x00, 0xd1, 0x00, 0x20, 0x06, 0x1c,
- 0x28, 0x1c, 0x08, 0xf0, 0x8b, 0xf8, 0x00, 0x28,
- 0x01, 0xd0, 0x02, 0x20, 0x00, 0xe0, 0x00, 0x20,
- 0xa1, 0x6b, 0x30, 0x43, 0x3c, 0x00, 0x88, 0x2c,
- 0x00, 0x00, 0x08, 0x70, 0x05, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0x18, 0xdb, 0x01, 0x00, 0x80, 0xb5,
- 0x14, 0x21, 0x84, 0x20, 0xfe, 0xf7, 0x03, 0xfb,
- 0x80, 0xbd, 0x01, 0x48, 0x40, 0x78, 0x70, 0x47,
- 0x00, 0x00, 0x04, 0x6c, 0x01, 0x00, 0x02, 0x48,
- 0x00, 0x69, 0xc0, 0x07, 0xc0, 0x0f, 0x70, 0x47,
- 0x00, 0x00, 0x00, 0x40, 0x07, 0x00, 0x01, 0x1c,
- 0x3c, 0x23, 0x04, 0x4a, 0x59, 0x43, 0x3c, 0x00,
- 0xc4, 0x2c, 0x00, 0x00, 0x89, 0x18, 0x20, 0x31,
- 0x09, 0x78, 0x01, 0x20, 0x00, 0x29, 0x00, 0xd0,
- 0x00, 0x20, 0x70, 0x47, 0x18, 0xdb, 0x01, 0x00,
- 0x08, 0x48, 0x40, 0x6a, 0x00, 0x28, 0x0a, 0xd1,
- 0x07, 0x4a, 0x00, 0x21, 0x20, 0x23, 0x9b, 0x5c,
- 0x02, 0x2b, 0x04, 0xd0, 0x01, 0x31, 0x3c, 0x32,
- 0x05, 0x29, 0xf7, 0xd3, 0x70, 0x47, 0x01, 0x20,
- 0x70, 0x47, 0x00, 0x00, 0x04, 0x6c, 0x01, 0x00,
- 0x3c, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x18, 0xdb,
- 0x01, 0x00, 0xf8, 0xb5, 0x0e, 0x1c, 0x04, 0x1c,
- 0x17, 0x1c, 0xfe, 0xf7, 0x82, 0xfe, 0x20, 0x1c,
- 0x11, 0x4c, 0x60, 0x60, 0x01, 0x20, 0x20, 0x60,
- 0x10, 0x4d, 0x68, 0x69, 0x01, 0x30, 0x68, 0x61,
- 0x68, 0x6a, 0x00, 0x28, 0x03, 0xd0, 0x07, 0x21,
- 0x84, 0x20, 0xfe, 0xf7, 0xba, 0xfa, 0xa0, 0x68,
- 0x40, 0x07, 0x03, 0xd5, 0x06, 0x21, 0x84, 0x20,
- 0xfe, 0xf7, 0x3c, 0x00, 0x3c, 0x2d, 0x00, 0x00,
- 0xb3, 0xfa, 0x08, 0x48, 0x00, 0x69, 0x00, 0x28,
- 0x03, 0xda, 0xaa, 0x21, 0x84, 0x20, 0xfe, 0xf7,
- 0xab, 0xfa, 0x02, 0x20, 0x68, 0x62, 0xae, 0x60,
- 0x2f, 0x70, 0xf8, 0xbd, 0x00, 0x30, 0x07, 0x00,
- 0x04, 0x6c, 0x01, 0x00, 0x00, 0x40, 0x07, 0x00,
- 0x04, 0x4a, 0x51, 0x80, 0x10, 0x71, 0x03, 0x48,
- 0x03, 0x49, 0x08, 0x30, 0x48, 0x60, 0x01, 0x20,
- 0x08, 0x60, 0x70, 0x47, 0x3c, 0x00, 0x78, 0x2d,
- 0x00, 0x00, 0x3c, 0x6c, 0x01, 0x00, 0x00, 0x30,
- 0x07, 0x00, 0x00, 0x21, 0x00, 0x23, 0x05, 0xe0,
- 0x02, 0x89, 0x43, 0x60, 0xc0, 0x68, 0x51, 0x18,
- 0x09, 0x04, 0x09, 0x0c, 0x00, 0x28, 0xf7, 0xd1,
- 0x04, 0x31, 0x08, 0x04, 0x00, 0x0c, 0x70, 0x47,
- 0x00, 0x00, 0x02, 0x4a, 0x51, 0x6b, 0x08, 0x43,
- 0x50, 0x63, 0x70, 0x47, 0x00, 0x00, 0x04, 0x6c,
- 0x01, 0x00, 0x38, 0xb5, 0x0a, 0x4c, 0x3c, 0x00,
- 0xb4, 0x2d, 0x00, 0x00, 0x22, 0x1c, 0x20, 0x32,
- 0x95, 0x79, 0x00, 0xab, 0x1d, 0x70, 0xd2, 0x79,
- 0x5a, 0x70, 0x03, 0x68, 0x40, 0x68, 0x06, 0x4a,
- 0x50, 0x65, 0x05, 0x48, 0x13, 0x65, 0x50, 0x30,
- 0x81, 0x60, 0x00, 0xab, 0x18, 0x88, 0xe0, 0x84,
- 0x38, 0xbd, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0x04, 0x6c, 0x01, 0x00, 0x98, 0xb5, 0x0d, 0x4c,
- 0x20, 0x1c, 0x20, 0x30, 0x81, 0x79, 0x00, 0xab,
- 0x3c, 0x00, 0xf0, 0x2d, 0x00, 0x00, 0x19, 0x70,
- 0xc0, 0x79, 0x58, 0x70, 0x0a, 0x48, 0x00, 0xf0,
- 0xec, 0xf8, 0x09, 0x49, 0x00, 0x20, 0x48, 0x62,
- 0xff, 0xf7, 0x69, 0xff, 0x00, 0x28, 0x03, 0xd0,
- 0x12, 0x21, 0x84, 0x20, 0xfe, 0xf7, 0x49, 0xfa,
- 0x00, 0xab, 0x18, 0x88, 0xe0, 0x84, 0x98, 0xbd,
- 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x30,
- 0x07, 0x00, 0x04, 0x6c, 0x01, 0x00, 0x03, 0x48,
- 0x01, 0x7a, 0x3c, 0x00, 0x2c, 0x2e, 0x00, 0x00,
- 0xfe, 0x22, 0x91, 0x43, 0x0a, 0x31, 0x01, 0x72,
- 0x70, 0x47, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00,
- 0x90, 0xb5, 0x0e, 0x4c, 0x85, 0xb0, 0xa0, 0x78,
- 0x02, 0x28, 0x14, 0xd1, 0x03, 0x20, 0xa0, 0x70,
- 0x0b, 0x49, 0x00, 0x20, 0x00, 0x22, 0x04, 0x92,
- 0x02, 0x90, 0x03, 0x91, 0xe1, 0x88, 0x01, 0x22,
- 0x01, 0x92, 0x00, 0x91, 0x61, 0x78, 0x20, 0x78,
- 0x22, 0x69, 0xe3, 0x68, 0x3c, 0x00, 0x68, 0x2e,
- 0x00, 0x00, 0x08, 0xf0, 0x94, 0xfd, 0x04, 0x48,
- 0x09, 0xf0, 0x7f, 0xf9, 0x05, 0xb0, 0x90, 0xbd,
- 0x00, 0x00, 0xb4, 0x79, 0x01, 0x00, 0xad, 0xb6,
- 0x00, 0x00, 0x71, 0xb6, 0x00, 0x00, 0xb0, 0xb5,
- 0x0c, 0x4d, 0xac, 0x79, 0x0c, 0x49, 0x09, 0x78,
- 0x00, 0x29, 0x03, 0xd0, 0x01, 0x29, 0x0e, 0xd0,
- 0x02, 0x29, 0x08, 0xd1, 0xc2, 0x88, 0x00, 0x2a,
- 0x09, 0xd0, 0x01, 0x23, 0x81, 0x68, 0x3c, 0x00,
- 0xa4, 0x2e, 0x00, 0x00, 0x02, 0x20, 0x0f, 0xf0,
- 0xc1, 0xf8, 0x03, 0xe0, 0x02, 0x21, 0x86, 0x20,
- 0xfe, 0xf7, 0xf8, 0xf9, 0xac, 0x71, 0xb0, 0xbd,
- 0x20, 0x10, 0x07, 0x00, 0xa0, 0x79, 0x01, 0x00,
- 0x80, 0xb5, 0x02, 0x68, 0x07, 0x49, 0x4a, 0x60,
- 0x03, 0x79, 0xca, 0x78, 0xcb, 0x70, 0x00, 0x79,
- 0x90, 0x42, 0x06, 0xd0, 0x03, 0x48, 0x14, 0x30,
- 0x00, 0x89, 0x07, 0xf0, 0x27, 0xfe, 0x06, 0xf0,
- 0x3c, 0x00, 0xe0, 0x2e, 0x00, 0x00, 0xab, 0xfa,
- 0x80, 0xbd, 0x84, 0x66, 0x01, 0x00, 0x70, 0xb5,
- 0x16, 0x4c, 0x15, 0x4d, 0xa0, 0x78, 0x00, 0x26,
- 0x98, 0x3d, 0x01, 0x28, 0x03, 0xd1, 0x28, 0x69,
- 0x08, 0xf0, 0xfb, 0xfc, 0xa6, 0x70, 0x60, 0x68,
- 0x01, 0x28, 0x03, 0xd0, 0x00, 0x21, 0x28, 0x69,
- 0x00, 0xf0, 0xff, 0xfb, 0x0e, 0x48, 0x29, 0x69,
- 0x0c, 0xf0, 0x31, 0xfa, 0x01, 0x20, 0x0c, 0xf0,
- 0xe4, 0xf8, 0x3c, 0x00, 0x1c, 0x2f, 0x00, 0x00,
- 0xe0, 0x78, 0x01, 0x28, 0x02, 0xd0, 0x01, 0x20,
- 0x60, 0x70, 0x00, 0xe0, 0x66, 0x70, 0x06, 0x48,
- 0x14, 0x30, 0x41, 0x68, 0x01, 0x29, 0x06, 0xd1,
- 0x06, 0x60, 0x41, 0x6f, 0x00, 0x29, 0x02, 0xd0,
- 0x00, 0x20, 0xfd, 0xf7, 0x4c, 0xfa, 0x70, 0xbd,
- 0x84, 0x66, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x30, 0xb5, 0x00, 0x22, 0x00, 0x23, 0x01, 0x25,
- 0x2c, 0x1c, 0x94, 0x40, 0x3c, 0x00, 0x58, 0x2f,
- 0x00, 0x00, 0x04, 0x40, 0x01, 0xd0, 0xca, 0x54,
- 0x01, 0x33, 0x01, 0x32, 0x0e, 0x2a, 0xf6, 0xdb,
- 0x18, 0x1c, 0x30, 0xbd, 0x00, 0x00, 0xff, 0xb5,
- 0x01, 0x27, 0x00, 0x26, 0x05, 0x1c, 0x02, 0x20,
- 0x81, 0xb0, 0x00, 0x90, 0x00, 0x2d, 0x18, 0xd0,
- 0x28, 0x78, 0xff, 0x28, 0x15, 0xd0, 0x00, 0x24,
- 0x10, 0xe0, 0x28, 0x19, 0x80, 0x78, 0x0a, 0x99,
- 0x00, 0x29, 0x01, 0xd0, 0x01, 0x06, 0x3c, 0x00,
- 0x94, 0x2f, 0x00, 0x00, 0x08, 0xd5, 0x07, 0xf0,
- 0xe9, 0xfe, 0x0e, 0x28, 0x03, 0xd0, 0x01, 0x21,
- 0x81, 0x40, 0x0e, 0x43, 0x00, 0xe0, 0x00, 0x27,
- 0x01, 0x34, 0x68, 0x78, 0xa0, 0x42, 0xeb, 0xdc,
- 0x00, 0x98, 0x02, 0x9d, 0x01, 0x38, 0x00, 0x90,
- 0xdf, 0xd1, 0x03, 0x98, 0x31, 0x1c, 0x81, 0x43,
- 0x02, 0xd0, 0x03, 0x98, 0x06, 0x40, 0x00, 0x27,
- 0x04, 0x98, 0x06, 0x60, 0x05, 0xb0, 0x38, 0x1c,
- 0x3c, 0x00, 0xd0, 0x2f, 0x00, 0x00, 0xf0, 0xbd,
- 0x00, 0x00, 0x02, 0x21, 0x01, 0x60, 0x64, 0x21,
- 0x01, 0xe0, 0x01, 0x39, 0x02, 0xd0, 0x02, 0x68,
- 0x92, 0x07, 0xfa, 0xd4, 0x01, 0x20, 0x00, 0x29,
- 0x00, 0xd1, 0x00, 0x20, 0x70, 0x47, 0x10, 0xb5,
- 0x00, 0x20, 0xc4, 0x43, 0x05, 0x4b, 0x02, 0x22,
- 0x01, 0x01, 0x5a, 0x50, 0xc9, 0x18, 0x8c, 0x60,
- 0x01, 0x30, 0x08, 0x28, 0xf8, 0xdb, 0x10, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x30, 0x00, 0x00,
- 0x00, 0x30, 0x07, 0x00, 0xf0, 0xb5, 0x05, 0x1c,
- 0x60, 0x35, 0xc7, 0x6a, 0x04, 0x1c, 0x28, 0x7b,
- 0x00, 0x2f, 0x8b, 0xb0, 0x15, 0xd0, 0x08, 0x28,
- 0x15, 0xd2, 0x02, 0xa3, 0x1b, 0x5c, 0x5b, 0x00,
- 0x9f, 0x44, 0x00, 0x00, 0x07, 0x04, 0x04, 0x07,
- 0x09, 0x09, 0x0c, 0x0c, 0x01, 0x26, 0x00, 0x21,
- 0x09, 0xe0, 0x00, 0x26, 0x06, 0xe0, 0x02, 0x26,
- 0x02, 0x21, 0x04, 0xe0, 0x3c, 0x00, 0x48, 0x30,
- 0x00, 0x00, 0x03, 0x26, 0x03, 0x21, 0x01, 0xe0,
- 0x04, 0x26, 0x01, 0x21, 0x8c, 0x22, 0x12, 0x59,
- 0x07, 0x91, 0x26, 0x49, 0x06, 0x90, 0x04, 0x91,
- 0x00, 0x20, 0x03, 0x90, 0x05, 0x97, 0x08, 0x92,
- 0xe0, 0x69, 0x22, 0x69, 0x21, 0x1c, 0x70, 0x31,
- 0x01, 0x91, 0x21, 0x49, 0x00, 0x90, 0x70, 0x00,
- 0x40, 0x18, 0x60, 0x30, 0x02, 0x92, 0x03, 0x88,
- 0x59, 0x1c, 0x01, 0x80, 0x1e, 0x48, 0x3c, 0x00,
- 0x84, 0x30, 0x00, 0x00, 0x02, 0x88, 0xa1, 0x68,
- 0x0a, 0xa8, 0x09, 0xf0, 0xe1, 0xff, 0x60, 0x60,
- 0xe8, 0x7a, 0xa1, 0x6a, 0xc9, 0x07, 0x00, 0x07,
- 0x00, 0x0e, 0xc9, 0x0d, 0x08, 0x43, 0x61, 0x6a,
- 0x22, 0x69, 0xc9, 0x07, 0x89, 0x0d, 0x01, 0x43,
- 0x01, 0x20, 0x00, 0x2a, 0x00, 0xd1, 0x00, 0x20,
- 0x80, 0x03, 0x08, 0x43, 0x21, 0x6a, 0xc9, 0x03,
- 0x08, 0x43, 0x08, 0x21, 0x08, 0x43, 0x0a, 0x99,
- 0x3c, 0x00, 0xc0, 0x30, 0x00, 0x00, 0x08, 0x80,
- 0x20, 0x1c, 0xfe, 0xf7, 0x98, 0xfe, 0x20, 0x69,
- 0x00, 0x28, 0x04, 0xd1, 0x20, 0x1c, 0x0a, 0xf0,
- 0x82, 0xf9, 0x0b, 0xb0, 0xf0, 0xbd, 0x80, 0x79,
- 0x06, 0x28, 0x01, 0xd9, 0xfe, 0xf7, 0x0f, 0xf9,
- 0x20, 0x69, 0x06, 0x49, 0x80, 0x79, 0x80, 0x00,
- 0x09, 0x58, 0x20, 0x1c, 0xfd, 0xf7, 0x74, 0xf9,
- 0xef, 0xe7, 0x79, 0x2f, 0x01, 0x00, 0xc4, 0x69,
- 0x01, 0x00, 0x3c, 0x00, 0xfc, 0x30, 0x00, 0x00,
- 0x08, 0x61, 0x01, 0x00, 0x74, 0x57, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x58, 0x30, 0x8a, 0xb0,
- 0x0e, 0xf0, 0x7c, 0xfe, 0x22, 0x1c, 0x80, 0x32,
- 0x51, 0x68, 0x00, 0x29, 0x01, 0xd0, 0x11, 0x7a,
- 0x07, 0xe0, 0x00, 0x28, 0x04, 0xd0, 0x80, 0x69,
- 0x80, 0x07, 0x01, 0xd5, 0x03, 0x21, 0x00, 0xe0,
- 0x01, 0x21, 0xd2, 0x68, 0x07, 0x91, 0x22, 0x49,
- 0x00, 0x20, 0x08, 0x92, 0x3c, 0x00, 0x38, 0x31,
- 0x00, 0x00, 0x04, 0x91, 0x00, 0x22, 0x05, 0x92,
- 0x06, 0x90, 0x03, 0x90, 0xe0, 0x69, 0x22, 0x69,
- 0x00, 0x90, 0x21, 0x1c, 0x70, 0x31, 0x1c, 0x48,
- 0x01, 0x91, 0x02, 0x92, 0x03, 0x89, 0x59, 0x1c,
- 0x01, 0x81, 0x1a, 0x48, 0x02, 0x88, 0xa1, 0x68,
- 0x09, 0xa8, 0x09, 0xf0, 0x76, 0xff, 0x60, 0x60,
- 0x6b, 0x20, 0x00, 0x5d, 0xa1, 0x6a, 0x22, 0x69,
- 0xc9, 0x07, 0x00, 0x07, 0x00, 0x0e, 0x3c, 0x00,
- 0x74, 0x31, 0x00, 0x00, 0xc9, 0x0d, 0x01, 0x43,
- 0x01, 0x20, 0x00, 0x2a, 0x00, 0xd1, 0x00, 0x20,
- 0x80, 0x03, 0x08, 0x43, 0x09, 0x99, 0x08, 0x80,
- 0x20, 0x1c, 0xfe, 0xf7, 0x35, 0xfe, 0x20, 0x69,
- 0x00, 0x28, 0x04, 0xd1, 0x20, 0x1c, 0x0a, 0xf0,
- 0x1f, 0xf9, 0x0a, 0xb0, 0x10, 0xbd, 0x80, 0x79,
- 0x06, 0x28, 0x01, 0xd9, 0xfe, 0xf7, 0xac, 0xf8,
- 0x20, 0x69, 0x07, 0x49, 0x80, 0x79, 0x80, 0x00,
- 0x3c, 0x00, 0xb0, 0x31, 0x00, 0x00, 0x09, 0x58,
- 0x20, 0x1c, 0xfd, 0xf7, 0x11, 0xf9, 0xef, 0xe7,
- 0x00, 0x00, 0xbd, 0x2f, 0x01, 0x00, 0x24, 0x6a,
- 0x01, 0x00, 0x08, 0x61, 0x01, 0x00, 0x74, 0x57,
- 0x01, 0x00, 0x3e, 0xb5, 0x05, 0x1c, 0x00, 0x69,
- 0x04, 0x21, 0x07, 0xf0, 0xd2, 0xfa, 0x00, 0x28,
- 0x09, 0xd0, 0x42, 0x78, 0x02, 0x32, 0x01, 0x1c,
- 0x68, 0x46, 0xfd, 0xf7, 0x88, 0xf9, 0xe8, 0x6a,
- 0x6c, 0x46, 0x3c, 0x00, 0xec, 0x31, 0x00, 0x00,
- 0x02, 0x90, 0x00, 0xe0, 0x00, 0x24, 0x28, 0x1c,
- 0x14, 0x30, 0x02, 0xf0, 0x03, 0xfb, 0x00, 0x28,
- 0x04, 0xd0, 0x21, 0x1c, 0x28, 0x1c, 0x05, 0xf0,
- 0xa5, 0xfe, 0x3e, 0xbd, 0x00, 0x2c, 0xfc, 0xd0,
- 0x02, 0x49, 0x20, 0x1c, 0x49, 0x69, 0xfd, 0xf7,
- 0xe2, 0xf8, 0xf6, 0xe7, 0x44, 0x7d, 0x01, 0x00,
- 0x70, 0xb5, 0x1e, 0x1c, 0x18, 0x23, 0x58, 0x43,
- 0x06, 0x4b, 0x04, 0x9d, 0x3c, 0x00, 0x28, 0x32,
- 0x00, 0x00, 0x19, 0x50, 0xc4, 0x18, 0x00, 0x20,
- 0x60, 0x61, 0x62, 0x60, 0xa6, 0x60, 0xe5, 0x60,
- 0x0f, 0xf0, 0xb9, 0xfd, 0x20, 0x61, 0x70, 0xbd,
- 0x00, 0x00, 0xb8, 0x7d, 0x01, 0x00, 0x02, 0x4a,
- 0x01, 0x1c, 0x90, 0x69, 0x91, 0x61, 0x70, 0x47,
- 0x00, 0x00, 0x44, 0x7d, 0x01, 0x00, 0x01, 0x48,
- 0x40, 0x6b, 0x70, 0x47, 0x00, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0x04, 0x49, 0x04, 0x4b, 0x3c, 0x00,
- 0x64, 0x32, 0x00, 0x00, 0xca, 0x68, 0x09, 0x69,
- 0x5c, 0x3b, 0x5b, 0x68, 0xc9, 0x1a, 0x41, 0x43,
- 0x50, 0x18, 0x70, 0x47, 0xa0, 0x7d, 0x01, 0x00,
- 0x01, 0x48, 0x00, 0x78, 0x70, 0x47, 0x00, 0x00,
- 0x78, 0x69, 0x01, 0x00, 0x80, 0xb5, 0x06, 0x22,
- 0x01, 0x49, 0xfd, 0xf7, 0x35, 0xf9, 0x80, 0xbd,
- 0xfe, 0x67, 0x01, 0x00, 0xf0, 0xb5, 0x89, 0xb0,
- 0x00, 0x93, 0x16, 0x4f, 0x13, 0x1c, 0x0e, 0x1c,
- 0x3c, 0x00, 0xa0, 0x32, 0x00, 0x00, 0x04, 0x1c,
- 0x3a, 0x1c, 0x01, 0xf0, 0x62, 0xff, 0x01, 0xa9,
- 0x06, 0xa8, 0xa2, 0x68, 0x02, 0xf0, 0x0b, 0xf9,
- 0x01, 0xaa, 0x06, 0xa9, 0x38, 0x1c, 0x63, 0x6a,
- 0x02, 0xf0, 0x81, 0xfc, 0x05, 0x1c, 0x01, 0x28,
- 0x14, 0xd1, 0x0c, 0x48, 0xfc, 0x21, 0xc8, 0x51,
- 0x38, 0x1c, 0x02, 0xf0, 0x0c, 0xf8, 0x03, 0x21,
- 0x30, 0x1c, 0x07, 0xf0, 0x52, 0xfa, 0x00, 0x28,
- 0x07, 0xd0, 0x3c, 0x00, 0xdc, 0x32, 0x00, 0x00,
- 0x80, 0x78, 0x00, 0xf0, 0x33, 0xfc, 0x20, 0x1c,
- 0x10, 0x30, 0x0e, 0xf0, 0x47, 0xfd, 0x00, 0xe0,
- 0x00, 0x25, 0x28, 0x1c, 0x09, 0xb0, 0xf0, 0xbd,
- 0xf4, 0x67, 0x01, 0x00, 0xc1, 0x38, 0x00, 0x00,
- 0x10, 0xb5, 0x07, 0x4c, 0x06, 0x48, 0x06, 0x22,
- 0x21, 0x1d, 0x08, 0x38, 0xfd, 0xf7, 0xf6, 0xf8,
- 0x01, 0xf0, 0xfc, 0xff, 0x00, 0xf0, 0x42, 0xfc,
- 0x20, 0x1c, 0x02, 0xf0, 0x3c, 0x00, 0x18, 0x33,
- 0x00, 0x00, 0x27, 0xfc, 0x10, 0xbd, 0xf4, 0x67,
- 0x01, 0x00, 0x08, 0x49, 0xc9, 0x68, 0x00, 0x29,
- 0x0a, 0xd0, 0x06, 0x4a, 0x01, 0x32, 0x51, 0x78,
- 0x12, 0x78, 0x48, 0x43, 0x00, 0x2a, 0x01, 0xd1,
- 0x08, 0x18, 0x70, 0x47, 0x10, 0x18, 0x70, 0x47,
- 0x01, 0x30, 0x70, 0x47, 0x00, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0x04, 0x4b, 0x05, 0x49, 0x00, 0x28,
- 0x5a, 0x69, 0x00, 0xd0, 0x01, 0x1c, 0x3c, 0x00,
- 0x54, 0x33, 0x00, 0x00, 0x10, 0x1c, 0x59, 0x61,
- 0x70, 0x47, 0x00, 0x00, 0x44, 0x7d, 0x01, 0x00,
- 0xb9, 0x75, 0x00, 0x00, 0x07, 0x49, 0x00, 0x20,
- 0x0a, 0x78, 0x02, 0x2a, 0x09, 0xd1, 0x0a, 0x7c,
- 0x00, 0x2a, 0x05, 0xd1, 0xca, 0x68, 0x00, 0x2a,
- 0x03, 0xd0, 0x49, 0x69, 0x00, 0x29, 0x00, 0xd0,
- 0x01, 0x20, 0x70, 0x47, 0x78, 0x69, 0x01, 0x00,
- 0x0c, 0x4a, 0x80, 0xb5, 0x01, 0x21, 0x51, 0x60,
- 0x3c, 0x00, 0x90, 0x33, 0x00, 0x00, 0x09, 0xf0,
- 0x6a, 0xf8, 0x09, 0x48, 0x1c, 0x30, 0x81, 0x69,
- 0x00, 0x29, 0x07, 0xd0, 0x00, 0x23, 0x83, 0x61,
- 0x00, 0x22, 0x00, 0x21, 0x00, 0x20, 0x00, 0xf0,
- 0xd2, 0xf8, 0x80, 0xbd, 0x00, 0x22, 0x00, 0x21,
- 0x03, 0x48, 0x00, 0xf0, 0x5c, 0xf9, 0x80, 0xbd,
- 0x00, 0x00, 0x5c, 0x69, 0x01, 0x00, 0x51, 0x35,
- 0x00, 0x00, 0xb0, 0xb5, 0x0c, 0x1c, 0x01, 0x28,
- 0x16, 0xd1, 0x3c, 0x00, 0xcc, 0x33, 0x00, 0x00,
- 0x0e, 0x4d, 0x02, 0x2c, 0x09, 0xd1, 0x00, 0xf0,
- 0x2b, 0xfa, 0x00, 0x28, 0x0e, 0xd0, 0x68, 0x69,
- 0x00, 0x28, 0x0b, 0xd1, 0x21, 0x1c, 0x13, 0x20,
- 0x0c, 0xe0, 0x03, 0x2c, 0xfa, 0xd1, 0x00, 0xf0,
- 0xf9, 0xf9, 0x00, 0x28, 0x02, 0xd0, 0x28, 0x7c,
- 0x00, 0x28, 0xf3, 0xd0, 0xb0, 0xbd, 0x21, 0x1c,
- 0x00, 0x06, 0x00, 0x0e, 0x04, 0xf0, 0x62, 0xfc,
- 0xb0, 0xbd, 0x00, 0x00, 0x3c, 0x00, 0x08, 0x34,
- 0x00, 0x00, 0x78, 0x69, 0x01, 0x00, 0xb0, 0xb5,
- 0x0c, 0x4c, 0x00, 0x25, 0x25, 0x74, 0x65, 0x61,
- 0xe5, 0x60, 0x00, 0xf0, 0x3c, 0xfa, 0x00, 0xf0,
- 0x34, 0xfa, 0x07, 0x48, 0x1c, 0x38, 0x05, 0x61,
- 0x09, 0xf0, 0x33, 0xff, 0x20, 0x78, 0x00, 0x28,
- 0x02, 0xd1, 0x04, 0xf0, 0x6e, 0xfa, 0xb0, 0xbd,
- 0x02, 0x28, 0xfc, 0xd1, 0x04, 0xf0, 0xa5, 0xfb,
- 0xb0, 0xbd, 0x78, 0x69, 0x01, 0x00, 0x3c, 0x00,
- 0x44, 0x34, 0x00, 0x00, 0x0c, 0x48, 0x80, 0xb5,
- 0x01, 0x78, 0x00, 0x29, 0x12, 0xd0, 0xc0, 0x68,
- 0x00, 0x28, 0x0f, 0xd1, 0x08, 0x48, 0x1c, 0x38,
- 0x40, 0x69, 0x00, 0x28, 0x0a, 0xd1, 0x07, 0x48,
- 0x00, 0x68, 0x00, 0x28, 0x06, 0xd0, 0x00, 0x22,
- 0x07, 0x21, 0x10, 0x20, 0x10, 0xf0, 0xa0, 0xf9,
- 0x02, 0xf0, 0x2c, 0xfc, 0x80, 0xbd, 0x00, 0x00,
- 0x78, 0x69, 0x01, 0x00, 0xd4, 0x67, 0x01, 0x00,
- 0x3c, 0x00, 0x80, 0x34, 0x00, 0x00, 0xf8, 0xb5,
- 0x1d, 0x4e, 0x1c, 0x4d, 0x04, 0x1c, 0xf0, 0x68,
- 0x02, 0x27, 0x1c, 0x3d, 0x00, 0x28, 0x07, 0xd0,
- 0xe8, 0x68, 0x00, 0x28, 0x04, 0xd0, 0xfd, 0xf7,
- 0xc2, 0xfe, 0x00, 0x28, 0x00, 0xd0, 0xbc, 0x43,
- 0x00, 0x2c, 0x14, 0xd0, 0x37, 0x70, 0xf0, 0x68,
- 0x14, 0x4f, 0x00, 0x28, 0x10, 0xd0, 0xe0, 0x07,
- 0x17, 0xd4, 0xfd, 0xf7, 0xb4, 0xfe, 0x00, 0x28,
- 0x13, 0xd0, 0x3c, 0x00, 0xbc, 0x34, 0x00, 0x00,
- 0x70, 0x69, 0x00, 0x28, 0x06, 0xd1, 0xe8, 0x68,
- 0x00, 0x28, 0x01, 0xd0, 0xfd, 0xf7, 0x1a, 0xff,
- 0x0d, 0xf0, 0x0a, 0xfa, 0xf8, 0xbd, 0x68, 0x69,
- 0x00, 0x28, 0x05, 0xd1, 0x09, 0x48, 0x00, 0x68,
- 0x00, 0x28, 0x01, 0xd0, 0x01, 0x2c, 0x04, 0xd1,
- 0x39, 0x1c, 0x20, 0x1c, 0x0e, 0xf0, 0x52, 0xfd,
- 0xf0, 0xe7, 0x04, 0xf0, 0x1d, 0xfb, 0x02, 0xf0,
- 0xeb, 0xfb, 0xeb, 0xe7, 0x3c, 0x00, 0xf8, 0x34,
- 0x00, 0x00, 0x78, 0x69, 0x01, 0x00, 0x50, 0xc3,
- 0x00, 0x00, 0xd4, 0x67, 0x01, 0x00, 0x05, 0x48,
- 0x41, 0x69, 0x00, 0x29, 0x04, 0xd0, 0x40, 0x6a,
- 0x00, 0x28, 0x01, 0xd0, 0x01, 0x20, 0x70, 0x47,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x78, 0x69,
- 0x01, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x06, 0x49,
- 0x00, 0x20, 0x48, 0x60, 0x08, 0x60, 0x88, 0x60,
- 0x08, 0xf0, 0x9b, 0xff, 0x07, 0x21, 0x3c, 0x00,
- 0x34, 0x35, 0x00, 0x00, 0x12, 0x20, 0x22, 0x79,
- 0x10, 0xf0, 0x3a, 0xf9, 0x10, 0xbd, 0x00, 0x00,
- 0x5c, 0x69, 0x01, 0x00, 0x01, 0x49, 0x01, 0x20,
- 0x08, 0x60, 0x70, 0x47, 0xe8, 0x67, 0x01, 0x00,
- 0xf8, 0xb5, 0x07, 0x1c, 0x0e, 0x1c, 0x08, 0xf0,
- 0xa3, 0xfa, 0x13, 0x4d, 0x04, 0x1c, 0x68, 0x68,
- 0x00, 0x28, 0x17, 0xd0, 0x00, 0x2f, 0x02, 0xd0,
- 0xa8, 0x68, 0x03, 0x28, 0x13, 0xd3, 0x00, 0x20,
- 0x3c, 0x00, 0x70, 0x35, 0x00, 0x00, 0xa8, 0x60,
- 0x68, 0x60, 0x21, 0x1c, 0x0f, 0x20, 0x0e, 0xf0,
- 0xf0, 0xfe, 0x28, 0x68, 0x00, 0x28, 0x03, 0xd0,
- 0x00, 0x2c, 0x06, 0xd1, 0x01, 0x20, 0x02, 0xe0,
- 0x01, 0x2c, 0x02, 0xd1, 0x00, 0x20, 0xff, 0xf7,
- 0xfa, 0xfe, 0xf8, 0xbd, 0x72, 0x1c, 0x00, 0x21,
- 0x04, 0x48, 0x00, 0xf0, 0x68, 0xf8, 0xa8, 0x68,
- 0x01, 0x30, 0xa8, 0x60, 0xf5, 0xe7, 0x5c, 0x69,
- 0x01, 0x00, 0x3c, 0x00, 0xac, 0x35, 0x00, 0x00,
- 0x51, 0x35, 0x00, 0x00, 0x0a, 0x49, 0x80, 0xb5,
- 0xca, 0x68, 0x00, 0x2a, 0x0b, 0xd0, 0x42, 0x68,
- 0x00, 0x2a, 0x09, 0xd0, 0x00, 0x22, 0x4a, 0x62,
- 0x02, 0x68, 0x0a, 0x62, 0x02, 0x68, 0x07, 0x21,
- 0x17, 0x20, 0x10, 0xf0, 0xef, 0xf8, 0x80, 0xbd,
- 0x01, 0x20, 0x48, 0x62, 0x80, 0xbd, 0x00, 0x00,
- 0x78, 0x69, 0x01, 0x00, 0x70, 0xb5, 0x14, 0x4d,
- 0x84, 0x6c, 0xe9, 0x68, 0x3c, 0x00, 0xe8, 0x35,
- 0x00, 0x00, 0x00, 0x29, 0x17, 0xd0, 0x40, 0x30,
- 0xec, 0x61, 0x40, 0x78, 0x00, 0x28, 0x01, 0xd1,
- 0x01, 0x20, 0x68, 0x62, 0x28, 0x6a, 0x0e, 0x4e,
- 0x00, 0x1b, 0xb0, 0x42, 0x0c, 0xd2, 0x08, 0xf0,
- 0x3a, 0xfe, 0x29, 0x6a, 0x40, 0x1a, 0xb0, 0x42,
- 0x03, 0xd2, 0x02, 0x22, 0x07, 0x21, 0x13, 0x20,
- 0x09, 0xe0, 0x04, 0xf0, 0xb6, 0xfa, 0x70, 0xbd,
- 0x07, 0x48, 0xa9, 0x68, 0x0b, 0xf0, 0x3c, 0x00,
- 0x24, 0x36, 0x00, 0x00, 0xbd, 0xfe, 0x22, 0x1c,
- 0x07, 0x21, 0x16, 0x20, 0x10, 0xf0, 0xc0, 0xf8,
- 0x70, 0xbd, 0x00, 0x00, 0x78, 0x69, 0x01, 0x00,
- 0xa0, 0x86, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x0a, 0x49, 0x80, 0xb5, 0x00, 0x20, 0x88, 0x61,
- 0x08, 0x69, 0x00, 0x28, 0x0c, 0xd0, 0x07, 0x48,
- 0x1c, 0x30, 0x00, 0x78, 0x00, 0x28, 0x07, 0xd0,
- 0x01, 0xf0, 0xd2, 0xff, 0x02, 0x28, 0x03, 0xd1,
- 0x3c, 0x00, 0x60, 0x36, 0x00, 0x00, 0x00, 0xf0,
- 0x12, 0xf9, 0x00, 0xf0, 0xbc, 0xf8, 0x80, 0xbd,
- 0x00, 0x00, 0x5c, 0x69, 0x01, 0x00, 0xf0, 0xb5,
- 0x06, 0x1c, 0x0c, 0x1c, 0x15, 0x1c, 0x91, 0xb0,
- 0x01, 0xa8, 0x40, 0x21, 0xfc, 0xf7, 0x0d, 0xff,
- 0x00, 0x21, 0x68, 0x46, 0xfd, 0xf7, 0xa7, 0xff,
- 0x04, 0x90, 0x01, 0xa8, 0x06, 0x22, 0x08, 0x49,
- 0xfc, 0xf7, 0x31, 0xff, 0x06, 0x22, 0x02, 0xa8,
- 0x02, 0x30, 0x3c, 0x00, 0x9c, 0x36, 0x00, 0x00,
- 0x06, 0x49, 0xfc, 0xf7, 0x2b, 0xff, 0x00, 0xab,
- 0xdc, 0x76, 0x0c, 0x95, 0x31, 0x1c, 0x01, 0xa8,
- 0x07, 0xf0, 0x4e, 0xf8, 0x11, 0xb0, 0xf0, 0xbd,
- 0x12, 0x61, 0x01, 0x00, 0xf8, 0x67, 0x01, 0x00,
- 0x03, 0x1c, 0x08, 0x1c, 0x19, 0x1c, 0x11, 0x4b,
- 0x80, 0xb5, 0x06, 0xd0, 0x04, 0x21, 0x11, 0x80,
- 0x04, 0x22, 0x19, 0x1c, 0xfc, 0xf7, 0x12, 0xff,
- 0x16, 0xe0, 0x04, 0x22, 0x3c, 0x00, 0xd8, 0x36,
- 0x00, 0x00, 0x01, 0x1c, 0x18, 0x1c, 0xfc, 0xf7,
- 0x0c, 0xff, 0x09, 0x48, 0x10, 0x38, 0x00, 0x69,
- 0x00, 0x28, 0x0c, 0xd0, 0x07, 0x48, 0x0c, 0x30,
- 0x00, 0x78, 0x00, 0x28, 0x07, 0xd0, 0x01, 0xf0,
- 0x84, 0xff, 0x02, 0x28, 0x03, 0xd1, 0x00, 0xf0,
- 0xc4, 0xf8, 0x00, 0xf0, 0x6e, 0xf8, 0x01, 0x20,
- 0x80, 0xbd, 0x6c, 0x69, 0x01, 0x00, 0xf8, 0xb5,
- 0x04, 0x1c, 0x0f, 0x1c, 0x00, 0x25, 0x3c, 0x00,
- 0x14, 0x37, 0x00, 0x00, 0x00, 0x26, 0x01, 0xf0,
- 0x73, 0xff, 0x02, 0x28, 0x2f, 0xd1, 0x19, 0x49,
- 0x01, 0x2f, 0x08, 0x68, 0x07, 0xd1, 0x02, 0x1c,
- 0x22, 0x40, 0x0a, 0xd1, 0x20, 0x43, 0x08, 0x60,
- 0xa0, 0x42, 0x06, 0xd1, 0x04, 0xe0, 0x00, 0x28,
- 0x03, 0xd0, 0xa0, 0x43, 0x08, 0x60, 0x00, 0xd1,
- 0x01, 0x25, 0x48, 0x68, 0x00, 0x28, 0x1a, 0xd1,
- 0x00, 0x2d, 0x17, 0xd0, 0x01, 0x20, 0x48, 0x60,
- 0x3c, 0x00, 0x50, 0x37, 0x00, 0x00, 0x38, 0x1c,
- 0x08, 0xf0, 0x89, 0xfe, 0x0b, 0x48, 0x1c, 0x30,
- 0x81, 0x69, 0x00, 0x29, 0x07, 0xd0, 0x00, 0x23,
- 0x83, 0x61, 0x00, 0x22, 0x00, 0x21, 0x00, 0x20,
- 0xff, 0xf7, 0xf1, 0xfe, 0x06, 0xe0, 0x00, 0x22,
- 0x00, 0x21, 0x04, 0x48, 0xff, 0xf7, 0x7b, 0xff,
- 0x00, 0xe0, 0x01, 0x26, 0x30, 0x1c, 0xf8, 0xbd,
- 0x00, 0x00, 0x5c, 0x69, 0x01, 0x00, 0x51, 0x35,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0x37, 0x00, 0x00,
- 0x03, 0x1c, 0x08, 0x1c, 0x19, 0x1c, 0x12, 0x4b,
- 0x80, 0xb5, 0x06, 0xd0, 0x04, 0x21, 0x11, 0x80,
- 0x04, 0x22, 0x19, 0x1c, 0xfc, 0xf7, 0xaa, 0xfe,
- 0x18, 0xe0, 0x04, 0x22, 0x01, 0x1c, 0x18, 0x1c,
- 0xfc, 0xf7, 0xa4, 0xfe, 0x0a, 0x48, 0x10, 0x30,
- 0xc1, 0x68, 0x00, 0x29, 0x0e, 0xd0, 0x00, 0x78,
- 0x00, 0x28, 0x0b, 0xd0, 0x01, 0xf0, 0x1e, 0xff,
- 0x02, 0x28, 0x07, 0xd1, 0x3c, 0x00, 0xc8, 0x37,
- 0x00, 0x00, 0x00, 0xf0, 0x64, 0xf8, 0x00, 0xf0,
- 0x2e, 0xf8, 0x00, 0x28, 0x01, 0xd1, 0x09, 0xf0,
- 0x7a, 0xfd, 0x01, 0x20, 0x80, 0xbd, 0x68, 0x69,
- 0x01, 0x00, 0x10, 0xb5, 0x0a, 0x4c, 0x20, 0x69,
- 0x00, 0x28, 0x09, 0xd0, 0xa1, 0x69, 0x00, 0x29,
- 0x06, 0xd1, 0x7d, 0x21, 0xc9, 0x00, 0x41, 0x43,
- 0x03, 0x22, 0x07, 0x20, 0x0f, 0xf0, 0xe1, 0xfe,
- 0x21, 0x69, 0x01, 0x20, 0x00, 0x29, 0x3c, 0x00,
- 0x04, 0x38, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x20,
- 0x10, 0xbd, 0x00, 0x00, 0x5c, 0x69, 0x01, 0x00,
- 0x10, 0xb5, 0x05, 0x4c, 0x00, 0x28, 0x03, 0xd0,
- 0xfd, 0xf7, 0x9a, 0xfc, 0xe0, 0x60, 0x10, 0xbd,
- 0x01, 0x20, 0x00, 0x21, 0xe1, 0x60, 0x10, 0xbd,
- 0x78, 0x69, 0x01, 0x00, 0x0a, 0x48, 0x0a, 0x49,
- 0x10, 0xb5, 0xc0, 0x68, 0x1c, 0x39, 0xc9, 0x68,
- 0x00, 0x28, 0x03, 0xd0, 0x00, 0x29, 0x01, 0xd0,
- 0x3c, 0x00, 0x40, 0x38, 0x00, 0x00, 0x01, 0x24,
- 0x00, 0xe0, 0x00, 0x24, 0x00, 0x2c, 0x03, 0xd0,
- 0x02, 0x22, 0x07, 0x20, 0x0f, 0xf0, 0xb7, 0xfe,
- 0x20, 0x1c, 0x10, 0xbd, 0x00, 0x00, 0x78, 0x69,
- 0x01, 0x00, 0x10, 0xb5, 0x09, 0x4c, 0x00, 0x20,
- 0x21, 0x69, 0x00, 0x29, 0x0c, 0xd0, 0x06, 0x49,
- 0x1c, 0x31, 0x09, 0x78, 0x00, 0x29, 0x07, 0xd0,
- 0x00, 0xf0, 0x09, 0xf8, 0x01, 0x20, 0xa0, 0x61,
- 0x20, 0x69, 0x3c, 0x00, 0x7c, 0x38, 0x00, 0x00,
- 0x7d, 0x23, 0xdb, 0x00, 0x58, 0x43, 0x10, 0xbd,
- 0x5c, 0x69, 0x01, 0x00, 0x80, 0xb5, 0x03, 0x21,
- 0x07, 0x20, 0x0f, 0xf0, 0xd1, 0xfe, 0x80, 0xbd,
- 0x80, 0xb5, 0x02, 0x21, 0x07, 0x20, 0x0f, 0xf0,
- 0xcb, 0xfe, 0x80, 0xbd, 0x06, 0x48, 0x80, 0xb5,
- 0x00, 0x78, 0x00, 0x28, 0x01, 0xd0, 0xfd, 0xf7,
- 0x29, 0xfd, 0x00, 0x22, 0x07, 0x21, 0x11, 0x20,
- 0x0f, 0xf0, 0x7c, 0xff, 0x3c, 0x00, 0xb8, 0x38,
- 0x00, 0x00, 0x80, 0xbd, 0x00, 0x00, 0x78, 0x69,
- 0x01, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x10, 0x1c,
- 0x06, 0x4a, 0x51, 0x61, 0x00, 0xf0, 0xa3, 0xf8,
- 0x10, 0x20, 0x00, 0x2c, 0x00, 0xd1, 0x11, 0x20,
- 0x00, 0x22, 0x07, 0x21, 0x0f, 0xf0, 0x69, 0xff,
- 0x10, 0xbd, 0x5c, 0x69, 0x01, 0x00, 0x01, 0x49,
- 0x48, 0x62, 0x70, 0x47, 0x00, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0x10, 0xb5, 0x09, 0x4c, 0x3c, 0x00,
- 0xf4, 0x38, 0x00, 0x00, 0xe0, 0x69, 0x00, 0x28,
- 0x0c, 0xd1, 0xe0, 0x62, 0x01, 0x20, 0xe0, 0x61,
- 0x0b, 0xf0, 0x08, 0xfd, 0x0b, 0xf0, 0x74, 0xfe,
- 0x01, 0x20, 0x00, 0xf0, 0xb5, 0xf8, 0x0f, 0xf0,
- 0x4d, 0xfa, 0x60, 0x63, 0x10, 0xbd, 0x00, 0x00,
- 0x44, 0x7d, 0x01, 0x00, 0x05, 0x49, 0x80, 0xb5,
- 0x00, 0x20, 0xc8, 0x61, 0x88, 0x63, 0x00, 0xf0,
- 0x89, 0xf8, 0x00, 0xf0, 0x01, 0xf9, 0x02, 0xf0,
- 0x3c, 0x00, 0x30, 0x39, 0x00, 0x00, 0x91, 0xfb,
- 0x80, 0xbd, 0x44, 0x7d, 0x01, 0x00, 0x10, 0xb5,
- 0x01, 0x28, 0x38, 0xd1, 0x08, 0x06, 0x00, 0x0e,
- 0x05, 0x28, 0x32, 0xd1, 0x1d, 0x4c, 0x20, 0x78,
- 0x01, 0x28, 0x09, 0xd0, 0x02, 0x28, 0x1b, 0xd0,
- 0x03, 0x28, 0x2a, 0xd1, 0x02, 0xf0, 0x7d, 0xfb,
- 0x00, 0xf0, 0x6f, 0xf8, 0x01, 0x20, 0x10, 0xe0,
- 0x17, 0x48, 0x21, 0x6b, 0x0b, 0xf0, 0x1b, 0xfd,
- 0x0b, 0xf0, 0x3c, 0x00, 0x6c, 0x39, 0x00, 0x00,
- 0x41, 0xfe, 0x15, 0x48, 0x00, 0x69, 0x03, 0x28,
- 0x01, 0xd3, 0xc0, 0x07, 0x03, 0xd5, 0x01, 0x21,
- 0x20, 0x6b, 0x07, 0xf0, 0x19, 0xff, 0x02, 0x20,
- 0x00, 0xf0, 0x78, 0xf8, 0x10, 0xbd, 0x0f, 0x48,
- 0x00, 0x68, 0x20, 0x64, 0x0a, 0x48, 0x5c, 0x30,
- 0xc1, 0x68, 0x02, 0x69, 0x89, 0x18, 0xc1, 0x60,
- 0x03, 0xf0, 0xcc, 0xfc, 0x03, 0x20, 0x00, 0xf0,
- 0x69, 0xf8, 0x01, 0x20, 0x3c, 0x00, 0xa8, 0x39,
- 0x00, 0x00, 0xe0, 0x62, 0x10, 0xbd, 0x09, 0x21,
- 0x00, 0xe0, 0x08, 0x21, 0x09, 0x20, 0xfd, 0xf7,
- 0x76, 0xfc, 0x10, 0xbd, 0x00, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0x34, 0x63, 0x01, 0x00, 0xf4, 0x68,
- 0x01, 0x00, 0x78, 0x6e, 0x01, 0x00, 0xb0, 0xb5,
- 0x0f, 0x4c, 0x20, 0x78, 0x65, 0x1e, 0x01, 0x28,
- 0x0f, 0xd1, 0x00, 0x20, 0xff, 0xf7, 0xa1, 0xfc,
- 0x0c, 0x49, 0x09, 0x88, 0x49, 0x08, 0x3c, 0x00,
- 0xe4, 0x39, 0x00, 0x00, 0x40, 0x1a, 0x0f, 0xf0,
- 0x19, 0xf9, 0x00, 0x28, 0x04, 0xd0, 0x28, 0x78,
- 0x01, 0x28, 0x07, 0xd0, 0x02, 0x28, 0x05, 0xd0,
- 0x20, 0x78, 0x00, 0x28, 0x04, 0xd1, 0x28, 0x78,
- 0x03, 0x28, 0x01, 0xd1, 0x01, 0x20, 0xb0, 0xbd,
- 0x00, 0x20, 0xb0, 0xbd, 0x45, 0x7d, 0x01, 0x00,
- 0xf4, 0x67, 0x01, 0x00, 0x01, 0x49, 0xc8, 0x64,
- 0x70, 0x47, 0x00, 0x00, 0x44, 0x7d, 0x01, 0x00,
- 0x3c, 0x00, 0x20, 0x3a, 0x00, 0x00, 0x04, 0x49,
- 0x05, 0x4a, 0x89, 0x68, 0x12, 0x6d, 0x01, 0x20,
- 0x91, 0x42, 0x00, 0xd3, 0x00, 0x20, 0x70, 0x47,
- 0x00, 0x00, 0xf4, 0x68, 0x01, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0x10, 0xb5, 0x06, 0x4c, 0x20, 0x6b,
- 0x07, 0xf0, 0xf9, 0xfe, 0xa0, 0x6b, 0x00, 0x28,
- 0x03, 0xd1, 0x03, 0x48, 0x21, 0x6b, 0x0b, 0xf0,
- 0x92, 0xfc, 0x10, 0xbd, 0x00, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0x3c, 0x00, 0x5c, 0x3a, 0x00, 0x00,
- 0x34, 0x63, 0x01, 0x00, 0x04, 0x48, 0x00, 0x78,
- 0x02, 0x28, 0x01, 0xd0, 0x03, 0x28, 0x01, 0xd1,
- 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47,
- 0x44, 0x7d, 0x01, 0x00, 0xf8, 0xb5, 0x07, 0x1c,
- 0xff, 0xf7, 0xd0, 0xff, 0x06, 0x1c, 0x01, 0x2f,
- 0x26, 0x4d, 0x1f, 0xd0, 0x02, 0x2f, 0x45, 0xd0,
- 0x03, 0x2f, 0x12, 0xd1, 0x24, 0x48, 0x25, 0x4b,
- 0x00, 0x69, 0x6a, 0x69, 0x3c, 0x00, 0x98, 0x3a,
- 0x00, 0x00, 0x41, 0x08, 0x5a, 0x43, 0x23, 0x4b,
- 0xd4, 0x18, 0x8c, 0x42, 0x00, 0xd9, 0x0c, 0x1c,
- 0x00, 0x2e, 0x05, 0xd0, 0x1e, 0x49, 0x5b, 0x39,
- 0x09, 0x78, 0x00, 0x29, 0x00, 0xd1, 0x04, 0x1c,
- 0x05, 0x22, 0x21, 0x1c, 0x09, 0x20, 0x0f, 0xf0,
- 0x80, 0xfd, 0x18, 0x4a, 0x5c, 0x3a, 0x17, 0x70,
- 0xf8, 0xbd, 0xff, 0xf7, 0xd6, 0xfb, 0x00, 0x28,
- 0x02, 0xd0, 0x28, 0x69, 0x00, 0x28, 0x3c, 0x00,
- 0xd4, 0x3a, 0x00, 0x00, 0x0e, 0xd0, 0x04, 0xf0,
- 0xcf, 0xfb, 0x13, 0x4b, 0x69, 0x69, 0x11, 0x4a,
- 0x59, 0x43, 0x5c, 0x3a, 0xd2, 0x6b, 0x89, 0x18,
- 0x88, 0x42, 0x01, 0xd9, 0x44, 0x1a, 0x04, 0xe0,
- 0x00, 0x24, 0x02, 0xe0, 0x04, 0xf0, 0xae, 0xfd,
- 0x04, 0x1c, 0x00, 0x2e, 0xdb, 0xd0, 0x09, 0x48,
- 0x5b, 0x38, 0x00, 0x78, 0x01, 0x28, 0xd6, 0xd1,
- 0x08, 0x4b, 0x9c, 0x42, 0x02, 0xd9, 0x58, 0x42,
- 0x3c, 0x00, 0x10, 0x3b, 0x00, 0x00, 0x24, 0x18,
- 0xd0, 0xe7, 0x00, 0x24, 0xce, 0xe7, 0x04, 0xf0,
- 0xae, 0xfb, 0xca, 0xe7, 0x00, 0x00, 0xf4, 0x68,
- 0x01, 0x00, 0xa0, 0x7d, 0x01, 0x00, 0x98, 0x3a,
- 0x00, 0x00, 0x88, 0x13, 0x00, 0x00, 0x80, 0xb5,
- 0x05, 0x21, 0x09, 0x20, 0x0f, 0xf0, 0x7d, 0xfd,
- 0x02, 0x49, 0x00, 0x20, 0x08, 0x70, 0x80, 0xbd,
- 0x00, 0x00, 0x44, 0x7d, 0x01, 0x00, 0x70, 0xb5,
- 0x06, 0x1c, 0x3c, 0x00, 0x4c, 0x3b, 0x00, 0x00,
- 0x0d, 0xf0, 0xbc, 0xfa, 0xff, 0xf7, 0xce, 0xfe,
- 0x09, 0x4c, 0x0a, 0x48, 0x21, 0x6b, 0x0b, 0xf0,
- 0x21, 0xfc, 0x01, 0x25, 0x01, 0x21, 0x30, 0x06,
- 0x00, 0x0e, 0xa5, 0x63, 0x07, 0xf0, 0x3a, 0xfe,
- 0x05, 0x48, 0x29, 0x02, 0x09, 0x58, 0x00, 0x29,
- 0x00, 0xd1, 0x05, 0x61, 0x70, 0xbd, 0x00, 0x00,
- 0x44, 0x7d, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0xf4, 0x67, 0x01, 0x00, 0x3c, 0x00, 0x88, 0x3b,
- 0x00, 0x00, 0x02, 0x4a, 0x11, 0x6c, 0x08, 0x43,
- 0x10, 0x64, 0x70, 0x47, 0x00, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0x80, 0xb5, 0xff, 0xf7, 0xbf, 0xfe,
- 0x0b, 0xf0, 0xa1, 0xfb, 0x80, 0xbd, 0x02, 0x4a,
- 0x01, 0x1c, 0x10, 0x69, 0x11, 0x61, 0x70, 0x47,
- 0x00, 0x00, 0x44, 0x7d, 0x01, 0x00, 0xf3, 0xb5,
- 0x06, 0x1c, 0x00, 0x20, 0x89, 0xb0, 0xf8, 0x4c,
- 0x08, 0x90, 0xe2, 0x69, 0x08, 0x25, 0x3c, 0x00,
- 0xc4, 0x3b, 0x00, 0x00, 0x00, 0x2a, 0x03, 0xd0,
- 0x06, 0xa9, 0x07, 0xa8, 0xfc, 0xf7, 0x06, 0xfc,
- 0x30, 0x1c, 0xf3, 0x4e, 0x00, 0x27, 0x20, 0x36,
- 0x82, 0x28, 0x6f, 0xd0, 0x15, 0xdc, 0x01, 0x28,
- 0x18, 0xd0, 0x80, 0x28, 0x6b, 0xd1, 0xee, 0x4d,
- 0x80, 0x3d, 0xa8, 0x68, 0x01, 0x28, 0x67, 0xd1,
- 0x68, 0x68, 0x0f, 0xf0, 0x1b, 0xf8, 0x00, 0x28,
- 0x63, 0xd1, 0x01, 0x21, 0x01, 0x20, 0x0d, 0xf0,
- 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x9d, 0xf8,
- 0x08, 0xf0, 0xdb, 0xfd, 0x0b, 0xb0, 0xf0, 0xbd,
- 0x83, 0x28, 0x6d, 0xd0, 0x84, 0x28, 0x55, 0xd1,
- 0xe7, 0xe0, 0x0a, 0x98, 0x0a, 0x28, 0x04, 0xd2,
- 0x03, 0xa3, 0x1b, 0x18, 0x1b, 0x5a, 0x5b, 0x00,
- 0x9f, 0x44, 0xf6, 0xe0, 0x00, 0x00, 0xee, 0x00,
- 0x0b, 0x00, 0xf7, 0x00, 0xf7, 0x00, 0xf7, 0x00,
- 0xf7, 0x00, 0x2f, 0x00, 0x88, 0x00, 0x8b, 0x00,
- 0xad, 0x00, 0x3c, 0x00, 0x3c, 0x3c, 0x00, 0x00,
- 0x00, 0xf0, 0x56, 0xfe, 0x00, 0x28, 0x17, 0xd0,
- 0xd6, 0x4a, 0x80, 0x3a, 0xd1, 0x6a, 0x06, 0x98,
- 0x81, 0x42, 0x16, 0xd0, 0x06, 0x21, 0x00, 0x28,
- 0x00, 0xd1, 0x07, 0x21, 0x0d, 0x06, 0x2d, 0x0e,
- 0x00, 0x28, 0x0e, 0xd0, 0xcf, 0x4a, 0x01, 0x20,
- 0x80, 0x3a, 0x50, 0x65, 0x0f, 0xf0, 0xa0, 0xf8,
- 0xcc, 0x4a, 0x80, 0x3a, 0x50, 0x66, 0x04, 0xe0,
- 0x00, 0x21, 0x16, 0x20, 0x3c, 0x00, 0x78, 0x3c,
- 0x00, 0x00, 0x0f, 0xf0, 0xdc, 0xfc, 0x01, 0x25,
- 0x02, 0x20, 0x05, 0x90, 0x2e, 0xe2, 0xc6, 0x48,
- 0x80, 0x38, 0x40, 0x6d, 0x00, 0x28, 0x2e, 0xd0,
- 0xc6, 0x49, 0x20, 0x69, 0xc4, 0x4d, 0x40, 0x18,
- 0x0e, 0xf0, 0xc1, 0xff, 0x00, 0x28, 0x12, 0xd0,
- 0x0f, 0xf0, 0x85, 0xf8, 0xc1, 0x49, 0x49, 0x42,
- 0x40, 0x18, 0xbd, 0x49, 0x20, 0x61, 0x80, 0x39,
- 0x48, 0x6e, 0x40, 0x19, 0x0e, 0xf0, 0x3c, 0x00,
- 0xb4, 0x3c, 0x00, 0x00, 0xbb, 0xff, 0x00, 0x28,
- 0x11, 0xd0, 0x0a, 0xe0, 0xf7, 0xe0, 0x17, 0xe2,
- 0xb2, 0xe0, 0xb0, 0xe0, 0xb6, 0x49, 0x20, 0x69,
- 0x80, 0x39, 0x49, 0x6e, 0x40, 0x1a, 0xa8, 0x42,
- 0x05, 0xdb, 0xb3, 0x49, 0xb5, 0x4d, 0x80, 0x39,
- 0x4f, 0x65, 0x03, 0xf0, 0x27, 0xfb, 0x06, 0x22,
- 0x29, 0x1c, 0x16, 0x20, 0x0f, 0xf0, 0x72, 0xfc,
- 0x47, 0xe0, 0x95, 0xe0, 0x00, 0xf0, 0xfe, 0xfd,
- 0x3c, 0x00, 0xf0, 0x3c, 0x00, 0x00, 0x00, 0x28,
- 0x42, 0xd1, 0xaa, 0x4d, 0xc4, 0x3d, 0xef, 0x60,
- 0x08, 0xf0, 0x19, 0xfd, 0x03, 0xf0, 0x15, 0xfb,
- 0xa8, 0x6a, 0x00, 0x28, 0x02, 0xd0, 0xff, 0xf7,
- 0x4c, 0xff, 0xaf, 0x62, 0xa4, 0x48, 0x80, 0x38,
- 0x00, 0x68, 0x00, 0x21, 0xff, 0xf7, 0xf9, 0xfc,
- 0x08, 0xf0, 0x3f, 0xf9, 0x09, 0x21, 0x16, 0x20,
- 0x0f, 0xf0, 0x87, 0xfc, 0x00, 0x22, 0x16, 0x21,
- 0x83, 0x20, 0x3c, 0x00, 0x2c, 0x3d, 0x00, 0x00,
- 0x0f, 0xf0, 0x40, 0xfd, 0xff, 0xf7, 0x86, 0xfc,
- 0x21, 0xe0, 0x00, 0xf0, 0x1b, 0xfe, 0x1e, 0xe0,
- 0x06, 0xf0, 0x54, 0xfa, 0x97, 0x4d, 0x80, 0x3d,
- 0xa9, 0x6f, 0x40, 0x1a, 0x04, 0x90, 0x06, 0x98,
- 0x00, 0x28, 0x01, 0xd0, 0xaf, 0x65, 0x02, 0xe0,
- 0xa8, 0x6d, 0x00, 0x28, 0x08, 0xd1, 0x91, 0x48,
- 0xc4, 0x38, 0x00, 0x78, 0x80, 0x07, 0x03, 0xd5,
- 0x92, 0x48, 0x47, 0x60, 0x3c, 0x00, 0x68, 0x3d,
- 0x00, 0x00, 0x00, 0xf0, 0x02, 0xfe, 0x04, 0x98,
- 0xff, 0x38, 0x23, 0x38, 0x14, 0x28, 0x02, 0xd2,
- 0x01, 0x20, 0xe8, 0x63, 0x53, 0xe0, 0xef, 0x63,
- 0x51, 0xe0, 0x87, 0x4a, 0xb5, 0x7a, 0x80, 0x3a,
- 0x00, 0x2d, 0x4c, 0xd0, 0x0d, 0xf0, 0x71, 0xff,
- 0x00, 0xf0, 0xad, 0xfd, 0x07, 0x1c, 0x82, 0x48,
- 0x80, 0x38, 0x40, 0x6f, 0xff, 0x30, 0x5f, 0x30,
- 0x0e, 0xf0, 0x3d, 0xff, 0x02, 0x1c, 0x3c, 0x00,
- 0xa4, 0x3d, 0x00, 0x00, 0x7e, 0x48, 0x80, 0x38,
- 0x40, 0x6d, 0x00, 0x28, 0x1a, 0xd1, 0x00, 0xf0,
- 0xf1, 0xfd, 0x00, 0x28, 0x16, 0xd1, 0x04, 0x2d,
- 0x02, 0xd1, 0x00, 0x2f, 0x12, 0xd1, 0x1b, 0xe0,
- 0x00, 0x2f, 0x06, 0xd0, 0x02, 0x2d, 0x14, 0xd0,
- 0x79, 0x48, 0x40, 0x68, 0x00, 0x28, 0x09, 0xd0,
- 0x12, 0xe0, 0x00, 0x2a, 0x10, 0xd1, 0x4b, 0x21,
- 0xc9, 0x00, 0x01, 0x23, 0x09, 0x22, 0x16, 0x20,
- 0x3c, 0x00, 0xe0, 0x3d, 0x00, 0x00, 0x0f, 0xf0,
- 0xd6, 0xfc, 0x6e, 0x4a, 0x73, 0x48, 0x80, 0x3a,
- 0x11, 0x68, 0x0b, 0xf0, 0xd8, 0xfa, 0x18, 0xe0,
- 0x01, 0x21, 0x00, 0x20, 0x01, 0xe0, 0x01, 0x21,
- 0x01, 0x20, 0x00, 0xf0, 0x2a, 0xfe, 0x10, 0xe0,
- 0x67, 0x4a, 0x6c, 0x49, 0x80, 0x3a, 0x90, 0x6e,
- 0x40, 0x18, 0x90, 0x66, 0x01, 0x25, 0x08, 0x95,
- 0x8b, 0xe1, 0x04, 0x21, 0x6c, 0xe1, 0x61, 0x4a,
- 0x66, 0x48, 0x3c, 0x00, 0x1c, 0x3e, 0x00, 0x00,
- 0x80, 0x3a, 0x11, 0x68, 0x0b, 0xf0, 0xaa, 0xfa,
- 0x88, 0xe1, 0xaf, 0x60, 0xa8, 0x6f, 0xe8, 0x67,
- 0x63, 0x48, 0x01, 0x6d, 0xa9, 0x67, 0x07, 0x9a,
- 0x14, 0x20, 0x00, 0x2a, 0x00, 0xd1, 0x00, 0x20,
- 0x08, 0x18, 0x12, 0x30, 0xa8, 0x66, 0x70, 0x78,
- 0xb0, 0x70, 0x30, 0x78, 0x70, 0x70, 0x02, 0x20,
- 0x30, 0x70, 0xa0, 0x69, 0xfc, 0xf7, 0xc2, 0xfa,
- 0xef, 0x64, 0xa8, 0x6f, 0x3c, 0x00, 0x58, 0x3e,
- 0x00, 0x00, 0xe9, 0x6f, 0x59, 0x4b, 0x40, 0x1a,
- 0x98, 0x42, 0x12, 0xd2, 0x68, 0x6d, 0x06, 0x99,
- 0x88, 0x42, 0x0e, 0xd0, 0x30, 0x78, 0x02, 0x28,
- 0x0b, 0xd8, 0x0e, 0xf0, 0x9c, 0xff, 0xa9, 0x6f,
- 0x08, 0x22, 0x40, 0x1a, 0x52, 0x49, 0x09, 0x1a,
- 0x3b, 0x1c, 0x16, 0x20, 0x0f, 0xf0, 0x85, 0xfc,
- 0x00, 0xe0, 0xaf, 0x65, 0x01, 0x20, 0x05, 0x90,
- 0x08, 0x90, 0x43, 0x48, 0x02, 0x25, 0x3c, 0x00,
- 0x94, 0x3e, 0x00, 0x00, 0xc4, 0x38, 0xc1, 0x68,
- 0x00, 0x29, 0x72, 0xd1, 0x01, 0x21, 0xc1, 0x60,
- 0x49, 0x48, 0x00, 0x6b, 0x00, 0x28, 0x6c, 0xd0,
- 0x08, 0xf0, 0x66, 0xfc, 0x69, 0xe0, 0x3c, 0x48,
- 0x00, 0x22, 0x01, 0x92, 0x80, 0x38, 0x80, 0x68,
- 0x01, 0x28, 0x04, 0xd1, 0x38, 0x48, 0x80, 0x38,
- 0x87, 0x60, 0x01, 0x20, 0x48, 0xe1, 0x3a, 0x48,
- 0x01, 0x23, 0x43, 0x60, 0x34, 0x48, 0xc4, 0x38,
- 0x3c, 0x00, 0xd0, 0x3e, 0x00, 0x00, 0x00, 0x78,
- 0x00, 0x28, 0x0a, 0xd1, 0x00, 0xf0, 0x25, 0xfe,
- 0x00, 0x28, 0x06, 0xd0, 0xff, 0x21, 0x91, 0x31,
- 0x01, 0x23, 0x09, 0x22, 0x16, 0x20, 0x0f, 0xf0,
- 0x52, 0xfc, 0x2c, 0x49, 0x80, 0x39, 0x48, 0x6f,
- 0x89, 0x6f, 0x42, 0x1a, 0x03, 0x92, 0x06, 0xf0,
- 0x76, 0xf9, 0x28, 0x49, 0x80, 0x39, 0x89, 0x6f,
- 0x03, 0x9a, 0x40, 0x1a, 0x02, 0x90, 0x37, 0x20,
- 0x00, 0x01, 0x3c, 0x00, 0x0c, 0x3f, 0x00, 0x00,
- 0x10, 0x1a, 0x50, 0x28, 0x0d, 0xd2, 0x23, 0x48,
- 0x80, 0x38, 0x40, 0x6d, 0x00, 0x28, 0x04, 0xd1,
- 0x02, 0x98, 0xff, 0x38, 0x55, 0x38, 0x14, 0x28,
- 0x01, 0xd2, 0x01, 0x22, 0x00, 0xe0, 0x00, 0x22,
- 0x01, 0x92, 0x03, 0x9a, 0x01, 0x20, 0xff, 0x3a,
- 0x0b, 0x3a, 0x50, 0x2a, 0x00, 0xd3, 0x00, 0x20,
- 0x04, 0x90, 0x00, 0x28, 0x0a, 0xd0, 0x17, 0x48,
- 0x80, 0x38, 0xc0, 0x6f, 0x3c, 0x00, 0x48, 0x3f,
- 0x00, 0x00, 0x08, 0x1a, 0x9b, 0x21, 0xc9, 0x00,
- 0x40, 0x1a, 0x14, 0x28, 0x01, 0xd2, 0x01, 0x22,
- 0x00, 0xe0, 0x00, 0x22, 0x00, 0x92, 0x00, 0x2a,
- 0x11, 0xd0, 0x0f, 0x4d, 0x01, 0x20, 0x80, 0x3d,
- 0x68, 0x65, 0x0e, 0xf0, 0x20, 0xff, 0x68, 0x66,
- 0x01, 0x25, 0x01, 0x21, 0x16, 0x20, 0x0f, 0xf0,
- 0x5e, 0xfb, 0x00, 0x21, 0x16, 0x20, 0x0f, 0xf0,
- 0x5a, 0xfb, 0x00, 0xe0, 0xba, 0xe0, 0x3c, 0x00,
- 0x84, 0x3f, 0x00, 0x00, 0xf0, 0x79, 0x02, 0x28,
- 0x3c, 0xd8, 0x05, 0x4a, 0x80, 0x3a, 0x51, 0x6c,
- 0x00, 0x29, 0x37, 0xd1, 0x13, 0x6c, 0x11, 0x1c,
- 0x00, 0x2b, 0x33, 0xd1, 0x16, 0xe0, 0x00, 0x00,
- 0x24, 0x6d, 0x01, 0x00, 0x50, 0xc3, 0x00, 0x00,
- 0xc0, 0x5c, 0x15, 0x00, 0x70, 0x99, 0x14, 0x00,
- 0xb0, 0x57, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0xe2, 0x04, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00,
- 0x3c, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x53, 0x07,
- 0x00, 0x00, 0x1e, 0x02, 0x00, 0x00, 0xc8, 0x57,
- 0x01, 0x00, 0x4a, 0x6d, 0x00, 0x2a, 0x02, 0xd0,
- 0xb2, 0x7a, 0x02, 0x2a, 0x15, 0xd1, 0x00, 0x9a,
- 0x00, 0x2a, 0x03, 0xd0, 0xca, 0x6d, 0x01, 0x32,
- 0xca, 0x65, 0x00, 0xe0, 0xcf, 0x65, 0x01, 0x9a,
- 0x00, 0x2a, 0x0b, 0xd0, 0x8a, 0x6f, 0xcb, 0x6f,
- 0xd2, 0x1a, 0x5a, 0x4b, 0x9a, 0x42, 0x02, 0xd2,
- 0x8a, 0x6d, 0x3c, 0x00, 0xfc, 0x3f, 0x00, 0x00,
- 0x01, 0x32, 0x00, 0xe0, 0x01, 0x22, 0x8a, 0x65,
- 0x00, 0xe0, 0x8f, 0x65, 0x04, 0x99, 0x00, 0x29,
- 0x01, 0xd1, 0x02, 0x28, 0x0b, 0xd9, 0x54, 0x4a,
- 0x02, 0x28, 0x1e, 0xd9, 0xd0, 0x6f, 0x61, 0x68,
- 0x88, 0x42, 0x1a, 0xd1, 0x91, 0x6f, 0x08, 0x1a,
- 0x50, 0x49, 0x88, 0x42, 0x15, 0xdd, 0x4e, 0x4b,
- 0x98, 0x6f, 0xe1, 0x68, 0x40, 0x1a, 0x7d, 0x21,
- 0xc9, 0x00, 0x88, 0x42, 0x3c, 0x00, 0x38, 0x40,
- 0x00, 0x00, 0x0b, 0xdd, 0x61, 0x69, 0x40, 0x1a,
- 0x00, 0x28, 0x04, 0xdd, 0x02, 0x11, 0x40, 0x11,
- 0x10, 0x18, 0x40, 0x18, 0x01, 0xe0, 0x80, 0x10,
- 0x08, 0x18, 0x60, 0x61, 0x58, 0x6f, 0xe0, 0x60,
- 0x03, 0x98, 0xff, 0x38, 0x23, 0x38, 0x14, 0x28,
- 0x09, 0xd2, 0x02, 0x98, 0xff, 0x38, 0x23, 0x38,
- 0x14, 0x28, 0x04, 0xd2, 0x3e, 0x4a, 0x90, 0x6f,
- 0x50, 0x64, 0x90, 0x6a, 0x90, 0x64, 0x3c, 0x00,
- 0x74, 0x40, 0x00, 0x00, 0x0e, 0xf0, 0x9a, 0xfe,
- 0x3a, 0x49, 0x49, 0x6c, 0x40, 0x1a, 0x3b, 0x49,
- 0x88, 0x42, 0x01, 0xd9, 0x37, 0x49, 0x4f, 0x64,
- 0x39, 0x49, 0x03, 0x98, 0x40, 0x18, 0x14, 0x28,
- 0x07, 0xd2, 0x34, 0x49, 0xc8, 0x6b, 0x00, 0x28,
- 0x03, 0xd0, 0x88, 0x6f, 0x08, 0x64, 0x88, 0x6a,
- 0x88, 0x64, 0x0e, 0xf0, 0x83, 0xfe, 0x2f, 0x49,
- 0x09, 0x6c, 0x40, 0x1a, 0x31, 0x49, 0x88, 0x42,
- 0x3c, 0x00, 0xb0, 0x40, 0x00, 0x00, 0x01, 0xd9,
- 0x2c, 0x48, 0x07, 0x64, 0x04, 0x20, 0x05, 0x90,
- 0x08, 0x21, 0x16, 0x20, 0x0f, 0xf0, 0xb9, 0xfa,
- 0x28, 0x48, 0x40, 0x6d, 0x00, 0x28, 0x02, 0xd0,
- 0x04, 0x99, 0x00, 0x29, 0x08, 0xd0, 0x29, 0x49,
- 0x00, 0x28, 0x00, 0xd1, 0x29, 0x49, 0x3b, 0x1c,
- 0x06, 0x22, 0x16, 0x20, 0x0f, 0xf0, 0x57, 0xfb,
- 0x02, 0x2d, 0x09, 0xd0, 0x06, 0x2d, 0x0a, 0xd0,
- 0x07, 0x2d, 0x3c, 0x00, 0xec, 0x40, 0x00, 0x00,
- 0x13, 0xd1, 0x07, 0xe0, 0x01, 0x21, 0x16, 0x20,
- 0xfd, 0xf7, 0xd6, 0xf8, 0x1e, 0xe0, 0x1a, 0x4a,
- 0x57, 0x63, 0x97, 0x63, 0x18, 0x4a, 0x06, 0x98,
- 0xd0, 0x62, 0x07, 0x99, 0x11, 0x63, 0x53, 0x6b,
- 0x18, 0x43, 0x50, 0x63, 0x90, 0x6b, 0x08, 0x43,
- 0x90, 0x63, 0x05, 0x98, 0x00, 0x28, 0x05, 0xd0,
- 0x05, 0x98, 0x0c, 0xf0, 0x5f, 0xfa, 0x05, 0x98,
- 0x0c, 0xf0, 0xd2, 0xf9, 0x3c, 0x00, 0x28, 0x41,
- 0x00, 0x00, 0x08, 0x2d, 0x05, 0xd0, 0x0d, 0x48,
- 0x44, 0x38, 0x85, 0x70, 0x28, 0x1c, 0x03, 0xf0,
- 0xdc, 0xfd, 0x11, 0x49, 0xe0, 0x69, 0x88, 0x42,
- 0x00, 0xd1, 0x61, 0xe5, 0x08, 0x98, 0x00, 0x28,
- 0xfb, 0xd0, 0xb0, 0x7a, 0x02, 0x28, 0xf8, 0xd1,
- 0x01, 0x21, 0x16, 0x20, 0x0f, 0xf0, 0x6f, 0xfa,
- 0x02, 0x20, 0x0d, 0xf0, 0xe8, 0xfe, 0x53, 0xe5,
- 0x00, 0x00, 0x53, 0x07, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0x41, 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00,
- 0x20, 0xa1, 0x07, 0x00, 0x20, 0x4e, 0x00, 0x00,
- 0x3f, 0xfb, 0xff, 0xff, 0xa0, 0x86, 0x01, 0x00,
- 0x50, 0xc3, 0x00, 0x00, 0xc0, 0x5c, 0x15, 0x00,
- 0xf1, 0x1d, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0xf8, 0xb5, 0x21, 0x48,
- 0x00, 0x68, 0x21, 0x4d, 0x69, 0x69, 0x08, 0x40,
- 0x01, 0xd1, 0x01, 0x27, 0x00, 0xe0, 0x00, 0x27,
- 0x3c, 0x00, 0xa0, 0x41, 0x00, 0x00, 0x1d, 0x4d,
- 0x01, 0x26, 0x69, 0x6a, 0x00, 0x29, 0x00, 0xd0,
- 0x00, 0x26, 0x1b, 0x4d, 0x1a, 0x48, 0x2c, 0x1c,
- 0xa0, 0x30, 0x02, 0x7a, 0x28, 0x1c, 0x40, 0x30,
- 0x80, 0x34, 0x10, 0x23, 0xb7, 0x42, 0x10, 0xd1,
- 0x01, 0x25, 0xc5, 0x80, 0x00, 0x29, 0x00, 0xd0,
- 0x00, 0x23, 0x1a, 0x43, 0x11, 0x1c, 0x01, 0x73,
- 0x01, 0x20, 0x0e, 0xf0, 0x88, 0xfe, 0x08, 0x20,
- 0x20, 0x70, 0x3c, 0x00, 0xdc, 0x41, 0x00, 0x00,
- 0x00, 0x22, 0x16, 0x21, 0x80, 0x20, 0x13, 0xe0,
- 0x11, 0x27, 0xc7, 0x80, 0x2e, 0x1c, 0x0b, 0x4d,
- 0x00, 0x29, 0x00, 0xd1, 0x00, 0x23, 0x1a, 0x43,
- 0x11, 0x1c, 0x01, 0x73, 0x01, 0x20, 0x0e, 0xf0,
- 0x75, 0xfe, 0x08, 0x20, 0x20, 0x70, 0x30, 0x6d,
- 0x00, 0x22, 0x16, 0x21, 0x68, 0x67, 0x82, 0x20,
- 0x0f, 0xf0, 0xd0, 0xfa, 0xf8, 0xbd, 0x00, 0x00,
- 0x10, 0x00, 0x07, 0x00, 0x3c, 0x00, 0x18, 0x42,
- 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00, 0x00, 0x90,
- 0x07, 0x00, 0xb0, 0xb5, 0x0f, 0x4d, 0x04, 0x1c,
- 0xaa, 0x7a, 0x01, 0x21, 0x08, 0x1c, 0x00, 0x2a,
- 0x00, 0xd0, 0x00, 0x20, 0x00, 0x2c, 0x00, 0xd0,
- 0x00, 0x21, 0x88, 0x42, 0x0a, 0xd0, 0x00, 0x2c,
- 0x04, 0xd1, 0x00, 0xf0, 0x42, 0xfb, 0x00, 0xf0,
- 0xd6, 0xfa, 0x03, 0xe0, 0x00, 0xf0, 0xd9, 0xfa,
- 0x00, 0xf0, 0x09, 0xf8, 0xa8, 0x7a, 0x3c, 0x00,
- 0x54, 0x42, 0x00, 0x00, 0x02, 0x49, 0xe4, 0x39,
- 0x48, 0x71, 0xac, 0x72, 0xb0, 0xbd, 0x00, 0x00,
- 0x44, 0x6d, 0x01, 0x00, 0x80, 0xb5, 0x3e, 0xf0,
- 0x55, 0xf8, 0x02, 0x49, 0x01, 0x20, 0x08, 0x70,
- 0x80, 0xbd, 0x00, 0x00, 0x68, 0x7e, 0x01, 0x00,
- 0xf3, 0xb5, 0x01, 0x20, 0x8d, 0xb0, 0x0f, 0x1c,
- 0x01, 0x24, 0x08, 0x90, 0x0e, 0xf0, 0x92, 0xfd,
- 0x06, 0x1c, 0x00, 0xf0, 0xb5, 0xfa, 0x09, 0x90,
- 0x3c, 0x00, 0x90, 0x42, 0x00, 0x00, 0x00, 0xf0,
- 0x80, 0xfb, 0x07, 0x90, 0xfe, 0xf7, 0x3f, 0xfa,
- 0x05, 0x1c, 0x00, 0x21, 0x0c, 0x91, 0x08, 0xf0,
- 0xf0, 0xfb, 0x00, 0x28, 0x01, 0xd1, 0x01, 0x20,
- 0x00, 0xe0, 0x00, 0x20, 0x0a, 0x90, 0xfe, 0xf7,
- 0x12, 0xfd, 0x05, 0xf0, 0xe0, 0xfe, 0x0b, 0x90,
- 0x00, 0x2d, 0x23, 0xd0, 0x28, 0x88, 0x41, 0x07,
- 0x20, 0xd4, 0x29, 0x1d, 0x04, 0x91, 0x0a, 0x35,
- 0x00, 0x06, 0x3c, 0x00, 0xcc, 0x42, 0x00, 0x00,
- 0x80, 0x0e, 0x01, 0x21, 0x20, 0x28, 0x03, 0x95,
- 0x00, 0xd0, 0x00, 0x21, 0x0d, 0x1c, 0x04, 0x98,
- 0x06, 0xf0, 0x38, 0xfd, 0x0c, 0x90, 0x04, 0x98,
- 0x06, 0xf0, 0x10, 0xfd, 0x00, 0x28, 0x08, 0xd0,
- 0x03, 0x98, 0x01, 0xf0, 0x87, 0xfa, 0x00, 0x28,
- 0x03, 0xd0, 0x00, 0x2d, 0x01, 0xd1, 0x01, 0x20,
- 0x00, 0xe0, 0x00, 0x20, 0x0c, 0x99, 0x01, 0x43,
- 0x0c, 0x91, 0xfc, 0xf7, 0x3c, 0x00, 0x08, 0x43,
- 0x00, 0x00, 0x23, 0xff, 0x00, 0x28, 0x2f, 0xd0,
- 0x07, 0xf0, 0x99, 0xff, 0x05, 0x1c, 0x07, 0xf0,
- 0xb2, 0xff, 0x04, 0x90, 0xff, 0xf7, 0xf3, 0xf8,
- 0x0c, 0x99, 0x01, 0x43, 0x00, 0x2d, 0x06, 0xd0,
- 0x04, 0x98, 0xf0, 0x4a, 0x30, 0x1a, 0x90, 0x42,
- 0x01, 0xd2, 0x01, 0x20, 0x00, 0xe0, 0x00, 0x20,
- 0x08, 0x43, 0x0c, 0x90, 0x0b, 0x98, 0x0a, 0x9b,
- 0x18, 0x43, 0x01, 0x1c, 0x0b, 0x91, 0x3c, 0x00,
- 0x44, 0x43, 0x00, 0x00, 0x05, 0xf0, 0xce, 0xfe,
- 0x00, 0x28, 0x1a, 0xd1, 0x00, 0x2d, 0x06, 0xd0,
- 0x04, 0x98, 0xe7, 0x49, 0x30, 0x1a, 0x88, 0x42,
- 0x01, 0xd2, 0x01, 0x20, 0x00, 0xe0, 0x00, 0x20,
- 0x0c, 0x99, 0x08, 0x43, 0x05, 0x1c, 0x00, 0xf0,
- 0x1f, 0xfb, 0x28, 0x43, 0x03, 0xe0, 0x00, 0xf0,
- 0x1b, 0xfb, 0x0c, 0x99, 0x08, 0x43, 0x0c, 0x90,
- 0x00, 0xf0, 0xd4, 0xfb, 0x0b, 0x99, 0x01, 0x43,
- 0x3c, 0x00, 0x80, 0x43, 0x00, 0x00, 0x0b, 0x91,
- 0xdc, 0x49, 0xc8, 0x68, 0x00, 0x28, 0x01, 0xd0,
- 0x01, 0x38, 0xc8, 0x60, 0x08, 0xf0, 0xe7, 0xfb,
- 0x06, 0x90, 0x08, 0xf0, 0x90, 0xfd, 0x31, 0x1a,
- 0x05, 0x91, 0x06, 0x99, 0xd6, 0x48, 0x81, 0x42,
- 0x08, 0xd8, 0x00, 0x2f, 0x08, 0xd1, 0x05, 0x99,
- 0x40, 0x08, 0x81, 0x42, 0x04, 0xd9, 0x06, 0x99,
- 0x81, 0x42, 0x01, 0xd9, 0x00, 0x24, 0x8b, 0xe0,
- 0xd0, 0x48, 0x3c, 0x00, 0xbc, 0x43, 0x00, 0x00,
- 0x05, 0x99, 0xd0, 0x4d, 0x81, 0x42, 0x26, 0xd2,
- 0xe8, 0x79, 0x10, 0x28, 0x06, 0xd2, 0x00, 0x2f,
- 0x21, 0xd1, 0xcc, 0x48, 0xa0, 0x38, 0x80, 0x6a,
- 0x00, 0x28, 0x1c, 0xd1, 0x09, 0xf0, 0x62, 0xff,
- 0x04, 0x90, 0x00, 0x28, 0x02, 0xd1, 0x00, 0x20,
- 0xc3, 0x49, 0x13, 0xe0, 0x09, 0xf0, 0x10, 0xfe,
- 0x00, 0x28, 0x03, 0xd0, 0xc4, 0x48, 0xc0, 0x69,
- 0x00, 0x28, 0xf4, 0xd0, 0x3c, 0x00, 0xf8, 0x43,
- 0x00, 0x00, 0x04, 0x98, 0x05, 0x28, 0x03, 0xd0,
- 0xc1, 0x48, 0x00, 0x6a, 0x00, 0x28, 0x65, 0xd1,
- 0xbb, 0x49, 0x48, 0x6a, 0x00, 0x28, 0x23, 0xd0,
- 0x01, 0x38, 0x48, 0x62, 0x00, 0xf0, 0x87, 0xff,
- 0x00, 0x28, 0x11, 0xd0, 0xbb, 0x48, 0x05, 0x99,
- 0x81, 0x42, 0x0d, 0xd2, 0x01, 0xf0, 0x9b, 0xf8,
- 0x04, 0x30, 0x0d, 0xf0, 0xee, 0xfc, 0x40, 0x30,
- 0xc1, 0x7a, 0x01, 0x29, 0x4e, 0xd0, 0x3c, 0x00,
- 0x34, 0x44, 0x00, 0x00, 0x80, 0x7a, 0x00, 0x28,
- 0x01, 0xd0, 0x05, 0x28, 0x49, 0xd3, 0x01, 0xf0,
- 0xdf, 0xf8, 0x02, 0x28, 0x10, 0xd0, 0x00, 0x2f,
- 0x02, 0xd1, 0x06, 0x98, 0x00, 0x28, 0x40, 0xd1,
- 0x00, 0x20, 0x08, 0x90, 0x82, 0xe1, 0xaa, 0x48,
- 0xa0, 0x38, 0xc0, 0x68, 0x00, 0x28, 0x38, 0xd0,
- 0xa8, 0x48, 0x80, 0x69, 0x48, 0x62, 0x34, 0xe0,
- 0x0a, 0xa9, 0x03, 0xc9, 0x08, 0x43, 0x45, 0xd0,
- 0x3c, 0x00, 0x70, 0x44, 0x00, 0x00, 0xa3, 0x48,
- 0x29, 0x78, 0xa0, 0x38, 0x02, 0x29, 0x40, 0xd8,
- 0x40, 0x6d, 0x00, 0x28, 0x0a, 0xd0, 0x9f, 0x48,
- 0xa2, 0x49, 0x20, 0x38, 0xc0, 0x68, 0x40, 0x18,
- 0x0e, 0xf0, 0xc7, 0xfb, 0x00, 0x28, 0x01, 0xd0,
- 0x01, 0x21, 0x00, 0xe0, 0x00, 0x21, 0x96, 0x4a,
- 0x90, 0x6a, 0x00, 0x28, 0x02, 0xda, 0x64, 0x08,
- 0x64, 0x00, 0x2a, 0xe0, 0x00, 0x29, 0x09, 0xd1,
- 0x95, 0x4b, 0x3c, 0x00, 0xac, 0x44, 0x00, 0x00,
- 0xa0, 0x3b, 0x5b, 0x6d, 0x00, 0x2b, 0x02, 0xd0,
- 0x05, 0x28, 0x0d, 0xdb, 0x01, 0xe0, 0x07, 0x28,
- 0x0a, 0xdb, 0x01, 0x20, 0xc0, 0x43, 0x90, 0x62,
- 0x64, 0x08, 0x8e, 0x49, 0x64, 0x00, 0x00, 0x20,
- 0xa0, 0x39, 0x88, 0x65, 0x14, 0xe0, 0xd1, 0xe0,
- 0x39, 0x43, 0x11, 0xd1, 0x89, 0x49, 0xa0, 0x39,
- 0xcb, 0x6d, 0x00, 0x2b, 0x02, 0xd1, 0x89, 0x6d,
- 0x01, 0x29, 0x09, 0xd9, 0x3c, 0x00, 0xe8, 0x44,
- 0x00, 0x00, 0x07, 0x9b, 0x00, 0x2b, 0x01, 0xd1,
- 0x07, 0x28, 0x01, 0xdb, 0x64, 0x08, 0x64, 0x00,
- 0x01, 0x30, 0x90, 0x62, 0xbd, 0xe0, 0x7d, 0x49,
- 0x88, 0x69, 0x04, 0x90, 0x00, 0x20, 0x88, 0x61,
- 0x0c, 0x98, 0x00, 0x28, 0x2c, 0xd0, 0x07, 0xf0,
- 0x66, 0xfc, 0x00, 0x28, 0x02, 0xd0, 0x02, 0x20,
- 0x04, 0x43, 0x25, 0xe0, 0x7a, 0x48, 0xc0, 0x6a,
- 0x00, 0x28, 0x04, 0xd1, 0x77, 0x48, 0x3c, 0x00,
- 0x24, 0x45, 0x00, 0x00, 0xa0, 0x38, 0xc0, 0x68,
- 0x00, 0x28, 0x1c, 0xd1, 0x04, 0x98, 0x00, 0x28,
- 0x0d, 0xd1, 0x28, 0x78, 0x10, 0x28, 0x02, 0xd3,
- 0xe8, 0x78, 0x02, 0x28, 0x02, 0xd9, 0x28, 0x79,
- 0x10, 0x28, 0x04, 0xd3, 0x04, 0x24, 0x6b, 0x49,
- 0x01, 0x22, 0x8a, 0x61, 0x94, 0xe0, 0x6c, 0x48,
- 0xa0, 0x38, 0x40, 0x6d, 0x00, 0x28, 0x71, 0xd0,
- 0x05, 0xf0, 0xa2, 0xfd, 0x00, 0x28, 0x6d, 0xd0,
- 0x3c, 0x00, 0x60, 0x45, 0x00, 0x00, 0x64, 0x08,
- 0x64, 0x00, 0x88, 0xe0, 0xff, 0xf7, 0x5b, 0xfa,
- 0x00, 0x28, 0x1a, 0xd0, 0x68, 0x48, 0x00, 0x78,
- 0x02, 0x28, 0x01, 0xd1, 0x00, 0x2f, 0x14, 0xd1,
- 0x00, 0x20, 0xfe, 0xf7, 0x70, 0xfe, 0x30, 0x1a,
- 0x04, 0x90, 0xff, 0xf7, 0x6c, 0xfa, 0x00, 0x28,
- 0x07, 0xd0, 0xff, 0xf7, 0x1e, 0xfa, 0x00, 0x28,
- 0x03, 0xd0, 0x5d, 0x49, 0x04, 0x98, 0x88, 0x42,
- 0x4f, 0xd3, 0x3c, 0x00, 0x9c, 0x45, 0x00, 0x00,
- 0x05, 0xf0, 0x6c, 0xfd, 0x00, 0x28, 0x4b, 0xd1,
- 0x53, 0x49, 0x08, 0x78, 0x03, 0x28, 0x08, 0xd1,
- 0x88, 0x68, 0x01, 0x22, 0xd2, 0x07, 0x30, 0x1a,
- 0x90, 0x42, 0x41, 0xd2, 0x01, 0x22, 0x0a, 0x70,
- 0x57, 0xe0, 0x54, 0x48, 0x00, 0x78, 0x02, 0x28,
- 0x01, 0xd1, 0x00, 0x2f, 0x51, 0xd1, 0x4a, 0x49,
- 0x88, 0x68, 0x51, 0x49, 0x80, 0x1b, 0x88, 0x42,
- 0x07, 0xd9, 0x01, 0x20, 0x3c, 0x00, 0xd8, 0x45,
- 0x00, 0x00, 0xfe, 0xf7, 0x42, 0xfe, 0x7d, 0x21,
- 0x09, 0x01, 0x40, 0x18, 0x44, 0x49, 0x88, 0x60,
- 0x4a, 0x48, 0x00, 0x78, 0x02, 0x28, 0x04, 0xd1,
- 0x07, 0x9b, 0x00, 0x2b, 0x01, 0xd1, 0x01, 0x20,
- 0x00, 0xe0, 0x00, 0x20, 0x47, 0x4b, 0x47, 0x49,
- 0x58, 0x43, 0x40, 0x18, 0x3c, 0x49, 0x89, 0x68,
- 0x89, 0x1b, 0x88, 0x42, 0x30, 0xd9, 0x07, 0x9b,
- 0x00, 0x20, 0x03, 0x93, 0x00, 0xf0, 0x3c, 0x00,
- 0x14, 0x46, 0x00, 0x00, 0x79, 0xff, 0x02, 0x90,
- 0xff, 0xf7, 0xd8, 0xf9, 0x04, 0x90, 0x01, 0xf0,
- 0x57, 0xf8, 0x04, 0x99, 0x02, 0x9a, 0x51, 0x43,
- 0x48, 0x43, 0x01, 0x90, 0x00, 0xf0, 0xdc, 0xff,
- 0x41, 0x1c, 0x01, 0x98, 0x01, 0x22, 0x48, 0x43,
- 0x11, 0x1c, 0x00, 0xe0, 0x1b, 0xe0, 0x31, 0x4b,
- 0x5b, 0x6a, 0x83, 0x42, 0x00, 0xd3, 0x00, 0x21,
- 0x03, 0x9b, 0x01, 0x22, 0x00, 0x2b, 0x00, 0xd0,
- 0x3c, 0x00, 0x50, 0x46, 0x00, 0x00, 0x00, 0x22,
- 0x2c, 0x4b, 0x51, 0x43, 0x9b, 0x6a, 0x01, 0x22,
- 0x83, 0x42, 0x00, 0xd3, 0x00, 0x22, 0x50, 0x00,
- 0x08, 0x18, 0x03, 0xd0, 0x23, 0x49, 0x03, 0x20,
- 0x08, 0x70, 0x03, 0xe0, 0x09, 0x98, 0xc0, 0x68,
- 0x06, 0x28, 0x08, 0xd9, 0x02, 0x24, 0x08, 0x98,
- 0x00, 0x28, 0x6e, 0xd0, 0x1d, 0x49, 0x00, 0x20,
- 0xc8, 0x61, 0x48, 0x61, 0xa5, 0xe0, 0x1a, 0x49,
- 0x48, 0x69, 0x3c, 0x00, 0x8c, 0x46, 0x00, 0x00,
- 0x00, 0x28, 0x0a, 0xd1, 0x00, 0x2f, 0x05, 0xd0,
- 0x01, 0x22, 0x4a, 0x61, 0xc8, 0x69, 0x80, 0x18,
- 0xc8, 0x61, 0x0a, 0xe0, 0x00, 0x20, 0xc8, 0x61,
- 0x03, 0xe0, 0x00, 0x2f, 0x05, 0xd1, 0x00, 0x20,
- 0x48, 0x61, 0x0d, 0x98, 0x00, 0x28, 0x00, 0xd1,
- 0xc8, 0x68, 0x00, 0x20, 0x08, 0x90, 0x08, 0x78,
- 0x01, 0x28, 0x2f, 0xd0, 0x02, 0x28, 0x4b, 0xd1,
- 0x00, 0x2f, 0x08, 0xd1, 0x3c, 0x00, 0xc8, 0x46,
- 0x00, 0x00, 0xe8, 0x78, 0x00, 0x28, 0x02, 0xd1,
- 0x28, 0x78, 0x10, 0x28, 0x43, 0xd2, 0x28, 0x79,
- 0x10, 0x28, 0x40, 0xd2, 0x48, 0x68, 0x0a, 0x69,
- 0x30, 0x1a, 0x90, 0x42, 0x67, 0xd3, 0x01, 0x22,
- 0x0a, 0x70, 0x38, 0xe0, 0x00, 0x00, 0xe2, 0x04,
- 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x68, 0x7e,
- 0x01, 0x00, 0xa0, 0x86, 0x01, 0x00, 0x88, 0x13,
- 0x00, 0x00, 0x44, 0x6d, 0x01, 0x00, 0x3c, 0x00,
- 0x04, 0x47, 0x00, 0x00, 0xc8, 0x57, 0x01, 0x00,
- 0x50, 0xc3, 0x00, 0x00, 0x98, 0x3a, 0x00, 0x00,
- 0xc0, 0x57, 0x01, 0x00, 0x40, 0x0d, 0x03, 0x00,
- 0xc4, 0x09, 0x00, 0x00, 0xb2, 0x0c, 0x00, 0x00,
- 0x00, 0x20, 0x0b, 0x9a, 0x0a, 0x9b, 0xc0, 0x43,
- 0x1a, 0x43, 0x37, 0xd0, 0x00, 0x2f, 0x35, 0xd1,
- 0x07, 0x9b, 0x00, 0x2b, 0x08, 0xd0, 0x6a, 0x78,
- 0x02, 0x2a, 0x2f, 0xd9, 0x2a, 0x78, 0x10, 0x2a,
- 0x3c, 0x00, 0x40, 0x47, 0x00, 0x00, 0x2c, 0xd2,
- 0x2a, 0x79, 0x10, 0x2a, 0x29, 0xd2, 0x25, 0x4b,
- 0x1a, 0x6c, 0x00, 0x2a, 0x06, 0xd0, 0x9a, 0x6a,
- 0x9f, 0x6c, 0xba, 0x42, 0x02, 0xd1, 0x1f, 0x20,
- 0x1f, 0xe0, 0x2e, 0xe0, 0x20, 0x4b, 0x5a, 0x6c,
- 0x00, 0x2a, 0x03, 0xd0, 0x1f, 0x4f, 0xb3, 0x1a,
- 0xbb, 0x42, 0x16, 0xd3, 0x1c, 0x4b, 0x00, 0x2a,
- 0x05, 0xd0, 0x9a, 0x6a, 0x9f, 0x6c, 0xba, 0x42,
- 0x01, 0xd1, 0x3c, 0x00, 0x7c, 0x47, 0x00, 0x00,
- 0x0f, 0x20, 0x0d, 0xe0, 0x07, 0x9a, 0x00, 0x2a,
- 0x04, 0xd0, 0xea, 0x79, 0x20, 0x2a, 0x01, 0xd1,
- 0x00, 0x20, 0x05, 0xe0, 0xea, 0x79, 0x10, 0x2a,
- 0x01, 0xd3, 0x03, 0x20, 0x00, 0xe0, 0x9a, 0x6a,
- 0x12, 0x4a, 0x12, 0x68, 0x02, 0x40, 0x0b, 0xd1,
- 0x01, 0x20, 0x08, 0x90, 0x02, 0x20, 0x08, 0x70,
- 0x0f, 0x48, 0x08, 0x61, 0x4e, 0x60, 0x64, 0xe7,
- 0xff, 0xe7, 0x01, 0x20, 0x3c, 0x00, 0xb8, 0x47,
- 0x00, 0x00, 0x08, 0x90, 0x60, 0xe7, 0x0c, 0x49,
- 0x88, 0x6a, 0x00, 0x28, 0x01, 0xda, 0x01, 0x30,
- 0x02, 0xe0, 0x00, 0x28, 0x01, 0xdd, 0x00, 0x20,
- 0x88, 0x62, 0x00, 0x20, 0x08, 0x62, 0x08, 0x99,
- 0x20, 0x04, 0x08, 0x43, 0x0f, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00, 0x71, 0x02,
- 0x00, 0x00, 0x08, 0x20, 0x07, 0x00, 0x53, 0x07,
- 0x00, 0x00, 0x68, 0x7e, 0x01, 0x00, 0x3c, 0x00,
- 0xf4, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x00, 0x48, 0x70, 0x47, 0x50, 0x7e, 0x01, 0x00,
- 0x80, 0xb5, 0x3d, 0xf0, 0x7f, 0xfd, 0x02, 0x49,
- 0x01, 0x20, 0x08, 0x70, 0x80, 0xbd, 0x00, 0x00,
- 0x3c, 0x7e, 0x01, 0x00, 0xf8, 0xb5, 0x0d, 0x1c,
- 0x0e, 0xf0, 0xc8, 0xfa, 0x26, 0x49, 0x04, 0x1c,
- 0x88, 0x6a, 0x26, 0x4e, 0x00, 0x28, 0x01, 0xd0,
- 0x04, 0x20, 0x03, 0xe0, 0x70, 0x6a, 0x00, 0x28,
- 0x3c, 0x00, 0x30, 0x48, 0x00, 0x00, 0x01, 0xd0,
- 0x01, 0x38, 0x70, 0x62, 0x00, 0x27, 0x00, 0x2d,
- 0x02, 0xd0, 0xb7, 0x61, 0xf7, 0x61, 0x0a, 0xe0,
- 0xb0, 0x69, 0x1c, 0x49, 0x01, 0x30, 0xb0, 0x61,
- 0x49, 0x6d, 0x00, 0x29, 0x03, 0xd0, 0x03, 0x28,
- 0x01, 0xd9, 0x01, 0x20, 0xf0, 0x61, 0xb4, 0x60,
- 0xf1, 0x68, 0x00, 0x91, 0x08, 0xf0, 0xf7, 0xfc,
- 0xf0, 0x60, 0x00, 0x99, 0x88, 0x42, 0x02, 0xd0,
- 0x30, 0x62, 0x3c, 0x00, 0x6c, 0x48, 0x00, 0x00,
- 0x34, 0x61, 0x0b, 0xe0, 0x00, 0xf0, 0x90, 0xf8,
- 0x00, 0x28, 0x01, 0xd0, 0x11, 0x48, 0x00, 0xe0,
- 0x11, 0x48, 0x31, 0x69, 0x61, 0x1a, 0x81, 0x42,
- 0x00, 0xd9, 0x37, 0x62, 0x0b, 0x4a, 0x0c, 0x48,
- 0xd1, 0x6c, 0x20, 0x30, 0x00, 0x29, 0x01, 0xd0,
- 0x0a, 0x21, 0x03, 0xe0, 0x01, 0x7a, 0x00, 0x29,
- 0x01, 0xd0, 0xff, 0x31, 0x01, 0x72, 0x00, 0x2d,
- 0x03, 0xd1, 0x01, 0x7a, 0x3c, 0x00, 0xa8, 0x48,
- 0x00, 0x00, 0x00, 0x29, 0x00, 0xd0, 0x91, 0x6a,
- 0x00, 0x7a, 0x00, 0x28, 0x00, 0xd1, 0x17, 0x65,
- 0xf8, 0xbd, 0xa4, 0x6c, 0x01, 0x00, 0x3c, 0x7e,
- 0x01, 0x00, 0xa6, 0x0e, 0x00, 0x00, 0xa8, 0x61,
- 0x00, 0x00, 0x70, 0x47, 0x00, 0x00, 0x06, 0x49,
- 0x80, 0xb5, 0x89, 0x68, 0x00, 0x29, 0x07, 0xd0,
- 0x05, 0x21, 0x00, 0x28, 0x00, 0xd1, 0x04, 0x21,
- 0x08, 0x06, 0x00, 0x0e, 0x03, 0xf0, 0x3c, 0x00,
- 0xe4, 0x48, 0x00, 0x00, 0x05, 0xfa, 0x80, 0xbd,
- 0x60, 0x6c, 0x01, 0x00, 0x07, 0x48, 0x00, 0x68,
- 0x07, 0x49, 0x4a, 0x69, 0x10, 0x40, 0x01, 0xd0,
- 0x01, 0x20, 0x00, 0xe0, 0x00, 0x20, 0x49, 0x6a,
- 0x88, 0x42, 0x01, 0xd1, 0x01, 0x20, 0x70, 0x47,
- 0x00, 0x20, 0x70, 0x47, 0x10, 0x00, 0x07, 0x00,
- 0xa4, 0x6c, 0x01, 0x00, 0x70, 0xb5, 0x0e, 0xf0,
- 0x49, 0xfa, 0x02, 0x1c, 0x00, 0xf0, 0x3a, 0xf8,
- 0x3c, 0x00, 0x20, 0x49, 0x00, 0x00, 0x10, 0x49,
- 0x00, 0x28, 0x0e, 0xd0, 0x08, 0x1c, 0xa0, 0x31,
- 0x0e, 0x78, 0x0e, 0x4b, 0x10, 0x2e, 0x01, 0xd3,
- 0x80, 0x6f, 0x03, 0xe0, 0x49, 0x78, 0x10, 0x29,
- 0x0e, 0xd3, 0xc0, 0x6f, 0xc0, 0x18, 0x84, 0x1a,
- 0x0a, 0xe0, 0x08, 0x1c, 0x80, 0x30, 0x45, 0x69,
- 0x08, 0x49, 0x8d, 0x42, 0x01, 0xd9, 0x0c, 0x1c,
- 0x05, 0xe0, 0xc0, 0x68, 0x10, 0x1a, 0x2c, 0x1a,
- 0x00, 0x2c, 0x3c, 0x00, 0x5c, 0x49, 0x00, 0x00,
- 0x00, 0xda, 0x64, 0x19, 0x20, 0x1c, 0x70, 0xbd,
- 0xa4, 0x6c, 0x01, 0x00, 0xa6, 0x0e, 0x00, 0x00,
- 0x50, 0xc3, 0x00, 0x00, 0x80, 0xb5, 0x05, 0xf0,
- 0xb7, 0xfb, 0x00, 0x28, 0x02, 0xd0, 0x07, 0xf0,
- 0x1f, 0xff, 0x80, 0xbd, 0x03, 0x48, 0x00, 0x78,
- 0x00, 0x28, 0xfa, 0xd0, 0x07, 0xf0, 0x70, 0xfb,
- 0x80, 0xbd, 0x00, 0x00, 0x60, 0x6c, 0x01, 0x00,
- 0x03, 0x49, 0x01, 0x20, 0x3c, 0x00, 0x98, 0x49,
- 0x00, 0x00, 0x49, 0x69, 0x03, 0x29, 0x00, 0xd8,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x60, 0x6c,
- 0x01, 0x00, 0xb0, 0xb5, 0x0a, 0x4d, 0x00, 0x24,
- 0x28, 0x78, 0x01, 0x28, 0x03, 0xd0, 0x05, 0xf0,
- 0x6a, 0xfb, 0x04, 0x06, 0x24, 0x0e, 0xfe, 0xf7,
- 0xd2, 0xfc, 0x00, 0x02, 0x20, 0x43, 0x02, 0xd1,
- 0x68, 0x6a, 0x00, 0x28, 0x01, 0xd1, 0x01, 0x20,
- 0xb0, 0xbd, 0x00, 0x20, 0xb0, 0xbd, 0x3c, 0x00,
- 0xd4, 0x49, 0x00, 0x00, 0x60, 0x6c, 0x01, 0x00,
- 0x01, 0x21, 0x01, 0x28, 0x00, 0xd0, 0x00, 0x21,
- 0x01, 0x48, 0x41, 0x62, 0x70, 0x47, 0x00, 0x00,
- 0x60, 0x6c, 0x01, 0x00, 0x15, 0x48, 0x10, 0xb5,
- 0x04, 0x68, 0x15, 0x48, 0x00, 0x6a, 0x00, 0x28,
- 0x14, 0xd0, 0xff, 0xf7, 0xcb, 0xff, 0x00, 0x28,
- 0x0e, 0xd1, 0x11, 0x48, 0x11, 0x49, 0xc4, 0x30,
- 0x40, 0x69, 0x88, 0x42, 0x08, 0xd2, 0xcc, 0x08,
- 0x3c, 0x00, 0x10, 0x4a, 0x00, 0x00, 0xa0, 0x42,
- 0x05, 0xd3, 0xff, 0xf7, 0x7e, 0xff, 0xa0, 0x42,
- 0x01, 0xda, 0x0c, 0x4c, 0x01, 0xe0, 0xff, 0x24,
- 0x91, 0x34, 0x7d, 0x20, 0x00, 0x01, 0x84, 0x42,
- 0x04, 0xd9, 0x00, 0x22, 0x16, 0x21, 0x83, 0x20,
- 0x0e, 0xf0, 0xbd, 0xfe, 0x01, 0x23, 0x09, 0x22,
- 0x21, 0x1c, 0x16, 0x20, 0x0e, 0xf0, 0xa7, 0xfe,
- 0x10, 0xbd, 0xb0, 0x57, 0x01, 0x00, 0x60, 0x6c,
- 0x01, 0x00, 0x3c, 0x00, 0x4c, 0x4a, 0x00, 0x00,
- 0xc0, 0x5d, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00,
- 0x70, 0xb5, 0x05, 0x1c, 0x0e, 0x1c, 0x00, 0xf0,
- 0x43, 0xf8, 0x00, 0x28, 0x0f, 0xd0, 0x08, 0x4c,
- 0x20, 0x78, 0xc0, 0x07, 0x03, 0xd4, 0x05, 0xf0,
- 0xab, 0xf9, 0x09, 0xf0, 0x31, 0xfe, 0x00, 0x2d,
- 0x05, 0xd0, 0x20, 0x78, 0x80, 0x07, 0x02, 0xd4,
- 0x30, 0x1c, 0x02, 0xf0, 0xfd, 0xfe, 0x70, 0xbd,
- 0x60, 0x6c, 0x01, 0x00, 0x3c, 0x00, 0x88, 0x4a,
- 0x00, 0x00, 0xb0, 0xb5, 0x00, 0x28, 0x18, 0xd0,
- 0x11, 0x48, 0x81, 0x42, 0x15, 0xd2, 0x10, 0x48,
- 0x0c, 0x1c, 0x0d, 0x18, 0x07, 0xf0, 0xdf, 0xfa,
- 0x81, 0x00, 0x09, 0x18, 0xa1, 0x42, 0x01, 0xd2,
- 0x40, 0x00, 0x03, 0xe0, 0x41, 0x00, 0x09, 0x18,
- 0xa1, 0x42, 0x01, 0xd2, 0x24, 0x1a, 0x06, 0xe0,
- 0x41, 0x00, 0xa1, 0x42, 0x03, 0xd2, 0x40, 0x08,
- 0xf8, 0xe7, 0x06, 0x4d, 0x07, 0x4c, 0x3c, 0x00,
- 0xc4, 0x4a, 0x00, 0x00, 0x0e, 0xf0, 0x72, 0xf9,
- 0x00, 0x19, 0x29, 0x1c, 0x07, 0xf0, 0xdc, 0xfa,
- 0xb0, 0xbd, 0x00, 0x00, 0x80, 0xb9, 0x2a, 0x00,
- 0x53, 0x07, 0x00, 0x00, 0x4c, 0x1d, 0x00, 0x00,
- 0x88, 0x13, 0x00, 0x00, 0xb0, 0xb5, 0x05, 0xf0,
- 0xfd, 0xfa, 0x00, 0x28, 0x13, 0xd1, 0xfe, 0xf7,
- 0xb5, 0xfe, 0x0a, 0x4c, 0x0a, 0x4d, 0x00, 0x28,
- 0x60, 0x63, 0x00, 0xd0, 0x28, 0x60, 0x0e, 0xf0,
- 0x3c, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x55, 0xf9,
- 0x21, 0x6a, 0x00, 0x29, 0x04, 0xd1, 0xe1, 0x69,
- 0x40, 0x1a, 0x29, 0x68, 0x88, 0x42, 0x01, 0xd9,
- 0x01, 0x20, 0xb0, 0xbd, 0x00, 0x20, 0xb0, 0xbd,
- 0x00, 0x00, 0x60, 0x6c, 0x01, 0x00, 0xb0, 0x57,
- 0x01, 0x00, 0x80, 0xb5, 0xff, 0xf7, 0xdd, 0xff,
- 0x00, 0x28, 0x05, 0xd0, 0x05, 0xf0, 0xb7, 0xfa,
- 0x00, 0x28, 0x01, 0xd1, 0x01, 0x20, 0x80, 0xbd,
- 0x00, 0x20, 0x3c, 0x00, 0x3c, 0x4b, 0x00, 0x00,
- 0x80, 0xbd, 0x00, 0x00, 0x10, 0xb5, 0x0a, 0x4c,
- 0x00, 0x21, 0xa2, 0x68, 0x00, 0x2a, 0x03, 0xd0,
- 0xa1, 0x60, 0x02, 0xf0, 0x83, 0xf9, 0x10, 0xbd,
- 0x61, 0x60, 0x01, 0x1c, 0x00, 0x22, 0x04, 0x20,
- 0x0e, 0xf0, 0x36, 0xfd, 0x03, 0x48, 0x21, 0x68,
- 0x0a, 0xf0, 0x08, 0xfc, 0x10, 0xbd, 0x00, 0x00,
- 0xbc, 0x74, 0x01, 0x00, 0xc4, 0x60, 0x01, 0x00,
- 0x70, 0xb5, 0x05, 0x1c, 0x3c, 0x00, 0x78, 0x4b,
- 0x00, 0x00, 0x01, 0xd1, 0xfc, 0xf7, 0xc1, 0xfb,
- 0x20, 0x4c, 0xe0, 0x6a, 0x00, 0x28, 0x15, 0xd0,
- 0x1f, 0x4b, 0xa0, 0x69, 0x58, 0x43, 0xc6, 0x0b,
- 0x20, 0x88, 0x46, 0x43, 0xf0, 0x00, 0x80, 0x19,
- 0xe6, 0x60, 0xfb, 0xf7, 0x1c, 0xfe, 0xa8, 0x42,
- 0x05, 0xd8, 0x30, 0x1c, 0xfb, 0xf7, 0x17, 0xfe,
- 0x80, 0x19, 0xa8, 0x42, 0x02, 0xd2, 0x00, 0x20,
- 0xe0, 0x60, 0x20, 0xe0, 0xe5, 0x60, 0x3c, 0x00,
- 0xb4, 0x4b, 0x00, 0x00, 0x00, 0x2d, 0x1d, 0xd0,
- 0x26, 0x88, 0xa0, 0x69, 0x70, 0x43, 0xc1, 0x03,
- 0x28, 0x1c, 0xfb, 0xf7, 0xa5, 0xfd, 0x60, 0x61,
- 0x0d, 0x48, 0x32, 0x1c, 0x29, 0x1c, 0x30, 0x30,
- 0xfb, 0xf7, 0x0a, 0xfc, 0x0c, 0x4b, 0x60, 0x69,
- 0x58, 0x43, 0xc0, 0x0b, 0x60, 0x62, 0x01, 0xf0,
- 0xb7, 0xfd, 0xa0, 0x62, 0xe0, 0x68, 0x00, 0x28,
- 0x04, 0xd0, 0x20, 0x69, 0xa1, 0x68, 0xfb, 0xf7,
- 0x3c, 0x00, 0xf0, 0x4b, 0x00, 0x00, 0xf4, 0xfb,
- 0x70, 0xbd, 0x05, 0x48, 0xa1, 0x68, 0xfb, 0xf7,
- 0xef, 0xfb, 0x70, 0xbd, 0x00, 0x00, 0xc8, 0x74,
- 0x01, 0x00, 0x40, 0x42, 0x0f, 0x00, 0xc0, 0xc6,
- 0x2d, 0x00, 0x88, 0x13, 0x00, 0x00, 0xf1, 0xb5,
- 0x3e, 0x48, 0x00, 0xab, 0x81, 0x78, 0xc0, 0x78,
- 0x3e, 0x4f, 0x0a, 0x07, 0x04, 0x07, 0x58, 0x78,
- 0x3b, 0x49, 0x12, 0x0f, 0x08, 0x5c, 0x14, 0x39,
- 0x24, 0x0f, 0x3c, 0x00, 0x2c, 0x4c, 0x00, 0x00,
- 0x80, 0x18, 0x78, 0x60, 0x01, 0x30, 0xb8, 0x60,
- 0x18, 0x78, 0x35, 0x4d, 0x08, 0x5c, 0x00, 0x19,
- 0xb8, 0x61, 0x01, 0x30, 0xf8, 0x61, 0xeb, 0x78,
- 0x33, 0x48, 0x1e, 0x09, 0x33, 0x4b, 0x18, 0x38,
- 0x81, 0x78, 0x5e, 0x43, 0xab, 0x78, 0x1d, 0x09,
- 0xc8, 0x23, 0x6b, 0x43, 0x00, 0x29, 0x08, 0xd1,
- 0x2b, 0x4d, 0x2d, 0x78, 0x3d, 0x60, 0xc5, 0x60,
- 0x7d, 0x25, 0xed, 0x00, 0x3c, 0x00, 0x68, 0x4c,
- 0x00, 0x00, 0x5d, 0x1b, 0x2c, 0x4b, 0x07, 0xe0,
- 0x27, 0x4d, 0x6d, 0x78, 0x3d, 0x60, 0xc5, 0x60,
- 0x4b, 0x25, 0x2d, 0x01, 0x5d, 0x1b, 0x28, 0x4b,
- 0xf6, 0x18, 0x02, 0x20, 0x00, 0xf0, 0x57, 0xf8,
- 0x28, 0x1a, 0xf8, 0x60, 0x22, 0x48, 0x22, 0x1c,
- 0x18, 0x38, 0x81, 0x78, 0x03, 0x20, 0x00, 0xf0,
- 0x4e, 0xf8, 0x30, 0x1a, 0x38, 0x62, 0x39, 0x68,
- 0x00, 0xab, 0x79, 0x61, 0x5a, 0x78, 0x3c, 0x00,
- 0xa4, 0x4c, 0x00, 0x00, 0x56, 0x23, 0xf9, 0x68,
- 0x5a, 0x43, 0x89, 0x1a, 0xf9, 0x60, 0xc8, 0x31,
- 0x39, 0x61, 0x18, 0x49, 0x18, 0x39, 0x89, 0x78,
- 0x00, 0x29, 0xb9, 0x69, 0x11, 0xd1, 0x00, 0xab,
- 0x1a, 0x78, 0x13, 0x4b, 0x14, 0x3b, 0x9a, 0x5c,
- 0x53, 0x1c, 0x59, 0x43, 0x0a, 0x23, 0x59, 0x43,
- 0x14, 0x4b, 0x59, 0x1a, 0x51, 0x43, 0x0a, 0x23,
- 0x59, 0x43, 0x40, 0x1a, 0x38, 0x62, 0x12, 0x49,
- 0x3c, 0x00, 0xe0, 0x4c, 0x00, 0x00, 0x10, 0xe0,
- 0x00, 0xab, 0x1a, 0x78, 0x0a, 0x4b, 0x14, 0x3b,
- 0x9a, 0x5c, 0x53, 0x1c, 0x59, 0x43, 0x0a, 0x23,
- 0x59, 0x43, 0x0d, 0x4b, 0x59, 0x1a, 0x51, 0x43,
- 0x0a, 0x23, 0x59, 0x43, 0x40, 0x1a, 0x0b, 0x49,
- 0x38, 0x62, 0x40, 0x18, 0x78, 0x62, 0xf8, 0xbd,
- 0x00, 0x00, 0x0c, 0x5a, 0x01, 0x00, 0x66, 0x5a,
- 0x01, 0x00, 0x94, 0x78, 0x01, 0x00, 0xa0, 0x86,
- 0x01, 0x00, 0x3c, 0x00, 0x1c, 0x4d, 0x00, 0x00,
- 0x00, 0x48, 0x71, 0x00, 0xb0, 0xd6, 0x8c, 0x00,
- 0x88, 0x10, 0x00, 0x00, 0x80, 0x38, 0x01, 0x00,
- 0x58, 0x12, 0x00, 0x00, 0x70, 0x11, 0x01, 0x00,
- 0x30, 0xb5, 0x19, 0x4b, 0x02, 0x28, 0xdd, 0x68,
- 0x06, 0xd1, 0x00, 0x29, 0x04, 0xd1, 0x2b, 0x1c,
- 0x0c, 0x33, 0x9c, 0x1a, 0x64, 0x23, 0x5c, 0x43,
- 0x02, 0x28, 0x09, 0xd1, 0x01, 0x29, 0x07, 0xd1,
- 0x64, 0x23, 0x7d, 0x24, 0x3c, 0x00, 0x58, 0x4d,
- 0x00, 0x00, 0xe4, 0x00, 0x6b, 0x43, 0x1c, 0x19,
- 0xa0, 0x23, 0x53, 0x43, 0xe4, 0x1a, 0x0a, 0x23,
- 0x5a, 0x43, 0x03, 0x28, 0x09, 0xd1, 0x00, 0x29,
- 0x07, 0xd1, 0x13, 0x23, 0xff, 0x24, 0xe4, 0x00,
- 0x6b, 0x43, 0x1b, 0x19, 0x9b, 0x1a, 0x1c, 0x1c,
- 0x5c, 0x43, 0x03, 0x28, 0x08, 0xd1, 0x01, 0x29,
- 0x06, 0xd1, 0x0e, 0x20, 0x05, 0x49, 0x68, 0x43,
- 0x40, 0x18, 0x80, 0x1a, 0x04, 0x1c, 0x3c, 0x00,
- 0x94, 0x4d, 0x00, 0x00, 0x44, 0x43, 0x20, 0x1c,
- 0x30, 0xbd, 0x00, 0x00, 0x7c, 0x78, 0x01, 0x00,
- 0x84, 0x08, 0x00, 0x00, 0x10, 0xb5, 0x07, 0x4c,
- 0x0c, 0x23, 0x60, 0x78, 0x05, 0x49, 0x14, 0x31,
- 0x58, 0x43, 0x40, 0x18, 0x40, 0x68, 0x01, 0xf0,
- 0x4f, 0xfc, 0x00, 0x21, 0x60, 0x78, 0x02, 0xf0,
- 0x4b, 0xff, 0x10, 0xbd, 0x4c, 0x7b, 0x01, 0x00,
- 0x0c, 0x48, 0xf8, 0xb5, 0x40, 0x78, 0x0c, 0x23,
- 0x3c, 0x00, 0xd0, 0x4d, 0x00, 0x00, 0x0a, 0x49,
- 0x58, 0x43, 0x14, 0x31, 0x44, 0x18, 0x26, 0x1d,
- 0x60, 0xce, 0x30, 0x1c, 0x0b, 0xf0, 0x0b, 0xfd,
- 0x00, 0x27, 0x41, 0x20, 0x47, 0x55, 0x05, 0x48,
- 0x29, 0x1c, 0x02, 0xf0, 0xf0, 0xfe, 0x28, 0x1c,
- 0x01, 0xf0, 0x31, 0xfc, 0x04, 0x34, 0xc0, 0xc4,
- 0xf8, 0xbd, 0x4c, 0x7b, 0x01, 0x00, 0x55, 0x80,
- 0x00, 0x00, 0xb0, 0xb5, 0x0a, 0x4d, 0x4c, 0x21,
- 0x28, 0x78, 0x3c, 0x00, 0x0c, 0x4e, 0x00, 0x00,
- 0x09, 0x4a, 0x41, 0x43, 0x8c, 0x18, 0x22, 0x68,
- 0x01, 0x21, 0xfb, 0xf7, 0xe1, 0xfa, 0x28, 0x78,
- 0x01, 0xf0, 0xfa, 0xfb, 0x3c, 0x23, 0xe0, 0x56,
- 0x41, 0x1e, 0x01, 0x20, 0x07, 0xf0, 0x34, 0xfb,
- 0xb0, 0xbd, 0x00, 0x00, 0x3c, 0x7c, 0x01, 0x00,
- 0x58, 0xe3, 0x01, 0x00, 0x0c, 0x23, 0x07, 0x49,
- 0x58, 0x43, 0x40, 0x18, 0x80, 0xb5, 0x40, 0x68,
- 0x41, 0x6b, 0x00, 0x29, 0x3c, 0x00, 0x48, 0x4e,
- 0x00, 0x00, 0x02, 0xd0, 0x0b, 0xf0, 0xfb, 0xfd,
- 0x80, 0xbd, 0x0b, 0xf0, 0x2c, 0xfd, 0x80, 0xbd,
- 0x00, 0x00, 0x60, 0x7b, 0x01, 0x00, 0x38, 0x22,
- 0x0a, 0x4b, 0x42, 0x43, 0xd2, 0x18, 0x00, 0x29,
- 0x80, 0xb5, 0x04, 0xd0, 0x02, 0x29, 0x07, 0xd1,
- 0x0b, 0xf0, 0xfb, 0xfc, 0x80, 0xbd, 0xd2, 0x6a,
- 0x01, 0x21, 0xfb, 0xf7, 0xb0, 0xfa, 0x80, 0xbd,
- 0x03, 0x21, 0x86, 0x20, 0xfc, 0xf7, 0x3c, 0x00,
- 0x84, 0x4e, 0x00, 0x00, 0x0f, 0xfa, 0x80, 0xbd,
- 0xd4, 0xe4, 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x06,
- 0x24, 0x0e, 0x0c, 0x20, 0x0e, 0x49, 0x60, 0x43,
- 0x40, 0x18, 0x45, 0x68, 0xa8, 0x6b, 0x00, 0x28,
- 0x03, 0xd1, 0x00, 0x21, 0x20, 0x1c, 0xfd, 0xf7,
- 0xe1, 0xfa, 0x20, 0x1c, 0x07, 0xf0, 0xf2, 0xff,
- 0x00, 0x28, 0x08, 0xd0, 0x28, 0x1c, 0x60, 0x30,
- 0xc1, 0x79, 0x01, 0x29, 0x03, 0xd9, 0xff, 0x31,
- 0x3c, 0x00, 0xc0, 0x4e, 0x00, 0x00, 0xc1, 0x71,
- 0xff, 0x31, 0x81, 0x71, 0x01, 0x21, 0x20, 0x1c,
- 0x02, 0xf0, 0xc5, 0xfe, 0xb0, 0xbd, 0x60, 0x7b,
- 0x01, 0x00, 0x70, 0xb5, 0x00, 0x06, 0x00, 0x0e,
- 0x05, 0x1c, 0x4c, 0x23, 0x0a, 0x49, 0x58, 0x43,
- 0x44, 0x18, 0x3c, 0x20, 0x00, 0x5d, 0xff, 0x30,
- 0x06, 0x06, 0x36, 0x16, 0x28, 0x1c, 0x01, 0xf0,
- 0x90, 0xfb, 0x00, 0x21, 0x28, 0x1c, 0x22, 0x68,
- 0xfb, 0xf7, 0x3c, 0x00, 0xfc, 0x4e, 0x00, 0x00,
- 0x6f, 0xfa, 0x31, 0x1c, 0x00, 0x20, 0x07, 0xf0,
- 0xc7, 0xfa, 0x70, 0xbd, 0x58, 0xe3, 0x01, 0x00,
- 0x0c, 0x22, 0x0f, 0x4b, 0x42, 0x43, 0xd2, 0x18,
- 0x10, 0xb5, 0x54, 0x68, 0x00, 0x29, 0x0d, 0xd0,
- 0x02, 0x29, 0x0f, 0xd1, 0x2c, 0x20, 0x00, 0x5d,
- 0x00, 0x28, 0x03, 0xd0, 0x07, 0x21, 0x0c, 0x20,
- 0xfc, 0xf7, 0xba, 0xf9, 0x20, 0x1c, 0x0b, 0xf0,
- 0xbb, 0xfc, 0x10, 0xbd, 0x3c, 0x00, 0x38, 0x4f,
- 0x00, 0x00, 0x00, 0x21, 0x02, 0xf0, 0x8d, 0xfe,
- 0x10, 0xbd, 0x04, 0x21, 0x0c, 0x20, 0xfc, 0xf7,
- 0xae, 0xf9, 0x10, 0xbd, 0x00, 0x00, 0x60, 0x7b,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x29, 0x07, 0xd0,
- 0x0c, 0x23, 0x05, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x40, 0x68, 0x0b, 0xf0, 0x4a, 0xfc, 0x80, 0xbd,
- 0x01, 0x21, 0x02, 0xf0, 0x76, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0x60, 0x7b, 0x01, 0x00, 0x3c, 0x00,
- 0x74, 0x4f, 0x00, 0x00, 0x10, 0xb5, 0x04, 0x1c,
- 0x00, 0x29, 0x05, 0xd0, 0x02, 0x29, 0x1a, 0xd1,
- 0x20, 0x1c, 0x0b, 0xf0, 0xeb, 0xfc, 0x10, 0xbd,
- 0x0d, 0x48, 0x04, 0x70, 0x0d, 0x48, 0x07, 0xf0,
- 0x07, 0xf9, 0x0d, 0x48, 0x01, 0x88, 0x01, 0x22,
- 0x12, 0x03, 0x11, 0x43, 0x01, 0x80, 0x4c, 0x20,
- 0x0a, 0x49, 0x60, 0x43, 0x40, 0x18, 0x40, 0x30,
- 0x00, 0x78, 0xfd, 0xf7, 0x5d, 0xfd, 0x20, 0x1c,
- 0x3c, 0x00, 0xb0, 0x4f, 0x00, 0x00, 0x0a, 0xf0,
- 0xd4, 0xf8, 0x10, 0xbd, 0x03, 0x21, 0x86, 0x20,
- 0xfc, 0xf7, 0x73, 0xf9, 0x10, 0xbd, 0x3c, 0x7c,
- 0x01, 0x00, 0x05, 0x4e, 0x00, 0x00, 0x32, 0x80,
- 0x07, 0x00, 0x58, 0xe3, 0x01, 0x00, 0xff, 0xb5,
- 0x05, 0x1c, 0x01, 0x20, 0x83, 0xb0, 0x01, 0x90,
- 0x0c, 0x20, 0x5d, 0x4a, 0x68, 0x43, 0x86, 0x18,
- 0x01, 0x27, 0x00, 0x29, 0x74, 0x68, 0x0e, 0xd0,
- 0x02, 0x29, 0x3c, 0x00, 0xec, 0x4f, 0x00, 0x00,
- 0x6a, 0xd1, 0x2c, 0x20, 0x00, 0x5d, 0x00, 0x28,
- 0x03, 0xd0, 0x06, 0x21, 0x0c, 0x20, 0xfc, 0xf7,
- 0x53, 0xf9, 0x20, 0x1c, 0x0b, 0xf0, 0x20, 0xfd,
- 0x07, 0xb0, 0xf0, 0xbd, 0x52, 0x48, 0x14, 0x38,
- 0x45, 0x70, 0xa0, 0x6b, 0x00, 0x28, 0x07, 0xd0,
- 0x50, 0x48, 0x07, 0xf0, 0x7f, 0xf8, 0x01, 0x21,
- 0x28, 0x1c, 0xfd, 0xf7, 0x25, 0xfa, 0x1c, 0xe0,
- 0x4d, 0x48, 0x07, 0xf0, 0x3c, 0x00, 0x28, 0x50,
- 0x00, 0x00, 0x77, 0xf8, 0x4a, 0x48, 0x14, 0x38,
- 0x05, 0x70, 0x4b, 0x48, 0x01, 0x88, 0x01, 0x22,
- 0x52, 0x03, 0x11, 0x43, 0x01, 0x80, 0x40, 0x20,
- 0x00, 0x5d, 0xfd, 0xf7, 0x12, 0xfd, 0xb0, 0x68,
- 0x00, 0x28, 0x09, 0xd1, 0x28, 0x1c, 0x07, 0xf0,
- 0x64, 0xff, 0xb0, 0x60, 0x00, 0x28, 0x03, 0xd1,
- 0x09, 0x21, 0x0c, 0x20, 0xfc, 0xf7, 0x23, 0xf9,
- 0x05, 0x98, 0x00, 0x28, 0x03, 0xd0, 0x3c, 0x00,
- 0x64, 0x50, 0x00, 0x00, 0xe0, 0x6c, 0x01, 0x30,
- 0xe0, 0x64, 0x0e, 0xe0, 0x67, 0x20, 0x00, 0x5d,
- 0x00, 0x28, 0x07, 0xd1, 0xe0, 0x6c, 0x00, 0x28,
- 0x04, 0xd1, 0x39, 0x48, 0x02, 0x38, 0xc0, 0x6a,
- 0xa0, 0x64, 0x09, 0xe0, 0x20, 0x6d, 0x00, 0x28,
- 0x01, 0xd0, 0x00, 0x27, 0x04, 0xe0, 0x28, 0x1c,
- 0x07, 0xf0, 0x00, 0xff, 0x00, 0x28, 0xe5, 0xd1,
- 0x05, 0x98, 0x20, 0x65, 0x20, 0x1c, 0x20, 0x30,
- 0x3c, 0x00, 0xa0, 0x50, 0x00, 0x00, 0x62, 0x6a,
- 0x02, 0x90, 0x81, 0x7b, 0x28, 0x1c, 0x07, 0xf0,
- 0x78, 0xff, 0x00, 0x2f, 0x19, 0xd0, 0x20, 0x1c,
- 0x60, 0x30, 0xc1, 0x79, 0x4a, 0x1c, 0xc2, 0x71,
- 0x80, 0x79, 0x81, 0x42, 0x02, 0xd2, 0x01, 0x20,
- 0x01, 0xe0, 0x40, 0xe0, 0x00, 0x20, 0x01, 0x90,
- 0x00, 0x28, 0x0a, 0xd0, 0x25, 0x48, 0x00, 0x78,
- 0x80, 0x07, 0x06, 0xd5, 0x00, 0xf0, 0x0d, 0xfb,
- 0x01, 0x1c, 0x3c, 0x00, 0xdc, 0x50, 0x00, 0x00,
- 0x20, 0x1c, 0x0b, 0xf0, 0x15, 0xfd, 0x01, 0x90,
- 0x01, 0x98, 0x00, 0x28, 0x0f, 0xd0, 0x02, 0x98,
- 0x00, 0x7b, 0x02, 0x28, 0x03, 0xd1, 0x20, 0x1c,
- 0x04, 0xf0, 0xd0, 0xfe, 0x84, 0xe7, 0x01, 0x28,
- 0x00, 0xd0, 0x7e, 0xe7, 0x21, 0x1c, 0x30, 0x1c,
- 0x04, 0xf0, 0xe2, 0xfe, 0x7c, 0xe7, 0x25, 0x1c,
- 0x60, 0x35, 0xe8, 0x79, 0xff, 0x30, 0xa8, 0x71,
- 0x68, 0x7a, 0x06, 0xf0, 0x3c, 0x00, 0x18, 0x51,
- 0x00, 0x00, 0x9d, 0xfc, 0x0d, 0xf0, 0x47, 0xfe,
- 0x07, 0x1c, 0x05, 0xf0, 0x12, 0xff, 0x3f, 0x18,
- 0x02, 0x98, 0x81, 0x7b, 0x20, 0x69, 0x04, 0x30,
- 0x00, 0xf0, 0x35, 0xfa, 0x61, 0x6a, 0x05, 0xf0,
- 0xea, 0xfe, 0x39, 0x18, 0x6b, 0x7a, 0x30, 0x88,
- 0x80, 0x31, 0x09, 0x4a, 0x0d, 0xf0, 0x91, 0xfe,
- 0x5d, 0xe7, 0x03, 0x21, 0x0c, 0x20, 0xfc, 0xf7,
- 0xaa, 0xf8, 0x58, 0xe7, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0x51, 0x00, 0x00, 0x60, 0x7b, 0x01, 0x00,
- 0xa5, 0x4d, 0x00, 0x00, 0xc9, 0x4d, 0x00, 0x00,
- 0x32, 0x80, 0x07, 0x00, 0x1d, 0x75, 0x01, 0x00,
- 0x8d, 0x4e, 0x00, 0x00, 0xff, 0xb5, 0x81, 0xb0,
- 0x1f, 0x1c, 0x05, 0x1c, 0x14, 0x1c, 0x10, 0x1c,
- 0x0a, 0x9e, 0x00, 0xf0, 0xf5, 0xfc, 0x29, 0x1c,
- 0x10, 0x31, 0x20, 0x1d, 0x06, 0x22, 0xfb, 0xf7,
- 0xb7, 0xf9, 0xa8, 0x8e, 0x20, 0x80, 0xe8, 0x8e,
- 0x3c, 0x00, 0x90, 0x51, 0x00, 0x00, 0x60, 0x80,
- 0x02, 0x99, 0x20, 0x1c, 0x00, 0xf0, 0x07, 0xf9,
- 0xff, 0x34, 0x01, 0x34, 0x66, 0x60, 0x27, 0x60,
- 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0xf8, 0xb5,
- 0x0f, 0x1c, 0x1e, 0x1c, 0x05, 0x1c, 0x14, 0x1c,
- 0x10, 0x1c, 0x00, 0xf0, 0xd8, 0xfc, 0xa8, 0x88,
- 0x39, 0x1c, 0x20, 0x80, 0x28, 0x89, 0x60, 0x80,
- 0x20, 0x1c, 0x00, 0xf0, 0xf0, 0xf8, 0xff, 0x34,
- 0x01, 0x34, 0x3c, 0x00, 0xcc, 0x51, 0x00, 0x00,
- 0x66, 0x60, 0xf8, 0xbd, 0x70, 0xb5, 0x04, 0x1c,
- 0xc0, 0x68, 0x05, 0x68, 0x20, 0x1c, 0x14, 0x30,
- 0x06, 0x1c, 0x00, 0xf0, 0x0f, 0xfb, 0x00, 0x28,
- 0x16, 0xd0, 0x01, 0x22, 0x02, 0x21, 0x20, 0x69,
- 0x05, 0xf0, 0xf8, 0xfa, 0x00, 0x28, 0x01, 0xd0,
- 0xfb, 0xf7, 0x24, 0xff, 0x00, 0x22, 0x02, 0x21,
- 0x20, 0x69, 0x05, 0xf0, 0xef, 0xfa, 0x00, 0x28,
- 0x06, 0xd0, 0xfb, 0xf7, 0x3c, 0x00, 0x08, 0x52,
- 0x00, 0x00, 0x01, 0xff, 0x00, 0x28, 0x02, 0xd0,
- 0x30, 0x1c, 0x0b, 0xf0, 0x7c, 0xfb, 0x68, 0x89,
- 0x80, 0x07, 0xc0, 0x0f, 0x03, 0xf0, 0xa7, 0xf8,
- 0x18, 0x23, 0x04, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0xc1, 0x68, 0x00, 0x29, 0x02, 0xd0, 0x20, 0x1c,
- 0xfb, 0xf7, 0xd4, 0xf8, 0x70, 0xbd, 0x94, 0x67,
- 0x01, 0x00, 0xf8, 0xb5, 0x04, 0x1c, 0x10, 0x1c,
- 0x0d, 0x1c, 0x19, 0x1c, 0xff, 0x22, 0x3c, 0x00,
- 0x44, 0x52, 0x00, 0x00, 0x00, 0x27, 0xff, 0x2d,
- 0x25, 0xd0, 0x00, 0x29, 0x05, 0xd0, 0x4b, 0x88,
- 0x00, 0x2b, 0x02, 0xd0, 0x00, 0xf0, 0x50, 0xfc,
- 0x15, 0xe0, 0x00, 0x21, 0x10, 0x4e, 0x4b, 0x00,
- 0x9e, 0x19, 0x02, 0x23, 0xf6, 0x5e, 0x86, 0x42,
- 0x01, 0xdd, 0x0a, 0x1c, 0x04, 0xe0, 0x01, 0x31,
- 0x09, 0x06, 0x09, 0x0e, 0x26, 0x29, 0xf1, 0xd3,
- 0x09, 0x4e, 0x50, 0x00, 0x80, 0x19, 0x4e, 0x23,
- 0x3c, 0x00, 0x80, 0x52, 0x00, 0x00, 0xc0, 0x5e,
- 0x27, 0x2a, 0x07, 0xd2, 0x06, 0x49, 0x20, 0x39,
- 0x49, 0x57, 0x47, 0x31, 0x40, 0x1a, 0x20, 0x60,
- 0x01, 0x27, 0x02, 0xe0, 0x7e, 0x20, 0xc0, 0x43,
- 0x20, 0x60, 0x38, 0x1c, 0xf8, 0xbd, 0xfa, 0x47,
- 0x01, 0x00, 0xb0, 0xb5, 0x0c, 0x1c, 0x7e, 0x21,
- 0x05, 0x1c, 0x00, 0x20, 0xc9, 0x43, 0x00, 0x2c,
- 0x0f, 0xd0, 0x10, 0x1c, 0x05, 0xf0, 0x6b, 0xfd,
- 0x00, 0x28, 0x3c, 0x00, 0xbc, 0x52, 0x00, 0x00,
- 0x02, 0xd0, 0x21, 0x1c, 0xc9, 0x39, 0x01, 0xe0,
- 0x21, 0x1c, 0x86, 0x39, 0x02, 0x20, 0xc0, 0x43,
- 0xfb, 0xf7, 0xb4, 0xf9, 0x01, 0x1c, 0x01, 0x20,
- 0x29, 0x60, 0xb0, 0xbd, 0x98, 0xb5, 0x14, 0x1c,
- 0x00, 0x22, 0x00, 0x92, 0x22, 0x1c, 0xfd, 0xf7,
- 0x43, 0xfe, 0x98, 0xbd, 0x05, 0x49, 0x80, 0xb5,
- 0x08, 0x60, 0x05, 0x49, 0x01, 0x20, 0xc8, 0x61,
- 0x01, 0x21, 0x00, 0x20, 0x3c, 0x00, 0xf8, 0x52,
- 0x00, 0x00, 0x03, 0xf0, 0x1c, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0x20, 0x67, 0x01, 0x00, 0xac, 0x7c,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x21, 0x00, 0x20,
- 0x03, 0xf0, 0x11, 0xfe, 0x06, 0xf0, 0x0d, 0xfb,
- 0x02, 0x49, 0x00, 0x20, 0x08, 0x60, 0x80, 0xbd,
- 0x00, 0x00, 0x20, 0x67, 0x01, 0x00, 0x03, 0x49,
- 0x01, 0x20, 0x09, 0x69, 0x00, 0x29, 0x00, 0xd1,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0x53, 0x00, 0x00, 0x10, 0x67, 0x01, 0x00,
- 0x03, 0x48, 0x00, 0x69, 0x00, 0x28, 0x01, 0xd0,
- 0x40, 0x69, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47,
- 0x10, 0x67, 0x01, 0x00, 0x70, 0xb5, 0x16, 0x1c,
- 0x0d, 0x1c, 0x04, 0x1c, 0x00, 0x28, 0x01, 0xd0,
- 0x01, 0x2c, 0x07, 0xd1, 0x00, 0xf0, 0x36, 0xfa,
- 0x00, 0x28, 0x05, 0xd0, 0x13, 0xf0, 0xca, 0xf9,
- 0x00, 0x28, 0x01, 0xd1, 0x01, 0x20, 0x70, 0xbd,
- 0x3c, 0x00, 0x70, 0x53, 0x00, 0x00, 0x01, 0x20,
- 0x00, 0x2c, 0x00, 0xd0, 0x00, 0x20, 0x0a, 0x4c,
- 0x04, 0x34, 0x61, 0xc4, 0x10, 0x3c, 0x00, 0xf0,
- 0x24, 0xfa, 0x00, 0x28, 0x02, 0xd0, 0x00, 0xf0,
- 0xc6, 0xf9, 0x01, 0xe0, 0x00, 0xf0, 0xe5, 0xf8,
- 0xc0, 0x30, 0xc3, 0x6b, 0x22, 0x1d, 0x07, 0xca,
- 0xfb, 0xf7, 0x20, 0xf8, 0x00, 0x20, 0x70, 0xbd,
- 0x00, 0x00, 0xd4, 0x67, 0x01, 0x00, 0xf8, 0xb5,
- 0x0d, 0x1c, 0x3c, 0x00, 0xac, 0x53, 0x00, 0x00,
- 0x00, 0x21, 0x04, 0x1c, 0x28, 0x1c, 0x05, 0xf0,
- 0xe3, 0xf9, 0x23, 0x1c, 0xff, 0x33, 0x21, 0x33,
- 0xff, 0x27, 0x00, 0x28, 0x05, 0xd0, 0x22, 0x22,
- 0x01, 0x1c, 0x18, 0x1c, 0xfb, 0xf7, 0x96, 0xf8,
- 0x00, 0xe0, 0x1f, 0x70, 0x03, 0x21, 0x28, 0x1c,
- 0x05, 0xf0, 0xd2, 0xf9, 0x26, 0x1c, 0xff, 0x36,
- 0x41, 0x36, 0x00, 0x28, 0x05, 0xd0, 0x03, 0x22,
- 0x01, 0x1c, 0xb0, 0x1c, 0x3c, 0x00, 0xe8, 0x53,
- 0x00, 0x00, 0xfb, 0xf7, 0x86, 0xf8, 0x00, 0xe0,
- 0xb7, 0x70, 0x01, 0x21, 0x28, 0x1c, 0x05, 0xf0,
- 0xc2, 0xf9, 0x00, 0x28, 0x07, 0xd0, 0x01, 0x1c,
- 0x20, 0x1c, 0xff, 0x30, 0x0a, 0x22, 0x46, 0x30,
- 0xfb, 0xf7, 0x77, 0xf8, 0x00, 0xe0, 0x77, 0x71,
- 0x32, 0x21, 0x28, 0x1c, 0x05, 0xf0, 0xb3, 0xf9,
- 0x00, 0x28, 0x07, 0xd0, 0x01, 0x1c, 0x20, 0x1c,
- 0xff, 0x30, 0x12, 0x22, 0x50, 0x30, 0x3c, 0x00,
- 0x24, 0x54, 0x00, 0x00, 0xfb, 0xf7, 0x68, 0xf8,
- 0x00, 0xe0, 0xf7, 0x73, 0x06, 0x21, 0x28, 0x1c,
- 0x05, 0xf0, 0xa4, 0xf9, 0x00, 0x28, 0x07, 0xd0,
- 0x01, 0x1c, 0x20, 0x1c, 0xff, 0x30, 0x04, 0x22,
- 0x63, 0x30, 0xfb, 0xf7, 0x59, 0xf8, 0xf8, 0xbd,
- 0xff, 0x34, 0x61, 0x34, 0xa7, 0x70, 0xfa, 0xe7,
- 0x08, 0x49, 0x80, 0xb5, 0x09, 0x68, 0x00, 0x28,
- 0x01, 0xd1, 0x07, 0x48, 0x01, 0x68, 0x08, 0x1c,
- 0x3c, 0x00, 0x60, 0x54, 0x00, 0x00, 0x05, 0xd1,
- 0x03, 0x21, 0x90, 0x20, 0xfb, 0xf7, 0x1d, 0xff,
- 0x00, 0x20, 0x80, 0xbd, 0x01, 0xf0, 0xd7, 0xfb,
- 0x80, 0xbd, 0x1c, 0x67, 0x01, 0x00, 0x20, 0x67,
- 0x01, 0x00, 0x80, 0xb5, 0xff, 0xf7, 0xe7, 0xff,
- 0x80, 0xbd, 0xf0, 0xb5, 0x00, 0x24, 0x84, 0x46,
- 0x00, 0x20, 0x0b, 0xe0, 0x87, 0x40, 0x17, 0x40,
- 0x07, 0xd0, 0x14, 0x23, 0x0b, 0x4d, 0x43, 0x43,
- 0x5b, 0x19, 0x3c, 0x00, 0x9c, 0x54, 0x00, 0x00,
- 0x1b, 0x7c, 0x65, 0x46, 0x2b, 0x55, 0x01, 0x34,
- 0x01, 0x30, 0x01, 0x27, 0x3b, 0x1c, 0x0e, 0x28,
- 0x00, 0xd3, 0x00, 0x23, 0x0e, 0x88, 0x3d, 0x1c,
- 0xa6, 0x42, 0x00, 0xdc, 0x00, 0x25, 0x2b, 0x40,
- 0xe7, 0xd1, 0x0c, 0x80, 0xf0, 0xbd, 0x00, 0x00,
- 0x74, 0x40, 0x01, 0x00, 0x78, 0xb5, 0x04, 0x1c,
- 0x01, 0x20, 0x20, 0x70, 0x08, 0x20, 0x00, 0xab,
- 0x0d, 0x1c, 0x18, 0x80, 0x3c, 0x00, 0xd8, 0x54,
- 0x00, 0x00, 0x16, 0x1c, 0xa0, 0x1c, 0x69, 0x46,
- 0xff, 0xf7, 0xd1, 0xff, 0x00, 0xab, 0x00, 0x22,
- 0xd2, 0x43, 0x19, 0x88, 0x82, 0x40, 0x61, 0x70,
- 0x32, 0x20, 0x28, 0x70, 0x10, 0x20, 0x18, 0x80,
- 0x32, 0x40, 0xa8, 0x1c, 0x69, 0x46, 0xff, 0xf7,
- 0xc2, 0xff, 0x00, 0xab, 0x18, 0x88, 0x68, 0x70,
- 0x78, 0xbd, 0x80, 0xb5, 0x02, 0xf0, 0x35, 0xff,
- 0x00, 0x21, 0x00, 0x28, 0x00, 0xd0, 0x3c, 0x00,
- 0x14, 0x55, 0x00, 0x00, 0x01, 0x69, 0x08, 0x1c,
- 0x80, 0xbd, 0x00, 0x00, 0x05, 0x49, 0x00, 0x28,
- 0x01, 0xd0, 0xc8, 0x68, 0x00, 0xe0, 0x08, 0x69,
- 0x00, 0x28, 0x01, 0xd0, 0x04, 0x30, 0x70, 0x47,
- 0x00, 0x20, 0x70, 0x47, 0x10, 0x67, 0x01, 0x00,
- 0x03, 0x48, 0x00, 0x69, 0x00, 0x28, 0x01, 0xd0,
- 0x04, 0x30, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47,
- 0x10, 0x67, 0x01, 0x00, 0x02, 0x48, 0x00, 0x69,
- 0x3c, 0x00, 0x50, 0x55, 0x00, 0x00, 0x00, 0x28,
- 0xff, 0xd1, 0x70, 0x47, 0x00, 0x00, 0x10, 0x67,
- 0x01, 0x00, 0x10, 0xb5, 0x05, 0x4c, 0x20, 0x69,
- 0x00, 0x28, 0x03, 0xd1, 0x04, 0x21, 0x90, 0x20,
- 0xfb, 0xf7, 0x9b, 0xfe, 0x20, 0x69, 0x10, 0xbd,
- 0x00, 0x00, 0x10, 0x67, 0x01, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x00, 0xf0, 0x40, 0xf9, 0x00, 0x28,
- 0x01, 0xd0, 0x00, 0x20, 0x10, 0xbd, 0x20, 0x1c,
- 0x00, 0xf0, 0x3c, 0x00, 0x8c, 0x55, 0x00, 0x00,
- 0x57, 0xf9, 0x00, 0x28, 0x01, 0xd0, 0x01, 0x20,
- 0x10, 0xbd, 0x02, 0x20, 0x10, 0xbd, 0x00, 0x00,
- 0x70, 0xb5, 0x0f, 0x4e, 0x04, 0x1c, 0x30, 0x68,
- 0x0d, 0x1c, 0x00, 0x28, 0x07, 0xd0, 0x21, 0x1c,
- 0x04, 0x30, 0x05, 0xf0, 0xc1, 0xfb, 0x00, 0x28,
- 0x01, 0xd0, 0x30, 0x68, 0x0b, 0xe0, 0x09, 0x4a,
- 0x10, 0x68, 0x00, 0x28, 0x09, 0xd0, 0x21, 0x1c,
- 0x14, 0x1c, 0x04, 0x30, 0x3c, 0x00, 0xc8, 0x55,
- 0x00, 0x00, 0x05, 0xf0, 0xb4, 0xfb, 0x00, 0x28,
- 0x02, 0xd0, 0x20, 0x68, 0x9c, 0x30, 0x00, 0xe0,
- 0x03, 0x48, 0x40, 0x5d, 0x70, 0xbd, 0x20, 0x67,
- 0x01, 0x00, 0x1c, 0x67, 0x01, 0x00, 0xcc, 0x47,
- 0x01, 0x00, 0x04, 0x49, 0x00, 0x20, 0x09, 0x69,
- 0x00, 0x29, 0x02, 0xd0, 0xff, 0x31, 0x01, 0x31,
- 0x88, 0x69, 0x70, 0x47, 0x00, 0x00, 0x10, 0x67,
- 0x01, 0x00, 0x01, 0x48, 0x00, 0x7a, 0x3c, 0x00,
- 0x04, 0x56, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0xac, 0x7c, 0x01, 0x00, 0xfe, 0xb5, 0x06, 0x1c,
- 0x00, 0x20, 0x1f, 0x1c, 0x14, 0x1c, 0x00, 0x29,
- 0x02, 0x90, 0x19, 0xd0, 0x01, 0x29, 0x26, 0xd0,
- 0x02, 0x29, 0x47, 0xd1, 0x26, 0x48, 0x00, 0x78,
- 0x05, 0xf0, 0xa0, 0xfb, 0xa0, 0x72, 0x0a, 0xf0,
- 0x4f, 0xfc, 0x0e, 0x28, 0x09, 0xd1, 0xa0, 0x7a,
- 0x05, 0xf0, 0xaa, 0xfb, 0x00, 0x28, 0x04, 0xd0,
- 0x3c, 0x00, 0x40, 0x56, 0x00, 0x00, 0x20, 0x48,
- 0x00, 0x78, 0x05, 0xf0, 0x92, 0xfb, 0xa0, 0x72,
- 0x00, 0x20, 0x20, 0x72, 0x2f, 0xe0, 0x1d, 0x4d,
- 0x28, 0x68, 0x00, 0x28, 0x01, 0xd1, 0xfb, 0xf7,
- 0x52, 0xfe, 0x00, 0x97, 0x2a, 0x68, 0x23, 0x1c,
- 0x18, 0x32, 0x11, 0x1c, 0x30, 0x1c, 0xfc, 0xf7,
- 0xde, 0xfb, 0x26, 0xe0, 0x30, 0x1c, 0x0c, 0xf0,
- 0xca, 0xfb, 0x05, 0x1c, 0x02, 0xd0, 0xa8, 0x68,
- 0x00, 0x28, 0x3c, 0x00, 0x7c, 0x56, 0x00, 0x00,
- 0x08, 0xd1, 0x13, 0x48, 0x00, 0x68, 0x00, 0x28,
- 0x01, 0xd1, 0xfb, 0xf7, 0x3b, 0xfe, 0x10, 0x48,
- 0x00, 0x68, 0x18, 0x30, 0x02, 0x1c, 0x0e, 0x48,
- 0x00, 0x97, 0x01, 0x68, 0x23, 0x1c, 0x18, 0x31,
- 0x30, 0x1c, 0xfc, 0xf7, 0xc3, 0xfb, 0x00, 0x2d,
- 0x0a, 0xd0, 0x40, 0x35, 0x28, 0x88, 0x80, 0x06,
- 0x06, 0xd4, 0x00, 0x20, 0x20, 0x60, 0x03, 0xe0,
- 0x01, 0x21, 0x90, 0x20, 0x3c, 0x00, 0xb8, 0x56,
- 0x00, 0x00, 0xfb, 0xf7, 0xf4, 0xfd, 0x02, 0x98,
- 0xfe, 0xbd, 0xb0, 0x69, 0x01, 0x00, 0x90, 0x57,
- 0x01, 0x00, 0x20, 0x67, 0x01, 0x00, 0x1c, 0x67,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x20, 0x02, 0xf0,
- 0x4a, 0xfe, 0x18, 0x23, 0x05, 0x4a, 0x58, 0x43,
- 0x80, 0x18, 0x40, 0x69, 0x01, 0x21, 0x00, 0x28,
- 0x00, 0xd0, 0x41, 0x78, 0x08, 0x1c, 0x80, 0xbd,
- 0x00, 0x00, 0x94, 0x67, 0x01, 0x00, 0x3c, 0x00,
- 0xf4, 0x56, 0x00, 0x00, 0x02, 0x49, 0x08, 0x69,
- 0x00, 0x28, 0x00, 0xd1, 0xc8, 0x68, 0x70, 0x47,
- 0x10, 0x67, 0x01, 0x00, 0x03, 0x48, 0xc0, 0x68,
- 0x00, 0x28, 0x01, 0xd0, 0x04, 0x30, 0x70, 0x47,
- 0x00, 0x20, 0x70, 0x47, 0x10, 0x67, 0x01, 0x00,
- 0x10, 0xb5, 0x05, 0x4c, 0xe0, 0x68, 0x00, 0x28,
- 0x03, 0xd1, 0x05, 0x21, 0x90, 0x20, 0xfb, 0xf7,
- 0xbd, 0xfd, 0xe0, 0x68, 0x10, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0x57, 0x00, 0x00, 0x10, 0x67,
- 0x01, 0x00, 0xf8, 0xb5, 0x0d, 0x1c, 0x00, 0x2a,
- 0x03, 0xd0, 0x11, 0x49, 0x12, 0x4f, 0x0e, 0x78,
- 0x01, 0xe0, 0x11, 0x4f, 0x0c, 0x26, 0x08, 0x2e,
- 0x01, 0xd2, 0x34, 0x1c, 0x00, 0xe0, 0x08, 0x24,
- 0x01, 0x21, 0x01, 0x70, 0x44, 0x70, 0x39, 0x1c,
- 0x22, 0x1c, 0x02, 0x30, 0xfa, 0xf7, 0xcb, 0xfe,
- 0x32, 0x1b, 0x00, 0x2a, 0x07, 0xdd, 0x32, 0x20,
- 0x28, 0x70, 0x3c, 0x00, 0x6c, 0x57, 0x00, 0x00,
- 0x39, 0x19, 0xa8, 0x1c, 0x6a, 0x70, 0xfa, 0xf7,
- 0xc1, 0xfe, 0xf8, 0xbd, 0xff, 0x20, 0x28, 0x70,
- 0x00, 0x20, 0x68, 0x70, 0xf9, 0xe7, 0x00, 0x00,
- 0xa4, 0x69, 0x01, 0x00, 0xb0, 0x69, 0x01, 0x00,
- 0x90, 0x57, 0x01, 0x00, 0x01, 0x49, 0x48, 0x62,
- 0x70, 0x47, 0x00, 0x00, 0x94, 0x67, 0x01, 0x00,
- 0x03, 0x49, 0x80, 0xb5, 0x08, 0x60, 0x01, 0x21,
- 0x01, 0x20, 0x03, 0xf0, 0x3c, 0x00, 0xa8, 0x57,
- 0x00, 0x00, 0xc5, 0xfb, 0x80, 0xbd, 0x1c, 0x67,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x21, 0x01, 0x20,
- 0x03, 0xf0, 0xbd, 0xfb, 0x06, 0xf0, 0xb9, 0xf8,
- 0x02, 0x49, 0x00, 0x20, 0x08, 0x60, 0x80, 0xbd,
- 0x00, 0x00, 0x1c, 0x67, 0x01, 0x00, 0x03, 0x49,
- 0x01, 0x20, 0xc9, 0x68, 0x00, 0x29, 0x00, 0xd1,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x10, 0x67,
- 0x01, 0x00, 0x03, 0x48, 0xc0, 0x68, 0x3c, 0x00,
- 0xe4, 0x57, 0x00, 0x00, 0x00, 0x28, 0x01, 0xd0,
- 0x40, 0x69, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47,
- 0x10, 0x67, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x21,
- 0x01, 0x20, 0x03, 0xf0, 0x9b, 0xfb, 0x80, 0xbd,
- 0x05, 0x4a, 0x80, 0xb5, 0x12, 0x69, 0x00, 0x21,
- 0x00, 0x2a, 0x03, 0xd0, 0x11, 0x1d, 0x05, 0xf0,
- 0x91, 0xfa, 0x01, 0x1c, 0x08, 0x1c, 0x80, 0xbd,
- 0x10, 0x67, 0x01, 0x00, 0x06, 0x4a, 0x80, 0xb5,
- 0x3c, 0x00, 0x20, 0x58, 0x00, 0x00, 0x12, 0x69,
- 0x00, 0x21, 0x00, 0x2a, 0x05, 0xd0, 0x11, 0x1c,
- 0xff, 0x31, 0x21, 0x31, 0x05, 0xf0, 0x8b, 0xfa,
- 0x01, 0x1c, 0x08, 0x1c, 0x80, 0xbd, 0x10, 0x67,
- 0x01, 0x00, 0x05, 0x4a, 0x80, 0xb5, 0xd2, 0x68,
- 0x00, 0x21, 0x00, 0x2a, 0x03, 0xd0, 0x11, 0x1d,
- 0x05, 0xf0, 0x73, 0xfa, 0x01, 0x1c, 0x08, 0x1c,
- 0x80, 0xbd, 0x10, 0x67, 0x01, 0x00, 0x06, 0x4a,
- 0x80, 0xb5, 0x3c, 0x00, 0x5c, 0x58, 0x00, 0x00,
- 0xd2, 0x68, 0x00, 0x21, 0x00, 0x2a, 0x05, 0xd0,
- 0x11, 0x1c, 0xff, 0x31, 0x21, 0x31, 0x05, 0xf0,
- 0x6d, 0xfa, 0x01, 0x1c, 0x08, 0x1c, 0x80, 0xbd,
- 0x10, 0x67, 0x01, 0x00, 0xff, 0xb5, 0x0d, 0x1c,
- 0x1f, 0x1c, 0x87, 0xb0, 0x10, 0x9e, 0x00, 0x24,
- 0x02, 0xf0, 0x72, 0xfd, 0x18, 0x23, 0x13, 0x49,
- 0x58, 0x43, 0x08, 0x58, 0x00, 0x28, 0x19, 0xd0,
- 0x04, 0x1c, 0x33, 0x1c, 0x3c, 0x00, 0x98, 0x58,
- 0x00, 0x00, 0x3a, 0x1c, 0x28, 0x1c, 0x09, 0x99,
- 0xfa, 0xf7, 0x9f, 0xfd, 0x04, 0x1c, 0x14, 0xd0,
- 0x18, 0x20, 0x00, 0xab, 0x18, 0x80, 0xaa, 0x68,
- 0x01, 0xa8, 0x69, 0x46, 0xff, 0xf7, 0xe7, 0xfd,
- 0x6a, 0x46, 0x01, 0xa9, 0x00, 0x20, 0x07, 0xf0,
- 0x44, 0xfe, 0x00, 0x28, 0x05, 0xd1, 0x0a, 0x21,
- 0x00, 0xe0, 0x0f, 0x21, 0x90, 0x20, 0xfb, 0xf7,
- 0xea, 0xfc, 0x20, 0x1c, 0x0b, 0xb0, 0x3c, 0x00,
- 0xd4, 0x58, 0x00, 0x00, 0xf0, 0xbd, 0x00, 0x00,
- 0x94, 0x67, 0x01, 0x00, 0x10, 0xb5, 0x00, 0x24,
- 0x02, 0xf0, 0x44, 0xfd, 0x18, 0x23, 0x05, 0x49,
- 0x58, 0x43, 0x40, 0x18, 0x80, 0x68, 0x00, 0x28,
- 0x02, 0xd0, 0xfa, 0xf7, 0x71, 0xfd, 0x01, 0x24,
- 0x20, 0x1c, 0x10, 0xbd, 0x94, 0x67, 0x01, 0x00,
- 0x80, 0xb5, 0x02, 0x4b, 0x00, 0xf0, 0x4e, 0xf8,
- 0x80, 0xbd, 0x00, 0x00, 0x10, 0x67, 0x01, 0x00,
- 0x3c, 0x00, 0x10, 0x59, 0x00, 0x00, 0x80, 0xb5,
- 0x02, 0x4b, 0x00, 0xf0, 0x46, 0xf8, 0x80, 0xbd,
- 0x00, 0x00, 0x11, 0x67, 0x01, 0x00, 0xf8, 0xb5,
- 0x0e, 0x1c, 0x15, 0x1c, 0x00, 0x28, 0x1c, 0x49,
- 0x10, 0xd0, 0x48, 0x68, 0x1c, 0x4a, 0x28, 0x80,
- 0x00, 0x20, 0x07, 0xe0, 0x0b, 0x18, 0x1c, 0x7a,
- 0x14, 0x23, 0x63, 0x43, 0x9b, 0x18, 0x1b, 0x7c,
- 0x33, 0x54, 0x01, 0x30, 0x2b, 0x88, 0x83, 0x42,
- 0xf4, 0xdc, 0x3c, 0x00, 0x4c, 0x59, 0x00, 0x00,
- 0x24, 0xe0, 0x00, 0x20, 0x0f, 0x1c, 0x00, 0x24,
- 0x08, 0x60, 0x0f, 0xe0, 0x30, 0x5d, 0x05, 0xf0,
- 0x07, 0xfa, 0x0e, 0x28, 0x01, 0xd1, 0x00, 0x20,
- 0xf8, 0xbd, 0x39, 0x19, 0x08, 0x72, 0x01, 0x22,
- 0x39, 0x68, 0x82, 0x40, 0x11, 0x43, 0x08, 0x1c,
- 0x38, 0x60, 0x01, 0x34, 0x28, 0x88, 0xa0, 0x42,
- 0xec, 0xdc, 0x28, 0x88, 0x78, 0x60, 0xff, 0xf7,
- 0xb7, 0xfe, 0x00, 0x28, 0x3c, 0x00, 0x88, 0x59,
- 0x00, 0x00, 0x06, 0xd0, 0x01, 0x69, 0x00, 0x29,
- 0x03, 0xd0, 0x7f, 0x21, 0xc9, 0x43, 0x0b, 0xf0,
- 0x52, 0xfb, 0x01, 0x20, 0xe3, 0xe7, 0x2c, 0x7d,
- 0x01, 0x00, 0x74, 0x40, 0x01, 0x00, 0x10, 0xb5,
- 0x1c, 0x1c, 0x00, 0x28, 0x0b, 0xd0, 0x20, 0x78,
- 0x0e, 0x28, 0x05, 0xd2, 0x14, 0x23, 0x0c, 0x4a,
- 0x58, 0x43, 0x80, 0x18, 0x00, 0x7c, 0x00, 0xe0,
- 0x00, 0x20, 0x08, 0x70, 0x0e, 0xe0, 0x3c, 0x00,
- 0xc4, 0x59, 0x00, 0x00, 0x08, 0x78, 0x05, 0xf0,
- 0xd1, 0xf9, 0x20, 0x70, 0xff, 0xf7, 0x92, 0xfe,
- 0x00, 0x28, 0x06, 0xd0, 0x01, 0x69, 0x00, 0x29,
- 0x03, 0xd0, 0x7f, 0x21, 0xc9, 0x43, 0x0b, 0xf0,
- 0x2d, 0xfb, 0x01, 0x20, 0x10, 0xbd, 0x00, 0x00,
- 0x74, 0x40, 0x01, 0x00, 0x80, 0xb5, 0x27, 0x20,
- 0xc0, 0x43, 0x09, 0xf0, 0x31, 0xfc, 0x80, 0xbd,
- 0x80, 0xb5, 0x27, 0x20, 0xc0, 0x43, 0x09, 0xf0,
- 0x3c, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x39, 0xfc,
- 0x80, 0xbd, 0x80, 0xb5, 0x28, 0x20, 0x09, 0xf0,
- 0x42, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5,
- 0x28, 0x20, 0x09, 0xf0, 0x4a, 0xfc, 0x80, 0xbd,
- 0x00, 0x00, 0xb0, 0xb5, 0x01, 0x28, 0x28, 0xd1,
- 0x01, 0x29, 0x01, 0xd0, 0xfb, 0xf7, 0x6b, 0xfc,
- 0xff, 0xf7, 0xe9, 0xfd, 0x02, 0x28, 0x1a, 0xd1,
- 0x07, 0xf0, 0x13, 0xfc, 0x12, 0x4c, 0x21, 0x69,
- 0x88, 0x42, 0x3c, 0x00, 0x3c, 0x5a, 0x00, 0x00,
- 0x15, 0xd0, 0x07, 0xf0, 0x0d, 0xfc, 0x20, 0x61,
- 0x20, 0x68, 0x7d, 0x24, 0xe4, 0x00, 0x44, 0x43,
- 0x0d, 0xf0, 0xae, 0xf9, 0x05, 0x1c, 0x07, 0xf0,
- 0x0b, 0xfc, 0x28, 0x1a, 0x84, 0x42, 0x00, 0xd9,
- 0x24, 0x1a, 0x01, 0x22, 0x21, 0x1c, 0x0a, 0x20,
- 0x0d, 0xf0, 0xb2, 0xfd, 0xb0, 0xbd, 0x00, 0x21,
- 0x09, 0x20, 0x0c, 0xf0, 0x75, 0xfc, 0xb0, 0xbd,
- 0x07, 0x21, 0x0a, 0x20, 0x3c, 0x00, 0x78, 0x5a,
- 0x00, 0x00, 0xfb, 0xf7, 0x14, 0xfc, 0xb0, 0xbd,
- 0x00, 0x00, 0xd4, 0x67, 0x01, 0x00, 0x7d, 0x20,
- 0x02, 0x49, 0x00, 0x01, 0x08, 0x60, 0x70, 0x47,
- 0x00, 0x00, 0xd4, 0x67, 0x01, 0x00, 0x10, 0xb5,
- 0x81, 0x6d, 0x04, 0x1c, 0xff, 0x30, 0x46, 0x30,
- 0x0c, 0xf0, 0xd1, 0xfc, 0x20, 0x1c, 0xff, 0x30,
- 0x50, 0x30, 0xa1, 0x6d, 0x0c, 0xf0, 0xcb, 0xfc,
- 0x10, 0xbd, 0xb0, 0xb5, 0x04, 0x1c, 0x3c, 0x00,
- 0xb4, 0x5a, 0x00, 0x00, 0x0d, 0x1c, 0x02, 0xf0,
- 0x59, 0xfc, 0x20, 0x1c, 0x02, 0xf0, 0x56, 0xfc,
- 0x18, 0x23, 0x04, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x18, 0x22, 0x29, 0x1c, 0xfa, 0xf7, 0x70, 0xfd,
- 0xb0, 0xbd, 0x00, 0x00, 0x94, 0x67, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x09, 0xf0, 0xbc, 0xfb,
- 0x20, 0x1c, 0x09, 0xf0, 0xc7, 0xfb, 0x10, 0xbd,
- 0x10, 0xb5, 0x04, 0x1c, 0x09, 0xf0, 0xd0, 0xfb,
- 0x3c, 0x00, 0xf0, 0x5a, 0x00, 0x00, 0x20, 0x1c,
- 0x09, 0xf0, 0xdb, 0xfb, 0x10, 0xbd, 0x70, 0xb5,
- 0x0c, 0x78, 0x06, 0x1c, 0x48, 0x88, 0x4d, 0x78,
- 0xe2, 0x00, 0x80, 0x1a, 0xe9, 0x00, 0x40, 0x1a,
- 0x01, 0x1c, 0x41, 0x43, 0x12, 0x31, 0x24, 0x20,
- 0xfa, 0xf7, 0x91, 0xfd, 0x21, 0x1c, 0x61, 0x43,
- 0xc9, 0x00, 0x40, 0x18, 0x29, 0x1c, 0x69, 0x43,
- 0xc9, 0x00, 0x42, 0x18, 0x0c, 0x49, 0x88, 0x79,
- 0x0c, 0x4b, 0x3c, 0x00, 0x2c, 0x5b, 0x00, 0x00,
- 0x53, 0x43, 0x0c, 0x4a, 0x13, 0x60, 0x53, 0x7b,
- 0x34, 0x02, 0x14, 0x60, 0x52, 0x7b, 0x88, 0x71,
- 0x01, 0x33, 0x58, 0x10, 0x08, 0x4b, 0x80, 0x1a,
- 0x01, 0x21, 0x49, 0x02, 0x58, 0x43, 0x00, 0x28,
- 0x00, 0xda, 0x49, 0x42, 0x08, 0x18, 0x80, 0x12,
- 0x21, 0x38, 0x70, 0xbd, 0x20, 0x10, 0x07, 0x00,
- 0xec, 0x04, 0x00, 0x00, 0x00, 0xa0, 0x07, 0x00,
- 0x03, 0x03, 0x00, 0x00, 0x3c, 0x00, 0x68, 0x5b,
- 0x00, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x06, 0x21,
- 0x04, 0x30, 0xfa, 0xf7, 0x70, 0xfc, 0xff, 0x20,
- 0x21, 0x30, 0xff, 0x21, 0x01, 0x55, 0x20, 0x1c,
- 0xff, 0x30, 0x41, 0x30, 0x81, 0x70, 0x41, 0x71,
- 0xc1, 0x73, 0xff, 0x20, 0x63, 0x30, 0x01, 0x55,
- 0x00, 0x20, 0x20, 0x61, 0x60, 0x61, 0xff, 0x34,
- 0x01, 0x34, 0xa0, 0x60, 0xe0, 0x60, 0x10, 0xbd,
- 0x00, 0x00, 0x70, 0xb5, 0x06, 0x1c, 0x3c, 0x00,
- 0xa4, 0x5b, 0x00, 0x00, 0x08, 0x1c, 0x58, 0x60,
- 0x9a, 0x60, 0x1c, 0x1c, 0x1e, 0x60, 0x15, 0x1c,
- 0x9b, 0x8a, 0xe2, 0x8a, 0x31, 0x1c, 0x02, 0xf0,
- 0xa1, 0xfc, 0x28, 0x1a, 0xe0, 0x60, 0x70, 0xbd,
- 0x70, 0xb5, 0x04, 0x1c, 0x08, 0x1c, 0x11, 0x1c,
- 0x1e, 0x1c, 0x00, 0x25, 0xeb, 0x43, 0x22, 0x1c,
- 0x18, 0x32, 0x0b, 0xf0, 0xf7, 0xfb, 0x22, 0x1c,
- 0xff, 0x32, 0x50, 0x32, 0x11, 0x1c, 0x0a, 0x39,
- 0x3c, 0x00, 0xe0, 0x5b, 0x00, 0x00, 0x01, 0x23,
- 0x20, 0x1c, 0x00, 0xf0, 0xc6, 0xf8, 0x0c, 0x28,
- 0x10, 0xd0, 0x01, 0x25, 0x20, 0x1c, 0x0b, 0xf0,
- 0xac, 0xfa, 0x20, 0x1c, 0x00, 0xf0, 0x19, 0xf8,
- 0x20, 0x1c, 0x00, 0xf0, 0x0a, 0xf8, 0x20, 0x1c,
- 0x00, 0xf0, 0x29, 0xf8, 0x31, 0x1c, 0x20, 0x1c,
- 0x0b, 0xf0, 0x17, 0xfa, 0x28, 0x1c, 0x70, 0xbd,
- 0x00, 0x00, 0xff, 0x21, 0x1d, 0x31, 0x09, 0x58,
- 0x80, 0x30, 0x3c, 0x00, 0x1c, 0x5c, 0x00, 0x00,
- 0x89, 0x07, 0x00, 0x29, 0x01, 0xda, 0x01, 0x21,
- 0x00, 0xe0, 0x00, 0x21, 0xc1, 0x62, 0x70, 0x47,
- 0x01, 0x1c, 0x80, 0x31, 0x00, 0x22, 0x0a, 0x63,
- 0x07, 0x4a, 0x12, 0x68, 0x00, 0x2a, 0x09, 0xd0,
- 0x42, 0x88, 0x92, 0x06, 0x06, 0xd5, 0xff, 0x30,
- 0x01, 0x30, 0xc0, 0x69, 0x40, 0x07, 0x01, 0xd4,
- 0x01, 0x20, 0x08, 0x63, 0x70, 0x47, 0x00, 0x00,
- 0xac, 0x69, 0x01, 0x00, 0x3c, 0x00, 0x58, 0x5c,
- 0x00, 0x00, 0x80, 0xb5, 0x01, 0x1c, 0x4a, 0x88,
- 0x00, 0x20, 0x52, 0x05, 0x05, 0xd5, 0xff, 0x31,
- 0x01, 0x31, 0xc9, 0x69, 0x49, 0x07, 0x00, 0xd4,
- 0x01, 0x20, 0x06, 0xf0, 0xec, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0xf8, 0xb5, 0x05, 0x1c, 0x98, 0x68,
- 0x17, 0x1c, 0x0e, 0x1c, 0x1c, 0x1c, 0x00, 0x28,
- 0x02, 0xd1, 0x20, 0x1c, 0x0c, 0xf0, 0x31, 0xf8,
- 0xab, 0x69, 0x39, 0x1c, 0x30, 0x1c, 0x3c, 0x00,
- 0x94, 0x5c, 0x00, 0x00, 0xa2, 0x68, 0x0b, 0xf0,
- 0x95, 0xfb, 0xf8, 0xbd, 0xf8, 0xb5, 0x16, 0x1c,
- 0x0d, 0x1c, 0x1f, 0x1c, 0x00, 0x24, 0x02, 0xf0,
- 0x61, 0xfb, 0x18, 0x23, 0x06, 0x49, 0x58, 0x43,
- 0x40, 0x18, 0x43, 0x68, 0x00, 0x2b, 0x05, 0xd0,
- 0x3a, 0x1c, 0x31, 0x1c, 0x28, 0x1c, 0xfa, 0xf7,
- 0x8e, 0xfb, 0x01, 0x24, 0x20, 0x1c, 0xf8, 0xbd,
- 0x94, 0x67, 0x01, 0x00, 0x80, 0xb5, 0x07, 0xf0,
- 0x3c, 0x00, 0xd0, 0x5c, 0x00, 0x00, 0xc5, 0xfa,
- 0x09, 0x49, 0x08, 0x61, 0x08, 0x68, 0x00, 0x28,
- 0x02, 0xd1, 0x7d, 0x20, 0x00, 0x01, 0x08, 0x60,
- 0x08, 0x68, 0x7d, 0x21, 0xc9, 0x00, 0x41, 0x43,
- 0x00, 0x23, 0x01, 0x22, 0x0a, 0x20, 0x0d, 0xf0,
- 0x4e, 0xfd, 0x80, 0xbd, 0x00, 0x00, 0xd4, 0x67,
- 0x01, 0x00, 0x80, 0xb5, 0x01, 0x21, 0x0a, 0x20,
- 0x0d, 0xf0, 0x97, 0xfc, 0x80, 0xbd, 0xf8, 0xb5,
- 0x0e, 0x1c, 0x3c, 0x00, 0x0c, 0x5d, 0x00, 0x00,
- 0x51, 0x68, 0x14, 0x1c, 0x12, 0x68, 0xa5, 0x68,
- 0x0b, 0x1c, 0x75, 0x1b, 0x57, 0x19, 0x97, 0x42,
- 0x00, 0xd2, 0x01, 0x31, 0x42, 0x68, 0x00, 0x25,
- 0x8a, 0x42, 0x02, 0xdd, 0x01, 0x25, 0x62, 0x60,
- 0x05, 0xe0, 0x9a, 0x42, 0x03, 0xd1, 0x01, 0x68,
- 0xb9, 0x42, 0x00, 0xd9, 0x01, 0x25, 0x00, 0x2d,
- 0x09, 0xd0, 0x01, 0x68, 0x21, 0x60, 0xa6, 0x60,
- 0xa3, 0x8a, 0xe2, 0x8a, 0x3c, 0x00, 0x48, 0x5d,
- 0x00, 0x00, 0x60, 0x68, 0x02, 0xf0, 0xd7, 0xfb,
- 0x30, 0x1a, 0xe0, 0x60, 0x28, 0x1c, 0xf8, 0xbd,
- 0x00, 0x00, 0x80, 0xb5, 0x02, 0xf0, 0x07, 0xfb,
- 0x18, 0x23, 0x03, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x18, 0x21, 0xfa, 0xf7, 0x98, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0x94, 0x67, 0x01, 0x00, 0xfe, 0xb5,
- 0x04, 0x1c, 0x08, 0x1c, 0x11, 0x1c, 0x1e, 0x1c,
- 0x0c, 0x25, 0x01, 0x22, 0x00, 0x92, 0x3c, 0x00,
- 0x84, 0x5d, 0x00, 0x00, 0xa2, 0x69, 0x02, 0xab,
- 0xfd, 0xf7, 0xf0, 0xf8, 0x00, 0x28, 0x45, 0xd0,
- 0x02, 0x98, 0x27, 0x21, 0x02, 0x1c, 0x0a, 0x40,
- 0x01, 0xd1, 0x08, 0x43, 0x02, 0x90, 0x21, 0x49,
- 0xa0, 0x69, 0x08, 0x40, 0x06, 0xd0, 0x02, 0x98,
- 0x01, 0x40, 0x03, 0xd1, 0x49, 0x21, 0xc9, 0x00,
- 0x08, 0x43, 0x02, 0x90, 0xa0, 0x6d, 0x02, 0x99,
- 0x88, 0x42, 0x30, 0xd0, 0x00, 0x2e, 0x2d, 0xd0,
- 0x3c, 0x00, 0xc0, 0x5d, 0x00, 0x00, 0x40, 0x21,
- 0x20, 0x1c, 0x58, 0x30, 0xfa, 0xf7, 0x69, 0xfb,
- 0x02, 0x98, 0x00, 0x25, 0x00, 0x26, 0x37, 0x1c,
- 0xa0, 0x65, 0x19, 0xe0, 0xc0, 0x07, 0x11, 0xd5,
- 0xf0, 0x19, 0x00, 0x19, 0x70, 0x30, 0x05, 0x71,
- 0x28, 0x1c, 0x04, 0xf0, 0xd4, 0xff, 0x00, 0x28,
- 0x04, 0xd0, 0xa0, 0x19, 0x80, 0x30, 0x05, 0x72,
- 0x01, 0x36, 0x03, 0xe0, 0xe0, 0x19, 0x60, 0x30,
- 0x05, 0x70, 0x3c, 0x00, 0xfc, 0x5d, 0x00, 0x00,
- 0x01, 0x37, 0x01, 0x35, 0x2d, 0x06, 0x02, 0x98,
- 0x2d, 0x0e, 0x40, 0x08, 0x02, 0x90, 0x02, 0x98,
- 0x00, 0x28, 0xe2, 0xd1, 0x84, 0x20, 0x06, 0x51,
- 0xf0, 0x19, 0x20, 0x67, 0xe7, 0x65, 0x00, 0x25,
- 0x00, 0xe0, 0x0b, 0x25, 0x28, 0x1c, 0xfe, 0xbd,
- 0xd8, 0x3a, 0x00, 0x00, 0x38, 0xb5, 0x05, 0x1c,
- 0x08, 0x1c, 0x11, 0x1c, 0x00, 0x24, 0xe2, 0x43,
- 0x6b, 0x46, 0xff, 0xf7, 0x3c, 0x00, 0x38, 0x5e,
- 0x00, 0x00, 0x4f, 0xfa, 0x00, 0x28, 0x05, 0xd0,
- 0xa8, 0x69, 0x00, 0x99, 0x01, 0x40, 0x81, 0x42,
- 0x00, 0xd1, 0x01, 0x24, 0x20, 0x1c, 0x38, 0xbd,
- 0x00, 0x00, 0x7c, 0xb5, 0x05, 0x6a, 0x86, 0x69,
- 0x04, 0x1c, 0xc0, 0x68, 0xfb, 0xf7, 0xb7, 0xfb,
- 0xe1, 0x69, 0xfb, 0xf7, 0xda, 0xfa, 0x20, 0x1c,
- 0xe2, 0x69, 0x40, 0x30, 0xc1, 0x8b, 0x12, 0x89,
- 0x89, 0x18, 0xc1, 0x83, 0x06, 0x49, 0x3c, 0x00,
- 0x74, 0x5e, 0x00, 0x00, 0x01, 0x94, 0x00, 0x91,
- 0x28, 0x69, 0x33, 0x1c, 0x82, 0x88, 0x01, 0x68,
- 0xe0, 0x68, 0xc0, 0x68, 0x00, 0xf0, 0xf2, 0xf9,
- 0x7c, 0xbd, 0x00, 0x00, 0x91, 0x5e, 0x00, 0x00,
- 0xb0, 0xb5, 0xd1, 0x68, 0x55, 0x69, 0xc8, 0x68,
- 0x14, 0x1c, 0x14, 0x4b, 0x0c, 0xe0, 0x02, 0x68,
- 0x9a, 0x42, 0x07, 0xd1, 0xc2, 0x68, 0xca, 0x60,
- 0x00, 0x21, 0xc1, 0x60, 0x01, 0x60, 0xfb, 0xf7,
- 0x3c, 0x00, 0xb0, 0x5e, 0x00, 0x00, 0x73, 0xfb,
- 0x03, 0xe0, 0x01, 0x1c, 0xc0, 0x68, 0x00, 0x28,
- 0xf0, 0xd1, 0xe0, 0x68, 0xc0, 0x68, 0xe8, 0x60,
- 0xe0, 0x68, 0xc5, 0x60, 0x20, 0x1c, 0x40, 0x30,
- 0xc1, 0x8b, 0x2a, 0x89, 0x89, 0x18, 0xc1, 0x83,
- 0x20, 0x68, 0x00, 0x28, 0x02, 0xd0, 0xff, 0xf7,
- 0xba, 0xff, 0xb0, 0xbd, 0x04, 0x48, 0x04, 0xf0,
- 0x4e, 0xf9, 0x00, 0x6a, 0x07, 0xf0, 0x77, 0xfa,
- 0xb0, 0xbd, 0x3c, 0x00, 0xec, 0x5e, 0x00, 0x00,
- 0xa0, 0x7e, 0x01, 0x00, 0xa0, 0x6a, 0x01, 0x00,
- 0xf1, 0xb5, 0x82, 0xb0, 0x02, 0x98, 0x06, 0x69,
- 0x01, 0x1c, 0x08, 0x36, 0x60, 0x31, 0x45, 0x68,
- 0x01, 0x91, 0x82, 0xe0, 0x10, 0x21, 0x00, 0x20,
- 0x2f, 0x69, 0xfb, 0xf7, 0x63, 0xfb, 0x68, 0x61,
- 0x01, 0x89, 0x08, 0x39, 0x09, 0x04, 0x09, 0x0c,
- 0x01, 0x81, 0x68, 0x69, 0x00, 0x68, 0x40, 0x18,
- 0x08, 0x21, 0xfb, 0xf7, 0x3c, 0x00, 0x28, 0x5f,
- 0x00, 0x00, 0x57, 0xfb, 0xe8, 0x61, 0x68, 0x69,
- 0x71, 0x88, 0x00, 0x68, 0x20, 0x22, 0x01, 0x80,
- 0x71, 0x68, 0x41, 0x60, 0x01, 0x99, 0x49, 0x7b,
- 0x89, 0x01, 0x11, 0x43, 0xc1, 0x70, 0x00, 0x21,
- 0x81, 0x70, 0x28, 0x20, 0xfb, 0xf7, 0x75, 0xfc,
- 0x39, 0x88, 0x04, 0x1c, 0xc1, 0x81, 0xa8, 0x6b,
- 0x00, 0x28, 0x03, 0xd1, 0x01, 0x20, 0x80, 0x02,
- 0x08, 0x43, 0xe0, 0x81, 0x06, 0x22, 0x3c, 0x00,
- 0x64, 0x5f, 0x00, 0x00, 0x39, 0x1d, 0x20, 0x1c,
- 0x10, 0x30, 0xfa, 0xf7, 0xc5, 0xfa, 0x39, 0x1c,
- 0x0a, 0x31, 0x06, 0x22, 0x20, 0x1c, 0x16, 0x30,
- 0x00, 0x90, 0xfa, 0xf7, 0xbd, 0xfa, 0x39, 0x1c,
- 0x10, 0x31, 0x06, 0x22, 0x20, 0x1c, 0x1c, 0x30,
- 0xfa, 0xf7, 0xb6, 0xfa, 0xe1, 0x89, 0x25, 0x4a,
- 0x5c, 0x20, 0x11, 0x40, 0x01, 0x22, 0x92, 0x03,
- 0x11, 0x43, 0x40, 0x5b, 0xe1, 0x81, 0x0f, 0x21,
- 0x3c, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x08, 0x40,
- 0x60, 0x84, 0x20, 0x1c, 0x20, 0x30, 0x16, 0x21,
- 0x81, 0x71, 0x00, 0x21, 0x21, 0x70, 0xe9, 0x6b,
- 0x00, 0x29, 0x07, 0xd0, 0x29, 0x69, 0x09, 0x8b,
- 0x09, 0x07, 0x09, 0x0f, 0x21, 0x70, 0xa1, 0x84,
- 0x18, 0x21, 0x81, 0x71, 0x06, 0x22, 0x60, 0x1c,
- 0x00, 0x99, 0xfa, 0xf7, 0x94, 0xfa, 0x70, 0x68,
- 0x00, 0x0e, 0xe0, 0x71, 0x70, 0x68, 0x00, 0x02,
- 0x00, 0x0e, 0x3c, 0x00, 0xdc, 0x5f, 0x00, 0x00,
- 0x20, 0x72, 0x70, 0x68, 0x00, 0x04, 0x00, 0x0e,
- 0x60, 0x72, 0x70, 0x68, 0xa0, 0x72, 0x70, 0x88,
- 0x00, 0x0a, 0xe0, 0x72, 0x70, 0x88, 0x20, 0x73,
- 0x70, 0x88, 0x01, 0x30, 0x00, 0x04, 0x00, 0x0c,
- 0x70, 0x80, 0x02, 0xd1, 0x70, 0x68, 0x01, 0x30,
- 0x70, 0x60, 0xac, 0x61, 0x02, 0x98, 0x28, 0x62,
- 0x2d, 0x68, 0x00, 0x2d, 0x00, 0xd0, 0x79, 0xe7,
- 0x02, 0x98, 0x04, 0x49, 0x3c, 0x00, 0x18, 0x60,
- 0x00, 0x00, 0x42, 0x68, 0x04, 0x48, 0x04, 0xf0,
- 0x74, 0xf8, 0xfe, 0xbd, 0x00, 0x00, 0x8f, 0xc7,
- 0xff, 0xff, 0x3d, 0xda, 0x00, 0x00, 0xa0, 0x6a,
- 0x01, 0x00, 0xb0, 0xb5, 0x07, 0x4d, 0x28, 0x78,
- 0x03, 0x28, 0x08, 0xd0, 0x00, 0x24, 0x2c, 0x70,
- 0x69, 0x68, 0x00, 0x29, 0x03, 0xd0, 0x01, 0x20,
- 0xfa, 0xf7, 0xc8, 0xf9, 0x6c, 0x60, 0xb0, 0xbd,
- 0x00, 0x00, 0x9c, 0x73, 0x01, 0x00, 0x3c, 0x00,
- 0x54, 0x60, 0x00, 0x00, 0xf8, 0xb5, 0x2b, 0x4b,
- 0xd8, 0x6a, 0x00, 0x28, 0x50, 0xd0, 0x2a, 0x48,
- 0x01, 0x1c, 0xff, 0x31, 0x01, 0x31, 0xca, 0x68,
- 0x01, 0x32, 0xca, 0x60, 0x1a, 0x6c, 0x00, 0x2a,
- 0x02, 0xd1, 0x4a, 0x69, 0x01, 0x32, 0x4a, 0x61,
- 0x0a, 0x69, 0x01, 0x32, 0x0a, 0x61, 0xda, 0x68,
- 0x00, 0x2a, 0x04, 0xd0, 0x1f, 0x4a, 0x01, 0x32,
- 0x12, 0x78, 0x00, 0x2a, 0x02, 0xd1, 0x8a, 0x69,
- 0x3c, 0x00, 0x90, 0x60, 0x00, 0x00, 0x01, 0x32,
- 0x8a, 0x61, 0x00, 0x25, 0x07, 0x1d, 0x18, 0x26,
- 0x1a, 0x4a, 0x6e, 0x43, 0x74, 0x32, 0x90, 0x59,
- 0x00, 0x28, 0x29, 0xd0, 0xb4, 0x18, 0x60, 0x69,
- 0x00, 0x28, 0x25, 0xd1, 0x60, 0x68, 0x00, 0x28,
- 0x02, 0xd0, 0x01, 0x68, 0x00, 0x29, 0x05, 0xd1,
- 0xa1, 0x68, 0x00, 0x29, 0x1c, 0xd0, 0x09, 0x68,
- 0x00, 0x29, 0x19, 0xd0, 0x00, 0x28, 0x05, 0xd0,
- 0xe1, 0x68, 0x3c, 0x00, 0xcc, 0x60, 0x00, 0x00,
- 0x01, 0x31, 0xe1, 0x60, 0x00, 0x68, 0x81, 0x42,
- 0x11, 0xd3, 0xa0, 0x68, 0x00, 0x28, 0x06, 0xd0,
- 0x21, 0x69, 0x00, 0x68, 0x08, 0x18, 0x0c, 0xf0,
- 0xa3, 0xfd, 0x00, 0x28, 0x07, 0xd0, 0x06, 0x4a,
- 0x01, 0x20, 0x60, 0x61, 0x74, 0x32, 0x91, 0x59,
- 0x38, 0x1c, 0xfa, 0xf7, 0x70, 0xf9, 0x01, 0x35,
- 0x02, 0x2d, 0xcb, 0xdb, 0xf8, 0xbd, 0x00, 0x00,
- 0x44, 0x7d, 0x01, 0x00, 0x3c, 0x00, 0x08, 0x61,
- 0x00, 0x00, 0xf4, 0x67, 0x01, 0x00, 0xf8, 0xb5,
- 0x0f, 0x1c, 0x00, 0x25, 0x04, 0x1c, 0x00, 0x28,
- 0x25, 0xd0, 0x20, 0x1c, 0x04, 0xf0, 0x03, 0xfe,
- 0x00, 0x28, 0x06, 0xd0, 0xff, 0xf7, 0xff, 0xf8,
- 0x04, 0x1c, 0xff, 0xf7, 0x50, 0xfb, 0x06, 0x1c,
- 0x07, 0xe0, 0x20, 0x1c, 0xff, 0xf7, 0x91, 0xfb,
- 0x06, 0x1c, 0x20, 0x1c, 0xff, 0xf7, 0x6f, 0xfb,
- 0x04, 0x1c, 0x00, 0x2e, 0x06, 0xd0, 0x3c, 0x00,
- 0x44, 0x61, 0x00, 0x00, 0xff, 0xf7, 0x4c, 0xfb,
- 0x00, 0x28, 0x02, 0xd0, 0x01, 0x25, 0x01, 0x20,
- 0x07, 0xe0, 0x00, 0x2c, 0x06, 0xd0, 0xff, 0xf7,
- 0xef, 0xf8, 0x00, 0x28, 0x02, 0xd0, 0x01, 0x25,
- 0x00, 0x20, 0x38, 0x60, 0x28, 0x1c, 0xf8, 0xbd,
- 0xb0, 0xb5, 0xc5, 0x68, 0x04, 0x1c, 0x0d, 0xf0,
- 0x8f, 0xfc, 0x20, 0x7e, 0xc1, 0x07, 0x08, 0xd5,
- 0xe1, 0x68, 0xa9, 0x42, 0x05, 0xd9, 0x22, 0x69,
- 0x3c, 0x00, 0x80, 0x61, 0x00, 0x00, 0x91, 0x42,
- 0x02, 0xd3, 0xe1, 0x8a, 0x01, 0x31, 0xe1, 0x82,
- 0x81, 0x07, 0x08, 0xd5, 0xe1, 0x68, 0xa9, 0x42,
- 0x05, 0xd2, 0x22, 0x69, 0x91, 0x42, 0x02, 0xd8,
- 0xe1, 0x8a, 0x01, 0x31, 0xe1, 0x82, 0x40, 0x07,
- 0x06, 0xd5, 0xe0, 0x68, 0x21, 0x69, 0x88, 0x42,
- 0x02, 0xd1, 0xe0, 0x8a, 0x01, 0x30, 0xe0, 0x82,
- 0xe0, 0x8a, 0xa1, 0x8a, 0x88, 0x42, 0x0d, 0xd3,
- 0x60, 0x7e, 0x3c, 0x00, 0xbc, 0x61, 0x00, 0x00,
- 0x02, 0x28, 0x0b, 0xd0, 0x20, 0x68, 0xe1, 0x68,
- 0x04, 0x22, 0x07, 0xf0, 0x65, 0xfb, 0x60, 0x7e,
- 0x00, 0x28, 0x03, 0xd1, 0x20, 0x68, 0x08, 0xf0,
- 0xab, 0xff, 0xb0, 0xbd, 0x00, 0x20, 0xe0, 0x82,
- 0xb0, 0xbd, 0x00, 0x00, 0x70, 0xb5, 0x06, 0x1c,
- 0x0c, 0x23, 0x20, 0x49, 0x58, 0x43, 0x45, 0x18,
- 0x00, 0x20, 0xa8, 0x60, 0x30, 0x1c, 0x06, 0xf0,
- 0x91, 0xfe, 0x04, 0x1c, 0x3c, 0x00, 0xf8, 0x61,
- 0x00, 0x00, 0x68, 0x60, 0x33, 0xd0, 0x01, 0x20,
- 0xa8, 0x70, 0x2c, 0x20, 0x00, 0x5d, 0x02, 0x28,
- 0x03, 0xd1, 0x20, 0x1c, 0x03, 0xf0, 0x45, 0xfe,
- 0x10, 0xe0, 0x61, 0x6b, 0x00, 0x29, 0x0a, 0xd0,
- 0x01, 0x28, 0x04, 0xd1, 0x21, 0x1c, 0x28, 0x1c,
- 0x03, 0xf0, 0x55, 0xfe, 0x06, 0xe0, 0x20, 0x1c,
- 0x0a, 0xf0, 0x0d, 0xfc, 0x02, 0xe0, 0x20, 0x1c,
- 0x0a, 0xf0, 0x3d, 0xfb, 0x0d, 0x48, 0x3c, 0x00,
- 0x34, 0x62, 0x00, 0x00, 0x14, 0x38, 0x41, 0x68,
- 0x00, 0x29, 0x10, 0xd0, 0x20, 0x1c, 0x40, 0x30,
- 0x02, 0x8b, 0x12, 0x07, 0x92, 0x0f, 0x01, 0x2a,
- 0x09, 0xd0, 0x80, 0x8b, 0x32, 0x02, 0x00, 0x09,
- 0x00, 0x04, 0x10, 0x43, 0x81, 0x22, 0x02, 0x43,
- 0x0c, 0x20, 0x0d, 0xf0, 0xb7, 0xf9, 0x0c, 0xf0,
- 0xa5, 0xfd, 0x60, 0x64, 0x70, 0xbd, 0x00, 0x00,
- 0x60, 0x7b, 0x01, 0x00, 0xff, 0xb5, 0x08, 0x1c,
- 0x3c, 0x00, 0x70, 0x62, 0x00, 0x00, 0x11, 0x1c,
- 0x0c, 0x32, 0x20, 0x24, 0x14, 0x43, 0x0c, 0x4a,
- 0x83, 0xb0, 0x0c, 0xae, 0x52, 0x68, 0x60, 0xce,
- 0x94, 0x70, 0x00, 0x24, 0xd4, 0x70, 0x93, 0x63,
- 0x0d, 0x23, 0x40, 0x27, 0xbb, 0x52, 0x94, 0x61,
- 0x14, 0x84, 0x01, 0x22, 0x02, 0x92, 0x32, 0x1c,
- 0x00, 0x90, 0x01, 0x91, 0x23, 0x1c, 0x29, 0x1c,
- 0x03, 0x98, 0x00, 0xf0, 0x66, 0xf9, 0x07, 0xb0,
- 0xf0, 0xbd, 0x3c, 0x00, 0xac, 0x62, 0x00, 0x00,
- 0xa0, 0x7e, 0x01, 0x00, 0xf8, 0xb5, 0x04, 0x1c,
- 0x00, 0x27, 0x11, 0x4e, 0x1d, 0xe0, 0xe0, 0x68,
- 0x00, 0x28, 0x70, 0x68, 0x0c, 0xd1, 0x80, 0x88,
- 0x00, 0x07, 0x0d, 0xd1, 0x01, 0x21, 0x0c, 0x48,
- 0xfb, 0xf7, 0x84, 0xf9, 0xc4, 0x60, 0xe8, 0x60,
- 0x70, 0x68, 0x81, 0x88, 0x01, 0x31, 0x02, 0xe0,
- 0x81, 0x88, 0x22, 0x89, 0x89, 0x18, 0x81, 0x80,
- 0xe0, 0x68, 0x39, 0x1c, 0x3c, 0x00, 0xe8, 0x62,
- 0x00, 0x00, 0x00, 0x28, 0x01, 0xd1, 0x71, 0x68,
- 0xc9, 0x6d, 0x25, 0x1c, 0x61, 0x60, 0x04, 0x1c,
- 0x00, 0x2c, 0xdf, 0xd1, 0xf8, 0xbd, 0xa0, 0x7e,
- 0x01, 0x00, 0x06, 0x49, 0x10, 0xb5, 0x49, 0x68,
- 0x00, 0x23, 0x05, 0xe0, 0x8a, 0x88, 0x04, 0x89,
- 0x12, 0x19, 0x8a, 0x80, 0x43, 0x60, 0xc0, 0x68,
- 0x00, 0x28, 0xf7, 0xd1, 0x10, 0xbd, 0xa0, 0x7e,
- 0x01, 0x00, 0x10, 0xb5, 0x09, 0x49, 0x3c, 0x00,
- 0x24, 0x63, 0x00, 0x00, 0x00, 0x24, 0x49, 0x68,
- 0x0a, 0xe0, 0x8a, 0x88, 0x03, 0x89, 0xd2, 0x18,
- 0x8a, 0x80, 0xc3, 0x68, 0x22, 0x1c, 0x00, 0x2b,
- 0x00, 0xd1, 0xca, 0x6d, 0x42, 0x60, 0x18, 0x1c,
- 0x00, 0x28, 0xf2, 0xd1, 0x10, 0xbd, 0x00, 0x00,
- 0xa0, 0x7e, 0x01, 0x00, 0x01, 0x1c, 0x13, 0x48,
- 0x10, 0xb5, 0x40, 0x68, 0x00, 0x23, 0x09, 0xe0,
- 0x82, 0x88, 0x0c, 0x89, 0x12, 0x19, 0x82, 0x80,
- 0x3c, 0x00, 0x60, 0x63, 0x00, 0x00, 0x4b, 0x60,
- 0xca, 0x68, 0x00, 0x2a, 0x00, 0xd1, 0x41, 0x66,
- 0xc9, 0x68, 0x00, 0x29, 0xf3, 0xd1, 0x01, 0x1c,
- 0x68, 0x31, 0x81, 0x64, 0xc3, 0x64, 0x43, 0x65,
- 0x82, 0x88, 0x08, 0x23, 0x11, 0x1c, 0x08, 0x31,
- 0x89, 0x07, 0x89, 0x0f, 0x59, 0x1a, 0x50, 0x23,
- 0x19, 0x52, 0x51, 0x18, 0x81, 0x80, 0x01, 0x1c,
- 0x40, 0x6e, 0x48, 0x31, 0xc1, 0x60, 0x10, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0x63, 0x00, 0x00,
- 0xa0, 0x7e, 0x01, 0x00, 0x10, 0xb5, 0x07, 0x49,
- 0x00, 0x24, 0x4b, 0x68, 0x06, 0xe0, 0xc2, 0x68,
- 0x21, 0x1c, 0x00, 0x2a, 0x00, 0xd1, 0xd9, 0x6d,
- 0x41, 0x60, 0x10, 0x1c, 0x00, 0x28, 0xf6, 0xd1,
- 0x10, 0xbd, 0x00, 0x00, 0xa0, 0x7e, 0x01, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0xfe, 0xb5, 0x06, 0x1c,
- 0x0c, 0x48, 0x0c, 0x1c, 0x40, 0x68, 0x80, 0x21,
- 0x81, 0x70, 0x00, 0x21, 0x3c, 0x00, 0xd8, 0x63,
- 0x00, 0x00, 0xc1, 0x70, 0x15, 0x1c, 0x40, 0x22,
- 0x81, 0x63, 0x11, 0x52, 0x81, 0x61, 0x01, 0x84,
- 0x00, 0x20, 0x04, 0x22, 0x02, 0x92, 0x00, 0x90,
- 0x01, 0x91, 0x29, 0x1c, 0x20, 0x1c, 0x1a, 0x1c,
- 0x33, 0x1c, 0x00, 0xf0, 0xbc, 0xf8, 0xfe, 0xbd,
- 0x00, 0x00, 0xa0, 0x7e, 0x01, 0x00, 0x70, 0xb5,
- 0x06, 0x1c, 0x17, 0x48, 0x80, 0x78, 0x02, 0x21,
- 0x16, 0x4a, 0x88, 0x43, 0x90, 0x70, 0x3c, 0x00,
- 0x14, 0x64, 0x00, 0x00, 0x10, 0x1c, 0x80, 0x78,
- 0x08, 0x43, 0x11, 0x1c, 0x88, 0x70, 0x13, 0x48,
- 0x00, 0x24, 0xc4, 0x70, 0x70, 0x20, 0xfb, 0xf7,
- 0xd9, 0xf9, 0x11, 0x4d, 0x70, 0x21, 0x68, 0x60,
- 0xfa, 0xf7, 0x34, 0xf8, 0x30, 0x07, 0x00, 0x0f,
- 0x69, 0x68, 0x90, 0x30, 0xc8, 0x65, 0x0d, 0x48,
- 0x68, 0x22, 0x08, 0x80, 0x08, 0x1c, 0x28, 0x30,
- 0x89, 0x60, 0x48, 0x61, 0x08, 0x20, 0x08, 0x82,
- 0x3c, 0x00, 0x50, 0x64, 0x00, 0x00, 0x08, 0x1c,
- 0x38, 0x30, 0x48, 0x63, 0x20, 0x38, 0x48, 0x64,
- 0x5a, 0x20, 0x50, 0x54, 0x06, 0x48, 0x08, 0x31,
- 0x41, 0x64, 0x44, 0x65, 0x70, 0xbd, 0x00, 0x00,
- 0x07, 0x00, 0x58, 0x00, 0x07, 0x00, 0xa0, 0x7e,
- 0x01, 0x00, 0xde, 0xc0, 0x00, 0x00, 0x00, 0x30,
- 0x07, 0x00, 0x0a, 0x4b, 0x10, 0xb5, 0x58, 0x6d,
- 0x0a, 0x49, 0x00, 0x22, 0x49, 0x68, 0x00, 0x24,
- 0x4a, 0x62, 0x3c, 0x00, 0x8c, 0x64, 0x00, 0x00,
- 0x5c, 0x65, 0x4b, 0x6e, 0x00, 0x2b, 0x01, 0xd0,
- 0xda, 0x60, 0x4a, 0x66, 0x8b, 0x6d, 0x00, 0x2b,
- 0x03, 0xd0, 0x0a, 0x6e, 0x00, 0x21, 0xf9, 0xf7,
- 0x9c, 0xff, 0x10, 0xbd, 0x00, 0x30, 0x07, 0x00,
- 0xa0, 0x7e, 0x01, 0x00, 0x09, 0x49, 0x10, 0xb5,
- 0x08, 0x88, 0x01, 0x30, 0x08, 0x80, 0x01, 0x20,
- 0x07, 0x49, 0x80, 0x02, 0x08, 0x60, 0x07, 0x4c,
- 0xa2, 0x6d, 0x00, 0x2a, 0x3c, 0x00, 0xc8, 0x64,
- 0x00, 0x00, 0x05, 0xd0, 0x05, 0x21, 0xd1, 0x20,
- 0x0d, 0xf0, 0x6f, 0xf9, 0x01, 0x20, 0xa0, 0x65,
- 0x10, 0xbd, 0xb0, 0x74, 0x01, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x00, 0x30, 0x07, 0x00, 0xff, 0xb5,
- 0x83, 0xb0, 0x0c, 0xae, 0x86, 0x46, 0x8c, 0x46,
- 0x0e, 0x4a, 0x43, 0xce, 0x0f, 0xad, 0x0f, 0x1c,
- 0x52, 0x68, 0x0c, 0x37, 0x30, 0xcd, 0x97, 0x70,
- 0xd3, 0x70, 0x96, 0x63, 0x0d, 0x26, 0x3c, 0x00,
- 0x04, 0x65, 0x00, 0x00, 0x40, 0x27, 0xbe, 0x52,
- 0x05, 0x9e, 0x96, 0x61, 0x13, 0x84, 0x00, 0x22,
- 0x02, 0x92, 0x2a, 0x1c, 0x00, 0x90, 0x01, 0x91,
- 0x21, 0x1c, 0x60, 0x46, 0x73, 0x46, 0x00, 0xf0,
- 0x29, 0xf8, 0x07, 0xb0, 0xf0, 0xbd, 0x00, 0x00,
- 0xa0, 0x7e, 0x01, 0x00, 0xff, 0xb5, 0x10, 0x1c,
- 0x1a, 0x1c, 0x0c, 0x1c, 0x19, 0x1c, 0x60, 0x23,
- 0xff, 0x32, 0x13, 0x43, 0x0c, 0x4a, 0x83, 0xb0,
- 0x3c, 0x00, 0x40, 0x65, 0x00, 0x00, 0x0c, 0xae,
- 0x52, 0x68, 0x60, 0xce, 0x93, 0x70, 0x00, 0x23,
- 0xd3, 0x70, 0x93, 0x63, 0x40, 0x27, 0xbb, 0x52,
- 0x93, 0x61, 0x13, 0x84, 0x03, 0x22, 0x02, 0x92,
- 0x01, 0x91, 0x29, 0x1c, 0x32, 0x1c, 0x00, 0x90,
- 0x20, 0x1c, 0x03, 0x9b, 0x00, 0xf0, 0x05, 0xf8,
- 0x07, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0xa0, 0x7e,
- 0x01, 0x00, 0xf8, 0xb5, 0x05, 0x1c, 0x11, 0x48,
- 0x1c, 0x1c, 0x3c, 0x00, 0x7c, 0x65, 0x00, 0x00,
- 0x08, 0x9b, 0x07, 0x9f, 0x40, 0x68, 0xde, 0x00,
- 0x81, 0x65, 0x02, 0x66, 0x00, 0x21, 0x81, 0x80,
- 0x0d, 0x48, 0x81, 0x59, 0x20, 0x1c, 0xf9, 0xf7,
- 0x22, 0xff, 0x0b, 0x48, 0x30, 0x18, 0x41, 0x68,
- 0x28, 0x1c, 0xf9, 0xf7, 0x1c, 0xff, 0x07, 0x49,
- 0x06, 0x98, 0x49, 0x68, 0x00, 0x2c, 0x88, 0x62,
- 0x0f, 0x86, 0x00, 0xd1, 0x2c, 0x1c, 0x05, 0x48,
- 0x4c, 0x62, 0x45, 0x65, 0x3c, 0x00, 0xb8, 0x65,
- 0x00, 0x00, 0x01, 0x21, 0x01, 0x65, 0x01, 0x64,
- 0xf8, 0xbd, 0xa0, 0x7e, 0x01, 0x00, 0x90, 0x52,
- 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0xff, 0xb5,
- 0x83, 0xb0, 0x0d, 0xae, 0x60, 0xce, 0x0c, 0x9f,
- 0x08, 0x1c, 0x11, 0x1c, 0xd2, 0x19, 0xff, 0x32,
- 0x40, 0x24, 0x14, 0x43, 0x0b, 0x4a, 0x52, 0x68,
- 0x94, 0x70, 0x00, 0x24, 0xd4, 0x70, 0x93, 0x63,
- 0x40, 0x23, 0x9f, 0x52, 0x94, 0x61, 0x3c, 0x00,
- 0xf4, 0x65, 0x00, 0x00, 0x14, 0x84, 0x02, 0x22,
- 0x02, 0x92, 0x32, 0x1c, 0x00, 0x90, 0x01, 0x91,
- 0x23, 0x1c, 0x29, 0x1c, 0x03, 0x98, 0xff, 0xf7,
- 0xb5, 0xff, 0x07, 0xb0, 0xf0, 0xbd, 0x00, 0x00,
- 0xa0, 0x7e, 0x01, 0x00, 0x4c, 0x21, 0x0d, 0x4a,
- 0x41, 0x43, 0x10, 0xb5, 0x8c, 0x18, 0x0c, 0x49,
- 0x09, 0x78, 0x88, 0x42, 0x07, 0xd1, 0x05, 0xf0,
- 0xc7, 0xfd, 0x0a, 0x48, 0x01, 0x88, 0x01, 0x22,
- 0x3c, 0x00, 0x30, 0x66, 0x00, 0x00, 0x12, 0x03,
- 0x91, 0x43, 0x01, 0x80, 0x20, 0x1c, 0x30, 0x30,
- 0x0c, 0x23, 0xc1, 0x56, 0x40, 0x7b, 0x81, 0x42,
- 0x02, 0xdd, 0x20, 0x8d, 0x0c, 0xf0, 0xe5, 0xfb,
- 0x10, 0xbd, 0x58, 0xe3, 0x01, 0x00, 0x3c, 0x7c,
- 0x01, 0x00, 0x32, 0x80, 0x07, 0x00, 0x01, 0x1c,
- 0x60, 0x31, 0x80, 0xb5, 0xca, 0x79, 0x8b, 0x79,
- 0x9a, 0x42, 0x07, 0xd9, 0x48, 0x7a, 0x0c, 0x23,
- 0x07, 0x49, 0x3c, 0x00, 0x6c, 0x66, 0x00, 0x00,
- 0x58, 0x43, 0x08, 0x5a, 0x0c, 0xf0, 0xd0, 0xfb,
- 0x80, 0xbd, 0x20, 0x30, 0x00, 0x7b, 0x01, 0x28,
- 0xfa, 0xd1, 0x48, 0x7a, 0x05, 0xf0, 0x40, 0xfd,
- 0x80, 0xbd, 0x00, 0x00, 0x60, 0x7b, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x1c, 0x21, 0xf9, 0xf7,
- 0x03, 0xff, 0x03, 0x48, 0xa0, 0x80, 0xe0, 0x80,
- 0x20, 0x81, 0x60, 0x81, 0xa0, 0x81, 0x10, 0xbd,
- 0xff, 0xff, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0x66,
- 0x00, 0x00, 0xff, 0xb5, 0x04, 0x1c, 0x00, 0x20,
- 0x83, 0xb0, 0x0d, 0x1c, 0x06, 0x2c, 0x02, 0x90,
- 0x38, 0xd2, 0x1f, 0x4a, 0xff, 0x26, 0xc1, 0x00,
- 0x89, 0x18, 0x89, 0x78, 0xa1, 0x42, 0x03, 0xd1,
- 0xc0, 0x00, 0x80, 0x18, 0x46, 0x78, 0x04, 0xe0,
- 0x01, 0x30, 0x00, 0x06, 0x00, 0x16, 0x06, 0x28,
- 0xf1, 0xdb, 0xff, 0x2e, 0x24, 0xd0, 0x01, 0x93,
- 0x20, 0x1c, 0x0d, 0xf0, 0xe8, 0xf9, 0x3c, 0x00,
- 0xe4, 0x66, 0x00, 0x00, 0x00, 0x28, 0x05, 0xd0,
- 0x24, 0x21, 0x28, 0x1c, 0x01, 0xab, 0x02, 0xaa,
- 0xfa, 0xf7, 0x30, 0xfe, 0x10, 0x49, 0xf0, 0x00,
- 0x30, 0x39, 0x0f, 0x58, 0x31, 0x06, 0x09, 0x16,
- 0x28, 0x1c, 0x05, 0x9a, 0x01, 0x9b, 0xf9, 0xf7,
- 0x6e, 0xfe, 0x06, 0x1c, 0x10, 0xd1, 0x20, 0x1c,
- 0x0d, 0xf0, 0xd0, 0xf9, 0x00, 0x28, 0x0b, 0xd0,
- 0x28, 0x1c, 0x69, 0x69, 0xfa, 0xf7, 0x12, 0xfe,
- 0x3c, 0x00, 0x20, 0x67, 0x00, 0x00, 0x02, 0x98,
- 0x68, 0x61, 0x04, 0xe0, 0x06, 0x2c, 0x01, 0xd3,
- 0x07, 0x26, 0x00, 0xe0, 0x08, 0x26, 0x30, 0x1c,
- 0x07, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0xcc, 0x5a,
- 0x01, 0x00, 0x10, 0xb5, 0x0c, 0x1c, 0x09, 0xf0,
- 0x86, 0xf8, 0x00, 0x28, 0x02, 0xd0, 0x20, 0x1c,
- 0x09, 0xf0, 0xb5, 0xf8, 0x10, 0xbd, 0xfe, 0xb5,
- 0x13, 0x4d, 0x04, 0x1c, 0xae, 0x69, 0x00, 0x2e,
- 0x1c, 0xd0, 0x3c, 0x00, 0x5c, 0x67, 0x00, 0x00,
- 0x10, 0x4f, 0x30, 0x37, 0x78, 0x68, 0x60, 0x43,
- 0x01, 0x1c, 0x28, 0x88, 0xf9, 0xf7, 0xd2, 0xff,
- 0x39, 0x68, 0x61, 0x43, 0x41, 0x18, 0x01, 0xa8,
- 0x32, 0x1c, 0xf9, 0xf7, 0x37, 0xfe, 0x02, 0x98,
- 0x29, 0x6a, 0x40, 0x18, 0x28, 0x62, 0x0b, 0xd4,
- 0xe9, 0x69, 0x88, 0x42, 0x08, 0xd9, 0xa9, 0x69,
- 0x40, 0x1a, 0x28, 0x62, 0x01, 0x98, 0x01, 0x30,
- 0x01, 0xe0, 0x00, 0x20, 0x3c, 0x00, 0x98, 0x67,
- 0x00, 0x00, 0x02, 0x90, 0x01, 0x90, 0x01, 0x98,
- 0xfe, 0xbd, 0xc8, 0x74, 0x01, 0x00, 0xf8, 0xb5,
- 0x00, 0x28, 0x28, 0xd0, 0x00, 0x24, 0x14, 0x4d,
- 0x00, 0xe0, 0x01, 0x34, 0x61, 0x00, 0x09, 0x19,
- 0x49, 0x19, 0x49, 0x78, 0x00, 0x29, 0xf8, 0xd1,
- 0x63, 0x00, 0x1b, 0x19, 0x03, 0x33, 0x07, 0x22,
- 0x69, 0x46, 0x03, 0xf0, 0xd4, 0xfb, 0x00, 0x2c,
- 0x0f, 0xd0, 0x00, 0x20, 0x00, 0x99, 0x3c, 0x00,
- 0xd4, 0x67, 0x00, 0x00, 0x0a, 0xe0, 0x42, 0x00,
- 0x12, 0x18, 0xae, 0x5c, 0x53, 0x18, 0x52, 0x19,
- 0x5e, 0x71, 0x56, 0x78, 0x01, 0x30, 0x9e, 0x71,
- 0x92, 0x78, 0xda, 0x71, 0xa0, 0x42, 0xf2, 0xdb,
- 0x00, 0x98, 0x03, 0x22, 0x02, 0x30, 0x03, 0x49,
- 0xf9, 0xf7, 0x7e, 0xfe, 0xf8, 0xbd, 0x00, 0x00,
- 0xeb, 0x62, 0x01, 0x00, 0xe8, 0x62, 0x01, 0x00,
- 0xb0, 0xb5, 0x05, 0x1c, 0x08, 0x1c, 0xfa, 0xf7,
- 0x3c, 0x00, 0x10, 0x68, 0x00, 0x00, 0x9d, 0xff,
- 0x04, 0x1c, 0x28, 0x1c, 0xfa, 0xf7, 0xd9, 0xfe,
- 0x21, 0x1c, 0xfa, 0xf7, 0xfc, 0xfd, 0x20, 0x1c,
- 0xb0, 0xbd, 0xf3, 0xb5, 0x44, 0x48, 0x0c, 0x1c,
- 0x00, 0x78, 0x81, 0xb0, 0x01, 0x28, 0x72, 0xd1,
- 0xfa, 0xf7, 0x82, 0xf8, 0x41, 0x4d, 0xe8, 0x6a,
- 0x41, 0x49, 0x08, 0x60, 0xe8, 0x6b, 0x48, 0x60,
- 0x40, 0x48, 0xfa, 0xf7, 0xa6, 0xf9, 0xe8, 0x6a,
- 0x00, 0x28, 0x3c, 0x00, 0x4c, 0x68, 0x00, 0x00,
- 0xfc, 0xda, 0x22, 0x1c, 0x0f, 0x20, 0x01, 0x99,
- 0x0a, 0xf0, 0xa4, 0xf8, 0x38, 0x4d, 0x02, 0x27,
- 0x2f, 0x63, 0x38, 0x4a, 0x64, 0x26, 0x00, 0x20,
- 0xaa, 0x21, 0x08, 0x32, 0x13, 0x18, 0x01, 0x30,
- 0x00, 0x04, 0x00, 0x0c, 0x64, 0x28, 0x19, 0x74,
- 0xf8, 0xd3, 0x16, 0x81, 0x00, 0x20, 0x50, 0x60,
- 0x10, 0x1c, 0x10, 0x30, 0x10, 0x60, 0x00, 0x25,
- 0x17, 0x1c, 0xd2, 0x60, 0x3c, 0x00, 0x88, 0x68,
- 0x00, 0x00, 0x08, 0xe0, 0x28, 0x1c, 0xf9, 0xf7,
- 0xa2, 0xff, 0x41, 0x31, 0x78, 0x19, 0x01, 0x35,
- 0x2d, 0x04, 0x2d, 0x0c, 0x01, 0x74, 0xb5, 0x42,
- 0xf4, 0xd3, 0x26, 0x4d, 0x6f, 0x63, 0x01, 0x20,
- 0x28, 0x63, 0x24, 0x4d, 0xe8, 0x6a, 0x00, 0x28,
- 0xfb, 0xda, 0x0b, 0x22, 0x3b, 0x1c, 0x24, 0x4e,
- 0x03, 0xe0, 0x01, 0x32, 0x64, 0x2a, 0x00, 0xd1,
- 0x00, 0x22, 0x10, 0x1c, 0x0c, 0x21, 0x3c, 0x00,
- 0xc4, 0x68, 0x00, 0x00, 0x01, 0x39, 0x75, 0x5c,
- 0x1f, 0x18, 0x3f, 0x7c, 0xbd, 0x42, 0xf3, 0xd1,
- 0x01, 0x38, 0x00, 0xd5, 0x63, 0x20, 0x00, 0x29,
- 0xf4, 0xd1, 0x18, 0x4e, 0x50, 0x1c, 0xf1, 0x6b,
- 0x1a, 0x4a, 0x10, 0x1c, 0x01, 0x38, 0xfd, 0xd1,
- 0xf0, 0x6b, 0x88, 0x42, 0x01, 0xd0, 0x01, 0x1c,
- 0xf7, 0xe7, 0x02, 0x27, 0x37, 0x63, 0x16, 0x4d,
- 0x90, 0x21, 0x28, 0x1c, 0xf9, 0xf7, 0xce, 0xfd,
- 0x3c, 0x00, 0x00, 0x69, 0x00, 0x00, 0x28, 0x1c,
- 0x28, 0x30, 0x28, 0x60, 0x28, 0x1c, 0x10, 0x30,
- 0x2f, 0x81, 0xe8, 0x60, 0x28, 0x1c, 0x20, 0x30,
- 0x28, 0x61, 0x04, 0x21, 0x00, 0xe0, 0x0c, 0xe0,
- 0x29, 0x83, 0xe8, 0x61, 0xed, 0x62, 0x75, 0x63,
- 0x01, 0x20, 0x30, 0x63, 0x22, 0x1c, 0x89, 0x20,
- 0x01, 0x99, 0x0a, 0xf0, 0x38, 0xf8, 0x00, 0x20,
- 0x28, 0x63, 0xfe, 0xbd, 0x00, 0x00, 0x08, 0x57,
- 0x01, 0x00, 0x3c, 0x00, 0x3c, 0x69, 0x00, 0x00,
- 0x00, 0x30, 0x07, 0x00, 0x10, 0x8e, 0x01, 0x00,
- 0x74, 0xff, 0x01, 0x00, 0x09, 0x57, 0x01, 0x00,
- 0x20, 0x4e, 0x00, 0x00, 0xe4, 0xfe, 0x01, 0x00,
- 0x80, 0xb5, 0x13, 0x28, 0x1e, 0xd0, 0xf0, 0x28,
- 0x16, 0xd1, 0x09, 0xf0, 0xb5, 0xf9, 0x00, 0x28,
- 0x13, 0xd1, 0x0d, 0xf0, 0xbf, 0xfa, 0x11, 0xf0,
- 0x0d, 0xfc, 0x00, 0x22, 0x04, 0x21, 0xc4, 0x20,
- 0x0c, 0xf0, 0x1c, 0xff, 0x3c, 0x00, 0x78, 0x69,
- 0x00, 0x00, 0x09, 0x48, 0x00, 0x21, 0x00, 0x78,
- 0x05, 0xf0, 0x3f, 0xfd, 0x05, 0xf0, 0x93, 0xf8,
- 0x07, 0x49, 0x01, 0x20, 0x08, 0x60, 0x80, 0xbd,
- 0x01, 0x1c, 0x01, 0x20, 0xfa, 0xf7, 0x87, 0xfc,
- 0x80, 0xbd, 0x00, 0xf0, 0x32, 0xf8, 0x80, 0xbd,
- 0x00, 0x00, 0x6a, 0x57, 0x01, 0x00, 0x3c, 0xd9,
- 0x01, 0x00, 0xb0, 0xb5, 0x0c, 0xf0, 0xff, 0xf9,
- 0x0b, 0x49, 0x02, 0x24, 0x48, 0x60, 0x3c, 0x00,
- 0xb4, 0x69, 0x00, 0x00, 0x0a, 0x48, 0x04, 0x61,
- 0x01, 0x20, 0x77, 0x21, 0x09, 0x03, 0x08, 0x61,
- 0x08, 0x4d, 0x68, 0x68, 0x80, 0x07, 0x02, 0xd4,
- 0x68, 0x68, 0x20, 0x43, 0x68, 0x60, 0x09, 0xf0,
- 0xc7, 0xf9, 0x68, 0x68, 0xa0, 0x43, 0x68, 0x60,
- 0x00, 0x20, 0xb0, 0xbd, 0xe0, 0x60, 0x01, 0x00,
- 0x00, 0x30, 0x07, 0x00, 0x00, 0x01, 0x07, 0x00,
- 0x80, 0xb5, 0x01, 0x23, 0x03, 0x22, 0x00, 0x21,
- 0x3c, 0x00, 0xf0, 0x69, 0x00, 0x00, 0x02, 0x20,
- 0x3c, 0xf0, 0xf1, 0xfa, 0x00, 0x28, 0x01, 0xd0,
- 0xfa, 0xf7, 0x81, 0xfc, 0x80, 0xbd, 0x1c, 0xb5,
- 0xfc, 0xf7, 0xf5, 0xfa, 0xfa, 0xf7, 0x19, 0xfe,
- 0x01, 0xf0, 0x03, 0xf9, 0x00, 0x24, 0x21, 0x1c,
- 0x68, 0x46, 0x01, 0xf0, 0xe2, 0xfb, 0x00, 0xab,
- 0x18, 0x78, 0x01, 0x28, 0x03, 0xd0, 0x02, 0x28,
- 0x01, 0xd0, 0x03, 0x28, 0x01, 0xd1, 0x0c, 0xf0,
- 0xb2, 0xfc, 0x3c, 0x00, 0x2c, 0x6a, 0x00, 0x00,
- 0x01, 0x34, 0x24, 0x06, 0x24, 0x16, 0x06, 0x2c,
- 0xec, 0xdb, 0xfa, 0xf7, 0x09, 0xf9, 0xfa, 0xf7,
- 0xe7, 0xfc, 0xfa, 0xf7, 0x33, 0xfa, 0xfa, 0xf7,
- 0x6d, 0xfa, 0xfb, 0xf7, 0xdf, 0xff, 0x05, 0xf0,
- 0x4d, 0xfb, 0x06, 0xf0, 0x81, 0xfc, 0x0b, 0xf0,
- 0x7d, 0xf9, 0x07, 0xf0, 0x29, 0xfc, 0x11, 0x48,
- 0x10, 0x21, 0x01, 0x60, 0x09, 0x01, 0x01, 0x60,
- 0xc9, 0x02, 0x01, 0x60, 0x3c, 0x00, 0x68, 0x6a,
- 0x00, 0x00, 0x89, 0x00, 0x01, 0x60, 0x20, 0x21,
- 0x01, 0x60, 0x04, 0x21, 0x01, 0x60, 0x08, 0x21,
- 0x01, 0x60, 0x40, 0x21, 0x01, 0x60, 0x80, 0x21,
- 0x01, 0x60, 0x89, 0x00, 0x01, 0x60, 0x49, 0x00,
- 0x01, 0x60, 0x49, 0x00, 0x01, 0x60, 0x49, 0x00,
- 0x01, 0x60, 0xc9, 0x03, 0x01, 0x60, 0x89, 0x0b,
- 0x01, 0x60, 0xf9, 0xf7, 0x41, 0xff, 0x1c, 0xbd,
- 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x3c, 0x00,
- 0xa4, 0x6a, 0x00, 0x00, 0x80, 0xb5, 0x3b, 0xf0,
- 0x4f, 0xf8, 0x3b, 0xf0, 0x7d, 0xf9, 0xfa, 0xf7,
- 0x4b, 0xf9, 0x80, 0xbd, 0xf8, 0xb5, 0x00, 0x25,
- 0x00, 0x24, 0x00, 0x22, 0x00, 0x28, 0x71, 0xd0,
- 0x43, 0x4f, 0xb9, 0x68, 0x0b, 0x1a, 0xbb, 0x60,
- 0xf8, 0x68, 0x39, 0x1c, 0x01, 0x30, 0xf8, 0x60,
- 0x89, 0x6a, 0x00, 0x2b, 0x1e, 0xdc, 0x02, 0x24,
- 0x00, 0x29, 0x06, 0xda, 0xfb, 0x69, 0x98, 0x42,
- 0x3c, 0x00, 0xe0, 0x6a, 0x00, 0x00, 0x06, 0xdd,
- 0x3b, 0x69, 0x98, 0x42, 0x09, 0xdd, 0x07, 0xe0,
- 0xbb, 0x69, 0x98, 0x42, 0x01, 0xdc, 0x01, 0x24,
- 0x03, 0xe0, 0x7b, 0x69, 0x98, 0x42, 0x00, 0xdd,
- 0x03, 0x24, 0x78, 0x6a, 0x00, 0x28, 0x08, 0xd0,
- 0x00, 0x20, 0x78, 0x62, 0x03, 0x2c, 0x01, 0xd1,
- 0x02, 0x24, 0x02, 0xe0, 0x02, 0x2c, 0x00, 0xd1,
- 0x01, 0x24, 0x2e, 0x48, 0x01, 0x2c, 0x00, 0x79,
- 0x18, 0xd1, 0x3c, 0x00, 0x1c, 0x6b, 0x00, 0x00,
- 0xbb, 0x78, 0x99, 0x42, 0x15, 0xda, 0x3b, 0x78,
- 0x7b, 0x70, 0x39, 0x70, 0x01, 0x31, 0xb9, 0x62,
- 0x01, 0xd5, 0x01, 0x31, 0xb9, 0x62, 0xb9, 0x6a,
- 0x01, 0x25, 0x99, 0x42, 0x03, 0xd1, 0x04, 0x28,
- 0x04, 0xd2, 0x01, 0x30, 0x00, 0xe0, 0x00, 0x20,
- 0x38, 0x71, 0x01, 0x22, 0x00, 0x29, 0x33, 0xda,
- 0x27, 0xe0, 0x03, 0x2c, 0x35, 0xd1, 0x00, 0x26,
- 0x00, 0x28, 0x07, 0xd0, 0x3c, 0x00, 0x58, 0x6b,
- 0x00, 0x00, 0x1e, 0x49, 0x81, 0x40, 0x38, 0x6a,
- 0x08, 0x18, 0x0c, 0xf0, 0x5c, 0xf8, 0x00, 0x28,
- 0x2c, 0xd0, 0x1b, 0x48, 0x00, 0x78, 0x40, 0x07,
- 0x05, 0xd5, 0xf8, 0x68, 0x39, 0x69, 0x88, 0x42,
- 0x01, 0xdb, 0x03, 0x23, 0xfe, 0x56, 0xb8, 0x6a,
- 0xb0, 0x42, 0x12, 0xdd, 0x01, 0x21, 0x79, 0x62,
- 0x39, 0x78, 0x01, 0x25, 0x79, 0x70, 0x38, 0x70,
- 0x01, 0x38, 0xb8, 0x62, 0x88, 0x42, 0x3c, 0x00,
- 0x94, 0x6b, 0x00, 0x00, 0x01, 0xd0, 0x00, 0x21,
- 0x39, 0x71, 0x00, 0x28, 0x0c, 0xda, 0x07, 0x20,
- 0x38, 0x71, 0x00, 0xe0, 0x12, 0xe0, 0x07, 0xe0,
- 0x38, 0x79, 0x00, 0x28, 0x09, 0xd0, 0xff, 0x30,
- 0x38, 0x71, 0x06, 0xe0, 0x00, 0x2a, 0x02, 0xd0,
- 0x0c, 0xf0, 0xf8, 0xf8, 0x38, 0x62, 0x00, 0x2c,
- 0x04, 0xd0, 0xfe, 0xf7, 0x97, 0xfd, 0x29, 0x1c,
- 0x08, 0xf0, 0xfc, 0xfb, 0xf8, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0x6b, 0x00, 0x00, 0xac, 0x7e,
- 0x01, 0x00, 0x50, 0xc3, 0x00, 0x00, 0x1d, 0x75,
- 0x01, 0x00, 0x80, 0xb5, 0x10, 0x68, 0x00, 0x28,
- 0x02, 0xd0, 0x00, 0xf0, 0x0a, 0xf8, 0x80, 0xbd,
- 0x03, 0x48, 0xc0, 0x69, 0x80, 0x68, 0x08, 0xf0,
- 0xb2, 0xf9, 0x80, 0xbd, 0x00, 0x00, 0x84, 0x6a,
- 0x01, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0xc0, 0x68,
- 0xc0, 0x68, 0x00, 0x28, 0x01, 0xd1, 0xfa, 0xf7,
- 0x7a, 0xfb, 0x3c, 0x00, 0x0c, 0x6c, 0x00, 0x00,
- 0xe0, 0x68, 0xe1, 0x69, 0xc0, 0x68, 0x23, 0x1c,
- 0x01, 0x4a, 0xff, 0xf7, 0xd7, 0xfb, 0x10, 0xbd,
- 0xdd, 0x6b, 0x00, 0x00, 0xb0, 0xb5, 0x05, 0x1c,
- 0x0c, 0x21, 0x00, 0x20, 0xfa, 0xf7, 0xd6, 0xfc,
- 0x04, 0x1c, 0x00, 0x68, 0x00, 0x21, 0x41, 0x60,
- 0x01, 0x60, 0x29, 0x88, 0x01, 0x81, 0x69, 0x88,
- 0x41, 0x81, 0x29, 0x1c, 0xff, 0x31, 0x21, 0x31,
- 0x20, 0x1c, 0x03, 0xf0, 0x3c, 0x00, 0x48, 0x6c,
- 0x00, 0x00, 0x77, 0xf9, 0x29, 0x1c, 0xff, 0x31,
- 0x46, 0x31, 0x20, 0x1c, 0x03, 0xf0, 0x71, 0xf9,
- 0x29, 0x1c, 0xff, 0x31, 0x50, 0x31, 0x20, 0x1c,
- 0x03, 0xf0, 0x6b, 0xf9, 0x29, 0x1c, 0xff, 0x31,
- 0x43, 0x31, 0x20, 0x1c, 0x03, 0xf0, 0x65, 0xf9,
- 0x29, 0x1c, 0xff, 0x31, 0x63, 0x31, 0x20, 0x1c,
- 0x03, 0xf0, 0x5f, 0xf9, 0x04, 0x48, 0x00, 0x68,
- 0x00, 0x28, 0x02, 0xd0, 0x20, 0x1c, 0x3c, 0x00,
- 0x84, 0x6c, 0x00, 0x00, 0xff, 0xf7, 0x8e, 0xfd,
- 0x20, 0x1c, 0xb0, 0xbd, 0xe4, 0x62, 0x01, 0x00,
- 0xf8, 0xb5, 0x05, 0x1c, 0x0c, 0x1c, 0x04, 0xd1,
- 0x05, 0x21, 0x18, 0x20, 0xfa, 0xf7, 0x02, 0xfb,
- 0x4d, 0xe0, 0x29, 0x1c, 0x12, 0x31, 0x06, 0x22,
- 0x60, 0x1c, 0xf9, 0xf7, 0x25, 0xfc, 0x22, 0x1c,
- 0x30, 0x32, 0x00, 0x26, 0x00, 0x21, 0x00, 0x20,
- 0x16, 0x70, 0x34, 0x4b, 0x1b, 0x5c, 0x2f, 0x8a,
- 0x3c, 0x00, 0xc0, 0x6c, 0x00, 0x00, 0xdf, 0x40,
- 0xff, 0x07, 0x07, 0xd5, 0x17, 0x78, 0x01, 0x33,
- 0x01, 0x37, 0x17, 0x70, 0x67, 0x18, 0x30, 0x37,
- 0x7b, 0x70, 0x01, 0x31, 0x01, 0x30, 0x0e, 0x28,
- 0xee, 0xdb, 0xa8, 0x7b, 0x60, 0x72, 0x10, 0x78,
- 0x00, 0x28, 0x2b, 0xd0, 0x2a, 0x48, 0x1e, 0x21,
- 0x09, 0x5c, 0x27, 0x1c, 0x10, 0x37, 0x21, 0x72,
- 0x01, 0x68, 0x61, 0x81, 0xc1, 0x89, 0x21, 0x77,
- 0x81, 0x89, 0x3c, 0x00, 0xfc, 0x6c, 0x00, 0x00,
- 0x79, 0x73, 0xc1, 0x8a, 0xa1, 0x81, 0x01, 0x8b,
- 0xe1, 0x81, 0x42, 0x8a, 0x21, 0x1c, 0x60, 0x31,
- 0x4a, 0x80, 0x82, 0x8a, 0x8a, 0x80, 0x1f, 0x49,
- 0x2c, 0x31, 0x09, 0x7a, 0x00, 0x29, 0x09, 0xd0,
- 0x02, 0x29, 0x0a, 0xd1, 0x01, 0x22, 0x62, 0x62,
- 0x62, 0x72, 0x42, 0x8b, 0xa2, 0x81, 0x80, 0x8b,
- 0xe0, 0x81, 0x03, 0xe0, 0x01, 0x21, 0x66, 0x62,
- 0x00, 0xe0, 0x00, 0x21, 0x3c, 0x00, 0x38, 0x6d,
- 0x00, 0x00, 0xe8, 0x7b, 0x08, 0x40, 0x01, 0xd1,
- 0x00, 0x20, 0xf8, 0xbd, 0xa8, 0x68, 0x43, 0x1c,
- 0x09, 0xd0, 0x22, 0x1c, 0x12, 0x32, 0x00, 0x92,
- 0x93, 0x1d, 0x02, 0x32, 0x21, 0x1c, 0x01, 0xf0,
- 0x9c, 0xfa, 0xa0, 0x62, 0x00, 0xe0, 0xa6, 0x62,
- 0x68, 0x7b, 0x29, 0x1c, 0x1d, 0x31, 0x20, 0x74,
- 0x0b, 0x48, 0x20, 0x22, 0x20, 0x62, 0x20, 0x1c,
- 0x42, 0x30, 0xbe, 0x73, 0xf9, 0xf7, 0x3c, 0x00,
- 0x74, 0x6d, 0x00, 0x00, 0xc1, 0xfb, 0x40, 0x34,
- 0x26, 0x70, 0x68, 0x7e, 0x04, 0x49, 0x60, 0x70,
- 0x68, 0x68, 0x2c, 0x31, 0x48, 0x60, 0x01, 0x20,
- 0xda, 0xe7, 0x00, 0x00, 0x90, 0x58, 0x01, 0x00,
- 0xc8, 0x6e, 0x01, 0x00, 0x91, 0x02, 0x01, 0x00,
- 0x70, 0xb5, 0x16, 0x1c, 0x0d, 0x1c, 0x04, 0x1c,
- 0x00, 0x28, 0x06, 0xd0, 0x0c, 0x20, 0xfa, 0xf7,
- 0x47, 0xfd, 0x30, 0xc0, 0x08, 0x38, 0x06, 0x72,
- 0x3c, 0x00, 0xb0, 0x6d, 0x00, 0x00, 0x70, 0xbd,
- 0x00, 0x20, 0x70, 0xbd, 0x00, 0x00, 0x01, 0x1c,
- 0x05, 0x48, 0x80, 0xb5, 0x00, 0x68, 0x01, 0xd0,
- 0x01, 0x21, 0x00, 0xe0, 0x00, 0x21, 0xfc, 0xf7,
- 0xa0, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0x0c, 0x79,
- 0x01, 0x00, 0x70, 0xb5, 0x0e, 0x1c, 0x04, 0x1c,
- 0x00, 0x28, 0x01, 0xd1, 0xfa, 0xf7, 0x8f, 0xfa,
- 0x06, 0x4d, 0x28, 0x68, 0x00, 0x28, 0x01, 0xd0,
- 0xfa, 0xf7, 0x3c, 0x00, 0xec, 0x6d, 0x00, 0x00,
- 0x89, 0xfa, 0x04, 0x48, 0x2e, 0x60, 0xc4, 0x60,
- 0x01, 0x21, 0x01, 0x70, 0x70, 0xbd, 0x00, 0x00,
- 0xa8, 0x7e, 0x01, 0x00, 0x30, 0x00, 0x07, 0x00,
- 0x10, 0xb5, 0x07, 0x4c, 0x20, 0x68, 0x00, 0x28,
- 0x01, 0xd1, 0xfa, 0xf7, 0x77, 0xfa, 0x05, 0x48,
- 0x00, 0x69, 0x21, 0x68, 0xf9, 0xf7, 0xdf, 0xfa,
- 0x00, 0x20, 0x20, 0x60, 0x10, 0xbd, 0x00, 0x00,
- 0xa8, 0x7e, 0x01, 0x00, 0x3c, 0x00, 0x28, 0x6e,
- 0x00, 0x00, 0x30, 0x00, 0x07, 0x00, 0x01, 0x20,
- 0x05, 0x49, 0xc0, 0x06, 0x80, 0xb5, 0x08, 0x60,
- 0x00, 0x22, 0x03, 0x21, 0x54, 0x20, 0x0c, 0xf0,
- 0xb8, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x80, 0xb5, 0x00, 0x22, 0x04, 0x21,
- 0xc4, 0x20, 0x0c, 0xf0, 0xae, 0xfc, 0x80, 0xbd,
- 0x00, 0x00, 0x04, 0x48, 0x80, 0xb5, 0x00, 0x88,
- 0x02, 0x49, 0xff, 0xf7, 0xb8, 0xff, 0x3c, 0x00,
- 0x64, 0x6e, 0x00, 0x00, 0x80, 0xbd, 0x00, 0x00,
- 0x75, 0x4b, 0x00, 0x00, 0xc8, 0x74, 0x01, 0x00,
- 0xf8, 0xb5, 0x06, 0x1c, 0x31, 0x48, 0x00, 0x25,
- 0xc0, 0x68, 0x0c, 0x1c, 0x00, 0x28, 0x30, 0xd0,
- 0x2e, 0x48, 0x2f, 0x4f, 0x04, 0x30, 0x00, 0x78,
- 0x38, 0x76, 0x2c, 0x48, 0x04, 0x30, 0x40, 0x78,
- 0x38, 0x81, 0x00, 0x2a, 0x0b, 0xd0, 0xf9, 0xf7,
- 0xa5, 0xfa, 0x1f, 0x20, 0xb8, 0x76, 0x20, 0x1c,
- 0x3c, 0x00, 0xa0, 0x6e, 0x00, 0x00, 0xf9, 0xf7,
- 0xf6, 0xf9, 0x25, 0x48, 0x04, 0x30, 0x80, 0x78,
- 0xb8, 0x76, 0x43, 0xe0, 0x25, 0x48, 0x22, 0x49,
- 0x84, 0x42, 0x4d, 0x69, 0x02, 0xd2, 0x6c, 0x43,
- 0xe4, 0x0b, 0x0f, 0xe0, 0x1f, 0x48, 0x21, 0x1c,
- 0x80, 0x6a, 0x00, 0x90, 0xf9, 0xf7, 0x23, 0xfc,
- 0x00, 0x99, 0x02, 0x1c, 0x4a, 0x43, 0xa1, 0x1a,
- 0x1a, 0x4a, 0x69, 0x43, 0x52, 0x6a, 0xc9, 0x0b,
- 0x50, 0x43, 0x3c, 0x00, 0xdc, 0x6e, 0x00, 0x00,
- 0x44, 0x18, 0x02, 0x2c, 0x01, 0xd8, 0x00, 0x20,
- 0xf8, 0xbd, 0xf9, 0xf7, 0x7d, 0xfa, 0x1f, 0x20,
- 0xb8, 0x76, 0x20, 0x1c, 0xf9, 0xf7, 0xae, 0xf9,
- 0x04, 0x1c, 0x11, 0x48, 0x04, 0x30, 0x80, 0x78,
- 0xb8, 0x76, 0x0f, 0x4f, 0x7d, 0x6a, 0xac, 0x42,
- 0x04, 0xd2, 0x20, 0x1c, 0xff, 0xf7, 0x22, 0xfc,
- 0x05, 0x1c, 0x12, 0xe0, 0x21, 0x1c, 0x28, 0x1c,
- 0xf9, 0xf7, 0xfc, 0xfb, 0x3c, 0x00, 0x18, 0x6f,
- 0x00, 0x00, 0x06, 0x1c, 0x68, 0x43, 0x20, 0x1a,
- 0xff, 0xf7, 0x17, 0xfc, 0x05, 0x1c, 0x00, 0x24,
- 0x04, 0xe0, 0x78, 0x6a, 0xff, 0xf7, 0x11, 0xfc,
- 0x45, 0x19, 0x01, 0x34, 0xb4, 0x42, 0xf8, 0xd3,
- 0x28, 0x1c, 0xd4, 0xe7, 0x00, 0x00, 0xc8, 0x74,
- 0x01, 0x00, 0x30, 0x00, 0x07, 0x00, 0xc0, 0xc6,
- 0x2d, 0x00, 0x01, 0x1c, 0x7d, 0x20, 0x80, 0xb5,
- 0xc0, 0x00, 0xf9, 0xf7, 0x72, 0xfb, 0x3c, 0x00,
- 0x54, 0x6f, 0x00, 0x00, 0x02, 0x49, 0x88, 0x61,
- 0x40, 0x08, 0xc8, 0x61, 0x80, 0xbd, 0x00, 0x00,
- 0xc8, 0x74, 0x01, 0x00, 0x10, 0xb5, 0x06, 0x4c,
- 0x21, 0x1c, 0x00, 0x20, 0x0b, 0xf0, 0x42, 0xfa,
- 0x21, 0x1c, 0x00, 0x20, 0x0b, 0xf0, 0x0a, 0xfa,
- 0x00, 0xf0, 0x68, 0xfe, 0x10, 0xbd, 0x00, 0x00,
- 0x85, 0x6f, 0x00, 0x00, 0x30, 0xb5, 0x0f, 0x4d,
- 0x2a, 0x78, 0x04, 0x2a, 0x19, 0xd8, 0x00, 0x2a,
- 0x3c, 0x00, 0x90, 0x6f, 0x00, 0x00, 0x17, 0xd0,
- 0x00, 0x21, 0x07, 0xe0, 0x4b, 0x00, 0x5b, 0x18,
- 0x5c, 0x19, 0x01, 0x23, 0xe4, 0x56, 0x84, 0x42,
- 0x02, 0xda, 0x01, 0x31, 0x8a, 0x42, 0xf5, 0xdc,
- 0x8a, 0x42, 0x00, 0xd1, 0x01, 0x39, 0x48, 0x00,
- 0x40, 0x18, 0x40, 0x19, 0x81, 0x78, 0x02, 0x4a,
- 0x34, 0x3a, 0x11, 0x70, 0xc0, 0x78, 0x50, 0x70,
- 0x30, 0xbd, 0x00, 0x75, 0x01, 0x00, 0x30, 0xb5,
- 0x11, 0x1c, 0x3c, 0x00, 0xcc, 0x6f, 0x00, 0x00,
- 0x38, 0x31, 0x85, 0xb0, 0x91, 0x62, 0x08, 0x21,
- 0x11, 0x86, 0x00, 0x23, 0x14, 0x1c, 0x01, 0x1c,
- 0x53, 0x63, 0xc0, 0x68, 0x15, 0x4d, 0x0b, 0xe0,
- 0x02, 0x68, 0xaa, 0x42, 0x06, 0xd1, 0xc2, 0x68,
- 0xca, 0x60, 0xc3, 0x60, 0x03, 0x60, 0xfa, 0xf7,
- 0xd1, 0xfa, 0x03, 0xe0, 0x01, 0x1c, 0xc0, 0x68,
- 0x00, 0x28, 0xf1, 0xd1, 0x22, 0x1c, 0x40, 0x32,
- 0x08, 0x21, 0x20, 0x68, 0x3c, 0x00, 0x08, 0x70,
- 0x00, 0x00, 0xfa, 0xf7, 0x64, 0xfb, 0x0b, 0x49,
- 0x20, 0x1c, 0x48, 0x30, 0x02, 0x90, 0x04, 0x94,
- 0x03, 0x91, 0xe0, 0x69, 0x82, 0x88, 0x01, 0x68,
- 0x6e, 0x20, 0x01, 0x92, 0x00, 0x91, 0x22, 0x1c,
- 0x56, 0x32, 0x03, 0x5d, 0x21, 0x1c, 0x28, 0x31,
- 0x20, 0x68, 0xff, 0xf7, 0x58, 0xfa, 0x05, 0xb0,
- 0x30, 0xbd, 0xa0, 0x7e, 0x01, 0x00, 0xd5, 0x70,
- 0x00, 0x00, 0x1c, 0xb5, 0x07, 0x49, 0x3c, 0x00,
- 0x44, 0x70, 0x00, 0x00, 0x02, 0x1c, 0x01, 0x90,
- 0x00, 0x91, 0xc0, 0x69, 0x13, 0x1c, 0x84, 0x88,
- 0x01, 0x68, 0x10, 0x68, 0x48, 0x33, 0x22, 0x1c,
- 0xff, 0xf7, 0x08, 0xf9, 0x1c, 0xbd, 0x00, 0x00,
- 0xc9, 0x6f, 0x00, 0x00, 0x10, 0xb5, 0x14, 0x1c,
- 0x18, 0x48, 0x03, 0xf0, 0x89, 0xf8, 0xa0, 0x42,
- 0x01, 0xd0, 0xfa, 0xf7, 0x45, 0xf9, 0x04, 0x22,
- 0x20, 0x1c, 0x40, 0x30, 0xa1, 0x6a, 0xf9, 0xf7,
- 0x3c, 0x00, 0x80, 0x70, 0x00, 0x00, 0xbd, 0xf9,
- 0x00, 0x28, 0x02, 0xd1, 0x01, 0x20, 0x20, 0x62,
- 0x05, 0xe0, 0x00, 0x20, 0x20, 0x62, 0x84, 0x20,
- 0x00, 0x5d, 0x00, 0x28, 0x03, 0xd1, 0x20, 0x1c,
- 0x09, 0xf0, 0x23, 0xfb, 0x05, 0xe0, 0x20, 0x68,
- 0xfa, 0xf7, 0x79, 0xfa, 0x20, 0x1c, 0xfa, 0xf7,
- 0xa4, 0xfb, 0xe0, 0x69, 0x80, 0x79, 0x06, 0x28,
- 0x06, 0xd1, 0x20, 0x6a, 0x06, 0x49, 0x00, 0x28,
- 0x03, 0xd0, 0x3c, 0x00, 0xbc, 0x70, 0x00, 0x00,
- 0x08, 0x69, 0x01, 0x30, 0x08, 0x61, 0x10, 0xbd,
- 0x48, 0x69, 0x01, 0x30, 0x48, 0x61, 0x10, 0xbd,
- 0xa0, 0x6a, 0x01, 0x00, 0x28, 0x61, 0x01, 0x00,
- 0x1c, 0xb5, 0x14, 0x1c, 0x15, 0x48, 0x03, 0xf0,
- 0x51, 0xf8, 0xa0, 0x42, 0x01, 0xd0, 0xfa, 0xf7,
- 0x0d, 0xf9, 0x20, 0x1c, 0x4f, 0x30, 0x02, 0x79,
- 0x41, 0x79, 0x00, 0xab, 0x12, 0x02, 0x11, 0x43,
- 0xc2, 0x78, 0x12, 0x04, 0x3c, 0x00, 0xf8, 0x70,
- 0x00, 0x00, 0x11, 0x43, 0x82, 0x78, 0x12, 0x06,
- 0x11, 0x43, 0x00, 0x91, 0x01, 0x78, 0x40, 0x78,
- 0x09, 0x02, 0x08, 0x43, 0x98, 0x80, 0x20, 0x1c,
- 0x69, 0x46, 0x06, 0xf0, 0x3c, 0xf9, 0x00, 0x28,
- 0x03, 0xd1, 0x20, 0x1c, 0x09, 0xf0, 0xe3, 0xfa,
- 0x1c, 0xbd, 0x20, 0x68, 0xfa, 0xf7, 0x39, 0xfa,
- 0x20, 0x1c, 0xfa, 0xf7, 0x64, 0xfb, 0xf7, 0xe7,
- 0x00, 0x00, 0xa0, 0x6a, 0x01, 0x00, 0x3c, 0x00,
- 0x34, 0x71, 0x00, 0x00, 0xbc, 0xb5, 0x1f, 0x4d,
- 0x14, 0x1c, 0x28, 0x1c, 0xdc, 0x30, 0x03, 0xf0,
- 0x1f, 0xf8, 0xa0, 0x42, 0x01, 0xd0, 0xfa, 0xf7,
- 0xdb, 0xf8, 0xa0, 0x6c, 0x00, 0xab, 0x02, 0x78,
- 0x81, 0x78, 0x12, 0x02, 0x11, 0x43, 0x02, 0x79,
- 0x12, 0x04, 0x11, 0x43, 0x42, 0x79, 0x12, 0x06,
- 0x11, 0x43, 0x00, 0x91, 0x81, 0x79, 0xc0, 0x79,
- 0x00, 0x02, 0x08, 0x43, 0x98, 0x80, 0x20, 0x1c,
- 0x3c, 0x00, 0x70, 0x71, 0x00, 0x00, 0x69, 0x46,
- 0x06, 0xf0, 0x0b, 0xf9, 0x00, 0x28, 0x17, 0xd0,
- 0x01, 0x28, 0x0e, 0xd1, 0xed, 0x6c, 0x00, 0x2d,
- 0x0b, 0xd0, 0x80, 0x20, 0x02, 0x5d, 0xe0, 0x6c,
- 0x01, 0x21, 0x00, 0x28, 0x00, 0xd1, 0x00, 0x21,
- 0x60, 0x68, 0x6b, 0x46, 0x0a, 0x30, 0xf9, 0xf7,
- 0x23, 0xf9, 0x20, 0x68, 0xfa, 0xf7, 0xfb, 0xf9,
- 0x20, 0x1c, 0xfa, 0xf7, 0x26, 0xfb, 0xbc, 0xbd,
- 0x20, 0x1c, 0x3c, 0x00, 0xac, 0x71, 0x00, 0x00,
- 0x00, 0xf0, 0x8e, 0xfe, 0xfa, 0xe7, 0x00, 0x00,
- 0xc4, 0x69, 0x01, 0x00, 0xbc, 0xb5, 0x04, 0x1c,
- 0x40, 0x6a, 0x00, 0x25, 0x00, 0x28, 0x03, 0xd0,
- 0x60, 0x68, 0x00, 0x8b, 0x05, 0x07, 0x2d, 0x0f,
- 0x22, 0x1c, 0x40, 0x32, 0x08, 0x21, 0x20, 0x68,
- 0xfa, 0xf7, 0x7e, 0xfa, 0xa1, 0x68, 0x01, 0x95,
- 0x00, 0x91, 0x21, 0x1c, 0x22, 0x1c, 0x60, 0x32,
- 0x20, 0x68, 0x50, 0x31, 0x3c, 0x00, 0xe8, 0x71,
- 0x00, 0x00, 0x0d, 0x1c, 0xe3, 0x68, 0x09, 0xf0,
- 0xe2, 0xff, 0xe0, 0x69, 0x80, 0x6b, 0x00, 0x28,
- 0x03, 0xd1, 0xfe, 0xf7, 0xe8, 0xfa, 0x00, 0x28,
- 0x01, 0xd0, 0x18, 0x20, 0x00, 0xe0, 0x10, 0x20,
- 0x06, 0x49, 0x01, 0x94, 0x00, 0x91, 0xe1, 0x69,
- 0x08, 0x23, 0x09, 0x68, 0x0a, 0x18, 0x21, 0x1c,
- 0x28, 0x31, 0x28, 0x1c, 0xff, 0xf7, 0x87, 0xf9,
- 0xbc, 0xbd, 0x35, 0x71, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0x72, 0x00, 0x00, 0x10, 0xb5, 0x10, 0x1c,
- 0x38, 0x30, 0x90, 0x62, 0x04, 0x20, 0x10, 0x86,
- 0x00, 0x20, 0x50, 0x63, 0x10, 0x68, 0x14, 0x1c,
- 0x40, 0x32, 0x04, 0x21, 0xfa, 0xf7, 0x4a, 0xfa,
- 0x23, 0x1c, 0x21, 0x1c, 0x28, 0x31, 0x02, 0x4a,
- 0x20, 0x68, 0xff, 0xf7, 0xbd, 0xf8, 0x10, 0xbd,
- 0x65, 0x70, 0x00, 0x00, 0x0e, 0xb5, 0xc3, 0x69,
- 0x02, 0x1c, 0x98, 0x88, 0x05, 0x49, 0x02, 0x92,
- 0x3c, 0x00, 0x60, 0x72, 0x00, 0x00, 0x01, 0x91,
- 0x00, 0x90, 0x1b, 0x68, 0x10, 0x68, 0x91, 0x69,
- 0x03, 0x22, 0xff, 0xf7, 0xae, 0xf9, 0x0e, 0xbd,
- 0x00, 0x00, 0x25, 0x72, 0x00, 0x00, 0x0e, 0xb5,
- 0x02, 0x1c, 0x06, 0x49, 0x10, 0x20, 0x00, 0x90,
- 0x02, 0x92, 0x13, 0x1c, 0x01, 0x91, 0x10, 0x68,
- 0x00, 0x22, 0x70, 0x33, 0x00, 0x21, 0xff, 0xf7,
- 0x9c, 0xf9, 0x0e, 0xbd, 0x00, 0x00, 0x25, 0x72,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0x72, 0x00, 0x00,
- 0x10, 0xb5, 0x03, 0x1c, 0x00, 0x21, 0x00, 0x20,
- 0x08, 0x4c, 0x00, 0xe0, 0x01, 0x31, 0xca, 0x00,
- 0xa2, 0x58, 0x9a, 0x42, 0x02, 0xd0, 0x0b, 0x29,
- 0xf8, 0xd3, 0x10, 0xbd, 0x0b, 0x29, 0xfc, 0xd2,
- 0xc9, 0x00, 0x09, 0x19, 0x00, 0x20, 0x08, 0x71,
- 0x01, 0x20, 0x10, 0xbd, 0x38, 0x58, 0x01, 0x00,
- 0x8c, 0xb5, 0x00, 0xab, 0x86, 0x21, 0x19, 0x80,
- 0x01, 0x1c, 0x04, 0x48, 0x3c, 0x00, 0xd8, 0x72,
- 0x00, 0x00, 0x06, 0xf0, 0xee, 0xfe, 0x01, 0x90,
- 0x68, 0x46, 0x06, 0xf0, 0xfa, 0xf8, 0x8c, 0xbd,
- 0x00, 0x00, 0x70, 0x7c, 0x01, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x0d, 0x48, 0x0d, 0x49, 0x94, 0xb0,
- 0x04, 0x80, 0x06, 0x22, 0x18, 0x31, 0x0c, 0x30,
- 0xf9, 0xf7, 0xfb, 0xf8, 0x01, 0xa8, 0x07, 0xf0,
- 0xa2, 0xf8, 0x0c, 0x20, 0x09, 0xa9, 0x48, 0x72,
- 0x00, 0xab, 0x1c, 0x80, 0x02, 0x21, 0x3c, 0x00,
- 0x14, 0x73, 0x00, 0x00, 0x68, 0x46, 0x03, 0xf0,
- 0xdb, 0xff, 0x04, 0x90, 0x01, 0xa8, 0x06, 0xf0,
- 0xd1, 0xf8, 0x14, 0xb0, 0x10, 0xbd, 0x00, 0x00,
- 0x58, 0x7c, 0x01, 0x00, 0x80, 0xb5, 0x04, 0xf0,
- 0x45, 0xfe, 0x05, 0xf0, 0x53, 0xfa, 0x80, 0xbd,
- 0x10, 0xb5, 0x19, 0x4c, 0xe0, 0x68, 0x00, 0x28,
- 0x06, 0xd0, 0x61, 0x1c, 0x08, 0x78, 0x00, 0x28,
- 0x03, 0xd1, 0x48, 0x78, 0xff, 0x30, 0x08, 0x70,
- 0x3c, 0x00, 0x50, 0x73, 0x00, 0x00, 0x10, 0xbd,
- 0xff, 0x30, 0x00, 0x06, 0x00, 0x0e, 0x08, 0x70,
- 0xa1, 0x68, 0x00, 0x29, 0xf7, 0xd0, 0x00, 0x28,
- 0xf5, 0xd1, 0x0e, 0x48, 0x54, 0x30, 0x81, 0x78,
- 0x00, 0x29, 0x03, 0xd1, 0xc1, 0x78, 0xff, 0x31,
- 0x81, 0x70, 0x10, 0xbd, 0xff, 0x31, 0x09, 0x06,
- 0x09, 0x0e, 0x81, 0x70, 0xf9, 0xd1, 0xa1, 0x69,
- 0x00, 0x29, 0xf6, 0xd0, 0x80, 0x88, 0x03, 0xf0,
- 0xd0, 0xfb, 0x3c, 0x00, 0x8c, 0x73, 0x00, 0x00,
- 0x04, 0x4a, 0x01, 0x1c, 0x5c, 0x32, 0x0c, 0x32,
- 0x05, 0xca, 0x80, 0x1a, 0xa2, 0x69, 0xf9, 0xf7,
- 0x1f, 0xf8, 0x10, 0xbd, 0x44, 0x7d, 0x01, 0x00,
- 0xf0, 0xb5, 0x04, 0x1c, 0x40, 0x68, 0x00, 0x25,
- 0x01, 0x79, 0x00, 0x22, 0x85, 0xb0, 0xc9, 0x07,
- 0xcb, 0x17, 0x69, 0x49, 0x01, 0x33, 0x89, 0x6a,
- 0x10, 0x29, 0x05, 0xd3, 0x66, 0x49, 0xc0, 0x39,
- 0x08, 0x6b, 0x01, 0x30, 0x3c, 0x00, 0xc8, 0x73,
- 0x00, 0x00, 0x08, 0x63, 0x8e, 0xe0, 0x21, 0x68,
- 0x0e, 0x68, 0xf6, 0x78, 0xb7, 0x06, 0xff, 0x0f,
- 0xb6, 0x09, 0x00, 0x2b, 0x04, 0x97, 0x06, 0xd0,
- 0x63, 0x69, 0x1f, 0x1c, 0x1b, 0x6a, 0x50, 0x37,
- 0x9f, 0x42, 0x00, 0xd1, 0x01, 0x25, 0x00, 0x2d,
- 0x02, 0xd0, 0x63, 0x69, 0x1b, 0x6a, 0x04, 0xe0,
- 0x3c, 0x23, 0x59, 0x4f, 0x73, 0x43, 0xdb, 0x19,
- 0x04, 0x33, 0xe3, 0x61, 0x9f, 0x88, 0x3c, 0x00,
- 0x04, 0x74, 0x00, 0x00, 0x00, 0x2f, 0x70, 0xd0,
- 0x9b, 0x79, 0x02, 0x2b, 0x6e, 0xd0, 0x04, 0x2b,
- 0x17, 0xd0, 0x06, 0x2b, 0x69, 0xd1, 0x08, 0x68,
- 0xa0, 0x61, 0x08, 0x89, 0x04, 0x38, 0x08, 0x81,
- 0x20, 0x68, 0x01, 0x68, 0x04, 0x31, 0x01, 0x60,
- 0x4e, 0x49, 0x00, 0x29, 0x5d, 0xd0, 0x04, 0x9f,
- 0xba, 0x42, 0x5a, 0xd1, 0x49, 0x48, 0x22, 0x1c,
- 0x1c, 0x30, 0x02, 0xf0, 0x65, 0xfe, 0x05, 0xb0,
- 0x3c, 0x00, 0x40, 0x74, 0x00, 0x00, 0xf0, 0xbd,
- 0x09, 0x68, 0x25, 0x1c, 0xca, 0x79, 0x40, 0x35,
- 0x26, 0x1c, 0xea, 0x73, 0x8b, 0x79, 0x22, 0x1c,
- 0x50, 0x32, 0x13, 0x70, 0x4b, 0x79, 0x60, 0x36,
- 0x53, 0x70, 0x0b, 0x79, 0x93, 0x70, 0x4b, 0x78,
- 0xd3, 0x70, 0x09, 0x78, 0x11, 0x71, 0x00, 0x21,
- 0x29, 0x72, 0x16, 0x21, 0xb1, 0x73, 0x61, 0x6a,
- 0x00, 0x29, 0x06, 0xd0, 0x01, 0x8b, 0x09, 0x07,
- 0x09, 0x0f, 0x3c, 0x00, 0x7c, 0x74, 0x00, 0x00,
- 0x29, 0x72, 0xb1, 0x81, 0x18, 0x21, 0xb1, 0x73,
- 0x01, 0x1c, 0x0a, 0x31, 0x20, 0x1c, 0x06, 0x22,
- 0x49, 0x30, 0xf9, 0xf7, 0x33, 0xf8, 0x60, 0x68,
- 0x14, 0x22, 0x01, 0x88, 0xe9, 0x82, 0x01, 0x1d,
- 0x20, 0x1c, 0x58, 0x30, 0xf9, 0xf7, 0x2a, 0xf8,
- 0xe8, 0x8a, 0x30, 0x49, 0x08, 0x40, 0x01, 0x21,
- 0x89, 0x03, 0x08, 0x43, 0xe8, 0x82, 0x70, 0x89,
- 0x0f, 0x21, 0x08, 0x40, 0x3c, 0x00, 0xb8, 0x74,
- 0x00, 0x00, 0x70, 0x81, 0x20, 0x68, 0x01, 0x89,
- 0x08, 0x39, 0x01, 0x81, 0x20, 0x68, 0x01, 0x68,
- 0x08, 0x31, 0x01, 0x60, 0x08, 0x21, 0x00, 0x20,
- 0xfa, 0xf7, 0x83, 0xf8, 0x05, 0x1c, 0x02, 0x68,
- 0x20, 0x68, 0x08, 0x21, 0xfa, 0xf7, 0xfb, 0xf8,
- 0x20, 0x68, 0xfa, 0xf7, 0x74, 0xf8, 0x21, 0x49,
- 0xc5, 0x60, 0x2f, 0xe0, 0x30, 0xe0, 0xff, 0xe7,
- 0x21, 0x68, 0x60, 0x68, 0x0a, 0x68, 0x3c, 0x00,
- 0xf4, 0x74, 0x00, 0x00, 0x80, 0x23, 0xa2, 0x64,
- 0x1e, 0x55, 0xe5, 0x64, 0x55, 0x79, 0x13, 0x79,
- 0x2d, 0x02, 0x5b, 0x19, 0x95, 0x79, 0x2d, 0x04,
- 0x5b, 0x19, 0xd5, 0x79, 0x2d, 0x06, 0x5b, 0x19,
- 0x95, 0x78, 0x12, 0x78, 0x12, 0x02, 0xaa, 0x18,
- 0x15, 0x04, 0x0a, 0x89, 0x2d, 0x0c, 0x08, 0x3a,
- 0x0a, 0x81, 0x21, 0x68, 0x0a, 0x68, 0x08, 0x32,
- 0x0a, 0x60, 0xe1, 0x69, 0x02, 0x1c, 0x0a, 0x32,
- 0x3c, 0x00, 0x30, 0x75, 0x00, 0x00, 0x01, 0xa8,
- 0x09, 0x68, 0x0b, 0xf0, 0x3e, 0xf9, 0xe0, 0x69,
- 0x2b, 0x1c, 0x01, 0x68, 0x20, 0x1c, 0x70, 0x30,
- 0x01, 0xaa, 0x0b, 0xf0, 0x86, 0xf9, 0x09, 0x49,
- 0x01, 0x22, 0x6d, 0xe7, 0x20, 0x68, 0xfa, 0xf7,
- 0x22, 0xf8, 0x20, 0x1c, 0xfa, 0xf7, 0x4d, 0xf9,
- 0x70, 0xe7, 0x84, 0x6a, 0x01, 0x00, 0x68, 0x61,
- 0x01, 0x00, 0x55, 0x72, 0x00, 0x00, 0x8f, 0xc7,
- 0xff, 0xff, 0x3c, 0x00, 0x6c, 0x75, 0x00, 0x00,
- 0x41, 0x70, 0x00, 0x00, 0x79, 0x72, 0x00, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x82, 0x20, 0xf9, 0xf7,
- 0x93, 0xfe, 0x80, 0xbd, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x80, 0xb5, 0xc0, 0x68, 0xf9, 0xf7, 0xfa, 0xff,
- 0x01, 0x20, 0x80, 0xbd, 0x3c, 0x00, 0xa8, 0x75,
- 0x00, 0x00, 0x80, 0xb5, 0x00, 0x21, 0xff, 0x20,
- 0xf9, 0xf7, 0x79, 0xfe, 0x80, 0xbd, 0x70, 0x47,
- 0x00, 0x00, 0x70, 0x47, 0x00, 0x00, 0x01, 0x20,
- 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x70, 0x47, 0x00, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x80, 0xb5, 0x06, 0x21, 0x99, 0x20,
- 0xf9, 0xf7, 0x65, 0xfe, 0x80, 0xbd, 0xb0, 0xb5,
- 0x00, 0x25, 0x01, 0x29, 0x12, 0x4c, 0x3c, 0x00,
- 0xe4, 0x75, 0x00, 0x00, 0x0f, 0xd1, 0x0a, 0xf0,
- 0x0f, 0xfc, 0x00, 0x28, 0x1d, 0xd0, 0x61, 0x78,
- 0x3c, 0x23, 0x59, 0x43, 0x09, 0x19, 0x04, 0x31,
- 0x01, 0x62, 0x61, 0x1c, 0x41, 0x62, 0x84, 0x62,
- 0x04, 0x1c, 0x50, 0x34, 0x06, 0xe0, 0x00, 0x29,
- 0x0f, 0xd1, 0x3c, 0x20, 0x50, 0x43, 0x25, 0x70,
- 0x04, 0x19, 0x04, 0x34, 0x00, 0x2c, 0x08, 0xd0,
- 0x20, 0x68, 0x00, 0x28, 0x02, 0xd0, 0x20, 0x21,
- 0x3c, 0x00, 0x20, 0x76, 0x00, 0x00, 0xf8, 0xf7,
- 0x18, 0xff, 0xa5, 0x80, 0x07, 0x20, 0xa0, 0x71,
- 0xb0, 0xbd, 0x68, 0x61, 0x01, 0x00, 0x70, 0xb5,
- 0x04, 0x1c, 0x00, 0x21, 0x01, 0xf0, 0x41, 0xfc,
- 0x60, 0x68, 0x00, 0x28, 0x01, 0xd0, 0x21, 0x68,
- 0x01, 0x60, 0x20, 0x68, 0x00, 0x28, 0x01, 0xd0,
- 0x61, 0x68, 0x41, 0x60, 0x12, 0x4e, 0x70, 0x68,
- 0xa0, 0x42, 0x01, 0xd1, 0x60, 0x68, 0x70, 0x60,
- 0xe0, 0x68, 0x3c, 0x00, 0x5c, 0x76, 0x00, 0x00,
- 0x00, 0x28, 0x0b, 0xd0, 0x00, 0x25, 0x06, 0xe0,
- 0xe0, 0x68, 0xe9, 0x00, 0x41, 0x18, 0x14, 0x20,
- 0x0b, 0xf0, 0xe2, 0xff, 0x01, 0x35, 0x30, 0x88,
- 0x85, 0x42, 0xf5, 0xdb, 0x06, 0x21, 0x20, 0x1c,
- 0x44, 0x30, 0xf8, 0xf7, 0xe9, 0xfe, 0x20, 0x6b,
- 0x00, 0x28, 0x01, 0xd0, 0xf9, 0xf7, 0x86, 0xff,
- 0xe0, 0x69, 0x00, 0x28, 0x01, 0xd0, 0xfa, 0xf7,
- 0xaf, 0xf8, 0x70, 0xbd, 0x3c, 0x00, 0x98, 0x76,
- 0x00, 0x00, 0x58, 0x75, 0x01, 0x00, 0xf0, 0xb5,
- 0x1d, 0x4f, 0x05, 0x9d, 0x3f, 0x68, 0x01, 0x26,
- 0x1c, 0x1c, 0x33, 0x1c, 0x00, 0x2f, 0x00, 0xd0,
- 0x2b, 0x1c, 0x1d, 0x06, 0x2d, 0x0e, 0x00, 0x29,
- 0x06, 0xd0, 0x11, 0x78, 0x0e, 0x23, 0x16, 0x4f,
- 0x09, 0x18, 0x09, 0x7a, 0x6b, 0x43, 0x10, 0xe0,
- 0x21, 0x78, 0x00, 0x29, 0x13, 0xd0, 0xff, 0x31,
- 0x0d, 0xe0, 0x01, 0x29, 0x01, 0xd9, 0x3c, 0x00,
- 0xd4, 0x76, 0x00, 0x00, 0x01, 0x31, 0x11, 0x70,
- 0x11, 0x78, 0x0e, 0x23, 0x0f, 0x4f, 0x49, 0x08,
- 0x11, 0x70, 0x09, 0x18, 0x09, 0x7a, 0x6b, 0x43,
- 0xdb, 0x19, 0x59, 0x5c, 0x21, 0x70, 0x21, 0x78,
- 0x00, 0x29, 0x02, 0xd1, 0x11, 0x78, 0x00, 0x29,
- 0xea, 0xd1, 0x09, 0x48, 0xc0, 0x68, 0x00, 0x28,
- 0x05, 0xd0, 0x21, 0x78, 0x30, 0x1c, 0x00, 0x29,
- 0x00, 0xd1, 0x00, 0x20, 0xf0, 0xbd, 0x01, 0x20,
- 0x3c, 0x00, 0x10, 0x77, 0x00, 0x00, 0xf0, 0xbd,
- 0x00, 0x00, 0x18, 0x67, 0x01, 0x00, 0x24, 0x67,
- 0x01, 0x00, 0x5c, 0x67, 0x01, 0x00, 0xac, 0x7c,
- 0x01, 0x00, 0x84, 0x46, 0x00, 0x20, 0xf0, 0xb5,
- 0x00, 0x29, 0x09, 0xd0, 0x11, 0x78, 0x1a, 0x4e,
- 0xb1, 0x70, 0x19, 0x4e, 0xb1, 0x78, 0x71, 0x70,
- 0x31, 0x70, 0x01, 0x21, 0x31, 0x61, 0x27, 0xe0,
- 0x16, 0x4e, 0x01, 0x23, 0xf1, 0x56, 0x63, 0x46,
- 0x5f, 0x68, 0x3c, 0x00, 0x4c, 0x77, 0x00, 0x00,
- 0x00, 0x23, 0xf6, 0x56, 0x01, 0x25, 0xcc, 0x0f,
- 0xb7, 0x42, 0x00, 0xd9, 0x00, 0x25, 0x00, 0x2c,
- 0x01, 0xd0, 0x00, 0x2d, 0xe8, 0xd1, 0x0e, 0x4f,
- 0x3b, 0x69, 0x00, 0x2b, 0x03, 0xd0, 0x00, 0x2d,
- 0x01, 0xd1, 0x16, 0x70, 0x02, 0xe0, 0x1c, 0x43,
- 0x01, 0xd1, 0x11, 0x70, 0x01, 0x20, 0x01, 0x24,
- 0x00, 0x2b, 0x00, 0xd0, 0x00, 0x24, 0x3c, 0x61,
- 0x00, 0x2c, 0x02, 0xd0, 0x3c, 0x00, 0x88, 0x77,
- 0x00, 0x00, 0x71, 0x1c, 0x39, 0x70, 0x01, 0xe0,
- 0xff, 0x31, 0x79, 0x70, 0x00, 0x28, 0xd5, 0xd0,
- 0x01, 0x20, 0xf0, 0xbd, 0x00, 0x00, 0xac, 0x7c,
- 0x01, 0x00, 0x90, 0xb5, 0x0a, 0x4c, 0x00, 0x20,
- 0x93, 0xb0, 0x20, 0x61, 0x03, 0x90, 0x68, 0x46,
- 0x00, 0x21, 0x08, 0xf0, 0x84, 0xfd, 0x20, 0x7a,
- 0x02, 0x28, 0x01, 0xd1, 0xe0, 0x6b, 0x00, 0xe0,
- 0x20, 0x6c, 0xe0, 0x61, 0x01, 0x20, 0x3c, 0x00,
- 0xc4, 0x77, 0x00, 0x00, 0x08, 0xf0, 0x8a, 0xfd,
- 0x13, 0xb0, 0x90, 0xbd, 0xf4, 0x6e, 0x01, 0x00,
- 0xf7, 0xb5, 0x05, 0x1c, 0x88, 0x88, 0x0c, 0x1c,
- 0x82, 0xb0, 0x1f, 0x4f, 0x00, 0x28, 0x00, 0xd1,
- 0x00, 0x27, 0x04, 0x98, 0x00, 0x28, 0x01, 0xd1,
- 0xf9, 0xf7, 0x8a, 0xfd, 0x1b, 0x48, 0x3b, 0x1c,
- 0x00, 0x68, 0x21, 0x1c, 0x02, 0x68, 0x28, 0x1c,
- 0x00, 0x92, 0x04, 0x9a, 0xfe, 0xf7, 0x3c, 0xf8,
- 0x3c, 0x00, 0x00, 0x78, 0x00, 0x00, 0x06, 0x1c,
- 0x22, 0xd0, 0x03, 0x21, 0x04, 0x98, 0x02, 0xf0,
- 0xb8, 0xff, 0x00, 0x28, 0x1b, 0xd0, 0x80, 0x78,
- 0x01, 0x21, 0x03, 0xf0, 0xe4, 0xff, 0xa0, 0x88,
- 0xa1, 0x8e, 0x48, 0x43, 0x00, 0x04, 0x0f, 0x49,
- 0x00, 0x0c, 0x08, 0x80, 0x03, 0xf0, 0x81, 0xf9,
- 0x01, 0x22, 0x00, 0x2d, 0x00, 0xd1, 0x00, 0x22,
- 0x01, 0x1c, 0x0e, 0x20, 0x0b, 0xf0, 0xc9, 0xfe,
- 0x00, 0x2f, 0x3c, 0x00, 0x3c, 0x78, 0x00, 0x00,
- 0x08, 0xd1, 0x00, 0x21, 0x28, 0x1c, 0x02, 0xf0,
- 0xbd, 0xfc, 0x03, 0xe0, 0x00, 0x26, 0x28, 0x1c,
- 0x00, 0xf0, 0x0a, 0xf8, 0x30, 0x1c, 0x05, 0xb0,
- 0xf0, 0xbd, 0x00, 0x00, 0xc1, 0xa1, 0x00, 0x00,
- 0xe4, 0x65, 0x01, 0x00, 0xa8, 0x7c, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0xfe, 0xf7, 0x38, 0xf8,
- 0x01, 0x21, 0x00, 0x2c, 0x00, 0xd1, 0x00, 0x21,
- 0x0e, 0x20, 0x0b, 0xf0, 0x3c, 0x00, 0x78, 0x78,
- 0x00, 0x00, 0xdd, 0xfe, 0x10, 0xbd, 0xf8, 0xb5,
- 0x07, 0x1c, 0x0b, 0xf0, 0x94, 0xfa, 0xfd, 0xf7,
- 0xbc, 0xfe, 0x00, 0x26, 0x02, 0x28, 0x1e, 0x4d,
- 0x01, 0xd0, 0x2e, 0x70, 0xf8, 0xbd, 0xfd, 0xf7,
- 0x3e, 0xf8, 0x04, 0x1c, 0xf9, 0xf7, 0x59, 0xfc,
- 0x00, 0x28, 0x14, 0xd0, 0xfd, 0xf7, 0x77, 0xf8,
- 0x00, 0x28, 0x10, 0xd0, 0x02, 0xf0, 0xf9, 0xfb,
- 0x00, 0x28, 0x01, 0xd0, 0x00, 0x24, 0x3c, 0x00,
- 0xb4, 0x78, 0x00, 0x00, 0x00, 0xe0, 0x15, 0x4c,
- 0x33, 0x1c, 0x21, 0x1c, 0x07, 0x22, 0x16, 0x20,
- 0x0b, 0xf0, 0x66, 0xff, 0x68, 0x78, 0x80, 0x21,
- 0x08, 0x43, 0x68, 0x70, 0x02, 0xf0, 0x0a, 0xfc,
- 0x00, 0x28, 0xde, 0xd1, 0x28, 0x78, 0x80, 0x07,
- 0xdb, 0xd4, 0xfd, 0xf7, 0x23, 0xf9, 0x00, 0x28,
- 0x05, 0xd1, 0x28, 0x78, 0xc0, 0x07, 0x02, 0xd5,
- 0xfd, 0xf7, 0x42, 0xf8, 0xd1, 0xe7, 0x02, 0xf0,
- 0x3c, 0x00, 0xf0, 0x78, 0x00, 0x00, 0xcd, 0xfb,
- 0x00, 0x28, 0xcd, 0xd0, 0x28, 0x78, 0x02, 0x21,
- 0x08, 0x43, 0x28, 0x70, 0x21, 0x1c, 0x38, 0x1c,
- 0xfd, 0xf7, 0xc1, 0xf8, 0xc4, 0xe7, 0x60, 0x6c,
- 0x01, 0x00, 0x71, 0x02, 0x00, 0x00, 0x10, 0xb5,
- 0x12, 0x4c, 0x01, 0x20, 0x20, 0x70, 0xfe, 0xf7,
- 0xf0, 0xf9, 0x01, 0x21, 0xa0, 0x68, 0xfb, 0xf7,
- 0xf4, 0xfe, 0xa0, 0x68, 0x03, 0xf0, 0x87, 0xff,
- 0x0d, 0x48, 0x3c, 0x00, 0x2c, 0x79, 0x00, 0x00,
- 0xa1, 0x68, 0x07, 0xf0, 0x23, 0xfd, 0xfb, 0xf7,
- 0x55, 0xff, 0xe0, 0x68, 0x00, 0x28, 0x0d, 0xd0,
- 0x09, 0x49, 0x06, 0x20, 0x0a, 0xf0, 0x24, 0xfd,
- 0x08, 0x49, 0x05, 0x20, 0x0a, 0xf0, 0x20, 0xfd,
- 0xfb, 0xf7, 0x6e, 0xff, 0x00, 0x28, 0x01, 0xd0,
- 0x05, 0xf0, 0xf8, 0xfc, 0x10, 0xbd, 0x00, 0x00,
- 0x78, 0x69, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0xe1, 0x35, 0x00, 0x00, 0x3c, 0x00, 0x68, 0x79,
- 0x00, 0x00, 0xb1, 0x35, 0x00, 0x00, 0xf0, 0xb5,
- 0x24, 0x4d, 0x23, 0x4c, 0x68, 0x7c, 0x20, 0x3c,
- 0x9b, 0xb0, 0x00, 0x28, 0x08, 0xd0, 0x02, 0x28,
- 0x03, 0xd8, 0x20, 0x89, 0x01, 0x38, 0x20, 0x81,
- 0x37, 0xe0, 0x00, 0x27, 0x6f, 0x74, 0x34, 0xe0,
- 0x1c, 0x4e, 0x68, 0x22, 0x14, 0x36, 0x31, 0x1c,
- 0x0c, 0x31, 0x01, 0xa8, 0xf8, 0xf7, 0x09, 0xfe,
- 0x18, 0x48, 0x33, 0x89, 0x01, 0x21, 0x3c, 0x00,
- 0xa4, 0x79, 0x00, 0x00, 0x44, 0x30, 0x0a, 0x1c,
- 0x00, 0x2b, 0x00, 0x7b, 0x00, 0xd1, 0x02, 0x1c,
- 0x12, 0x06, 0x12, 0x0e, 0x0d, 0xaf, 0x3a, 0x70,
- 0x94, 0x46, 0xaa, 0x7b, 0x93, 0x19, 0x30, 0x33,
- 0x5b, 0x7b, 0x7b, 0x70, 0xea, 0x73, 0x01, 0x32,
- 0x12, 0x06, 0x12, 0x0e, 0x00, 0x27, 0x82, 0x42,
- 0xaa, 0x73, 0x01, 0xd3, 0xaf, 0x73, 0x04, 0xe0,
- 0x62, 0x46, 0x01, 0x2a, 0x01, 0xd1, 0x77, 0x60,
- 0x3c, 0x00, 0xe0, 0x79, 0x00, 0x00, 0x00, 0xe0,
- 0x71, 0x60, 0x06, 0x48, 0x07, 0x4a, 0x80, 0x38,
- 0x81, 0x67, 0x42, 0x67, 0x68, 0x22, 0x01, 0xa9,
- 0xf8, 0xf7, 0xdd, 0xfd, 0x27, 0x81, 0x08, 0xf0,
- 0x12, 0xfd, 0x1b, 0xb0, 0xf0, 0xbd, 0x84, 0x66,
- 0x01, 0x00, 0xe9, 0x2e, 0x00, 0x00, 0xf1, 0xb5,
- 0x86, 0xb0, 0x06, 0x99, 0x00, 0x20, 0x88, 0x61,
- 0x06, 0x98, 0x84, 0x68, 0x80, 0x8d, 0x65, 0x68,
- 0x01, 0x28, 0x3c, 0x00, 0x1c, 0x7a, 0x00, 0x00,
- 0x4c, 0xd9, 0x35, 0x49, 0x49, 0x68, 0x05, 0x91,
- 0x00, 0x29, 0x47, 0xd0, 0x00, 0x22, 0x00, 0x21,
- 0x00, 0x23, 0x03, 0x90, 0x28, 0x1c, 0x96, 0x46,
- 0x94, 0x46, 0x06, 0x68, 0x04, 0x96, 0xf2, 0x78,
- 0x80, 0x26, 0xb2, 0x43, 0x3f, 0x2a, 0x2e, 0xd8,
- 0xd7, 0x06, 0xff, 0x0e, 0x01, 0x26, 0xbe, 0x40,
- 0x37, 0x1c, 0x04, 0x9e, 0x52, 0x09, 0xb6, 0x78,
- 0x76, 0x00, 0xb2, 0x18, 0x3c, 0x00, 0x58, 0x7a,
- 0x00, 0x00, 0x26, 0x4e, 0x92, 0x00, 0x1c, 0x36,
- 0xb2, 0x58, 0x3a, 0x40, 0x1e, 0xd0, 0x03, 0xe0,
- 0x02, 0x90, 0x02, 0x89, 0xc0, 0x68, 0x51, 0x18,
- 0x00, 0x28, 0xf9, 0xd1, 0x05, 0x98, 0x81, 0x42,
- 0x14, 0xd8, 0x70, 0x46, 0x01, 0x30, 0x86, 0x46,
- 0x00, 0x2b, 0x04, 0xd0, 0x60, 0x46, 0xd8, 0x60,
- 0x01, 0x98, 0x62, 0x46, 0xd0, 0x60, 0x03, 0x98,
- 0x01, 0x38, 0x03, 0x90, 0x06, 0xd0, 0x3c, 0x00,
- 0x94, 0x7a, 0x00, 0x00, 0x23, 0x1c, 0x24, 0x68,
- 0x60, 0x68, 0x02, 0x9a, 0x01, 0x90, 0x94, 0x46,
- 0xc9, 0xe7, 0x70, 0x46, 0x01, 0x28, 0x07, 0xd9,
- 0x2a, 0x1c, 0x00, 0x21, 0x3f, 0x20, 0x01, 0xf0,
- 0x51, 0xff, 0x05, 0x1c, 0x06, 0x98, 0x85, 0x61,
- 0x28, 0x1c, 0x01, 0xf0, 0xb3, 0xff, 0x0e, 0x48,
- 0x00, 0x68, 0x00, 0x28, 0x07, 0xd0, 0x28, 0x68,
- 0x01, 0x88, 0x40, 0x79, 0x02, 0x31, 0x09, 0x1a,
- 0x3c, 0x00, 0xd0, 0x7a, 0x00, 0x00, 0x28, 0x1c,
- 0x01, 0xf0, 0xe5, 0xfc, 0xa2, 0x68, 0x06, 0x98,
- 0xc0, 0x68, 0x06, 0x99, 0x0b, 0x69, 0x29, 0x1c,
- 0xf8, 0xf7, 0x7c, 0xfc, 0x03, 0x49, 0x08, 0x69,
- 0x01, 0x30, 0x08, 0x61, 0x07, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0xfc, 0x5a, 0x01, 0x00, 0xcc, 0x5c,
- 0x01, 0x00, 0x10, 0xb5, 0x09, 0x4a, 0x80, 0x00,
- 0x12, 0x58, 0xd0, 0x06, 0xc0, 0x0e, 0x01, 0x30,
- 0x07, 0x4b, 0x3c, 0x00, 0x0c, 0x7b, 0x00, 0x00,
- 0x1c, 0x68, 0x00, 0x2c, 0xfc, 0xdb, 0x5a, 0x60,
- 0x20, 0x22, 0x12, 0x1a, 0x91, 0x40, 0x19, 0x60,
- 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x10, 0xbd,
- 0xe8, 0x60, 0x01, 0x00, 0x30, 0x20, 0x07, 0x00,
- 0xb0, 0xb5, 0x12, 0x4c, 0x00, 0x25, 0x25, 0x70,
- 0xa1, 0x68, 0x11, 0x48, 0x07, 0xf0, 0x32, 0xfc,
- 0x65, 0x61, 0xfb, 0xf7, 0xa3, 0xfe, 0xe0, 0x68,
- 0x00, 0x28, 0x0d, 0xd0, 0x3c, 0x00, 0x48, 0x7b,
- 0x00, 0x00, 0xfb, 0xf7, 0xa4, 0xfe, 0x01, 0x21,
- 0x07, 0x20, 0x0b, 0xf0, 0x70, 0xfd, 0x0a, 0x49,
- 0x06, 0x20, 0x0a, 0xf0, 0x4c, 0xfc, 0x09, 0x49,
- 0x05, 0x20, 0x0a, 0xf0, 0x48, 0xfc, 0xa0, 0x68,
- 0x03, 0xf0, 0x67, 0xfe, 0x00, 0x21, 0xa0, 0x68,
- 0xfb, 0xf7, 0xcd, 0xfd, 0x05, 0xf0, 0xab, 0xfb,
- 0xb0, 0xbd, 0x78, 0x69, 0x01, 0x00, 0x34, 0x63,
- 0x01, 0x00, 0xe1, 0x35, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x7b, 0x00, 0x00, 0xb1, 0x35, 0x00, 0x00,
- 0x10, 0xb5, 0x0f, 0x4c, 0x20, 0x7c, 0x00, 0x28,
- 0x19, 0xd1, 0x60, 0x69, 0x00, 0x28, 0x16, 0xd1,
- 0xe0, 0x68, 0x00, 0x28, 0x06, 0xd0, 0x0a, 0x48,
- 0x1c, 0x38, 0xc0, 0x68, 0x00, 0x28, 0x01, 0xd0,
- 0x05, 0xf0, 0xce, 0xfb, 0x01, 0x21, 0x07, 0x20,
- 0x0b, 0xf0, 0x40, 0xfd, 0xa0, 0x68, 0x03, 0xf0,
- 0x3f, 0xfe, 0x04, 0x48, 0xa1, 0x68, 0x07, 0xf0,
- 0x3c, 0x00, 0xc0, 0x7b, 0x00, 0x00, 0xdb, 0xfb,
- 0x01, 0x20, 0x20, 0x70, 0x10, 0xbd, 0x78, 0x69,
- 0x01, 0x00, 0x34, 0x63, 0x01, 0x00, 0x70, 0xb5,
- 0x0e, 0x4c, 0x01, 0x22, 0xa3, 0x68, 0xe5, 0x68,
- 0x26, 0x8a, 0x5d, 0x1b, 0xb5, 0x42, 0x01, 0xd1,
- 0x00, 0x22, 0x06, 0xe0, 0x25, 0x68, 0x01, 0x33,
- 0x2e, 0x68, 0xa3, 0x60, 0x26, 0x60, 0x04, 0x35,
- 0x03, 0xc5, 0x00, 0x2a, 0x04, 0xd1, 0x01, 0x21,
- 0x9d, 0x20, 0x3c, 0x00, 0xfc, 0x7b, 0x00, 0x00,
- 0xf9, 0xf7, 0x52, 0xfb, 0x70, 0xbd, 0x03, 0x49,
- 0x02, 0x20, 0x08, 0x60, 0x70, 0xbd, 0x00, 0x00,
- 0x44, 0xe3, 0x01, 0x00, 0x40, 0x20, 0x07, 0x00,
- 0x80, 0xb5, 0x02, 0xf0, 0xb9, 0xf8, 0x80, 0xbd,
- 0x80, 0xb5, 0x02, 0x21, 0x2d, 0x20, 0xf9, 0xf7,
- 0x3f, 0xfb, 0x00, 0x20, 0x80, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x2a, 0x20, 0xf9, 0xf7,
- 0x37, 0xfb, 0x00, 0x20, 0x3c, 0x00, 0x38, 0x7c,
- 0x00, 0x00, 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5,
- 0x01, 0x21, 0x2b, 0x20, 0xf9, 0xf7, 0x2f, 0xfb,
- 0x02, 0x20, 0x80, 0xbd, 0x00, 0x00, 0x01, 0x49,
- 0x01, 0x20, 0x08, 0x61, 0x70, 0x47, 0x7c, 0x78,
- 0x01, 0x00, 0xf8, 0xb5, 0x06, 0x1c, 0x0c, 0x23,
- 0x0f, 0x1c, 0x17, 0x49, 0x58, 0x43, 0x45, 0x18,
- 0x6c, 0x68, 0x30, 0x1c, 0x0b, 0xf0, 0x3f, 0xfe,
- 0x00, 0x2f, 0x09, 0xd1, 0x30, 0x1c, 0x3c, 0x00,
- 0x74, 0x7c, 0x00, 0x00, 0x03, 0xf0, 0xee, 0xfe,
- 0x41, 0x20, 0x07, 0x55, 0x11, 0x48, 0x21, 0x1c,
- 0xff, 0xf7, 0xa6, 0xff, 0xf8, 0xbd, 0x41, 0x20,
- 0x07, 0x55, 0xa0, 0x6b, 0x00, 0x28, 0x03, 0xd0,
- 0x20, 0x1c, 0x00, 0xf0, 0xdf, 0xf9, 0xf5, 0xe7,
- 0x20, 0x1c, 0x00, 0xf0, 0xdb, 0xf9, 0xac, 0x68,
- 0x00, 0x2c, 0x02, 0xd0, 0x00, 0x20, 0xa8, 0x60,
- 0xed, 0xe7, 0x30, 0x1c, 0x05, 0xf0, 0x34, 0xf9,
- 0x3c, 0x00, 0xb0, 0x7c, 0x00, 0x00, 0x04, 0x1c,
- 0xe8, 0xd1, 0x08, 0x21, 0x0c, 0x20, 0xf9, 0xf7,
- 0xf4, 0xfa, 0xe3, 0xe7, 0x00, 0x00, 0x60, 0x7b,
- 0x01, 0x00, 0x55, 0x80, 0x00, 0x00, 0x07, 0x4a,
- 0x80, 0xb5, 0x50, 0x70, 0x51, 0x60, 0x12, 0x78,
- 0x06, 0x4b, 0x80, 0x00, 0x52, 0x01, 0xd2, 0x18,
- 0x10, 0x18, 0x40, 0x38, 0x02, 0x68, 0x08, 0x1c,
- 0xf8, 0xf7, 0x7b, 0xfb, 0x80, 0xbd, 0x78, 0x69,
- 0x01, 0x00, 0x3c, 0x00, 0xec, 0x7c, 0x00, 0x00,
- 0xfc, 0x42, 0x01, 0x00, 0xb0, 0xb5, 0x0a, 0x49,
- 0x04, 0x1c, 0xc8, 0x70, 0x08, 0x4d, 0xe4, 0x35,
- 0xa8, 0x7a, 0x08, 0x71, 0x08, 0x2c, 0x01, 0xd3,
- 0xf9, 0xf7, 0xfc, 0xfa, 0xa8, 0x7a, 0x05, 0x49,
- 0x40, 0x01, 0x40, 0x18, 0xa1, 0x00, 0x40, 0x58,
- 0xf8, 0xf7, 0x60, 0xfb, 0xb0, 0xbd, 0x00, 0x00,
- 0x60, 0x6c, 0x01, 0x00, 0x80, 0x43, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x28, 0x3c, 0x00, 0x28, 0x7d,
- 0x00, 0x00, 0x01, 0xd0, 0x09, 0xf0, 0x1d, 0xf9,
- 0x80, 0xbd, 0xb0, 0xb5, 0x05, 0x1c, 0x0c, 0x1c,
- 0x00, 0x20, 0x08, 0x60, 0x68, 0x68, 0x09, 0xf0,
- 0x36, 0xfb, 0x6c, 0x60, 0xb0, 0xbd, 0x10, 0xb5,
- 0x04, 0x1c, 0x09, 0xf0, 0x34, 0xfb, 0x21, 0x68,
- 0x00, 0x29, 0x00, 0xd1, 0x64, 0x60, 0x10, 0xbd,
- 0x00, 0x00, 0x00, 0x21, 0x01, 0x60, 0x40, 0x60,
- 0x70, 0x47, 0xf8, 0xb5, 0x46, 0x68, 0x3c, 0x00,
- 0x64, 0x7d, 0x00, 0x00, 0x04, 0x1c, 0x40, 0x6a,
- 0x35, 0x1c, 0x0a, 0x35, 0x00, 0x28, 0x04, 0xd0,
- 0x20, 0x1c, 0xf9, 0xf7, 0x89, 0xfd, 0x07, 0x1c,
- 0x00, 0xe0, 0x04, 0x27, 0x29, 0x1c, 0x60, 0x69,
- 0x00, 0xf0, 0xf6, 0xfc, 0x79, 0x00, 0x0f, 0x18,
- 0xba, 0x88, 0xf1, 0x8a, 0x05, 0x1c, 0x8a, 0x42,
- 0x05, 0xd1, 0x30, 0x88, 0x00, 0x05, 0x02, 0xd5,
- 0x04, 0xf0, 0xbe, 0xfb, 0x3c, 0xe0, 0x28, 0x68,
- 0x3c, 0x00, 0xa0, 0x7d, 0x00, 0x00, 0x00, 0x28,
- 0x0f, 0xd0, 0x01, 0x32, 0x8a, 0x42, 0x04, 0xd1,
- 0xf9, 0xf7, 0x0f, 0xfc, 0x21, 0x68, 0xc1, 0x60,
- 0x0b, 0xe0, 0xf9, 0xf7, 0xf0, 0xfb, 0xf0, 0x8a,
- 0x00, 0x07, 0x04, 0xd0, 0x00, 0x21, 0x29, 0x60,
- 0x29, 0xe0, 0x08, 0x07, 0x27, 0xd1, 0x20, 0x68,
- 0x28, 0x60, 0xf0, 0x8a, 0xb8, 0x80, 0x13, 0x48,
- 0x01, 0x68, 0x01, 0x31, 0x01, 0x60, 0x31, 0x88,
- 0x49, 0x05, 0x3c, 0x00, 0xdc, 0x7d, 0x00, 0x00,
- 0x18, 0xd4, 0x29, 0x68, 0x21, 0x60, 0x00, 0x21,
- 0x29, 0x60, 0xe1, 0x69, 0x00, 0x29, 0x0d, 0xd0,
- 0x89, 0x79, 0x02, 0x29, 0x0a, 0xd1, 0x08, 0x21,
- 0x21, 0x86, 0x21, 0x1c, 0x38, 0x31, 0xa1, 0x62,
- 0x22, 0x1c, 0xdc, 0x30, 0x08, 0x49, 0x02, 0xf0,
- 0x81, 0xf9, 0xf8, 0xbd, 0x20, 0x1c, 0x00, 0xf0,
- 0x5f, 0xf8, 0xfa, 0xe7, 0x20, 0x1c, 0xf9, 0xf7,
- 0xef, 0xfc, 0xf6, 0xe7, 0x3c, 0x00, 0x18, 0x7e,
- 0x00, 0x00, 0x20, 0x68, 0xf9, 0xf7, 0xbd, 0xfb,
- 0xf7, 0xe7, 0xc4, 0x69, 0x01, 0x00, 0xb9, 0x71,
- 0x00, 0x00, 0xf8, 0xb5, 0x0f, 0x1c, 0x09, 0x78,
- 0x01, 0x24, 0xc9, 0x07, 0x21, 0xd5, 0x02, 0xf0,
- 0x8c, 0xff, 0x00, 0x28, 0x01, 0xd0, 0x00, 0x24,
- 0x1b, 0xe0, 0x0e, 0x4e, 0x75, 0x6e, 0x00, 0x2d,
- 0x17, 0xd0, 0x34, 0x6e, 0x06, 0x22, 0x31, 0x1c,
- 0x38, 0x1c, 0xf8, 0xf7, 0xd4, 0xfa, 0x3c, 0x00,
- 0x54, 0x7e, 0x00, 0x00, 0x00, 0x28, 0x05, 0xd1,
- 0x01, 0x20, 0x00, 0x2c, 0x00, 0xd0, 0x00, 0x20,
- 0x04, 0x1c, 0x03, 0xe0, 0x01, 0x3d, 0x06, 0x36,
- 0x00, 0x2d, 0xee, 0xd1, 0x00, 0x2c, 0x03, 0xd1,
- 0x02, 0x4e, 0xb0, 0x6e, 0x01, 0x30, 0xb0, 0x66,
- 0x20, 0x1c, 0xf8, 0xbd, 0x10, 0x79, 0x01, 0x00,
- 0x30, 0xb5, 0x05, 0x1c, 0x00, 0x20, 0x06, 0x49,
- 0x00, 0x22, 0x1c, 0x23, 0xcc, 0x56, 0xac, 0x42,
- 0x3c, 0x00, 0x90, 0x7e, 0x00, 0x00, 0x01, 0xd1,
- 0x08, 0x1c, 0x30, 0xbd, 0x01, 0x32, 0x48, 0x31,
- 0x01, 0x2a, 0xf5, 0xd3, 0x30, 0xbd, 0xcc, 0x6d,
- 0x01, 0x00, 0x10, 0xb5, 0x08, 0x4c, 0x00, 0x22,
- 0x1c, 0x23, 0x53, 0x43, 0xe3, 0x58, 0x83, 0x42,
- 0x04, 0xd1, 0x1c, 0x20, 0x50, 0x43, 0x00, 0x19,
- 0x0a, 0x60, 0x10, 0xbd, 0x01, 0x32, 0x0e, 0x2a,
- 0xf2, 0xd3, 0x00, 0x20, 0x10, 0xbd, 0xdc, 0x71,
- 0x01, 0x00, 0x3c, 0x00, 0xcc, 0x7e, 0x00, 0x00,
- 0xf0, 0xb5, 0x41, 0x68, 0x95, 0xb0, 0x07, 0x1c,
- 0x90, 0x37, 0x13, 0x91, 0x04, 0x1c, 0xf8, 0x78,
- 0x25, 0x1c, 0x80, 0x35, 0xc6, 0x07, 0x28, 0x79,
- 0xf6, 0x0f, 0x4a, 0x49, 0x02, 0x28, 0x4d, 0xd1,
- 0x0a, 0x6d, 0x00, 0x2a, 0x4a, 0xd0, 0x48, 0x68,
- 0x01, 0x30, 0x48, 0x60, 0x0a, 0xf0, 0x58, 0xff,
- 0x44, 0x49, 0x08, 0x61, 0x48, 0x61, 0x13, 0x99,
- 0x09, 0x79, 0xc9, 0x07, 0x3c, 0x00, 0x08, 0x7f,
- 0x00, 0x00, 0x01, 0xd4, 0x41, 0x49, 0x88, 0x61,
- 0x20, 0x68, 0x06, 0x22, 0x06, 0x90, 0xa1, 0x68,
- 0x03, 0xa8, 0xf8, 0xf7, 0xee, 0xfa, 0x06, 0x22,
- 0x04, 0xa8, 0x02, 0x30, 0xe1, 0x68, 0xf8, 0xf7,
- 0xe8, 0xfa, 0x07, 0xa8, 0x06, 0x22, 0x21, 0x69,
- 0xf8, 0xf7, 0xe3, 0xfa, 0xb8, 0x78, 0x08, 0xab,
- 0x00, 0x21, 0x98, 0x70, 0x0c, 0x96, 0x63, 0x6a,
- 0x20, 0x1c, 0xa0, 0x30, 0x0a, 0x1c, 0x3c, 0x00,
- 0x44, 0x7f, 0x00, 0x00, 0x00, 0x2b, 0x02, 0xd0,
- 0x02, 0x8a, 0x52, 0x07, 0x52, 0x0f, 0x08, 0xab,
- 0xda, 0x70, 0x00, 0xab, 0x99, 0x84, 0x13, 0x99,
- 0x09, 0x88, 0xc9, 0x0b, 0xd9, 0x84, 0x69, 0x6b,
- 0x10, 0xab, 0x10, 0x91, 0xa9, 0x6b, 0x11, 0x91,
- 0x80, 0x8b, 0x29, 0x49, 0x18, 0x81, 0x09, 0x6d,
- 0x03, 0xa8, 0xf8, 0xf7, 0x32, 0xfa, 0x29, 0x79,
- 0x68, 0x6b, 0x0b, 0xf0, 0x4d, 0xfd, 0x29, 0x79,
- 0x3c, 0x00, 0x80, 0x7f, 0x00, 0x00, 0xa8, 0x6b,
- 0x0b, 0xf0, 0x67, 0xfd, 0x3d, 0xe0, 0x00, 0x28,
- 0x38, 0xd1, 0x48, 0x6d, 0x14, 0x90, 0x00, 0x28,
- 0x34, 0xd0, 0x20, 0x68, 0x06, 0x22, 0x03, 0x90,
- 0xa1, 0x68, 0x68, 0x46, 0xf8, 0xf7, 0xab, 0xfa,
- 0x06, 0x22, 0x68, 0x46, 0x80, 0x18, 0xe1, 0x68,
- 0xf8, 0xf7, 0xa5, 0xfa, 0x05, 0xa8, 0x06, 0x22,
- 0x21, 0x69, 0xf8, 0xf7, 0xa0, 0xfa, 0x00, 0x21,
- 0x04, 0x91, 0x3c, 0x00, 0xbc, 0x7f, 0x00, 0x00,
- 0xb9, 0x78, 0x08, 0xa8, 0x10, 0xab, 0x01, 0x72,
- 0x08, 0x96, 0xe9, 0x68, 0x0b, 0x91, 0x69, 0x79,
- 0x41, 0x72, 0x68, 0x6b, 0x0e, 0x90, 0xa8, 0x6b,
- 0x10, 0x90, 0x28, 0x8d, 0xd8, 0x80, 0x68, 0x8d,
- 0x18, 0x81, 0xe1, 0x69, 0x0c, 0xa8, 0x00, 0x29,
- 0x04, 0xd0, 0x89, 0x79, 0x01, 0x70, 0x20, 0x6a,
- 0x0d, 0x90, 0x01, 0xe0, 0x07, 0x21, 0x01, 0x70,
- 0x68, 0x46, 0x14, 0x99, 0x3c, 0x00, 0xf8, 0x7f,
- 0x00, 0x00, 0xf8, 0xf7, 0xef, 0xf9, 0x02, 0xe0,
- 0x20, 0x68, 0xf9, 0xf7, 0xca, 0xfa, 0x20, 0x1c,
- 0xf9, 0xf7, 0xf5, 0xfb, 0x15, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0xc4, 0x69, 0x01, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0xc0, 0x68, 0x06, 0x22, 0x01, 0x89,
- 0x0c, 0x31, 0x01, 0x81, 0x05, 0x68, 0x21, 0x1c,
- 0x0c, 0x3d, 0x05, 0x60, 0xa8, 0x18, 0xf8, 0xf7,
- 0x64, 0xfa, 0x06, 0x22, 0xa1, 0x18, 0x3c, 0x00,
- 0x34, 0x80, 0x00, 0x00, 0x28, 0x1c, 0xf8, 0xf7,
- 0x5f, 0xfa, 0xa0, 0x8f, 0x00, 0x09, 0xe0, 0x62,
- 0x20, 0x63, 0x03, 0x48, 0x01, 0x69, 0x20, 0x1c,
- 0xf8, 0xf7, 0xc7, 0xf9, 0xb0, 0xbd, 0x00, 0x00,
- 0x7c, 0x79, 0x01, 0x00, 0xf8, 0xb5, 0x06, 0x1c,
- 0x60, 0x36, 0x05, 0x1c, 0x70, 0x7a, 0x0c, 0x23,
- 0x25, 0x49, 0x58, 0x43, 0x44, 0x18, 0xa8, 0x6b,
- 0x00, 0x27, 0x00, 0x28, 0x06, 0xd0, 0xa0, 0x78,
- 0x3c, 0x00, 0x70, 0x80, 0x00, 0x00, 0x01, 0x28,
- 0x03, 0xd1, 0xa7, 0x70, 0x70, 0x7a, 0x0a, 0xf0,
- 0xb6, 0xfd, 0x2a, 0x1c, 0x0c, 0x21, 0x80, 0x20,
- 0x0b, 0xf0, 0x95, 0xfb, 0xa8, 0x6b, 0x00, 0x28,
- 0x33, 0xd0, 0xa0, 0x78, 0x02, 0x28, 0x0b, 0xd0,
- 0x04, 0x28, 0x22, 0xd1, 0xa7, 0x70, 0x2f, 0x1c,
- 0x40, 0x37, 0x78, 0x78, 0x02, 0x28, 0x0c, 0xd1,
- 0x70, 0x7a, 0x0a, 0xf0, 0xa0, 0xfd, 0x18, 0xe0,
- 0x03, 0x20, 0x3c, 0x00, 0xac, 0x80, 0x00, 0x00,
- 0xa0, 0x70, 0x12, 0x49, 0x00, 0x20, 0x14, 0x39,
- 0x09, 0x69, 0xf8, 0xf7, 0x90, 0xf9, 0x0f, 0xe0,
- 0x2c, 0x1c, 0x07, 0xe0, 0x78, 0x78, 0x41, 0x21,
- 0x22, 0x1c, 0x08, 0x55, 0x0c, 0x21, 0x80, 0x20,
- 0x0b, 0xf0, 0x70, 0xfb, 0x60, 0x34, 0x60, 0x7a,
- 0x04, 0xf0, 0x20, 0xff, 0x04, 0x1c, 0xf1, 0xd1,
- 0x70, 0x7a, 0x40, 0x35, 0xa9, 0x8b, 0x00, 0x02,
- 0x09, 0x09, 0x09, 0x04, 0x3c, 0x00, 0xe8, 0x80,
- 0x00, 0x00, 0x08, 0x43, 0x81, 0x21, 0x01, 0x43,
- 0x0c, 0x20, 0x0b, 0xf0, 0xa0, 0xfa, 0xf8, 0xbd,
- 0x00, 0x00, 0x60, 0x7b, 0x01, 0x00, 0xf8, 0xb5,
- 0x1c, 0x49, 0x05, 0x1c, 0x88, 0x6a, 0x01, 0x30,
- 0x88, 0x62, 0x28, 0x1c, 0x0b, 0xf0, 0x7d, 0xfd,
- 0x04, 0x1c, 0x11, 0xd0, 0x2b, 0x1c, 0x20, 0x33,
- 0x1e, 0x1c, 0x5a, 0x79, 0x20, 0x1c, 0xb4, 0x30,
- 0x19, 0x79, 0x14, 0x4f, 0xfd, 0xf7, 0x3c, 0x00,
- 0x24, 0x81, 0x00, 0x00, 0x89, 0xf8, 0xaa, 0x7a,
- 0x20, 0x1c, 0xb8, 0x30, 0xb1, 0x79, 0xfd, 0xf7,
- 0xb9, 0xf8, 0x00, 0x2f, 0x04, 0xd1, 0x01, 0x21,
- 0x28, 0x68, 0xfa, 0xf7, 0x6d, 0xfa, 0xf8, 0xbd,
- 0x60, 0x68, 0xbc, 0x21, 0xc0, 0x8a, 0x08, 0x53,
- 0x28, 0x68, 0x00, 0x21, 0xfa, 0xf7, 0x64, 0xfa,
- 0x00, 0x28, 0x09, 0xd0, 0x06, 0x49, 0xc8, 0x6a,
- 0x01, 0x30, 0xc8, 0x62, 0x00, 0x2c, 0xee, 0xd0,
- 0x3c, 0x00, 0x60, 0x81, 0x00, 0x00, 0x20, 0x1c,
- 0xf9, 0xf7, 0x47, 0xfb, 0xea, 0xe7, 0x20, 0x1c,
- 0xf8, 0xf7, 0x3c, 0xf9, 0xe6, 0xe7, 0xc4, 0x69,
- 0x01, 0x00, 0xa1, 0xff, 0x00, 0x00, 0xf8, 0xb5,
- 0x16, 0x4c, 0x05, 0x1f, 0x00, 0x22, 0x21, 0x1c,
- 0xa0, 0x31, 0x03, 0xe0, 0x28, 0x68, 0xa0, 0x42,
- 0x09, 0xd0, 0x20, 0x34, 0xa1, 0x42, 0xf9, 0xd1,
- 0x00, 0x2a, 0x04, 0xd1, 0x02, 0x21, 0x8e, 0x20,
- 0xf9, 0xf7, 0x3c, 0x00, 0x9c, 0x81, 0x00, 0x00,
- 0x83, 0xf8, 0xf8, 0xbd, 0x0d, 0x4f, 0xbe, 0x79,
- 0x60, 0x69, 0x01, 0x30, 0x60, 0x61, 0xf8, 0xf7,
- 0x97, 0xfd, 0xa8, 0x42, 0x07, 0xd1, 0xa0, 0x88,
- 0x04, 0x30, 0xf8, 0xf7, 0x97, 0xfd, 0xe0, 0x69,
- 0x01, 0x30, 0xe0, 0x61, 0x05, 0xe0, 0x20, 0x68,
- 0x28, 0x60, 0x25, 0x60, 0xa0, 0x69, 0x01, 0x30,
- 0xa0, 0x61, 0xbe, 0x71, 0xe5, 0xe7, 0x00, 0x00,
- 0xd0, 0x5c, 0x01, 0x00, 0x3c, 0x00, 0xd8, 0x81,
- 0x00, 0x00, 0x20, 0x10, 0x07, 0x00, 0x00, 0x29,
- 0x01, 0xdb, 0x06, 0x29, 0x01, 0xdb, 0x02, 0x20,
- 0x70, 0x47, 0x06, 0x4b, 0xc9, 0x00, 0x5a, 0x5c,
- 0xc9, 0x18, 0x02, 0x70, 0x4a, 0x78, 0x42, 0x70,
- 0x8a, 0x78, 0x82, 0x70, 0x49, 0x68, 0x41, 0x60,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0xcc, 0x5a,
- 0x01, 0x00, 0xb0, 0xb5, 0x0d, 0x1c, 0x04, 0x1c,
- 0x05, 0x28, 0x01, 0xd3, 0xf9, 0xf7, 0x3c, 0x00,
- 0x14, 0x82, 0x00, 0x00, 0x75, 0xf8, 0x10, 0x48,
- 0x40, 0x68, 0x00, 0x28, 0x00, 0xd0, 0x03, 0x24,
- 0x10, 0x2d, 0x00, 0xd3, 0x0f, 0x25, 0x06, 0x20,
- 0x0b, 0x49, 0x60, 0x43, 0x12, 0x31, 0x40, 0x18,
- 0x41, 0x78, 0x80, 0x78, 0x49, 0x19, 0x09, 0x06,
- 0x09, 0x0e, 0x88, 0x42, 0x00, 0xd2, 0x01, 0x1c,
- 0x01, 0x20, 0x88, 0x40, 0x05, 0x49, 0x01, 0x38,
- 0x09, 0x68, 0x08, 0x40, 0x00, 0x04, 0x00, 0x0c,
- 0x3c, 0x00, 0x50, 0x82, 0x00, 0x00, 0x02, 0xf0,
- 0x44, 0xfe, 0xb0, 0xbd, 0x00, 0x00, 0xd4, 0x7a,
- 0x01, 0x00, 0x08, 0x20, 0x07, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0x0d, 0x1c, 0x09, 0xf0, 0xcf, 0xfd,
- 0x00, 0x28, 0x03, 0xd1, 0x20, 0x1c, 0x09, 0xf0,
- 0x82, 0xfd, 0x05, 0x61, 0xb0, 0xbd, 0x80, 0xb5,
- 0x0a, 0xf0, 0x97, 0xfd, 0x03, 0x4a, 0x0c, 0x32,
- 0x06, 0xca, 0x89, 0x18, 0x08, 0x1a, 0x80, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0x82, 0x00, 0x00,
- 0xa0, 0x7d, 0x01, 0x00, 0x70, 0xb5, 0x0b, 0x4c,
- 0x04, 0x9e, 0x64, 0x68, 0x0d, 0xe0, 0x65, 0x68,
- 0x85, 0x42, 0x09, 0xd1, 0x20, 0x7a, 0x08, 0x70,
- 0xe0, 0x68, 0x10, 0x60, 0x20, 0x69, 0x18, 0x60,
- 0x20, 0x7d, 0x30, 0x80, 0x01, 0x20, 0x70, 0xbd,
- 0x24, 0x68, 0x00, 0x2c, 0xef, 0xd1, 0x00, 0x20,
- 0x70, 0xbd, 0x00, 0x00, 0xa4, 0x6e, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x3c, 0x00, 0xc8, 0x82,
- 0x00, 0x00, 0x20, 0x30, 0x81, 0x7b, 0x20, 0x69,
- 0x04, 0x30, 0xfd, 0xf7, 0x64, 0xf9, 0x01, 0x1c,
- 0x62, 0x20, 0x02, 0x5b, 0x63, 0x6a, 0x40, 0x34,
- 0x20, 0x78, 0x02, 0xf0, 0xce, 0xfd, 0x10, 0xbd,
- 0x00, 0x00, 0x0b, 0x49, 0x10, 0xb5, 0x08, 0x88,
- 0x8a, 0x69, 0x0a, 0x23, 0x50, 0x43, 0x58, 0x43,
- 0x0e, 0xd0, 0x08, 0x4a, 0x53, 0x89, 0x94, 0x88,
- 0xd2, 0x88, 0x1b, 0x19, 0x52, 0x04, 0x3c, 0x00,
- 0x04, 0x83, 0x00, 0x00, 0x52, 0x0c, 0x9a, 0x18,
- 0xc9, 0x68, 0x06, 0x32, 0x4a, 0x43, 0x0a, 0x21,
- 0x51, 0x43, 0xf8, 0xf7, 0xfd, 0xf9, 0x10, 0xbd,
- 0xc8, 0x74, 0x01, 0x00, 0x30, 0x00, 0x07, 0x00,
- 0x10, 0xb5, 0x43, 0x1c, 0x01, 0xd1, 0x10, 0x48,
- 0x10, 0xbd, 0x0f, 0x4a, 0x0e, 0x4b, 0x94, 0x3a,
- 0x12, 0x68, 0x44, 0x3b, 0x1b, 0x7a, 0x10, 0xe0,
- 0x54, 0x68, 0x84, 0x42, 0x0c, 0xd1, 0x00, 0x29,
- 0x3c, 0x00, 0x40, 0x83, 0x00, 0x00, 0x0f, 0xd1,
- 0x02, 0x2b, 0x03, 0xd1, 0xd4, 0x7b, 0x02, 0x2c,
- 0x0a, 0xd2, 0x04, 0xe0, 0x00, 0x2b, 0x05, 0xd1,
- 0xd4, 0x7b, 0xe4, 0x07, 0x04, 0xd4, 0x12, 0x68,
- 0x00, 0x2a, 0xec, 0xd1, 0x00, 0x20, 0x10, 0xbd,
- 0x10, 0x1c, 0x10, 0xbd, 0x00, 0x00, 0x38, 0x6f,
- 0x01, 0x00, 0x01, 0x1c, 0x01, 0x20, 0x01, 0x29,
- 0x00, 0xd0, 0x00, 0x20, 0x70, 0x47, 0x00, 0xb5,
- 0x02, 0x1c, 0x3c, 0x00, 0x7c, 0x83, 0x00, 0x00,
- 0xfd, 0xf7, 0xce, 0xf8, 0x00, 0x28, 0x08, 0xd0,
- 0x10, 0x1c, 0xff, 0xf7, 0xf1, 0xff, 0x18, 0x23,
- 0x03, 0x49, 0x58, 0x43, 0x40, 0x18, 0x00, 0x69,
- 0x00, 0xbd, 0x00, 0x20, 0x00, 0xbd, 0x00, 0x00,
- 0x94, 0x67, 0x01, 0x00, 0x80, 0xb5, 0x00, 0x28,
- 0x00, 0xd1, 0x08, 0x48, 0x07, 0x49, 0x00, 0x68,
- 0x50, 0x31, 0x09, 0x7a, 0x00, 0x29, 0x02, 0xd0,
- 0x02, 0x29, 0x04, 0xd1, 0x3c, 0x00, 0xb8, 0x83,
- 0x00, 0x00, 0x00, 0xe0, 0x01, 0x21, 0x00, 0xf0,
- 0x06, 0xf8, 0x80, 0xbd, 0x00, 0x20, 0x80, 0xbd,
- 0x00, 0x00, 0xa4, 0x6e, 0x01, 0x00, 0x12, 0x4a,
- 0x12, 0x4b, 0x12, 0x7a, 0x2c, 0x3b, 0x00, 0x2a,
- 0x03, 0xd1, 0x5a, 0x68, 0x00, 0x2a, 0x18, 0xd1,
- 0x04, 0xe0, 0x02, 0x2a, 0x02, 0xd1, 0x9a, 0x68,
- 0x00, 0x2a, 0x12, 0xd1, 0x00, 0x20, 0x70, 0x47,
- 0xc2, 0x7b, 0x8a, 0x42, 0x01, 0xd0, 0x3c, 0x00,
- 0xf4, 0x83, 0x00, 0x00, 0x03, 0x2a, 0x0a, 0xd1,
- 0x82, 0x7e, 0x01, 0x2a, 0x07, 0xd1, 0x02, 0x7f,
- 0x01, 0x32, 0x12, 0x06, 0x12, 0x0e, 0x02, 0x77,
- 0xc3, 0x7e, 0x9a, 0x42, 0xee, 0xd2, 0x00, 0x68,
- 0x00, 0x28, 0xec, 0xd1, 0x70, 0x47, 0x00, 0x00,
- 0xf4, 0x6e, 0x01, 0x00, 0xf7, 0xb5, 0x84, 0x46,
- 0x00, 0x20, 0x01, 0x27, 0x00, 0x24, 0x00, 0x25,
- 0x88, 0xb0, 0x07, 0xe0, 0x62, 0x46, 0x52, 0x5d,
- 0x3c, 0x00, 0x30, 0x84, 0x00, 0x00, 0x00, 0x2a,
- 0x05, 0xd0, 0xab, 0x00, 0x6e, 0x46, 0xf2, 0x50,
- 0x01, 0x35, 0x8d, 0x42, 0xf5, 0xd3, 0x00, 0x2d,
- 0x00, 0xd0, 0x01, 0x20, 0x00, 0x28, 0x28, 0xd0,
- 0x00, 0x27, 0x16, 0x4c, 0x6e, 0x46, 0x22, 0xe0,
- 0x20, 0x1c, 0x00, 0xf0, 0x30, 0xf8, 0x01, 0x28,
- 0x01, 0xd0, 0x07, 0x28, 0x06, 0xd1, 0x00, 0x21,
- 0x20, 0x1c, 0x00, 0xf0, 0x34, 0xf8, 0x31, 0x68,
- 0x88, 0x42, 0x3c, 0x00, 0x6c, 0x84, 0x00, 0x00,
- 0x01, 0xd2, 0x02, 0x27, 0x14, 0xe0, 0x20, 0x68,
- 0xc9, 0x00, 0x0c, 0x18, 0x08, 0x3c, 0x20, 0x1c,
- 0x00, 0xf0, 0x1c, 0xf8, 0x07, 0x28, 0x07, 0xd1,
- 0x01, 0x20, 0x01, 0x2d, 0x00, 0xd0, 0x00, 0x20,
- 0x24, 0x68, 0x00, 0x28, 0x00, 0xd1, 0x08, 0x34,
- 0x01, 0x3d, 0x04, 0x36, 0x00, 0x2d, 0xda, 0xd1,
- 0x0a, 0x98, 0x04, 0x60, 0x0b, 0xb0, 0x38, 0x1c,
- 0xf0, 0xbd, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0x84,
- 0x00, 0x00, 0x20, 0x52, 0x01, 0x00, 0x00, 0x68,
- 0x00, 0x29, 0x01, 0xd0, 0x80, 0x02, 0x80, 0x0a,
- 0x70, 0x47, 0x10, 0xb5, 0x40, 0x68, 0x80, 0x00,
- 0x44, 0x0f, 0x08, 0x2c, 0x03, 0xd3, 0x02, 0x21,
- 0x87, 0x20, 0xf8, 0xf7, 0xec, 0xfe, 0x20, 0x1c,
- 0x10, 0xbd, 0x00, 0x29, 0x02, 0xd0, 0x00, 0x68,
- 0x80, 0x0d, 0x70, 0x47, 0x40, 0x68, 0x80, 0x05,
- 0x80, 0x0d, 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0x84, 0x00, 0x00, 0x10, 0xb5, 0x40, 0x68,
- 0x40, 0x01, 0x44, 0x0f, 0x05, 0x2c, 0x03, 0xd3,
- 0x05, 0x21, 0x87, 0x20, 0xf8, 0xf7, 0xd6, 0xfe,
- 0x20, 0x1c, 0x10, 0xbd, 0xf8, 0xb5, 0x05, 0x1c,
- 0x88, 0x0a, 0x00, 0x90, 0x1c, 0x48, 0x8e, 0x05,
- 0xc0, 0x69, 0xb6, 0x0d, 0x17, 0x1c, 0x1c, 0x1c,
- 0x00, 0x28, 0x05, 0xd1, 0x18, 0x48, 0x81, 0x69,
- 0x8d, 0x42, 0x1d, 0xd0, 0x85, 0x61, 0x11, 0xe0,
- 0x3c, 0x00, 0x20, 0x85, 0x00, 0x00, 0xfd, 0xf7,
- 0xe8, 0xf8, 0x15, 0x49, 0x09, 0x78, 0x0e, 0x29,
- 0x07, 0xd1, 0x00, 0x28, 0x05, 0xd0, 0x11, 0x49,
- 0x50, 0x31, 0x06, 0x23, 0xc9, 0x56, 0xf9, 0xf7,
- 0x06, 0xfa, 0x0e, 0x49, 0x00, 0x20, 0xc8, 0x61,
- 0x8d, 0x61, 0x29, 0x1c, 0x20, 0x1c, 0xf8, 0xf7,
- 0xe2, 0xf8, 0x79, 0x43, 0x20, 0x1c, 0xf8, 0xf7,
- 0xde, 0xf8, 0x08, 0x48, 0x41, 0x61, 0x20, 0x1c,
- 0x00, 0x99, 0x3c, 0x00, 0x5c, 0x85, 0x00, 0x00,
- 0xf8, 0xf7, 0xd8, 0xf8, 0x05, 0x48, 0x40, 0x69,
- 0x0a, 0x18, 0xa2, 0x42, 0x01, 0xd2, 0x40, 0x18,
- 0x01, 0xe0, 0x40, 0x18, 0x00, 0x1b, 0x80, 0x02,
- 0x80, 0x19, 0xf8, 0xbd, 0xac, 0x7c, 0x01, 0x00,
- 0x11, 0x67, 0x01, 0x00, 0xf8, 0xb5, 0x0f, 0x1c,
- 0x06, 0x1c, 0x14, 0x1c, 0x1d, 0x1c, 0x07, 0xf0,
- 0xa1, 0xfc, 0x0e, 0x28, 0x09, 0xd1, 0x20, 0x1c,
- 0x02, 0xf0, 0xfc, 0xfb, 0x3c, 0x00, 0x98, 0x85,
- 0x00, 0x00, 0x00, 0x28, 0x04, 0xd0, 0x08, 0x48,
- 0x00, 0x78, 0x02, 0xf0, 0xe4, 0xfb, 0x04, 0x1c,
- 0x01, 0x21, 0x00, 0x2e, 0xac, 0x72, 0x00, 0xd0,
- 0x39, 0x1c, 0x20, 0x1c, 0x02, 0xf0, 0x07, 0xfc,
- 0x28, 0x60, 0x00, 0x20, 0x28, 0x72, 0x6c, 0x72,
- 0xf8, 0xbd, 0x90, 0x57, 0x01, 0x00, 0x03, 0x1c,
- 0x0a, 0x48, 0x10, 0xb5, 0x00, 0x24, 0x02, 0x1c,
- 0xa0, 0x32, 0x03, 0xe0, 0x81, 0x88, 0x3c, 0x00,
- 0xd4, 0x85, 0x00, 0x00, 0x99, 0x42, 0x09, 0xd2,
- 0x20, 0x30, 0x82, 0x42, 0xf9, 0xd1, 0x00, 0x2c,
- 0x04, 0xd1, 0x02, 0x21, 0x8e, 0x20, 0xf8, 0xf7,
- 0x5d, 0xfe, 0x00, 0x20, 0x10, 0xbd, 0x00, 0x00,
- 0xd0, 0x5c, 0x01, 0x00, 0xff, 0xb5, 0x06, 0x1c,
- 0x00, 0x20, 0x81, 0xb0, 0x10, 0x60, 0x1f, 0x1c,
- 0x01, 0x25, 0x14, 0x1c, 0x30, 0x1c, 0xff, 0xf7,
- 0x6d, 0xff, 0x05, 0x28, 0x12, 0xd2, 0x02, 0xa3,
- 0x3c, 0x00, 0x10, 0x86, 0x00, 0x00, 0x1b, 0x5c,
- 0x5b, 0x00, 0x9f, 0x44, 0x00, 0x00, 0x03, 0x03,
- 0x03, 0x03, 0x08, 0x00, 0x39, 0x1c, 0x30, 0x1c,
- 0xff, 0xf7, 0x55, 0xff, 0x03, 0xe0, 0x02, 0x98,
- 0xf8, 0xf7, 0xeb, 0xf8, 0x01, 0x30, 0x20, 0x60,
- 0x04, 0xe0, 0x05, 0x21, 0x87, 0x20, 0xf8, 0xf7,
- 0x34, 0xfe, 0x00, 0x25, 0x20, 0x68, 0x80, 0x28,
- 0x04, 0xd9, 0x06, 0x21, 0x87, 0x20, 0xf8, 0xf7,
- 0x2c, 0xfe, 0x3c, 0x00, 0x4c, 0x86, 0x00, 0x00,
- 0x00, 0x25, 0x28, 0x1c, 0x05, 0xb0, 0xf0, 0xbd,
- 0x70, 0xb5, 0x17, 0x4c, 0x60, 0x6c, 0x00, 0x28,
- 0x01, 0xd0, 0x01, 0x20, 0x1d, 0xe0, 0x16, 0x4e,
- 0x14, 0x4d, 0x31, 0x88, 0xa0, 0x6c, 0x00, 0x28,
- 0x08, 0xd0, 0x28, 0x78, 0x81, 0x42, 0x05, 0xd9,
- 0xf8, 0xf7, 0x4c, 0xf8, 0x01, 0x38, 0xfa, 0xf7,
- 0x51, 0xfe, 0x0e, 0xe0, 0xe0, 0x6c, 0x00, 0x28,
- 0x0a, 0xd0, 0x00, 0x20, 0x3c, 0x00, 0x88, 0x86,
- 0x00, 0x00, 0xfa, 0xf7, 0x4a, 0xfe, 0x29, 0x78,
- 0x32, 0x88, 0x91, 0x42, 0x04, 0xd9, 0x90, 0x42,
- 0x02, 0xd9, 0x10, 0x1c, 0x00, 0xe0, 0x08, 0x1c,
- 0xfa, 0xf7, 0xdf, 0xfd, 0xe1, 0x6b, 0x44, 0x1a,
- 0x0a, 0xf0, 0x81, 0xfb, 0x20, 0x1a, 0x00, 0xd5,
- 0x00, 0x20, 0x70, 0xbd, 0x00, 0x00, 0x44, 0x7d,
- 0x01, 0x00, 0xf8, 0x60, 0x01, 0x00, 0xfc, 0x60,
- 0x01, 0x00, 0xff, 0xb5, 0x27, 0x4e, 0x3c, 0x00,
- 0xc4, 0x86, 0x00, 0x00, 0x04, 0x1c, 0xb0, 0x79,
- 0x0f, 0x1c, 0x15, 0x1c, 0x81, 0xb0, 0x00, 0x90,
- 0x0a, 0xf0, 0x6c, 0xfb, 0xc1, 0x19, 0x23, 0x48,
- 0x07, 0x68, 0x00, 0x2f, 0x05, 0xd1, 0x0a, 0x21,
- 0x80, 0x20, 0xf8, 0xf7, 0xdf, 0xfd, 0x05, 0xb0,
- 0xf0, 0xbd, 0x1e, 0x48, 0x40, 0x68, 0x84, 0x46,
- 0x00, 0x28, 0x01, 0xd1, 0x00, 0x22, 0x0e, 0xe0,
- 0x82, 0x68, 0x03, 0x68, 0xab, 0x42, 0x07, 0xd1,
- 0x3c, 0x00, 0x00, 0x87, 0x00, 0x00, 0x03, 0x79,
- 0xa3, 0x42, 0x04, 0xd1, 0x0b, 0x21, 0x80, 0x20,
- 0xf8, 0xf7, 0xcb, 0xfd, 0x23, 0xe0, 0xc0, 0x68,
- 0x00, 0x28, 0xf1, 0xd1, 0x13, 0x4b, 0xf8, 0x68,
- 0x18, 0x60, 0x3d, 0x60, 0x3c, 0x71, 0xb9, 0x60,
- 0x04, 0x98, 0x8d, 0x1a, 0x38, 0x61, 0x60, 0x46,
- 0x00, 0x23, 0x05, 0xe0, 0x84, 0x68, 0xa4, 0x1a,
- 0xac, 0x42, 0x03, 0xda, 0x03, 0x1c, 0xc0, 0x68,
- 0x00, 0x28, 0x3c, 0x00, 0x3c, 0x87, 0x00, 0x00,
- 0xf7, 0xd1, 0xf8, 0x60, 0x00, 0x2b, 0x08, 0xd1,
- 0x07, 0x48, 0x3b, 0x1c, 0x47, 0x60, 0x08, 0x48,
- 0x06, 0x4a, 0x00, 0x88, 0x0a, 0xf0, 0x8a, 0xfb,
- 0x00, 0xe0, 0xdf, 0x60, 0x00, 0x98, 0xb0, 0x71,
- 0xc3, 0xe7, 0x00, 0x00, 0x20, 0x10, 0x07, 0x00,
- 0x7c, 0x5d, 0x01, 0x00, 0x21, 0x38, 0x01, 0x00,
- 0x2c, 0x74, 0x01, 0x00, 0xf3, 0xb5, 0x83, 0xb0,
- 0x04, 0x1c, 0x09, 0xd0, 0x3c, 0x00, 0x78, 0x87,
- 0x00, 0x00, 0x20, 0x1c, 0x04, 0x99, 0x09, 0xf0,
- 0x8e, 0xfb, 0x00, 0x28, 0x03, 0xd0, 0x20, 0x1c,
- 0x30, 0x30, 0x05, 0xb0, 0xf0, 0xbd, 0x0a, 0xf0,
- 0x0e, 0xfb, 0x1e, 0x4a, 0x00, 0x26, 0x04, 0x9f,
- 0x01, 0x96, 0x00, 0x90, 0x02, 0x92, 0x02, 0x9c,
- 0x00, 0x25, 0x39, 0x1c, 0x20, 0x1c, 0x14, 0x30,
- 0x02, 0xf0, 0xc5, 0xfa, 0x00, 0x28, 0x01, 0xd0,
- 0x26, 0x1c, 0x03, 0xe0, 0x01, 0x35, 0x3c, 0x00,
- 0xb4, 0x87, 0x00, 0x00, 0x1c, 0x34, 0x04, 0x2d,
- 0xf2, 0xd3, 0x00, 0x2e, 0x22, 0xd1, 0x01, 0x98,
- 0x13, 0x4f, 0x01, 0x30, 0x01, 0x90, 0x02, 0x28,
- 0xe8, 0xd3, 0x01, 0x21, 0xc9, 0x06, 0x02, 0x9a,
- 0x00, 0x20, 0x13, 0x69, 0x00, 0x9c, 0xe3, 0x1a,
- 0x8b, 0x42, 0x01, 0xdd, 0x19, 0x1c, 0x16, 0x1c,
- 0x01, 0x30, 0x1c, 0x32, 0x04, 0x28, 0xf4, 0xd3,
- 0x30, 0x68, 0x00, 0x28, 0x01, 0xd0, 0xf8, 0xf7,
- 0x3c, 0x00, 0xf0, 0x87, 0x00, 0x00, 0xd3, 0xfe,
- 0x30, 0x1c, 0xfd, 0xf7, 0x4a, 0xff, 0x30, 0x1c,
- 0x14, 0x30, 0x06, 0x22, 0x04, 0x99, 0xf7, 0xf7,
- 0x7a, 0xfe, 0x00, 0x9c, 0x30, 0x1c, 0x34, 0x61,
- 0xbd, 0xe7, 0x30, 0x6a, 0x01, 0x00, 0x34, 0x42,
- 0x01, 0x00, 0x09, 0x49, 0x10, 0xb5, 0x4c, 0x69,
- 0x03, 0xe0, 0xe1, 0x68, 0x81, 0x42, 0x03, 0xd0,
- 0x24, 0x68, 0x00, 0x2c, 0xf9, 0xd1, 0x01, 0xe0,
- 0x00, 0x2c, 0x3c, 0x00, 0x2c, 0x88, 0x00, 0x00,
- 0x03, 0xd1, 0x02, 0x21, 0x02, 0x20, 0xf8, 0xf7,
- 0x37, 0xfd, 0x20, 0x1c, 0x10, 0xbd, 0x00, 0x00,
- 0xfc, 0x5a, 0x01, 0x00, 0x10, 0xb5, 0xc3, 0x07,
- 0x06, 0xd5, 0x08, 0x4b, 0x5c, 0x69, 0x0c, 0x43,
- 0x5c, 0x61, 0x1c, 0x7e, 0x14, 0x43, 0x1c, 0x76,
- 0x80, 0x07, 0x06, 0xd5, 0x04, 0x48, 0x43, 0x69,
- 0x19, 0x43, 0x41, 0x61, 0x01, 0x7e, 0x11, 0x43,
- 0x01, 0x76, 0x10, 0xbd, 0x3c, 0x00, 0x68, 0x88,
- 0x00, 0x00, 0xfc, 0x57, 0x01, 0x00, 0x18, 0x58,
- 0x01, 0x00, 0x70, 0xb5, 0x0d, 0x1c, 0x04, 0x1c,
- 0x16, 0x1c, 0x00, 0xf0, 0x08, 0xf8, 0xa0, 0x07,
- 0xc0, 0x17, 0x01, 0x30, 0x32, 0x1c, 0x29, 0x1c,
- 0x00, 0xf0, 0x21, 0xf8, 0x70, 0xbd, 0x10, 0xb5,
- 0xc3, 0x07, 0x06, 0xd5, 0x08, 0x4b, 0x5c, 0x69,
- 0x8c, 0x43, 0x5c, 0x61, 0x1c, 0x7e, 0x94, 0x43,
- 0x1c, 0x76, 0x80, 0x07, 0x06, 0xd5, 0x3c, 0x00,
- 0xa4, 0x88, 0x00, 0x00, 0x04, 0x48, 0x43, 0x69,
- 0x8b, 0x43, 0x43, 0x61, 0x01, 0x7e, 0x91, 0x43,
- 0x01, 0x76, 0x10, 0xbd, 0xfc, 0x57, 0x01, 0x00,
- 0x18, 0x58, 0x01, 0x00, 0x03, 0x22, 0x11, 0x1f,
- 0x80, 0xb5, 0x01, 0x20, 0x00, 0xf0, 0x02, 0xf8,
- 0x80, 0xbd, 0x00, 0x00, 0x30, 0xb5, 0x15, 0x1c,
- 0x0c, 0x1c, 0x00, 0x28, 0x87, 0xb0, 0x02, 0xd0,
- 0x1c, 0x22, 0x22, 0x49, 0x01, 0xe0, 0x22, 0x49,
- 0x3c, 0x00, 0xe0, 0x88, 0x00, 0x00, 0x1c, 0x22,
- 0x68, 0x46, 0xf7, 0xf7, 0x64, 0xfe, 0x05, 0x99,
- 0x00, 0xab, 0x1a, 0x7e, 0x8c, 0x43, 0x20, 0x1c,
- 0x95, 0x43, 0x02, 0x9a, 0x29, 0x1c, 0x02, 0x40,
- 0x02, 0x92, 0x01, 0x9a, 0x02, 0x40, 0x01, 0x92,
- 0x00, 0x9a, 0x02, 0x40, 0x00, 0x92, 0x03, 0x9a,
- 0x02, 0x40, 0x03, 0x92, 0x98, 0x7c, 0x08, 0x40,
- 0x98, 0x74, 0x58, 0x7c, 0x08, 0x40, 0x58, 0x74,
- 0x18, 0x7c, 0x3c, 0x00, 0x1c, 0x89, 0x00, 0x00,
- 0x08, 0x40, 0x18, 0x74, 0xd8, 0x7c, 0x08, 0x40,
- 0xd8, 0x74, 0x02, 0x99, 0x10, 0x48, 0x41, 0x61,
- 0x01, 0xaa, 0x06, 0xca, 0x91, 0x43, 0x81, 0x61,
- 0x81, 0x68, 0x01, 0x9a, 0x11, 0x43, 0x81, 0x60,
- 0x81, 0x68, 0x00, 0x9a, 0x91, 0x43, 0x81, 0x60,
- 0x00, 0xaa, 0x06, 0xca, 0x11, 0x43, 0x42, 0x68,
- 0x11, 0x43, 0x41, 0x60, 0x41, 0x68, 0x03, 0x9a,
- 0x91, 0x43, 0x41, 0x60, 0x3c, 0x00, 0x58, 0x89,
- 0x00, 0x00, 0x04, 0xa8, 0x0b, 0xf0, 0x01, 0xf8,
- 0x07, 0xb0, 0x30, 0xbd, 0x00, 0x00, 0xfc, 0x57,
- 0x01, 0x00, 0x18, 0x58, 0x01, 0x00, 0x10, 0x00,
- 0x07, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x01, 0x1c,
- 0x01, 0x20, 0x08, 0xf0, 0xe0, 0xf9, 0x00, 0x2c,
- 0x02, 0xd0, 0x03, 0xf0, 0x1c, 0xff, 0x10, 0xbd,
- 0xfe, 0xf7, 0xd1, 0xfc, 0x10, 0xbd, 0xf0, 0xb5,
- 0x0c, 0x1c, 0x01, 0x0e, 0x01, 0x23, 0x3c, 0x00,
- 0x94, 0x89, 0x00, 0x00, 0x1b, 0x06, 0x09, 0x06,
- 0x99, 0x42, 0x9f, 0xb0, 0x28, 0xd1, 0x17, 0x49,
- 0x08, 0x40, 0x00, 0x21, 0x1a, 0x28, 0x00, 0xd3,
- 0x02, 0x21, 0x00, 0x29, 0x19, 0xd1, 0xc5, 0x00,
- 0x13, 0x4f, 0x10, 0xa8, 0xee, 0x19, 0xb2, 0x88,
- 0x21, 0x68, 0xf7, 0xf7, 0x9d, 0xfd, 0x20, 0x1c,
- 0xf8, 0xf7, 0xea, 0xfd, 0x7a, 0x59, 0x01, 0xa9,
- 0x10, 0xa8, 0xf7, 0xf7, 0x07, 0xfd, 0x00, 0x28,
- 0x3c, 0x00, 0xd0, 0x89, 0x00, 0x00, 0x05, 0xd0,
- 0x10, 0x98, 0x01, 0xa9, 0x01, 0x90, 0xb0, 0x79,
- 0x00, 0xf0, 0x9d, 0xf8, 0x1f, 0xb0, 0xf0, 0xbd,
- 0x2a, 0x20, 0xf8, 0xf7, 0x5e, 0xfc, 0x20, 0x1c,
- 0xf8, 0xf7, 0xd5, 0xfd, 0xf6, 0xe7, 0x03, 0x21,
- 0x2a, 0x20, 0xf8, 0xf7, 0x56, 0xfc, 0xf1, 0xe7,
- 0x00, 0x00, 0x7f, 0xff, 0xff, 0x00, 0x24, 0x45,
- 0x01, 0x00, 0x10, 0xb5, 0x0c, 0x1c, 0x80, 0x28,
- 0x02, 0xd0, 0x3c, 0x00, 0x0c, 0x8a, 0x00, 0x00,
- 0x81, 0x28, 0x08, 0xd1, 0x03, 0xe0, 0x20, 0x1c,
- 0x00, 0xf0, 0x06, 0xf9, 0x10, 0xbd, 0x20, 0x1c,
- 0xf8, 0xf7, 0xbc, 0xfd, 0x10, 0xbd, 0x03, 0x21,
- 0x2c, 0x20, 0xf8, 0xf7, 0x3d, 0xfc, 0xf6, 0xe7,
- 0xf0, 0xb5, 0x0c, 0x1c, 0x00, 0x21, 0x8b, 0xb0,
- 0x0a, 0x91, 0x01, 0x0e, 0x01, 0x23, 0x1b, 0x06,
- 0x09, 0x06, 0x99, 0x42, 0x2a, 0xd1, 0x18, 0x49,
- 0x08, 0x40, 0x06, 0x1c, 0x3c, 0x00, 0x48, 0x8a,
- 0x00, 0x00, 0x06, 0x2e, 0x01, 0xd3, 0x07, 0x21,
- 0x24, 0xe0, 0x20, 0x89, 0xf8, 0xf7, 0xf1, 0xfe,
- 0x22, 0x89, 0x21, 0x68, 0x05, 0x1c, 0xf7, 0xf7,
- 0x4c, 0xfd, 0x20, 0x1c, 0xf8, 0xf7, 0x99, 0xfd,
- 0xf4, 0x00, 0x0f, 0x4e, 0x28, 0x1c, 0x0a, 0xaa,
- 0x69, 0x46, 0x33, 0x59, 0xf7, 0xf7, 0xb4, 0xfc,
- 0x00, 0x28, 0x01, 0xd0, 0x01, 0x28, 0x07, 0xd1,
- 0x28, 0x68, 0x69, 0x46, 0x00, 0x90, 0x3c, 0x00,
- 0x84, 0x8a, 0x00, 0x00, 0xa0, 0x19, 0x00, 0x79,
- 0x0a, 0x9a, 0x00, 0xf0, 0x09, 0xf9, 0x28, 0x1c,
- 0xf8, 0xf7, 0xb0, 0xfe, 0x0b, 0xb0, 0xf0, 0xbd,
- 0x01, 0x21, 0x2b, 0x20, 0xf8, 0xf7, 0x02, 0xfc,
- 0xf8, 0xe7, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x00,
- 0x28, 0x46, 0x01, 0x00, 0x0a, 0x1c, 0x01, 0x0e,
- 0x01, 0x23, 0x1b, 0x06, 0x09, 0x06, 0x99, 0x42,
- 0x80, 0xb5, 0x08, 0xd0, 0x5b, 0x00, 0x99, 0x42,
- 0x3c, 0x00, 0xc0, 0x8a, 0x00, 0x00, 0x0b, 0xd1,
- 0x00, 0x06, 0x00, 0x0e, 0x11, 0x1c, 0x00, 0xf0,
- 0x0e, 0xf9, 0x80, 0xbd, 0x05, 0x49, 0x01, 0x40,
- 0x10, 0x1c, 0x05, 0xf0, 0xa2, 0xf9, 0x80, 0xbd,
- 0x01, 0x21, 0x2d, 0x20, 0xf8, 0xf7, 0xe1, 0xfb,
- 0x80, 0xbd, 0x7f, 0xff, 0xff, 0x00, 0x80, 0xb5,
- 0x01, 0x1c, 0x0f, 0x20, 0x00, 0xf0, 0x13, 0xf8,
- 0x80, 0xbd, 0x80, 0xb5, 0x01, 0x1c, 0x04, 0x20,
- 0x00, 0xf0, 0x3c, 0x00, 0xfc, 0x8a, 0x00, 0x00,
- 0x0d, 0xf8, 0x80, 0xbd, 0x80, 0xb5, 0x01, 0x1c,
- 0x17, 0x20, 0x00, 0xf0, 0x07, 0xf8, 0x80, 0xbd,
- 0x80, 0xb5, 0x01, 0x1c, 0x01, 0x20, 0x00, 0xf0,
- 0x01, 0xf8, 0x80, 0xbd, 0xf8, 0xb5, 0x04, 0x1c,
- 0x06, 0x1c, 0x80, 0x20, 0x84, 0x43, 0x0f, 0x1c,
- 0x19, 0x2c, 0x01, 0xd3, 0xf8, 0xf7, 0xea, 0xfb,
- 0x08, 0x48, 0x04, 0x5d, 0x21, 0x1c, 0x00, 0x20,
- 0xf8, 0xf7, 0x50, 0xfd, 0x3c, 0x00, 0x38, 0x8b,
- 0x00, 0x00, 0x05, 0x1c, 0x22, 0x1c, 0x39, 0x1c,
- 0x00, 0x68, 0xf7, 0xf7, 0xda, 0xfc, 0x2a, 0x1c,
- 0x31, 0x1c, 0x07, 0x20, 0xf8, 0xf7, 0x11, 0xf9,
- 0xf8, 0xbd, 0xf4, 0x45, 0x01, 0x00, 0xf8, 0xb5,
- 0x0d, 0x1c, 0x16, 0x1c, 0x04, 0x1c, 0x1f, 0x1c,
- 0x08, 0x21, 0x00, 0x20, 0xf8, 0xf7, 0x39, 0xfd,
- 0x14, 0x22, 0x01, 0x68, 0x0e, 0x4b, 0x72, 0x43,
- 0xd2, 0x18, 0x0c, 0x71, 0x12, 0x7c, 0x3c, 0x00,
- 0x74, 0x8b, 0x00, 0x00, 0x4a, 0x71, 0x0d, 0x60,
- 0x0b, 0x4a, 0x8f, 0x71, 0x12, 0x68, 0x7f, 0x2a,
- 0x03, 0xd9, 0x52, 0x05, 0x52, 0x0e, 0x80, 0x23,
- 0x1a, 0x43, 0xca, 0x71, 0x07, 0x4a, 0x00, 0x23,
- 0x51, 0x68, 0x01, 0x31, 0x51, 0x60, 0x02, 0x1c,
- 0x81, 0x21, 0x00, 0x20, 0xf8, 0xf7, 0x08, 0xf9,
- 0xf8, 0xbd, 0x00, 0x00, 0x74, 0x40, 0x01, 0x00,
- 0xfc, 0x5a, 0x01, 0x00, 0x80, 0x6e, 0x01, 0x00,
- 0x3c, 0x00, 0xb0, 0x8b, 0x00, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0x08, 0x21, 0x00, 0x20, 0xf8, 0xf7,
- 0x0e, 0xfd, 0x21, 0x8b, 0xe2, 0x7d, 0x05, 0x1c,
- 0x09, 0x05, 0x52, 0x07, 0x52, 0x0f, 0x49, 0x0c,
- 0x00, 0x68, 0x11, 0x43, 0x81, 0x80, 0xa1, 0x7d,
- 0x14, 0x23, 0x0e, 0x4a, 0x59, 0x43, 0x89, 0x18,
- 0x09, 0x7c, 0xc1, 0x71, 0xe1, 0x6a, 0x01, 0x60,
- 0xe1, 0x68, 0x28, 0x1c, 0xf8, 0xf7, 0x17, 0xfc,
- 0x0a, 0x48, 0x3c, 0x00, 0xec, 0x8b, 0x00, 0x00,
- 0x00, 0x68, 0x00, 0x28, 0x01, 0xd0, 0xf7, 0xf7,
- 0xf1, 0xfb, 0x07, 0x49, 0x04, 0x31, 0x88, 0x68,
- 0x01, 0x30, 0x88, 0x60, 0x00, 0x21, 0x2a, 0x1c,
- 0x00, 0x20, 0x23, 0x6b, 0xf8, 0xf7, 0xd2, 0xf8,
- 0x01, 0x20, 0xb0, 0xbd, 0x74, 0x40, 0x01, 0x00,
- 0x7c, 0x6e, 0x01, 0x00, 0x01, 0x48, 0x80, 0x68,
- 0x70, 0x47, 0x00, 0x00, 0x80, 0x6e, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x3c, 0x00, 0x28, 0x8c,
- 0x00, 0x00, 0x92, 0xb0, 0x01, 0x68, 0x68, 0x46,
- 0x08, 0x22, 0xf7, 0xf7, 0x62, 0xfc, 0x00, 0xab,
- 0x98, 0x88, 0x40, 0x07, 0x40, 0x0f, 0xd8, 0x77,
- 0x98, 0x88, 0x40, 0x04, 0x00, 0x0d, 0x18, 0x84,
- 0xd8, 0x88, 0x58, 0x84, 0x00, 0x98, 0x0d, 0x90,
- 0x05, 0x94, 0x20, 0x89, 0x08, 0x38, 0x20, 0x81,
- 0x05, 0x98, 0x01, 0x68, 0x08, 0x31, 0x01, 0x60,
- 0x00, 0x20, 0x0a, 0x90, 0x0c, 0x90, 0x3c, 0x00,
- 0x64, 0x8c, 0x00, 0x00, 0x00, 0x21, 0x11, 0x20,
- 0x09, 0xf0, 0x78, 0xfb, 0x05, 0x49, 0x06, 0x4a,
- 0x08, 0x68, 0x01, 0x30, 0x08, 0x60, 0x02, 0x21,
- 0x02, 0xa8, 0x01, 0xf0, 0xcd, 0xfc, 0x12, 0xb0,
- 0x10, 0xbd, 0x00, 0x00, 0x80, 0x6e, 0x01, 0x00,
- 0x55, 0x8b, 0x00, 0x00, 0x02, 0x1c, 0x01, 0x20,
- 0x00, 0x06, 0x08, 0x43, 0x80, 0xb5, 0x2b, 0x21,
- 0x0a, 0xf0, 0x8a, 0xfd, 0x80, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0x8c, 0x00, 0x00, 0xf7, 0xb5,
- 0x04, 0x1c, 0x06, 0x1c, 0x80, 0x20, 0x84, 0x43,
- 0x17, 0x1c, 0x06, 0x2c, 0x01, 0xd3, 0xf8, 0xf7,
- 0x26, 0xfb, 0x0b, 0x48, 0x05, 0x5d, 0x29, 0x1c,
- 0x00, 0x20, 0xf8, 0xf7, 0x8c, 0xfc, 0x04, 0x1c,
- 0x00, 0x68, 0x01, 0x99, 0x2a, 0x1c, 0xf7, 0xf7,
- 0x16, 0xfc, 0x39, 0x1c, 0x20, 0x1c, 0xf8, 0xf7,
- 0xa2, 0xfb, 0x22, 0x1c, 0x31, 0x1c, 0x00, 0x23,
- 0x02, 0x20, 0x3c, 0x00, 0xdc, 0x8c, 0x00, 0x00,
- 0xf8, 0xf7, 0x68, 0xf8, 0xfe, 0xbd, 0x00, 0x00,
- 0x20, 0x46, 0x01, 0x00, 0x0a, 0x1c, 0x01, 0x1c,
- 0x80, 0xb5, 0x00, 0x23, 0x01, 0x20, 0xf8, 0xf7,
- 0x5d, 0xf8, 0x80, 0xbd, 0xff, 0xb5, 0x9f, 0xb0,
- 0x1f, 0x1c, 0x05, 0x1c, 0x0a, 0x30, 0x1e, 0x90,
- 0x1c, 0xaa, 0x1d, 0xa9, 0x0a, 0xf0, 0x00, 0xff,
- 0x00, 0x28, 0x71, 0xd0, 0x00, 0x2f, 0x09, 0xd0,
- 0x0a, 0x21, 0x00, 0x20, 0x3c, 0x00, 0x18, 0x8d,
- 0x00, 0x00, 0xf8, 0xf7, 0x5e, 0xfc, 0x06, 0x68,
- 0x04, 0x1c, 0x30, 0x1d, 0xfa, 0xf7, 0xaf, 0xfa,
- 0x05, 0xe0, 0x04, 0x21, 0x00, 0x20, 0xf8, 0xf7,
- 0x54, 0xfc, 0x06, 0x68, 0x04, 0x1c, 0x28, 0x89,
- 0x36, 0x49, 0x01, 0x22, 0x08, 0x80, 0x70, 0x80,
- 0xe8, 0x88, 0x14, 0xa9, 0x30, 0x80, 0x19, 0xa8,
- 0xfc, 0xf7, 0xf5, 0xfc, 0xfc, 0xf7, 0xff, 0xfb,
- 0x01, 0x1c, 0xff, 0x31, 0x21, 0x31, 0x3c, 0x00,
- 0x54, 0x8d, 0x00, 0x00, 0x20, 0x1c, 0x01, 0xf0,
- 0xef, 0xf8, 0x19, 0xa9, 0x20, 0x1c, 0x01, 0xf0,
- 0xeb, 0xf8, 0x14, 0xa9, 0x20, 0x1c, 0x01, 0xf0,
- 0xe7, 0xf8, 0x20, 0x1c, 0x20, 0x99, 0xfd, 0xf7,
- 0x4b, 0xfd, 0x00, 0x22, 0x02, 0x21, 0x01, 0xf0,
- 0x33, 0xfd, 0x06, 0x1c, 0x1c, 0x99, 0x00, 0x20,
- 0x88, 0x61, 0x30, 0x1c, 0xf8, 0xf7, 0x1c, 0xfa,
- 0x00, 0x2e, 0x0b, 0xd0, 0x30, 0x7a, 0x00, 0x28,
- 0x3c, 0x00, 0x90, 0x8d, 0x00, 0x00, 0x02, 0xd0,
- 0x40, 0x21, 0x08, 0x43, 0x30, 0x72, 0x1c, 0x98,
- 0x02, 0x22, 0x81, 0x69, 0x11, 0x43, 0x81, 0x61,
- 0x04, 0xe0, 0x1c, 0x99, 0x02, 0x22, 0x88, 0x69,
- 0x90, 0x43, 0x88, 0x61, 0x1d, 0xaa, 0x06, 0xca,
- 0x01, 0xa8, 0x05, 0xf0, 0x58, 0xfb, 0x09, 0xa8,
- 0x00, 0x2f, 0x02, 0xd0, 0x02, 0x22, 0x42, 0x72,
- 0x01, 0xe0, 0x00, 0x21, 0x41, 0x72, 0x04, 0x94,
- 0x01, 0xa8, 0x3c, 0x00, 0xcc, 0x8d, 0x00, 0x00,
- 0x04, 0xf0, 0x7a, 0xfb, 0x01, 0x21, 0x1c, 0x98,
- 0x08, 0xf0, 0xc8, 0xff, 0x00, 0x2f, 0x04, 0xd0,
- 0x1c, 0x98, 0x01, 0x22, 0x81, 0x69, 0x11, 0x43,
- 0x81, 0x61, 0xa8, 0x88, 0x1c, 0x9c, 0x01, 0xf0,
- 0x9f, 0xfe, 0x02, 0x1c, 0x21, 0x1c, 0x00, 0xe0,
- 0x04, 0xe0, 0x07, 0x48, 0x40, 0x88, 0x09, 0xf0,
- 0x1f, 0xf8, 0x04, 0xe0, 0x3a, 0x1c, 0x00, 0x21,
- 0x05, 0x20, 0xf9, 0xf7, 0x3c, 0x00, 0x08, 0x8e,
- 0x00, 0x00, 0x9b, 0xf8, 0x00, 0x20, 0x23, 0xb0,
- 0xf0, 0xbd, 0xfc, 0x60, 0x01, 0x00, 0x98, 0x7c,
- 0x01, 0x00, 0xf8, 0xb5, 0x04, 0x1c, 0xc0, 0x68,
- 0x05, 0x68, 0xa0, 0x1d, 0x01, 0xf0, 0x95, 0xff,
- 0x00, 0x28, 0x45, 0xd0, 0x21, 0x1c, 0x14, 0x31,
- 0x20, 0x1c, 0x6a, 0x46, 0x0a, 0xf0, 0x55, 0xfe,
- 0x00, 0x28, 0x3d, 0xd0, 0xfc, 0xf7, 0x7d, 0xfa,
- 0x00, 0x28, 0x39, 0xd1, 0x00, 0x98, 0x3c, 0x00,
- 0x44, 0x8e, 0x00, 0x00, 0x4b, 0x21, 0x09, 0x5c,
- 0x01, 0x29, 0x34, 0xd1, 0x04, 0x26, 0x09, 0xf0,
- 0x19, 0xf9, 0x68, 0x88, 0x00, 0x28, 0x1b, 0xd1,
- 0xa8, 0x88, 0x03, 0x21, 0x89, 0x03, 0x88, 0x43,
- 0x15, 0x49, 0x00, 0x26, 0x08, 0x80, 0x01, 0x22,
- 0x02, 0x21, 0x20, 0x69, 0x01, 0xf0, 0xb8, 0xfc,
- 0x04, 0x1c, 0x14, 0xd0, 0x00, 0x98, 0x80, 0x69,
- 0x80, 0x07, 0x10, 0xd5, 0xf8, 0xf7, 0x9a, 0xf9,
- 0x3c, 0x00, 0x80, 0x8e, 0x00, 0x00, 0x20, 0x1c,
- 0xf8, 0xf7, 0xdd, 0xf8, 0x00, 0x28, 0x09, 0xd1,
- 0xf8, 0xf7, 0x7f, 0xf9, 0x01, 0x26, 0x00, 0x98,
- 0x02, 0x22, 0x81, 0x69, 0x91, 0x43, 0x81, 0x61,
- 0x00, 0x21, 0x01, 0xe0, 0x00, 0x98, 0x02, 0x21,
- 0x08, 0xf0, 0x61, 0xff, 0x00, 0x98, 0x80, 0x69,
- 0xa9, 0x88, 0xc2, 0x07, 0xd2, 0x0f, 0x30, 0x1c,
- 0xf9, 0xf7, 0x45, 0xf8, 0xf8, 0xbd, 0xfa, 0x60,
- 0x01, 0x00, 0x3c, 0x00, 0xbc, 0x8e, 0x00, 0x00,
- 0x1c, 0xb5, 0x04, 0x69, 0x00, 0x23, 0x00, 0x22,
- 0x00, 0x2c, 0x13, 0xd1, 0x4b, 0x24, 0x24, 0x5c,
- 0x02, 0x2c, 0x03, 0xd1, 0x02, 0x29, 0x05, 0xd0,
- 0x01, 0x22, 0x03, 0xe0, 0x02, 0x29, 0x01, 0xd1,
- 0x01, 0x22, 0x01, 0x23, 0x00, 0x2a, 0x05, 0xd0,
- 0x00, 0x90, 0x04, 0x20, 0x01, 0x93, 0x69, 0x46,
- 0x09, 0xf0, 0x36, 0xfa, 0x1c, 0xbd, 0x00, 0x00,
- 0xb0, 0xb5, 0x04, 0x1c, 0x3c, 0x00, 0xf8, 0x8e,
- 0x00, 0x00, 0xf2, 0x21, 0x0f, 0x20, 0x0c, 0x4d,
- 0x0a, 0xf0, 0x99, 0xfb, 0x28, 0x78, 0x08, 0x28,
- 0x0b, 0xd2, 0x01, 0xa3, 0x1b, 0x5c, 0x5b, 0x00,
- 0x9f, 0x44, 0x07, 0x03, 0x03, 0x08, 0x08, 0x08,
- 0x08, 0x08, 0x00, 0x2c, 0x01, 0xd1, 0x05, 0xf0,
- 0xbc, 0xfb, 0xb0, 0xbd, 0x01, 0x2c, 0xfc, 0xd1,
- 0xff, 0x20, 0x07, 0xf0, 0x38, 0xfa, 0xb0, 0xbd,
- 0x00, 0x00, 0x74, 0x66, 0x01, 0x00, 0x3c, 0x00,
- 0x34, 0x8f, 0x00, 0x00, 0x8c, 0xb5, 0x05, 0x4a,
- 0x00, 0xab, 0x11, 0x72, 0x00, 0x90, 0x19, 0x71,
- 0x69, 0x46, 0x08, 0x20, 0x09, 0xf0, 0x0a, 0xfa,
- 0x8c, 0xbd, 0x00, 0x00, 0xac, 0x7c, 0x01, 0x00,
- 0xf3, 0xb5, 0x04, 0x1c, 0xc0, 0x68, 0x06, 0x27,
- 0x85, 0xb0, 0x06, 0x68, 0x09, 0xf0, 0x26, 0xff,
- 0x98, 0x49, 0x48, 0x63, 0x20, 0x69, 0x03, 0x21,
- 0x01, 0xf0, 0x08, 0xfc, 0x96, 0x4d, 0x00, 0x28,
- 0x3c, 0x00, 0x70, 0x8f, 0x00, 0x00, 0x4d, 0xd0,
- 0x95, 0x49, 0x40, 0x31, 0x09, 0x79, 0x80, 0x78,
- 0x81, 0x42, 0x47, 0xd1, 0x01, 0x21, 0x20, 0x69,
- 0x01, 0xf0, 0xfb, 0xfb, 0x02, 0x90, 0x20, 0x69,
- 0x32, 0x21, 0x01, 0xf0, 0xf6, 0xfb, 0x01, 0x90,
- 0x02, 0x1c, 0x8d, 0x48, 0x02, 0x99, 0xfc, 0xf7,
- 0x46, 0xff, 0x00, 0x28, 0x36, 0xd0, 0x00, 0x23,
- 0x8a, 0x48, 0x02, 0x99, 0x01, 0x9a, 0xfc, 0xf7,
- 0xe4, 0xfe, 0x3c, 0x00, 0xac, 0x8f, 0x00, 0x00,
- 0x0b, 0x28, 0x2e, 0xd1, 0x86, 0x4a, 0x51, 0x88,
- 0x70, 0x89, 0x41, 0x40, 0x03, 0x91, 0x0b, 0x1c,
- 0x84, 0x49, 0x0b, 0x40, 0x25, 0xd1, 0x50, 0x80,
- 0x03, 0x99, 0x17, 0x1c, 0x00, 0x29, 0x0b, 0xd0,
- 0x03, 0x99, 0x48, 0x05, 0x02, 0xd5, 0x38, 0x1c,
- 0xfc, 0xf7, 0x40, 0xfe, 0x03, 0x99, 0x88, 0x06,
- 0x02, 0xd5, 0x38, 0x1c, 0xfc, 0xf7, 0x24, 0xfe,
- 0x2a, 0x21, 0x20, 0x69, 0x3c, 0x00, 0xe8, 0x8f,
- 0x00, 0x00, 0x01, 0xf0, 0xc8, 0xfb, 0x00, 0x28,
- 0x0d, 0xd0, 0x80, 0x78, 0xe9, 0x69, 0x81, 0x42,
- 0x09, 0xd0, 0xe8, 0x61, 0x38, 0x1c, 0xfc, 0xf7,
- 0x16, 0xfe, 0x38, 0x1c, 0xfc, 0xf7, 0x07, 0xfe,
- 0x38, 0x1c, 0xfc, 0xf7, 0x26, 0xfe, 0x00, 0x27,
- 0x20, 0x1c, 0x20, 0x30, 0x04, 0x90, 0x40, 0x7a,
- 0x08, 0x28, 0x71, 0xd1, 0x0a, 0xf0, 0xd1, 0xfc,
- 0x00, 0x20, 0x68, 0x61, 0x00, 0x23, 0x3c, 0x00,
- 0x24, 0x90, 0x00, 0x00, 0x2b, 0x61, 0xa8, 0x68,
- 0x66, 0x49, 0x01, 0x30, 0xa8, 0x60, 0x30, 0x89,
- 0x5c, 0x31, 0x88, 0x82, 0x01, 0xf0, 0x7a, 0xfd,
- 0x62, 0x49, 0x5c, 0x31, 0x08, 0x61, 0x22, 0x6a,
- 0x04, 0x98, 0x18, 0x21, 0x00, 0x7a, 0x01, 0xf0,
- 0x33, 0xfe, 0xe1, 0x6a, 0x40, 0x18, 0x03, 0x90,
- 0x5c, 0x48, 0x00, 0x6a, 0x00, 0x28, 0x0d, 0xd0,
- 0x00, 0x2f, 0x0b, 0xd1, 0x59, 0x48, 0x01, 0x23,
- 0x3c, 0x00, 0x60, 0x90, 0x00, 0x00, 0x5c, 0x30,
- 0x01, 0x68, 0x1b, 0x07, 0x00, 0x22, 0x30, 0x68,
- 0x09, 0xf0, 0x49, 0xff, 0x00, 0x28, 0x00, 0xd1,
- 0x05, 0x27, 0x00, 0x21, 0xa0, 0x6b, 0x0a, 0xf0,
- 0xce, 0xfc, 0x00, 0x21, 0x20, 0x6c, 0x0a, 0xf0,
- 0xe8, 0xfc, 0x4f, 0x4b, 0x03, 0xce, 0x03, 0x9a,
- 0x5c, 0x33, 0xfc, 0xf7, 0x88, 0xfd, 0x00, 0x20,
- 0x4c, 0x4e, 0x05, 0x21, 0xb0, 0x63, 0x20, 0x69,
- 0x01, 0xf0, 0x3c, 0x00, 0x9c, 0x90, 0x00, 0x00,
- 0x6f, 0xfb, 0x01, 0x1c, 0x01, 0xd1, 0xf0, 0x60,
- 0x1c, 0xe0, 0x01, 0x20, 0xf0, 0x60, 0x88, 0x78,
- 0x45, 0x4a, 0x01, 0x32, 0x10, 0x70, 0xc8, 0x78,
- 0x50, 0x70, 0x47, 0x4a, 0x10, 0x70, 0x30, 0x69,
- 0x00, 0x28, 0x0a, 0xd0, 0x4a, 0x78, 0x08, 0x79,
- 0x05, 0x31, 0x09, 0xf0, 0xdd, 0xfa, 0x31, 0x69,
- 0xf7, 0xf7, 0x85, 0xf9, 0xf0, 0x68, 0x00, 0x28,
- 0x04, 0xd0, 0x3b, 0x4a, 0x3c, 0x00, 0xd8, 0x90,
- 0x00, 0x00, 0x01, 0x32, 0x10, 0x78, 0x00, 0x28,
- 0x08, 0xd1, 0x00, 0x20, 0xa8, 0x61, 0x71, 0x6a,
- 0x00, 0x29, 0x03, 0xd0, 0x20, 0x1c, 0x14, 0x30,
- 0xf7, 0xf7, 0x74, 0xf9, 0x34, 0x4a, 0x5c, 0x32,
- 0x10, 0x69, 0x31, 0x6a, 0x41, 0x18, 0x00, 0xe0,
- 0x20, 0xe0, 0x0a, 0x23, 0xd0, 0x68, 0x0a, 0x22,
- 0x09, 0xf0, 0xfb, 0xfe, 0x00, 0x28, 0x07, 0xd0,
- 0x2d, 0x4a, 0x31, 0x6a, 0x5c, 0x32, 0x3c, 0x00,
- 0x14, 0x91, 0x00, 0x00, 0xd0, 0x68, 0x40, 0x1a,
- 0x11, 0x69, 0x40, 0x1a, 0x70, 0x60, 0x29, 0x4a,
- 0x5c, 0x32, 0xd0, 0x68, 0x30, 0x62, 0xf0, 0x69,
- 0x00, 0x28, 0x04, 0xd0, 0xfa, 0xf7, 0x00, 0xfd,
- 0x01, 0x20, 0xfa, 0xf7, 0xa1, 0xfc, 0xfa, 0xf7,
- 0x81, 0xfc, 0x27, 0x48, 0x00, 0x68, 0x03, 0xf0,
- 0x07, 0xf9, 0x06, 0x98, 0x00, 0x28, 0x03, 0xd1,
- 0x1e, 0x4e, 0x00, 0x23, 0xb3, 0x60, 0x16, 0xe0,
- 0x3c, 0x00, 0x50, 0x91, 0x00, 0x00, 0x1c, 0x4e,
- 0x01, 0x20, 0xb0, 0x60, 0x06, 0x98, 0x01, 0x68,
- 0x40, 0x68, 0xb0, 0x65, 0x19, 0x48, 0x71, 0x65,
- 0x54, 0x30, 0xc0, 0x88, 0x00, 0x28, 0x09, 0xd0,
- 0xb1, 0x69, 0x00, 0x29, 0x06, 0xd0, 0x01, 0xf0,
- 0xdc, 0xfc, 0x01, 0x1c, 0xe0, 0x6a, 0xb2, 0x69,
- 0xf7, 0xf7, 0x2f, 0xf9, 0x00, 0x2f, 0x15, 0xd1,
- 0x12, 0x48, 0x01, 0x69, 0x00, 0x29, 0x08, 0xd1,
- 0x01, 0x21, 0x3c, 0x00, 0x8c, 0x91, 0x00, 0x00,
- 0x01, 0x61, 0x2a, 0x68, 0x00, 0x2a, 0x03, 0xd0,
- 0x00, 0x21, 0x00, 0x20, 0xf7, 0xf7, 0x20, 0xf9,
- 0x09, 0x49, 0x00, 0x23, 0xcb, 0x62, 0x2b, 0x61,
- 0x6b, 0x61, 0x06, 0xf0, 0xb5, 0xf8, 0x07, 0xb0,
- 0xf0, 0xbd, 0x6b, 0x68, 0x06, 0x48, 0x00, 0x2b,
- 0xf9, 0xd0, 0x02, 0x1d, 0x11, 0x1c, 0x38, 0x1c,
- 0xf7, 0xf7, 0x0f, 0xf9, 0xf3, 0xe7, 0x00, 0x00,
- 0x44, 0x7d, 0x01, 0x00, 0x3c, 0x00, 0xc8, 0x91,
- 0x00, 0x00, 0xf4, 0x68, 0x01, 0x00, 0xf4, 0x67,
- 0x01, 0x00, 0x03, 0x08, 0x00, 0x00, 0xf8, 0x60,
- 0x01, 0x00, 0xc4, 0x67, 0x01, 0x00, 0x08, 0xb5,
- 0xf8, 0xf7, 0x2f, 0xfd, 0x00, 0x90, 0x00, 0xab,
- 0x18, 0x88, 0x00, 0x28, 0x0c, 0xd0, 0x05, 0xf0,
- 0x50, 0xff, 0x00, 0xab, 0x59, 0x88, 0x18, 0x88,
- 0x05, 0xf0, 0x6d, 0xf9, 0xfe, 0xf7, 0x97, 0xf8,
- 0x03, 0x20, 0xfb, 0xf7, 0x0e, 0xf8, 0x3c, 0x00,
- 0x04, 0x92, 0x00, 0x00, 0x08, 0xbd, 0x01, 0x20,
- 0xff, 0xf7, 0xb2, 0xfb, 0x00, 0x20, 0x08, 0xf0,
- 0x8d, 0xfe, 0xf7, 0xe7, 0xf8, 0xb5, 0x4f, 0x49,
- 0x8c, 0x68, 0x20, 0x6a, 0x00, 0x68, 0x05, 0x78,
- 0xfc, 0xf7, 0x68, 0xfa, 0x00, 0x28, 0x12, 0xd0,
- 0x2a, 0x07, 0x92, 0x0f, 0x01, 0x21, 0x01, 0x2a,
- 0x00, 0xd0, 0x00, 0x21, 0x00, 0x29, 0x03, 0xd0,
- 0x29, 0x06, 0x09, 0x0f, 0x0b, 0x29, 0x06, 0xd1,
- 0x3c, 0x00, 0x40, 0x92, 0x00, 0x00, 0x2a, 0x21,
- 0x09, 0x5d, 0x08, 0x18, 0x90, 0x30, 0x00, 0x7b,
- 0xf9, 0xf7, 0x0d, 0xfc, 0x41, 0x4f, 0x3c, 0x3f,
- 0xb8, 0x6b, 0x79, 0x6b, 0xf7, 0xf7, 0xc0, 0xf8,
- 0xa0, 0x6c, 0x00, 0x26, 0xc6, 0x60, 0x60, 0x6b,
- 0x80, 0x08, 0x04, 0xd0, 0xb8, 0x69, 0x01, 0x30,
- 0xb8, 0x61, 0x06, 0xf0, 0xdc, 0xf9, 0x39, 0x4d,
- 0x28, 0x69, 0x80, 0x05, 0x80, 0x0f, 0x08, 0xd1,
- 0x78, 0x69, 0x3c, 0x00, 0x7c, 0x92, 0x00, 0x00,
- 0x04, 0x21, 0x01, 0x30, 0x78, 0x61, 0x60, 0x6b,
- 0x40, 0x08, 0x40, 0x00, 0x08, 0x43, 0x60, 0x63,
- 0xb8, 0x6a, 0x00, 0x28, 0x03, 0xd0, 0x60, 0x6b,
- 0x08, 0x21, 0x08, 0x43, 0x60, 0x63, 0x20, 0x1c,
- 0x20, 0x30, 0x00, 0x90, 0x39, 0x68, 0xf7, 0xf7,
- 0x9a, 0xf8, 0x03, 0x20, 0x00, 0x02, 0x28, 0x60,
- 0x2b, 0x49, 0x88, 0x68, 0xa0, 0x63, 0xc8, 0x68,
- 0xe0, 0x63, 0x08, 0x79, 0x3c, 0x00, 0xb8, 0x92,
- 0x00, 0x00, 0xc0, 0x06, 0xc0, 0x0e, 0x25, 0x1c,
- 0x40, 0x35, 0x28, 0x71, 0x48, 0x79, 0x68, 0x71,
- 0x23, 0x48, 0x3c, 0x38, 0x46, 0x62, 0x00, 0x98,
- 0x80, 0x7a, 0x01, 0xf0, 0x5e, 0xfd, 0x00, 0x21,
- 0x00, 0x28, 0x21, 0x4a, 0x01, 0xd0, 0x11, 0x78,
- 0x03, 0xe0, 0x93, 0x78, 0xdb, 0x07, 0x00, 0xd5,
- 0x51, 0x78, 0xa9, 0x71, 0x00, 0x28, 0x04, 0xd0,
- 0x1b, 0x49, 0x14, 0x31, 0x08, 0x68, 0x3c, 0x00,
- 0xf4, 0x92, 0x00, 0x00, 0x20, 0x64, 0x00, 0xe0,
- 0x6e, 0x80, 0xb8, 0x6a, 0xc0, 0x07, 0x02, 0xd5,
- 0xff, 0x20, 0x28, 0x71, 0xae, 0x71, 0xe6, 0x61,
- 0xb8, 0x68, 0x01, 0x30, 0xb8, 0x60, 0x79, 0x68,
- 0x88, 0x42, 0x03, 0xd0, 0x0b, 0x21, 0x85, 0x20,
- 0xf7, 0xf7, 0xc4, 0xff, 0x0d, 0x49, 0x88, 0x68,
- 0xc0, 0x6c, 0x88, 0x60, 0xfb, 0x6a, 0x00, 0x2b,
- 0x0c, 0xd0, 0x0e, 0x4a, 0xd4, 0x7b, 0x00, 0x2b,
- 0x3c, 0x00, 0x30, 0x93, 0x00, 0x00, 0x02, 0xdd,
- 0x7f, 0x2c, 0x05, 0xd2, 0x01, 0xe0, 0x00, 0x2c,
- 0x02, 0xd0, 0xd4, 0x7b, 0xe3, 0x18, 0xd3, 0x73,
- 0xfe, 0x62, 0xc9, 0x68, 0x88, 0x42, 0x03, 0xd1,
- 0x05, 0x21, 0x85, 0x20, 0xf7, 0xf7, 0xa9, 0xff,
- 0xf8, 0xbd, 0x24, 0x7e, 0x01, 0x00, 0x00, 0x40,
- 0x07, 0x00, 0xa0, 0x80, 0x07, 0x00, 0xe8, 0x80,
- 0x07, 0x00, 0x40, 0x00, 0x07, 0x00, 0xfe, 0xb5,
- 0x30, 0x4c, 0x3c, 0x00, 0x6c, 0x93, 0x00, 0x00,
- 0xa0, 0x6b, 0x21, 0x6b, 0xf7, 0xf7, 0x33, 0xf8,
- 0x2d, 0x49, 0x3c, 0x31, 0x8e, 0x68, 0x70, 0x8b,
- 0x06, 0x28, 0x04, 0xd2, 0xe0, 0x69, 0x01, 0x30,
- 0xe0, 0x61, 0x0e, 0x20, 0x30, 0x85, 0x28, 0x49,
- 0x3c, 0x31, 0x0d, 0x68, 0x00, 0x2d, 0x03, 0xd1,
- 0x03, 0x21, 0x85, 0x20, 0xf7, 0xf7, 0x84, 0xff,
- 0x24, 0x48, 0x45, 0x61, 0x35, 0x62, 0x31, 0x8d,
- 0xef, 0x68, 0x04, 0x39, 0x3c, 0x00, 0xa8, 0x93,
- 0x00, 0x00, 0x0c, 0x04, 0x01, 0x21, 0x02, 0x91,
- 0x24, 0x0c, 0x00, 0x21, 0x01, 0x91, 0x1d, 0x48,
- 0x3c, 0x30, 0x80, 0x8a, 0xa0, 0x42, 0x03, 0xd3,
- 0x2c, 0x81, 0xee, 0x60, 0x00, 0x24, 0x0b, 0xe0,
- 0x00, 0x2f, 0x04, 0xd1, 0x03, 0x21, 0x85, 0x20,
- 0xf7, 0xf7, 0x69, 0xff, 0x04, 0xe0, 0x3d, 0x1c,
- 0x20, 0x1a, 0x04, 0x04, 0xff, 0x68, 0x24, 0x0c,
- 0x02, 0x98, 0x00, 0x28, 0x04, 0xd0, 0x3c, 0x00,
- 0xe4, 0x93, 0x00, 0x00, 0x12, 0x49, 0x01, 0x20,
- 0x08, 0x61, 0x00, 0x20, 0x02, 0x90, 0x01, 0x98,
- 0x01, 0x30, 0x01, 0x90, 0x00, 0x2c, 0xdd, 0xd1,
- 0x0c, 0x48, 0x0c, 0x4c, 0x3c, 0x30, 0x07, 0x60,
- 0x01, 0x98, 0x30, 0x65, 0xb5, 0x64, 0x30, 0x6a,
- 0x00, 0x68, 0x60, 0x62, 0x60, 0x68, 0x01, 0x30,
- 0x60, 0x60, 0xa1, 0x68, 0x01, 0x31, 0x88, 0x42,
- 0x03, 0xd0, 0x0a, 0x21, 0x85, 0x20, 0xf7, 0xf7,
- 0x3c, 0x00, 0x20, 0x94, 0x00, 0x00, 0x41, 0xff,
- 0x04, 0x48, 0x00, 0x68, 0xa0, 0x62, 0xfe, 0xbd,
- 0x00, 0x00, 0xe8, 0x7d, 0x01, 0x00, 0x00, 0x30,
- 0x07, 0x00, 0x78, 0x6e, 0x01, 0x00, 0xb0, 0xb5,
- 0x05, 0x1c, 0x01, 0x21, 0x0f, 0x20, 0x0a, 0xf0,
- 0xf8, 0xf8, 0xf2, 0x21, 0x0f, 0x20, 0x0a, 0xf0,
- 0xf4, 0xf8, 0x0c, 0x48, 0x0c, 0x4c, 0x00, 0x68,
- 0x14, 0x3c, 0x00, 0x28, 0x0c, 0xd0, 0xe0, 0x78,
- 0x01, 0x28, 0x3c, 0x00, 0x5c, 0x94, 0x00, 0x00,
- 0x09, 0xd0, 0x01, 0x22, 0x29, 0x1c, 0x0f, 0x20,
- 0x0a, 0xf0, 0xac, 0xf8, 0x60, 0x78, 0x02, 0x28,
- 0x06, 0xd0, 0x01, 0x20, 0x03, 0xe0, 0x60, 0x78,
- 0x02, 0x28, 0x01, 0xd0, 0x00, 0x20, 0x60, 0x70,
- 0xb0, 0xbd, 0x00, 0x00, 0x98, 0x66, 0x01, 0x00,
- 0x02, 0x22, 0x00, 0x28, 0x80, 0xb5, 0x00, 0xd1,
- 0x03, 0x22, 0x03, 0x49, 0x0e, 0x20, 0x0a, 0xf0,
- 0x9b, 0xf8, 0x00, 0x20, 0x3c, 0x00, 0x98, 0x94,
- 0x00, 0x00, 0x80, 0xbd, 0x00, 0x00, 0x50, 0xc3,
- 0x00, 0x00, 0xf8, 0xb5, 0x00, 0x23, 0x00, 0x22,
- 0x00, 0x28, 0x2e, 0xd0, 0x06, 0x89, 0x04, 0x68,
- 0x75, 0x1e, 0x2d, 0x04, 0xb6, 0x1a, 0xf6, 0x07,
- 0x2d, 0x0c, 0xf6, 0x0f, 0xb4, 0x46, 0x0e, 0xe0,
- 0xa7, 0x5c, 0xa6, 0x18, 0x02, 0x33, 0x00, 0x97,
- 0x77, 0x78, 0xa7, 0x54, 0x02, 0x32, 0x12, 0x04,
- 0x00, 0x9f, 0x12, 0x0c, 0x00, 0x29, 0x3c, 0x00,
- 0xd4, 0x94, 0x00, 0x00, 0x77, 0x70, 0x01, 0xdd,
- 0x8b, 0x42, 0x15, 0xda, 0xaa, 0x42, 0xee, 0xd3,
- 0xc0, 0x68, 0x00, 0x28, 0x10, 0xd0, 0x02, 0x89,
- 0x00, 0x2a, 0xf9, 0xd0, 0x62, 0x46, 0x00, 0x2a,
- 0x0b, 0xd0, 0x02, 0x68, 0x66, 0x5d, 0x17, 0x78,
- 0x02, 0x33, 0x67, 0x55, 0x16, 0x70, 0x01, 0x22,
- 0x00, 0x29, 0xd2, 0xdd, 0x8b, 0x42, 0xd0, 0xdb,
- 0xf8, 0xbd, 0x00, 0x22, 0xcd, 0xe7, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0x95, 0x00, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0x0d, 0x1c, 0x01, 0x20, 0xf8, 0xf7,
- 0x5e, 0xfb, 0x0d, 0x49, 0x00, 0x28, 0xc8, 0x61,
- 0x14, 0xd0, 0x62, 0x68, 0x42, 0x60, 0xa2, 0x7c,
- 0x02, 0x72, 0xa2, 0x68, 0xc2, 0x60, 0xe2, 0x68,
- 0x02, 0x61, 0x22, 0x8a, 0x02, 0x75, 0x0a, 0x1d,
- 0x0a, 0x62, 0x12, 0x68, 0x00, 0x2a, 0xff, 0xd1,
- 0x02, 0x60, 0x48, 0x60, 0x00, 0x20, 0xa8, 0x60,
- 0x01, 0x20, 0x3c, 0x00, 0x4c, 0x95, 0x00, 0x00,
- 0xb0, 0xbd, 0x01, 0x20, 0xfa, 0xe7, 0x00, 0x00,
- 0xa4, 0x6e, 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x40, 0x68, 0x0d, 0x1c, 0x43, 0x1c, 0x02, 0xd1,
- 0x21, 0x1c, 0x09, 0x48, 0x08, 0xe0, 0x00, 0x20,
- 0xf8, 0xf7, 0x34, 0xfb, 0x06, 0x49, 0x94, 0x39,
- 0x08, 0x61, 0x00, 0x28, 0x03, 0xd0, 0x21, 0x1c,
- 0x00, 0xf0, 0x48, 0xfe, 0x00, 0xe0, 0x01, 0x20,
- 0xa8, 0x60, 0x01, 0x20, 0x3c, 0x00, 0x88, 0x95,
- 0x00, 0x00, 0xb0, 0xbd, 0x00, 0x00, 0x38, 0x6f,
- 0x01, 0x00, 0x80, 0xb5, 0x01, 0x21, 0x97, 0x20,
- 0xf7, 0xf7, 0x85, 0xfe, 0x00, 0x20, 0x80, 0xbd,
- 0x00, 0x00, 0x38, 0xb5, 0x0a, 0x1c, 0x14, 0x32,
- 0x00, 0x92, 0x13, 0x1f, 0x05, 0x1c, 0x08, 0x3a,
- 0x0c, 0x1c, 0x16, 0x31, 0x40, 0x68, 0xfe, 0xf7,
- 0x6c, 0xfe, 0x00, 0x28, 0x01, 0xd0, 0x00, 0x20,
- 0x00, 0xe0, 0x01, 0x20, 0x69, 0x68, 0x3c, 0x00,
- 0xc4, 0x95, 0x00, 0x00, 0xa0, 0x60, 0x61, 0x60,
- 0x01, 0x20, 0x38, 0xbd, 0x10, 0xb5, 0x0c, 0x1c,
- 0x01, 0x7a, 0x00, 0x29, 0x0f, 0xd0, 0x01, 0x29,
- 0x09, 0xd0, 0x02, 0x29, 0x03, 0xd1, 0x00, 0x21,
- 0x00, 0x20, 0x0a, 0xf0, 0x73, 0xfc, 0x00, 0x20,
- 0x20, 0x71, 0x01, 0x20, 0x10, 0xbd, 0x41, 0x68,
- 0x01, 0x20, 0x0a, 0xf0, 0x6b, 0xfc, 0x00, 0xf0,
- 0x0d, 0xf9, 0xf4, 0xe7, 0x80, 0xb5, 0x04, 0x49,
- 0x3c, 0x00, 0x00, 0x96, 0x00, 0x00, 0x48, 0x68,
- 0x01, 0x38, 0x48, 0x60, 0x01, 0xd1, 0x07, 0xf0,
- 0x6e, 0xfb, 0x00, 0x20, 0x80, 0xbd, 0xac, 0x79,
- 0x01, 0x00, 0xb0, 0xb5, 0x05, 0x1c, 0x0c, 0x1c,
- 0x00, 0xf0, 0x4f, 0xfe, 0xa0, 0x60, 0x68, 0x68,
- 0x60, 0x60, 0x01, 0x20, 0xb0, 0xbd, 0xb0, 0xb5,
- 0x05, 0x1c, 0x0c, 0x1c, 0x00, 0xf0, 0x6f, 0xfe,
- 0xa0, 0x60, 0x68, 0x68, 0x60, 0x60, 0x01, 0x20,
- 0xb0, 0xbd, 0x3c, 0x00, 0x3c, 0x96, 0x00, 0x00,
- 0x08, 0x1c, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23,
- 0x0e, 0xc0, 0x08, 0xc0, 0x01, 0x20, 0x70, 0x47,
- 0xf8, 0xb5, 0x0f, 0x1c, 0x04, 0x1c, 0x20, 0x79,
- 0x20, 0x28, 0x01, 0xd2, 0x20, 0x20, 0x20, 0x71,
- 0x66, 0x79, 0x00, 0x2e, 0x02, 0xd1, 0x25, 0x79,
- 0x00, 0x22, 0x0d, 0xe0, 0x25, 0x79, 0x29, 0x1c,
- 0x30, 0x1c, 0xf7, 0xf7, 0x4f, 0xf8, 0x00, 0x29,
- 0x01, 0xd1, 0x32, 0x1c, 0x3c, 0x00, 0x78, 0x96,
- 0x00, 0x00, 0x04, 0xe0, 0x70, 0x43, 0x80, 0x19,
- 0x05, 0x06, 0x2d, 0x0e, 0x32, 0x1c, 0xe0, 0x79,
- 0x29, 0x1c, 0x00, 0xf0, 0xf2, 0xf9, 0x20, 0x7a,
- 0x2f, 0x49, 0xc0, 0x07, 0xc0, 0x0f, 0x08, 0x60,
- 0x2e, 0x48, 0x00, 0x78, 0xc0, 0x07, 0x43, 0xd5,
- 0xa1, 0x79, 0x2c, 0x4a, 0xc8, 0x07, 0x48, 0xd4,
- 0x2c, 0x4e, 0x16, 0x60, 0x8b, 0x07, 0x2b, 0x48,
- 0x08, 0xd5, 0xcc, 0x08, 0x01, 0x23, 0x3c, 0x00,
- 0xb4, 0x96, 0x00, 0x00, 0xa3, 0x40, 0x03, 0x60,
- 0x49, 0x07, 0x04, 0xd5, 0x28, 0x49, 0x11, 0x60,
- 0x01, 0xe0, 0x40, 0x21, 0x01, 0x60, 0x13, 0x68,
- 0x26, 0x4a, 0xb3, 0x42, 0x10, 0xd1, 0x54, 0x68,
- 0x01, 0x68, 0x0c, 0x43, 0x54, 0x60, 0x14, 0x68,
- 0x0c, 0x40, 0x01, 0xd0, 0x51, 0x61, 0x00, 0xe0,
- 0x91, 0x61, 0x54, 0x68, 0x0c, 0x43, 0x54, 0x60,
- 0x94, 0x68, 0x21, 0x43, 0x91, 0x60, 0x13, 0xe0,
- 0x3c, 0x00, 0xf0, 0x96, 0x00, 0x00, 0x54, 0x7c,
- 0x01, 0x68, 0x0c, 0x43, 0x54, 0x74, 0x14, 0x7c,
- 0x0c, 0x40, 0x03, 0xd0, 0x14, 0x7c, 0x0c, 0x43,
- 0x14, 0x74, 0x02, 0xe0, 0x14, 0x7c, 0x8c, 0x43,
- 0x14, 0x74, 0x54, 0x7c, 0x0c, 0x43, 0x54, 0x74,
- 0x94, 0x7c, 0x21, 0x43, 0x91, 0x74, 0xb3, 0x42,
- 0x05, 0xd1, 0x00, 0x22, 0x01, 0x68, 0x03, 0x20,
- 0xff, 0xf7, 0x8d, 0xf8, 0x09, 0xe0, 0x00, 0x68,
- 0x00, 0x21, 0x3c, 0x00, 0x2c, 0x97, 0x00, 0x00,
- 0x02, 0x06, 0x12, 0x0e, 0x03, 0x20, 0xff, 0xf7,
- 0x85, 0xf8, 0x01, 0xe0, 0x0b, 0x48, 0x10, 0x60,
- 0x00, 0x20, 0x38, 0x71, 0x7d, 0x71, 0xf7, 0xf7,
- 0xe9, 0xfd, 0x01, 0x20, 0xf8, 0xbd, 0x00, 0x00,
- 0xcc, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x07, 0x00,
- 0x5c, 0x5b, 0x01, 0x00, 0xb9, 0x9b, 0x00, 0x00,
- 0x58, 0x5b, 0x01, 0x00, 0x95, 0x9b, 0x00, 0x00,
- 0x10, 0x00, 0x07, 0x00, 0x3c, 0x00, 0x68, 0x97,
- 0x00, 0x00, 0x55, 0x9b, 0x00, 0x00, 0xb0, 0xb5,
- 0x0d, 0x1c, 0x04, 0x30, 0x00, 0x24, 0xfe, 0xf7,
- 0xd6, 0xfa, 0x01, 0x20, 0x6c, 0x60, 0xb0, 0xbd,
- 0x00, 0x00, 0xf0, 0xb5, 0x07, 0x7a, 0x43, 0x68,
- 0x04, 0x1c, 0x0e, 0x48, 0x0e, 0x1c, 0x00, 0x68,
- 0x01, 0x25, 0x01, 0x1c, 0x9b, 0xb0, 0x06, 0xe0,
- 0x4a, 0x68, 0x9a, 0x42, 0x02, 0xd1, 0x8f, 0x76,
- 0x00, 0x25, 0x02, 0xe0, 0x09, 0x68, 0x3c, 0x00,
- 0xa4, 0x97, 0x00, 0x00, 0x00, 0x29, 0xf6, 0xd1,
- 0x00, 0x2d, 0x05, 0xd1, 0x21, 0x7a, 0x01, 0x29,
- 0x02, 0xd1, 0x01, 0xa9, 0xf8, 0xf7, 0xa8, 0xf8,
- 0x60, 0x68, 0x04, 0x36, 0x21, 0xc6, 0x1b, 0xb0,
- 0x01, 0x20, 0xf0, 0xbd, 0xa4, 0x6e, 0x01, 0x00,
- 0x10, 0xb5, 0x0c, 0x1c, 0x08, 0xf0, 0xae, 0xfc,
- 0x60, 0x60, 0x01, 0x20, 0x10, 0xbd, 0x00, 0x00,
- 0x10, 0xb5, 0x0c, 0x1c, 0x07, 0xf0, 0x84, 0xfa,
- 0x3c, 0x00, 0xe0, 0x97, 0x00, 0x00, 0x04, 0xf0,
- 0x54, 0xff, 0x00, 0x20, 0x60, 0x60, 0x01, 0x20,
- 0x10, 0xbd, 0x00, 0x20, 0xc0, 0x43, 0x48, 0x60,
- 0x01, 0x20, 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5,
- 0x0c, 0x1c, 0x00, 0x79, 0xfa, 0xf7, 0x07, 0xf8,
- 0x00, 0x28, 0x01, 0xd0, 0x00, 0x20, 0x00, 0xe0,
- 0x02, 0x20, 0x60, 0x60, 0x01, 0x20, 0x10, 0xbd,
- 0x00, 0x00, 0x1c, 0xb5, 0x06, 0x4c, 0x20, 0x68,
- 0x00, 0x28, 0x3c, 0x00, 0x1c, 0x98, 0x00, 0x00,
- 0x07, 0xd0, 0x09, 0xf0, 0xc5, 0xfa, 0x01, 0x90,
- 0x20, 0x68, 0x41, 0x68, 0x68, 0x46, 0xf6, 0xf7,
- 0xd6, 0xfd, 0x1c, 0xbd, 0xac, 0x79, 0x01, 0x00,
- 0x01, 0x49, 0x08, 0x60, 0x70, 0x47, 0x00, 0x00,
- 0xac, 0x79, 0x01, 0x00, 0x0e, 0xb5, 0x06, 0x4b,
- 0x1b, 0x68, 0x00, 0x2b, 0x06, 0xd0, 0x02, 0x90,
- 0x00, 0x91, 0x01, 0x92, 0x68, 0x46, 0xd9, 0x68,
- 0xf6, 0xf7, 0xc1, 0xfd, 0x3c, 0x00, 0x58, 0x98,
- 0x00, 0x00, 0x0e, 0xbd, 0x00, 0x00, 0xac, 0x79,
- 0x01, 0x00, 0x1c, 0xb5, 0x04, 0x1c, 0x07, 0xf0,
- 0x4c, 0xfa, 0x06, 0x48, 0x41, 0x68, 0x01, 0x31,
- 0x41, 0x60, 0x00, 0x94, 0x00, 0x21, 0x01, 0x91,
- 0x00, 0x68, 0x01, 0x68, 0x68, 0x46, 0xf6, 0xf7,
- 0xad, 0xfd, 0x1c, 0xbd, 0x00, 0x00, 0xac, 0x79,
- 0x01, 0x00, 0x80, 0xb5, 0xf8, 0xf7, 0xa3, 0xf8,
- 0x80, 0xbd, 0x80, 0xb5, 0x02, 0x1c, 0x3c, 0x00,
- 0x94, 0x98, 0x00, 0x00, 0x80, 0x21, 0x03, 0x20,
- 0x00, 0xf0, 0x5c, 0xf8, 0x01, 0x1c, 0x03, 0x48,
- 0x00, 0x22, 0x43, 0x69, 0xf6, 0xf7, 0x9b, 0xfd,
- 0x80, 0xbd, 0x00, 0x00, 0xa4, 0x6d, 0x01, 0x00,
- 0xf8, 0xb5, 0x0c, 0x1c, 0x13, 0x49, 0x05, 0x1c,
- 0x08, 0x68, 0x16, 0x1c, 0x01, 0x30, 0x08, 0x60,
- 0x00, 0x20, 0x20, 0x61, 0x22, 0x1c, 0x10, 0x32,
- 0x28, 0x1d, 0x00, 0x21, 0x07, 0x1c, 0x00, 0x92,
- 0x3c, 0x00, 0xd0, 0x98, 0x00, 0x00, 0x03, 0xf0,
- 0xde, 0xfe, 0x20, 0x71, 0x20, 0x69, 0x00, 0x28,
- 0x10, 0xd0, 0x01, 0x04, 0x09, 0x0c, 0x00, 0x20,
- 0xf7, 0xf7, 0x79, 0xfe, 0x30, 0x60, 0x29, 0x1d,
- 0x03, 0xc9, 0xa0, 0x60, 0xe1, 0x60, 0x30, 0x68,
- 0x01, 0x68, 0x00, 0x9a, 0x38, 0x1c, 0x03, 0xf0,
- 0xca, 0xfe, 0x20, 0x71, 0x01, 0x20, 0xf8, 0xbd,
- 0x00, 0x00, 0x10, 0x75, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x1c, 0x3c, 0x00, 0x0c, 0x99, 0x00, 0x00,
- 0x08, 0x21, 0x04, 0x20, 0x09, 0xf0, 0x4e, 0xff,
- 0x03, 0x20, 0x80, 0xbd, 0x10, 0xb5, 0x07, 0x4a,
- 0x0c, 0x1c, 0x51, 0x68, 0x01, 0x31, 0x51, 0x60,
- 0x01, 0x1c, 0x10, 0x31, 0xc2, 0x68, 0x04, 0x30,
- 0x03, 0xf0, 0xf0, 0xfe, 0x20, 0x71, 0x00, 0x20,
- 0x10, 0xbd, 0x00, 0x00, 0x10, 0x75, 0x01, 0x00,
- 0x04, 0x49, 0x80, 0xb5, 0x81, 0x61, 0x08, 0x21,
- 0x02, 0x1c, 0x03, 0x20, 0x3c, 0x00, 0x48, 0x99,
- 0x00, 0x00, 0x09, 0xf0, 0x32, 0xff, 0x03, 0x20,
- 0x80, 0xbd, 0x95, 0xd8, 0x00, 0x00, 0xf7, 0xb5,
- 0x07, 0x1c, 0x16, 0x1c, 0x06, 0x21, 0x00, 0x20,
- 0x82, 0xb0, 0xf7, 0xf7, 0x3a, 0xfe, 0x05, 0x1c,
- 0x20, 0x48, 0x00, 0x78, 0x06, 0x28, 0x00, 0xd9,
- 0x28, 0x81, 0x2c, 0x68, 0x00, 0x20, 0xa7, 0x70,
- 0x03, 0x99, 0xe1, 0x70, 0x31, 0x1c, 0x03, 0xe0,
- 0x0a, 0x89, 0x10, 0x18, 0x0f, 0x1c, 0x3c, 0x00,
- 0x84, 0x99, 0x00, 0x00, 0xc9, 0x68, 0x00, 0x29,
- 0xf9, 0xd1, 0x6b, 0x46, 0x01, 0xaa, 0x21, 0x1d,
- 0x00, 0xf0, 0x34, 0xf8, 0x00, 0xab, 0x18, 0x78,
- 0x60, 0x71, 0x18, 0x78, 0x00, 0x28, 0x17, 0xd0,
- 0x11, 0x48, 0x40, 0x68, 0x00, 0x28, 0x08, 0xd0,
- 0x19, 0x78, 0x00, 0x20, 0xf7, 0xf7, 0x14, 0xfe,
- 0x01, 0x1c, 0x38, 0x1c, 0xf7, 0xf7, 0x30, 0xfd,
- 0x0a, 0xe0, 0x38, 0x68, 0x00, 0x28, 0x02, 0xd1,
- 0x3c, 0x00, 0xc0, 0x99, 0x00, 0x00, 0x3f, 0x60,
- 0x01, 0x20, 0xb8, 0x61, 0x00, 0xab, 0x19, 0x78,
- 0x38, 0x89, 0x40, 0x18, 0x38, 0x81, 0x00, 0xab,
- 0x98, 0x88, 0x31, 0x1c, 0x02, 0x38, 0x20, 0x80,
- 0x28, 0x1c, 0xf7, 0xf7, 0x1c, 0xfd, 0x28, 0x1c,
- 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0xc8, 0x5c,
- 0x01, 0x00, 0x01, 0x79, 0x42, 0x79, 0x00, 0x88,
- 0x89, 0x18, 0x02, 0x39, 0x40, 0x1a, 0x70, 0x47,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0x99, 0x00, 0x00,
- 0x70, 0xb5, 0x08, 0x4d, 0x2c, 0x78, 0xad, 0x78,
- 0x20, 0x18, 0x06, 0x1c, 0x00, 0x2d, 0x03, 0xd0,
- 0x70, 0x19, 0x01, 0x38, 0x01, 0x3d, 0xa8, 0x43,
- 0x10, 0x80, 0x80, 0x1b, 0x18, 0x70, 0x0c, 0x70,
- 0x70, 0xbd, 0x00, 0x00, 0xc8, 0x5c, 0x01, 0x00,
- 0xb0, 0xb5, 0x04, 0x68, 0x0c, 0x4a, 0x21, 0x88,
- 0x52, 0x78, 0x02, 0x31, 0x91, 0x42, 0x11, 0xd2,
- 0x55, 0x1a, 0xf7, 0xf7, 0x3c, 0x00, 0x38, 0x9a,
- 0x00, 0x00, 0xc9, 0xfd, 0x01, 0x68, 0x00, 0x29,
- 0x02, 0xd1, 0x00, 0x60, 0x01, 0x21, 0x81, 0x61,
- 0x01, 0x89, 0x49, 0x19, 0x01, 0x81, 0x20, 0x88,
- 0x40, 0x19, 0x20, 0x80, 0x60, 0x79, 0x40, 0x19,
- 0x60, 0x71, 0xb0, 0xbd, 0x00, 0x00, 0xc8, 0x5c,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x22, 0x06, 0x21,
- 0xf1, 0x20, 0x09, 0xf0, 0xa2, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0x03, 0x1c, 0x02, 0x48, 0x3c, 0x00,
- 0x74, 0x9a, 0x00, 0x00, 0x03, 0x70, 0x41, 0x70,
- 0x82, 0x70, 0x70, 0x47, 0xc8, 0x5c, 0x01, 0x00,
- 0xb0, 0xb5, 0x08, 0x1c, 0x09, 0x68, 0x15, 0x1c,
- 0x8c, 0x78, 0xf7, 0xf7, 0x85, 0xfd, 0x04, 0x49,
- 0xa0, 0x00, 0x09, 0x58, 0x00, 0x29, 0x02, 0xd0,
- 0x28, 0x1c, 0xf6, 0xf7, 0x9e, 0xfc, 0xb0, 0xbd,
- 0x84, 0x6d, 0x01, 0x00, 0xfe, 0xb5, 0x04, 0x1c,
- 0xc0, 0x7a, 0xa1, 0x7a, 0xc6, 0x07, 0xf6, 0x0f,
- 0x3c, 0x00, 0xb0, 0x9a, 0x00, 0x00, 0x32, 0x1c,
- 0x20, 0x1d, 0x01, 0xf0, 0x3c, 0xf8, 0x60, 0x69,
- 0x25, 0x4f, 0xc1, 0x07, 0x37, 0xd5, 0xb8, 0x69,
- 0x00, 0x28, 0x01, 0xd0, 0xf6, 0xf7, 0x87, 0xfc,
- 0x20, 0x68, 0x05, 0x68, 0x28, 0x88, 0x80, 0x07,
- 0x34, 0xd1, 0x01, 0xaa, 0x02, 0xa9, 0x28, 0x1c,
- 0x01, 0xf0, 0x0b, 0xfc, 0x28, 0x1c, 0x01, 0xf0,
- 0x12, 0xfc, 0x00, 0x78, 0xc0, 0x07, 0x0a, 0xd4,
- 0x60, 0x69, 0x3c, 0x00, 0xec, 0x9a, 0x00, 0x00,
- 0x80, 0x07, 0x26, 0xd4, 0x33, 0x1c, 0x29, 0x1c,
- 0xa2, 0x7a, 0x20, 0x69, 0x7d, 0x69, 0xf6, 0xf7,
- 0x72, 0xfc, 0x1e, 0xe0, 0x00, 0xab, 0x18, 0x7a,
- 0x00, 0x28, 0x03, 0xd0, 0x01, 0x28, 0x06, 0xd0,
- 0x02, 0x28, 0x16, 0xd1, 0x28, 0x1c, 0x79, 0x6a,
- 0xf6, 0xf7, 0x61, 0xfc, 0x11, 0xe0, 0x00, 0xab,
- 0x18, 0x79, 0x0e, 0x28, 0x01, 0xd0, 0x0f, 0x28,
- 0x0b, 0xd1, 0x28, 0x1c, 0x3c, 0x00, 0x28, 0x9b,
- 0x00, 0x00, 0x39, 0x6a, 0xf6, 0xf7, 0x56, 0xfc,
- 0x06, 0xe0, 0x00, 0x07, 0x80, 0x0f, 0x03, 0xd1,
- 0x20, 0x69, 0xf9, 0x69, 0xf6, 0xf7, 0x4e, 0xfc,
- 0x78, 0x6b, 0x21, 0x21, 0x01, 0x30, 0x78, 0x63,
- 0x22, 0x1c, 0x80, 0x20, 0x09, 0xf0, 0x31, 0xfe,
- 0xfe, 0xbd, 0x28, 0x7a, 0x01, 0x00, 0x0b, 0x49,
- 0x18, 0xb5, 0x08, 0x78, 0xc0, 0x07, 0x11, 0xd5,
- 0x0a, 0x4a, 0x10, 0x1c, 0x20, 0x30, 0x3c, 0x00,
- 0x64, 0x9b, 0x00, 0x00, 0x84, 0x79, 0x00, 0xab,
- 0x1c, 0x70, 0xc0, 0x79, 0x58, 0x70, 0x08, 0x78,
- 0x40, 0x23, 0x18, 0x43, 0x08, 0x70, 0x05, 0x48,
- 0x00, 0x78, 0x08, 0x70, 0x00, 0xab, 0x18, 0x88,
- 0xd0, 0x84, 0x18, 0xbd, 0x04, 0x00, 0x07, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0xe0, 0x60, 0x01, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x05, 0x49, 0x10, 0xb5,
- 0x88, 0x79, 0x05, 0x4b, 0x1a, 0x7c, 0x05, 0x4c,
- 0x3c, 0x00, 0xa0, 0x9b, 0x00, 0x00, 0x24, 0x68,
- 0x62, 0x40, 0x1a, 0x74, 0x88, 0x71, 0x10, 0xbd,
- 0x00, 0x00, 0x20, 0x10, 0x07, 0x00, 0x10, 0x00,
- 0x07, 0x00, 0x58, 0x5b, 0x01, 0x00, 0x04, 0x49,
- 0x0a, 0x68, 0x04, 0x48, 0x00, 0x68, 0x02, 0x40,
- 0x01, 0xd0, 0x88, 0x61, 0x70, 0x47, 0x48, 0x61,
- 0x70, 0x47, 0x10, 0x00, 0x07, 0x00, 0x58, 0x5b,
- 0x01, 0x00, 0x02, 0x1c, 0x01, 0x20, 0x00, 0x06,
- 0x08, 0x43, 0x3c, 0x00, 0xdc, 0x9b, 0x00, 0x00,
- 0x80, 0xb5, 0x2a, 0x21, 0x09, 0xf0, 0xe6, 0xfd,
- 0x80, 0xbd, 0x00, 0x00, 0x10, 0xb5, 0x04, 0x1c,
- 0x00, 0x29, 0x03, 0xd0, 0x81, 0x29, 0x07, 0xd1,
- 0x81, 0x20, 0x00, 0xe0, 0x80, 0x20, 0x22, 0x1c,
- 0x2c, 0x21, 0x09, 0xf0, 0xd7, 0xfd, 0x10, 0xbd,
- 0x02, 0x21, 0x2c, 0x20, 0xf7, 0xf7, 0x4c, 0xfb,
- 0x20, 0x1c, 0xf7, 0xf7, 0xc3, 0xfc, 0x10, 0xbd,
- 0x80, 0xb5, 0xb4, 0xb0, 0x3c, 0x00, 0x18, 0x9c,
- 0x00, 0x00, 0x01, 0x28, 0x06, 0xd0, 0x82, 0x28,
- 0x1c, 0xd1, 0x1a, 0xa8, 0x07, 0xf0, 0x35, 0xfc,
- 0x34, 0xb0, 0x80, 0xbd, 0x81, 0x29, 0x13, 0xd1,
- 0x0d, 0x48, 0x0c, 0x4a, 0x81, 0x69, 0x00, 0x68,
- 0x50, 0x32, 0x81, 0x42, 0x02, 0xd0, 0xd1, 0x6a,
- 0x01, 0x29, 0x02, 0xd0, 0x11, 0x78, 0x02, 0x29,
- 0x02, 0xd1, 0x07, 0xf0, 0x0a, 0xf9, 0xeb, 0xe7,
- 0x69, 0x46, 0xf7, 0xf7, 0x5a, 0xfe, 0x3c, 0x00,
- 0x54, 0x9c, 0x00, 0x00, 0xe7, 0xe7, 0x01, 0x21,
- 0x00, 0xe0, 0x02, 0x21, 0x18, 0x20, 0xf7, 0xf7,
- 0x21, 0xfb, 0xe0, 0xe7, 0xa4, 0x6e, 0x01, 0x00,
- 0xb0, 0xb5, 0x04, 0x1c, 0x00, 0x68, 0x17, 0x4d,
- 0x9a, 0xb0, 0x68, 0x63, 0x08, 0xf0, 0x3e, 0xfa,
- 0x20, 0x79, 0x14, 0x49, 0x13, 0x4a, 0x50, 0x39,
- 0x2c, 0x3a, 0x02, 0x28, 0x0a, 0xd1, 0x90, 0x68,
- 0x80, 0x02, 0xa8, 0x61, 0xc8, 0x68, 0xe8, 0x61,
- 0x3c, 0x00, 0x90, 0x9c, 0x00, 0x00, 0x02, 0x20,
- 0x28, 0x72, 0x07, 0xf0, 0xe4, 0xf8, 0x1a, 0xb0,
- 0xb0, 0xbd, 0x03, 0x1c, 0x00, 0x20, 0x00, 0x2b,
- 0x0b, 0xd1, 0x52, 0x68, 0x92, 0x02, 0xaa, 0x61,
- 0x0a, 0x1c, 0x89, 0x68, 0xe9, 0x61, 0x28, 0x72,
- 0x10, 0x68, 0x69, 0x46, 0xf7, 0xf7, 0x27, 0xfe,
- 0xed, 0xe7, 0xa8, 0x61, 0x01, 0x20, 0x28, 0x72,
- 0x28, 0x70, 0x00, 0x20, 0x06, 0xf0, 0x7d, 0xfa,
- 0xe5, 0xe7, 0x3c, 0x00, 0xcc, 0x9c, 0x00, 0x00,
- 0xf4, 0x6e, 0x01, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x80, 0xb5, 0x01, 0x21,
- 0x07, 0x20, 0xf7, 0xf7, 0xe1, 0xfa, 0x80, 0xbd,
- 0x70, 0x47, 0x00, 0x00, 0xf8, 0xb5, 0x00, 0x24,
- 0x19, 0x4a, 0x00, 0x26, 0xd5, 0x68, 0x11, 0x68,
- 0x04, 0x35, 0x08, 0x1c, 0x91, 0x60, 0x02, 0xe0,
- 0x01, 0x1c, 0x40, 0x19, 0x08, 0x60, 0x53, 0x68,
- 0x83, 0x42, 0xf9, 0xd8, 0x3c, 0x00, 0x08, 0x9d,
- 0x00, 0x00, 0x01, 0x34, 0x10, 0x32, 0x03, 0x2c,
- 0x0e, 0x60, 0xee, 0xd3, 0xf6, 0xf7, 0xf1, 0xff,
- 0x10, 0x48, 0x10, 0x49, 0x12, 0x4c, 0x08, 0x60,
- 0x10, 0x49, 0x00, 0x20, 0x01, 0x22, 0x19, 0x23,
- 0x5b, 0x01, 0x0c, 0x25, 0x43, 0x43, 0x1b, 0x19,
- 0x45, 0x43, 0x4a, 0x51, 0x1f, 0x1c, 0x6d, 0x18,
- 0xab, 0x60, 0x6b, 0x60, 0x00, 0x25, 0x1e, 0x1c,
- 0x14, 0x36, 0x9e, 0x60, 0x33, 0x1c, 0x3c, 0x00,
- 0x44, 0x9d, 0x00, 0x00, 0x01, 0x35, 0x27, 0x2d,
- 0xf8, 0xdb, 0x01, 0x30, 0x03, 0x28, 0x9f, 0x60,
- 0xe8, 0xdb, 0xf8, 0xbd, 0x20, 0x57, 0x01, 0x00,
- 0x14, 0xc8, 0x01, 0x00, 0xb4, 0xcf, 0x01, 0x00,
- 0x18, 0xd9, 0x01, 0x00, 0xb8, 0xcf, 0x01, 0x00,
- 0xb0, 0xb5, 0x07, 0x4c, 0x25, 0x1c, 0xc0, 0x35,
- 0x28, 0x6b, 0x1e, 0x21, 0x00, 0xf0, 0xf2, 0xf9,
- 0xa2, 0x6b, 0x20, 0x1c, 0xdc, 0x30, 0x29, 0x6b,
- 0x3c, 0x00, 0x80, 0x9d, 0x00, 0x00, 0x00, 0xf0,
- 0xb6, 0xf9, 0xb0, 0xbd, 0x00, 0x00, 0xc4, 0x69,
- 0x01, 0x00, 0x00, 0x20, 0x10, 0x22, 0x10, 0xb5,
- 0x0a, 0x49, 0x05, 0xe0, 0x0c, 0x23, 0x43, 0x43,
- 0x5c, 0x18, 0x0c, 0x34, 0xcc, 0x50, 0x01, 0x30,
- 0x0f, 0x28, 0xf7, 0xd3, 0x0c, 0x23, 0x58, 0x43,
- 0x09, 0x50, 0x04, 0x48, 0x41, 0x60, 0x01, 0x60,
- 0x02, 0x82, 0x00, 0x21, 0x81, 0x60, 0xc1, 0x60,
- 0x10, 0xbd, 0x3c, 0x00, 0xbc, 0x9d, 0x00, 0x00,
- 0x84, 0xe2, 0x01, 0x00, 0x44, 0xe3, 0x01, 0x00,
- 0x10, 0xb5, 0x08, 0x4c, 0xa0, 0x6a, 0x00, 0x28,
- 0x03, 0xd1, 0x07, 0x48, 0xf9, 0xf7, 0xe8, 0xfe,
- 0xa0, 0x62, 0x04, 0x48, 0x44, 0x30, 0x00, 0x68,
- 0x01, 0x21, 0xf9, 0xf7, 0x95, 0xfc, 0x60, 0x62,
- 0x10, 0xbd, 0x00, 0x00, 0x60, 0x6c, 0x01, 0x00,
- 0xcd, 0x26, 0x01, 0x00, 0xff, 0xb5, 0x0d, 0x1c,
- 0x04, 0x1c, 0x1e, 0x1c, 0x3c, 0x00, 0xf8, 0x9d,
- 0x00, 0x00, 0x81, 0xb0, 0x0a, 0x9f, 0x1c, 0x21,
- 0xf6, 0xf7, 0x4d, 0xfb, 0x03, 0x98, 0xa0, 0x61,
- 0x25, 0x60, 0x25, 0x61, 0x26, 0x81, 0xa6, 0x82,
- 0xe7, 0x60, 0x05, 0xb0, 0xf0, 0xbd, 0x70, 0xb5,
- 0x0d, 0x1c, 0xa4, 0x21, 0x04, 0x1c, 0x08, 0x30,
- 0xf6, 0xf7, 0x3d, 0xfb, 0x20, 0x1c, 0x44, 0x30,
- 0x06, 0x22, 0x29, 0x1c, 0xf6, 0xf7, 0x65, 0xfb,
- 0x18, 0x48, 0x3c, 0x23, 0x41, 0x1c, 0x3c, 0x00,
- 0x34, 0x9e, 0x00, 0x00, 0x61, 0x62, 0x41, 0x78,
- 0x59, 0x43, 0x09, 0x18, 0x89, 0x7a, 0x06, 0x29,
- 0x01, 0xd1, 0xa0, 0x62, 0x02, 0xe0, 0x21, 0x1c,
- 0x4d, 0x31, 0xa1, 0x62, 0x41, 0x78, 0x3c, 0x23,
- 0x59, 0x43, 0x08, 0x18, 0x04, 0x30, 0x0f, 0x49,
- 0x20, 0x62, 0x0b, 0x88, 0x00, 0x2b, 0x15, 0xd0,
- 0xac, 0x20, 0x00, 0x5d, 0x0b, 0x4a, 0x18, 0x32,
- 0x00, 0x02, 0x80, 0x18, 0xb0, 0x30, 0xe0, 0x60,
- 0x3c, 0x00, 0x70, 0x9e, 0x00, 0x00, 0x8d, 0x68,
- 0x00, 0x20, 0x08, 0xe0, 0xe2, 0x68, 0xc1, 0x00,
- 0x54, 0x50, 0xe6, 0x68, 0x82, 0x00, 0x52, 0x19,
- 0x71, 0x18, 0x4a, 0x60, 0x01, 0x30, 0x98, 0x42,
- 0xf4, 0xdb, 0x70, 0xbd, 0x00, 0x00, 0x68, 0x61,
- 0x01, 0x00, 0x58, 0x75, 0x01, 0x00, 0x1f, 0xb5,
- 0x04, 0x1c, 0x60, 0x34, 0x61, 0x7a, 0x03, 0x1c,
- 0x80, 0x6a, 0x08, 0x4a, 0x02, 0x91, 0x01, 0x90,
- 0x03, 0x92, 0x3c, 0x00, 0xac, 0x9e, 0x00, 0x00,
- 0xe2, 0x79, 0x18, 0x1c, 0x20, 0x30, 0x00, 0x92,
- 0x44, 0x7b, 0x82, 0x7b, 0x5e, 0x20, 0xc1, 0x5a,
- 0x18, 0x69, 0x04, 0x30, 0x23, 0x1c, 0x02, 0xf0,
- 0x7f, 0xfe, 0x1f, 0xbd, 0x39, 0x4e, 0x00, 0x00,
- 0xb0, 0xb5, 0x0b, 0x1c, 0x01, 0x88, 0x69, 0x20,
- 0xc0, 0x5c, 0x86, 0xb0, 0x0e, 0x4a, 0x04, 0x91,
- 0x03, 0x90, 0x05, 0x92, 0x0d, 0x4d, 0x59, 0x6a,
- 0x9a, 0x6a, 0x2d, 0x68, 0x3c, 0x00, 0xe8, 0x9e,
- 0x00, 0x00, 0x01, 0x24, 0x00, 0x2d, 0x00, 0xd0,
- 0x04, 0x1c, 0x0a, 0x48, 0x00, 0x5d, 0x01, 0x91,
- 0x02, 0x92, 0x00, 0x90, 0x18, 0x1c, 0x20, 0x30,
- 0x44, 0x7b, 0x82, 0x7b, 0x5e, 0x20, 0xc1, 0x5a,
- 0x18, 0x69, 0x04, 0x30, 0x23, 0x1c, 0x02, 0xf0,
- 0xa4, 0xfe, 0x06, 0xb0, 0xb0, 0xbd, 0x51, 0x4f,
- 0x00, 0x00, 0x18, 0x67, 0x01, 0x00, 0x0a, 0x61,
- 0x01, 0x00, 0x01, 0x89, 0x8a, 0x1c, 0x3c, 0x00,
- 0x24, 0x9f, 0x00, 0x00, 0x02, 0x81, 0x02, 0x68,
- 0x02, 0x3a, 0x02, 0x60, 0x08, 0x0a, 0x09, 0x02,
- 0x08, 0x43, 0x10, 0x80, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0xb5, 0x05, 0x1c, 0x08, 0x78, 0x0e, 0x1c,
- 0xff, 0x28, 0x14, 0xd0, 0x71, 0x78, 0x02, 0x31,
- 0x00, 0x20, 0xf7, 0xf7, 0x45, 0xfb, 0x04, 0x1c,
- 0x02, 0x89, 0x00, 0x68, 0x31, 0x1c, 0xf6, 0xf7,
- 0xcf, 0xfa, 0x00, 0x2d, 0x06, 0xd0, 0x28, 0x1c,
- 0x3c, 0x00, 0x60, 0x9f, 0x00, 0x00, 0xf7, 0xf7,
- 0x34, 0xfb, 0x21, 0x1c, 0xf7, 0xf7, 0x57, 0xfa,
- 0x00, 0xe0, 0x25, 0x1c, 0x28, 0x1c, 0x70, 0xbd,
- 0x00, 0x00, 0xff, 0xb5, 0x0f, 0x1c, 0x1e, 0x1c,
- 0x04, 0x1c, 0x98, 0x1c, 0x01, 0x04, 0x09, 0x0c,
- 0x00, 0x20, 0x81, 0xb0, 0xf7, 0xf7, 0x27, 0xfb,
- 0x05, 0x1c, 0x00, 0x68, 0x00, 0x2c, 0x38, 0x60,
- 0x03, 0x99, 0x01, 0x70, 0x38, 0x68, 0x46, 0x70,
- 0x06, 0xd0, 0x3c, 0x00, 0x9c, 0x9f, 0x00, 0x00,
- 0x20, 0x1c, 0xf7, 0xf7, 0x15, 0xfb, 0x29, 0x1c,
- 0xf7, 0xf7, 0x38, 0xfa, 0x00, 0xe0, 0x2c, 0x1c,
- 0x20, 0x1c, 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00,
- 0x70, 0xb5, 0x10, 0x48, 0x04, 0x68, 0x04, 0x60,
- 0x0f, 0x49, 0x20, 0x20, 0x08, 0x60, 0xa0, 0x05,
- 0x0e, 0x4e, 0x02, 0xd5, 0x70, 0x6a, 0xf6, 0xf7,
- 0x05, 0xfa, 0xe0, 0x01, 0x02, 0xd5, 0x30, 0x6e,
- 0xf6, 0xf7, 0x00, 0xfa, 0x3c, 0x00, 0xd8, 0x9f,
- 0x00, 0x00, 0x0a, 0x48, 0x04, 0x40, 0x00, 0x25,
- 0x07, 0xe0, 0xe0, 0x07, 0x03, 0xd5, 0xa8, 0x00,
- 0x30, 0x58, 0xf6, 0xf7, 0xf6, 0xf9, 0x01, 0x35,
- 0x64, 0x08, 0x00, 0x2c, 0xf5, 0xd1, 0x70, 0xbd,
- 0x00, 0x00, 0x00, 0x40, 0x07, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x30, 0x74, 0x01, 0x00, 0xff, 0xfd,
- 0xff, 0xfe, 0x80, 0xb5, 0x07, 0x21, 0x80, 0x20,
- 0xf7, 0xf7, 0x49, 0xf9, 0x80, 0xbd, 0x3c, 0x00,
- 0x14, 0xa0, 0x00, 0x00, 0xf8, 0xb5, 0x14, 0x4b,
- 0x82, 0x00, 0x9c, 0x58, 0xca, 0x06, 0x01, 0x27,
- 0x39, 0x1c, 0xd2, 0x0e, 0x91, 0x40, 0x11, 0x4a,
- 0x11, 0x60, 0x11, 0x4e, 0x40, 0x00, 0x85, 0x19,
- 0x15, 0xe0, 0x60, 0x60, 0x20, 0x7b, 0xc1, 0x00,
- 0x89, 0x19, 0x10, 0x31, 0x0a, 0x78, 0x0d, 0x23,
- 0x9a, 0x43, 0x0a, 0x70, 0x39, 0x1c, 0x81, 0x40,
- 0x31, 0x73, 0x07, 0x49, 0x00, 0x01, 0x08, 0x31,
- 0x3c, 0x00, 0x50, 0xa0, 0x00, 0x00, 0x40, 0x18,
- 0x08, 0x4a, 0x41, 0x68, 0x42, 0x60, 0x80, 0x68,
- 0xf6, 0xf7, 0xbe, 0xf9, 0x28, 0x7b, 0x00, 0x28,
- 0xe6, 0xd1, 0xf8, 0xbd, 0x00, 0x00, 0xa4, 0x73,
- 0x01, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x60,
- 0x07, 0x00, 0xd1, 0x75, 0x00, 0x00, 0x03, 0x49,
- 0x01, 0x20, 0x09, 0x7a, 0x00, 0x29, 0x00, 0xd1,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x04, 0x7a,
- 0x01, 0x00, 0x3c, 0x00, 0x8c, 0xa0, 0x00, 0x00,
- 0x03, 0x49, 0x01, 0x20, 0x89, 0x7a, 0x00, 0x29,
- 0x00, 0xd1, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00,
- 0x14, 0x7a, 0x01, 0x00, 0xb0, 0xb5, 0x00, 0x24,
- 0xfa, 0xf7, 0x76, 0xfc, 0x00, 0x28, 0x14, 0xd0,
- 0x01, 0x24, 0x08, 0xf0, 0x7d, 0xfe, 0x0a, 0x4d,
- 0x0a, 0x4b, 0x00, 0x21, 0x5a, 0x18, 0xa0, 0x32,
- 0x12, 0x78, 0x10, 0x2a, 0x06, 0xd3, 0x8a, 0x00,
- 0xd2, 0x18, 0x92, 0x6f, 0x3c, 0x00, 0xc8, 0xa0,
- 0x00, 0x00, 0x82, 0x1a, 0xaa, 0x42, 0x00, 0xd2,
- 0x00, 0x24, 0x01, 0x31, 0x03, 0x29, 0xf0, 0xd3,
- 0x20, 0x1c, 0xb0, 0xbd, 0x00, 0x00, 0x8b, 0x08,
- 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00, 0x01, 0x48,
- 0xc0, 0x68, 0x70, 0x47, 0x00, 0x00, 0x78, 0x69,
- 0x01, 0x00, 0x70, 0xb5, 0x0d, 0x1c, 0x04, 0x1c,
- 0x16, 0x1c, 0xfd, 0xf7, 0x2e, 0xfe, 0x00, 0x20,
- 0xe0, 0x60, 0x26, 0x61, 0xa5, 0x60, 0x3c, 0x00,
- 0x04, 0xa1, 0x00, 0x00, 0x70, 0xbd, 0x00, 0x00,
- 0xf8, 0xb5, 0x17, 0x1c, 0x0e, 0x1c, 0x04, 0x1c,
- 0x00, 0x28, 0x01, 0xd0, 0x00, 0x2e, 0x01, 0xd1,
- 0xf7, 0xf7, 0xf2, 0xf8, 0xa0, 0x68, 0x07, 0xf0,
- 0x49, 0xf9, 0x05, 0x1c, 0x01, 0xd1, 0xf7, 0xf7,
- 0xeb, 0xf8, 0x29, 0x1c, 0x6e, 0x60, 0xaf, 0x60,
- 0x20, 0x1c, 0xfd, 0xf7, 0xfd, 0xfd, 0xe0, 0x68,
- 0x41, 0x1c, 0xe1, 0x60, 0x00, 0x28, 0x03, 0xd1,
- 0x3c, 0x00, 0x40, 0xa1, 0x00, 0x00, 0x05, 0x48,
- 0x21, 0x69, 0x05, 0xf0, 0x2c, 0xf9, 0x20, 0x68,
- 0xa8, 0x42, 0x02, 0xd1, 0x38, 0x1c, 0xf6, 0xf7,
- 0x48, 0xf9, 0xf8, 0xbd, 0x00, 0x00, 0xc4, 0x60,
- 0x01, 0x00, 0x00, 0x22, 0x01, 0x39, 0x10, 0xb5,
- 0x05, 0xe0, 0x0c, 0x23, 0x53, 0x43, 0x1c, 0x18,
- 0x0c, 0x34, 0xc4, 0x50, 0x01, 0x32, 0x8a, 0x42,
- 0xf7, 0xd3, 0x00, 0x21, 0x0c, 0x23, 0x5a, 0x43,
- 0x81, 0x50, 0x3c, 0x00, 0x7c, 0xa1, 0x00, 0x00,
- 0x10, 0xbd, 0x00, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x01, 0xd1, 0xf7, 0xf7, 0xbb, 0xf8, 0x20, 0x1c,
- 0xfd, 0xf7, 0xda, 0xfd, 0x01, 0x1c, 0x85, 0x68,
- 0xa0, 0x68, 0x07, 0xf0, 0x09, 0xf9, 0xe0, 0x68,
- 0x01, 0x38, 0xe0, 0x60, 0x03, 0xd1, 0x06, 0x48,
- 0x21, 0x69, 0x05, 0xf0, 0xe7, 0xf8, 0x21, 0x68,
- 0x00, 0x29, 0x03, 0xd0, 0x88, 0x68, 0x49, 0x68,
- 0xf6, 0xf7, 0x11, 0xf9, 0x3c, 0x00, 0xb8, 0xa1,
- 0x00, 0x00, 0x28, 0x1c, 0xb0, 0xbd, 0xc4, 0x60,
- 0x01, 0x00, 0x01, 0x21, 0x00, 0x28, 0x8c, 0xb5,
- 0x00, 0xd1, 0x00, 0x21, 0x0e, 0x20, 0x09, 0xf0,
- 0x32, 0xfa, 0x83, 0x20, 0x00, 0xab, 0x18, 0x80,
- 0x00, 0x20, 0x04, 0xf0, 0x0c, 0xf8, 0x01, 0x90,
- 0x68, 0x46, 0x03, 0xf0, 0x7a, 0xf9, 0x8c, 0xbd,
- 0x00, 0x00, 0x80, 0xb5, 0x08, 0xf0, 0xdf, 0xfd,
- 0x06, 0x49, 0x0a, 0x89, 0x06, 0x49, 0x3c, 0x00,
- 0xf4, 0xa1, 0x00, 0x00, 0x09, 0x6e, 0x41, 0x1a,
- 0x0b, 0x0c, 0x59, 0x18, 0x89, 0x1a, 0x09, 0x04,
- 0x09, 0x0c, 0x40, 0x1a, 0x80, 0xbd, 0x00, 0x00,
- 0x00, 0x90, 0x07, 0x00, 0xa4, 0x6c, 0x01, 0x00,
- 0x70, 0xb5, 0x04, 0x1c, 0x88, 0x7e, 0x0d, 0x1c,
- 0x20, 0x28, 0x03, 0xd9, 0x03, 0x21, 0x18, 0x20,
- 0xf7, 0xf7, 0x40, 0xf8, 0x00, 0x26, 0x26, 0x76,
- 0xa8, 0x7e, 0x29, 0x1c, 0x1b, 0x31, 0x60, 0x76,
- 0x3c, 0x00, 0x30, 0xa2, 0x00, 0x00, 0x20, 0x1c,
- 0x1d, 0x30, 0xaa, 0x7e, 0xf6, 0xf7, 0x5f, 0xf9,
- 0x68, 0x68, 0x29, 0x1c, 0x60, 0x60, 0xa8, 0x68,
- 0x13, 0x31, 0xa0, 0x60, 0xa8, 0x7b, 0x06, 0x22,
- 0x20, 0x73, 0xe8, 0x7b, 0x60, 0x73, 0x28, 0x7c,
- 0xa0, 0x73, 0x68, 0x7c, 0xe0, 0x73, 0xa8, 0x89,
- 0x20, 0x82, 0xa8, 0x7c, 0xe0, 0x76, 0x26, 0x77,
- 0x20, 0x1c, 0x12, 0x30, 0xa6, 0x76, 0xf6, 0xf7,
- 0x46, 0xf9, 0x3c, 0x00, 0x6c, 0xa2, 0x00, 0x00,
- 0x60, 0x68, 0x43, 0x1c, 0x1d, 0xd0, 0x11, 0x4d,
- 0x6d, 0x61, 0x28, 0x68, 0x00, 0x28, 0x1a, 0xd0,
- 0x22, 0x7b, 0x01, 0x1c, 0x0b, 0x7b, 0x9a, 0x42,
- 0x01, 0xd3, 0x20, 0x60, 0x14, 0xe0, 0x0b, 0x1c,
- 0x09, 0x68, 0x00, 0x29, 0x0b, 0xd0, 0x0e, 0x7b,
- 0xb2, 0x42, 0x08, 0xd2, 0x0b, 0x68, 0x00, 0x2b,
- 0xf0, 0xd0, 0x1e, 0x7b, 0xb2, 0x42, 0xed, 0xd3,
- 0x23, 0x60, 0x0c, 0x60, 0x3c, 0x00, 0xa8, 0xa2,
- 0x00, 0x00, 0x01, 0xe0, 0x21, 0x60, 0x1c, 0x60,
- 0x00, 0x20, 0x70, 0xbd, 0x26, 0x60, 0x2c, 0x60,
- 0xfa, 0xe7, 0xa4, 0x6e, 0x01, 0x00, 0x13, 0x4a,
- 0xb0, 0xb5, 0x51, 0x68, 0x01, 0x24, 0x00, 0x29,
- 0x1e, 0xd0, 0x13, 0x1d, 0xd1, 0x61, 0x13, 0x62,
- 0x43, 0x68, 0x04, 0xe0, 0x10, 0x62, 0x00, 0x68,
- 0xd0, 0x61, 0x00, 0x28, 0x14, 0xd0, 0xd0, 0x69,
- 0x45, 0x68, 0x9d, 0x42, 0xf6, 0xd1, 0x3c, 0x00,
- 0xe4, 0xa2, 0x00, 0x00, 0x10, 0x6a, 0x81, 0x42,
- 0x04, 0xd1, 0x51, 0x60, 0xd0, 0x69, 0x00, 0x68,
- 0x08, 0x60, 0x02, 0xe0, 0xd1, 0x69, 0x09, 0x68,
- 0x01, 0x60, 0xd0, 0x69, 0xfc, 0xf7, 0xce, 0xff,
- 0x00, 0x28, 0x00, 0xd0, 0x00, 0x24, 0x20, 0x1c,
- 0xb0, 0xbd, 0x00, 0x00, 0xa4, 0x6e, 0x01, 0x00,
- 0xb0, 0xb5, 0x17, 0x4d, 0x01, 0x24, 0x29, 0x68,
- 0x00, 0x29, 0x27, 0xd0, 0x6d, 0x61, 0x29, 0x61,
- 0x3c, 0x00, 0x20, 0xa3, 0x00, 0x00, 0x43, 0x68,
- 0x04, 0xe0, 0x68, 0x61, 0x00, 0x68, 0x28, 0x61,
- 0x00, 0x28, 0x1d, 0xd0, 0x28, 0x69, 0x42, 0x68,
- 0x9a, 0x42, 0xf6, 0xd1, 0xaa, 0x69, 0x2b, 0x69,
- 0x9a, 0x42, 0x00, 0xd1, 0xa9, 0x61, 0x6a, 0x69,
- 0x91, 0x42, 0x03, 0xd1, 0x29, 0x60, 0x00, 0x68,
- 0x08, 0x60, 0x06, 0xe0, 0x00, 0x68, 0x10, 0x60,
- 0x28, 0x68, 0x00, 0x28, 0x01, 0xd1, 0x07, 0xf0,
- 0xcc, 0xfe, 0x3c, 0x00, 0x5c, 0xa3, 0x00, 0x00,
- 0x28, 0x69, 0xfc, 0xf7, 0x9d, 0xff, 0x00, 0x28,
- 0x02, 0xd0, 0x00, 0x24, 0x00, 0xe0, 0x01, 0x24,
- 0x20, 0x1c, 0xb0, 0xbd, 0xa4, 0x6e, 0x01, 0x00,
- 0xb0, 0xb5, 0x05, 0x1c, 0x07, 0x48, 0x44, 0x68,
- 0x07, 0xe0, 0x21, 0x1c, 0x44, 0x31, 0x28, 0x1c,
- 0x00, 0xf0, 0xd6, 0xfc, 0x00, 0x28, 0x02, 0xd1,
- 0x64, 0x68, 0x00, 0x2c, 0xf5, 0xd1, 0x20, 0x1c,
- 0xb0, 0xbd, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xa3,
- 0x00, 0x00, 0x58, 0x75, 0x01, 0x00, 0x70, 0xb5,
- 0x0d, 0x1c, 0x14, 0x1c, 0x00, 0x28, 0x0b, 0x4e,
- 0x08, 0xd0, 0x70, 0x6e, 0x06, 0x23, 0x58, 0x43,
- 0x02, 0x04, 0x12, 0x0c, 0x31, 0x1c, 0x28, 0x1c,
- 0x22, 0x80, 0x07, 0xe0, 0x21, 0x88, 0x06, 0x20,
- 0xf6, 0xf7, 0xa7, 0xf9, 0x70, 0x66, 0x22, 0x88,
- 0x29, 0x1c, 0x30, 0x1c, 0xf6, 0xf7, 0x95, 0xf8,
- 0x01, 0x20, 0x70, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xa3, 0x00, 0x00, 0x10, 0x79, 0x01, 0x00,
- 0x80, 0xb5, 0x03, 0x28, 0x03, 0xd8, 0x04, 0x4a,
- 0xc0, 0x00, 0x11, 0x50, 0x80, 0xbd, 0x01, 0x21,
- 0x26, 0x20, 0xf6, 0xf7, 0x5b, 0xff, 0x80, 0xbd,
- 0x7c, 0x79, 0x01, 0x00, 0xb0, 0xb5, 0x05, 0x1c,
- 0xc0, 0x68, 0x01, 0x89, 0x39, 0x29, 0x39, 0xd3,
- 0x04, 0x68, 0xa0, 0x79, 0x88, 0x28, 0x35, 0xd1,
- 0xe0, 0x79, 0x8e, 0x28, 0x32, 0xd1, 0x20, 0x7a,
- 0x3c, 0x00, 0x10, 0xa4, 0x00, 0x00, 0x01, 0x28,
- 0x2f, 0xd1, 0x60, 0x7a, 0x03, 0x28, 0x2c, 0xd1,
- 0x20, 0x7b, 0x02, 0x28, 0x01, 0xd0, 0xfe, 0x28,
- 0x27, 0xd1, 0x60, 0x7b, 0x1d, 0x21, 0x08, 0x40,
- 0x01, 0x28, 0x22, 0xd1, 0xa0, 0x7b, 0xc8, 0x21,
- 0x08, 0x40, 0x08, 0x28, 0x1d, 0xd1, 0xa8, 0x1d,
- 0xfb, 0xf7, 0xe1, 0xf9, 0x00, 0x28, 0x18, 0xd0,
- 0x19, 0x20, 0x21, 0x5c, 0x00, 0x29, 0x14, 0xd1,
- 0x01, 0x30, 0x3c, 0x00, 0x4c, 0xa4, 0x00, 0x00,
- 0x39, 0x28, 0xf9, 0xdb, 0x68, 0x8b, 0x04, 0x21,
- 0x08, 0x43, 0x68, 0x83, 0x03, 0xf0, 0xd6, 0xfe,
- 0x00, 0x28, 0x09, 0xd1, 0x00, 0x23, 0x00, 0x22,
- 0x26, 0x20, 0x04, 0x49, 0x09, 0xf0, 0x92, 0xf9,
- 0x03, 0x48, 0x00, 0x68, 0x01, 0xf0, 0x84, 0xf9,
- 0xb0, 0xbd, 0x00, 0x00, 0x50, 0xc3, 0x00, 0x00,
- 0x0c, 0x79, 0x01, 0x00, 0xb0, 0xb5, 0x08, 0x4c,
- 0xa3, 0x68, 0x01, 0x33, 0x3c, 0x00, 0x88, 0xa4,
- 0x00, 0x00, 0xa3, 0x60, 0x0c, 0x1c, 0x09, 0xd0,
- 0x25, 0x68, 0x00, 0x2d, 0x03, 0xd0, 0x23, 0x7a,
- 0x61, 0x68, 0xf5, 0xf7, 0xa3, 0xff, 0x20, 0x1c,
- 0xf7, 0xf7, 0xa9, 0xf9, 0xb0, 0xbd, 0x94, 0x79,
- 0x01, 0x00, 0x70, 0xb5, 0x04, 0x1c, 0xc0, 0x68,
- 0x01, 0x89, 0x05, 0x68, 0x08, 0x29, 0x53, 0xd3,
- 0x06, 0x22, 0x28, 0x1c, 0x55, 0x49, 0xf5, 0xf7,
- 0x9e, 0xff, 0x00, 0x28, 0x37, 0xd1, 0x3c, 0x00,
- 0xc4, 0xa4, 0x00, 0x00, 0xe9, 0x88, 0x52, 0x4e,
- 0x04, 0x3e, 0x81, 0x29, 0x24, 0xd1, 0xe5, 0x68,
- 0x29, 0x68, 0x08, 0x7a, 0x4a, 0x7a, 0x00, 0x02,
- 0x80, 0x18, 0x00, 0x04, 0x00, 0x0c, 0x42, 0x0b,
- 0x00, 0x05, 0x00, 0x0d, 0xe2, 0x75, 0x20, 0x83,
- 0x4b, 0x89, 0x00, 0x20, 0x42, 0x00, 0xb2, 0x5a,
- 0x9a, 0x42, 0x06, 0xd1, 0x28, 0x89, 0x0c, 0x38,
- 0x02, 0x0a, 0x00, 0x02, 0x10, 0x43, 0x48, 0x81,
- 0x3c, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x02, 0xe0,
- 0x01, 0x30, 0x02, 0x28, 0xf1, 0xd3, 0xe0, 0x68,
- 0x01, 0x89, 0x0a, 0x39, 0x01, 0x81, 0xe0, 0x68,
- 0x01, 0x68, 0x0a, 0x31, 0x1c, 0xe0, 0x00, 0x22,
- 0x00, 0x20, 0x43, 0x00, 0xf3, 0x5a, 0x8b, 0x42,
- 0x01, 0xd1, 0x01, 0x22, 0x02, 0xe0, 0x01, 0x30,
- 0x02, 0x28, 0xf6, 0xd3, 0x00, 0x2a, 0x11, 0xd1,
- 0x07, 0xe0, 0x36, 0x49, 0x06, 0x22, 0x06, 0x31,
- 0x28, 0x1c, 0x3c, 0x00, 0x3c, 0xa5, 0x00, 0x00,
- 0xf5, 0xf7, 0x5e, 0xff, 0x00, 0x28, 0x08, 0xd1,
- 0xe0, 0x68, 0x01, 0x89, 0x06, 0x39, 0x01, 0x81,
- 0xe0, 0x68, 0x01, 0x68, 0x06, 0x31, 0x01, 0x60,
- 0x10, 0xe0, 0xe0, 0x68, 0xff, 0xf7, 0xe2, 0xfc,
- 0x0c, 0xe0, 0x02, 0x31, 0x01, 0x81, 0xe0, 0x68,
- 0x01, 0x68, 0x02, 0x39, 0x01, 0x60, 0xe0, 0x68,
- 0x00, 0x89, 0x02, 0x38, 0x02, 0x0a, 0x00, 0x02,
- 0x10, 0x43, 0x08, 0x80, 0x3c, 0x00, 0x78, 0xa5,
- 0x00, 0x00, 0xe0, 0x68, 0x03, 0x25, 0x02, 0x89,
- 0x01, 0x68, 0x24, 0x4e, 0x02, 0x2a, 0x10, 0xd9,
- 0x09, 0x88, 0x08, 0x29, 0x05, 0xd0, 0xc1, 0x23,
- 0xdb, 0x00, 0x99, 0x42, 0x03, 0xd1, 0x01, 0x25,
- 0x02, 0xe0, 0x00, 0x25, 0x00, 0xe0, 0x02, 0x25,
- 0xe9, 0x00, 0x71, 0x58, 0x00, 0x29, 0x00, 0xd1,
- 0x02, 0x25, 0xf7, 0xf7, 0x04, 0xf8, 0xe9, 0x00,
- 0x89, 0x19, 0x89, 0x88, 0x88, 0x42, 0x3c, 0x00,
- 0xb4, 0xa5, 0x00, 0x00, 0x00, 0xd9, 0x03, 0x25,
- 0xa1, 0x1d, 0x20, 0x1c, 0xfd, 0xf7, 0x34, 0xfc,
- 0x00, 0x28, 0x00, 0xd1, 0x03, 0x25, 0x02, 0x2d,
- 0x05, 0xd0, 0x03, 0x2d, 0x07, 0xd1, 0xe0, 0x68,
- 0xf6, 0xf7, 0xe2, 0xff, 0x70, 0xbd, 0x20, 0x1c,
- 0xfd, 0xf7, 0x1c, 0xfd, 0x70, 0xbd, 0xe0, 0x68,
- 0x01, 0x89, 0x02, 0x39, 0x01, 0x81, 0xe0, 0x68,
- 0x01, 0x68, 0x02, 0x31, 0x01, 0x60, 0xe8, 0x00,
- 0x3c, 0x00, 0xf0, 0xa5, 0x00, 0x00, 0x31, 0x58,
- 0x20, 0x1c, 0xf5, 0xf7, 0xf1, 0xfe, 0x00, 0x28,
- 0xef, 0xd1, 0xe0, 0x68, 0x01, 0x89, 0x02, 0x31,
- 0x01, 0x81, 0xe0, 0x68, 0x01, 0x68, 0x02, 0x39,
- 0x01, 0x60, 0xe3, 0xe7, 0x00, 0x00, 0x6a, 0x46,
- 0x01, 0x00, 0x7c, 0x79, 0x01, 0x00, 0x70, 0xb5,
- 0x0e, 0x1c, 0x04, 0x1c, 0x15, 0x1c, 0xf7, 0xf7,
- 0x8c, 0xfb, 0x00, 0x28, 0x2a, 0xd0, 0x1b, 0x49,
- 0x08, 0x68, 0x3c, 0x00, 0x2c, 0xa6, 0x00, 0x00,
- 0x01, 0x30, 0x08, 0x60, 0x00, 0x2e, 0x0a, 0xd0,
- 0x01, 0x2e, 0x0b, 0xd0, 0x02, 0x2e, 0x0f, 0xd1,
- 0x20, 0x1c, 0x04, 0xf0, 0xcd, 0xf8, 0x20, 0x1c,
- 0xff, 0xf7, 0xd6, 0xfe, 0x0c, 0xe0, 0x08, 0x21,
- 0xe0, 0x68, 0x02, 0xe0, 0xc1, 0x21, 0xe0, 0x68,
- 0xc9, 0x00, 0x04, 0xf0, 0x35, 0xf9, 0x03, 0xe0,
- 0x02, 0x21, 0x26, 0x20, 0xf6, 0xf7, 0x20, 0xfe,
- 0xe2, 0x7d, 0xe1, 0x6a, 0x3c, 0x00, 0x68, 0xa6,
- 0x00, 0x00, 0x28, 0x1c, 0xfc, 0xf7, 0x95, 0xfb,
- 0x20, 0x63, 0x00, 0x20, 0x20, 0x62, 0xa0, 0x62,
- 0x20, 0x1c, 0x00, 0xf0, 0x6c, 0xfe, 0x70, 0xbd,
- 0xe0, 0x68, 0xf6, 0xf7, 0x8a, 0xff, 0x00, 0x2d,
- 0xf9, 0xd0, 0xe3, 0x7d, 0x00, 0x22, 0x01, 0x20,
- 0xe1, 0x6a, 0xf5, 0xf7, 0xa7, 0xfe, 0x70, 0xbd,
- 0x00, 0x00, 0x94, 0x79, 0x01, 0x00, 0x80, 0xb5,
- 0x01, 0x28, 0x04, 0xd1, 0x05, 0x48, 0x3c, 0x00,
- 0xa4, 0xa6, 0x00, 0x00, 0x00, 0x68, 0x01, 0xf0,
- 0x09, 0xf9, 0x80, 0xbd, 0x03, 0x21, 0x26, 0x20,
- 0xf6, 0xf7, 0xf8, 0xfd, 0x80, 0xbd, 0x00, 0x00,
- 0x0c, 0x79, 0x01, 0x00, 0xf8, 0xb5, 0x06, 0x1c,
- 0x80, 0x79, 0x00, 0x24, 0xc0, 0x07, 0x2d, 0xd5,
- 0xf0, 0x68, 0x00, 0x68, 0x41, 0x7a, 0x11, 0x29,
- 0x28, 0xd1, 0xc1, 0x88, 0x0a, 0x0a, 0x09, 0x02,
- 0x11, 0x43, 0xc9, 0x04, 0x22, 0xd1, 0x01, 0x78,
- 0x3c, 0x00, 0xe0, 0xa6, 0x00, 0x00, 0x11, 0x4f,
- 0x09, 0x07, 0x89, 0x0e, 0x08, 0x18, 0x41, 0x88,
- 0x0a, 0x0a, 0x09, 0x02, 0x11, 0x43, 0x0d, 0x04,
- 0x2d, 0x0c, 0x43, 0x2d, 0x39, 0x68, 0x01, 0xd1,
- 0xca, 0x07, 0x0e, 0xd4, 0x44, 0x2d, 0x06, 0xd1,
- 0xc9, 0x07, 0x04, 0xd5, 0x24, 0x30, 0x00, 0xf0,
- 0x22, 0xfb, 0x00, 0x28, 0x05, 0xd0, 0x06, 0x48,
- 0x85, 0x42, 0x06, 0xd1, 0x38, 0x68, 0x80, 0x07,
- 0x03, 0xd5, 0x3c, 0x00, 0x1c, 0xa7, 0x00, 0x00,
- 0x01, 0x24, 0xf0, 0x68, 0xf6, 0xf7, 0x3a, 0xff,
- 0x20, 0x1c, 0xf8, 0xbd, 0x7c, 0x5a, 0x01, 0x00,
- 0x6c, 0x07, 0x00, 0x00, 0x80, 0xb5, 0x00, 0x28,
- 0x07, 0xd0, 0x00, 0x21, 0x26, 0x20, 0x08, 0xf0,
- 0x7b, 0xff, 0x02, 0x48, 0x00, 0x68, 0x01, 0xf0,
- 0xbb, 0xf8, 0x80, 0xbd, 0x0c, 0x79, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x09, 0x4a, 0x08, 0x1c,
- 0x51, 0x68, 0x01, 0x31, 0x3c, 0x00, 0x58, 0xa7,
- 0x00, 0x00, 0x51, 0x60, 0x00, 0x21, 0x21, 0x62,
- 0xa1, 0x62, 0xe2, 0x7d, 0xe1, 0x6a, 0xfc, 0xf7,
- 0x18, 0xfb, 0x20, 0x63, 0x20, 0x1c, 0xf7, 0xf7,
- 0xe6, 0xfa, 0x20, 0x1c, 0x00, 0xf0, 0xef, 0xfd,
- 0x10, 0xbd, 0x94, 0x79, 0x01, 0x00, 0x0c, 0xb5,
- 0x02, 0x1c, 0x08, 0x1c, 0x00, 0x21, 0x01, 0x91,
- 0x00, 0x92, 0x6a, 0x46, 0x01, 0xa9, 0x00, 0xf0,
- 0x02, 0xf8, 0x0c, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0xa7, 0x00, 0x00, 0x70, 0xb5, 0x13, 0x68,
- 0x00, 0x2b, 0x1e, 0xd0, 0x00, 0x26, 0x0b, 0x68,
- 0x00, 0x2b, 0x02, 0xd1, 0x13, 0x68, 0x1b, 0x68,
- 0x0b, 0x60, 0x13, 0x68, 0x1c, 0x68, 0x1b, 0x89,
- 0xe5, 0x18, 0x08, 0xe0, 0x5c, 0x78, 0x1c, 0x19,
- 0x02, 0x34, 0x0c, 0x60, 0x1c, 0x78, 0x84, 0x42,
- 0x01, 0xd1, 0x18, 0x1c, 0x70, 0xbd, 0x0b, 0x68,
- 0xab, 0x42, 0xf3, 0xd3, 0x13, 0x68, 0xdb, 0x68,
- 0x3c, 0x00, 0xd0, 0xa7, 0x00, 0x00, 0x13, 0x60,
- 0x0e, 0x60, 0x13, 0x68, 0x00, 0x2b, 0xe1, 0xd1,
- 0x00, 0x20, 0x70, 0xbd, 0x00, 0x00, 0x70, 0xb5,
- 0x03, 0x1c, 0x20, 0xd0, 0x18, 0x68, 0x1e, 0x89,
- 0x05, 0x1c, 0x16, 0xe0, 0x04, 0x78, 0xdd, 0x2c,
- 0x10, 0xd1, 0x84, 0x78, 0x00, 0x2c, 0x0d, 0xd1,
- 0xc4, 0x78, 0x50, 0x2c, 0x0a, 0xd1, 0x04, 0x79,
- 0xf2, 0x2c, 0x07, 0xd1, 0x44, 0x79, 0x8c, 0x42,
- 0x04, 0xd1, 0x3c, 0x00, 0x0c, 0xa8, 0x00, 0x00,
- 0x02, 0x29, 0x0c, 0xd1, 0x84, 0x79, 0x94, 0x42,
- 0x09, 0xd0, 0x44, 0x78, 0x20, 0x18, 0x02, 0x30,
- 0x44, 0x1b, 0xb4, 0x42, 0xe5, 0xdb, 0xdb, 0x68,
- 0x00, 0x2b, 0xde, 0xd1, 0x00, 0x20, 0x70, 0xbd,
- 0x04, 0x49, 0x80, 0xb5, 0x0a, 0x78, 0x0a, 0x20,
- 0x00, 0x2a, 0x00, 0xd0, 0x48, 0x6a, 0x00, 0xf0,
- 0xd1, 0xf8, 0x80, 0xbd, 0x1c, 0x75, 0x01, 0x00,
- 0xb0, 0xb5, 0x17, 0x4c, 0x3c, 0x00, 0x48, 0xa8,
- 0x00, 0x00, 0x20, 0x68, 0x00, 0x28, 0x29, 0xd0,
- 0x16, 0x4d, 0xe8, 0x69, 0x00, 0x28, 0x25, 0xd1,
- 0x01, 0xf0, 0x3f, 0xfa, 0x00, 0x28, 0x21, 0xd1,
- 0xff, 0xf7, 0x41, 0xfc, 0x00, 0x28, 0x1d, 0xd1,
- 0x20, 0x68, 0xa9, 0x69, 0x40, 0x18, 0x08, 0xf0,
- 0xd6, 0xf9, 0x00, 0x28, 0x16, 0xd0, 0x02, 0xf0,
- 0x06, 0xfd, 0x21, 0x68, 0x40, 0x18, 0x08, 0xf0,
- 0xce, 0xf9, 0x00, 0x28, 0x0e, 0xd0, 0x3c, 0x00,
- 0x84, 0xa8, 0x00, 0x00, 0x01, 0x20, 0xe8, 0x61,
- 0x00, 0x22, 0x25, 0x21, 0x80, 0x20, 0x08, 0xf0,
- 0x8f, 0xff, 0x06, 0x48, 0x29, 0x6a, 0x04, 0xf0,
- 0x83, 0xfd, 0x01, 0x21, 0x28, 0x6a, 0x00, 0xf0,
- 0x89, 0xff, 0xb0, 0xbd, 0xe8, 0x59, 0x01, 0x00,
- 0x1c, 0x75, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x70, 0xb5, 0x05, 0x1c, 0x00, 0x24, 0xfa, 0xf7,
- 0x0b, 0xff, 0x18, 0x4e, 0x71, 0x6a, 0x40, 0x18,
- 0x3c, 0x00, 0xc0, 0xa8, 0x00, 0x00, 0x00, 0xf0,
- 0x8e, 0xf8, 0x00, 0x28, 0x0b, 0xd1, 0x04, 0xf0,
- 0xfe, 0xfb, 0x00, 0x21, 0x25, 0x20, 0x08, 0xf0,
- 0xb0, 0xfe, 0x03, 0x22, 0x29, 0x1c, 0x28, 0x1c,
- 0x00, 0xf0, 0xaf, 0xf8, 0x18, 0xe0, 0x70, 0x6a,
- 0x44, 0x1e, 0x00, 0xf0, 0x7c, 0xf8, 0x00, 0x28,
- 0x12, 0xd1, 0x0c, 0x48, 0x31, 0x6a, 0x04, 0xf0,
- 0x56, 0xfd, 0x01, 0x21, 0x30, 0x6a, 0x00, 0xf0,
- 0x5c, 0xff, 0x3c, 0x00, 0xfc, 0xa8, 0x00, 0x00,
- 0x00, 0x20, 0xfa, 0xf7, 0x0d, 0xfe, 0x06, 0xf0,
- 0x03, 0xf8, 0x00, 0x23, 0x00, 0x22, 0x25, 0x20,
- 0x05, 0x49, 0x08, 0xf0, 0x3f, 0xff, 0x20, 0x1c,
- 0x07, 0xf0, 0xfc, 0xfa, 0x70, 0xbd, 0x00, 0x00,
- 0x1c, 0x75, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x10, 0x27, 0x00, 0x00, 0x80, 0xb5, 0x01, 0x28,
- 0x07, 0xd0, 0x80, 0x28, 0x0d, 0xd1, 0x00, 0x22,
- 0x00, 0x21, 0x08, 0x48, 0x3c, 0x00, 0x38, 0xa9,
- 0x00, 0x00, 0xf8, 0xf7, 0x9a, 0xfe, 0x80, 0xbd,
- 0x01, 0x29, 0x02, 0xd1, 0x06, 0x49, 0x00, 0x20,
- 0xc8, 0x61, 0x04, 0xf0, 0xbe, 0xfb, 0x80, 0xbd,
- 0x05, 0x21, 0x25, 0x20, 0xf6, 0xf7, 0xa7, 0xfc,
- 0x80, 0xbd, 0x61, 0xa9, 0x00, 0x00, 0x1c, 0x75,
- 0x01, 0x00, 0x00, 0x21, 0x00, 0x28, 0x80, 0xb5,
- 0x01, 0xd1, 0x03, 0x48, 0x41, 0x68, 0x01, 0x22,
- 0x25, 0x20, 0x08, 0xf0, 0x2c, 0xfe, 0x3c, 0x00,
- 0x74, 0xa9, 0x00, 0x00, 0x80, 0xbd, 0x00, 0x00,
- 0xe8, 0x59, 0x01, 0x00, 0x02, 0x49, 0xc8, 0x68,
- 0x01, 0x38, 0x48, 0x62, 0x70, 0x47, 0x00, 0x00,
- 0x1c, 0x75, 0x01, 0x00, 0x38, 0xb5, 0x03, 0x1c,
- 0x08, 0x1c, 0x19, 0x1c, 0x11, 0x4b, 0x06, 0xd0,
- 0x01, 0x21, 0x11, 0x80, 0x0a, 0x1c, 0x19, 0x1c,
- 0xf5, 0xf7, 0xaa, 0xfd, 0x17, 0xe0, 0x0d, 0x4d,
- 0x01, 0x1c, 0x2c, 0x78, 0x12, 0x88, 0x18, 0x1c,
- 0x3c, 0x00, 0xb0, 0xa9, 0x00, 0x00, 0xf5, 0xf7,
- 0xa2, 0xfd, 0x28, 0x78, 0x84, 0x42, 0x0d, 0xd0,
- 0x00, 0x23, 0x6b, 0x61, 0x00, 0x28, 0x03, 0xd0,
- 0x00, 0x20, 0x07, 0xf0, 0xa4, 0xfa, 0x05, 0xe0,
- 0x00, 0x22, 0x00, 0x21, 0x00, 0x20, 0x00, 0x92,
- 0xf8, 0xf7, 0x23, 0xfc, 0x01, 0x20, 0x38, 0xbd,
- 0x00, 0x00, 0x1c, 0x75, 0x01, 0x00, 0x70, 0xb5,
- 0x04, 0x1c, 0x01, 0x26, 0x08, 0xf0, 0xe1, 0xf9,
- 0x05, 0x1c, 0x3c, 0x00, 0xec, 0xa9, 0x00, 0x00,
- 0x00, 0x20, 0xfa, 0xf7, 0x8b, 0xfd, 0x44, 0x43,
- 0x02, 0xf0, 0x40, 0xfc, 0x02, 0xf0, 0x3e, 0xfc,
- 0x01, 0x1c, 0x23, 0x1c, 0x00, 0x22, 0x28, 0x1c,
- 0x08, 0xf0, 0x7c, 0xfa, 0x00, 0x28, 0x13, 0xd1,
- 0x0a, 0x48, 0x23, 0x1c, 0x00, 0x22, 0x81, 0x69,
- 0x28, 0x1c, 0x08, 0xf0, 0x73, 0xfa, 0x00, 0x28,
- 0x0a, 0xd1, 0xf8, 0xf7, 0x19, 0xfc, 0x01, 0x1c,
- 0x23, 0x1c, 0x00, 0x22, 0x3c, 0x00, 0x28, 0xaa,
- 0x00, 0x00, 0x28, 0x1c, 0x08, 0xf0, 0x69, 0xfa,
- 0x00, 0x28, 0x00, 0xd1, 0x00, 0x26, 0x30, 0x1c,
- 0x70, 0xbd, 0x1c, 0x75, 0x01, 0x00, 0x70, 0xb5,
- 0x0d, 0x1c, 0x04, 0x1c, 0x16, 0x1c, 0x07, 0xf0,
- 0x76, 0xf9, 0x00, 0x28, 0x0d, 0xd0, 0xfa, 0xf7,
- 0x52, 0xfe, 0x00, 0x28, 0x09, 0xd0, 0xff, 0x30,
- 0x01, 0x30, 0x43, 0x68, 0x00, 0x2b, 0x04, 0xd0,
- 0x22, 0x1c, 0x29, 0x1c, 0x30, 0x1c, 0x3c, 0x00,
- 0x64, 0xaa, 0x00, 0x00, 0xf5, 0xf7, 0xbb, 0xfc,
- 0x70, 0xbd, 0x00, 0x00, 0x80, 0xb5, 0x01, 0x21,
- 0x1d, 0x20, 0x08, 0xf0, 0xdf, 0xfd, 0x07, 0x4a,
- 0x07, 0x48, 0x11, 0x69, 0x01, 0x60, 0x51, 0x69,
- 0x41, 0x60, 0x06, 0x49, 0x49, 0x68, 0x81, 0x60,
- 0x00, 0x21, 0xc1, 0x60, 0x03, 0xf0, 0x74, 0xfc,
- 0x80, 0xbd, 0x00, 0x00, 0x28, 0x61, 0x01, 0x00,
- 0x48, 0x75, 0x01, 0x00, 0x90, 0x5c, 0x01, 0x00,
- 0x3c, 0x00, 0xa0, 0xaa, 0x00, 0x00, 0x70, 0xb5,
- 0x04, 0x1c, 0x40, 0x6b, 0x00, 0x28, 0x35, 0xd0,
- 0x1d, 0x4d, 0x00, 0x26, 0x28, 0x78, 0x00, 0x28,
- 0x24, 0xd0, 0x41, 0x20, 0x00, 0x5d, 0x00, 0x28,
- 0x03, 0xd1, 0x08, 0xf0, 0x76, 0xf9, 0xa8, 0x61,
- 0x1b, 0xe0, 0x69, 0x69, 0x01, 0x31, 0x69, 0x61,
- 0xa8, 0x68, 0x00, 0x28, 0x08, 0xd0, 0x81, 0x42,
- 0x06, 0xd1, 0x20, 0x69, 0x01, 0x1c, 0x10, 0x31,
- 0x04, 0x30, 0x3c, 0x00, 0xdc, 0xaa, 0x00, 0x00,
- 0x82, 0x22, 0xff, 0xf7, 0xad, 0xff, 0x68, 0x68,
- 0x00, 0x28, 0x0a, 0xd0, 0x69, 0x69, 0x81, 0x42,
- 0x07, 0xd1, 0x20, 0x69, 0x01, 0x1c, 0x10, 0x31,
- 0x04, 0x30, 0x02, 0x22, 0xff, 0xf7, 0xa0, 0xff,
- 0x6e, 0x61, 0x68, 0x78, 0x05, 0x21, 0x08, 0x40,
- 0x08, 0xd0, 0x07, 0x48, 0x00, 0x78, 0x0e, 0x28,
- 0x03, 0xd3, 0x60, 0x34, 0xe0, 0x79, 0xfb, 0xf7,
- 0xcf, 0xff, 0x70, 0xbd, 0x3c, 0x00, 0x18, 0xab,
- 0x00, 0x00, 0x03, 0x48, 0x06, 0x60, 0x70, 0xbd,
- 0x00, 0x00, 0x1c, 0x75, 0x01, 0x00, 0x10, 0x67,
- 0x01, 0x00, 0xd4, 0x7e, 0x01, 0x00, 0x80, 0x02,
- 0x70, 0x47, 0x14, 0x23, 0x30, 0xb5, 0x09, 0x4d,
- 0x4b, 0x43, 0x5b, 0x19, 0x5b, 0x68, 0x08, 0x24,
- 0x00, 0x2b, 0x00, 0xd1, 0x02, 0x24, 0x38, 0x23,
- 0x5a, 0x43, 0x05, 0x4b, 0x89, 0x00, 0xd2, 0x18,
- 0x51, 0x5a, 0x02, 0x68, 0x09, 0x19, 0x3c, 0x00,
- 0x54, 0xab, 0x00, 0x00, 0x51, 0x1a, 0x01, 0x60,
- 0x30, 0xbd, 0x00, 0x00, 0x74, 0x40, 0x01, 0x00,
- 0x8c, 0x41, 0x01, 0x00, 0xf8, 0xb5, 0x07, 0x1c,
- 0x2c, 0x48, 0x14, 0x1c, 0x2c, 0x4a, 0x48, 0x43,
- 0x86, 0x46, 0x80, 0x18, 0x80, 0x0d, 0x84, 0x46,
- 0x2b, 0x48, 0x2a, 0x4a, 0x06, 0x26, 0x1d, 0x1c,
- 0x48, 0x43, 0x4a, 0x43, 0x0e, 0x2f, 0x40, 0xd2,
- 0x01, 0xa3, 0xdb, 0x5d, 0x5b, 0x00, 0x9f, 0x44,
- 0x3c, 0x00, 0x90, 0xab, 0x00, 0x00, 0x06, 0x08,
- 0x0a, 0x0f, 0x14, 0x18, 0x1d, 0x20, 0x27, 0x24,
- 0x27, 0x2b, 0x2f, 0x31, 0xc8, 0x00, 0x1f, 0xe0,
- 0x88, 0x00, 0x1d, 0xe0, 0x21, 0x49, 0x70, 0x46,
- 0x40, 0x18, 0x00, 0x0d, 0x18, 0xe0, 0x1f, 0x4a,
- 0x80, 0x18, 0x80, 0x0d, 0x40, 0x18, 0x21, 0xe0,
- 0x1e, 0x48, 0x10, 0x18, 0x00, 0x0d, 0x1d, 0xe0,
- 0x1d, 0x49, 0x70, 0x46, 0x40, 0x18, 0x40, 0x0d,
- 0x0a, 0xe0, 0x3c, 0x00, 0xcc, 0xab, 0x00, 0x00,
- 0x1b, 0x49, 0x40, 0x18, 0x01, 0xe0, 0x1b, 0x48,
- 0x10, 0x18, 0x40, 0x0d, 0x11, 0xe0, 0x1a, 0x49,
- 0x40, 0x18, 0x05, 0xe0, 0x60, 0x46, 0x20, 0x80,
- 0x00, 0x20, 0x16, 0xe0, 0x17, 0x48, 0x10, 0x18,
- 0x80, 0x0d, 0x06, 0xe0, 0x16, 0x49, 0x02, 0xe0,
- 0x16, 0x48, 0x48, 0x43, 0x16, 0x49, 0x40, 0x18,
- 0xc0, 0x0d, 0x03, 0x30, 0x80, 0x08, 0x80, 0x00,
- 0x20, 0x80, 0x2e, 0x80, 0x3c, 0x00, 0x08, 0xac,
- 0x00, 0x00, 0xf8, 0xbd, 0xff, 0x21, 0xff, 0x20,
- 0xf6, 0xf7, 0x49, 0xfb, 0x00, 0x20, 0x20, 0x80,
- 0x28, 0x80, 0xf6, 0xe7, 0x00, 0x00, 0xd1, 0x45,
- 0x17, 0x00, 0xff, 0xff, 0x3f, 0x00, 0xe3, 0x38,
- 0x0e, 0x00, 0x55, 0x55, 0x15, 0x00, 0xff, 0xff,
- 0x0f, 0x00, 0xa9, 0xaa, 0x2a, 0x01, 0x70, 0x1c,
- 0x37, 0x00, 0xff, 0xff, 0x1f, 0x00, 0xcb, 0xcc,
- 0x4c, 0x00, 0x70, 0x1c, 0x47, 0x00, 0x3c, 0x00,
- 0x44, 0xac, 0x00, 0x00, 0xa9, 0xaa, 0x7a, 0x00,
- 0x70, 0x1c, 0x67, 0x00, 0xa9, 0xaa, 0xba, 0x00,
- 0x84, 0xf6, 0x12, 0x00, 0xec, 0x25, 0xb4, 0x00,
- 0x04, 0x49, 0x00, 0x28, 0x01, 0xd0, 0x09, 0x22,
- 0x00, 0xe0, 0x14, 0x22, 0x4a, 0x80, 0x48, 0x60,
- 0x70, 0x47, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x00,
- 0x80, 0xb5, 0x06, 0x22, 0xf5, 0xf7, 0x40, 0xfc,
- 0x80, 0xbd, 0x00, 0x00, 0xbc, 0xb5, 0x15, 0x1c,
- 0x3c, 0x00, 0x80, 0xac, 0x00, 0x00, 0x04, 0x1c,
- 0x04, 0x31, 0x09, 0x04, 0x09, 0x0c, 0x01, 0xaa,
- 0x6b, 0x46, 0xff, 0xf7, 0x6a, 0xff, 0x38, 0x20,
- 0x06, 0x49, 0x68, 0x43, 0x40, 0x18, 0xa1, 0x00,
- 0x40, 0x5a, 0x00, 0xab, 0x99, 0x88, 0x40, 0x18,
- 0x19, 0x88, 0x40, 0x18, 0x00, 0x04, 0x00, 0x0c,
- 0xbc, 0xbd, 0x8c, 0x41, 0x01, 0x00, 0xbc, 0xb5,
- 0x04, 0x1c, 0x15, 0x1c, 0x01, 0xaa, 0x6b, 0x46,
- 0xff, 0xf7, 0x3c, 0x00, 0xbc, 0xac, 0x00, 0x00,
- 0x53, 0xff, 0x38, 0x20, 0x05, 0x49, 0x68, 0x43,
- 0x40, 0x18, 0xa1, 0x00, 0x40, 0x5a, 0x00, 0xab,
- 0x99, 0x88, 0x40, 0x18, 0x00, 0x04, 0x00, 0x0c,
- 0xbc, 0xbd, 0x00, 0x00, 0x8c, 0x41, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x28, 0x0f, 0xd0, 0x00, 0x29,
- 0x0d, 0xd0, 0x02, 0x78, 0x0b, 0x78, 0x9a, 0x42,
- 0x09, 0xd1, 0xff, 0x2a, 0x05, 0xd0, 0x42, 0x78,
- 0x02, 0x32, 0xf5, 0xf7, 0x3c, 0x00, 0xf8, 0xac,
- 0x00, 0x00, 0x81, 0xfb, 0x00, 0x28, 0x01, 0xd1,
- 0x01, 0x20, 0x80, 0xbd, 0x00, 0x20, 0x80, 0xbd,
- 0x00, 0x00, 0x80, 0xb5, 0x06, 0x22, 0x04, 0x49,
- 0xf5, 0xf7, 0x75, 0xfb, 0x00, 0x28, 0x01, 0xd1,
- 0x01, 0x20, 0x80, 0xbd, 0x00, 0x20, 0x80, 0xbd,
- 0x00, 0x00, 0x5e, 0x40, 0x01, 0x00, 0x01, 0x1c,
- 0x49, 0x78, 0x01, 0x20, 0x00, 0x29, 0x00, 0xd0,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xad, 0x00, 0x00, 0x80, 0xb5, 0x06, 0x22,
- 0xf5, 0xf7, 0x60, 0xfb, 0x00, 0x28, 0x01, 0xd1,
- 0x01, 0x20, 0x80, 0xbd, 0x00, 0x20, 0x80, 0xbd,
- 0x80, 0xb5, 0xff, 0xf7, 0xc7, 0xff, 0x80, 0xbd,
- 0x80, 0xb5, 0x06, 0x22, 0x04, 0x49, 0xf5, 0xf7,
- 0x51, 0xfb, 0x00, 0x28, 0x01, 0xd1, 0x01, 0x20,
- 0x80, 0xbd, 0x00, 0x20, 0x80, 0xbd, 0x00, 0x00,
- 0x12, 0x61, 0x01, 0x00, 0x01, 0x1c, 0x80, 0x20,
- 0x3c, 0x00, 0x70, 0xad, 0x00, 0x00, 0x81, 0x43,
- 0x8a, 0x08, 0x0e, 0x20, 0x1c, 0x2a, 0x10, 0xb5,
- 0x06, 0xd2, 0x03, 0x4c, 0x52, 0x00, 0xa3, 0x5c,
- 0x8b, 0x42, 0x01, 0xd1, 0x10, 0x19, 0x40, 0x78,
- 0x10, 0xbd, 0xfc, 0x41, 0x01, 0x00, 0x14, 0x23,
- 0x02, 0x49, 0x58, 0x43, 0x40, 0x18, 0x40, 0x68,
- 0x70, 0x47, 0x74, 0x40, 0x01, 0x00, 0x20, 0x22,
- 0x01, 0x1c, 0x80, 0xb5, 0x02, 0x48, 0xf5, 0xf7,
- 0x52, 0xfd, 0x3c, 0x00, 0xac, 0xad, 0x00, 0x00,
- 0x80, 0xbd, 0x00, 0x00, 0x48, 0x61, 0x01, 0x00,
- 0x08, 0x06, 0x00, 0x0e, 0x02, 0x28, 0x01, 0xd1,
- 0x00, 0x20, 0x70, 0x47, 0x01, 0x20, 0x70, 0x47,
- 0x00, 0x29, 0x0c, 0xd0, 0x07, 0x49, 0x09, 0x68,
- 0x00, 0x29, 0x08, 0xd0, 0x14, 0x23, 0x06, 0x49,
- 0x58, 0x43, 0x40, 0x18, 0xc0, 0x68, 0x00, 0x28,
- 0x01, 0xd0, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20,
- 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xad,
- 0x00, 0x00, 0xac, 0x69, 0x01, 0x00, 0x74, 0x40,
- 0x01, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x06, 0x22,
- 0x01, 0x1c, 0x04, 0x48, 0xf5, 0xf7, 0x7d, 0xfb,
- 0x06, 0x22, 0x21, 0x1c, 0x03, 0x48, 0xf5, 0xf7,
- 0x78, 0xfb, 0x10, 0xbd, 0x00, 0x00, 0x12, 0x61,
- 0x01, 0x00, 0x40, 0x80, 0x07, 0x00, 0x00, 0x29,
- 0x01, 0xd1, 0x00, 0x20, 0x70, 0x47, 0x38, 0x23,
- 0x5a, 0x43, 0x07, 0x4b, 0xd2, 0x18, 0x3c, 0x00,
- 0x24, 0xae, 0x00, 0x00, 0x83, 0x00, 0xd2, 0x5a,
- 0x14, 0x23, 0x58, 0x43, 0x05, 0x4b, 0xc0, 0x18,
- 0x40, 0x88, 0x10, 0x18, 0x08, 0x1a, 0x0a, 0x38,
- 0x00, 0x04, 0x00, 0x0c, 0x70, 0x47, 0x00, 0x00,
- 0x8c, 0x41, 0x01, 0x00, 0x74, 0x40, 0x01, 0x00,
- 0xf8, 0xb5, 0x07, 0x1c, 0x08, 0x1c, 0x16, 0x1c,
- 0x1c, 0x1c, 0x19, 0x1c, 0x00, 0xf0, 0x5a, 0xf8,
- 0x05, 0x1c, 0x14, 0x35, 0x22, 0x1c, 0x31, 0x1c,
- 0x3c, 0x00, 0x60, 0xae, 0x00, 0x00, 0x38, 0x1c,
- 0xff, 0xf7, 0x0b, 0xff, 0x28, 0x18, 0x00, 0x04,
- 0x00, 0x0c, 0xf8, 0xbd, 0x00, 0x00, 0x00, 0xb5,
- 0x00, 0xf0, 0x4b, 0xf8, 0x0a, 0x30, 0x00, 0x04,
- 0x00, 0x0c, 0x00, 0xbd, 0x00, 0x00, 0xf8, 0xb5,
- 0x07, 0x1c, 0x08, 0x1c, 0x16, 0x1c, 0x1c, 0x1c,
- 0x19, 0x1c, 0x00, 0xf0, 0x3e, 0xf8, 0x45, 0x00,
- 0x1e, 0x35, 0x22, 0x1c, 0x31, 0x1c, 0x38, 0x1c,
- 0xff, 0xf7, 0x3c, 0x00, 0x9c, 0xae, 0x00, 0x00,
- 0xef, 0xfe, 0x28, 0x18, 0x00, 0x04, 0x00, 0x0c,
- 0xf8, 0xbd, 0x00, 0x00, 0xff, 0xb5, 0x0f, 0x1c,
- 0x81, 0xb0, 0x0a, 0xa9, 0x14, 0x1c, 0x1e, 0x1c,
- 0x03, 0xc9, 0x00, 0xf0, 0x29, 0xf8, 0x05, 0x1c,
- 0x1e, 0x35, 0x21, 0x1c, 0x30, 0x1c, 0x00, 0xf0,
- 0x23, 0xf8, 0x2d, 0x18, 0x22, 0x1c, 0x39, 0x1c,
- 0x01, 0x98, 0xff, 0xf7, 0xd5, 0xfe, 0x28, 0x18,
- 0x00, 0x04, 0x00, 0x0c, 0x3c, 0x00, 0xd8, 0xae,
- 0x00, 0x00, 0x05, 0xb0, 0xf0, 0xbd, 0x0a, 0x49,
- 0x80, 0xb5, 0x09, 0x88, 0x09, 0x29, 0x04, 0xd0,
- 0x14, 0x29, 0x07, 0xd1, 0x01, 0x01, 0x80, 0x00,
- 0x00, 0xe0, 0xc1, 0x00, 0x08, 0x18, 0x00, 0x04,
- 0x00, 0x0c, 0x80, 0xbd, 0xff, 0x21, 0xff, 0x20,
- 0xf6, 0xf7, 0xd1, 0xf9, 0x00, 0x20, 0x80, 0xbd,
- 0x00, 0x00, 0xa6, 0x69, 0x01, 0x00, 0x38, 0x23,
- 0x59, 0x43, 0x06, 0x4a, 0x14, 0x23, 0x3c, 0x00,
- 0x14, 0xaf, 0x00, 0x00, 0x89, 0x18, 0x82, 0x00,
- 0x89, 0x5a, 0x05, 0x4a, 0x58, 0x43, 0x80, 0x18,
- 0x40, 0x88, 0x08, 0x18, 0x00, 0x04, 0x00, 0x0c,
- 0x70, 0x47, 0x00, 0x00, 0x8c, 0x41, 0x01, 0x00,
- 0x74, 0x40, 0x01, 0x00, 0x02, 0x48, 0x03, 0x49,
- 0x00, 0x68, 0x40, 0x00, 0x08, 0x5a, 0x70, 0x47,
- 0xa8, 0x69, 0x01, 0x00, 0x54, 0x40, 0x01, 0x00,
- 0x0a, 0x20, 0x70, 0x47, 0x10, 0xb5, 0x04, 0x1c,
- 0x3c, 0x00, 0x50, 0xaf, 0x00, 0x00, 0xfd, 0xf7,
- 0x62, 0xff, 0x20, 0x1c, 0x10, 0xbd, 0xb0, 0xb5,
- 0x04, 0x1c, 0xc0, 0x68, 0x05, 0x68, 0xa0, 0x1d,
- 0xff, 0xf7, 0xf5, 0xfe, 0x00, 0x28, 0x18, 0xd0,
- 0x21, 0x1c, 0x14, 0x31, 0x20, 0x1c, 0x08, 0xf0,
- 0xe2, 0xfd, 0x00, 0x28, 0x11, 0xd0, 0x29, 0x88,
- 0x09, 0x48, 0x20, 0x22, 0x81, 0x82, 0x69, 0x88,
- 0x01, 0x83, 0xa9, 0x88, 0x06, 0x35, 0x41, 0x83,
- 0xc5, 0x61, 0x3c, 0x00, 0x8c, 0xaf, 0x00, 0x00,
- 0x30, 0x21, 0x09, 0x5d, 0x11, 0x54, 0x61, 0x6b,
- 0x41, 0x62, 0x01, 0x20, 0xf7, 0xf7, 0x28, 0xf8,
- 0x20, 0x1c, 0xb0, 0xbd, 0x70, 0x7c, 0x01, 0x00,
- 0x70, 0xb5, 0x04, 0x1c, 0xc0, 0x68, 0x21, 0x1c,
- 0x14, 0x31, 0x05, 0x68, 0x20, 0x1c, 0x08, 0xf0,
- 0xc1, 0xfd, 0x00, 0x28, 0x08, 0xd0, 0x05, 0x4e,
- 0xf0, 0x68, 0x02, 0xf0, 0xcf, 0xfd, 0x28, 0x88,
- 0xf0, 0x82, 0x03, 0x20, 0x3c, 0x00, 0xc8, 0xaf,
- 0x00, 0x00, 0xf7, 0xf7, 0x10, 0xf8, 0x20, 0x1c,
- 0x70, 0xbd, 0x70, 0x7c, 0x01, 0x00, 0x3e, 0xb5,
- 0x04, 0x1c, 0xc0, 0x68, 0x05, 0x68, 0xa0, 0x1d,
- 0xff, 0xf7, 0xb7, 0xfe, 0x00, 0x28, 0x21, 0xd0,
- 0x21, 0x1c, 0x14, 0x31, 0x20, 0x1c, 0x02, 0xaa,
- 0x08, 0xf0, 0x77, 0xfd, 0x00, 0x28, 0x19, 0xd0,
- 0x02, 0x98, 0x4b, 0x21, 0x09, 0x5c, 0x00, 0x29,
- 0x10, 0xd0, 0x01, 0x29, 0x14, 0xd0, 0x3c, 0x00,
- 0x04, 0xb0, 0x00, 0x00, 0x02, 0x29, 0x0c, 0xd1,
- 0x29, 0x88, 0x0d, 0x20, 0x00, 0xab, 0x18, 0x80,
- 0x20, 0x1c, 0x03, 0xf0, 0x51, 0xf8, 0x01, 0x90,
- 0x68, 0x46, 0x02, 0xf0, 0x5d, 0xfa, 0xf6, 0xf7,
- 0xb5, 0xf8, 0x00, 0x21, 0x02, 0x98, 0x06, 0xf0,
- 0x9f, 0xfe, 0x20, 0x1c, 0x3e, 0xbd, 0x07, 0xf0,
- 0x29, 0xf8, 0x02, 0x98, 0x00, 0x21, 0x80, 0x69,
- 0xc2, 0x07, 0xd2, 0x0f, 0x04, 0x20, 0xf6, 0xf7,
- 0x3c, 0x00, 0x40, 0xb0, 0x00, 0x00, 0x7f, 0xff,
- 0xee, 0xe7, 0x10, 0xb5, 0x04, 0x1c, 0xfd, 0xf7,
- 0xe6, 0xfe, 0x20, 0x1c, 0x10, 0xbd, 0x3e, 0xb5,
- 0x05, 0x1c, 0x00, 0xf0, 0x40, 0xfe, 0x00, 0x28,
- 0x15, 0xd1, 0x28, 0x1c, 0x14, 0x30, 0xfa, 0xf7,
- 0xce, 0xfb, 0x00, 0x28, 0x0f, 0xd0, 0x05, 0x21,
- 0x28, 0x69, 0xff, 0xf7, 0x86, 0xfb, 0x04, 0x1c,
- 0x09, 0xd0, 0x05, 0x22, 0x21, 0x1c, 0x68, 0x46,
- 0xf5, 0xf7, 0x3c, 0x00, 0x7c, 0xb0, 0x00, 0x00,
- 0x3d, 0xfa, 0x05, 0x34, 0x02, 0x94, 0x68, 0x46,
- 0x03, 0xf0, 0x1a, 0xfb, 0x2a, 0x1c, 0x0d, 0x21,
- 0x8f, 0x20, 0x08, 0xf0, 0x8f, 0xfb, 0x00, 0x20,
- 0x3e, 0xbd, 0x00, 0x00, 0x10, 0xb5, 0x04, 0x1c,
- 0xfa, 0xf7, 0x98, 0xf8, 0x20, 0x1c, 0x05, 0xf0,
- 0xe5, 0xf8, 0x20, 0x1c, 0x10, 0xbd, 0x00, 0x00,
- 0xb0, 0xb5, 0x04, 0x1c, 0x00, 0x69, 0x00, 0x21,
- 0x94, 0xb0, 0xff, 0xf7, 0x3c, 0x00, 0xb8, 0xb0,
- 0x00, 0x00, 0x61, 0xfb, 0x69, 0x46, 0xfb, 0xf7,
- 0x26, 0xf8, 0x00, 0x28, 0x1e, 0xd0, 0x00, 0x98,
- 0xfa, 0xf7, 0x29, 0xfa, 0x01, 0x1c, 0x01, 0xa8,
- 0x02, 0xf0, 0xd7, 0xf9, 0x00, 0x98, 0xfa, 0xf7,
- 0xd2, 0xf9, 0x04, 0x90, 0x05, 0x20, 0x09, 0xad,
- 0x68, 0x72, 0x02, 0xa8, 0x21, 0x1c, 0x06, 0x22,
- 0x02, 0x30, 0xf5, 0xf7, 0x06, 0xfa, 0x01, 0x20,
- 0x08, 0x90, 0x21, 0x6a, 0x0a, 0x90, 0x3c, 0x00,
- 0xf4, 0xb0, 0x00, 0x00, 0x28, 0x20, 0x09, 0x91,
- 0x00, 0x5d, 0x28, 0x72, 0x01, 0xa8, 0x00, 0xf0,
- 0x69, 0xf8, 0x20, 0x1c, 0x14, 0xb0, 0xb0, 0xbd,
- 0xff, 0xb5, 0x16, 0x1c, 0x1f, 0x1c, 0x81, 0xb0,
- 0x0a, 0x9d, 0x4c, 0x20, 0xf6, 0xf7, 0x90, 0xfb,
- 0x04, 0x1c, 0x14, 0x30, 0x06, 0x22, 0x02, 0x99,
- 0xf5, 0xf7, 0xea, 0xf9, 0x20, 0x1c, 0x06, 0x22,
- 0x01, 0x99, 0xf5, 0xf7, 0xe5, 0xf9, 0x28, 0x20,
- 0x3c, 0x00, 0x30, 0xb1, 0x00, 0x00, 0x00, 0x21,
- 0x06, 0x55, 0xe1, 0x60, 0x27, 0x62, 0x00, 0x2d,
- 0x01, 0xd0, 0x8e, 0x20, 0x00, 0xe0, 0x8d, 0x20,
- 0x22, 0x1c, 0x0d, 0x21, 0x08, 0xf0, 0x33, 0xfb,
- 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0xb0, 0xb5,
- 0x05, 0x1c, 0x4c, 0x20, 0xf6, 0xf7, 0x6f, 0xfb,
- 0x04, 0x1c, 0x4c, 0x22, 0x29, 0x1c, 0xf5, 0xf7,
- 0x26, 0xfa, 0x29, 0x20, 0x40, 0x5d, 0x0d, 0x28,
- 0x2c, 0xd2, 0x3c, 0x00, 0x6c, 0xb1, 0x00, 0x00,
- 0x01, 0xa3, 0x1b, 0x5c, 0x5b, 0x00, 0x9f, 0x44,
- 0x28, 0x1a, 0x28, 0x1e, 0x06, 0x0a, 0x28, 0x28,
- 0x0e, 0x28, 0x22, 0x12, 0x16, 0x00, 0x22, 0x1c,
- 0x0d, 0x21, 0x8c, 0x20, 0x1a, 0xe0, 0x22, 0x1c,
- 0x0d, 0x21, 0x83, 0x20, 0x16, 0xe0, 0x22, 0x1c,
- 0x0d, 0x21, 0x84, 0x20, 0x12, 0xe0, 0x22, 0x1c,
- 0x0d, 0x21, 0x85, 0x20, 0x0e, 0xe0, 0x22, 0x1c,
- 0x0d, 0x21, 0x86, 0x20, 0x3c, 0x00, 0xa8, 0xb1,
- 0x00, 0x00, 0x0a, 0xe0, 0x22, 0x1c, 0x0d, 0x21,
- 0x87, 0x20, 0x06, 0xe0, 0x22, 0x1c, 0x0d, 0x21,
- 0x89, 0x20, 0x02, 0xe0, 0x22, 0x1c, 0x0d, 0x21,
- 0x8b, 0x20, 0x08, 0xf0, 0xf6, 0xfa, 0xb0, 0xbd,
- 0xe8, 0x68, 0xf6, 0xf7, 0xe6, 0xf9, 0x20, 0x1c,
- 0xf6, 0xf7, 0x11, 0xfb, 0xb0, 0xbd, 0xfe, 0xb5,
- 0x05, 0x1c, 0x90, 0x20, 0xf6, 0xf7, 0x2d, 0xfb,
- 0x04, 0x1c, 0x90, 0x21, 0xf5, 0xf7, 0x3c, 0x00,
- 0xe4, 0xb1, 0x00, 0x00, 0x5b, 0xf9, 0x37, 0x4e,
- 0x01, 0x27, 0xf0, 0x69, 0x04, 0x28, 0x03, 0xd9,
- 0x70, 0x6b, 0x01, 0x30, 0x70, 0x63, 0x4d, 0xe0,
- 0x33, 0x48, 0xb1, 0x6b, 0x04, 0xf0, 0xd0, 0xf8,
- 0x01, 0x20, 0x20, 0x62, 0xa8, 0x7e, 0x21, 0x1c,
- 0x80, 0x31, 0x02, 0x91, 0x08, 0x70, 0x22, 0x1c,
- 0x60, 0x32, 0x01, 0x92, 0x00, 0x20, 0x2f, 0x1c,
- 0x20, 0x37, 0x90, 0x72, 0x78, 0x7a, 0x2b, 0x1c,
- 0x3c, 0x00, 0x20, 0xb2, 0x00, 0x00, 0x14, 0x33,
- 0xd0, 0x72, 0xe8, 0x68, 0xaa, 0x1d, 0xa0, 0x60,
- 0xe8, 0x6b, 0x48, 0x60, 0x44, 0x20, 0x40, 0x5d,
- 0x08, 0x72, 0x29, 0x1c, 0x20, 0x1c, 0x05, 0xf0,
- 0xaa, 0xfc, 0x68, 0x6a, 0x00, 0x28, 0x0a, 0xd1,
- 0x01, 0x9a, 0x20, 0x1c, 0x93, 0x7a, 0x02, 0x99,
- 0x22, 0x1c, 0x70, 0x32, 0x58, 0x30, 0x09, 0x78,
- 0xfa, 0xf7, 0xdb, 0xf9, 0x06, 0xe0, 0x3a, 0x7a,
- 0x23, 0x1c, 0x3c, 0x00, 0x5c, 0xb2, 0x00, 0x00,
- 0xe8, 0x69, 0x29, 0x6a, 0x70, 0x33, 0xfd, 0xf7,
- 0x8d, 0xf9, 0x30, 0x20, 0x40, 0x5d, 0x18, 0x49,
- 0x07, 0x28, 0x0b, 0xd1, 0x58, 0x20, 0x00, 0x5d,
- 0xc0, 0x07, 0xc0, 0x17, 0x01, 0x30, 0xe0, 0x61,
- 0x00, 0x20, 0x20, 0x61, 0x20, 0x1c, 0xf7, 0xf7,
- 0x3f, 0xff, 0x18, 0xe0, 0x01, 0x22, 0x20, 0x1c,
- 0x05, 0xf0, 0xac, 0xff, 0x07, 0x1c, 0x12, 0xd0,
- 0x03, 0xf0, 0x06, 0xff, 0x3c, 0x00, 0x98, 0xb2,
- 0x00, 0x00, 0xf3, 0x6d, 0x00, 0x2b, 0x06, 0xd0,
- 0x60, 0x68, 0x20, 0x30, 0x82, 0x7b, 0x61, 0x6b,
- 0x38, 0x1c, 0xf5, 0xf7, 0x99, 0xf8, 0xe8, 0x68,
- 0xf6, 0xf7, 0x73, 0xf9, 0x20, 0x1c, 0xf6, 0xf7,
- 0x9e, 0xfa, 0xfe, 0xbd, 0xf0, 0x69, 0x01, 0x30,
- 0xf0, 0x61, 0xfa, 0xe7, 0x00, 0x00, 0xc4, 0x69,
- 0x01, 0x00, 0x34, 0x63, 0x01, 0x00, 0x05, 0x31,
- 0x00, 0x00, 0x70, 0xb5, 0x06, 0x1c, 0x3c, 0x00,
- 0xd4, 0xb2, 0x00, 0x00, 0x0d, 0x1c, 0x09, 0x04,
- 0x09, 0x0c, 0x00, 0x20, 0xf6, 0xf7, 0x7c, 0xf9,
- 0x04, 0x1c, 0x2a, 0x1c, 0x31, 0x1c, 0x00, 0x68,
- 0xf5, 0xf7, 0x06, 0xf9, 0x20, 0x1c, 0x70, 0xbd,
- 0x40, 0x88, 0x70, 0x47, 0x03, 0x78, 0x1b, 0x07,
- 0x9b, 0x0f, 0x0b, 0x70, 0x00, 0x78, 0x00, 0x09,
- 0x10, 0x70, 0x70, 0x47, 0x04, 0x30, 0x70, 0x47,
- 0x04, 0x30, 0x70, 0x47, 0xd4, 0x21, 0x01, 0x70,
- 0x3c, 0x00, 0x10, 0xb3, 0x00, 0x00, 0x00, 0x21,
- 0x41, 0x70, 0x70, 0x47, 0x00, 0x00, 0xc4, 0x21,
- 0x01, 0x70, 0x00, 0x21, 0x41, 0x70, 0x70, 0x47,
- 0x00, 0x00, 0xb4, 0x21, 0x01, 0x70, 0x00, 0x21,
- 0x41, 0x70, 0x70, 0x47, 0x00, 0x00, 0x01, 0x49,
- 0x48, 0x65, 0x70, 0x47, 0x00, 0x00, 0xc4, 0x69,
- 0x01, 0x00, 0x01, 0x49, 0x08, 0x65, 0x70, 0x47,
- 0x00, 0x00, 0xc4, 0x69, 0x01, 0x00, 0x01, 0x49,
- 0x88, 0x65, 0x3c, 0x00, 0x4c, 0xb3, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0xc4, 0x69, 0x01, 0x00,
- 0xf8, 0xb5, 0x5f, 0x4f, 0x05, 0x1c, 0xb8, 0x68,
- 0x01, 0x30, 0xb8, 0x60, 0x07, 0xf0, 0x24, 0xfd,
- 0x38, 0x61, 0x90, 0x20, 0xf6, 0xf7, 0x66, 0xfa,
- 0x04, 0x1c, 0x90, 0x21, 0xf5, 0xf7, 0x94, 0xf8,
- 0x28, 0x6b, 0x27, 0x1c, 0x60, 0x63, 0x68, 0x8b,
- 0x80, 0x37, 0x26, 0x1c, 0xc0, 0x07, 0xc0, 0x0f,
- 0x20, 0x62, 0x68, 0x8b, 0x3c, 0x00, 0x88, 0xb3,
- 0x00, 0x00, 0x60, 0x36, 0x02, 0x21, 0x40, 0x07,
- 0xc0, 0x0f, 0x20, 0x63, 0x68, 0x8b, 0x80, 0x07,
- 0xc0, 0x0f, 0xf8, 0x60, 0x28, 0x7f, 0x38, 0x70,
- 0xb1, 0x72, 0x00, 0x28, 0x08, 0xd1, 0xf9, 0xf7,
- 0xc8, 0xff, 0x00, 0x28, 0x02, 0xd0, 0x01, 0x20,
- 0x60, 0x62, 0x01, 0xe0, 0x01, 0x20, 0xa0, 0x62,
- 0xf8, 0x68, 0x00, 0x28, 0x03, 0xd0, 0x00, 0x21,
- 0x02, 0x20, 0x06, 0xf0, 0xcc, 0xff, 0x3c, 0x00,
- 0xc4, 0xb3, 0x00, 0x00, 0x2b, 0x1c, 0x10, 0x33,
- 0xaa, 0x1d, 0x29, 0x1c, 0x20, 0x1c, 0x05, 0xf0,
- 0xdf, 0xfb, 0xa8, 0x6a, 0x00, 0x28, 0x0c, 0xd1,
- 0x39, 0x78, 0x02, 0x29, 0x07, 0xd0, 0x22, 0x1c,
- 0x70, 0x32, 0x20, 0x1c, 0x58, 0x30, 0xb3, 0x7a,
- 0xfa, 0xf7, 0x10, 0xf9, 0x08, 0xe0, 0x01, 0x26,
- 0x5e, 0xe0, 0xaa, 0x7d, 0x23, 0x1c, 0x28, 0x6a,
- 0x69, 0x6a, 0x70, 0x33, 0xfd, 0xf7, 0xc0, 0xf8,
- 0x3c, 0x00, 0x00, 0xb4, 0x00, 0x00, 0xe9, 0x68,
- 0x00, 0x20, 0x09, 0x89, 0x00, 0x29, 0x00, 0xd1,
- 0x04, 0x20, 0xf0, 0x72, 0x38, 0x78, 0x01, 0x28,
- 0x14, 0xd1, 0x00, 0x27, 0x00, 0x90, 0x00, 0x20,
- 0x06, 0xe0, 0x29, 0x69, 0x01, 0x29, 0x03, 0xd1,
- 0xa9, 0x69, 0x01, 0x27, 0x89, 0x07, 0x1a, 0xd5,
- 0x06, 0xf0, 0x79, 0xfc, 0x00, 0x28, 0xf4, 0xd1,
- 0x01, 0x2f, 0x14, 0xd1, 0x00, 0x98, 0x01, 0x28,
- 0x11, 0xd1, 0x3c, 0x00, 0x3c, 0xb4, 0x00, 0x00,
- 0x08, 0xe0, 0x20, 0x1c, 0x58, 0x30, 0x06, 0xf0,
- 0xe1, 0xfc, 0x00, 0x28, 0x0a, 0xd0, 0x80, 0x69,
- 0x80, 0x07, 0x07, 0xd5, 0xf0, 0x7a, 0x08, 0x21,
- 0x08, 0x43, 0xf0, 0x72, 0x01, 0x20, 0xe0, 0x62,
- 0xe8, 0x7d, 0x30, 0x73, 0xe8, 0x68, 0xa0, 0x60,
- 0xe0, 0x6a, 0x00, 0x28, 0x12, 0xd0, 0x1a, 0x4f,
- 0xf8, 0x6b, 0x00, 0x28, 0x0e, 0xd0, 0x30, 0x7b,
- 0xf5, 0xf7, 0xde, 0xfe, 0x3c, 0x00, 0x78, 0xb4,
- 0x00, 0x00, 0x00, 0x28, 0x09, 0xd0, 0x21, 0x1c,
- 0x38, 0x1c, 0x40, 0x30, 0xfc, 0xf7, 0x55, 0xfc,
- 0x14, 0x48, 0xb9, 0x6b, 0x03, 0xf0, 0x89, 0xff,
- 0xf8, 0xbd, 0x10, 0x4f, 0x12, 0x48, 0xb9, 0x6b,
- 0x03, 0xf0, 0x83, 0xff, 0x00, 0x22, 0x20, 0x1c,
- 0x10, 0x49, 0x05, 0xf0, 0xa2, 0xfe, 0x06, 0x1c,
- 0x03, 0xd1, 0x38, 0x6a, 0x01, 0x30, 0x38, 0x62,
- 0xee, 0xe7, 0x20, 0x1c, 0xf6, 0xf7, 0x3c, 0x00,
- 0xb4, 0xb4, 0x00, 0x00, 0x9f, 0xf9, 0xe8, 0x68,
- 0xf6, 0xf7, 0x6e, 0xf8, 0x03, 0xf0, 0xf2, 0xfd,
- 0x04, 0x48, 0x83, 0x6d, 0x00, 0x2b, 0xe2, 0xd0,
- 0x00, 0x22, 0x30, 0x1c, 0x29, 0x6b, 0xf4, 0xf7,
- 0x86, 0xff, 0xdc, 0xe7, 0xc4, 0x69, 0x01, 0x00,
- 0xc4, 0x60, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x11, 0x30, 0x00, 0x00, 0x10, 0xb5, 0x0a, 0x20,
- 0x07, 0xf0, 0xfe, 0xfc, 0x07, 0xf0, 0x5e, 0xfc,
- 0x3c, 0x00, 0xf0, 0xb4, 0x00, 0x00, 0x0b, 0x49,
- 0x44, 0x18, 0x0c, 0xe0, 0x20, 0x1c, 0x07, 0xf0,
- 0x90, 0xfb, 0x00, 0x28, 0x07, 0xd0, 0xf7, 0xf7,
- 0x34, 0xf9, 0x00, 0x28, 0x03, 0xd0, 0x12, 0x21,
- 0x86, 0x20, 0xf5, 0xf7, 0xca, 0xfe, 0xf7, 0xf7,
- 0x2c, 0xf9, 0x00, 0x28, 0xee, 0xd1, 0x01, 0xf0,
- 0x80, 0xfd, 0x10, 0xbd, 0x00, 0x00, 0x40, 0x9c,
- 0x00, 0x00, 0x10, 0xb5, 0x0c, 0x1c, 0x01, 0x1c,
- 0x17, 0x4a, 0x3c, 0x00, 0x2c, 0xb5, 0x00, 0x00,
- 0x01, 0x29, 0x50, 0x69, 0x04, 0xd0, 0x80, 0x29,
- 0x1d, 0xd0, 0x81, 0x29, 0x21, 0xd1, 0x1c, 0xe0,
- 0x91, 0x78, 0x01, 0x29, 0x15, 0xd1, 0x02, 0x21,
- 0x91, 0x70, 0x14, 0x1c, 0x01, 0x1c, 0x10, 0x48,
- 0x03, 0xf0, 0x28, 0xff, 0x01, 0x21, 0x60, 0x69,
- 0x00, 0xf0, 0x2e, 0xf9, 0x60, 0x69, 0x01, 0xf0,
- 0x5f, 0xfc, 0x20, 0x70, 0xa0, 0x88, 0xa1, 0x69,
- 0x00, 0x23, 0x0a, 0x4a, 0x3c, 0x00, 0x68, 0xb5,
- 0x00, 0x00, 0x07, 0xf0, 0x7e, 0xfc, 0x10, 0xbd,
- 0x22, 0x21, 0x06, 0xe0, 0x01, 0xf0, 0x1d, 0xfc,
- 0x20, 0x1c, 0x00, 0xf0, 0x4a, 0xf8, 0x10, 0xbd,
- 0x1c, 0x21, 0x20, 0x20, 0xf5, 0xf7, 0x8f, 0xfe,
- 0x10, 0xbd, 0xb4, 0x79, 0x01, 0x00, 0x34, 0x63,
- 0x01, 0x00, 0x3d, 0x2e, 0x00, 0x00, 0x70, 0xb5,
- 0x1c, 0x4c, 0xa0, 0x78, 0x00, 0x28, 0x32, 0xd0,
- 0x05, 0x28, 0x30, 0xd0, 0x60, 0x69, 0x3c, 0x00,
- 0xa4, 0xb5, 0x00, 0x00, 0x00, 0xf0, 0xea, 0xf8,
- 0x18, 0x4e, 0xb5, 0x79, 0xa0, 0x78, 0x01, 0x28,
- 0x0b, 0xd0, 0x02, 0x28, 0x0e, 0xd0, 0x03, 0x28,
- 0x10, 0xd0, 0x04, 0x28, 0x17, 0xd1, 0x42, 0x1f,
- 0x80, 0x21, 0x20, 0x20, 0x08, 0xf0, 0x08, 0xf8,
- 0x0e, 0xe0, 0x00, 0x21, 0x20, 0x20, 0x08, 0xf0,
- 0x31, 0xf8, 0x0c, 0xe0, 0xa0, 0x88, 0x07, 0xf0,
- 0x1d, 0xfc, 0x05, 0xe0, 0x20, 0x78, 0x00, 0xf0,
- 0x3c, 0x00, 0xe0, 0xb5, 0x00, 0x00, 0x39, 0xfa,
- 0x00, 0x20, 0x00, 0xf0, 0xc4, 0xfd, 0x60, 0x69,
- 0x01, 0xf0, 0xe1, 0xfb, 0x05, 0x20, 0xa0, 0x70,
- 0xb5, 0x71, 0x60, 0x69, 0x00, 0xf0, 0x61, 0xf9,
- 0x00, 0x22, 0x20, 0x21, 0x81, 0x20, 0x08, 0xf0,
- 0xd6, 0xf8, 0x70, 0xbd, 0x00, 0x00, 0xb4, 0x79,
- 0x01, 0x00, 0x20, 0x10, 0x07, 0x00, 0xb0, 0xb5,
- 0x0d, 0x4d, 0x04, 0x1c, 0xa8, 0x78, 0x00, 0x28,
- 0x14, 0xd0, 0x3c, 0x00, 0x1c, 0xb6, 0x00, 0x00,
- 0x68, 0x69, 0x00, 0xf0, 0x0b, 0xf9, 0x0a, 0x48,
- 0x69, 0x69, 0x03, 0xf0, 0xa7, 0xfe, 0xa8, 0x88,
- 0x07, 0xf0, 0x9e, 0xfb, 0x00, 0x2c, 0x02, 0xd0,
- 0x68, 0x78, 0x00, 0xf0, 0x79, 0xff, 0x00, 0x20,
- 0xa8, 0x70, 0xa9, 0x68, 0x20, 0x1c, 0xf4, 0xf7,
- 0xca, 0xfe, 0xb0, 0xbd, 0xb4, 0x79, 0x01, 0x00,
- 0x34, 0x63, 0x01, 0x00, 0x06, 0x4b, 0x80, 0xb5,
- 0x99, 0x78, 0x03, 0x29, 0x3c, 0x00, 0x58, 0xb6,
- 0x00, 0x00, 0x06, 0xd1, 0x04, 0x21, 0x99, 0x70,
- 0x20, 0x21, 0x02, 0x1c, 0x80, 0x20, 0x08, 0xf0,
- 0xa4, 0xf8, 0x80, 0xbd, 0x00, 0x00, 0xb4, 0x79,
- 0x01, 0x00, 0x10, 0xb5, 0x0c, 0x4c, 0xa1, 0x78,
- 0x03, 0x29, 0x0f, 0xd1, 0x10, 0x30, 0xfa, 0xf7,
- 0xde, 0xf8, 0x00, 0x28, 0x09, 0xd0, 0x20, 0x78,
- 0x00, 0xf0, 0xe5, 0xf9, 0x00, 0x20, 0x00, 0xf0,
- 0x70, 0xfd, 0x00, 0x21, 0x05, 0x48, 0x3c, 0x00,
- 0x94, 0xb6, 0x00, 0x00, 0xfc, 0xf7, 0x9c, 0xfa,
- 0x10, 0xbd, 0x1b, 0x21, 0x20, 0x20, 0xf5, 0xf7,
- 0x01, 0xfe, 0x10, 0xbd, 0xb4, 0x79, 0x01, 0x00,
- 0x51, 0xb6, 0x00, 0x00, 0x09, 0x49, 0x80, 0xb5,
- 0x89, 0x78, 0x03, 0x29, 0x09, 0xd1, 0x00, 0xf0,
- 0xcd, 0xf9, 0x00, 0x20, 0x00, 0xf0, 0x58, 0xfd,
- 0x01, 0x21, 0x05, 0x48, 0xfc, 0xf7, 0x84, 0xfa,
- 0x80, 0xbd, 0x17, 0x21, 0x20, 0x20, 0xf5, 0xf7,
- 0x3c, 0x00, 0xd0, 0xb6, 0x00, 0x00, 0xe9, 0xfd,
- 0x80, 0xbd, 0xb4, 0x79, 0x01, 0x00, 0x51, 0xb6,
- 0x00, 0x00, 0x70, 0xb5, 0x10, 0x4c, 0x1d, 0x1c,
- 0xa3, 0x78, 0x06, 0x1c, 0x04, 0x98, 0x00, 0x2b,
- 0x18, 0xd1, 0x01, 0x23, 0xa3, 0x70, 0x22, 0x61,
- 0xe6, 0x60, 0x61, 0x70, 0xa0, 0x60, 0xa5, 0x61,
- 0x00, 0x20, 0x07, 0xf0, 0xac, 0xfa, 0xa0, 0x80,
- 0x30, 0x1c, 0xf7, 0xf7, 0x3c, 0xfb, 0xe0, 0x80,
- 0x07, 0xf0, 0x3c, 0x00, 0x0c, 0xb7, 0x00, 0x00,
- 0x4f, 0xfb, 0xc7, 0x21, 0xc9, 0x00, 0x28, 0x1a,
- 0x41, 0x1a, 0x00, 0x22, 0x20, 0x20, 0x07, 0xf0,
- 0x57, 0xff, 0x70, 0xbd, 0xb4, 0x79, 0x01, 0x00,
- 0xb0, 0xb5, 0x04, 0x1c, 0x0d, 0x1c, 0x00, 0xf0,
- 0x09, 0xf8, 0x20, 0x1c, 0x00, 0xf0, 0x24, 0xf8,
- 0x00, 0x2d, 0x01, 0xd0, 0xff, 0xf7, 0xd4, 0xfe,
- 0xb0, 0xbd, 0x00, 0x00, 0xb0, 0xb5, 0x0c, 0x4c,
- 0x05, 0x1c, 0xa0, 0x68, 0x3c, 0x00, 0x48, 0xb7,
- 0x00, 0x00, 0x00, 0x28, 0x0f, 0xd1, 0x0a, 0x48,
- 0x01, 0x7e, 0x02, 0x22, 0x11, 0x40, 0x61, 0x60,
- 0x01, 0x7e, 0x11, 0x43, 0x01, 0x76, 0x07, 0x20,
- 0x03, 0xf0, 0x49, 0xfc, 0x20, 0x60, 0x03, 0xf0,
- 0x98, 0xff, 0x03, 0xf0, 0xee, 0xff, 0xa0, 0x68,
- 0x28, 0x43, 0xa0, 0x60, 0xb0, 0xbd, 0x40, 0x7c,
- 0x01, 0x00, 0x0c, 0x80, 0x07, 0x00, 0x0a, 0x49,
- 0x38, 0xb5, 0x0a, 0x1c, 0x20, 0x32, 0x3c, 0x00,
- 0x84, 0xb7, 0x00, 0x00, 0x94, 0x79, 0x00, 0xab,
- 0x1c, 0x70, 0xd2, 0x79, 0x07, 0x4c, 0x5a, 0x70,
- 0xe2, 0x68, 0x00, 0x2a, 0x02, 0xd1, 0x06, 0x4d,
- 0x01, 0x23, 0x6b, 0x70, 0x10, 0x43, 0xe0, 0x60,
- 0x00, 0xab, 0x18, 0x88, 0xc8, 0x84, 0x38, 0xbd,
- 0x00, 0x10, 0x07, 0x00, 0x40, 0x7c, 0x01, 0x00,
- 0x00, 0x50, 0x07, 0x00, 0xb0, 0xb5, 0x05, 0x1c,
- 0x00, 0x29, 0x01, 0xd0, 0x00, 0xf0, 0x28, 0xf8,
- 0x3c, 0x00, 0xc0, 0xb7, 0x00, 0x00, 0x06, 0x4c,
- 0x60, 0x78, 0x21, 0x69, 0x08, 0x43, 0x03, 0xd1,
- 0x01, 0x21, 0x0e, 0x20, 0x06, 0xf0, 0xc5, 0xfd,
- 0x20, 0x69, 0x28, 0x43, 0x20, 0x61, 0xb0, 0xbd,
- 0x00, 0x00, 0x18, 0x63, 0x01, 0x00, 0xb0, 0xb5,
- 0x0a, 0x4c, 0x05, 0x1c, 0x22, 0x69, 0x00, 0x20,
- 0x00, 0x2a, 0x0c, 0xd1, 0x00, 0x29, 0x00, 0xd0,
- 0x04, 0xe0, 0x60, 0x78, 0x00, 0x28, 0x02, 0xd1,
- 0x04, 0xf0, 0x3c, 0x00, 0xfc, 0xb7, 0x00, 0x00,
- 0x69, 0xfb, 0x60, 0x70, 0x28, 0x1c, 0x06, 0xf0,
- 0xef, 0xfc, 0x01, 0x20, 0xb0, 0xbd, 0x00, 0x00,
- 0x18, 0x63, 0x01, 0x00, 0x10, 0xb5, 0x08, 0x4c,
- 0x60, 0x78, 0x00, 0x28, 0x0a, 0xd0, 0x06, 0xf0,
- 0xe3, 0xfc, 0x00, 0x20, 0x60, 0x70, 0x20, 0x69,
- 0x00, 0x28, 0x03, 0xd0, 0x01, 0x21, 0x0e, 0x20,
- 0x06, 0xf0, 0x96, 0xfd, 0x10, 0xbd, 0x00, 0x00,
- 0x18, 0x63, 0x01, 0x00, 0x3c, 0x00, 0x38, 0xb8,
- 0x00, 0x00, 0x09, 0x49, 0x80, 0xb5, 0x0b, 0x69,
- 0x83, 0x42, 0x04, 0xd1, 0x4a, 0x78, 0x00, 0x2a,
- 0x01, 0xd1, 0x01, 0x22, 0x00, 0xe0, 0x00, 0x22,
- 0x83, 0x43, 0x0b, 0x61, 0x00, 0x2a, 0x03, 0xd0,
- 0x00, 0x21, 0x0e, 0x20, 0x06, 0xf0, 0x7f, 0xfd,
- 0x80, 0xbd, 0x18, 0x63, 0x01, 0x00, 0x80, 0xb5,
- 0x01, 0x20, 0xf6, 0xf7, 0x56, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0x10, 0xb5, 0x04, 0x1c, 0x3c, 0x00,
- 0x74, 0xb8, 0x00, 0x00, 0x00, 0xf0, 0x04, 0xf8,
- 0x20, 0x1c, 0x00, 0xf0, 0x1f, 0xf8, 0x10, 0xbd,
- 0xb0, 0xb5, 0x0c, 0x4d, 0x04, 0x1c, 0xa8, 0x68,
- 0xa0, 0x42, 0x0f, 0xd1, 0x07, 0x20, 0x29, 0x68,
- 0x08, 0xf0, 0x8c, 0xfb, 0x68, 0x68, 0x02, 0x22,
- 0x07, 0x49, 0x00, 0x28, 0x08, 0x7e, 0x01, 0xd0,
- 0x10, 0x43, 0x00, 0xe0, 0x90, 0x43, 0x08, 0x76,
- 0x04, 0xf0, 0xc4, 0xf8, 0xa8, 0x68, 0xa0, 0x43,
- 0x3c, 0x00, 0xb0, 0xb8, 0x00, 0x00, 0xa8, 0x60,
- 0xb0, 0xbd, 0x40, 0x7c, 0x01, 0x00, 0x0c, 0x80,
- 0x07, 0x00, 0x0a, 0x49, 0x38, 0xb5, 0x0a, 0x1c,
- 0x20, 0x32, 0x94, 0x79, 0x00, 0xab, 0x1c, 0x70,
- 0xd2, 0x79, 0x07, 0x4c, 0x5a, 0x70, 0xe2, 0x68,
- 0x82, 0x42, 0x02, 0xd1, 0x06, 0x4d, 0x00, 0x23,
- 0x6b, 0x70, 0x82, 0x43, 0xe2, 0x60, 0x00, 0xab,
- 0x18, 0x88, 0xc8, 0x84, 0x38, 0xbd, 0x00, 0x10,
- 0x07, 0x00, 0x3c, 0x00, 0xec, 0xb8, 0x00, 0x00,
- 0x40, 0x7c, 0x01, 0x00, 0x00, 0x50, 0x07, 0x00,
- 0xb0, 0xb5, 0x05, 0x1c, 0x0a, 0x4c, 0x00, 0x21,
- 0x60, 0x69, 0xff, 0xf7, 0x11, 0xff, 0x04, 0x20,
- 0x01, 0xf0, 0x46, 0xf9, 0x01, 0xf0, 0x88, 0xfb,
- 0x00, 0x22, 0x04, 0x21, 0x04, 0x20, 0x01, 0xf0,
- 0x8b, 0xf8, 0x28, 0x1c, 0x01, 0xf0, 0x4a, 0xfa,
- 0x60, 0x69, 0xff, 0xf7, 0xa7, 0xff, 0xb0, 0xbd,
- 0x40, 0x7c, 0x01, 0x00, 0x3c, 0x00, 0x28, 0xb9,
- 0x00, 0x00, 0x80, 0xb5, 0x01, 0xf0, 0x77, 0xfa,
- 0x80, 0xbd, 0xb0, 0xb5, 0x0d, 0x4d, 0x01, 0x21,
- 0x28, 0x69, 0xff, 0xf7, 0xf4, 0xfe, 0xff, 0xf7,
- 0x2a, 0xfe, 0x00, 0xf0, 0x2c, 0xfb, 0x00, 0xf0,
- 0x84, 0xfa, 0x00, 0x24, 0x00, 0x22, 0x04, 0x21,
- 0x20, 0x1c, 0x01, 0xf0, 0x6c, 0xf8, 0x01, 0x34,
- 0x24, 0x06, 0x24, 0x0e, 0x04, 0x2c, 0xf5, 0xd3,
- 0x28, 0x69, 0xff, 0xf7, 0x86, 0xff, 0x3c, 0x00,
- 0x64, 0xb9, 0x00, 0x00, 0xb0, 0xbd, 0x00, 0x00,
- 0x40, 0x7c, 0x01, 0x00, 0xf8, 0xb5, 0x05, 0x1c,
- 0x0e, 0x1c, 0x07, 0x4c, 0x17, 0x1c, 0x01, 0x21,
- 0x20, 0x69, 0xff, 0xf7, 0xd3, 0xfe, 0x3a, 0x1c,
- 0x31, 0x1c, 0x28, 0x1c, 0x01, 0xf0, 0x52, 0xf8,
- 0x20, 0x69, 0xff, 0xf7, 0x71, 0xff, 0xf8, 0xbd,
- 0x40, 0x7c, 0x01, 0x00, 0xff, 0xb5, 0x89, 0xb0,
- 0x06, 0x1c, 0x16, 0x98, 0x1d, 0x1c, 0x00, 0x28,
- 0x3c, 0x00, 0xa0, 0xb9, 0x00, 0x00, 0x01, 0xd0,
- 0x29, 0x48, 0x14, 0x90, 0x28, 0x68, 0x00, 0x88,
- 0x00, 0x06, 0x80, 0x0e, 0x20, 0x28, 0x01, 0xd0,
- 0x14, 0x28, 0x17, 0xd1, 0x0a, 0xaa, 0x18, 0x24,
- 0x18, 0x21, 0x05, 0xca, 0xff, 0xf7, 0x77, 0xf9,
- 0x07, 0x1c, 0x28, 0x1c, 0x01, 0x89, 0xa1, 0x42,
- 0x02, 0xdd, 0x00, 0x68, 0x01, 0x19, 0x0b, 0xe0,
- 0xc0, 0x68, 0x64, 0x1a, 0x00, 0x28, 0xf5, 0xd1,
- 0x0f, 0x21, 0x3c, 0x00, 0xdc, 0xb9, 0x00, 0x00,
- 0x86, 0x20, 0xf5, 0xf7, 0x61, 0xfc, 0x00, 0x21,
- 0x01, 0xe0, 0x00, 0x21, 0x00, 0x27, 0x18, 0x48,
- 0x08, 0x90, 0x80, 0x79, 0x07, 0x90, 0x0c, 0x20,
- 0x16, 0x4a, 0x70, 0x43, 0x80, 0x18, 0x04, 0x79,
- 0x04, 0x91, 0x12, 0x99, 0x15, 0x98, 0x14, 0x9a,
- 0x01, 0x91, 0x03, 0x90, 0x05, 0x97, 0x00, 0x95,
- 0x0a, 0xab, 0x02, 0x92, 0x21, 0x1c, 0x30, 0x1c,
- 0x0c, 0xcb, 0xf7, 0xf7, 0x3c, 0x00, 0x18, 0xba,
- 0x00, 0x00, 0x03, 0xf9, 0x01, 0x25, 0xb5, 0x40,
- 0x0c, 0x4e, 0x08, 0x3e, 0x30, 0x78, 0x28, 0x40,
- 0x06, 0xd0, 0x20, 0x1c, 0x00, 0xf0, 0xc9, 0xfd,
- 0x30, 0x78, 0xa8, 0x43, 0x30, 0x70, 0x03, 0xe0,
- 0x20, 0x1c, 0x13, 0x99, 0x00, 0xf0, 0x43, 0xff,
- 0x07, 0xa9, 0x03, 0xc9, 0x88, 0x71, 0x0d, 0xb0,
- 0xf0, 0xbd, 0x95, 0x24, 0x00, 0x00, 0x20, 0x10,
- 0x07, 0x00, 0x74, 0x7a, 0x01, 0x00, 0x3c, 0x00,
- 0x54, 0xba, 0x00, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x0c, 0x23, 0x09, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x00, 0x79, 0x05, 0x1c, 0x00, 0xf0, 0x92, 0xfe,
- 0x28, 0x1c, 0xf7, 0xf7, 0xc7, 0xf8, 0x01, 0x20,
- 0x03, 0x4a, 0xa0, 0x40, 0x08, 0x3a, 0x11, 0x78,
- 0x81, 0x43, 0x11, 0x70, 0xb0, 0xbd, 0x00, 0x00,
- 0x74, 0x7a, 0x01, 0x00, 0x10, 0xb5, 0x05, 0x4c,
- 0x20, 0x78, 0x00, 0x28, 0x03, 0xd1, 0x1a, 0x21,
- 0x3c, 0x00, 0x90, 0xba, 0x00, 0x00, 0x86, 0x20,
- 0xf5, 0xf7, 0x07, 0xfc, 0x20, 0x78, 0x10, 0xbd,
- 0x00, 0x00, 0x18, 0x63, 0x01, 0x00, 0x01, 0x48,
- 0x40, 0x78, 0x70, 0x47, 0x00, 0x00, 0x2c, 0x63,
- 0x01, 0x00, 0x80, 0xb5, 0xf6, 0xf7, 0xd1, 0xfe,
- 0x00, 0xf0, 0x1b, 0xf9, 0x80, 0xbd, 0xfe, 0xb5,
- 0x01, 0x68, 0x05, 0x1c, 0x0c, 0x68, 0x0e, 0x1c,
- 0x21, 0x78, 0x88, 0x07, 0x71, 0xd1, 0x68, 0x69,
- 0xc2, 0x07, 0x3c, 0x00, 0xcc, 0xba, 0x00, 0x00,
- 0x6e, 0xd5, 0x80, 0x07, 0x6d, 0xd5, 0xe8, 0x7a,
- 0xc2, 0x07, 0x08, 0x07, 0x09, 0x09, 0x02, 0x91,
- 0x45, 0x49, 0x80, 0x0f, 0xd2, 0x0f, 0x00, 0x28,
- 0x4f, 0x68, 0x05, 0xd0, 0x01, 0x28, 0x09, 0xd0,
- 0x02, 0x28, 0x21, 0xd0, 0x03, 0x28, 0x5b, 0xd1,
- 0xff, 0x23, 0x20, 0x1c, 0xa9, 0x7a, 0xf4, 0xf7,
- 0x74, 0xfc, 0x55, 0xe0, 0x02, 0x98, 0x0b, 0x28,
- 0x0a, 0xd0, 0x0c, 0x28, 0x3c, 0x00, 0x08, 0xbb,
- 0x00, 0x00, 0x0f, 0xd0, 0x0d, 0x28, 0x4e, 0xd1,
- 0x39, 0x4f, 0xf8, 0x68, 0xf4, 0xf7, 0x61, 0xfc,
- 0x00, 0x20, 0xc0, 0x43, 0x5a, 0xe0, 0x35, 0x4f,
- 0xa9, 0x7a, 0xbb, 0x68, 0x20, 0x1c, 0xf4, 0xf7,
- 0x5b, 0xfc, 0x40, 0xe0, 0x32, 0x4f, 0x38, 0x69,
- 0xf4, 0xf7, 0x53, 0xfc, 0x3b, 0xe0, 0x00, 0x21,
- 0x01, 0x91, 0x02, 0x99, 0x00, 0x20, 0xff, 0x23,
- 0x09, 0x07, 0x01, 0xd4, 0x01, 0x20, 0x3c, 0x00,
- 0x44, 0xbb, 0x00, 0x00, 0x13, 0xe0, 0x31, 0x89,
- 0x19, 0x29, 0x01, 0xd3, 0x26, 0x7e, 0x07, 0xe0,
- 0x15, 0x29, 0x04, 0xd3, 0x18, 0x26, 0x71, 0x1a,
- 0x49, 0x19, 0x0e, 0x7b, 0x00, 0xe0, 0x00, 0x26,
- 0xb1, 0x06, 0x02, 0xd4, 0x01, 0x20, 0x73, 0x07,
- 0x5b, 0x0f, 0x01, 0x21, 0x01, 0x91, 0x00, 0x28,
- 0x03, 0xd0, 0xa9, 0x7a, 0x20, 0x1c, 0xf4, 0xf7,
- 0x36, 0xfc, 0x01, 0x99, 0x01, 0x29, 0x15, 0xd1,
- 0x3c, 0x00, 0x80, 0xbb, 0x00, 0x00, 0xf0, 0x06,
- 0xc6, 0x0f, 0x20, 0x88, 0x1b, 0x4f, 0xe4, 0x8a,
- 0xf9, 0x6b, 0x00, 0x05, 0xc0, 0x0f, 0x00, 0x29,
- 0x1a, 0xd0, 0x4b, 0x1c, 0x18, 0xd0, 0x00, 0x2e,
- 0x0a, 0xd0, 0x00, 0x28, 0x08, 0xd0, 0x38, 0x88,
- 0x84, 0x42, 0x13, 0xd0, 0x02, 0x98, 0x0c, 0x28,
- 0x01, 0xe0, 0x1d, 0xe0, 0x12, 0xe0, 0x0d, 0xd0,
- 0x08, 0x1c, 0x01, 0xf0, 0x76, 0xf9, 0x00, 0x28,
- 0x03, 0xd1, 0x3c, 0x00, 0xbc, 0xbb, 0x00, 0x00,
- 0x00, 0xf0, 0xa6, 0xfa, 0xf4, 0xf7, 0x0a, 0xfc,
- 0x00, 0x20, 0xc0, 0x43, 0xf8, 0x63, 0x00, 0x2e,
- 0x0d, 0xd0, 0x3c, 0x80, 0x00, 0x20, 0xf8, 0x63,
- 0x09, 0xe0, 0x20, 0x88, 0x00, 0x06, 0x80, 0x0e,
- 0x20, 0x28, 0x04, 0xd1, 0x04, 0x4f, 0x20, 0x1c,
- 0xb9, 0x6a, 0xf4, 0xf7, 0xf8, 0xfb, 0x29, 0x1c,
- 0x02, 0x48, 0xfb, 0xf7, 0xef, 0xff, 0xfe, 0xbd,
- 0x28, 0x7a, 0x01, 0x00, 0x3c, 0x00, 0xf8, 0xbb,
- 0x00, 0x00, 0xa5, 0x9a, 0x00, 0x00, 0x03, 0x48,
- 0x80, 0xb5, 0x00, 0x78, 0x00, 0x21, 0x00, 0xf0,
- 0xfc, 0xfb, 0x80, 0xbd, 0x00, 0x00, 0x18, 0x63,
- 0x01, 0x00, 0x04, 0x4b, 0x05, 0x49, 0x00, 0x28,
- 0x1a, 0x68, 0x00, 0xd0, 0x01, 0x1c, 0x10, 0x1c,
- 0x19, 0x60, 0x70, 0x47, 0x00, 0x00, 0xd4, 0x79,
- 0x01, 0x00, 0x95, 0x75, 0x00, 0x00, 0x05, 0x48,
- 0x80, 0xb5, 0x00, 0x7f, 0x24, 0x23, 0x3c, 0x00,
- 0x34, 0xbc, 0x00, 0x00, 0x04, 0x49, 0x58, 0x43,
- 0x40, 0x18, 0xc0, 0x69, 0xf4, 0xf7, 0xcc, 0xfb,
- 0x80, 0xbd, 0x00, 0x00, 0xd4, 0x79, 0x01, 0x00,
- 0x94, 0x46, 0x01, 0x00, 0x02, 0x1c, 0x06, 0x48,
- 0x80, 0xb5, 0x81, 0x62, 0x82, 0x60, 0x00, 0x7f,
- 0x24, 0x23, 0x04, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x80, 0x69, 0xf4, 0xf7, 0xb9, 0xfb, 0x80, 0xbd,
- 0xd4, 0x79, 0x01, 0x00, 0x94, 0x46, 0x01, 0x00,
- 0x3c, 0x00, 0x70, 0xbc, 0x00, 0x00, 0x80, 0xb5,
- 0x00, 0x20, 0x00, 0xf0, 0x3c, 0xfb, 0x00, 0x20,
- 0x00, 0xf0, 0x6d, 0xfa, 0x00, 0xf0, 0x65, 0xfa,
- 0x04, 0x49, 0xc8, 0x6a, 0x01, 0x30, 0xc8, 0x62,
- 0x08, 0x1f, 0x00, 0x88, 0x07, 0xf0, 0xc1, 0xf8,
- 0x80, 0xbd, 0xd4, 0x79, 0x01, 0x00, 0x06, 0x48,
- 0x80, 0xb5, 0x00, 0x21, 0x01, 0x77, 0xc1, 0x6a,
- 0x01, 0x31, 0xc1, 0x62, 0x04, 0x38, 0x00, 0x88,
- 0x07, 0xf0, 0x3c, 0x00, 0xac, 0xbc, 0x00, 0x00,
- 0xb3, 0xf8, 0x03, 0xf0, 0xd1, 0xf9, 0x80, 0xbd,
- 0xd4, 0x79, 0x01, 0x00, 0x80, 0xb5, 0x05, 0xf0,
- 0xe9, 0xfa, 0x80, 0xbd, 0x80, 0xb5, 0x00, 0x28,
- 0x03, 0xd1, 0x01, 0x20, 0x04, 0xf0, 0x22, 0xfa,
- 0x80, 0xbd, 0x01, 0x20, 0x03, 0xf0, 0xe6, 0xfb,
- 0x80, 0xbd, 0x00, 0x00, 0x03, 0x49, 0x01, 0x20,
- 0x49, 0x78, 0x00, 0x29, 0x00, 0xd0, 0x00, 0x20,
- 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xbc,
- 0x00, 0x00, 0x2c, 0x63, 0x01, 0x00, 0x70, 0xb5,
- 0x13, 0x4d, 0x28, 0x78, 0x00, 0x28, 0x20, 0xd1,
- 0x01, 0x21, 0x2e, 0x1c, 0x70, 0x68, 0xff, 0xf7,
- 0x12, 0xfd, 0x00, 0x21, 0x07, 0x20, 0x06, 0xf0,
- 0x2a, 0xfb, 0x0d, 0x48, 0x00, 0x24, 0x04, 0x71,
- 0x04, 0xf0, 0xed, 0xf8, 0x06, 0xf0, 0xd5, 0xf9,
- 0x01, 0x20, 0x28, 0x70, 0x0a, 0x48, 0x04, 0x60,
- 0x44, 0x60, 0xf6, 0xf7, 0x4c, 0xfd, 0x3c, 0x00,
- 0x24, 0xbd, 0x00, 0x00, 0xf7, 0xf7, 0x5e, 0xf8,
- 0xff, 0xf7, 0xa2, 0xff, 0x00, 0xf0, 0xa8, 0xfd,
- 0x05, 0x48, 0x71, 0x68, 0x03, 0xf0, 0x20, 0xfb,
- 0x01, 0x20, 0x70, 0xbd, 0x2c, 0x63, 0x01, 0x00,
- 0x50, 0x00, 0x07, 0x00, 0x80, 0x00, 0x07, 0x00,
- 0xc4, 0x60, 0x01, 0x00, 0xb0, 0xb5, 0x1e, 0x4c,
- 0x20, 0x78, 0x01, 0x28, 0x35, 0xd1, 0x25, 0x1c,
- 0x69, 0x68, 0x1c, 0x48, 0x03, 0xf0, 0x20, 0xfb,
- 0x3c, 0x00, 0x60, 0xbd, 0x00, 0x00, 0x04, 0xf0,
- 0xf0, 0xf8, 0x1a, 0x48, 0x01, 0x68, 0x49, 0x08,
- 0x49, 0x00, 0x01, 0x60, 0x01, 0x68, 0x01, 0x22,
- 0x11, 0x43, 0x01, 0x60, 0x00, 0xf0, 0x2b, 0xfe,
- 0x00, 0xf0, 0x1b, 0xfc, 0x06, 0xf0, 0x99, 0xf8,
- 0xf6, 0xf7, 0x29, 0xfe, 0xf6, 0xf7, 0x2d, 0xfc,
- 0x00, 0x20, 0x20, 0x70, 0xff, 0xf7, 0x83, 0xff,
- 0x00, 0xf0, 0x8b, 0xfd, 0x0f, 0x48, 0x81, 0x78,
- 0x08, 0x22, 0x3c, 0x00, 0x9c, 0xbd, 0x00, 0x00,
- 0x91, 0x43, 0x81, 0x70, 0x81, 0x78, 0x11, 0x43,
- 0x81, 0x70, 0x0c, 0x49, 0x10, 0x20, 0x08, 0x71,
- 0x68, 0x68, 0xff, 0xf7, 0x5f, 0xfd, 0xf7, 0xf7,
- 0x39, 0xf8, 0xf6, 0xf7, 0x4d, 0xfd, 0x01, 0x21,
- 0x07, 0x20, 0x06, 0xf0, 0xcd, 0xfa, 0x01, 0x20,
- 0xb0, 0xbd, 0x00, 0x00, 0x2c, 0x63, 0x01, 0x00,
- 0xc4, 0x60, 0x01, 0x00, 0xf0, 0x00, 0x07, 0x00,
- 0x00, 0x00, 0x07, 0x00, 0x3c, 0x00, 0xd8, 0xbd,
- 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x03, 0x49,
- 0x01, 0x20, 0x89, 0x7a, 0x01, 0x29, 0x00, 0xd0,
- 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x14, 0x7a,
- 0x01, 0x00, 0xb0, 0xb5, 0x15, 0x4d, 0x04, 0x1c,
- 0x28, 0x7a, 0x00, 0x28, 0x20, 0xd1, 0xf9, 0xf7,
- 0x00, 0xfc, 0x02, 0x28, 0x1c, 0xd1, 0x01, 0x20,
- 0x28, 0x72, 0xe8, 0x68, 0x00, 0x28, 0x10, 0xd0,
- 0x20, 0x68, 0x29, 0x68, 0x08, 0x60, 0x3c, 0x00,
- 0x14, 0xbe, 0x00, 0x00, 0x69, 0x68, 0x0d, 0x48,
- 0x03, 0xf0, 0xc2, 0xfa, 0x01, 0x21, 0x68, 0x68,
- 0xff, 0xf7, 0xc8, 0xfc, 0x00, 0x22, 0x24, 0x20,
- 0x61, 0x68, 0x07, 0xf0, 0xcf, 0xfb, 0xb0, 0xbd,
- 0x00, 0x20, 0x28, 0x72, 0x21, 0x68, 0x01, 0x20,
- 0xf4, 0xf7, 0xcf, 0xfa, 0xb0, 0xbd, 0x00, 0x20,
- 0x21, 0x68, 0xf4, 0xf7, 0xca, 0xfa, 0xb0, 0xbd,
- 0x04, 0x7a, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x3c, 0x00, 0x50, 0xbe, 0x00, 0x00, 0x04, 0x48,
- 0x80, 0xb5, 0x00, 0x7a, 0x01, 0x28, 0x02, 0xd1,
- 0x00, 0x20, 0x02, 0xf0, 0xf0, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0x04, 0x7a, 0x01, 0x00, 0x80, 0xb5,
- 0x01, 0x28, 0x07, 0xd0, 0x80, 0x28, 0x09, 0xd1,
- 0x07, 0x48, 0x00, 0x7a, 0x00, 0x28, 0x04, 0xd0,
- 0x01, 0x20, 0x00, 0xe0, 0x00, 0x20, 0x02, 0xf0,
- 0xde, 0xfe, 0x80, 0xbd, 0x0e, 0x21, 0x24, 0x20,
- 0xf5, 0xf7, 0x3c, 0x00, 0x8c, 0xbe, 0x00, 0x00,
- 0x0b, 0xfa, 0x80, 0xbd, 0x04, 0x7a, 0x01, 0x00,
- 0xf8, 0xb5, 0x3a, 0x4e, 0x05, 0x1c, 0xb0, 0x7a,
- 0x00, 0x28, 0x69, 0xd1, 0xf9, 0xf7, 0xae, 0xfb,
- 0x02, 0x28, 0x65, 0xd1, 0x36, 0x48, 0x00, 0x68,
- 0x00, 0x28, 0x61, 0xd0, 0x35, 0x48, 0x71, 0x68,
- 0x03, 0xf0, 0x74, 0xfa, 0x01, 0x21, 0x70, 0x68,
- 0xff, 0xf7, 0x7a, 0xfc, 0x6c, 0x20, 0xf5, 0xf7,
- 0xb9, 0xfc, 0x04, 0x1c, 0x3c, 0x00, 0xc8, 0xbe,
- 0x00, 0x00, 0x6c, 0x21, 0xf4, 0xf7, 0xe7, 0xfa,
- 0x30, 0x68, 0x2c, 0x22, 0x04, 0x60, 0x29, 0x68,
- 0x81, 0x60, 0x69, 0x68, 0xc1, 0x60, 0x00, 0x21,
- 0x11, 0x54, 0x81, 0x62, 0xa9, 0x68, 0x00, 0x29,
- 0x02, 0xd0, 0xe9, 0x68, 0x01, 0x61, 0x05, 0xe0,
- 0x06, 0xf0, 0x5d, 0xff, 0x69, 0x68, 0x40, 0x18,
- 0x31, 0x68, 0x08, 0x61, 0x70, 0x68, 0xff, 0xf7,
- 0x14, 0xfd, 0x69, 0x21, 0x08, 0x55, 0x3c, 0x00,
- 0x04, 0xbf, 0x00, 0x00, 0x00, 0x20, 0xf9, 0xf7,
- 0x09, 0xfb, 0x01, 0x27, 0x3b, 0x1c, 0x06, 0x1c,
- 0x22, 0x1c, 0x24, 0x32, 0x00, 0x21, 0xf9, 0xf7,
- 0x79, 0xfb, 0x1c, 0x48, 0x03, 0x21, 0x00, 0x88,
- 0x89, 0x03, 0x08, 0x43, 0x21, 0x1c, 0x40, 0x31,
- 0x00, 0x91, 0x48, 0x83, 0x18, 0x48, 0x10, 0x21,
- 0x60, 0x60, 0x18, 0x48, 0xa0, 0x60, 0xa7, 0x63,
- 0x67, 0x63, 0x00, 0x20, 0xf5, 0xf7, 0x4c, 0xfb,
- 0x3c, 0x00, 0x40, 0xbf, 0x00, 0x00, 0xe0, 0x60,
- 0x02, 0x89, 0x00, 0x99, 0xca, 0x83, 0x07, 0x68,
- 0x31, 0x1c, 0x38, 0x1d, 0x27, 0x61, 0xfe, 0xf7,
- 0x8e, 0xfe, 0x38, 0x1c, 0x0a, 0x30, 0x0f, 0x49,
- 0xfe, 0xf7, 0x89, 0xfe, 0xa4, 0x20, 0x38, 0x80,
- 0x00, 0x20, 0x04, 0xf0, 0xde, 0xfb, 0x00, 0x22,
- 0x1f, 0x20, 0x69, 0x68, 0x07, 0xf0, 0x2d, 0xfb,
- 0xf8, 0xbd, 0xff, 0xe7, 0x00, 0x20, 0x29, 0x68,
- 0xf4, 0xf7, 0x3c, 0x00, 0x7c, 0xbf, 0x00, 0x00,
- 0x2e, 0xfa, 0xf8, 0xe7, 0x14, 0x7a, 0x01, 0x00,
- 0x80, 0x5a, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0xfa, 0x60, 0x01, 0x00, 0x99, 0xec, 0x00, 0x00,
- 0x15, 0xed, 0x00, 0x00, 0x12, 0x61, 0x01, 0x00,
- 0x06, 0x48, 0x80, 0xb5, 0x81, 0x7a, 0x00, 0x29,
- 0x07, 0xd0, 0x00, 0x68, 0x04, 0x22, 0x20, 0x30,
- 0x01, 0x7b, 0x11, 0x43, 0x01, 0x73, 0x02, 0xf0,
- 0x6b, 0xfd, 0x80, 0xbd, 0x3c, 0x00, 0xb8, 0xbf,
- 0x00, 0x00, 0x14, 0x7a, 0x01, 0x00, 0x10, 0xb5,
- 0x04, 0x4c, 0xa0, 0x7a, 0x01, 0x28, 0x03, 0xd1,
- 0x06, 0xf0, 0xf1, 0xfe, 0x21, 0x68, 0x88, 0x61,
- 0x10, 0xbd, 0x14, 0x7a, 0x01, 0x00, 0x03, 0x1c,
- 0x08, 0x1c, 0x1f, 0x49, 0x70, 0xb5, 0x0a, 0x68,
- 0x01, 0x2b, 0x1c, 0xd0, 0x80, 0x2b, 0x05, 0xd0,
- 0x83, 0x2b, 0x30, 0xd1, 0x88, 0x7a, 0x00, 0x28,
- 0x14, 0xd0, 0x29, 0xe0, 0x53, 0x69, 0x3c, 0x00,
- 0xf4, 0xbf, 0x00, 0x00, 0x00, 0x2b, 0x0e, 0xd0,
- 0x94, 0x69, 0xd5, 0x69, 0x2e, 0x1b, 0x0c, 0x69,
- 0x5d, 0x1b, 0x36, 0x1b, 0xb6, 0x10, 0xa4, 0x19,
- 0x0c, 0x61, 0xcc, 0x68, 0x2d, 0x1b, 0xad, 0x10,
- 0x64, 0x19, 0xcc, 0x60, 0x93, 0x61, 0x02, 0xf0,
- 0x81, 0xfd, 0x70, 0xbd, 0x02, 0x28, 0x12, 0xd1,
- 0x90, 0x6a, 0x0c, 0x1c, 0x00, 0x28, 0xf8, 0xd0,
- 0x07, 0xf0, 0x0e, 0xfa, 0xa0, 0x7a, 0x01, 0x28,
- 0x3c, 0x00, 0x30, 0xc0, 0x00, 0x00, 0xf3, 0xd1,
- 0x20, 0x68, 0x81, 0x6a, 0x00, 0x29, 0xef, 0xd1,
- 0x20, 0x30, 0x01, 0x7b, 0x08, 0x22, 0x11, 0x43,
- 0x01, 0x73, 0x70, 0xbd, 0x02, 0xf0, 0x21, 0xfd,
- 0x70, 0xbd, 0x0e, 0x21, 0x1f, 0x20, 0xf5, 0xf7,
- 0x28, 0xf9, 0x70, 0xbd, 0x00, 0x00, 0x14, 0x7a,
- 0x01, 0x00, 0x02, 0x49, 0x0c, 0x31, 0x03, 0xc9,
- 0x40, 0x18, 0x70, 0x47, 0x00, 0x00, 0x14, 0x7a,
- 0x01, 0x00, 0x3c, 0x00, 0x6c, 0xc0, 0x00, 0x00,
- 0x05, 0x48, 0x80, 0xb5, 0x00, 0x68, 0x04, 0x22,
- 0x20, 0x30, 0x01, 0x7b, 0x11, 0x43, 0x01, 0x73,
- 0x07, 0xf0, 0xe4, 0xf9, 0x80, 0xbd, 0x00, 0x00,
- 0x14, 0x7a, 0x01, 0x00, 0x70, 0xb5, 0x16, 0x4c,
- 0x0e, 0x1c, 0xa1, 0x7a, 0x00, 0x29, 0x1c, 0xd0,
- 0x21, 0x68, 0x08, 0x61, 0x07, 0xf0, 0x32, 0xfa,
- 0x00, 0x28, 0x17, 0xd0, 0x20, 0x68, 0x00, 0x25,
- 0x05, 0x62, 0x00, 0x22, 0x3c, 0x00, 0xa8, 0xc0,
- 0x00, 0x00, 0x83, 0x21, 0x1f, 0x20, 0x07, 0xf0,
- 0x94, 0xfa, 0x60, 0x68, 0xff, 0xf7, 0x03, 0xfc,
- 0x21, 0x68, 0x04, 0x22, 0x20, 0x31, 0x08, 0x7b,
- 0x2b, 0x1c, 0x90, 0x43, 0x08, 0x73, 0x31, 0x1c,
- 0x00, 0x22, 0x1f, 0x20, 0x07, 0xf0, 0x61, 0xfb,
- 0x70, 0xbd, 0x20, 0x68, 0x08, 0x22, 0x20, 0x30,
- 0x01, 0x7b, 0x11, 0x43, 0x01, 0x73, 0x02, 0xf0,
- 0xd6, 0xfc, 0x70, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xc0, 0x00, 0x00, 0x14, 0x7a, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0xf0, 0x77, 0xfc, 0x00, 0xf0,
- 0x6f, 0xfc, 0x00, 0xf0, 0x29, 0xff, 0x00, 0xf0,
- 0x5d, 0xfa, 0x00, 0xf0, 0xc5, 0xf8, 0x00, 0xf0,
- 0x85, 0xff, 0x80, 0xbd, 0x80, 0xb5, 0xfa, 0xf7,
- 0x85, 0xfa, 0x80, 0xbd, 0x01, 0x48, 0xc0, 0x68,
- 0x70, 0x47, 0x00, 0x00, 0x28, 0x7a, 0x01, 0x00,
- 0x03, 0x49, 0x00, 0x28, 0x00, 0xd0, 0x01, 0x1c,
- 0x3c, 0x00, 0x20, 0xc1, 0x00, 0x00, 0x02, 0x48,
- 0xc1, 0x60, 0x70, 0x47, 0x00, 0x00, 0x81, 0x75,
- 0x00, 0x00, 0x28, 0x7a, 0x01, 0x00, 0x01, 0x48,
- 0x02, 0x49, 0xc8, 0x60, 0x70, 0x47, 0x81, 0x75,
- 0x00, 0x00, 0x28, 0x7a, 0x01, 0x00, 0x01, 0x49,
- 0x88, 0x61, 0x70, 0x47, 0x00, 0x00, 0x28, 0x7a,
- 0x01, 0x00, 0x01, 0x49, 0x00, 0x20, 0x88, 0x61,
- 0x70, 0x47, 0x28, 0x7a, 0x01, 0x00, 0x03, 0x49,
- 0x00, 0x28, 0x3c, 0x00, 0x5c, 0xc1, 0x00, 0x00,
- 0x00, 0xd0, 0x01, 0x1c, 0x02, 0x48, 0xc1, 0x61,
- 0x70, 0x47, 0x00, 0x00, 0x89, 0x75, 0x00, 0x00,
- 0x28, 0x7a, 0x01, 0x00, 0x03, 0x49, 0x00, 0x28,
- 0x00, 0xd0, 0x01, 0x1c, 0x02, 0x48, 0x81, 0x62,
- 0x70, 0x47, 0x00, 0x00, 0x8d, 0x75, 0x00, 0x00,
- 0x28, 0x7a, 0x01, 0x00, 0x03, 0x49, 0x00, 0x28,
- 0x00, 0xd0, 0x01, 0x1c, 0x02, 0x48, 0x01, 0x62,
- 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xc1,
- 0x00, 0x00, 0x91, 0x75, 0x00, 0x00, 0x28, 0x7a,
- 0x01, 0x00, 0x03, 0x49, 0x00, 0x28, 0x00, 0xd0,
- 0x01, 0x1c, 0x02, 0x48, 0x01, 0x61, 0x70, 0x47,
- 0x00, 0x00, 0x99, 0x75, 0x00, 0x00, 0x28, 0x7a,
- 0x01, 0x00, 0x01, 0x48, 0x02, 0x49, 0x08, 0x61,
- 0x70, 0x47, 0x81, 0x75, 0x00, 0x00, 0x28, 0x7a,
- 0x01, 0x00, 0x02, 0x1c, 0x08, 0x1c, 0x80, 0x2a,
- 0x80, 0xb5, 0x02, 0xd1, 0x00, 0xf0, 0x3c, 0x00,
- 0xd4, 0xc1, 0x00, 0x00, 0x07, 0xf8, 0x80, 0xbd,
- 0x1e, 0x21, 0x21, 0x20, 0xf5, 0xf7, 0x62, 0xf8,
- 0x80, 0xbd, 0x00, 0x00, 0xb0, 0xb5, 0x10, 0x4d,
- 0x04, 0x1c, 0xa8, 0x6b, 0x01, 0x30, 0xa8, 0x63,
- 0x69, 0x6b, 0x09, 0x1a, 0x28, 0x1c, 0x00, 0x6b,
- 0x0c, 0x29, 0x03, 0xd9, 0x00, 0x21, 0xff, 0xf7,
- 0x91, 0xfa, 0x03, 0xe0, 0x08, 0x29, 0x01, 0xd1,
- 0xff, 0xf7, 0x32, 0xfb, 0x20, 0x1c, 0x00, 0xf0,
- 0x3c, 0x00, 0x10, 0xc2, 0x00, 0x00, 0x4d, 0xf9,
- 0x60, 0x69, 0x40, 0x07, 0x01, 0xd5, 0x03, 0xf0,
- 0x0c, 0xfc, 0x20, 0x1c, 0xe9, 0x6a, 0xf4, 0xf7,
- 0xdb, 0xf8, 0xb0, 0xbd, 0x00, 0x00, 0x28, 0x7a,
- 0x01, 0x00, 0x03, 0x49, 0x00, 0x28, 0x00, 0xd0,
- 0x01, 0x1c, 0x02, 0x48, 0x41, 0x62, 0x70, 0x47,
- 0x00, 0x00, 0xb5, 0x75, 0x00, 0x00, 0x28, 0x7a,
- 0x01, 0x00, 0x03, 0x49, 0x01, 0x20, 0x09, 0x6c,
- 0x00, 0x29, 0x3c, 0x00, 0x4c, 0xc2, 0x00, 0x00,
- 0x00, 0xd1, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00,
- 0x28, 0x7a, 0x01, 0x00, 0x10, 0xb5, 0x07, 0x4c,
- 0xe1, 0x6b, 0x00, 0x29, 0x01, 0xd1, 0xe0, 0x63,
- 0x04, 0xe0, 0x81, 0x42, 0x02, 0xd0, 0x00, 0x20,
- 0xc0, 0x43, 0xf8, 0xe7, 0x06, 0xf0, 0x9c, 0xfd,
- 0x20, 0x64, 0x10, 0xbd, 0x28, 0x7a, 0x01, 0x00,
- 0x01, 0x48, 0x00, 0x6c, 0x70, 0x47, 0x00, 0x00,
- 0x28, 0x7a, 0x01, 0x00, 0x3c, 0x00, 0x88, 0xc2,
- 0x00, 0x00, 0x05, 0x49, 0x80, 0xb5, 0x00, 0x20,
- 0x48, 0x63, 0x88, 0x63, 0xff, 0x21, 0x09, 0x31,
- 0x15, 0x22, 0x10, 0x20, 0xf6, 0xf7, 0xfb, 0xf9,
- 0x80, 0xbd, 0x28, 0x7a, 0x01, 0x00, 0x03, 0x49,
- 0x00, 0x28, 0x00, 0xd0, 0x01, 0x1c, 0x02, 0x48,
- 0x81, 0x60, 0x70, 0x47, 0x00, 0x00, 0xc1, 0x75,
- 0x00, 0x00, 0x28, 0x7a, 0x01, 0x00, 0x03, 0x49,
- 0x00, 0x28, 0x00, 0xd0, 0x01, 0x1c, 0x3c, 0x00,
- 0xc4, 0xc2, 0x00, 0x00, 0x02, 0x48, 0xc1, 0x62,
- 0x70, 0x47, 0x00, 0x00, 0xc5, 0x75, 0x00, 0x00,
- 0x28, 0x7a, 0x01, 0x00, 0x04, 0x4b, 0x05, 0x49,
- 0x00, 0x28, 0x5a, 0x68, 0x00, 0xd0, 0x01, 0x1c,
- 0x10, 0x1c, 0x59, 0x60, 0x70, 0x47, 0x00, 0x00,
- 0x28, 0x7a, 0x01, 0x00, 0xc9, 0x75, 0x00, 0x00,
- 0x03, 0x49, 0x00, 0x28, 0x00, 0xd0, 0x01, 0x1c,
- 0x02, 0x48, 0x41, 0x61, 0x70, 0x47, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xc3, 0x00, 0x00, 0xcd, 0x75,
- 0x00, 0x00, 0x28, 0x7a, 0x01, 0x00, 0x0f, 0x4b,
- 0x10, 0xb5, 0xd9, 0x68, 0x00, 0x29, 0x19, 0xd0,
- 0x0e, 0x4c, 0x00, 0x21, 0xca, 0x00, 0x12, 0x19,
- 0x40, 0x3a, 0xd2, 0x6b, 0x82, 0x42, 0x02, 0xda,
- 0x01, 0x31, 0x03, 0x29, 0xf6, 0xd3, 0x48, 0x1c,
- 0x1a, 0x78, 0x00, 0x06, 0x00, 0x0e, 0x90, 0x42,
- 0x08, 0xd0, 0x18, 0x70, 0x08, 0x06, 0x00, 0x0e,
- 0x04, 0x1c, 0x3c, 0x00, 0x3c, 0xc3, 0x00, 0x00,
- 0xf6, 0xf7, 0xba, 0xfa, 0x20, 0x1c, 0x03, 0xf0,
- 0x1b, 0xfd, 0x10, 0xbd, 0x18, 0x63, 0x01, 0x00,
- 0x3c, 0x42, 0x01, 0x00, 0x10, 0xb5, 0x14, 0x4c,
- 0xe1, 0x68, 0x00, 0x29, 0x22, 0xd0, 0x21, 0x78,
- 0x12, 0x4b, 0xca, 0x00, 0xd2, 0x18, 0x40, 0x3a,
- 0xd3, 0x6b, 0x83, 0x42, 0x02, 0xda, 0x48, 0x1c,
- 0x20, 0x70, 0x0b, 0xe0, 0x92, 0x6b, 0x82, 0x42,
- 0x14, 0xdd, 0xff, 0x31, 0x3c, 0x00, 0x78, 0xc3,
- 0x00, 0x00, 0x08, 0x06, 0x00, 0x0e, 0x20, 0x70,
- 0x03, 0xd1, 0x19, 0x21, 0x86, 0x20, 0xf4, 0xf7,
- 0x8e, 0xff, 0x20, 0x78, 0xff, 0x30, 0x00, 0x06,
- 0x00, 0x0e, 0xf6, 0xf7, 0x90, 0xfa, 0x20, 0x78,
- 0xff, 0x30, 0x00, 0x06, 0x00, 0x0e, 0x03, 0xf0,
- 0xee, 0xfc, 0x10, 0xbd, 0x00, 0x00, 0x18, 0x63,
- 0x01, 0x00, 0x3c, 0x42, 0x01, 0x00, 0x09, 0x48,
- 0x00, 0x21, 0x01, 0x81, 0x41, 0x81, 0x3c, 0x00,
- 0xb4, 0xc3, 0x00, 0x00, 0x81, 0x81, 0xc1, 0x81,
- 0x07, 0x4a, 0x02, 0x80, 0x01, 0x23, 0xdb, 0x02,
- 0x43, 0x80, 0x82, 0x80, 0xc2, 0x80, 0x41, 0x76,
- 0x31, 0x21, 0x81, 0x76, 0x01, 0x21, 0x01, 0x76,
- 0x70, 0x47, 0x00, 0x00, 0x30, 0x80, 0x07, 0x00,
- 0xff, 0xff, 0x00, 0x00, 0x80, 0xb5, 0x01, 0x20,
- 0xf6, 0xf7, 0xf8, 0xf8, 0x01, 0x20, 0xf6, 0xf7,
- 0xdb, 0xfc, 0x01, 0x20, 0xf6, 0xf7, 0x5a, 0xfa,
- 0x3c, 0x00, 0xf0, 0xc3, 0x00, 0x00, 0x01, 0x20,
- 0x00, 0xf0, 0xf1, 0xfd, 0x01, 0x20, 0xf7, 0xf7,
- 0xc6, 0xfb, 0x80, 0xbd, 0x00, 0x00, 0x10, 0xb5,
- 0x11, 0x4c, 0x00, 0x29, 0x07, 0xd1, 0x00, 0x28,
- 0x02, 0xd1, 0x01, 0x20, 0xe0, 0x60, 0x06, 0xe0,
- 0x00, 0x21, 0xe1, 0x60, 0x03, 0xe0, 0x01, 0x29,
- 0x07, 0xd1, 0x00, 0x28, 0x01, 0xd0, 0x20, 0x70,
- 0x03, 0xe0, 0x18, 0x21, 0x86, 0x20, 0xf4, 0xf7,
- 0x3c, 0xff, 0x3c, 0x00, 0x2c, 0xc4, 0x00, 0x00,
- 0x20, 0x78, 0xff, 0x30, 0x00, 0x06, 0x00, 0x0e,
- 0xf6, 0xf7, 0x3e, 0xfa, 0x20, 0x78, 0xff, 0x30,
- 0x00, 0x06, 0x00, 0x0e, 0x03, 0xf0, 0x9c, 0xfc,
- 0x10, 0xbd, 0x00, 0x00, 0x18, 0x63, 0x01, 0x00,
- 0x05, 0x49, 0x80, 0xb5, 0x09, 0x68, 0x88, 0x42,
- 0x05, 0xd0, 0xfe, 0xf7, 0xff, 0xfb, 0x00, 0xf0,
- 0x87, 0xfa, 0xff, 0xf7, 0x2b, 0xfc, 0x80, 0xbd,
- 0xa8, 0x69, 0x01, 0x00, 0x3c, 0x00, 0x68, 0xc4,
- 0x00, 0x00, 0x01, 0x49, 0x48, 0x70, 0x70, 0x47,
- 0x00, 0x00, 0x2c, 0x63, 0x01, 0x00, 0x01, 0x49,
- 0xc8, 0x60, 0x70, 0x47, 0x00, 0x00, 0x4c, 0x7b,
- 0x01, 0x00, 0x03, 0x49, 0x01, 0x20, 0x09, 0x78,
- 0x00, 0x29, 0x00, 0xd0, 0x00, 0x20, 0x70, 0x47,
- 0x00, 0x00, 0x2c, 0x63, 0x01, 0x00, 0x04, 0x4a,
- 0x00, 0x28, 0x02, 0xd0, 0x90, 0x69, 0x01, 0x30,
- 0x90, 0x61, 0xd0, 0x69, 0x40, 0x18, 0x3c, 0x00,
- 0xa4, 0xc4, 0x00, 0x00, 0xd0, 0x61, 0x70, 0x47,
- 0x90, 0x5c, 0x01, 0x00, 0xfe, 0xb5, 0x04, 0x1c,
- 0x00, 0x68, 0x05, 0x68, 0x28, 0x1c, 0xfe, 0xf7,
- 0x27, 0xff, 0x07, 0x1c, 0x60, 0x69, 0x15, 0x4e,
- 0xc0, 0x07, 0xc0, 0x0f, 0x21, 0xd0, 0x01, 0xaa,
- 0x02, 0xa9, 0x28, 0x1c, 0xfe, 0xf7, 0x12, 0xff,
- 0x38, 0x78, 0xc0, 0x07, 0x0c, 0xd4, 0x60, 0x69,
- 0x80, 0x07, 0x08, 0xd5, 0x00, 0xab, 0x18, 0x7a,
- 0x3c, 0x00, 0xe0, 0xc4, 0x00, 0x00, 0x00, 0x28,
- 0x01, 0xd0, 0x02, 0x28, 0x02, 0xd1, 0x70, 0x6a,
- 0x01, 0x30, 0x70, 0x62, 0xfe, 0xbd, 0x00, 0xab,
- 0x18, 0x7a, 0x00, 0x28, 0x01, 0xd0, 0x02, 0x28,
- 0xf8, 0xd1, 0x70, 0x6a, 0x01, 0x30, 0x70, 0x62,
- 0xb0, 0x6a, 0x01, 0x30, 0xb0, 0x62, 0xf1, 0xe7,
- 0xf0, 0x6a, 0x01, 0x30, 0xf0, 0x62, 0xed, 0xe7,
- 0x00, 0x00, 0x90, 0x5c, 0x01, 0x00, 0x02, 0x49,
- 0x48, 0x69, 0x3c, 0x00, 0x1c, 0xc5, 0x00, 0x00,
- 0x01, 0x30, 0x48, 0x61, 0x70, 0x47, 0x00, 0x00,
- 0x90, 0x5c, 0x01, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x01, 0x1c, 0x40, 0x31,
- 0x10, 0xb5, 0x0a, 0x8b, 0x12, 0x07, 0x92, 0x0f,
- 0x01, 0x2a, 0x33, 0xd0, 0x4a, 0x78, 0x1a, 0x49,
- 0x04, 0x1c, 0x60, 0x34, 0x00, 0x2a, 0x0b, 0x6a,
- 0x22, 0xd1, 0xe2, 0x79, 0x01, 0x2a, 0x02, 0xd9,
- 0xcc, 0x68, 0x01, 0x34, 0x3c, 0x00, 0x58, 0xc5,
- 0x00, 0x00, 0xcc, 0x60, 0x02, 0x2a, 0x02, 0xd9,
- 0x0c, 0x69, 0x01, 0x34, 0x0c, 0x61, 0x0c, 0x68,
- 0x01, 0x34, 0x0c, 0x60, 0x44, 0x6b, 0x00, 0x2c,
- 0x03, 0xd0, 0x04, 0x69, 0x24, 0x7c, 0xe4, 0x07,
- 0x02, 0xd5, 0x4c, 0x68, 0x01, 0x34, 0x4c, 0x60,
- 0x80, 0x6b, 0x00, 0x28, 0x02, 0xd0, 0x08, 0x6b,
- 0x01, 0x30, 0x08, 0x63, 0x00, 0x2a, 0x0c, 0xd0,
- 0x98, 0x18, 0x01, 0x38, 0x08, 0xe0, 0x3c, 0x00,
- 0x94, 0xc5, 0x00, 0x00, 0x01, 0x2a, 0x01, 0xd0,
- 0x02, 0x2a, 0x02, 0xd1, 0x88, 0x68, 0x01, 0x30,
- 0x88, 0x60, 0xe0, 0x79, 0x18, 0x18, 0x08, 0x62,
- 0x10, 0xbd, 0x00, 0x00, 0x90, 0x5c, 0x01, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x01, 0x49, 0x0a, 0x20,
- 0x08, 0x81, 0x70, 0x47, 0xc4, 0x7a, 0x01, 0x00,
- 0xf0, 0xb5, 0x32, 0x4f, 0x04, 0x1c, 0x78, 0x78,
- 0x85, 0xb0, 0xc0, 0x07, 0xc0, 0x0f, 0x03, 0x90,
- 0x3c, 0x00, 0xd0, 0xc5, 0x00, 0x00, 0xb8, 0x78,
- 0x02, 0x90, 0x01, 0x20, 0xa0, 0x40, 0x04, 0x90,
- 0x39, 0x1c, 0x88, 0x70, 0x2c, 0x48, 0x00, 0x88,
- 0x06, 0xf0, 0x0b, 0xfc, 0x01, 0x90, 0xfe, 0xf7,
- 0xae, 0xfc, 0x04, 0x30, 0x29, 0x4e, 0xa5, 0x00,
- 0x71, 0x59, 0x09, 0x79, 0x88, 0x42, 0x06, 0xd0,
- 0xfe, 0xf7, 0xa5, 0xfc, 0x71, 0x59, 0x04, 0x30,
- 0x08, 0x71, 0x01, 0x20, 0x78, 0x70, 0x00, 0x20,
- 0x78, 0x70, 0x3c, 0x00, 0x0c, 0xc6, 0x00, 0x00,
- 0x21, 0x48, 0x01, 0x21, 0x20, 0x4e, 0x30, 0x38,
- 0x01, 0x55, 0x71, 0x59, 0x03, 0x20, 0x08, 0x70,
- 0x06, 0xf0, 0xc6, 0xfb, 0x06, 0x1c, 0xfe, 0xf7,
- 0x91, 0xfc, 0x36, 0x18, 0x0e, 0x36, 0x09, 0xe0,
- 0x30, 0x1c, 0x06, 0xf0, 0xf5, 0xfa, 0x00, 0x28,
- 0x04, 0xd0, 0x23, 0x21, 0x86, 0x20, 0xf4, 0xf7,
- 0x33, 0xfe, 0x03, 0xe0, 0xf6, 0xf7, 0x34, 0xfb,
- 0x00, 0x28, 0xf1, 0xd0, 0x3c, 0x00, 0x48, 0xc6,
- 0x00, 0x00, 0x12, 0x48, 0x13, 0x49, 0x3c, 0x38,
- 0x00, 0x78, 0x08, 0x72, 0x20, 0x1c, 0xf4, 0xf7,
- 0xa2, 0xfa, 0x0e, 0x4e, 0x71, 0x59, 0x08, 0x71,
- 0x03, 0x98, 0x00, 0x28, 0x01, 0xd0, 0x01, 0x21,
- 0x79, 0x70, 0x09, 0x48, 0x00, 0x88, 0x01, 0x99,
- 0x06, 0xf0, 0xbd, 0xfb, 0x02, 0x98, 0xb8, 0x70,
- 0x09, 0x49, 0x49, 0x79, 0x04, 0x98, 0x88, 0x42,
- 0x03, 0xd0, 0x24, 0x21, 0x86, 0x20, 0x3c, 0x00,
- 0x84, 0xc6, 0x00, 0x00, 0xf4, 0xf7, 0x0e, 0xfe,
- 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x50, 0x07, 0x00,
- 0xd0, 0x79, 0x01, 0x00, 0x10, 0x7b, 0x01, 0x00,
- 0x80, 0x80, 0x07, 0x00, 0x50, 0x80, 0x07, 0x00,
- 0xb0, 0xb5, 0x0d, 0x1c, 0x04, 0x1c, 0x05, 0x28,
- 0x01, 0xd3, 0xf4, 0xf7, 0x29, 0xfe, 0x05, 0x2d,
- 0x01, 0xd3, 0xf4, 0xf7, 0x25, 0xfe, 0x0b, 0x4a,
- 0xa8, 0x00, 0x11, 0x58, 0xa0, 0x00, 0x10, 0x58,
- 0x3c, 0x00, 0xc0, 0xc6, 0x00, 0x00, 0x0e, 0xc9,
- 0x0e, 0xc0, 0x06, 0x21, 0x06, 0x22, 0x06, 0x48,
- 0x69, 0x43, 0x2a, 0x38, 0x09, 0x18, 0x62, 0x43,
- 0x10, 0x18, 0x06, 0x22, 0xf3, 0xf7, 0x0f, 0xff,
- 0x02, 0x48, 0x30, 0x38, 0x41, 0x5d, 0x01, 0x55,
- 0xb0, 0xbd, 0x10, 0x7b, 0x01, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0x0e, 0x48, 0x0d, 0x1c, 0x80, 0x78,
- 0x01, 0x21, 0xa1, 0x40, 0x08, 0x40, 0x03, 0xd0,
- 0x01, 0x21, 0x3c, 0x00, 0xfc, 0xc6, 0x00, 0x00,
- 0x86, 0x20, 0xf4, 0xf7, 0xd1, 0xfd, 0x06, 0x21,
- 0x06, 0x22, 0x09, 0x48, 0x69, 0x43, 0x09, 0x18,
- 0x62, 0x43, 0x10, 0x18, 0x06, 0x22, 0xf3, 0xf7,
- 0xf1, 0xfe, 0x20, 0x1c, 0xf4, 0xf7, 0x40, 0xfa,
- 0x03, 0x4a, 0xa1, 0x00, 0x2a, 0x32, 0x51, 0x58,
- 0x08, 0x71, 0xb0, 0xbd, 0x00, 0x50, 0x07, 0x00,
- 0xe6, 0x7a, 0x01, 0x00, 0x03, 0x49, 0x80, 0xb5,
- 0x00, 0x20, 0x48, 0x60, 0x3c, 0x00, 0x38, 0xc7,
- 0x00, 0x00, 0x07, 0xf0, 0x32, 0xf9, 0x80, 0xbd,
- 0x00, 0x00, 0xd4, 0x7a, 0x01, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x05, 0x28, 0x01, 0xd3, 0xf4, 0xf7,
- 0xd8, 0xfd, 0x07, 0x49, 0x08, 0x7a, 0x07, 0x4a,
- 0x10, 0x70, 0x01, 0x20, 0x08, 0x72, 0xfe, 0xf7,
- 0xf4, 0xfb, 0x04, 0x4a, 0x04, 0x30, 0xa1, 0x00,
- 0x3c, 0x32, 0x51, 0x58, 0x08, 0x71, 0x10, 0xbd,
- 0x00, 0x00, 0x80, 0x80, 0x07, 0x00, 0x3c, 0x00,
- 0x74, 0xc7, 0x00, 0x00, 0xd4, 0x7a, 0x01, 0x00,
- 0x03, 0x49, 0x80, 0xb5, 0x01, 0x20, 0x48, 0x60,
- 0x07, 0xf0, 0x0e, 0xf9, 0x80, 0xbd, 0x00, 0x00,
- 0xd4, 0x7a, 0x01, 0x00, 0x10, 0xb5, 0x04, 0x1c,
- 0x05, 0x28, 0x01, 0xd3, 0xf4, 0xf7, 0xb4, 0xfd,
- 0x20, 0x1c, 0xf5, 0xf7, 0x8f, 0xfe, 0x00, 0x21,
- 0x20, 0x1c, 0xfb, 0xf7, 0x31, 0xfd, 0x01, 0x21,
- 0x00, 0x28, 0x00, 0xd0, 0x01, 0x1c, 0x09, 0x04,
- 0x3c, 0x00, 0xb0, 0xc7, 0x00, 0x00, 0x09, 0x0c,
- 0x20, 0x1c, 0x04, 0xf0, 0x22, 0xfa, 0x10, 0xbd,
- 0x00, 0x00, 0x06, 0x49, 0x01, 0x20, 0x05, 0x4b,
- 0x88, 0x60, 0x00, 0x20, 0x3c, 0x33, 0x00, 0x21,
- 0x82, 0x00, 0x9a, 0x58, 0x11, 0x70, 0x01, 0x30,
- 0x05, 0x28, 0xf9, 0xdb, 0x70, 0x47, 0xd4, 0x7a,
- 0x01, 0x00, 0x0f, 0x49, 0x38, 0xb5, 0x00, 0x20,
- 0x88, 0x60, 0x0e, 0x48, 0x01, 0x1c, 0x20, 0x31,
- 0x8a, 0x79, 0x3c, 0x00, 0xec, 0xc7, 0x00, 0x00,
- 0x00, 0xab, 0x1a, 0x70, 0xc9, 0x79, 0x0a, 0x4c,
- 0x09, 0x4d, 0x59, 0x70, 0x0c, 0x34, 0x3c, 0x35,
- 0x00, 0x21, 0x03, 0x22, 0x63, 0x5c, 0x00, 0x2b,
- 0x02, 0xd0, 0x8b, 0x00, 0xeb, 0x58, 0x1a, 0x70,
- 0x01, 0x31, 0x05, 0x29, 0xf6, 0xdb, 0x00, 0xab,
- 0x19, 0x88, 0xc1, 0x84, 0x38, 0xbd, 0x00, 0x00,
- 0xd4, 0x7a, 0x01, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0xff, 0xb5, 0x14, 0x4f, 0x3c, 0x00, 0x28, 0xc8,
- 0x00, 0x00, 0x04, 0x1c, 0xbe, 0x79, 0x0d, 0x1c,
- 0x81, 0xb0, 0x0f, 0x20, 0x00, 0xf0, 0xb9, 0xf8,
- 0x2a, 0x1c, 0x10, 0x4d, 0x00, 0x90, 0x21, 0x1c,
- 0x28, 0x1c, 0xf4, 0xf7, 0xde, 0xfc, 0x21, 0x1c,
- 0xa8, 0x1d, 0x03, 0x9a, 0xf4, 0xf7, 0xd9, 0xfc,
- 0x21, 0x1c, 0x28, 0x1c, 0x0c, 0x30, 0x04, 0x9a,
- 0xf4, 0xf7, 0xd3, 0xfc, 0x21, 0x1c, 0x28, 0x1c,
- 0x12, 0x30, 0x0a, 0x9a, 0xf4, 0xf7, 0x3c, 0x00,
- 0x64, 0xc8, 0x00, 0x00, 0xcd, 0xfc, 0x07, 0xf0,
- 0x9b, 0xf8, 0x00, 0x98, 0x00, 0xf0, 0x76, 0xf8,
- 0xbe, 0x71, 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00,
- 0x20, 0x10, 0x07, 0x00, 0xe6, 0x7a, 0x01, 0x00,
- 0x10, 0xb5, 0x00, 0x20, 0xf6, 0xf7, 0x26, 0xf8,
- 0x07, 0x49, 0x88, 0x78, 0x00, 0x09, 0x00, 0x01,
- 0x88, 0x70, 0x00, 0x24, 0x20, 0x1c, 0xf5, 0xf7,
- 0x11, 0xfe, 0x01, 0x34, 0x24, 0x06, 0x24, 0x0e,
- 0x3c, 0x00, 0xa0, 0xc8, 0x00, 0x00, 0x04, 0x2c,
- 0xf7, 0xd3, 0x10, 0xbd, 0x00, 0x00, 0x00, 0x50,
- 0x07, 0x00, 0x80, 0xb5, 0x02, 0xf0, 0xe3, 0xfb,
- 0x03, 0x48, 0x81, 0x78, 0x0f, 0x22, 0x11, 0x43,
- 0x81, 0x70, 0x80, 0xbd, 0x00, 0x00, 0x00, 0x50,
- 0x07, 0x00, 0xf8, 0xb5, 0x0d, 0x1c, 0x04, 0x1c,
- 0x05, 0x28, 0x01, 0xd3, 0xf4, 0xf7, 0x17, 0xfd,
- 0xa6, 0x00, 0x00, 0x2d, 0x11, 0x4f, 0x07, 0xd1,
- 0xb8, 0x59, 0x3c, 0x00, 0xdc, 0xc8, 0x00, 0x00,
- 0x81, 0x68, 0x00, 0x29, 0x0e, 0xd1, 0x40, 0x78,
- 0x00, 0x28, 0x0b, 0xd0, 0x02, 0xe0, 0xff, 0x35,
- 0x2d, 0x06, 0x2d, 0x0e, 0x29, 0x1c, 0x20, 0x1c,
- 0xfb, 0xf7, 0x88, 0xfc, 0x01, 0x1c, 0x20, 0x1c,
- 0x04, 0xf0, 0x7e, 0xf9, 0x06, 0x49, 0x01, 0x20,
- 0x30, 0x39, 0x08, 0x55, 0x04, 0x48, 0x3c, 0x38,
- 0x80, 0x68, 0x00, 0x28, 0x02, 0xd1, 0xb9, 0x59,
- 0x03, 0x20, 0x08, 0x70, 0x3c, 0x00, 0x18, 0xc9,
- 0x00, 0x00, 0xf8, 0xbd, 0x00, 0x00, 0x10, 0x7b,
- 0x01, 0x00, 0x80, 0xb5, 0x04, 0xf0, 0xcd, 0xf9,
- 0x80, 0xbd, 0x10, 0xb5, 0x04, 0x1c, 0x05, 0x28,
- 0x01, 0xd3, 0xf4, 0xf7, 0xe6, 0xfc, 0x20, 0x1c,
- 0xf5, 0xf7, 0xc1, 0xfd, 0x00, 0x20, 0x05, 0x4a,
- 0xa1, 0x00, 0x51, 0x58, 0x88, 0x60, 0x04, 0x49,
- 0x88, 0x78, 0x01, 0x22, 0xa2, 0x40, 0x10, 0x43,
- 0x88, 0x70, 0x10, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0xc9, 0x00, 0x00, 0x10, 0x7b, 0x01, 0x00,
- 0x00, 0x50, 0x07, 0x00, 0x02, 0x4a, 0x91, 0x78,
- 0x08, 0x43, 0x90, 0x70, 0x70, 0x47, 0x00, 0x00,
- 0x00, 0x50, 0x07, 0x00, 0xf8, 0xb5, 0x0c, 0x4f,
- 0xbe, 0x79, 0x0f, 0x20, 0x00, 0xf0, 0x18, 0xf8,
- 0x05, 0x1c, 0x00, 0x24, 0x20, 0x1c, 0xf4, 0xf7,
- 0x0d, 0xf9, 0x08, 0x4a, 0xa1, 0x00, 0x51, 0x58,
- 0x08, 0x71, 0x01, 0x34, 0x24, 0x06, 0x24, 0x0e,
- 0x3c, 0x00, 0x90, 0xc9, 0x00, 0x00, 0x04, 0x2c,
- 0xf3, 0xd3, 0x28, 0x1c, 0xff, 0xf7, 0xe1, 0xff,
- 0xbe, 0x71, 0xf8, 0xbd, 0x00, 0x00, 0x20, 0x10,
- 0x07, 0x00, 0x10, 0x7b, 0x01, 0x00, 0xb0, 0xb5,
- 0x08, 0x49, 0x8d, 0x78, 0x8a, 0x78, 0x05, 0x40,
- 0x82, 0x43, 0x8a, 0x70, 0x06, 0xf0, 0xf9, 0xf9,
- 0x04, 0x1c, 0x0a, 0x34, 0x20, 0x1c, 0x06, 0xf0,
- 0x34, 0xf9, 0x00, 0x28, 0xfa, 0xd0, 0x28, 0x1c,
- 0xb0, 0xbd, 0x3c, 0x00, 0xcc, 0xc9, 0x00, 0x00,
- 0x00, 0x50, 0x07, 0x00, 0x01, 0x49, 0x0a, 0x20,
- 0x08, 0x81, 0x70, 0x47, 0x38, 0x7b, 0x01, 0x00,
- 0xf8, 0xb5, 0x10, 0x48, 0x04, 0x26, 0x04, 0x1c,
- 0xe0, 0x34, 0x05, 0x1c, 0x38, 0x3d, 0x00, 0x27,
- 0x20, 0x1c, 0x1c, 0x30, 0xe4, 0x60, 0xa0, 0x61,
- 0x27, 0x61, 0x0b, 0x48, 0xa6, 0x82, 0xe0, 0x61,
- 0x27, 0x62, 0xa7, 0x62, 0x06, 0x20, 0xa0, 0x84,
- 0x20, 0x1c, 0xfe, 0xf7, 0x3c, 0x00, 0x08, 0xca,
- 0x00, 0x00, 0x87, 0xfc, 0x20, 0x1c, 0x0c, 0x30,
- 0xf6, 0xf7, 0xb7, 0xf9, 0x05, 0x49, 0x38, 0x3c,
- 0xac, 0x42, 0x08, 0x80, 0xe7, 0xd1, 0xf8, 0xbd,
- 0x00, 0x00, 0xd4, 0xe4, 0x01, 0x00, 0x12, 0x61,
- 0x01, 0x00, 0x48, 0x7b, 0x01, 0x00, 0xf7, 0xb5,
- 0x05, 0x1c, 0x0c, 0x23, 0x0f, 0x1c, 0x12, 0x49,
- 0x58, 0x43, 0x44, 0x18, 0x20, 0x88, 0x06, 0xf0,
- 0xea, 0xf9, 0xa0, 0x78, 0x01, 0x28, 0x3c, 0x00,
- 0x44, 0xca, 0x00, 0x00, 0x1a, 0xd1, 0x66, 0x68,
- 0x02, 0x2f, 0x05, 0xd1, 0x5c, 0x20, 0x80, 0x5b,
- 0x02, 0x99, 0x00, 0x09, 0x88, 0x42, 0x11, 0xd1,
- 0x28, 0x1c, 0xfe, 0xf7, 0xfb, 0xff, 0x30, 0x1c,
- 0xf9, 0xf7, 0xfa, 0xfd, 0x04, 0x20, 0xa0, 0x70,
- 0x39, 0x1c, 0x28, 0x1c, 0xfb, 0xf7, 0xf4, 0xf8,
- 0x03, 0x4a, 0xe8, 0x00, 0x3c, 0x32, 0x11, 0x58,
- 0x01, 0x31, 0x11, 0x50, 0xfe, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0xca, 0x00, 0x00, 0x60, 0x7b,
- 0x01, 0x00, 0x01, 0x20, 0x06, 0x4a, 0x00, 0x21,
- 0x0c, 0x23, 0x4b, 0x43, 0x9b, 0x18, 0x9b, 0x78,
- 0x00, 0x2b, 0x00, 0xd0, 0x00, 0x20, 0x01, 0x31,
- 0x04, 0x29, 0xf5, 0xdb, 0x70, 0x47, 0x60, 0x7b,
- 0x01, 0x00, 0x70, 0xb5, 0x04, 0x1c, 0xff, 0xf7,
- 0xea, 0xfc, 0x00, 0x28, 0x03, 0xd1, 0x20, 0x21,
- 0x0c, 0x20, 0xf4, 0xf7, 0xf6, 0xfb, 0x26, 0x1c,
- 0x60, 0x36, 0x3c, 0x00, 0xbc, 0xca, 0x00, 0x00,
- 0x00, 0x21, 0xf1, 0x71, 0xe1, 0x64, 0x60, 0x6b,
- 0x25, 0x1c, 0x40, 0x35, 0x00, 0x28, 0x31, 0xd0,
- 0xff, 0xf7, 0x04, 0xf9, 0x01, 0x22, 0x12, 0x03,
- 0x00, 0x28, 0x20, 0x69, 0x01, 0x88, 0x01, 0xd0,
- 0x91, 0x43, 0x00, 0xe0, 0x11, 0x43, 0x01, 0x80,
- 0x20, 0x69, 0x01, 0x22, 0x00, 0x88, 0xd2, 0x02,
- 0x28, 0x83, 0x20, 0x1c, 0x58, 0x30, 0x01, 0x88,
- 0x91, 0x43, 0x01, 0x80, 0x3c, 0x00, 0xf8, 0xca,
- 0x00, 0x00, 0xa3, 0x6b, 0x52, 0x08, 0x00, 0x2b,
- 0x10, 0xd0, 0x91, 0x43, 0x01, 0x80, 0x28, 0x8b,
- 0x00, 0x07, 0x80, 0x0f, 0x01, 0x28, 0x15, 0xd0,
- 0x2e, 0x20, 0x01, 0x5d, 0x20, 0x69, 0x04, 0x30,
- 0xf8, 0xf7, 0x41, 0xfd, 0x61, 0x6a, 0xfe, 0xf7,
- 0xa8, 0xf9, 0x04, 0xe0, 0x11, 0x43, 0x01, 0x80,
- 0x20, 0x1c, 0xfb, 0xf7, 0xcc, 0xfb, 0x68, 0x83,
- 0x04, 0xe0, 0x20, 0x69, 0x41, 0x80, 0x3c, 0x00,
- 0x34, 0xcb, 0x00, 0x00, 0xa8, 0x8b, 0x21, 0x69,
- 0xc8, 0x82, 0xe0, 0x68, 0xf6, 0xf7, 0x20, 0xf9,
- 0x30, 0x80, 0x60, 0x6d, 0x00, 0x28, 0x04, 0xd0,
- 0x00, 0x22, 0x03, 0x21, 0x70, 0x7a, 0xfe, 0xf7,
- 0x0d, 0xff, 0x20, 0x1c, 0x00, 0xf0, 0xb6, 0xf9,
- 0x70, 0x7a, 0x06, 0xf0, 0x45, 0xf8, 0x70, 0xbd,
- 0xb0, 0xb5, 0x00, 0x24, 0x06, 0xf0, 0x22, 0xf9,
- 0x09, 0x4a, 0x00, 0x21, 0x0c, 0x23, 0x4b, 0x43,
- 0x3c, 0x00, 0x70, 0xcb, 0x00, 0x00, 0x9d, 0x18,
- 0x6b, 0x68, 0x5b, 0x6c, 0xad, 0x78, 0xc3, 0x1a,
- 0x01, 0x2d, 0x02, 0xd1, 0xa3, 0x42, 0x00, 0xdd,
- 0x1c, 0x1c, 0x01, 0x31, 0x05, 0x29, 0xf0, 0xd3,
- 0x20, 0x1c, 0xb0, 0xbd, 0x00, 0x00, 0x60, 0x7b,
- 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x1c, 0x06, 0xf0,
- 0xa8, 0xfe, 0x0c, 0x20, 0x08, 0x49, 0x60, 0x43,
- 0x45, 0x18, 0x28, 0x88, 0x06, 0xf0, 0x35, 0xf9,
- 0x68, 0x68, 0x3c, 0x00, 0xac, 0xcb, 0x00, 0x00,
- 0x00, 0x28, 0x06, 0xd0, 0x20, 0x30, 0x00, 0x7b,
- 0x01, 0x28, 0x02, 0xd1, 0x20, 0x1c, 0xff, 0xf7,
- 0xa3, 0xfa, 0xb0, 0xbd, 0x60, 0x7b, 0x01, 0x00,
- 0xff, 0xb5, 0x85, 0xb0, 0x0f, 0xae, 0x60, 0xce,
- 0x38, 0x20, 0x1e, 0x49, 0x70, 0x43, 0x17, 0x1c,
- 0x44, 0x18, 0xff, 0xf7, 0x7f, 0xf8, 0x01, 0x22,
- 0x12, 0x03, 0x00, 0x28, 0x03, 0xd0, 0x20, 0x88,
- 0x90, 0x43, 0x20, 0x80, 0x3c, 0x00, 0xe8, 0xcb,
- 0x00, 0x00, 0x02, 0xe0, 0x21, 0x88, 0x11, 0x43,
- 0x21, 0x80, 0x11, 0x98, 0x39, 0x1c, 0xe0, 0x62,
- 0x05, 0x98, 0xf8, 0xf7, 0xd0, 0xfc, 0x01, 0x1c,
- 0x2b, 0x1c, 0x38, 0x1c, 0x06, 0x9a, 0xfe, 0xf7,
- 0x20, 0xf9, 0x60, 0x80, 0x06, 0x22, 0x20, 0x1d,
- 0x0f, 0x49, 0xf3, 0xf7, 0x72, 0xfc, 0x23, 0x1c,
- 0x08, 0x98, 0x30, 0x33, 0x18, 0x70, 0x0e, 0x98,
- 0x0c, 0x49, 0x58, 0x70, 0x65, 0x63, 0x3c, 0x00,
- 0x24, 0xcc, 0x00, 0x00, 0x00, 0x20, 0x02, 0x90,
- 0x01, 0x22, 0x04, 0x92, 0x09, 0x48, 0x03, 0x91,
- 0x5a, 0x78, 0x01, 0x88, 0x01, 0x92, 0x00, 0x91,
- 0x19, 0x78, 0x24, 0x3b, 0x30, 0x1c, 0x62, 0x6b,
- 0xfe, 0xf7, 0xa8, 0xfe, 0x09, 0xb0, 0xf0, 0xbd,
- 0xd4, 0xe4, 0x01, 0x00, 0x12, 0x61, 0x01, 0x00,
- 0x5d, 0x4e, 0x00, 0x00, 0x48, 0x7b, 0x01, 0x00,
- 0xff, 0xb5, 0x87, 0xb0, 0x10, 0x98, 0x12, 0xaf,
- 0x3c, 0x00, 0x60, 0xcc, 0x00, 0x00, 0x8c, 0x46,
- 0xa2, 0xcf, 0x4c, 0x23, 0x30, 0x4c, 0x6b, 0x43,
- 0x1c, 0x19, 0x16, 0x1c, 0x15, 0x9a, 0x27, 0x85,
- 0x27, 0x1c, 0x30, 0x37, 0x06, 0x97, 0x05, 0x97,
- 0x00, 0x23, 0x3b, 0x73, 0x05, 0x9f, 0x78, 0x73,
- 0x11, 0x98, 0x27, 0x1c, 0x60, 0x64, 0x61, 0x60,
- 0x22, 0x60, 0x40, 0x37, 0x3e, 0x70, 0x61, 0x46,
- 0x61, 0x87, 0x07, 0x98, 0x31, 0x1c, 0xf8, 0xf7,
- 0x80, 0xfc, 0x3c, 0x00, 0x9c, 0xcc, 0x00, 0x00,
- 0x05, 0x99, 0xc8, 0x73, 0x0a, 0x98, 0x78, 0x70,
- 0x30, 0x1c, 0xfe, 0xf7, 0x73, 0xf8, 0x00, 0x28,
- 0x01, 0xd0, 0x01, 0x20, 0x00, 0xe0, 0x00, 0x20,
- 0x41, 0x00, 0x02, 0x20, 0x01, 0x40, 0x11, 0x9a,
- 0x01, 0x20, 0x00, 0x2a, 0x00, 0xd1, 0x00, 0x20,
- 0x08, 0x43, 0x38, 0x72, 0x20, 0x1c, 0x2e, 0x30,
- 0x07, 0x99, 0xfd, 0xf7, 0xcf, 0xff, 0x28, 0x1c,
- 0x04, 0xf0, 0xae, 0xf8, 0x3c, 0x00, 0xd8, 0xcc,
- 0x00, 0x00, 0xfe, 0xf7, 0xfe, 0xff, 0x4c, 0x22,
- 0x12, 0x4b, 0x6a, 0x43, 0xd2, 0x18, 0x01, 0x21,
- 0x09, 0x03, 0x2a, 0x32, 0x00, 0x28, 0x04, 0xd0,
- 0x10, 0x1c, 0x12, 0x88, 0x8a, 0x43, 0x02, 0x80,
- 0x02, 0xe0, 0x10, 0x88, 0x08, 0x43, 0x10, 0x80,
- 0x0b, 0x49, 0x00, 0x20, 0x03, 0x91, 0x06, 0x99,
- 0x02, 0x90, 0x00, 0x22, 0x04, 0x92, 0x08, 0x48,
- 0x0a, 0x7b, 0x41, 0x88, 0x23, 0x1c, 0x3c, 0x00,
- 0x14, 0xcd, 0x00, 0x00, 0x01, 0x92, 0x00, 0x91,
- 0x79, 0x78, 0x08, 0x33, 0x28, 0x1c, 0x62, 0x68,
- 0xfe, 0xf7, 0x38, 0xfe, 0x0b, 0xb0, 0xf0, 0xbd,
- 0x58, 0xe3, 0x01, 0x00, 0x75, 0x4f, 0x00, 0x00,
- 0x3c, 0x7c, 0x01, 0x00, 0xb0, 0xb5, 0x0c, 0x1c,
- 0x01, 0x28, 0x27, 0xd0, 0x80, 0x28, 0x30, 0xd1,
- 0xe0, 0x6c, 0x00, 0x28, 0x08, 0xd0, 0x69, 0x20,
- 0x00, 0x5d, 0x18, 0x49, 0xc0, 0x00, 0x40, 0x18,
- 0x3c, 0x00, 0x50, 0xcd, 0x00, 0x00, 0x04, 0x30,
- 0x01, 0x68, 0x01, 0x31, 0x01, 0x60, 0x20, 0x1c,
- 0xff, 0xf7, 0xe9, 0xfb, 0x13, 0x4d, 0x50, 0x3d,
- 0xe8, 0x68, 0x00, 0x28, 0x05, 0xd0, 0x2e, 0x20,
- 0x00, 0x5d, 0xfe, 0xf7, 0x10, 0xf8, 0x02, 0xf0,
- 0x42, 0xfe, 0x20, 0x1c, 0x61, 0x68, 0xf3, 0xf7,
- 0x2f, 0xfb, 0x40, 0x34, 0x60, 0x78, 0x00, 0x28,
- 0x02, 0xd1, 0x06, 0xf0, 0x12, 0xf8, 0xa8, 0x60,
- 0xb0, 0xbd, 0x3c, 0x00, 0x8c, 0xcd, 0x00, 0x00,
- 0x20, 0x06, 0x00, 0x0e, 0x81, 0x28, 0xfa, 0xd1,
- 0x22, 0x0c, 0x20, 0x04, 0x00, 0x0e, 0x02, 0x21,
- 0xfe, 0xf7, 0xe6, 0xfd, 0xb0, 0xbd, 0x0a, 0x21,
- 0x0c, 0x20, 0xf4, 0xf7, 0x7d, 0xfa, 0xb0, 0xbd,
- 0x9c, 0x7b, 0x01, 0x00, 0xf8, 0xb5, 0x18, 0x4e,
- 0x18, 0x4f, 0x05, 0x1c, 0x34, 0x79, 0xb8, 0x79,
- 0x00, 0x90, 0x20, 0x1c, 0xf5, 0xf7, 0x7c, 0xff,
- 0x00, 0x28, 0x06, 0xd0, 0x3c, 0x00, 0xc8, 0xcd,
- 0x00, 0x00, 0x12, 0x48, 0x38, 0x38, 0x40, 0x68,
- 0x85, 0x42, 0x01, 0xd1, 0x00, 0x2d, 0x03, 0xd1,
- 0x10, 0x21, 0x86, 0x20, 0xf4, 0xf7, 0x63, 0xfa,
- 0x0d, 0x49, 0x00, 0x20, 0x38, 0x39, 0x48, 0x60,
- 0x04, 0x21, 0x20, 0x1c, 0xff, 0xf7, 0x59, 0xfc,
- 0x04, 0x21, 0x20, 0x1c, 0xf5, 0xf7, 0xeb, 0xfe,
- 0x0c, 0x21, 0x06, 0x4a, 0x61, 0x43, 0x30, 0x3a,
- 0x89, 0x18, 0x0c, 0x71, 0x04, 0x20, 0x3c, 0x00,
- 0x04, 0xce, 0x00, 0x00, 0x30, 0x71, 0x00, 0x98,
- 0xb8, 0x71, 0x0f, 0x20, 0xff, 0xf7, 0xa6, 0xfd,
- 0xf8, 0xbd, 0x00, 0x00, 0xa4, 0x7a, 0x01, 0x00,
- 0x20, 0x10, 0x07, 0x00, 0xf8, 0xb5, 0x04, 0x1c,
- 0x0f, 0x20, 0xff, 0xf7, 0xc1, 0xfd, 0xf5, 0xf7,
- 0x3b, 0xff, 0x01, 0x25, 0x00, 0x28, 0x00, 0xd0,
- 0x00, 0x25, 0x16, 0x4e, 0xb0, 0x79, 0x16, 0x4f,
- 0x00, 0x90, 0x38, 0x79, 0x04, 0x28, 0x01, 0xd1,
- 0x3c, 0x00, 0x40, 0xce, 0x00, 0x00, 0x00, 0x2c,
- 0x03, 0xd1, 0x11, 0x21, 0x86, 0x20, 0xf4, 0xf7,
- 0x2c, 0xfa, 0x10, 0x48, 0x29, 0x06, 0x38, 0x38,
- 0x44, 0x60, 0x09, 0x0e, 0x0c, 0x1c, 0x04, 0x20,
- 0xff, 0xf7, 0x21, 0xfc, 0x03, 0x21, 0x20, 0x1c,
- 0xff, 0xf7, 0x41, 0xfc, 0x21, 0x1c, 0x04, 0x20,
- 0xf5, 0xf7, 0xaf, 0xfe, 0x0c, 0x21, 0x07, 0x4a,
- 0x69, 0x43, 0x04, 0x20, 0x30, 0x3a, 0x89, 0x18,
- 0x08, 0x71, 0x3c, 0x00, 0x7c, 0xce, 0x00, 0x00,
- 0x3c, 0x71, 0x00, 0x98, 0xb0, 0x71, 0x20, 0x1c,
- 0xff, 0xf7, 0x50, 0xfd, 0x04, 0x20, 0xf8, 0xbd,
- 0x20, 0x10, 0x07, 0x00, 0xa4, 0x7a, 0x01, 0x00,
- 0x0c, 0x23, 0x02, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x80, 0x68, 0x70, 0x47, 0x74, 0x7a, 0x01, 0x00,
- 0x60, 0x30, 0xc1, 0x79, 0x80, 0x79, 0x81, 0x42,
- 0x01, 0xd9, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20,
- 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xce,
- 0x00, 0x00, 0x01, 0x48, 0x80, 0x68, 0x70, 0x47,
- 0x00, 0x00, 0x4c, 0x7b, 0x01, 0x00, 0x38, 0xb5,
- 0x69, 0x21, 0x09, 0x5c, 0x18, 0x23, 0x10, 0x4a,
- 0x59, 0x43, 0x89, 0x18, 0x8a, 0x68, 0x01, 0x32,
- 0x8a, 0x60, 0x4b, 0x69, 0xd2, 0x1a, 0xcb, 0x68,
- 0x93, 0x42, 0x00, 0xd2, 0xca, 0x60, 0x00, 0x22,
- 0x0b, 0x4c, 0x02, 0x60, 0x22, 0x1c, 0x20, 0x32,
- 0x95, 0x79, 0x00, 0xab, 0x1d, 0x70, 0x3c, 0x00,
- 0xf4, 0xce, 0x00, 0x00, 0xd2, 0x79, 0x5a, 0x70,
- 0x0a, 0x68, 0x00, 0x2a, 0x01, 0xd1, 0x48, 0x60,
- 0x00, 0xe0, 0x10, 0x60, 0x00, 0xab, 0x08, 0x60,
- 0x18, 0x88, 0xe0, 0x84, 0x38, 0xbd, 0x00, 0x00,
- 0xc4, 0x7b, 0x01, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0x18, 0x23, 0x0a, 0x49, 0x58, 0x43, 0x41, 0x18,
- 0x08, 0x69, 0x01, 0x30, 0x08, 0x61, 0x48, 0x68,
- 0x00, 0x28, 0x09, 0xd0, 0x48, 0x69, 0x01, 0x30,
- 0x3c, 0x00, 0x30, 0xcf, 0x00, 0x00, 0x48, 0x61,
- 0x48, 0x68, 0x02, 0x68, 0x4a, 0x60, 0x00, 0x2a,
- 0x00, 0xd1, 0x0a, 0x60, 0x70, 0x47, 0x00, 0x20,
- 0x70, 0x47, 0xc4, 0x7b, 0x01, 0x00, 0xf8, 0xb5,
- 0x12, 0x4e, 0x10, 0x4d, 0x0f, 0x4c, 0x0a, 0x27,
- 0x21, 0x1c, 0x00, 0x20, 0xe0, 0x60, 0x2a, 0x31,
- 0x22, 0x1c, 0x18, 0x32, 0xa1, 0x60, 0x62, 0x61,
- 0x27, 0x82, 0x0c, 0x4a, 0xe0, 0x61, 0xa2, 0x61,
- 0x60, 0x62, 0x3c, 0x00, 0x6c, 0xcf, 0x00, 0x00,
- 0x06, 0x20, 0x20, 0x84, 0x08, 0x1c, 0xfe, 0xf7,
- 0xd7, 0xf9, 0x20, 0x1c, 0x08, 0x30, 0xf5, 0xf7,
- 0x01, 0xff, 0x4c, 0x3c, 0xac, 0x42, 0x70, 0x80,
- 0xe5, 0xd1, 0xff, 0x20, 0x30, 0x70, 0xf8, 0xbd,
- 0x88, 0xe4, 0x01, 0x00, 0x0c, 0xe3, 0x01, 0x00,
- 0x3c, 0x7c, 0x01, 0x00, 0x12, 0x61, 0x01, 0x00,
- 0xf8, 0xb5, 0x04, 0x1c, 0x0b, 0x48, 0x0e, 0x1c,
- 0x17, 0x1c, 0x44, 0x70, 0x3c, 0x00, 0xa8, 0xcf,
- 0x00, 0x00, 0x05, 0xf0, 0x00, 0xff, 0x05, 0x1c,
- 0x39, 0x1c, 0x30, 0x1c, 0xfd, 0xf7, 0xab, 0xff,
- 0x0c, 0x21, 0x05, 0x4a, 0x28, 0x18, 0x0a, 0x30,
- 0x61, 0x43, 0x08, 0x32, 0x50, 0x50, 0x03, 0x48,
- 0x89, 0x18, 0x00, 0x68, 0x88, 0x60, 0xf8, 0xbd,
- 0x00, 0x00, 0x6c, 0x7a, 0x01, 0x00, 0x78, 0x6e,
- 0x01, 0x00, 0x70, 0xb5, 0x0b, 0x4e, 0x05, 0x1c,
- 0x70, 0x78, 0xff, 0x28, 0x0f, 0xd0, 0x3c, 0x00,
- 0xe4, 0xcf, 0x00, 0x00, 0x0c, 0x23, 0x08, 0x4c,
- 0x58, 0x43, 0x08, 0x34, 0x20, 0x58, 0x05, 0xf0,
- 0x1d, 0xfe, 0x00, 0x28, 0x06, 0xd1, 0x70, 0x78,
- 0x0c, 0x23, 0x58, 0x43, 0x00, 0x19, 0x81, 0x68,
- 0x29, 0x43, 0x81, 0x60, 0x70, 0xbd, 0x00, 0x00,
- 0x6c, 0x7a, 0x01, 0x00, 0x80, 0xb5, 0x30, 0x21,
- 0x01, 0x48, 0xf3, 0xf7, 0x43, 0xfa, 0x80, 0xbd,
- 0xec, 0xe5, 0x01, 0x00, 0x10, 0xb5, 0x05, 0xf0,
- 0x3c, 0x00, 0x20, 0xd0, 0x00, 0x00, 0xc5, 0xfe,
- 0x0a, 0x49, 0x44, 0x18, 0x0c, 0xe0, 0x20, 0x1c,
- 0x05, 0xf0, 0xf7, 0xfd, 0x00, 0x28, 0x07, 0xd0,
- 0xf5, 0xf7, 0x51, 0xfe, 0x00, 0x28, 0x03, 0xd0,
- 0x13, 0x21, 0x86, 0x20, 0xf4, 0xf7, 0x31, 0xf9,
- 0xf5, 0xf7, 0x49, 0xfe, 0x00, 0x28, 0xee, 0xd1,
- 0x10, 0xbd, 0xb0, 0x36, 0x00, 0x00, 0xff, 0xb5,
- 0x8b, 0xb0, 0x19, 0x9b, 0x0d, 0x1c, 0x04, 0x1c,
- 0x1a, 0x20, 0x3c, 0x00, 0x5c, 0xd0, 0x00, 0x00,
- 0x00, 0x2b, 0x16, 0x99, 0x00, 0xd1, 0x18, 0x20,
- 0x01, 0x90, 0x14, 0x98, 0x00, 0x28, 0x27, 0xd0,
- 0xff, 0x20, 0x19, 0x9b, 0x01, 0x30, 0x00, 0x2b,
- 0x01, 0xd1, 0x18, 0x23, 0x00, 0xe0, 0x1a, 0x23,
- 0x04, 0x33, 0x82, 0x42, 0x04, 0xd3, 0xd0, 0x1a,
- 0x40, 0x08, 0x40, 0x00, 0x00, 0x04, 0x00, 0x0c,
- 0x0d, 0x90, 0x6a, 0x48, 0x00, 0x88, 0xc2, 0x1a,
- 0x12, 0x04, 0x12, 0x0c, 0x3c, 0x00, 0x98, 0xd0,
- 0x00, 0x00, 0x04, 0x92, 0x00, 0x29, 0x08, 0xd0,
- 0x89, 0x79, 0x66, 0x4a, 0x49, 0x00, 0x51, 0x5a,
- 0x04, 0x9a, 0x51, 0x1a, 0x0a, 0x04, 0x12, 0x0c,
- 0x04, 0x92, 0x04, 0x9a, 0x82, 0x42, 0x05, 0xd9,
- 0x00, 0x20, 0x04, 0x90, 0x02, 0xe0, 0x60, 0x48,
- 0x04, 0x90, 0x0d, 0x90, 0x01, 0x98, 0x01, 0x04,
- 0x09, 0x0c, 0x0a, 0x91, 0x00, 0x20, 0xf4, 0xf7,
- 0x84, 0xfa, 0x00, 0x90, 0x00, 0x68, 0x3c, 0x00,
- 0xd4, 0xd0, 0x00, 0x00, 0x00, 0x26, 0x06, 0x90,
- 0x20, 0x60, 0x00, 0x20, 0x05, 0x90, 0x0e, 0x98,
- 0x00, 0x24, 0x00, 0x05, 0x00, 0x0c, 0x09, 0x90,
- 0x1a, 0x98, 0x0d, 0x9f, 0x40, 0x07, 0x40, 0x0f,
- 0x08, 0x90, 0x07, 0x94, 0x03, 0x95, 0x00, 0x2d,
- 0x0d, 0xd0, 0x28, 0x89, 0xb8, 0x42, 0x04, 0xd8,
- 0x36, 0x18, 0x3f, 0x1a, 0x07, 0xd0, 0xed, 0x68,
- 0xf5, 0xe7, 0x39, 0x04, 0x09, 0x0c, 0x28, 0x1c,
- 0x3c, 0x00, 0x10, 0xd1, 0x00, 0x00, 0xf4, 0xf7,
- 0x38, 0xfb, 0xef, 0xe7, 0x00, 0x2e, 0x02, 0xd1,
- 0x07, 0x99, 0x00, 0x29, 0x71, 0xd1, 0x27, 0x1c,
- 0x6c, 0x20, 0xf4, 0xf7, 0x88, 0xfb, 0x07, 0x99,
- 0x04, 0x1c, 0x00, 0x29, 0x20, 0xd1, 0x07, 0x94,
- 0x00, 0x20, 0xa0, 0x61, 0x18, 0x98, 0x27, 0x1c,
- 0x60, 0x60, 0x17, 0x98, 0x24, 0x37, 0xa0, 0x60,
- 0x06, 0x98, 0x20, 0x61, 0x15, 0x98, 0x0f, 0xc8,
- 0x0f, 0xc7, 0x3c, 0x00, 0x4c, 0xd1, 0x00, 0x00,
- 0x14, 0x98, 0x5c, 0x21, 0x60, 0x63, 0x09, 0x98,
- 0x08, 0x53, 0x19, 0x98, 0x69, 0x21, 0xe0, 0x63,
- 0x1b, 0x98, 0x08, 0x55, 0x1c, 0x98, 0x60, 0x65,
- 0x19, 0x98, 0x00, 0x28, 0x23, 0xd0, 0x08, 0x98,
- 0x06, 0x99, 0x08, 0x83, 0x1f, 0xe0, 0x6c, 0x22,
- 0x20, 0x1c, 0x07, 0x99, 0xf3, 0xf7, 0x1a, 0xfa,
- 0x3c, 0x60, 0x01, 0x98, 0x62, 0x21, 0x30, 0x18,
- 0xc8, 0x53, 0x15, 0x98, 0x3c, 0x00, 0x88, 0xd1,
- 0x00, 0x00, 0x40, 0x21, 0x80, 0x7a, 0xc8, 0x55,
- 0x00, 0x20, 0xb8, 0x63, 0x06, 0x98, 0x0a, 0x99,
- 0xf4, 0xf7, 0x1f, 0xfa, 0xf8, 0x60, 0x02, 0x99,
- 0xf4, 0xf7, 0x3b, 0xf9, 0x20, 0x1c, 0x40, 0x30,
- 0x81, 0x8b, 0x05, 0x9a, 0x12, 0x07, 0x12, 0x0f,
- 0x11, 0x43, 0x81, 0x83, 0x03, 0x98, 0x5e, 0x21,
- 0x02, 0x90, 0x01, 0x98, 0x22, 0x4a, 0x30, 0x18,
- 0x08, 0x53, 0x12, 0x68, 0x01, 0x21, 0x3c, 0x00,
- 0xc4, 0xd1, 0x00, 0x00, 0x08, 0x1c, 0x00, 0x2a,
- 0x00, 0xd0, 0x1b, 0x98, 0x00, 0x06, 0x04, 0x9a,
- 0x00, 0x0e, 0x96, 0x42, 0x03, 0xd9, 0x2c, 0x22,
- 0x11, 0x55, 0x1b, 0x49, 0x04, 0xe0, 0x15, 0x99,
- 0x2c, 0x22, 0x09, 0x7a, 0x11, 0x55, 0x19, 0x49,
- 0x08, 0x5c, 0x66, 0x21, 0x08, 0x55, 0x1c, 0x98,
- 0x00, 0x28, 0x01, 0xd0, 0x1f, 0x20, 0x08, 0x55,
- 0x00, 0x2d, 0x03, 0xd0, 0xe8, 0x68, 0x03, 0x90,
- 0x3c, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x20,
- 0x00, 0xe0, 0x09, 0xe0, 0xe8, 0x60, 0x05, 0x98,
- 0x00, 0x26, 0x01, 0x30, 0x00, 0x04, 0x00, 0x0c,
- 0x0d, 0x9f, 0x05, 0x90, 0x03, 0x9d, 0x6d, 0xe7,
- 0x00, 0x98, 0xe0, 0x60, 0x02, 0x99, 0xf4, 0xf7,
- 0xfa, 0xf8, 0x00, 0x20, 0x20, 0x60, 0x01, 0x21,
- 0xa1, 0x63, 0x60, 0x34, 0x60, 0x80, 0x07, 0x98,
- 0x0f, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0x06, 0x61,
- 0x01, 0x00, 0x3c, 0x00, 0x3c, 0xd2, 0x00, 0x00,
- 0x5c, 0x43, 0x01, 0x00, 0x38, 0x09, 0x00, 0x00,
- 0x18, 0x67, 0x01, 0x00, 0x0e, 0x61, 0x01, 0x00,
- 0x0a, 0x61, 0x01, 0x00, 0x01, 0x48, 0x00, 0x68,
- 0x70, 0x47, 0x00, 0x00, 0xc4, 0x6a, 0x01, 0x00,
- 0x02, 0x49, 0x09, 0x1d, 0x03, 0xc9, 0x40, 0x18,
- 0x70, 0x47, 0x00, 0x00, 0xc4, 0x69, 0x01, 0x00,
- 0x01, 0x48, 0x00, 0x69, 0x70, 0x47, 0x00, 0x00,
- 0xc4, 0x69, 0x01, 0x00, 0x3c, 0x00, 0x78, 0xd2,
- 0x00, 0x00, 0x01, 0x48, 0x40, 0x69, 0x70, 0x47,
- 0x00, 0x00, 0xc4, 0x69, 0x01, 0x00, 0x01, 0x48,
- 0x80, 0x69, 0x70, 0x47, 0x00, 0x00, 0xc4, 0x69,
- 0x01, 0x00, 0x70, 0xb5, 0x0d, 0x4e, 0x00, 0x20,
- 0x35, 0x1c, 0x40, 0x35, 0xf0, 0x63, 0x0d, 0xe0,
- 0xa0, 0x68, 0xf4, 0xf7, 0x7a, 0xf9, 0xb3, 0x6d,
- 0x00, 0x2b, 0x04, 0xd0, 0x00, 0x22, 0x01, 0x20,
- 0x61, 0x6b, 0xf3, 0xf7, 0x95, 0xf8, 0x3c, 0x00,
- 0xb4, 0xd2, 0x00, 0x00, 0x20, 0x1c, 0xf4, 0xf7,
- 0x9d, 0xfa, 0x28, 0x1c, 0xfa, 0xf7, 0x42, 0xfd,
- 0x04, 0x1c, 0xec, 0xd1, 0x70, 0xbd, 0x00, 0x00,
- 0xc4, 0x69, 0x01, 0x00, 0xf8, 0xb5, 0x1a, 0x4f,
- 0x00, 0x26, 0xf8, 0x6b, 0x00, 0x28, 0x2c, 0xd0,
- 0x38, 0x1c, 0x40, 0x30, 0x00, 0x90, 0x1d, 0xe0,
- 0x16, 0x48, 0xb9, 0x6b, 0x02, 0xf0, 0x5c, 0xf8,
- 0x00, 0x22, 0x20, 0x1c, 0x14, 0x49, 0x03, 0xf0,
- 0x3c, 0x00, 0xf0, 0xd2, 0x00, 0x00, 0x7b, 0xff,
- 0x05, 0x1c, 0x04, 0xd1, 0x38, 0x6a, 0x01, 0x30,
- 0x38, 0x62, 0x01, 0x36, 0x0d, 0xe0, 0xa0, 0x68,
- 0xf4, 0xf7, 0x49, 0xf9, 0xbb, 0x6d, 0x00, 0x2b,
- 0x04, 0xd0, 0x00, 0x22, 0x28, 0x1c, 0x61, 0x6b,
- 0xf3, 0xf7, 0x64, 0xf8, 0x20, 0x1c, 0xf4, 0xf7,
- 0x6c, 0xfa, 0x00, 0x98, 0xfa, 0xf7, 0x11, 0xfd,
- 0x04, 0x1c, 0xdc, 0xd1, 0x07, 0x48, 0xb9, 0x6b,
- 0x02, 0xf0, 0x3c, 0x00, 0x2c, 0xd3, 0x00, 0x00,
- 0x25, 0xf8, 0x00, 0x20, 0xf8, 0x63, 0x30, 0x1c,
- 0xf8, 0xbd, 0x00, 0x00, 0xc4, 0x69, 0x01, 0x00,
- 0x34, 0x63, 0x01, 0x00, 0x11, 0x30, 0x00, 0x00,
- 0xc4, 0x60, 0x01, 0x00, 0x01, 0x49, 0x01, 0x20,
- 0xc8, 0x63, 0x70, 0x47, 0xc4, 0x69, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x20, 0x05, 0x4a, 0x00, 0x21,
- 0x1c, 0x23, 0x43, 0x43, 0x9b, 0x18, 0x01, 0x30,
- 0x04, 0x28, 0xd9, 0x66, 0x3c, 0x00, 0x68, 0xd3,
- 0x00, 0x00, 0xf8, 0xdb, 0xfc, 0xf7, 0xfd, 0xfc,
- 0x80, 0xbd, 0xc4, 0x69, 0x01, 0x00, 0x01, 0x49,
- 0xc8, 0x64, 0x70, 0x47, 0x00, 0x00, 0xc4, 0x69,
- 0x01, 0x00, 0x01, 0x49, 0x88, 0x64, 0x70, 0x47,
- 0x00, 0x00, 0xc4, 0x69, 0x01, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0x0d, 0x1c, 0x21, 0x1c, 0x02, 0x8e,
- 0x80, 0x6a, 0x40, 0x31, 0xf3, 0xf7, 0x2f, 0xf8,
- 0x00, 0x28, 0x16, 0xd1, 0x02, 0x21, 0x3c, 0x00,
- 0xa4, 0xd3, 0x00, 0x00, 0x20, 0x1c, 0xf4, 0xf7,
- 0x6f, 0xfa, 0xe2, 0x69, 0xc0, 0x00, 0x10, 0x18,
- 0x82, 0x8b, 0xab, 0x88, 0x9a, 0x42, 0x04, 0xd1,
- 0x82, 0x69, 0x2b, 0x68, 0x9a, 0x42, 0x08, 0xd2,
- 0x01, 0xe0, 0x9a, 0x42, 0x05, 0xd2, 0x00, 0x21,
- 0x18, 0x30, 0x0c, 0xcd, 0x0c, 0xc0, 0x00, 0xe0,
- 0x01, 0x21, 0x08, 0x1c, 0xb0, 0xbd, 0x00, 0x00,
- 0xf8, 0xb5, 0x06, 0x1c, 0x00, 0x27, 0x44, 0x68,
- 0x3c, 0x00, 0xe0, 0xd3, 0x00, 0x00, 0x0f, 0xe0,
- 0x09, 0x49, 0x48, 0x6a, 0x01, 0x30, 0x48, 0x62,
- 0xa0, 0x69, 0x00, 0x28, 0x02, 0xd0, 0xf4, 0xf7,
- 0x00, 0xfa, 0xa7, 0x61, 0x26, 0x62, 0x25, 0x68,
- 0x20, 0x1c, 0xff, 0xf7, 0x52, 0xfb, 0x2c, 0x1c,
- 0x00, 0x2c, 0xed, 0xd1, 0xf8, 0xbd, 0xc4, 0x69,
- 0x01, 0x00, 0x03, 0x30, 0x07, 0x4a, 0x81, 0x08,
- 0x13, 0x68, 0x50, 0x68, 0x1b, 0x68, 0x89, 0x00,
- 0x09, 0x18, 0x3c, 0x00, 0x1c, 0xd4, 0x00, 0x00,
- 0x8b, 0x42, 0x01, 0xd3, 0x51, 0x60, 0x00, 0xe0,
- 0x00, 0x20, 0x90, 0x60, 0x70, 0x47, 0x00, 0x00,
- 0x8c, 0x6e, 0x01, 0x00, 0x70, 0xb5, 0x12, 0x4e,
- 0x80, 0x38, 0xc5, 0x00, 0x70, 0x59, 0x0c, 0x1c,
- 0x00, 0x28, 0x04, 0xd1, 0x01, 0x21, 0x0d, 0x20,
- 0xf3, 0xf7, 0x2e, 0xff, 0x0d, 0xe0, 0x20, 0x69,
- 0x00, 0x28, 0x05, 0xd1, 0xa8, 0x19, 0x81, 0x88,
- 0xe0, 0x68, 0x01, 0xf0, 0x3c, 0x00, 0x58, 0xd4,
- 0x00, 0x00, 0x47, 0xfa, 0x20, 0x61, 0x71, 0x59,
- 0x20, 0x1c, 0xf2, 0xf7, 0xbb, 0xff, 0x04, 0x1c,
- 0x00, 0x2c, 0x07, 0xd0, 0xe0, 0x68, 0x00, 0x28,
- 0x01, 0xd0, 0xf4, 0xf7, 0x92, 0xf8, 0x20, 0x1c,
- 0xf4, 0xf7, 0xbd, 0xf9, 0x70, 0xbd, 0x54, 0x42,
- 0x01, 0x00, 0x70, 0xb5, 0x04, 0x1c, 0x0d, 0x1c,
- 0x0e, 0x49, 0x06, 0x22, 0xf3, 0xf7, 0x35, 0xf8,
- 0x00, 0x26, 0xe6, 0x61, 0x66, 0x62, 0x3c, 0x00,
- 0x94, 0xd4, 0x00, 0x00, 0x07, 0x20, 0x30, 0x21,
- 0x08, 0x55, 0xe6, 0x63, 0x28, 0x1c, 0xf8, 0xf7,
- 0x6b, 0xf8, 0xa0, 0x76, 0x20, 0x1c, 0x14, 0x30,
- 0x06, 0x22, 0x29, 0x1c, 0xf3, 0xf7, 0x24, 0xf8,
- 0x06, 0x22, 0x29, 0x1c, 0xa0, 0x18, 0xf3, 0xf7,
- 0x1f, 0xf8, 0x26, 0x61, 0x70, 0xbd, 0x00, 0x00,
- 0x12, 0x61, 0x01, 0x00, 0x80, 0xb5, 0xfd, 0xf7,
- 0x85, 0xfe, 0x80, 0xbd, 0x01, 0x49, 0x48, 0x60,
- 0x3c, 0x00, 0xd0, 0xd4, 0x00, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0xe4, 0x65, 0x01, 0x00, 0x02, 0x49,
- 0x80, 0xb5, 0x49, 0x68, 0xf2, 0xf7, 0x7c, 0xff,
- 0x80, 0xbd, 0xe4, 0x65, 0x01, 0x00, 0x80, 0xb5,
- 0xf4, 0xf7, 0xe5, 0xf9, 0x07, 0x49, 0x07, 0x48,
- 0x0e, 0xc9, 0x0e, 0xc0, 0x18, 0x38, 0x00, 0x68,
- 0x00, 0x28, 0x02, 0xd0, 0x02, 0xf0, 0xb7, 0xfa,
- 0x80, 0xbd, 0x02, 0xf0, 0x9e, 0xfa, 0x80, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0xd5, 0x00, 0x00,
- 0xb0, 0x58, 0x01, 0x00, 0x90, 0x73, 0x01, 0x00,
- 0x05, 0x49, 0x80, 0xb5, 0x89, 0x68, 0x00, 0x20,
- 0x00, 0x29, 0x00, 0xd1, 0x03, 0x20, 0x00, 0x06,
- 0x00, 0x0e, 0xfa, 0xf7, 0xe3, 0xfb, 0x80, 0xbd,
- 0x60, 0x6c, 0x01, 0x00, 0x80, 0xb5, 0x03, 0x48,
- 0x06, 0x22, 0x03, 0x49, 0xf2, 0xf7, 0xde, 0xff,
- 0x80, 0xbd, 0x00, 0x00, 0x40, 0x80, 0x07, 0x00,
- 0x12, 0x61, 0x01, 0x00, 0x3c, 0x00, 0x48, 0xd5,
- 0x00, 0x00, 0xb0, 0xb5, 0x04, 0x1c, 0x0c, 0x4d,
- 0x0b, 0x1c, 0x21, 0x1c, 0x00, 0x20, 0x0c, 0x3d,
- 0x00, 0x29, 0x09, 0x4c, 0x05, 0xd0, 0x28, 0x78,
- 0x21, 0x1c, 0x10, 0x80, 0x02, 0x1c, 0x18, 0x1c,
- 0x07, 0xe0, 0x11, 0x88, 0x0e, 0x29, 0x07, 0xd8,
- 0x0a, 0x06, 0x12, 0x0e, 0x19, 0x1c, 0x20, 0x1c,
- 0x2a, 0x70, 0xf2, 0xf7, 0xbe, 0xff, 0x01, 0x20,
- 0xb0, 0xbd, 0xb0, 0x69, 0x01, 0x00, 0x3c, 0x00,
- 0x84, 0xd5, 0x00, 0x00, 0x10, 0xb5, 0x00, 0x20,
- 0x0a, 0x4a, 0x01, 0x21, 0x11, 0x60, 0x0a, 0x4c,
- 0x0a, 0xe0, 0x02, 0x1c, 0x01, 0x6a, 0x50, 0x32,
- 0x91, 0x42, 0x05, 0xd0, 0x61, 0x78, 0x3c, 0x23,
- 0x59, 0x43, 0x09, 0x19, 0x04, 0x31, 0x01, 0x62,
- 0x04, 0xf0, 0xba, 0xfb, 0x00, 0x28, 0xf0, 0xd1,
- 0x10, 0xbd, 0x00, 0x00, 0xdc, 0x62, 0x01, 0x00,
- 0x68, 0x61, 0x01, 0x00, 0x04, 0x48, 0x80, 0xb5,
- 0x3c, 0x00, 0xc0, 0xd5, 0x00, 0x00, 0x00, 0x68,
- 0x00, 0x28, 0x03, 0xd0, 0x01, 0x1c, 0x10, 0x20,
- 0x04, 0xf0, 0xc7, 0xfe, 0x80, 0xbd, 0x28, 0x61,
- 0x01, 0x00, 0x03, 0x22, 0x11, 0x1f, 0x80, 0xb5,
- 0x00, 0x20, 0xfb, 0xf7, 0x76, 0xf9, 0x80, 0xbd,
- 0x00, 0x00, 0x80, 0xb5, 0x0b, 0xf0, 0xb9, 0xfa,
- 0x80, 0xbd, 0xff, 0xb5, 0x83, 0xb0, 0x16, 0x1c,
- 0x00, 0x21, 0x01, 0x91, 0x1f, 0x1c, 0x08, 0x21,
- 0x02, 0xaa, 0x3c, 0x00, 0xfc, 0xd5, 0x00, 0x00,
- 0xfa, 0xf7, 0x0e, 0xff, 0x04, 0x1c, 0x2a, 0xd1,
- 0x02, 0x98, 0x41, 0x68, 0x49, 0x00, 0x01, 0xd4,
- 0x09, 0x24, 0x24, 0xe0, 0xfa, 0xf7, 0x52, 0xff,
- 0x38, 0x60, 0x02, 0x98, 0x41, 0x68, 0x49, 0x02,
- 0xcd, 0x0f, 0x29, 0x1c, 0xfa, 0xf7, 0x44, 0xff,
- 0x01, 0x1c, 0x30, 0x60, 0x38, 0x68, 0x00, 0x06,
- 0x00, 0x0e, 0x00, 0xf0, 0x1b, 0xf8, 0x00, 0x28,
- 0x01, 0xd1, 0x0a, 0x24, 0x3c, 0x00, 0x38, 0xd6,
- 0x00, 0x00, 0x0f, 0xe0, 0x31, 0x68, 0x02, 0x98,
- 0x2b, 0x1c, 0x01, 0xaa, 0xfa, 0xf7, 0xd7, 0xff,
- 0x00, 0x28, 0x06, 0xd0, 0x01, 0x98, 0x00, 0x28,
- 0x04, 0xd0, 0x04, 0x99, 0x09, 0x68, 0x81, 0x42,
- 0x00, 0xd2, 0x03, 0x24, 0x01, 0x98, 0x04, 0x99,
- 0x08, 0x60, 0x07, 0xb0, 0x20, 0x1c, 0xf0, 0xbd,
- 0x00, 0x00, 0x70, 0xb5, 0x05, 0x1c, 0x0e, 0x1c,
- 0x01, 0x24, 0x00, 0xf0, 0x84, 0xff, 0x3c, 0x00,
- 0x74, 0xd6, 0x00, 0x00, 0x00, 0x28, 0x08, 0xd0,
- 0x03, 0x2d, 0x01, 0xd0, 0x04, 0x2d, 0x04, 0xd1,
- 0x03, 0x20, 0xc0, 0x03, 0x86, 0x42, 0x00, 0xd3,
- 0x00, 0x24, 0x20, 0x1c, 0x70, 0xbd, 0x00, 0x00,
- 0x7c, 0xb5, 0x15, 0x1c, 0x06, 0x1c, 0x0c, 0x1c,
- 0x29, 0x1c, 0x6a, 0x46, 0x01, 0xab, 0xff, 0xf7,
- 0xa5, 0xff, 0x00, 0x28, 0x02, 0xd1, 0x00, 0x2c,
- 0x01, 0xd1, 0x03, 0x20, 0x7c, 0xbd, 0x17, 0x48,
- 0x3c, 0x00, 0xb0, 0xd6, 0x00, 0x00, 0x00, 0xab,
- 0x06, 0x60, 0x18, 0x79, 0x07, 0x28, 0x21, 0xd2,
- 0x02, 0xa3, 0x1b, 0x5c, 0x5b, 0x00, 0x9f, 0x44,
- 0x00, 0x00, 0x1d, 0x04, 0x04, 0x06, 0x10, 0x17,
- 0x13, 0x00, 0x04, 0x20, 0xed, 0xe7, 0x2a, 0x1c,
- 0x21, 0x1c, 0x01, 0x20, 0x00, 0x9b, 0xf2, 0xf7,
- 0x81, 0xfe, 0x00, 0x28, 0x12, 0xd1, 0x06, 0x20,
- 0xe3, 0xe7, 0x2a, 0x68, 0x00, 0x99, 0x05, 0xe0,
- 0x00, 0x98, 0x3c, 0x00, 0xec, 0xd6, 0x00, 0x00,
- 0x42, 0x78, 0x81, 0x1c, 0x01, 0xe0, 0x2a, 0x68,
- 0x69, 0x46, 0x20, 0x1c, 0xf2, 0xf7, 0xfe, 0xfe,
- 0x03, 0xe0, 0x04, 0x21, 0x87, 0x20, 0xf3, 0xf7,
- 0xcf, 0xfd, 0x00, 0x20, 0xd0, 0xe7, 0x00, 0x00,
- 0xf8, 0x6b, 0x01, 0x00, 0xf7, 0xb5, 0x86, 0xb0,
- 0x0e, 0x1c, 0x08, 0x21, 0x05, 0xaa, 0x06, 0x98,
- 0xfa, 0xf7, 0x7e, 0xfe, 0x04, 0x1c, 0x45, 0xd1,
- 0x05, 0x98, 0x41, 0x68, 0x3c, 0x00, 0x28, 0xd7,
- 0x00, 0x00, 0x02, 0x90, 0x49, 0x02, 0xc9, 0x0f,
- 0x00, 0x25, 0x04, 0x95, 0x03, 0x91, 0x08, 0x9f,
- 0xfa, 0xf7, 0xd5, 0xfe, 0x01, 0x90, 0x02, 0xa9,
- 0x03, 0xc9, 0xfa, 0xf7, 0xc6, 0xfe, 0x01, 0x99,
- 0x05, 0x29, 0x14, 0xd2, 0x02, 0xa3, 0x5b, 0x5c,
- 0x5b, 0x00, 0x9f, 0x44, 0x00, 0x00, 0x0e, 0x03,
- 0x06, 0x0c, 0x03, 0x00, 0x87, 0x42, 0x0e, 0xd8,
- 0x07, 0xe0, 0x87, 0x42, 0x0b, 0xd8, 0x3c, 0x00,
- 0x64, 0xd7, 0x00, 0x00, 0x01, 0x25, 0xc0, 0x1b,
- 0x04, 0x90, 0x07, 0xe0, 0x87, 0x42, 0x05, 0xd1,
- 0x01, 0x25, 0x03, 0xe0, 0x05, 0x21, 0x87, 0x20,
- 0xf3, 0xf7, 0x94, 0xfd, 0x00, 0x2d, 0x01, 0xd1,
- 0x03, 0x24, 0x15, 0xe0, 0x05, 0x98, 0x41, 0x68,
- 0x00, 0x29, 0x69, 0xda, 0x3a, 0x4a, 0x06, 0x99,
- 0x11, 0x60, 0xfa, 0xf7, 0x91, 0xfe, 0x07, 0x1c,
- 0x05, 0x98, 0x03, 0x99, 0xfa, 0xf7, 0x86, 0xfe,
- 0x3c, 0x00, 0xa0, 0xd7, 0x00, 0x00, 0x05, 0x1c,
- 0x01, 0x1c, 0x38, 0x1c, 0xff, 0xf7, 0x5f, 0xff,
- 0x00, 0x28, 0x01, 0xd1, 0x0a, 0x24, 0x5e, 0xe0,
- 0x07, 0x2f, 0x57, 0xd2, 0x02, 0xa3, 0xdb, 0x5d,
- 0x5b, 0x00, 0x9f, 0x44, 0x00, 0x00, 0x53, 0x04,
- 0x04, 0x06, 0x2e, 0x50, 0x48, 0x00, 0x04, 0x24,
- 0x51, 0xe0, 0x04, 0x98, 0x00, 0x28, 0x01, 0xd1,
- 0x00, 0x27, 0x14, 0xe0, 0x08, 0x99, 0x08, 0x18,
- 0x00, 0x04, 0x3c, 0x00, 0xdc, 0xd7, 0x00, 0x00,
- 0x00, 0x0c, 0xf4, 0xf7, 0x2b, 0xf8, 0x07, 0x1c,
- 0x31, 0x1c, 0x08, 0x9a, 0xf2, 0xf7, 0x86, 0xfe,
- 0x08, 0x98, 0x04, 0x99, 0x38, 0x18, 0xf2, 0xf7,
- 0x2f, 0xfe, 0x08, 0x98, 0x04, 0x99, 0x3e, 0x1c,
- 0x40, 0x18, 0x08, 0x90, 0x31, 0x1c, 0x00, 0x20,
- 0x08, 0xaa, 0xf2, 0xf7, 0xec, 0xfd, 0x00, 0x28,
- 0x00, 0xd1, 0x05, 0x24, 0x00, 0x2f, 0x2d, 0xd0,
- 0x38, 0x1c, 0xf3, 0xf7, 0x3c, 0x00, 0x18, 0xd8,
- 0x00, 0x00, 0xed, 0xff, 0x29, 0xe0, 0x03, 0x99,
- 0x00, 0x29, 0x04, 0xd0, 0x05, 0x98, 0x40, 0x68,
- 0x87, 0x02, 0xbf, 0x0a, 0x00, 0xe0, 0x00, 0x27,
- 0x31, 0x1c, 0x28, 0x1c, 0x08, 0x9a, 0xf2, 0xf7,
- 0x60, 0xfe, 0x04, 0x99, 0x00, 0x29, 0x03, 0xd0,
- 0x08, 0x98, 0x28, 0x18, 0xf2, 0xf7, 0x07, 0xfe,
- 0x00, 0x2f, 0x12, 0xd0, 0xf2, 0xf7, 0xcc, 0xfd,
- 0x0f, 0xe0, 0x31, 0x1c, 0xa8, 0x1c, 0x3c, 0x00,
- 0x54, 0xd8, 0x00, 0x00, 0x08, 0x9a, 0xf2, 0xf7,
- 0x4f, 0xfe, 0x08, 0x98, 0x68, 0x70, 0x07, 0xe0,
- 0xff, 0xe7, 0x07, 0x24, 0x04, 0xe0, 0x08, 0x24,
- 0x03, 0x21, 0x87, 0x20, 0xf3, 0xf7, 0x1a, 0xfd,
- 0x20, 0x1c, 0x09, 0xb0, 0xf0, 0xbd, 0x00, 0x00,
- 0xf8, 0x6b, 0x01, 0x00, 0x9e, 0xb5, 0x1c, 0x1c,
- 0x00, 0xab, 0x19, 0x72, 0x00, 0x92, 0x00, 0x22,
- 0x01, 0x94, 0x69, 0x46, 0xfb, 0xf7, 0x08, 0xfa,
- 0x3c, 0x00, 0x90, 0xd8, 0x00, 0x00, 0x9e, 0xbd,
- 0x00, 0x00, 0x8f, 0xb5, 0x02, 0x92, 0x00, 0x22,
- 0x00, 0x90, 0x01, 0x90, 0x03, 0x91, 0x69, 0x46,
- 0x04, 0x20, 0xfb, 0xf7, 0xfc, 0xf9, 0x8f, 0xbd,
- 0x00, 0x00, 0xb0, 0xb5, 0x0c, 0x1c, 0x01, 0x28,
- 0x0a, 0xd0, 0x03, 0x28, 0x19, 0xd0, 0x04, 0x28,
- 0x2c, 0xd1, 0x60, 0x68, 0x01, 0xf0, 0x35, 0xfc,
- 0x01, 0x1c, 0x83, 0x20, 0x0c, 0xcc, 0x22, 0xe0,
- 0x1c, 0x20, 0x3c, 0x00, 0xcc, 0xd8, 0x00, 0x00,
- 0x14, 0x49, 0x60, 0x43, 0x40, 0x18, 0x14, 0x49,
- 0x45, 0x18, 0x28, 0x1c, 0xf8, 0xf7, 0x46, 0xfc,
- 0xa9, 0x68, 0x00, 0x29, 0x03, 0xd0, 0x22, 0x1c,
- 0x08, 0x20, 0x05, 0xf0, 0x71, 0xfe, 0xb0, 0xbd,
- 0x20, 0x8c, 0xc8, 0x28, 0x01, 0xd3, 0x04, 0x20,
- 0x04, 0xe0, 0x65, 0x28, 0x01, 0xd3, 0x02, 0x20,
- 0x00, 0xe0, 0x01, 0x20, 0x20, 0x84, 0x20, 0x1c,
- 0x03, 0xf0, 0xdc, 0xfa, 0x3c, 0x00, 0x08, 0xd9,
- 0x00, 0x00, 0x22, 0x68, 0xe3, 0x68, 0x01, 0x1c,
- 0x82, 0x20, 0xff, 0xf7, 0xb4, 0xff, 0xb0, 0xbd,
- 0xa0, 0x21, 0x08, 0x20, 0xf3, 0xf7, 0xc3, 0xfc,
- 0xb0, 0xbd, 0xdc, 0x71, 0x01, 0x00, 0x64, 0xee,
- 0xff, 0xff, 0x03, 0x48, 0x04, 0x4a, 0x81, 0x68,
- 0x51, 0x61, 0xc0, 0x68, 0x90, 0x61, 0x70, 0x47,
- 0x00, 0x00, 0xf4, 0x68, 0x01, 0x00, 0xc0, 0x71,
- 0x01, 0x00, 0x03, 0x49, 0x04, 0x4a, 0x3c, 0x00,
- 0x44, 0xd9, 0x00, 0x00, 0x08, 0x6b, 0x90, 0x60,
- 0x88, 0x68, 0xd0, 0x60, 0x70, 0x47, 0x00, 0x00,
- 0x90, 0x5c, 0x01, 0x00, 0xc0, 0x71, 0x01, 0x00,
- 0x00, 0xb5, 0xff, 0xf7, 0xf1, 0xff, 0xff, 0xf7,
- 0xe3, 0xff, 0x00, 0xbd, 0xb0, 0xb5, 0x0d, 0x1c,
- 0x00, 0x28, 0x14, 0xd0, 0x0b, 0x49, 0x0c, 0x4c,
- 0x88, 0x68, 0x62, 0x69, 0xc9, 0x68, 0x80, 0x1a,
- 0xa2, 0x69, 0x89, 0x1a, 0x40, 0x18, 0x04, 0xd0,
- 0x3c, 0x00, 0x80, 0xd9, 0x00, 0x00, 0x64, 0x23,
- 0x59, 0x43, 0xf2, 0xf7, 0xc4, 0xfe, 0x20, 0x61,
- 0xff, 0xf7, 0xcd, 0xff, 0x20, 0x69, 0x28, 0x60,
- 0x01, 0x20, 0xb0, 0xbd, 0x00, 0x20, 0xb0, 0xbd,
- 0x00, 0x00, 0xf4, 0x68, 0x01, 0x00, 0xc0, 0x71,
- 0x01, 0x00, 0xb0, 0xb5, 0x0d, 0x1c, 0x00, 0x28,
- 0x17, 0xd0, 0x0c, 0x49, 0x0d, 0x4c, 0x08, 0x6b,
- 0xa2, 0x68, 0x89, 0x68, 0x80, 0x1a, 0xe2, 0x68,
- 0x89, 0x1a, 0x3c, 0x00, 0xbc, 0xd9, 0x00, 0x00,
- 0x40, 0x18, 0x07, 0xd0, 0x22, 0x88, 0x90, 0x42,
- 0x04, 0xd9, 0x64, 0x23, 0x59, 0x43, 0xf2, 0xf7,
- 0xa1, 0xfe, 0x60, 0x60, 0xff, 0xf7, 0xb6, 0xff,
- 0x60, 0x68, 0x28, 0x60, 0x01, 0x20, 0xb0, 0xbd,
- 0x00, 0x20, 0xb0, 0xbd, 0x90, 0x5c, 0x01, 0x00,
- 0xc0, 0x71, 0x01, 0x00, 0x7c, 0xb5, 0x10, 0x68,
- 0x00, 0x28, 0x02, 0xd0, 0x00, 0xf0, 0x24, 0xf8,
- 0x7c, 0xbd, 0x0f, 0x48, 0x3c, 0x00, 0xf8, 0xd9,
- 0x00, 0x00, 0xc0, 0x69, 0x84, 0x68, 0xe0, 0x68,
- 0x25, 0x6a, 0xa6, 0x69, 0xf3, 0xf7, 0xe3, 0xfd,
- 0xe1, 0x69, 0xf3, 0xf7, 0x06, 0xfd, 0x20, 0x1c,
- 0xe2, 0x69, 0x40, 0x30, 0xc1, 0x8b, 0x12, 0x89,
- 0x89, 0x18, 0xc1, 0x83, 0x07, 0x49, 0x01, 0x94,
- 0x00, 0x91, 0x28, 0x69, 0x33, 0x1c, 0x82, 0x88,
- 0x01, 0x68, 0xe0, 0x68, 0xc0, 0x68, 0xf8, 0xf7,
- 0x1e, 0xfc, 0xe0, 0xe7, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xda, 0x00, 0x00, 0x84, 0x6a, 0x01, 0x00,
- 0x91, 0x5e, 0x00, 0x00, 0xf0, 0xb5, 0x85, 0x69,
- 0x06, 0x6a, 0x04, 0x1c, 0xc0, 0x68, 0x85, 0xb0,
- 0xc0, 0x68, 0x00, 0x28, 0x01, 0xd1, 0xf3, 0xf7,
- 0x57, 0xfc, 0x0a, 0x49, 0x02, 0x95, 0x04, 0x94,
- 0x03, 0x91, 0x30, 0x69, 0x82, 0x88, 0x01, 0x68,
- 0x26, 0x20, 0x01, 0x92, 0x00, 0x91, 0x43, 0x5d,
- 0xe0, 0x68, 0xe1, 0x69, 0x2a, 0x1c, 0x0e, 0x32,
- 0x3c, 0x00, 0x70, 0xda, 0x00, 0x00, 0xc0, 0x68,
- 0xf8, 0xf7, 0x37, 0xfd, 0x05, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0xe9, 0xd9, 0x00, 0x00, 0x10, 0xb5,
- 0x14, 0x1c, 0x05, 0x48, 0xfc, 0xf7, 0x7b, 0xfb,
- 0xa0, 0x68, 0xf3, 0xf7, 0x9e, 0xfd, 0xe1, 0x68,
- 0xc1, 0x60, 0x20, 0x1c, 0xf5, 0xf7, 0xbb, 0xfa,
- 0x10, 0xbd, 0xa0, 0x6a, 0x01, 0x00, 0x7c, 0xb5,
- 0x04, 0x1c, 0x60, 0x30, 0x02, 0x7b, 0xa1, 0x69,
- 0x00, 0x91, 0x3c, 0x00, 0xac, 0xda, 0x00, 0x00,
- 0x01, 0x92, 0x22, 0x1c, 0x21, 0x1c, 0x38, 0x31,
- 0xa0, 0x68, 0x48, 0x32, 0x0d, 0x1c, 0x63, 0x69,
- 0x03, 0xf0, 0x7a, 0xfb, 0x08, 0x21, 0x00, 0x20,
- 0xf3, 0xf7, 0x88, 0xfd, 0xe0, 0x60, 0x26, 0x69,
- 0xb1, 0x6b, 0x00, 0x29, 0x01, 0xd0, 0x10, 0x23,
- 0x00, 0xe0, 0x18, 0x23, 0x05, 0x49, 0x01, 0x94,
- 0x00, 0x91, 0x31, 0x68, 0xca, 0x18, 0x08, 0x23,
- 0x01, 0x1c, 0x28, 0x1c, 0x3c, 0x00, 0xe8, 0xda,
- 0x00, 0x00, 0xf8, 0xf7, 0x20, 0xfd, 0x7c, 0xbd,
- 0x00, 0x00, 0x81, 0xda, 0x00, 0x00, 0xf0, 0xb5,
- 0x46, 0x68, 0x17, 0x1c, 0x04, 0x1c, 0x01, 0x21,
- 0x30, 0x1c, 0x9b, 0xb0, 0xfa, 0xf7, 0x0d, 0xfc,
- 0x00, 0x25, 0x00, 0x28, 0x03, 0xd0, 0x13, 0x49,
- 0x0a, 0x7a, 0x01, 0x2a, 0x01, 0xd1, 0x01, 0x25,
- 0x1c, 0xe0, 0x88, 0x62, 0x4e, 0x61, 0x20, 0x89,
- 0xc8, 0x61, 0x60, 0x89, 0x00, 0x28, 0x3c, 0x00,
- 0x24, 0xdb, 0x00, 0x00, 0x03, 0xd0, 0x00, 0x20,
- 0x08, 0x84, 0x48, 0x84, 0x04, 0xe0, 0xe0, 0x68,
- 0x08, 0x84, 0x20, 0x8a, 0x48, 0x84, 0x60, 0x8a,
- 0x88, 0x84, 0x08, 0x6b, 0x00, 0x28, 0x03, 0xd1,
- 0x01, 0xa8, 0x03, 0xf0, 0x77, 0xfc, 0x04, 0xe0,
- 0x01, 0x20, 0x08, 0x61, 0x00, 0x20, 0x02, 0xf0,
- 0x39, 0xfb, 0x3d, 0x71, 0x1b, 0xb0, 0x01, 0x20,
- 0xf0, 0xbd, 0x00, 0x00, 0xf4, 0x6e, 0x01, 0x00,
- 0x3c, 0x00, 0x60, 0xdb, 0x00, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0xf7, 0xf7, 0xe8, 0xfb, 0x00, 0x28,
- 0x11, 0xd1, 0x4b, 0x20, 0x00, 0x5d, 0x01, 0x28,
- 0x0d, 0xd1, 0x20, 0x1c, 0x04, 0xf0, 0x85, 0xfa,
- 0x00, 0x21, 0x20, 0x1c, 0x04, 0xf0, 0xf3, 0xf8,
- 0xa0, 0x69, 0x00, 0x21, 0xc2, 0x07, 0xd2, 0x0f,
- 0x04, 0x20, 0xf4, 0xf7, 0xd8, 0xf9, 0x10, 0xbd,
- 0x00, 0x00, 0x38, 0xb5, 0x04, 0x1c, 0x04, 0xf0,
- 0x36, 0xf9, 0x3c, 0x00, 0x9c, 0xdb, 0x00, 0x00,
- 0x00, 0x28, 0x03, 0xd0, 0x40, 0x30, 0x80, 0x7a,
- 0x00, 0x28, 0x25, 0xd1, 0x0c, 0x20, 0x29, 0x21,
- 0x08, 0x55, 0x21, 0x1c, 0x06, 0x22, 0xa0, 0x18,
- 0xf2, 0xf7, 0xa0, 0xfc, 0x20, 0x1c, 0x06, 0x22,
- 0x0e, 0x49, 0xf2, 0xf7, 0x9b, 0xfc, 0x01, 0x20,
- 0xe0, 0x61, 0x60, 0x62, 0x07, 0x20, 0x30, 0x21,
- 0x08, 0x55, 0x00, 0x25, 0xe5, 0x63, 0x06, 0x20,
- 0x00, 0xab, 0x18, 0x80, 0x3c, 0x00, 0xd8, 0xdb,
- 0x00, 0x00, 0xe0, 0x68, 0x00, 0x28, 0x01, 0xd0,
- 0xf3, 0xf7, 0xdb, 0xfc, 0x02, 0x21, 0x68, 0x46,
- 0xfd, 0xf7, 0x73, 0xfb, 0xe0, 0x60, 0x20, 0x1c,
- 0xff, 0xf7, 0x69, 0xfc, 0xe5, 0x60, 0x20, 0x1c,
- 0x38, 0xbd, 0x12, 0x61, 0x01, 0x00, 0xfe, 0xb5,
- 0x05, 0x1c, 0x0e, 0x1c, 0x15, 0x20, 0x00, 0xab,
- 0x98, 0x80, 0x14, 0x21, 0x17, 0x1c, 0x00, 0x20,
- 0xf3, 0xf7, 0xe3, 0xfc, 0x02, 0x90, 0x3c, 0x00,
- 0x14, 0xdc, 0x00, 0x00, 0x04, 0x68, 0x06, 0x22,
- 0x31, 0x1c, 0x60, 0x1d, 0x25, 0x71, 0xf2, 0xf7,
- 0x6b, 0xfc, 0x06, 0x22, 0x39, 0x1c, 0x20, 0x1c,
- 0x0b, 0x30, 0xf2, 0xf7, 0x65, 0xfc, 0x01, 0xa8,
- 0xff, 0xf7, 0x52, 0xfc, 0xfe, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0x00, 0x23, 0xfb, 0xf7, 0x5c, 0xf8,
- 0x80, 0xbd, 0x00, 0x00, 0x70, 0xb5, 0x05, 0x1c,
- 0x08, 0x35, 0x0f, 0x4e, 0x29, 0x1c, 0x04, 0x1c,
- 0x3c, 0x00, 0x50, 0xdc, 0x00, 0x00, 0x06, 0x22,
- 0x30, 0x1c, 0xf2, 0xf7, 0x50, 0xfc, 0xa0, 0x88,
- 0xb0, 0x82, 0x28, 0x1c, 0x05, 0xf0, 0xa1, 0xff,
- 0x00, 0x28, 0x0b, 0xd0, 0xe0, 0x88, 0x30, 0x61,
- 0x28, 0x1c, 0x04, 0xf0, 0xcc, 0xf8, 0xa1, 0x88,
- 0x40, 0x30, 0x41, 0x80, 0x00, 0x20, 0xf4, 0xf7,
- 0xb8, 0xf9, 0x02, 0xe0, 0x04, 0x20, 0xf4, 0xf7,
- 0xa0, 0xf9, 0x00, 0x20, 0x70, 0xbd, 0x70, 0x7c,
- 0x01, 0x00, 0x3c, 0x00, 0x8c, 0xdc, 0x00, 0x00,
- 0x80, 0xb5, 0x00, 0x20, 0xfb, 0xf7, 0xf8, 0xfb,
- 0x80, 0xbd, 0x00, 0x00, 0x70, 0xb5, 0x04, 0x1c,
- 0x04, 0x30, 0x05, 0x1c, 0xfd, 0xf7, 0x32, 0xf8,
- 0x00, 0x28, 0x09, 0xd0, 0x00, 0x20, 0xf7, 0xf7,
- 0x37, 0xfc, 0x00, 0x28, 0x04, 0xd0, 0x06, 0x22,
- 0x01, 0x1c, 0x28, 0x1c, 0xf2, 0xf7, 0x1e, 0xfc,
- 0x0a, 0x4e, 0x06, 0x22, 0x29, 0x1c, 0x30, 0x1c,
- 0xf2, 0xf7, 0x18, 0xfc, 0x3c, 0x00, 0xc8, 0xdc,
- 0x00, 0x00, 0x60, 0x89, 0xf0, 0x82, 0x28, 0x1c,
- 0x05, 0xf0, 0x69, 0xff, 0x00, 0x28, 0x03, 0xd0,
- 0x02, 0x20, 0xf4, 0xf7, 0x88, 0xf9, 0x02, 0xe0,
- 0x05, 0x20, 0xf9, 0xf7, 0xf4, 0xfa, 0x00, 0x20,
- 0x70, 0xbd, 0x70, 0x7c, 0x01, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x00, 0x79, 0x04, 0x28, 0x1c, 0xd2,
- 0x60, 0x79, 0x01, 0x28, 0x01, 0xd0, 0x03, 0x28,
- 0x04, 0xd1, 0x00, 0x22, 0x01, 0x21, 0x3c, 0x00,
- 0x04, 0xdd, 0x00, 0x00, 0xa0, 0x1d, 0xf9, 0xf7,
- 0x69, 0xfc, 0x60, 0x79, 0x00, 0x28, 0x04, 0xd1,
- 0x22, 0x79, 0x00, 0x21, 0xf9, 0xf7, 0x62, 0xfc,
- 0x0a, 0xe0, 0x03, 0x28, 0x08, 0xd1, 0x00, 0x24,
- 0x22, 0x1c, 0x00, 0x21, 0x00, 0x20, 0xf9, 0xf7,
- 0x59, 0xfc, 0x01, 0x34, 0x04, 0x2c, 0xf7, 0xdb,
- 0x01, 0x20, 0x10, 0xbd, 0xf0, 0xb5, 0x97, 0xb0,
- 0x17, 0x1c, 0x05, 0x1c, 0x04, 0x30, 0x04, 0x1c,
- 0x3c, 0x00, 0x40, 0xdd, 0x00, 0x00, 0x15, 0xaa,
- 0x16, 0xa9, 0x05, 0xf0, 0xe2, 0xfe, 0x00, 0x28,
- 0x2e, 0xd0, 0x15, 0x98, 0x4b, 0x21, 0x09, 0x5c,
- 0x00, 0x29, 0x23, 0xd0, 0x01, 0x29, 0x02, 0xd0,
- 0x02, 0x29, 0x1f, 0xd1, 0x01, 0xe0, 0x04, 0xf0,
- 0x90, 0xf9, 0xad, 0x7a, 0x13, 0x48, 0x16, 0x9e,
- 0x05, 0x80, 0x06, 0x22, 0x21, 0x1c, 0x08, 0x30,
- 0xf2, 0xf7, 0xc1, 0xfb, 0x22, 0x1c, 0x31, 0x1c,
- 0x02, 0xa8, 0x3c, 0x00, 0x7c, 0xdd, 0x00, 0x00,
- 0x00, 0xf0, 0x74, 0xfb, 0x0a, 0x20, 0x0a, 0xa9,
- 0x48, 0x72, 0x00, 0xab, 0x9d, 0x80, 0x02, 0x21,
- 0x01, 0xa8, 0xfd, 0xf7, 0x9f, 0xfa, 0x05, 0x90,
- 0x02, 0xa8, 0xff, 0xf7, 0x95, 0xfb, 0xf3, 0xf7,
- 0xf7, 0xf9, 0x00, 0x21, 0x15, 0x98, 0x03, 0xf0,
- 0xe1, 0xff, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20,
- 0x38, 0x71, 0x17, 0xb0, 0x01, 0x20, 0xf0, 0xbd,
- 0x98, 0x7c, 0x01, 0x00, 0x3c, 0x00, 0xb8, 0xdd,
- 0x00, 0x00, 0x80, 0xb5, 0x01, 0x20, 0xfb, 0xf7,
- 0x62, 0xfb, 0x80, 0xbd, 0x00, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0x80, 0x7d, 0x15, 0x1c, 0x0a, 0x1c,
- 0xc0, 0x07, 0xc0, 0x17, 0x01, 0x30, 0x21, 0x1c,
- 0xf9, 0xf7, 0xfb, 0xfc, 0x00, 0x28, 0x03, 0xd1,
- 0x04, 0x20, 0x28, 0x71, 0x01, 0x20, 0xb0, 0xbd,
- 0x20, 0x6a, 0xf7, 0xf7, 0x76, 0xfe, 0x60, 0x6a,
- 0xf7, 0xf7, 0x7b, 0xfe, 0x20, 0x6a, 0x3c, 0x00,
- 0xf4, 0xdd, 0x00, 0x00, 0xfe, 0xf7, 0x88, 0xfa,
- 0x00, 0x20, 0xb0, 0xbd, 0x10, 0xb5, 0x14, 0x1c,
- 0xc2, 0x79, 0x81, 0x79, 0x80, 0x88, 0xf7, 0xf7,
- 0xa1, 0xfa, 0x20, 0x71, 0x01, 0x20, 0x10, 0xbd,
- 0x80, 0xb5, 0x01, 0x23, 0xfa, 0xf7, 0x70, 0xff,
- 0x80, 0xbd, 0x00, 0x00, 0xf0, 0xb5, 0x04, 0x1c,
- 0x08, 0x1c, 0x00, 0x21, 0x0f, 0x28, 0x91, 0xb0,
- 0x00, 0xd3, 0x02, 0x21, 0x00, 0x29, 0x41, 0xd1,
- 0x3c, 0x00, 0x30, 0xde, 0x00, 0x00, 0xc0, 0x00,
- 0x24, 0x4f, 0x10, 0x90, 0xc6, 0x19, 0xb2, 0x88,
- 0x21, 0x68, 0x02, 0xa8, 0xf2, 0xf7, 0x5b, 0xfb,
- 0x21, 0x89, 0xb0, 0x88, 0x09, 0x1a, 0x00, 0x29,
- 0x07, 0xdd, 0x09, 0x04, 0x22, 0x68, 0x09, 0x0c,
- 0x10, 0x18, 0xf3, 0xf7, 0xc0, 0xfb, 0x05, 0x1c,
- 0x00, 0xe0, 0x00, 0x25, 0xb0, 0x79, 0x80, 0x21,
- 0x88, 0x43, 0x17, 0x49, 0x78, 0x31, 0x09, 0x5c,
- 0x00, 0x20, 0x3c, 0x00, 0x6c, 0xde, 0x00, 0x00,
- 0xf3, 0xf7, 0xb4, 0xfb, 0x07, 0x1c, 0x00, 0x68,
- 0x13, 0x49, 0x01, 0x90, 0x10, 0x98, 0x0b, 0x58,
- 0x01, 0x9a, 0x29, 0x1c, 0x02, 0xa8, 0xf2, 0xf7,
- 0xac, 0xfa, 0x00, 0x90, 0x28, 0x1c, 0xf3, 0xf7,
- 0x73, 0xfb, 0x20, 0x1c, 0xf3, 0xf7, 0x82, 0xfb,
- 0x00, 0x98, 0x00, 0x28, 0x08, 0xd0, 0x02, 0x98,
- 0x01, 0x99, 0x08, 0x60, 0xb0, 0x79, 0x39, 0x1c,
- 0xfa, 0xf7, 0x20, 0xff, 0x3c, 0x00, 0xa8, 0xde,
- 0x00, 0x00, 0x11, 0xb0, 0xf0, 0xbd, 0x38, 0x1c,
- 0xf3, 0xf7, 0x61, 0xfb, 0xf9, 0xe7, 0x2d, 0x20,
- 0xf3, 0xf7, 0xf5, 0xf9, 0x20, 0x1c, 0xf3, 0xf7,
- 0x6c, 0xfb, 0xf2, 0xe7, 0x00, 0x00, 0x24, 0x44,
- 0x01, 0x00, 0x70, 0xb5, 0x05, 0x1c, 0x20, 0x35,
- 0x06, 0x1c, 0xa8, 0x79, 0x04, 0x28, 0x48, 0xd2,
- 0xe9, 0x79, 0x01, 0x29, 0x13, 0xd1, 0x30, 0x1c,
- 0x28, 0x30, 0x03, 0xf0, 0x92, 0xff, 0x3c, 0x00,
- 0xe4, 0xde, 0x00, 0x00, 0x00, 0x28, 0x3f, 0xd0,
- 0x01, 0x1c, 0x8c, 0x31, 0x01, 0x65, 0xa9, 0x79,
- 0x4c, 0x22, 0x04, 0x1c, 0x11, 0x54, 0x81, 0x18,
- 0x41, 0x62, 0x50, 0x34, 0x04, 0x62, 0xe1, 0x1e,
- 0x81, 0x62, 0x0b, 0xe0, 0x00, 0x29, 0x2f, 0xd1,
- 0x3c, 0x22, 0x18, 0x49, 0x42, 0x43, 0x54, 0x18,
- 0x17, 0x4a, 0x04, 0x34, 0x12, 0x68, 0x00, 0x2a,
- 0x00, 0xd1, 0x48, 0x70, 0x00, 0x2c, 0x23, 0xd0,
- 0x3c, 0x00, 0x20, 0xdf, 0x00, 0x00, 0x35, 0x1c,
- 0x30, 0x35, 0xe8, 0x79, 0x01, 0x28, 0x01, 0xd0,
- 0x05, 0x28, 0x01, 0xd1, 0x06, 0x20, 0xe8, 0x71,
- 0x20, 0x22, 0x31, 0x1d, 0x20, 0x68, 0xf2, 0xf7,
- 0xde, 0xfa, 0xb0, 0x8c, 0xa0, 0x80, 0xe8, 0x79,
- 0xa0, 0x71, 0xa8, 0x79, 0x00, 0x25, 0xa0, 0x63,
- 0x01, 0x20, 0x60, 0x81, 0x00, 0x20, 0xe0, 0x60,
- 0x2e, 0x36, 0xe8, 0x00, 0x00, 0x19, 0x18, 0x30,
- 0x08, 0x22, 0x3c, 0x00, 0x5c, 0xdf, 0x00, 0x00,
- 0x31, 0x1c, 0xf2, 0xf7, 0xcb, 0xfa, 0x01, 0x35,
- 0x04, 0x2d, 0xf5, 0xd3, 0x01, 0x20, 0x70, 0xbd,
- 0x68, 0x61, 0x01, 0x00, 0xdc, 0x62, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0xc0, 0x7a, 0x01, 0x28,
- 0x01, 0xd0, 0x03, 0x28, 0x07, 0xd1, 0x20, 0x1d,
- 0x03, 0xf0, 0x40, 0xff, 0x00, 0x28, 0x02, 0xd0,
- 0xa1, 0x7a, 0x40, 0x30, 0x41, 0x73, 0xe0, 0x7a,
- 0x00, 0x28, 0x01, 0xd0, 0x3c, 0x00, 0x98, 0xdf,
- 0x00, 0x00, 0x03, 0x28, 0x02, 0xd1, 0xa0, 0x7a,
- 0x02, 0x49, 0x08, 0x70, 0x01, 0x20, 0x10, 0xbd,
- 0x00, 0x00, 0x68, 0x61, 0x01, 0x00, 0x70, 0xb5,
- 0x0e, 0x1c, 0x03, 0x21, 0x04, 0x1c, 0x30, 0x1c,
- 0xfc, 0xf7, 0xe1, 0xfb, 0x00, 0x28, 0x01, 0xd0,
- 0x85, 0x78, 0x00, 0xe0, 0x00, 0x25, 0x0b, 0x48,
- 0x32, 0x1c, 0x00, 0x68, 0x03, 0x68, 0x20, 0x7c,
- 0x80, 0x07, 0xc0, 0x0f, 0x21, 0x1c, 0x3c, 0x00,
- 0xd4, 0xdf, 0x00, 0x00, 0xf7, 0xf7, 0x62, 0xfe,
- 0x00, 0x28, 0x05, 0xd0, 0x01, 0x21, 0x28, 0x1c,
- 0xfd, 0xf7, 0xfe, 0xfb, 0x00, 0x20, 0x00, 0xe0,
- 0x08, 0x20, 0x03, 0xf0, 0xc5, 0xff, 0x00, 0x20,
- 0x70, 0xbd, 0x00, 0x00, 0xe4, 0x65, 0x01, 0x00,
- 0x80, 0xb5, 0x42, 0x68, 0x00, 0x88, 0x01, 0x21,
- 0x49, 0x06, 0x08, 0x43, 0x2d, 0x21, 0x05, 0xf0,
- 0xd3, 0xfb, 0x80, 0xbd, 0x03, 0x49, 0x01, 0x20,
- 0x3c, 0x00, 0x10, 0xe0, 0x00, 0x00, 0x49, 0x78,
- 0x02, 0x29, 0x00, 0xd0, 0x00, 0x20, 0x70, 0x47,
- 0x00, 0x00, 0x84, 0x66, 0x01, 0x00, 0x8c, 0xb5,
- 0x01, 0x28, 0x1f, 0xd1, 0x00, 0x29, 0x0d, 0xd0,
- 0x01, 0x29, 0x0b, 0xd0, 0x02, 0x29, 0x01, 0xd0,
- 0x03, 0x29, 0x16, 0xd1, 0x00, 0x20, 0xf9, 0xf7,
- 0x14, 0xfc, 0x93, 0x20, 0x00, 0xab, 0x18, 0x80,
- 0x00, 0x20, 0x08, 0xe0, 0x01, 0x29, 0x00, 0xd0,
- 0x00, 0x20, 0x3c, 0x00, 0x4c, 0xe0, 0x00, 0x00,
- 0xf9, 0xf7, 0x0a, 0xfc, 0x83, 0x20, 0x00, 0xab,
- 0x18, 0x80, 0x02, 0x20, 0x00, 0xf0, 0xcc, 0xf8,
- 0x01, 0x90, 0x68, 0x46, 0xff, 0xf7, 0x3a, 0xfa,
- 0x8c, 0xbd, 0x01, 0x21, 0x0e, 0x20, 0xf3, 0xf7,
- 0x1b, 0xf9, 0xf9, 0xe7, 0xff, 0xb5, 0x17, 0x1c,
- 0x1e, 0x1c, 0x14, 0x21, 0x00, 0x20, 0x83, 0xb0,
- 0xf3, 0xf7, 0xac, 0xfa, 0x05, 0x1c, 0x04, 0x68,
- 0x12, 0x20, 0x00, 0xab, 0x3c, 0x00, 0x88, 0xe0,
- 0x00, 0x00, 0x98, 0x80, 0x06, 0x22, 0x60, 0x1d,
- 0x03, 0x99, 0xf2, 0xf7, 0x32, 0xfa, 0x00, 0x20,
- 0x20, 0x71, 0x27, 0x73, 0x04, 0x99, 0x20, 0x1c,
- 0xe1, 0x72, 0x31, 0x1c, 0x06, 0x22, 0x0d, 0x30,
- 0xf2, 0xf7, 0x27, 0xfa, 0x02, 0x95, 0x01, 0xa8,
- 0xff, 0xf7, 0x13, 0xfa, 0x07, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0xf8, 0xb5, 0x06, 0x1c, 0x0f, 0x1c,
- 0x0c, 0x21, 0x00, 0x20, 0xf3, 0xf7, 0x3c, 0x00,
- 0xc4, 0xe0, 0x00, 0x00, 0x89, 0xfa, 0x05, 0x68,
- 0x04, 0x1c, 0x28, 0x1d, 0x06, 0x22, 0x31, 0x1c,
- 0xf2, 0xf7, 0x12, 0xfa, 0x6f, 0x81, 0x20, 0x1c,
- 0xf8, 0xbd, 0x00, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x0d, 0x1c, 0x08, 0x21, 0x00, 0x20, 0xf3, 0xf7,
- 0x77, 0xfa, 0x01, 0x68, 0x8c, 0x71, 0x8d, 0x80,
- 0xb0, 0xbd, 0x00, 0x00, 0xf7, 0xb5, 0x0e, 0x1c,
- 0x10, 0x21, 0x17, 0x1c, 0x00, 0x20, 0xf3, 0xf7,
- 0x3c, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x6b, 0xfa,
- 0x04, 0x68, 0x05, 0x1c, 0x20, 0x1d, 0x06, 0x22,
- 0x00, 0x99, 0xf2, 0xf7, 0xf4, 0xf9, 0x66, 0x81,
- 0xa7, 0x81, 0x28, 0x1c, 0xfe, 0xbd, 0xf3, 0xb5,
- 0x0c, 0x1c, 0x08, 0x21, 0x00, 0x20, 0x85, 0xb0,
- 0xf3, 0xf7, 0x59, 0xfa, 0x06, 0x1c, 0x07, 0x68,
- 0xe0, 0x68, 0x00, 0x28, 0x02, 0xd0, 0x05, 0x99,
- 0x01, 0x29, 0x04, 0xd1, 0x05, 0x98, 0x38, 0x71,
- 0x00, 0x20, 0x3c, 0x00, 0x3c, 0xe1, 0x00, 0x00,
- 0x78, 0x71, 0x56, 0xe0, 0x03, 0x68, 0x01, 0x21,
- 0x03, 0x93, 0x20, 0x69, 0x02, 0x90, 0xfc, 0xf7,
- 0x17, 0xfb, 0x05, 0x1c, 0x02, 0x98, 0x32, 0x21,
- 0xfc, 0xf7, 0x12, 0xfb, 0x00, 0x22, 0xd2, 0x43,
- 0x01, 0x1c, 0x28, 0x1c, 0x04, 0xab, 0xf7, 0xf7,
- 0xb9, 0xf8, 0x00, 0x28, 0x04, 0xd1, 0x30, 0x1c,
- 0xf3, 0xf7, 0x02, 0xfa, 0x00, 0x26, 0x3c, 0xe0,
- 0x00, 0x2d, 0x05, 0xd0, 0x3c, 0x00, 0x78, 0xe1,
- 0x00, 0x00, 0x68, 0x78, 0x09, 0x38, 0x07, 0x28,
- 0x01, 0xd8, 0x32, 0x20, 0x28, 0x70, 0x1c, 0x21,
- 0x00, 0x20, 0xf3, 0xf7, 0x26, 0xfa, 0x01, 0x90,
- 0x05, 0x68, 0x01, 0x1c, 0x30, 0x1c, 0xf3, 0xf7,
- 0x40, 0xf9, 0xe0, 0x68, 0xf3, 0xf7, 0x0b, 0xfa,
- 0xa8, 0x61, 0xe1, 0x68, 0x01, 0x98, 0xf3, 0xf7,
- 0x38, 0xf9, 0x00, 0x20, 0xe0, 0x60, 0x05, 0x98,
- 0x80, 0x21, 0x08, 0x43, 0x38, 0x71, 0x3c, 0x00,
- 0xb4, 0xe1, 0x00, 0x00, 0x01, 0x20, 0x21, 0x1c,
- 0x14, 0x31, 0x78, 0x71, 0x28, 0x1c, 0x06, 0x22,
- 0xf2, 0xf7, 0x9a, 0xf9, 0x02, 0x9a, 0x29, 0x20,
- 0x00, 0x92, 0x00, 0x5d, 0x01, 0x21, 0xe2, 0x6a,
- 0x08, 0x28, 0x00, 0xd0, 0x00, 0x21, 0x28, 0x1c,
- 0x03, 0x9b, 0x02, 0xf0, 0x9d, 0xff, 0xa0, 0x6b,
- 0x28, 0x61, 0x20, 0x6c, 0x68, 0x61, 0x7f, 0x30,
- 0x01, 0xd1, 0x0f, 0x20, 0x68, 0x61, 0x30, 0x1c,
- 0x3c, 0x00, 0xf0, 0xe1, 0x00, 0x00, 0x07, 0xb0,
- 0xf0, 0xbd, 0x10, 0xb5, 0x04, 0x1c, 0x08, 0x21,
- 0x00, 0x20, 0xf3, 0xf7, 0xec, 0xf9, 0x01, 0x68,
- 0x0c, 0x71, 0x10, 0xbd, 0x00, 0x00, 0x01, 0x48,
- 0x00, 0x68, 0x70, 0x47, 0x00, 0x00, 0x28, 0x61,
- 0x01, 0x00, 0x01, 0x49, 0x08, 0x60, 0x70, 0x47,
- 0x00, 0x00, 0xe4, 0x65, 0x01, 0x00, 0x02, 0x1c,
- 0x01, 0x20, 0x00, 0x06, 0x08, 0x43, 0x80, 0xb5,
- 0x2d, 0x21, 0x3c, 0x00, 0x2c, 0xe2, 0x00, 0x00,
- 0x05, 0xf0, 0xc0, 0xfa, 0x80, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0x01, 0x28, 0x07, 0xd0, 0xf1, 0x28,
- 0x25, 0xd0, 0xf3, 0x28, 0x27, 0xd1, 0x02, 0x20,
- 0x02, 0xf0, 0xbc, 0xf9, 0x80, 0xbd, 0x00, 0x29,
- 0x1a, 0xd0, 0x01, 0x29, 0x03, 0xd0, 0xf2, 0x29,
- 0xf8, 0xd1, 0x88, 0x21, 0x1c, 0xe0, 0x10, 0x48,
- 0x01, 0x78, 0x00, 0x29, 0x05, 0xd1, 0x40, 0x78,
- 0x01, 0x28, 0xef, 0xd1, 0x3c, 0x00, 0x68, 0xe2,
- 0x00, 0x00, 0x00, 0xf0, 0x16, 0xfa, 0x80, 0xbd,
- 0x0b, 0x48, 0x14, 0x30, 0x00, 0x89, 0xfc, 0xf7,
- 0x5a, 0xfc, 0x01, 0x1c, 0x01, 0x22, 0x0f, 0x20,
- 0x05, 0xf0, 0x9f, 0xf9, 0x80, 0xbd, 0x04, 0xf0,
- 0x52, 0xfa, 0x80, 0xbd, 0x00, 0x20, 0xfa, 0xf7,
- 0x32, 0xfe, 0x80, 0xbd, 0x02, 0x21, 0x0f, 0x20,
- 0xf3, 0xf7, 0x05, 0xf8, 0x80, 0xbd, 0x84, 0x66,
- 0x01, 0x00, 0x01, 0x48, 0x00, 0x78, 0x3c, 0x00,
- 0xa4, 0xe2, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x74, 0x66, 0x01, 0x00, 0x01, 0x49, 0x00, 0x20,
- 0x48, 0x60, 0x70, 0x47, 0xec, 0x65, 0x01, 0x00,
- 0xf8, 0xb5, 0x0e, 0x1c, 0x13, 0x4d, 0x01, 0x1c,
- 0x14, 0x1c, 0x68, 0x22, 0x28, 0x1c, 0x1f, 0x1c,
- 0x0c, 0x30, 0xf2, 0xf7, 0x71, 0xf9, 0x0f, 0x49,
- 0x00, 0x20, 0xac, 0x39, 0x48, 0x60, 0x01, 0x21,
- 0x29, 0x60, 0x19, 0x21, 0x19, 0x2c, 0x6e, 0x67,
- 0x3c, 0x00, 0xe0, 0xe2, 0x00, 0x00, 0x00, 0xd3,
- 0x21, 0x1c, 0x29, 0x81, 0x09, 0x49, 0x14, 0x39,
- 0x88, 0x73, 0x8f, 0x74, 0xc8, 0x78, 0x01, 0x28,
- 0x08, 0xd0, 0x01, 0x21, 0x0f, 0x20, 0x05, 0xf0,
- 0x9c, 0xf9, 0x19, 0x20, 0xfc, 0xf7, 0x15, 0xfc,
- 0xfb, 0xf7, 0x99, 0xf8, 0x01, 0x20, 0xf8, 0xbd,
- 0x00, 0x00, 0x98, 0x66, 0x01, 0x00, 0x80, 0xb5,
- 0x01, 0x28, 0x02, 0xd1, 0x00, 0xf0, 0x2f, 0xf8,
- 0x80, 0xbd, 0x3c, 0x00, 0x1c, 0xe3, 0x00, 0x00,
- 0x01, 0x21, 0x1d, 0x20, 0xf2, 0xf7, 0xc0, 0xff,
- 0x80, 0xbd, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x01, 0x20, 0x07, 0x49, 0x00, 0x05, 0x80, 0xb5,
- 0x88, 0x60, 0x00, 0x22, 0x80, 0x21, 0x16, 0x20,
- 0x05, 0xf0, 0x4c, 0xf9, 0x04, 0xf0, 0x34, 0xfd,
- 0x02, 0x49, 0x08, 0x61, 0x80, 0xbd, 0x00, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0x24, 0x6d, 0x01, 0x00,
- 0x06, 0x4a, 0x80, 0xb5, 0x3c, 0x00, 0x58, 0xe3,
- 0x00, 0x00, 0xd1, 0x6a, 0x81, 0x42, 0x07, 0xd1,
- 0x10, 0x7f, 0x24, 0x23, 0x04, 0x49, 0x58, 0x43,
- 0x40, 0x18, 0xc0, 0x68, 0xf2, 0xf7, 0x35, 0xf8,
- 0x80, 0xbd, 0xd4, 0x79, 0x01, 0x00, 0x94, 0x46,
- 0x01, 0x00, 0x1d, 0x48, 0x1c, 0xb5, 0x00, 0x78,
- 0x00, 0x28, 0x2d, 0xd0, 0x1c, 0x48, 0x00, 0x68,
- 0x00, 0x28, 0x29, 0xd0, 0x1a, 0x4a, 0x1a, 0x4b,
- 0x04, 0x32, 0x11, 0x68, 0x1c, 0x69, 0x3c, 0x00,
- 0x94, 0xe3, 0x00, 0x00, 0xa1, 0x42, 0x22, 0xd1,
- 0x51, 0x68, 0x5b, 0x69, 0x99, 0x42, 0x1f, 0xd1,
- 0x16, 0x49, 0x49, 0x68, 0x93, 0x68, 0xc9, 0x1a,
- 0x81, 0x42, 0x19, 0xd2, 0xd0, 0x68, 0x14, 0x49,
- 0x01, 0x30, 0xd0, 0x60, 0x09, 0x68, 0x88, 0x42,
- 0x0c, 0xd9, 0x06, 0x22, 0xff, 0x21, 0x68, 0x46,
- 0xf2, 0xf7, 0x2e, 0xf9, 0xf3, 0xf7, 0xac, 0xfc,
- 0x01, 0x1c, 0x00, 0x23, 0x00, 0x22, 0x68, 0x46,
- 0x3c, 0x00, 0xd0, 0xe3, 0x00, 0x00, 0x02, 0xf0,
- 0xce, 0xf9, 0x01, 0x22, 0x1d, 0x20, 0x0a, 0x49,
- 0x05, 0xf0, 0xf7, 0xf8, 0x1c, 0xbd, 0xf7, 0xf7,
- 0x88, 0xf9, 0x04, 0x22, 0x81, 0x18, 0x08, 0x1c,
- 0xfc, 0xf7, 0x27, 0xfb, 0xf6, 0xe7, 0x1c, 0x75,
- 0x01, 0x00, 0x44, 0x75, 0x01, 0x00, 0x28, 0x61,
- 0x01, 0x00, 0x90, 0x5c, 0x01, 0x00, 0xf0, 0x59,
- 0x01, 0x00, 0xa0, 0x86, 0x01, 0x00, 0x80, 0xb5,
- 0x01, 0x68, 0x3c, 0x00, 0x0c, 0xe4, 0x00, 0x00,
- 0x00, 0x29, 0x15, 0xd1, 0x00, 0x79, 0x02, 0x28,
- 0x12, 0xd1, 0x08, 0x1c, 0xf7, 0xf7, 0x80, 0xf8,
- 0x00, 0x28, 0x0d, 0xd0, 0x03, 0xf0, 0xf2, 0xfc,
- 0x08, 0x30, 0x41, 0x8f, 0x00, 0x29, 0x07, 0xd1,
- 0x80, 0x69, 0x00, 0x28, 0x04, 0xd0, 0x80, 0x79,
- 0x06, 0x28, 0x01, 0xd1, 0xfc, 0xf7, 0x18, 0xfb,
- 0x80, 0xbd, 0x00, 0x00, 0x01, 0x49, 0x00, 0x20,
- 0x88, 0x62, 0x70, 0x47, 0x3c, 0x00, 0x48, 0xe4,
- 0x00, 0x00, 0x78, 0x69, 0x01, 0x00, 0xb0, 0xb5,
- 0x05, 0x4d, 0x04, 0x1c, 0xa9, 0x1d, 0xff, 0xf7,
- 0x14, 0xf8, 0x06, 0x22, 0x29, 0x1c, 0xa0, 0x18,
- 0xf2, 0xf7, 0x4b, 0xf8, 0xb0, 0xbd, 0x70, 0x7c,
- 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x1c, 0x15, 0x1c,
- 0xff, 0xf7, 0x07, 0xf8, 0x06, 0x22, 0x29, 0x1c,
- 0xa0, 0x18, 0xf2, 0xf7, 0x3e, 0xf8, 0xb0, 0xbd,
- 0x00, 0x00, 0x80, 0xb5, 0x0a, 0x30, 0x3c, 0x00,
- 0x84, 0xe4, 0x00, 0x00, 0xf7, 0xf7, 0xbc, 0xf9,
- 0x01, 0x23, 0x00, 0x28, 0x03, 0xd0, 0x05, 0x48,
- 0x00, 0x78, 0x01, 0x28, 0x04, 0xd1, 0x00, 0x22,
- 0x00, 0x21, 0x00, 0x20, 0x03, 0xf0, 0xc6, 0xfd,
- 0x80, 0xbd, 0x00, 0x00, 0xa0, 0x79, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x23, 0x00, 0x22, 0x00, 0x21,
- 0x00, 0x20, 0x03, 0xf0, 0xbb, 0xfd, 0x80, 0xbd,
- 0xb0, 0xb5, 0x05, 0x4d, 0xac, 0x79, 0x0a, 0x1c,
- 0x3c, 0x00, 0xc0, 0xe4, 0x00, 0x00, 0x01, 0x1c,
- 0x01, 0x23, 0x01, 0x20, 0x03, 0xf0, 0xb1, 0xfd,
- 0xac, 0x71, 0xb0, 0xbd, 0x00, 0x00, 0x20, 0x10,
- 0x07, 0x00, 0xf8, 0xb5, 0x06, 0x1c, 0x0c, 0x1c,
- 0x88, 0x07, 0x02, 0xd5, 0xf6, 0xf7, 0x47, 0xfa,
- 0x10, 0xe0, 0x60, 0x07, 0x0e, 0xd5, 0x17, 0x4f,
- 0xa3, 0x20, 0xc0, 0x5d, 0x15, 0x4d, 0x10, 0x28,
- 0x00, 0xd3, 0x15, 0x4d, 0x04, 0xf0, 0x59, 0xfc,
- 0xb9, 0x6f, 0x3c, 0x00, 0xfc, 0xe4, 0x00, 0x00,
- 0x40, 0x1a, 0x29, 0x1a, 0x01, 0x20, 0xf6, 0xf7,
- 0xc1, 0xfa, 0xe0, 0x07, 0x11, 0x49, 0xc0, 0x0f,
- 0x48, 0x60, 0x0c, 0xd0, 0x0d, 0x4c, 0x44, 0x3c,
- 0x20, 0x78, 0x03, 0x28, 0x0f, 0xd1, 0x00, 0x2e,
- 0x06, 0xd0, 0xf6, 0xf7, 0xf9, 0xf9, 0x01, 0x1c,
- 0x01, 0x20, 0xf6, 0xf7, 0xaf, 0xfa, 0xf8, 0xbd,
- 0x09, 0x49, 0x01, 0x20, 0xf6, 0xf7, 0xaa, 0xfa,
- 0x01, 0x20, 0x20, 0x70, 0x3c, 0x00, 0x38, 0xe5,
- 0x00, 0x00, 0xf7, 0xe7, 0x01, 0x21, 0x30, 0x1c,
- 0xf6, 0xf7, 0x89, 0xfa, 0xf2, 0xe7, 0xa6, 0x0e,
- 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00, 0xc4, 0x09,
- 0x00, 0x00, 0xb0, 0x57, 0x01, 0x00, 0x40, 0x42,
- 0x0f, 0x00, 0x80, 0xb5, 0x06, 0x28, 0x04, 0xdb,
- 0x05, 0x21, 0xff, 0x20, 0xf2, 0xf7, 0x9f, 0xfe,
- 0x80, 0xbd, 0x03, 0x4a, 0xc0, 0x00, 0x11, 0x50,
- 0x01, 0x21, 0x80, 0x18, 0x01, 0x71, 0x3c, 0x00,
- 0x74, 0xe5, 0x00, 0x00, 0x80, 0xbd, 0x00, 0x00,
- 0x9c, 0x5a, 0x01, 0x00, 0x01, 0x48, 0x80, 0x68,
- 0x70, 0x47, 0x00, 0x00, 0xd0, 0x60, 0x01, 0x00,
- 0xb0, 0xb5, 0x08, 0x4c, 0x25, 0x1d, 0x28, 0x1c,
- 0x21, 0x68, 0x00, 0xf0, 0xf1, 0xfe, 0x00, 0x28,
- 0x03, 0xd1, 0x01, 0x21, 0x04, 0x48, 0xf2, 0xf7,
- 0xcf, 0xfa, 0x28, 0x1c, 0x21, 0x68, 0x00, 0xf0,
- 0xfb, 0xfe, 0xb0, 0xbd, 0xc0, 0x60, 0x01, 0x00,
- 0x3c, 0x00, 0xb0, 0xe5, 0x00, 0x00, 0x2c, 0x10,
- 0x07, 0x00, 0xb0, 0xb5, 0x10, 0x4d, 0x0c, 0x1c,
- 0xa8, 0x68, 0x00, 0x28, 0x02, 0xd1, 0x04, 0xf0,
- 0xf4, 0xfb, 0x28, 0x60, 0x20, 0x1c, 0x04, 0xf0,
- 0x38, 0xfb, 0x01, 0x21, 0x03, 0x20, 0x03, 0xf0,
- 0xc4, 0xfe, 0x04, 0xf0, 0xf0, 0xfb, 0xa8, 0x68,
- 0x00, 0x28, 0x0b, 0xd1, 0x04, 0xf0, 0xe5, 0xfb,
- 0x29, 0x68, 0x00, 0x1b, 0x40, 0x1a, 0x69, 0x68,
- 0x40, 0x18, 0x3c, 0x00, 0xec, 0xe5, 0x00, 0x00,
- 0x41, 0x08, 0x40, 0x18, 0x28, 0x60, 0x01, 0x20,
- 0xa8, 0x60, 0xb0, 0xbd, 0xd0, 0x60, 0x01, 0x00,
- 0xf8, 0xb5, 0x1f, 0x4e, 0x00, 0x24, 0xb0, 0x68,
- 0x00, 0x28, 0x02, 0xd1, 0x04, 0xf0, 0xd0, 0xfb,
- 0x70, 0x60, 0x05, 0xf0, 0x61, 0xf8, 0x04, 0xf0,
- 0x8f, 0xfb, 0x05, 0x1c, 0xf9, 0xf7, 0x66, 0xfe,
- 0x31, 0x68, 0x18, 0x4a, 0x41, 0x18, 0x12, 0x68,
- 0xe8, 0x0b, 0x00, 0x2a, 0x3c, 0x00, 0x28, 0xe6,
- 0x00, 0x00, 0x00, 0xd1, 0xa8, 0x0a, 0x40, 0x18,
- 0x85, 0x42, 0x1f, 0xd9, 0x14, 0x4f, 0x2d, 0x1a,
- 0x38, 0x1c, 0x20, 0x30, 0x81, 0x79, 0x00, 0xab,
- 0x19, 0x70, 0xc0, 0x79, 0x58, 0x70, 0x05, 0xf0,
- 0x6e, 0xf8, 0x00, 0x28, 0x03, 0xd1, 0x02, 0x21,
- 0x8f, 0x20, 0xf2, 0xf7, 0x28, 0xfe, 0x29, 0x1c,
- 0x0c, 0x48, 0xf2, 0x68, 0xf8, 0xf7, 0x09, 0xfc,
- 0x00, 0x28, 0x04, 0xd0, 0x01, 0x1c, 0x3c, 0x00,
- 0x64, 0xe6, 0x00, 0x00, 0x28, 0x1c, 0xff, 0xf7,
- 0xa5, 0xff, 0x01, 0x24, 0x00, 0xab, 0x18, 0x88,
- 0xf8, 0x84, 0x05, 0xf0, 0x47, 0xf8, 0x20, 0x1c,
- 0xf8, 0xbd, 0x00, 0x00, 0xd0, 0x60, 0x01, 0x00,
- 0xf4, 0x74, 0x01, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0x89, 0x13, 0x01, 0x00, 0x01, 0x49, 0x01, 0x20,
- 0xc8, 0x60, 0x70, 0x47, 0xd0, 0x60, 0x01, 0x00,
- 0x06, 0x48, 0x80, 0xb5, 0x00, 0x68, 0x01, 0x28,
- 0x3c, 0x00, 0xa0, 0xe6, 0x00, 0x00, 0x07, 0xd1,
- 0x04, 0x48, 0xac, 0x38, 0x01, 0x69, 0x03, 0x48,
- 0x00, 0xf0, 0x79, 0xfe, 0xf3, 0xf7, 0x2b, 0xfa,
- 0x80, 0xbd, 0x98, 0x66, 0x01, 0x00, 0x34, 0x63,
- 0x01, 0x00, 0x80, 0xb5, 0x42, 0x78, 0x81, 0x68,
- 0x00, 0x79, 0x03, 0xf0, 0xde, 0xff, 0x00, 0x28,
- 0x01, 0xd1, 0xf5, 0xf7, 0xb6, 0xf9, 0x80, 0xbd,
- 0x00, 0x00, 0x1f, 0xb5, 0x04, 0xf0, 0x69, 0xfb,
- 0xf6, 0xf7, 0x3c, 0x00, 0xdc, 0xe6, 0x00, 0x00,
- 0x91, 0xff, 0x16, 0x4c, 0x02, 0x28, 0x03, 0xd1,
- 0xff, 0xf7, 0xdc, 0xfd, 0x04, 0x28, 0x02, 0xd3,
- 0x00, 0x20, 0x20, 0x70, 0x1f, 0xbd, 0xfb, 0xf7,
- 0xf7, 0xfc, 0x00, 0x28, 0xfa, 0xd1, 0x60, 0x6a,
- 0x00, 0x28, 0xf7, 0xd0, 0x20, 0x78, 0x80, 0x07,
- 0xf4, 0xd4, 0x09, 0x21, 0x16, 0x20, 0x04, 0xf0,
- 0x93, 0xff, 0x01, 0x20, 0x20, 0x70, 0x0b, 0x4c,
- 0x09, 0x49, 0x02, 0x90, 0x3c, 0x00, 0x18, 0xe7,
- 0x00, 0x00, 0x01, 0x94, 0x00, 0x91, 0x04, 0xf0,
- 0x46, 0xfb, 0x00, 0x19, 0x03, 0x90, 0x68, 0x46,
- 0xfd, 0xf7, 0xb5, 0xfb, 0x00, 0x22, 0x16, 0x21,
- 0x84, 0x20, 0x05, 0xf0, 0x3e, 0xf8, 0xdc, 0xe7,
- 0x00, 0x00, 0x60, 0x6c, 0x01, 0x00, 0x61, 0xed,
- 0x00, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x23, 0x48,
- 0x70, 0xb5, 0x80, 0x78, 0x9c, 0xb0, 0x01, 0x28,
- 0x3e, 0xd1, 0x20, 0x4c, 0x09, 0xa8, 0x3c, 0x00,
- 0x54, 0xe7, 0x00, 0x00, 0x80, 0x3c, 0x61, 0x1c,
- 0xfe, 0xf7, 0x92, 0xfe, 0x04, 0x20, 0x11, 0xad,
- 0x68, 0x72, 0xa0, 0x6f, 0x19, 0xa9, 0x18, 0x90,
- 0x7c, 0x20, 0x00, 0x5d, 0x01, 0x26, 0x08, 0x71,
- 0x1d, 0x20, 0x00, 0x5d, 0x00, 0x28, 0x06, 0xd0,
- 0x10, 0x96, 0x12, 0x96, 0xfc, 0xf7, 0xf6, 0xfa,
- 0x28, 0x72, 0x20, 0x7a, 0x11, 0x90, 0xf3, 0xf7,
- 0xcd, 0xff, 0x6a, 0x21, 0x08, 0x53, 0x40, 0x34,
- 0x3c, 0x00, 0x90, 0xe7, 0x00, 0x00, 0x00, 0x22,
- 0x01, 0xa9, 0x06, 0xa8, 0xf6, 0xf7, 0xcd, 0xff,
- 0x21, 0x1c, 0x00, 0x20, 0xfb, 0xf7, 0xcb, 0xfb,
- 0x06, 0xa9, 0xfb, 0xf7, 0xc8, 0xfb, 0x01, 0xa9,
- 0xfb, 0xf7, 0xc5, 0xfb, 0x0a, 0x49, 0x09, 0x68,
- 0x00, 0x29, 0x07, 0xd0, 0x33, 0x1c, 0x0a, 0x22,
- 0x69, 0x46, 0xfb, 0xf7, 0xda, 0xfb, 0x00, 0x9a,
- 0x07, 0x21, 0x91, 0x70, 0x0c, 0x90, 0x09, 0xa8,
- 0xfe, 0xf7, 0x3c, 0x00, 0xcc, 0xe7, 0x00, 0x00,
- 0x7b, 0xfe, 0x1c, 0xb0, 0x70, 0xbd, 0x00, 0x00,
- 0x84, 0x66, 0x01, 0x00, 0xe4, 0x62, 0x01, 0x00,
- 0xf8, 0xb5, 0x04, 0x1c, 0xc0, 0x68, 0xff, 0x22,
- 0x01, 0x68, 0x12, 0x02, 0x0e, 0x1c, 0x08, 0x7b,
- 0x49, 0x7b, 0x09, 0x02, 0x11, 0x40, 0x08, 0x43,
- 0x05, 0x1c, 0x31, 0x1c, 0x06, 0x22, 0xa0, 0x18,
- 0xf1, 0xf7, 0x7c, 0xfe, 0x06, 0x22, 0xb1, 0x18,
- 0x20, 0x1c, 0xf1, 0xf7, 0x3c, 0x00, 0x08, 0xe8,
- 0x00, 0x00, 0x77, 0xfe, 0x28, 0x0a, 0x29, 0x02,
- 0x08, 0x43, 0x00, 0x04, 0x03, 0x21, 0x49, 0x02,
- 0x00, 0x0c, 0x88, 0x42, 0x08, 0xd2, 0xe0, 0x68,
- 0x01, 0x89, 0x0e, 0x39, 0x01, 0x81, 0xe0, 0x68,
- 0x01, 0x68, 0x0e, 0x31, 0x01, 0x60, 0xf8, 0xbd,
- 0x00, 0x26, 0x20, 0x1c, 0x10, 0x30, 0x03, 0xf0,
- 0xe8, 0xfa, 0x21, 0x8b, 0x00, 0x29, 0x05, 0xd1,
- 0xe1, 0x7d, 0x00, 0x29, 0x0b, 0xd0, 0x3c, 0x00,
- 0x44, 0xe8, 0x00, 0x00, 0x80, 0x69, 0x80, 0x07,
- 0x08, 0xd4, 0xe0, 0x68, 0x01, 0x26, 0x01, 0x89,
- 0x02, 0x39, 0x01, 0x81, 0xe0, 0x68, 0x01, 0x68,
- 0x02, 0x31, 0x06, 0xe0, 0xe0, 0x68, 0x01, 0x89,
- 0x06, 0x39, 0x01, 0x81, 0xe0, 0x68, 0x01, 0x68,
- 0x06, 0x31, 0x01, 0x60, 0x14, 0x49, 0x00, 0x20,
- 0x0b, 0x1f, 0x42, 0x00, 0x9a, 0x5a, 0xaa, 0x42,
- 0x02, 0xd1, 0x11, 0x49, 0x06, 0x31, 0x02, 0xe0,
- 0x3c, 0x00, 0x80, 0xe8, 0x00, 0x00, 0x01, 0x30,
- 0x02, 0x28, 0xf5, 0xd3, 0xe0, 0x68, 0x06, 0x22,
- 0x00, 0x68, 0xf1, 0xf7, 0x34, 0xfe, 0x01, 0x2e,
- 0xcb, 0xd1, 0x81, 0x20, 0x00, 0xab, 0x18, 0x80,
- 0xe1, 0x7d, 0x20, 0x8b, 0x49, 0x03, 0x08, 0x43,
- 0x31, 0x03, 0x08, 0x43, 0x00, 0x04, 0x00, 0x0c,
- 0x01, 0x0a, 0x00, 0x02, 0x08, 0x43, 0x58, 0x80,
- 0xe0, 0x68, 0x19, 0x88, 0x00, 0x68, 0xc1, 0x80,
- 0x59, 0x88, 0x3c, 0x00, 0xbc, 0xe8, 0x00, 0x00,
- 0x01, 0x81, 0xb5, 0xe7, 0x6a, 0x46, 0x01, 0x00,
- 0xb0, 0xb5, 0x0d, 0x1c, 0x01, 0x89, 0x06, 0x22,
- 0x08, 0x31, 0x01, 0x81, 0x04, 0x68, 0x04, 0x49,
- 0x08, 0x3c, 0x04, 0x60, 0x20, 0x1c, 0xf1, 0xf7,
- 0x0d, 0xfe, 0xe5, 0x80, 0xb0, 0xbd, 0x00, 0x00,
- 0x6a, 0x46, 0x01, 0x00, 0xf8, 0xb5, 0x00, 0x29,
- 0x01, 0xd0, 0x00, 0x28, 0x01, 0xd1, 0x00, 0x20,
- 0xf8, 0xbd, 0x09, 0x04, 0x3c, 0x00, 0xf8, 0xe8,
- 0x00, 0x00, 0x09, 0x0c, 0xf2, 0xf7, 0x43, 0xff,
- 0x06, 0x1c, 0x05, 0x1c, 0x00, 0x27, 0x20, 0xe0,
- 0x2c, 0x89, 0x29, 0x68, 0x02, 0x2c, 0x01, 0xd2,
- 0x02, 0x20, 0x01, 0xe0, 0x48, 0x78, 0x02, 0x30,
- 0x84, 0x42, 0x02, 0xdd, 0x24, 0x1a, 0x09, 0x18,
- 0xf4, 0xe7, 0x84, 0x42, 0x10, 0xd0, 0x01, 0x1b,
- 0x0a, 0x04, 0x01, 0x04, 0x09, 0x0c, 0x12, 0x0c,
- 0x28, 0x1c, 0xf2, 0xf7, 0x9e, 0xfe, 0x3c, 0x00,
- 0x34, 0xe9, 0x00, 0x00, 0x00, 0x28, 0x06, 0xd1,
- 0xe8, 0x68, 0xf2, 0xf7, 0x2d, 0xfe, 0xef, 0x60,
- 0x28, 0x89, 0x00, 0x1b, 0x28, 0x81, 0xed, 0x68,
- 0x00, 0x2d, 0xdc, 0xd1, 0x30, 0x1c, 0xd1, 0xe7,
- 0xf8, 0xb5, 0x85, 0x68, 0x04, 0x1c, 0x80, 0x69,
- 0x2e, 0x1c, 0x00, 0x28, 0x0d, 0xd0, 0x71, 0x68,
- 0xf2, 0xf7, 0xf6, 0xfd, 0xa0, 0x69, 0xf2, 0xf7,
- 0x17, 0xfe, 0x06, 0xe0, 0x00, 0x21, 0xc1, 0x60,
- 0x3c, 0x00, 0x70, 0xe9, 0x00, 0x00, 0xf1, 0x60,
- 0xa0, 0x8d, 0x36, 0x68, 0x01, 0x38, 0xa0, 0x85,
- 0xf0, 0x68, 0x00, 0x28, 0xf5, 0xd1, 0x30, 0x68,
- 0xa0, 0x60, 0xa0, 0x8d, 0x01, 0x38, 0x00, 0x04,
- 0x00, 0x0c, 0xa0, 0x85, 0x02, 0xd0, 0x20, 0x1c,
- 0xf9, 0xf7, 0x39, 0xf8, 0x2a, 0x4f, 0x2a, 0x48,
- 0x00, 0x68, 0x00, 0x28, 0x03, 0xd0, 0x06, 0x21,
- 0x68, 0x68, 0xfa, 0xf7, 0x7c, 0xfd, 0x68, 0x68,
- 0x00, 0x68, 0x3c, 0x00, 0xac, 0xe9, 0x00, 0x00,
- 0x81, 0x78, 0x00, 0x29, 0x2b, 0xd1, 0xc1, 0x78,
- 0x00, 0x29, 0x30, 0xd1, 0x21, 0x8e, 0x01, 0x39,
- 0x21, 0x86, 0xfb, 0xf7, 0x15, 0xf8, 0xa1, 0x6a,
- 0x08, 0x1a, 0xa0, 0x62, 0xe1, 0x69, 0x88, 0x42,
- 0x03, 0xd9, 0x04, 0x21, 0x02, 0x20, 0xf2, 0xf7,
- 0x67, 0xfc, 0xb8, 0x68, 0x00, 0x28, 0x1e, 0xd0,
- 0x1a, 0x49, 0x20, 0x8e, 0x49, 0x68, 0x0c, 0x22,
- 0x52, 0x1a, 0x90, 0x42, 0x3c, 0x00, 0xe8, 0xe9,
- 0x00, 0x00, 0x08, 0xd3, 0x19, 0x23, 0x9b, 0x01,
- 0xaf, 0x22, 0x92, 0x01, 0x59, 0x43, 0xa0, 0x6a,
- 0x51, 0x1a, 0x88, 0x42, 0x0e, 0xd2, 0x00, 0x21,
- 0x0c, 0x20, 0x03, 0xf0, 0xac, 0xfc, 0x00, 0x20,
- 0xb8, 0x60, 0x07, 0xe0, 0x01, 0x29, 0x05, 0xd1,
- 0xc0, 0x78, 0x17, 0x28, 0x02, 0xd1, 0xa0, 0x8e,
- 0x01, 0x38, 0xa0, 0x86, 0x2a, 0x1d, 0x06, 0xca,
- 0xe0, 0x68, 0x63, 0x69, 0xf1, 0xf7, 0x3c, 0x00,
- 0x24, 0xea, 0x00, 0x00, 0xdc, 0xfc, 0xb5, 0x42,
- 0x01, 0xd0, 0x2d, 0x68, 0xb4, 0xe7, 0xa0, 0x8d,
- 0x00, 0x28, 0x03, 0xd1, 0x05, 0x48, 0xb9, 0x69,
- 0x00, 0xf0, 0x9e, 0xfc, 0xf8, 0xbd, 0x00, 0x00,
- 0xfc, 0x5a, 0x01, 0x00, 0xcc, 0x5c, 0x01, 0x00,
- 0x18, 0x57, 0x01, 0x00, 0xc4, 0x60, 0x01, 0x00,
- 0x89, 0x07, 0x07, 0x4b, 0xca, 0x0f, 0x80, 0xb5,
- 0x19, 0x7c, 0x00, 0x29, 0x06, 0xd0, 0x81, 0x43,
- 0x3c, 0x00, 0x60, 0xea, 0x00, 0x00, 0x19, 0x74,
- 0x03, 0xd1, 0x07, 0x21, 0x15, 0x20, 0x04, 0xf0,
- 0xa2, 0xfe, 0x80, 0xbd, 0x00, 0x00, 0x78, 0x69,
- 0x01, 0x00, 0x80, 0xb5, 0x01, 0x1c, 0x01, 0x20,
- 0xff, 0xf7, 0xe9, 0xff, 0x80, 0xbd, 0x80, 0xb5,
- 0x01, 0x1c, 0x02, 0x20, 0xff, 0xf7, 0xe3, 0xff,
- 0x80, 0xbd, 0xb0, 0xb5, 0x1b, 0x4c, 0x60, 0x68,
- 0xfc, 0xf7, 0x2f, 0xff, 0x20, 0x68, 0x00, 0x25,
- 0x40, 0x68, 0x3c, 0x00, 0x9c, 0xea, 0x00, 0x00,
- 0x00, 0x28, 0x03, 0xd0, 0xfd, 0xf7, 0x18, 0xfc,
- 0x20, 0x68, 0x45, 0x60, 0x60, 0x68, 0xfc, 0xf7,
- 0xc5, 0xfe, 0x14, 0x48, 0x61, 0x68, 0x00, 0xf0,
- 0x61, 0xfc, 0xa0, 0x7a, 0x01, 0x28, 0x05, 0xd0,
- 0x02, 0x28, 0x03, 0xd0, 0x20, 0x68, 0x00, 0x68,
- 0x00, 0xf0, 0xde, 0xf8, 0x01, 0x21, 0x1f, 0x20,
- 0x04, 0xf0, 0xb2, 0xfd, 0x00, 0x21, 0x1f, 0x20,
- 0x04, 0xf0, 0xae, 0xfd, 0x3c, 0x00, 0xd8, 0xea,
- 0x00, 0x00, 0x02, 0x21, 0x1f, 0x20, 0x04, 0xf0,
- 0xaa, 0xfd, 0xa5, 0x72, 0x21, 0x68, 0x2c, 0x20,
- 0x40, 0x5c, 0x89, 0x68, 0xf1, 0xf7, 0x76, 0xfc,
- 0x60, 0x68, 0xfc, 0xf7, 0xe4, 0xfe, 0x20, 0x68,
- 0x05, 0x62, 0xb0, 0xbd, 0x00, 0x00, 0x14, 0x7a,
- 0x01, 0x00, 0x34, 0x63, 0x01, 0x00, 0x04, 0x49,
- 0x0a, 0x68, 0xc8, 0x68, 0x92, 0x6a, 0x00, 0x2a,
- 0x01, 0xd0, 0x09, 0x69, 0x08, 0x18, 0x3c, 0x00,
- 0x14, 0xeb, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x14, 0x7a, 0x01, 0x00, 0xb0, 0xb5, 0x13, 0x4c,
- 0x05, 0x1c, 0xa0, 0x7a, 0x01, 0x38, 0x02, 0x28,
- 0x19, 0xd8, 0x01, 0x21, 0x1f, 0x20, 0x04, 0xf0,
- 0x81, 0xfd, 0x20, 0x68, 0xfc, 0x23, 0x01, 0x1c,
- 0x20, 0x30, 0x02, 0x7b, 0x1a, 0x40, 0x02, 0x73,
- 0x00, 0x2d, 0x0f, 0xd0, 0x01, 0x23, 0x1a, 0x43,
- 0x02, 0x73, 0xa0, 0x7a, 0x03, 0x28, 0x07, 0xd1,
- 0x3c, 0x00, 0x50, 0xeb, 0x00, 0x00, 0x01, 0x20,
- 0x01, 0xf0, 0xe7, 0xfd, 0x00, 0x28, 0x01, 0xd1,
- 0xff, 0xf7, 0x97, 0xff, 0xb0, 0xbd, 0x4b, 0x62,
- 0xb0, 0xbd, 0x02, 0x21, 0x11, 0x43, 0x01, 0x73,
- 0xf6, 0xe7, 0x14, 0x7a, 0x01, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x0a, 0x30, 0xf6, 0xf7, 0x43, 0xfe,
- 0x00, 0x28, 0x0c, 0xd0, 0x22, 0x88, 0x0a, 0x49,
- 0x0b, 0x7a, 0x90, 0x04, 0xc0, 0x0f, 0x00, 0x2b,
- 0x06, 0xd1, 0x3c, 0x00, 0x8c, 0xeb, 0x00, 0x00,
- 0x12, 0x06, 0x92, 0x0e, 0x20, 0x2a, 0x00, 0xd1,
- 0x01, 0x20, 0xc8, 0x60, 0x10, 0xbd, 0x00, 0x28,
- 0xfc, 0xd1, 0x00, 0x22, 0x24, 0x21, 0x80, 0x20,
- 0x04, 0xf0, 0x04, 0xfe, 0x10, 0xbd, 0x00, 0x00,
- 0x04, 0x7a, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x1c,
- 0x1f, 0x21, 0x80, 0x20, 0x04, 0xf0, 0xfa, 0xfd,
- 0x80, 0xbd, 0x00, 0x00, 0xf8, 0xb5, 0x1d, 0x4e,
- 0x04, 0x1c, 0x30, 0x68, 0x3c, 0x00, 0xc8, 0xeb,
- 0x00, 0x00, 0x1d, 0x1c, 0x47, 0x68, 0x20, 0x1c,
- 0xf1, 0xf7, 0x0a, 0xfc, 0xfb, 0xf7, 0x87, 0xfa,
- 0x00, 0x28, 0x04, 0xd0, 0x28, 0x1c, 0xf2, 0xf7,
- 0x2a, 0xfb, 0x00, 0x28, 0x28, 0xd1, 0x20, 0x88,
- 0x40, 0x05, 0x25, 0xd4, 0x30, 0x68, 0x00, 0x68,
- 0xfe, 0xf7, 0x59, 0xf9, 0x00, 0x28, 0x03, 0xd1,
- 0xfd, 0xf7, 0x89, 0xfa, 0xf1, 0xf7, 0xed, 0xfb,
- 0x30, 0x68, 0x00, 0x25, 0x40, 0x68, 0x3c, 0x00,
- 0x04, 0xec, 0x00, 0x00, 0x00, 0x28, 0x03, 0xd0,
- 0xfd, 0xf7, 0x64, 0xfb, 0x30, 0x68, 0x45, 0x60,
- 0x20, 0x88, 0x00, 0x09, 0x00, 0x07, 0x03, 0xd1,
- 0x04, 0xf0, 0xc8, 0xf8, 0x61, 0x88, 0x45, 0x18,
- 0x30, 0x68, 0x45, 0x61, 0x81, 0x6a, 0x01, 0x31,
- 0x81, 0x62, 0x20, 0x88, 0x80, 0x04, 0xc1, 0x0f,
- 0x02, 0x48, 0xf8, 0xf7, 0xcd, 0xff, 0xf8, 0xbd,
- 0x14, 0x7a, 0x01, 0x00, 0xb1, 0xeb, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xec, 0x00, 0x00, 0xb0, 0xb5,
- 0x0e, 0x4c, 0x05, 0x1c, 0x60, 0x68, 0xfc, 0xf7,
- 0xf6, 0xfd, 0x0c, 0x48, 0x61, 0x68, 0x00, 0xf0,
- 0x92, 0xfb, 0x00, 0x21, 0x24, 0x20, 0x04, 0xf0,
- 0xec, 0xfc, 0x00, 0x22, 0xd2, 0x43, 0x80, 0x21,
- 0x24, 0x20, 0x04, 0xf0, 0xb8, 0xfc, 0x00, 0x20,
- 0xe0, 0x60, 0x20, 0x72, 0x20, 0x68, 0x01, 0x68,
- 0x28, 0x06, 0x00, 0x0e, 0xf1, 0xf7, 0xb0, 0xfb,
- 0xb0, 0xbd, 0x3c, 0x00, 0x7c, 0xec, 0x00, 0x00,
- 0x04, 0x7a, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0xc0, 0x68, 0xf2, 0xf7,
- 0x85, 0xfc, 0x20, 0x1c, 0xf2, 0xf7, 0xb0, 0xfd,
- 0x10, 0xbd, 0x00, 0x00, 0x70, 0xb5, 0x1c, 0x4e,
- 0x05, 0x1c, 0xb0, 0x7a, 0x2c, 0x1c, 0x40, 0x34,
- 0x02, 0x28, 0x26, 0xd1, 0xa0, 0x8b, 0x31, 0x89,
- 0x88, 0x42, 0x22, 0xd1, 0x30, 0x68, 0x41, 0x6a,
- 0x00, 0x29, 0x08, 0xd0, 0x3c, 0x00, 0xb8, 0xec,
- 0x00, 0x00, 0x20, 0x30, 0x00, 0x7b, 0xc0, 0x07,
- 0x04, 0xd5, 0x01, 0x20, 0x01, 0xf0, 0x2f, 0xfd,
- 0x00, 0x28, 0x18, 0xd1, 0x60, 0x78, 0x00, 0x28,
- 0x09, 0xd1, 0x30, 0x68, 0x02, 0x23, 0x20, 0x30,
- 0x02, 0x7b, 0x0d, 0x49, 0x52, 0x08, 0x52, 0x00,
- 0x1a, 0x43, 0x02, 0x73, 0x01, 0xe0, 0xff, 0x21,
- 0xf5, 0x31, 0x01, 0x22, 0x1f, 0x20, 0x04, 0xf0,
- 0x6e, 0xfc, 0x03, 0x20, 0xb0, 0x72, 0x3c, 0x00,
- 0xf4, 0xec, 0x00, 0x00, 0x02, 0xe0, 0x28, 0x1c,
- 0xff, 0xf7, 0xc4, 0xff, 0x60, 0x78, 0x00, 0x28,
- 0x03, 0xd1, 0x29, 0x1c, 0x01, 0x20, 0x03, 0xf0,
- 0x29, 0xfb, 0x70, 0xbd, 0x14, 0x7a, 0x01, 0x00,
- 0x50, 0xc3, 0x00, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x60, 0x34, 0xe0, 0x79, 0x0e, 0x4d, 0x00, 0x28,
- 0x0a, 0xd1, 0x02, 0x20, 0xa8, 0x72, 0x28, 0x68,
- 0x40, 0x68, 0x00, 0x28, 0x04, 0xd1, 0x0b, 0x48,
- 0x3c, 0x00, 0x30, 0xed, 0x00, 0x00, 0xfd, 0xf7,
- 0xd0, 0xfa, 0x29, 0x68, 0x48, 0x60, 0x04, 0xf0,
- 0x38, 0xf8, 0x29, 0x68, 0xc8, 0x61, 0xff, 0xf7,
- 0xe0, 0xfe, 0x29, 0x68, 0x09, 0x69, 0x08, 0x1a,
- 0x03, 0xf0, 0x6f, 0xff, 0x00, 0x28, 0x01, 0xd0,
- 0xe0, 0x79, 0xa0, 0x71, 0xb0, 0xbd, 0x14, 0x7a,
- 0x01, 0x00, 0xc1, 0xeb, 0x00, 0x00, 0xf8, 0xb5,
- 0x04, 0x1c, 0x00, 0x26, 0x04, 0xf0, 0x21, 0xf8,
- 0x05, 0x1c, 0x3c, 0x00, 0x6c, 0xed, 0x00, 0x00,
- 0x22, 0x48, 0x00, 0x27, 0x07, 0x70, 0xa1, 0x07,
- 0x04, 0xd0, 0xe1, 0x07, 0xc9, 0x0f, 0x01, 0x62,
- 0xc5, 0x61, 0x01, 0x26, 0x41, 0x6b, 0x00, 0x29,
- 0x34, 0xd1, 0x00, 0x2e, 0x32, 0xd0, 0x06, 0x1c,
- 0xf9, 0xf7, 0x44, 0xff, 0x31, 0x6b, 0x1a, 0x4b,
- 0x41, 0x1a, 0xa2, 0x07, 0x12, 0xd5, 0xda, 0x68,
- 0x00, 0x2a, 0x08, 0xdd, 0x91, 0x42, 0x1a, 0x68,
- 0x02, 0xda, 0x14, 0x09, 0x3c, 0x00, 0xa8, 0xed,
- 0x00, 0x00, 0xa2, 0x18, 0x06, 0xe0, 0x14, 0x09,
- 0x12, 0x1b, 0x03, 0xe0, 0x0a, 0x43, 0x02, 0xd1,
- 0x1a, 0x68, 0x52, 0x00, 0x1a, 0x60, 0xb7, 0x63,
- 0x0a, 0xe0, 0xb2, 0x6b, 0x01, 0x32, 0xb2, 0x63,
- 0x02, 0x2a, 0x1a, 0x68, 0x01, 0xdd, 0x94, 0x08,
- 0x00, 0xe0, 0x14, 0x09, 0x12, 0x1b, 0x1a, 0x60,
- 0xd9, 0x60, 0x30, 0x63, 0xf5, 0x62, 0x18, 0x68,
- 0x08, 0x49, 0x88, 0x42, 0x01, 0xd9, 0x3c, 0x00,
- 0xe4, 0xed, 0x00, 0x00, 0x19, 0x60, 0x03, 0xe0,
- 0x64, 0x28, 0x01, 0xd2, 0x64, 0x20, 0x18, 0x60,
- 0xf5, 0xf7, 0xfc, 0xfd, 0xf8, 0xbd, 0x00, 0x00,
- 0x60, 0x6c, 0x01, 0x00, 0xb0, 0x57, 0x01, 0x00,
- 0x20, 0xa1, 0x07, 0x00, 0xfe, 0xb5, 0x04, 0x1c,
- 0x00, 0x20, 0x50, 0x4d, 0x00, 0x21, 0x68, 0x61,
- 0x20, 0x69, 0xfb, 0xf7, 0xb3, 0xfc, 0x07, 0x1c,
- 0x20, 0x69, 0x03, 0x21, 0xfb, 0xf7, 0xae, 0xfc,
- 0x3c, 0x00, 0x20, 0xee, 0x00, 0x00, 0x00, 0x28,
- 0x03, 0xd0, 0x80, 0x78, 0x29, 0x78, 0x88, 0x42,
- 0x63, 0xd1, 0x47, 0x4d, 0x20, 0x1c, 0x14, 0x30,
- 0x39, 0x1c, 0x06, 0x1c, 0x2a, 0x78, 0x02, 0xf0,
- 0x5a, 0xfa, 0x00, 0x28, 0x59, 0xd1, 0xe0, 0x68,
- 0x05, 0x68, 0x41, 0x48, 0x01, 0x95, 0x58, 0x30,
- 0x02, 0x90, 0xfb, 0xf7, 0x6a, 0xff, 0x3e, 0x4d,
- 0x19, 0x35, 0x00, 0x28, 0x0b, 0xd0, 0x28, 0x1c,
- 0xfb, 0xf7, 0x3c, 0x00, 0x5c, 0xee, 0x00, 0x00,
- 0x55, 0xff, 0x00, 0x28, 0x1e, 0xd1, 0x31, 0x1c,
- 0x28, 0x1c, 0xfb, 0xf7, 0x65, 0xff, 0x00, 0x28,
- 0x42, 0xd0, 0x17, 0xe0, 0x28, 0x1c, 0xfb, 0xf7,
- 0x49, 0xff, 0x00, 0x28, 0x06, 0xd0, 0x39, 0x1c,
- 0x02, 0x98, 0xfb, 0xf7, 0x63, 0xff, 0x00, 0x28,
- 0x36, 0xd0, 0x0b, 0xe0, 0x39, 0x1c, 0x02, 0x98,
- 0xfb, 0xf7, 0x5c, 0xff, 0x00, 0x28, 0x2f, 0xd0,
- 0x31, 0x1c, 0x28, 0x1c, 0x3c, 0x00, 0x98, 0xee,
- 0x00, 0x00, 0xfb, 0xf7, 0x4c, 0xff, 0x00, 0x28,
- 0x29, 0xd0, 0x30, 0x1c, 0xf6, 0xf7, 0xad, 0xfc,
- 0x29, 0x4a, 0x18, 0x32, 0x11, 0x7c, 0x00, 0x29,
- 0x04, 0xd0, 0x51, 0x6a, 0x00, 0x29, 0x01, 0xd0,
- 0x00, 0x28, 0x1c, 0xd1, 0x90, 0x6a, 0x00, 0x28,
- 0x3b, 0xd0, 0x13, 0x78, 0x01, 0x9d, 0x01, 0x21,
- 0x6d, 0x89, 0x01, 0x20, 0x2b, 0x40, 0x9b, 0x07,
- 0x11, 0xd0, 0xa3, 0x6b, 0x1e, 0x4e, 0x3c, 0x00,
- 0xd4, 0xee, 0x00, 0x00, 0x1d, 0x1c, 0x7f, 0x35,
- 0x98, 0x36, 0x00, 0x2d, 0x14, 0xd0, 0x55, 0x8a,
- 0x00, 0x2d, 0x08, 0xd1, 0x55, 0x69, 0xab, 0x42,
- 0x0f, 0xda, 0x00, 0x20, 0x17, 0x4d, 0x01, 0x23,
- 0x6b, 0x61, 0x0a, 0xe0, 0x29, 0xe0, 0xf5, 0x78,
- 0x02, 0x2d, 0x06, 0xd1, 0x14, 0x4f, 0x55, 0x69,
- 0x3f, 0x68, 0xed, 0x19, 0xab, 0x42, 0x00, 0xda,
- 0x00, 0x20, 0x23, 0x6c, 0x1d, 0x1c, 0x7f, 0x35,
- 0x3c, 0x00, 0x10, 0xef, 0x00, 0x00, 0x10, 0xd0,
- 0x55, 0x8a, 0x00, 0x2d, 0x03, 0xd1, 0x95, 0x69,
- 0xab, 0x42, 0x0a, 0xd2, 0x08, 0xe0, 0xf5, 0x78,
- 0x02, 0x2d, 0x06, 0xd1, 0x0b, 0x4e, 0x95, 0x69,
- 0x36, 0x68, 0xad, 0x19, 0xab, 0x42, 0x00, 0xd2,
- 0x00, 0x21, 0x08, 0x43, 0x08, 0xd0, 0x10, 0x6a,
- 0x00, 0x28, 0x01, 0xd0, 0xf1, 0xf7, 0x4b, 0xfa,
- 0x00, 0x21, 0x20, 0x1c, 0x01, 0xf0, 0xb9, 0xf9,
- 0xfe, 0xbd, 0x3c, 0x00, 0x4c, 0xef, 0x00, 0x00,
- 0xec, 0x65, 0x01, 0x00, 0xc4, 0x67, 0x01, 0x00,
- 0xcc, 0x67, 0x01, 0x00, 0x3e, 0xb5, 0x05, 0x6a,
- 0x04, 0x1c, 0xc0, 0x68, 0xf2, 0xf7, 0x34, 0xfb,
- 0xe1, 0x69, 0xf2, 0xf7, 0x57, 0xfa, 0x20, 0x1c,
- 0x40, 0x30, 0xc1, 0x8b, 0x04, 0x31, 0xc1, 0x83,
- 0x2b, 0x69, 0x10, 0x49, 0x98, 0x79, 0x06, 0x28,
- 0x0a, 0xd1, 0x98, 0x88, 0x01, 0x91, 0x02, 0x94,
- 0x00, 0x90, 0x60, 0x69, 0x3c, 0x00, 0x88, 0xef,
- 0x00, 0x00, 0x1b, 0x68, 0x01, 0x68, 0xe0, 0x68,
- 0x03, 0x22, 0xc0, 0x68, 0x0a, 0xe0, 0x02, 0x28,
- 0x0b, 0xd1, 0x10, 0x20, 0x00, 0x90, 0x01, 0x91,
- 0x02, 0x94, 0xe0, 0x68, 0xa3, 0x69, 0xc0, 0x68,
- 0x00, 0x22, 0x00, 0x21, 0xf7, 0xf7, 0x0f, 0xfb,
- 0x3e, 0xbd, 0xf2, 0xf7, 0xa6, 0xf9, 0xfb, 0xe7,
- 0x00, 0x00, 0xbd, 0xef, 0x00, 0x00, 0x80, 0xb5,
- 0xd1, 0x68, 0x50, 0x69, 0xc9, 0x68, 0x3c, 0x00,
- 0xc4, 0xef, 0x00, 0x00, 0xc1, 0x60, 0xd1, 0x68,
- 0xc8, 0x60, 0x11, 0x1c, 0x40, 0x31, 0xcb, 0x8b,
- 0x00, 0x89, 0x18, 0x18, 0xc8, 0x83, 0x10, 0x68,
- 0x00, 0x28, 0x02, 0xd0, 0xff, 0xf7, 0xbc, 0xff,
- 0x80, 0xbd, 0x03, 0x48, 0xfb, 0xf7, 0xcc, 0xf8,
- 0x00, 0x6a, 0xfe, 0xf7, 0xf5, 0xf9, 0x80, 0xbd,
- 0xa0, 0x6a, 0x01, 0x00, 0xf8, 0xb5, 0x06, 0x1c,
- 0x0a, 0x24, 0x30, 0x07, 0x01, 0x09, 0xa0, 0x07,
- 0x3c, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x01, 0x43,
- 0x0f, 0x1c, 0x0a, 0x4d, 0x2f, 0x60, 0x04, 0xf0,
- 0xfa, 0xfe, 0xad, 0x68, 0x28, 0x01, 0x00, 0x0f,
- 0xb0, 0x42, 0x05, 0xd0, 0x01, 0x3c, 0xf4, 0xd2,
- 0x01, 0x21, 0x9b, 0x20, 0xf2, 0xf7, 0x41, 0xf9,
- 0x28, 0x02, 0x00, 0x0a, 0x08, 0x2e, 0x01, 0xd1,
- 0x31, 0x05, 0x08, 0x43, 0xf8, 0xbd, 0x60, 0x00,
- 0x07, 0x00, 0x01, 0x22, 0xd2, 0x05, 0x80, 0xb5,
- 0x00, 0x21, 0x3c, 0x00, 0x3c, 0xf0, 0x00, 0x00,
- 0x04, 0x20, 0x04, 0xf0, 0xdd, 0xfc, 0x0f, 0x20,
- 0xff, 0xf7, 0xd6, 0xff, 0x0f, 0x21, 0x09, 0x04,
- 0x08, 0x40, 0x00, 0x0c, 0x80, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0x05, 0x48, 0xfd, 0xf7, 0x4a, 0xf9,
- 0x04, 0x48, 0xfd, 0xf7, 0x7b, 0xf8, 0x04, 0x48,
- 0xfd, 0xf7, 0x6c, 0xf8, 0x80, 0xbd, 0x00, 0x00,
- 0x89, 0x34, 0x01, 0x00, 0xed, 0x24, 0x00, 0x00,
- 0x11, 0x1c, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xf0,
- 0x00, 0x00, 0x80, 0xb5, 0x02, 0x48, 0xf3, 0xf7,
- 0x2a, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0xd1, 0x24,
- 0x00, 0x00, 0x80, 0xb5, 0xf2, 0xf7, 0x53, 0xf9,
- 0x80, 0xbd, 0x80, 0xb5, 0x00, 0x21, 0x00, 0x20,
- 0x01, 0xf0, 0x51, 0xfe, 0x03, 0x20, 0x02, 0xf0,
- 0x46, 0xff, 0x80, 0xbd, 0x00, 0x00, 0x06, 0x48,
- 0x80, 0xb5, 0xc1, 0x69, 0x00, 0x29, 0x06, 0xd1,
- 0x01, 0x6a, 0x00, 0x29, 0x03, 0xd1, 0x3c, 0x00,
- 0xb4, 0xf0, 0x00, 0x00, 0x81, 0x6b, 0x03, 0x48,
- 0x00, 0xf0, 0x5e, 0xf9, 0x80, 0xbd, 0x00, 0x00,
- 0xc4, 0x69, 0x01, 0x00, 0x34, 0x63, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x4c, 0x20, 0x6a, 0xfc, 0xf7,
- 0xb3, 0xfb, 0x03, 0x48, 0x21, 0x6a, 0x00, 0xf0,
- 0x4f, 0xf9, 0x10, 0xbd, 0x1c, 0x75, 0x01, 0x00,
- 0x34, 0x63, 0x01, 0x00, 0xb0, 0xb5, 0x0d, 0x4c,
- 0x20, 0x7c, 0x00, 0x28, 0x02, 0xd0, 0x01, 0x21,
- 0x3c, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xfd, 0xf7,
- 0x86, 0xf9, 0x00, 0x25, 0x25, 0x70, 0xa0, 0x68,
- 0x01, 0x28, 0x03, 0xd1, 0x00, 0x20, 0xa5, 0x60,
- 0x01, 0xf0, 0x8f, 0xf8, 0xa0, 0x78, 0x01, 0x28,
- 0x05, 0xd1, 0x03, 0x48, 0x98, 0x38, 0x00, 0x69,
- 0xfc, 0xf7, 0xef, 0xfb, 0xa5, 0x70, 0xb0, 0xbd,
- 0x00, 0x00, 0x84, 0x66, 0x01, 0x00, 0x80, 0xb5,
- 0x00, 0x21, 0x01, 0x20, 0x01, 0xf0, 0x09, 0xfe,
- 0x80, 0xbd, 0x3c, 0x00, 0x2c, 0xf1, 0x00, 0x00,
- 0x38, 0xb5, 0x69, 0x46, 0x00, 0x25, 0xf8, 0xf7,
- 0xb7, 0xfe, 0x04, 0x1c, 0x01, 0xd1, 0x01, 0x20,
- 0x38, 0xbd, 0xa0, 0x68, 0x00, 0x28, 0x04, 0xd0,
- 0x00, 0x99, 0xa1, 0x31, 0x08, 0x20, 0x04, 0xf0,
- 0x73, 0xfa, 0x1c, 0x21, 0x20, 0x1c, 0xf1, 0xf7,
- 0xa3, 0xf9, 0x28, 0x1c, 0xf0, 0xe7, 0x00, 0x00,
- 0xfe, 0xb5, 0x07, 0x1c, 0x4c, 0x23, 0x39, 0x49,
- 0x58, 0x43, 0x44, 0x18, 0x3c, 0x00, 0x68, 0xf1,
- 0x00, 0x00, 0x25, 0x1c, 0x40, 0x35, 0x28, 0x7a,
- 0x37, 0x49, 0x48, 0x76, 0x21, 0x1c, 0x30, 0x31,
- 0x02, 0x91, 0x0c, 0x23, 0xc8, 0x56, 0x42, 0x1c,
- 0x0a, 0x73, 0x49, 0x7b, 0x88, 0x42, 0x46, 0xda,
- 0x32, 0x48, 0x00, 0x78, 0x80, 0x07, 0x3e, 0xd5,
- 0x00, 0x20, 0x01, 0x90, 0xf6, 0xf7, 0xaf, 0xfa,
- 0x00, 0x28, 0x2e, 0xd0, 0xac, 0x21, 0x09, 0x58,
- 0x00, 0x29, 0x01, 0xd0, 0xe4, 0x30, 0x3c, 0x00,
- 0xa4, 0xf1, 0x00, 0x00, 0x00, 0xe0, 0xcc, 0x30,
- 0x06, 0x1c, 0x40, 0x68, 0x00, 0x28, 0x25, 0xd0,
- 0x02, 0x99, 0x08, 0x7b, 0x01, 0x28, 0x11, 0xd1,
- 0x20, 0x1c, 0x2e, 0x30, 0x29, 0x78, 0xf6, 0xf7,
- 0xed, 0xf9, 0x71, 0x68, 0x03, 0xe0, 0x72, 0x18,
- 0x12, 0x7a, 0x82, 0x42, 0x03, 0xd9, 0xff, 0x31,
- 0x09, 0x06, 0x09, 0x0e, 0xf7, 0xd1, 0xa9, 0x70,
- 0x01, 0x20, 0x01, 0x90, 0x23, 0x1c, 0x3e, 0x33,
- 0x3c, 0x00, 0xe0, 0xf1, 0x00, 0x00, 0x1a, 0x1d,
- 0x30, 0x1c, 0x00, 0x97, 0x01, 0x99, 0xf8, 0xf7,
- 0x58, 0xfa, 0x00, 0x28, 0x11, 0xd0, 0xa8, 0x78,
- 0x80, 0x19, 0x00, 0x7a, 0x00, 0xe0, 0x00, 0x20,
- 0x68, 0x70, 0x68, 0x78, 0x01, 0x21, 0xfb, 0xf7,
- 0xe0, 0xfd, 0x60, 0x60, 0x38, 0x1c, 0x01, 0xf0,
- 0x14, 0xfe, 0x38, 0x1c, 0x01, 0xf0, 0xa5, 0xfb,
- 0xfe, 0xbd, 0x02, 0x99, 0x08, 0x7b, 0xff, 0x30,
- 0x48, 0x73, 0x3c, 0x00, 0x1c, 0xf2, 0x00, 0x00,
- 0x38, 0x1c, 0xfc, 0xf7, 0x19, 0xfc, 0x03, 0xf0,
- 0xc3, 0xfd, 0x06, 0x1c, 0xfb, 0xf7, 0x8e, 0xfe,
- 0x41, 0x00, 0x76, 0x18, 0x68, 0x78, 0x61, 0x68,
- 0xfb, 0xf7, 0x6a, 0xfe, 0x31, 0x18, 0x20, 0x8d,
- 0x3b, 0x1c, 0x05, 0x4a, 0x03, 0xf0, 0x12, 0xfe,
- 0xe5, 0xe7, 0x00, 0x00, 0x58, 0xe3, 0x01, 0x00,
- 0x30, 0x80, 0x07, 0x00, 0x1d, 0x75, 0x01, 0x00,
- 0xd5, 0x4e, 0x00, 0x00, 0x3c, 0x00, 0x58, 0xf2,
- 0x00, 0x00, 0x03, 0x1c, 0x04, 0x48, 0x80, 0xb5,
- 0x02, 0x79, 0x20, 0x30, 0x03, 0x49, 0x00, 0xf0,
- 0x30, 0xf8, 0x80, 0xbd, 0x00, 0x00, 0xac, 0x7c,
- 0x01, 0x00, 0xc4, 0x67, 0x01, 0x00, 0x03, 0x1c,
- 0x04, 0x48, 0x80, 0xb5, 0xc2, 0x78, 0x38, 0x30,
- 0x03, 0x49, 0x00, 0xf0, 0x22, 0xf8, 0x80, 0xbd,
- 0x00, 0x00, 0xac, 0x7c, 0x01, 0x00, 0xc8, 0x67,
- 0x01, 0x00, 0x03, 0x1c, 0x04, 0x48, 0x3c, 0x00,
- 0x94, 0xf2, 0x00, 0x00, 0x80, 0xb5, 0x82, 0x79,
- 0x50, 0x30, 0x03, 0x49, 0x00, 0xf0, 0x14, 0xf8,
- 0x80, 0xbd, 0x00, 0x00, 0xac, 0x7c, 0x01, 0x00,
- 0xcc, 0x67, 0x01, 0x00, 0x03, 0x1c, 0x04, 0x48,
- 0x80, 0xb5, 0x42, 0x79, 0x68, 0x30, 0x03, 0x49,
- 0x00, 0xf0, 0x06, 0xf8, 0x80, 0xbd, 0x00, 0x00,
- 0xac, 0x7c, 0x01, 0x00, 0xd0, 0x67, 0x01, 0x00,
- 0x10, 0xb5, 0x00, 0x24, 0x84, 0x80, 0x0b, 0x60,
- 0x3c, 0x00, 0xd0, 0xf2, 0x00, 0x00, 0x19, 0x1c,
- 0x51, 0x43, 0x01, 0x60, 0x19, 0x06, 0x09, 0x16,
- 0x10, 0x22, 0x06, 0x30, 0xf1, 0xf7, 0x9f, 0xf9,
- 0x10, 0xbd, 0xb0, 0xb5, 0x06, 0x4d, 0x00, 0x24,
- 0xac, 0x60, 0xec, 0x60, 0xec, 0x61, 0x2c, 0x62,
- 0x02, 0xf0, 0xf1, 0xfc, 0x00, 0xf0, 0x0d, 0xf8,
- 0xec, 0x62, 0x2c, 0x70, 0xb0, 0xbd, 0x44, 0x7d,
- 0x01, 0x00, 0x80, 0xb5, 0x80, 0x21, 0x01, 0x48,
- 0xf1, 0xf7, 0x3c, 0x00, 0x0c, 0xf3, 0x00, 0x00,
- 0xc7, 0xf8, 0x80, 0xbd, 0x04, 0x66, 0x01, 0x00,
- 0xf8, 0xb5, 0x07, 0x4f, 0x00, 0x24, 0x00, 0x26,
- 0x18, 0x20, 0x60, 0x43, 0xc5, 0x19, 0xee, 0x60,
- 0x03, 0xf0, 0x42, 0xfd, 0x10, 0x35, 0x01, 0x34,
- 0x02, 0x2c, 0x41, 0xc5, 0xf4, 0xdb, 0xf8, 0xbd,
- 0xb8, 0x7d, 0x01, 0x00, 0x00, 0x23, 0x03, 0x60,
- 0x04, 0x4b, 0x00, 0x29, 0x00, 0xd1, 0x19, 0x1c,
- 0x41, 0x60, 0x00, 0x2a, 0x3c, 0x00, 0x48, 0xf3,
- 0x00, 0x00, 0x00, 0xd1, 0x1a, 0x1c, 0x82, 0x60,
- 0x70, 0x47, 0xbd, 0x75, 0x00, 0x00, 0x10, 0xb5,
- 0x07, 0x4c, 0x20, 0x68, 0x01, 0x30, 0x20, 0x60,
- 0x20, 0x28, 0x03, 0xd9, 0x58, 0x21, 0x58, 0x20,
- 0xf1, 0xf7, 0x9d, 0xff, 0x21, 0x68, 0x01, 0x20,
- 0x01, 0x39, 0x88, 0x40, 0x10, 0xbd, 0x60, 0x5b,
- 0x01, 0x00, 0xb0, 0xb5, 0x0d, 0x1c, 0x04, 0x1c,
- 0x21, 0x68, 0x00, 0x20, 0x00, 0x29, 0x3c, 0x00,
- 0x84, 0xf3, 0x00, 0x00, 0x0a, 0xd0, 0xa9, 0x43,
- 0x21, 0x60, 0x07, 0xd1, 0xa0, 0x68, 0xf1, 0xf7,
- 0x23, 0xf8, 0x00, 0x28, 0x02, 0xd1, 0x21, 0x68,
- 0x29, 0x43, 0x21, 0x60, 0xb0, 0xbd, 0x00, 0x00,
- 0xb0, 0xb5, 0x0d, 0x1c, 0x04, 0x1c, 0x21, 0x68,
- 0x00, 0x20, 0x29, 0x43, 0x21, 0x60, 0xa9, 0x42,
- 0x07, 0xd1, 0x60, 0x68, 0xf1, 0xf7, 0x10, 0xf8,
- 0x00, 0x28, 0x02, 0xd1, 0x21, 0x68, 0xa9, 0x43,
- 0x3c, 0x00, 0xc0, 0xf3, 0x00, 0x00, 0x21, 0x60,
- 0xb0, 0xbd, 0x1a, 0x4b, 0xb0, 0xb5, 0x9a, 0x6a,
- 0x00, 0x28, 0x0b, 0xd0, 0x00, 0x2a, 0x07, 0xdb,
- 0xb8, 0x24, 0x24, 0x58, 0x01, 0x3c, 0xa4, 0x1a,
- 0x00, 0x19, 0xb0, 0x30, 0x00, 0x7b, 0x02, 0xe0,
- 0x0e, 0x20, 0x00, 0xe0, 0x0d, 0x20, 0x5d, 0x6a,
- 0x12, 0x4c, 0x00, 0x2d, 0x01, 0xd0, 0x20, 0x78,
- 0x00, 0xe0, 0x20, 0x5c, 0xff, 0x24, 0xa8, 0x34,
- 0xc4, 0x40, 0x3c, 0x00, 0xfc, 0xf3, 0x00, 0x00,
- 0x9c, 0x60, 0xf5, 0x24, 0xc4, 0x40, 0x9c, 0x61,
- 0xfd, 0x24, 0xc4, 0x40, 0xdc, 0x61, 0xff, 0x24,
- 0x29, 0x34, 0xc4, 0x40, 0x5c, 0x61, 0xff, 0x24,
- 0x53, 0x34, 0xc4, 0x40, 0x00, 0x20, 0x0c, 0x33,
- 0x11, 0xc3, 0x00, 0x29, 0x05, 0xd0, 0x00, 0x2a,
- 0x03, 0xdc, 0x02, 0x21, 0x50, 0x42, 0x00, 0xf0,
- 0x65, 0xfb, 0xb0, 0xbd, 0xac, 0x7e, 0x01, 0x00,
- 0xb8, 0x52, 0x01, 0x00, 0x3c, 0x00, 0x38, 0xf4,
- 0x00, 0x00, 0x10, 0xb5, 0x13, 0x4c, 0x13, 0x48,
- 0x21, 0x1c, 0xff, 0x31, 0x69, 0x31, 0x0e, 0xc9,
- 0x0e, 0xc0, 0x21, 0x1c, 0xff, 0x31, 0x24, 0x22,
- 0x75, 0x31, 0x0f, 0x48, 0xf1, 0xf7, 0x51, 0xf8,
- 0x21, 0x1c, 0xff, 0x31, 0x3c, 0x22, 0x99, 0x31,
- 0x0d, 0x48, 0xf1, 0xf7, 0xa6, 0xf8, 0xfc, 0xf7,
- 0xa2, 0xff, 0x21, 0x1c, 0xff, 0x31, 0x10, 0x22,
- 0xd5, 0x31, 0x09, 0x48, 0xf1, 0xf7, 0x3c, 0x00,
- 0x74, 0xf4, 0x00, 0x00, 0x41, 0xf8, 0x21, 0x1c,
- 0xff, 0x31, 0x28, 0x22, 0xe5, 0x31, 0x07, 0x48,
- 0xf1, 0xf7, 0x96, 0xf8, 0x10, 0xbd, 0x00, 0x00,
- 0x40, 0x63, 0x01, 0x00, 0x00, 0x80, 0x07, 0x00,
- 0x0c, 0x80, 0x07, 0x00, 0x30, 0x80, 0x07, 0x00,
- 0x80, 0x80, 0x07, 0x00, 0xa0, 0x80, 0x07, 0x00,
- 0xf8, 0xb5, 0x00, 0x28, 0x59, 0xd0, 0x04, 0xf0,
- 0x4b, 0xf9, 0xf8, 0xf7, 0xb3, 0xfb, 0x00, 0x22,
- 0x3c, 0x00, 0xb0, 0xf4, 0x00, 0x00, 0x01, 0x21,
- 0x13, 0x20, 0x04, 0xf0, 0x7c, 0xf9, 0x2a, 0x49,
- 0x29, 0x48, 0x49, 0x6c, 0x01, 0x60, 0x00, 0x21,
- 0x29, 0x48, 0xc9, 0x43, 0x41, 0x60, 0x26, 0x4c,
- 0x14, 0x34, 0x61, 0x6c, 0x81, 0x60, 0xa1, 0x6c,
- 0xc1, 0x60, 0x00, 0x20, 0x25, 0x4d, 0x02, 0x26,
- 0x01, 0x01, 0x6e, 0x50, 0x0a, 0x19, 0x4f, 0x19,
- 0x50, 0x32, 0x04, 0x37, 0x0e, 0xca, 0x01, 0x30,
- 0x08, 0x28, 0x3c, 0x00, 0xec, 0xf4, 0x00, 0x00,
- 0x0e, 0xc7, 0xf4, 0xdb, 0x14, 0x22, 0x21, 0x1c,
- 0xcc, 0x31, 0x1e, 0x48, 0xf1, 0xf7, 0x5a, 0xf8,
- 0x1d, 0x48, 0x81, 0x78, 0x09, 0x09, 0x09, 0x01,
- 0x81, 0x70, 0x00, 0x21, 0xc1, 0x70, 0x41, 0x70,
- 0x21, 0x1c, 0xe0, 0x31, 0x0a, 0x78, 0x02, 0x70,
- 0x49, 0x78, 0x41, 0x70, 0x21, 0x1c, 0xe8, 0x31,
- 0x30, 0x22, 0x08, 0x30, 0xf1, 0xf7, 0x46, 0xf8,
- 0x21, 0x1c, 0xff, 0x31, 0x3c, 0x00, 0x28, 0xf5,
- 0x00, 0x00, 0x50, 0x22, 0x19, 0x31, 0x12, 0x48,
- 0xf1, 0xf7, 0x3f, 0xf8, 0x83, 0x20, 0x80, 0x00,
- 0x14, 0x22, 0x21, 0x18, 0x10, 0x48, 0xf1, 0xf7,
- 0x38, 0xf8, 0x11, 0x20, 0x40, 0x01, 0x84, 0x22,
- 0x21, 0x18, 0x0d, 0x48, 0xf1, 0xf7, 0x31, 0xf8,
- 0xff, 0xf7, 0x73, 0xff, 0x20, 0x1c, 0xf1, 0xf7,
- 0x28, 0xfd, 0xf8, 0xbd, 0xff, 0xf7, 0x6d, 0xff,
- 0xfb, 0xe7, 0x08, 0x20, 0x07, 0x00, 0x3c, 0x00,
- 0x64, 0xf5, 0x00, 0x00, 0x2c, 0x63, 0x01, 0x00,
- 0x40, 0x20, 0x07, 0x00, 0x00, 0x30, 0x07, 0x00,
- 0x00, 0x40, 0x07, 0x00, 0x00, 0x50, 0x07, 0x00,
- 0x00, 0x60, 0x07, 0x00, 0x10, 0x00, 0x07, 0x00,
- 0x00, 0x90, 0x07, 0x00, 0xf8, 0xb5, 0x05, 0x1c,
- 0x18, 0x48, 0xc0, 0x68, 0x00, 0x28, 0x25, 0xd0,
- 0x16, 0x4e, 0x01, 0x36, 0x74, 0x78, 0x30, 0x78,
- 0x27, 0x1a, 0x79, 0x19, 0x20, 0x1c, 0xf1, 0xf7,
- 0x3c, 0x00, 0xa0, 0xf5, 0x00, 0x00, 0x4b, 0xf8,
- 0x00, 0x90, 0x29, 0x1c, 0x20, 0x1c, 0xf1, 0xf7,
- 0xb2, 0xf8, 0xc1, 0x19, 0x20, 0x1c, 0xf1, 0xf7,
- 0x42, 0xf8, 0x60, 0x1a, 0x30, 0x70, 0x70, 0x1e,
- 0x80, 0x68, 0x00, 0x28, 0x0d, 0xd0, 0x53, 0x36,
- 0xf4, 0x78, 0x00, 0x99, 0x20, 0x1c, 0xf1, 0xf7,
- 0xa2, 0xf8, 0xb1, 0x78, 0x61, 0x1a, 0x41, 0x18,
- 0x20, 0x1c, 0xf1, 0xf7, 0x9c, 0xf8, 0x60, 0x1a,
- 0xb0, 0x70, 0x3c, 0x00, 0xdc, 0xf5, 0x00, 0x00,
- 0x03, 0x48, 0x5c, 0x30, 0x01, 0x69, 0xc2, 0x68,
- 0x69, 0x43, 0x51, 0x18, 0xc1, 0x60, 0xf8, 0xbd,
- 0x44, 0x7d, 0x01, 0x00, 0xb0, 0xb5, 0x0c, 0x4d,
- 0xe8, 0x68, 0x29, 0x69, 0x40, 0x18, 0x7d, 0x21,
- 0x09, 0x01, 0x44, 0x18, 0x20, 0x1c, 0x03, 0xf0,
- 0x0b, 0xfb, 0x00, 0x28, 0x0a, 0xd0, 0x03, 0xf0,
- 0xcf, 0xfb, 0x01, 0x1b, 0x28, 0x69, 0xf1, 0xf7,
- 0x7d, 0xf8, 0x01, 0x30, 0x3c, 0x00, 0x18, 0xf6,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x0c, 0xff, 0xf7,
- 0xb2, 0xff, 0xb0, 0xbd, 0x00, 0x00, 0xa0, 0x7d,
- 0x01, 0x00, 0x70, 0xb5, 0x10, 0x4c, 0x60, 0x68,
- 0x80, 0x25, 0xa8, 0x43, 0x60, 0x60, 0x20, 0x68,
- 0x28, 0x43, 0x20, 0x60, 0x0d, 0x4e, 0x30, 0x1c,
- 0x10, 0x30, 0xf3, 0xf7, 0xc8, 0xfc, 0x00, 0x28,
- 0x03, 0xd1, 0x07, 0x21, 0x85, 0x20, 0xf1, 0xf7,
- 0x2a, 0xfe, 0x08, 0x48, 0x00, 0x21, 0x3c, 0x00,
- 0x54, 0xf6, 0x00, 0x00, 0x80, 0x68, 0x41, 0x63,
- 0xc0, 0x6c, 0x10, 0x30, 0x70, 0x61, 0x01, 0x20,
- 0x30, 0x61, 0x20, 0x68, 0xa8, 0x43, 0x20, 0x60,
- 0x70, 0xbd, 0x00, 0x00, 0xf4, 0x00, 0x07, 0x00,
- 0x00, 0x30, 0x07, 0x00, 0x24, 0x7e, 0x01, 0x00,
- 0x01, 0x1c, 0x00, 0x20, 0x05, 0x29, 0x80, 0xb5,
- 0x09, 0xd2, 0x02, 0xa3, 0x5b, 0x5c, 0x5b, 0x00,
- 0x9f, 0x44, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
- 0x3c, 0x00, 0x90, 0xf6, 0x00, 0x00, 0x03, 0x00,
- 0xff, 0xf7, 0xcf, 0xfc, 0x80, 0xbd, 0x01, 0x22,
- 0x92, 0x02, 0x80, 0xb5, 0x00, 0x21, 0x07, 0x20,
- 0x04, 0xf0, 0xab, 0xf9, 0x80, 0xbd, 0x80, 0xb5,
- 0x40, 0x22, 0x00, 0x21, 0x00, 0x20, 0x04, 0xf0,
- 0xa4, 0xf9, 0x03, 0x22, 0x00, 0x21, 0x00, 0x20,
- 0x04, 0xf0, 0x9f, 0xf9, 0x80, 0xbd, 0x70, 0xb5,
- 0x0e, 0x1c, 0x05, 0x1c, 0x14, 0x1c, 0x08, 0x28,
- 0x0e, 0xd1, 0x3c, 0x00, 0xcc, 0xf6, 0x00, 0x00,
- 0x00, 0xf0, 0x00, 0xfc, 0x0e, 0x28, 0x01, 0xd1,
- 0x14, 0x20, 0x00, 0xe0, 0x10, 0x20, 0xe1, 0x03,
- 0x00, 0xd5, 0x01, 0x38, 0xc0, 0x06, 0x0a, 0x49,
- 0xc0, 0x0e, 0x88, 0x71, 0x08, 0xe0, 0x09, 0x2d,
- 0x06, 0xd1, 0xa0, 0x04, 0x01, 0xd5, 0x00, 0x20,
- 0x00, 0xe0, 0x01, 0x20, 0xf3, 0xf7, 0xb0, 0xf9,
- 0x34, 0x40, 0x21, 0x1c, 0x32, 0x1c, 0x28, 0x1c,
- 0x04, 0xf0, 0x7a, 0xf9, 0x3c, 0x00, 0x08, 0xf7,
- 0x00, 0x00, 0x70, 0xbd, 0x00, 0x00, 0x00, 0x80,
- 0x07, 0x00, 0x70, 0xb5, 0x00, 0x24, 0x13, 0x29,
- 0x11, 0xd8, 0x00, 0x28, 0x01, 0xd1, 0x08, 0x4e,
- 0x08, 0x25, 0x01, 0x28, 0x01, 0xd1, 0x07, 0x4e,
- 0x09, 0x25, 0x00, 0xf0, 0x78, 0xfa, 0x00, 0x28,
- 0x05, 0xd0, 0x02, 0x1c, 0x31, 0x1c, 0x28, 0x1c,
- 0xff, 0xf7, 0xc3, 0xff, 0x01, 0x24, 0x20, 0x1c,
- 0x70, 0xbd, 0xf8, 0xff, 0x07, 0x00, 0x3c, 0x00,
- 0x44, 0xf7, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
- 0x01, 0x22, 0xd2, 0x02, 0x80, 0xb5, 0x00, 0x21,
- 0x07, 0x20, 0x04, 0xf0, 0x53, 0xf9, 0x80, 0xbd,
- 0x0f, 0x22, 0x12, 0x04, 0x07, 0x21, 0x49, 0x04,
- 0x80, 0xb5, 0x09, 0x20, 0x04, 0xf0, 0x4a, 0xf9,
- 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5, 0x00, 0x21,
- 0x04, 0x20, 0x04, 0xf0, 0x1b, 0xfc, 0x40, 0x21,
- 0x00, 0x20, 0x04, 0xf0, 0x17, 0xfc, 0x04, 0x49,
- 0x3c, 0x00, 0x80, 0xf7, 0x00, 0x00, 0x00, 0x20,
- 0x88, 0x60, 0x02, 0x48, 0x09, 0x69, 0x20, 0x30,
- 0xff, 0xf7, 0x09, 0xfe, 0x80, 0xbd, 0x64, 0x73,
- 0x01, 0x00, 0xb0, 0xb5, 0x60, 0x21, 0x00, 0x20,
- 0x04, 0xf0, 0x07, 0xfc, 0x11, 0x4d, 0x00, 0x24,
- 0x00, 0x22, 0x04, 0x20, 0x29, 0x5d, 0x04, 0xf0,
- 0x28, 0xf9, 0x0c, 0x20, 0x03, 0xf0, 0x9b, 0xfb,
- 0x01, 0x34, 0x24, 0x06, 0x24, 0x0e, 0x05, 0x2c,
- 0xf2, 0xd3, 0x3c, 0x00, 0xbc, 0xf7, 0x00, 0x00,
- 0x0f, 0x22, 0x00, 0x21, 0x0a, 0x20, 0x04, 0xf0,
- 0x1b, 0xf9, 0x61, 0x21, 0x00, 0x20, 0x04, 0xf0,
- 0xef, 0xfb, 0x06, 0x49, 0x01, 0x20, 0x88, 0x60,
- 0x04, 0x48, 0x09, 0x69, 0x20, 0x30, 0xff, 0xf7,
- 0xcd, 0xfd, 0xff, 0x20, 0x2d, 0x30, 0xb0, 0xbd,
- 0xa8, 0x58, 0x01, 0x00, 0x64, 0x73, 0x01, 0x00,
- 0xf8, 0xb5, 0x06, 0x1c, 0x12, 0x48, 0xc6, 0x70,
- 0x01, 0x20, 0xff, 0xf7, 0x3c, 0x00, 0xf8, 0xf7,
- 0x00, 0x00, 0xfd, 0xfb, 0x01, 0x27, 0xbf, 0x02,
- 0x04, 0x1c, 0xb8, 0x43, 0x01, 0x1c, 0x01, 0x20,
- 0x04, 0xf0, 0xd1, 0xfb, 0x03, 0x20, 0xff, 0xf7,
- 0xf2, 0xfb, 0x05, 0x1c, 0xb8, 0x43, 0x01, 0x1c,
- 0x03, 0x20, 0x04, 0xf0, 0xc8, 0xfb, 0x30, 0x1c,
- 0x00, 0xf0, 0x9f, 0xf9, 0x00, 0xf0, 0x57, 0xf8,
- 0x21, 0x1c, 0x01, 0x20, 0x04, 0xf0, 0xbf, 0xfb,
- 0x29, 0x1c, 0x03, 0x20, 0x04, 0xf0, 0x3c, 0x00,
- 0x34, 0xf8, 0x00, 0x00, 0xbb, 0xfb, 0x00, 0x20,
- 0xf8, 0xbd, 0x00, 0x00, 0x64, 0x73, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x22, 0x40, 0x21, 0x00, 0x20,
- 0x04, 0xf0, 0xd8, 0xf8, 0x80, 0xbd, 0x00, 0x00,
- 0x70, 0xb5, 0x05, 0x1c, 0x01, 0x24, 0x09, 0x20,
- 0xff, 0xf7, 0xcc, 0xfb, 0x0f, 0x21, 0x09, 0x04,
- 0x88, 0x43, 0x03, 0x21, 0x89, 0x04, 0xe2, 0x04,
- 0x05, 0x2d, 0x12, 0x4e, 0x20, 0xd2, 0x02, 0xa3,
- 0x3c, 0x00, 0x70, 0xf8, 0x00, 0x00, 0x5b, 0x5d,
- 0x5b, 0x00, 0x9f, 0x44, 0x00, 0x00, 0x06, 0x09,
- 0x0c, 0x10, 0x03, 0x00, 0x03, 0x21, 0x09, 0x04,
- 0x0c, 0xe0, 0x01, 0x21, 0x09, 0x04, 0x09, 0xe0,
- 0x01, 0x21, 0x49, 0x04, 0x06, 0xe0, 0xf3, 0x68,
- 0x04, 0x2b, 0x05, 0xd9, 0x02, 0xe0, 0xf3, 0x68,
- 0x04, 0x2b, 0x01, 0xd8, 0x01, 0x43, 0x01, 0xe0,
- 0x10, 0x43, 0x01, 0x1c, 0x09, 0x20, 0x04, 0xf0,
- 0x80, 0xfb, 0x3c, 0x00, 0xac, 0xf8, 0x00, 0x00,
- 0x20, 0x1c, 0x70, 0xbd, 0x00, 0x24, 0xfb, 0xe7,
- 0x64, 0x73, 0x01, 0x00, 0x01, 0x21, 0xc9, 0x05,
- 0x00, 0x28, 0x80, 0xb5, 0x02, 0xd0, 0x0a, 0x1c,
- 0x00, 0x21, 0x00, 0xe0, 0x00, 0x22, 0x04, 0x20,
- 0x04, 0xf0, 0x96, 0xf8, 0x80, 0xbd, 0x00, 0x00,
- 0xf0, 0xb5, 0x91, 0xb0, 0x00, 0x26, 0x40, 0x21,
- 0x01, 0xa8, 0xf0, 0xf7, 0xdd, 0xfd, 0x2a, 0x4f,
- 0xb8, 0x79, 0x01, 0x22, 0x3c, 0x00, 0xe8, 0xf8,
- 0x00, 0x00, 0x52, 0x03, 0x00, 0x90, 0x00, 0x21,
- 0x06, 0x20, 0x04, 0xf0, 0x84, 0xf8, 0x60, 0x21,
- 0x00, 0x20, 0x04, 0xf0, 0x58, 0xfb, 0x61, 0x21,
- 0x00, 0x20, 0x04, 0xf0, 0x54, 0xfb, 0x08, 0x20,
- 0x03, 0xf0, 0xef, 0xfa, 0x00, 0x24, 0x0f, 0x20,
- 0xff, 0xf7, 0x71, 0xfb, 0x40, 0x05, 0x05, 0x0f,
- 0xa8, 0x00, 0x01, 0xa9, 0x09, 0x58, 0x01, 0xaa,
- 0x01, 0x31, 0x01, 0x34, 0x0c, 0x2c, 0x3c, 0x00,
- 0x24, 0xf9, 0x00, 0x00, 0x11, 0x50, 0xf1, 0xd3,
- 0x00, 0x20, 0x81, 0x00, 0x01, 0xaa, 0x51, 0x58,
- 0xb1, 0x42, 0x01, 0xd9, 0x0e, 0x1c, 0x05, 0x1c,
- 0x01, 0x30, 0x10, 0x28, 0xf5, 0xd3, 0x06, 0x20,
- 0xff, 0xf7, 0x58, 0xfb, 0x0f, 0x21, 0x49, 0x02,
- 0x88, 0x43, 0x69, 0x02, 0x08, 0x43, 0x01, 0x21,
- 0x49, 0x03, 0x01, 0x43, 0x06, 0x20, 0x04, 0xf0,
- 0x29, 0xfb, 0x0d, 0x48, 0x84, 0x68, 0x64, 0x34,
- 0x3c, 0x00, 0x60, 0xf9, 0x00, 0x00, 0x08, 0xe0,
- 0x20, 0x1c, 0x03, 0xf0, 0x5a, 0xf9, 0x00, 0x28,
- 0x03, 0xd0, 0x01, 0x21, 0x95, 0x20, 0xf1, 0xf7,
- 0x98, 0xfc, 0x0f, 0x20, 0xff, 0xf7, 0x3d, 0xfb,
- 0x00, 0x04, 0xf1, 0xd5, 0x87, 0x20, 0x03, 0xf0,
- 0xb2, 0xfa, 0x00, 0x98, 0xb8, 0x71, 0x11, 0xb0,
- 0xf0, 0xbd, 0x20, 0x10, 0x07, 0x00, 0x00, 0x01,
- 0x07, 0x00, 0x10, 0xb5, 0x17, 0x4c, 0x61, 0x69,
- 0x00, 0x29, 0x3c, 0x00, 0x9c, 0xf9, 0x00, 0x00,
- 0x04, 0xd0, 0x0a, 0x21, 0x13, 0x20, 0x03, 0xf0,
- 0x47, 0xfe, 0x10, 0xbd, 0x01, 0x1c, 0x12, 0x48,
- 0x01, 0x29, 0x00, 0x78, 0x0c, 0xd0, 0x11, 0x29,
- 0xf7, 0xd1, 0x05, 0x28, 0x03, 0xd1, 0x01, 0x21,
- 0x13, 0x20, 0xf1, 0xf7, 0x71, 0xfc, 0x20, 0x78,
- 0x07, 0x28, 0xee, 0xd1, 0x02, 0x21, 0x0a, 0xe0,
- 0x05, 0x28, 0x07, 0xd0, 0x06, 0x28, 0x0a, 0xd0,
- 0x07, 0x28, 0xf7, 0xd0, 0x3c, 0x00, 0xd8, 0xf9,
- 0x00, 0x00, 0x08, 0x28, 0xe4, 0xd1, 0x00, 0x20,
- 0x05, 0xe0, 0x01, 0x21, 0x13, 0x20, 0xf1, 0xf7,
- 0x5e, 0xfc, 0x10, 0xbd, 0x01, 0x20, 0x02, 0xf0,
- 0x6c, 0xfd, 0x10, 0xbd, 0x00, 0x00, 0x7c, 0x78,
- 0x01, 0x00, 0x0d, 0x49, 0x80, 0xb5, 0x09, 0x78,
- 0x03, 0x29, 0x01, 0xd1, 0x00, 0x28, 0x0b, 0xd0,
- 0x07, 0x29, 0x01, 0xd1, 0x00, 0x28, 0x07, 0xd0,
- 0x02, 0x29, 0x01, 0xd1, 0x00, 0x28, 0x3c, 0x00,
- 0x14, 0xfa, 0x00, 0x00, 0x03, 0xd1, 0x05, 0x29,
- 0x09, 0xd1, 0x00, 0x28, 0x07, 0xd0, 0x00, 0x20,
- 0xfc, 0xf7, 0x28, 0xfd, 0x00, 0x22, 0x13, 0x21,
- 0x11, 0x20, 0x03, 0xf0, 0xc1, 0xfe, 0x80, 0xbd,
- 0x7c, 0x78, 0x01, 0x00, 0x80, 0xb5, 0x06, 0x22,
- 0x08, 0x21, 0x00, 0x20, 0x03, 0xf0, 0xde, 0xff,
- 0x80, 0xbd, 0x00, 0x00, 0x07, 0x48, 0x80, 0xb5,
- 0x40, 0x69, 0x00, 0x28, 0x01, 0xd1, 0xf1, 0xf7,
- 0x3c, 0x00, 0x50, 0xfa, 0x00, 0x00, 0x33, 0xff,
- 0x05, 0x49, 0x05, 0x4a, 0x08, 0x68, 0x50, 0x61,
- 0x48, 0x68, 0x90, 0x61, 0x01, 0x20, 0x80, 0xbd,
- 0x00, 0x00, 0x64, 0x73, 0x01, 0x00, 0xb0, 0x58,
- 0x01, 0x00, 0x10, 0x00, 0x07, 0x00, 0x07, 0x48,
- 0x80, 0xb5, 0x40, 0x69, 0x00, 0x28, 0x01, 0xd1,
- 0xf1, 0xf7, 0x1d, 0xff, 0x05, 0x49, 0x05, 0x4a,
- 0x08, 0x68, 0x90, 0x61, 0x48, 0x68, 0x50, 0x61,
- 0x01, 0x20, 0x3c, 0x00, 0x8c, 0xfa, 0x00, 0x00,
- 0x80, 0xbd, 0x00, 0x00, 0x64, 0x73, 0x01, 0x00,
- 0xb0, 0x58, 0x01, 0x00, 0x10, 0x00, 0x07, 0x00,
- 0x11, 0xb5, 0x00, 0xab, 0x59, 0x78, 0x14, 0x48,
- 0x01, 0x23, 0xc0, 0x56, 0x00, 0x22, 0x09, 0x18,
- 0x0b, 0x06, 0x1b, 0x16, 0x13, 0x21, 0x13, 0x2b,
- 0x02, 0xdd, 0x00, 0xab, 0x59, 0x70, 0x07, 0xe0,
- 0x00, 0x2b, 0x02, 0xda, 0x00, 0xab, 0x5a, 0x70,
- 0x02, 0xe0, 0x1c, 0x1c, 0x3c, 0x00, 0xc8, 0xfa,
- 0x00, 0x00, 0x00, 0xab, 0x5c, 0x70, 0x00, 0xab,
- 0x1b, 0x78, 0x18, 0x18, 0x00, 0x06, 0x00, 0x16,
- 0x13, 0x28, 0x02, 0xdd, 0x00, 0xab, 0x19, 0x70,
- 0x06, 0xe0, 0x00, 0x28, 0x02, 0xda, 0x00, 0xab,
- 0x1a, 0x70, 0x01, 0xe0, 0x00, 0xab, 0x18, 0x70,
- 0x00, 0x98, 0x18, 0xbd, 0x00, 0x00, 0x64, 0x73,
- 0x01, 0x00, 0x38, 0xb5, 0x0c, 0x1c, 0x15, 0x49,
- 0x00, 0xab, 0x49, 0x68, 0x13, 0x25, 0x3c, 0x00,
- 0x04, 0xfb, 0x00, 0x00, 0x00, 0x91, 0x59, 0x78,
- 0x09, 0x18, 0x59, 0x70, 0x19, 0x78, 0x08, 0x18,
- 0x18, 0x70, 0x19, 0x88, 0x10, 0x48, 0x02, 0x2c,
- 0xc1, 0x80, 0x01, 0xd0, 0x00, 0x2c, 0x0b, 0xd1,
- 0x00, 0xab, 0x18, 0x78, 0x13, 0x28, 0x00, 0xd9,
- 0x1d, 0x70, 0x00, 0xab, 0x19, 0x78, 0x00, 0x20,
- 0xff, 0xf7, 0xee, 0xfd, 0x02, 0x2c, 0x01, 0xd0,
- 0x01, 0x2c, 0x09, 0xd1, 0x00, 0xab, 0x58, 0x78,
- 0x3c, 0x00, 0x40, 0xfb, 0x00, 0x00, 0x13, 0x28,
- 0x00, 0xd9, 0x5d, 0x70, 0x00, 0xab, 0x59, 0x78,
- 0x01, 0x20, 0xff, 0xf7, 0xe0, 0xfd, 0x38, 0xbd,
- 0x00, 0x00, 0x64, 0x73, 0x01, 0x00, 0xa0, 0x58,
- 0x01, 0x00, 0x70, 0x47, 0x00, 0x00, 0xb0, 0xb5,
- 0x04, 0x1c, 0x0e, 0x28, 0x13, 0x4d, 0x04, 0xd0,
- 0x12, 0x49, 0xa0, 0x00, 0x00, 0x19, 0x4d, 0x39,
- 0x45, 0x18, 0x06, 0x20, 0xff, 0xf7, 0x3d, 0xfa,
- 0x0f, 0x49, 0x3c, 0x00, 0x7c, 0xfb, 0x00, 0x00,
- 0xe0, 0x22, 0x09, 0x19, 0x10, 0x39, 0xc9, 0x7b,
- 0x90, 0x43, 0x49, 0x01, 0x11, 0x40, 0x01, 0x43,
- 0x06, 0x20, 0x04, 0xf0, 0x0d, 0xfa, 0x29, 0x1c,
- 0x05, 0x20, 0x09, 0x4a, 0x03, 0xf0, 0x30, 0xff,
- 0x08, 0x48, 0x1f, 0x22, 0x00, 0x19, 0x10, 0x38,
- 0xc0, 0x7b, 0xc1, 0x04, 0xd2, 0x04, 0x08, 0x20,
- 0x03, 0xf0, 0x26, 0xff, 0xb0, 0xbd, 0x00, 0x00,
- 0xb4, 0x09, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xfb,
- 0x00, 0x00, 0x14, 0x45, 0x01, 0x00, 0xff, 0x0f,
- 0x00, 0x00, 0xc0, 0x58, 0x01, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x80, 0xb5, 0x06, 0x49, 0x00, 0x28,
- 0x01, 0xd1, 0x08, 0x68, 0x80, 0xbd, 0x01, 0x28,
- 0x01, 0xd1, 0x48, 0x68, 0x80, 0xbd, 0xf1, 0xf7,
- 0x90, 0xfb, 0x00, 0x20, 0x80, 0xbd, 0x7c, 0x73,
- 0x01, 0x00, 0x01, 0x48, 0x40, 0x68, 0x70, 0x47,
- 0x00, 0x00, 0xa0, 0x58, 0x01, 0x00, 0x3c, 0x00,
- 0xf4, 0xfb, 0x00, 0x00, 0x04, 0x48, 0x01, 0x23,
- 0x04, 0x49, 0xc0, 0x56, 0xc9, 0x56, 0x40, 0x18,
- 0x00, 0x04, 0x00, 0x0c, 0x70, 0x47, 0x00, 0x00,
- 0xa0, 0x58, 0x01, 0x00, 0xa2, 0x58, 0x01, 0x00,
- 0x01, 0x48, 0x40, 0x68, 0x70, 0x47, 0x00, 0x00,
- 0x64, 0x73, 0x01, 0x00, 0xf8, 0xb5, 0x05, 0x1c,
- 0x0e, 0x1c, 0x00, 0xf0, 0x55, 0xf9, 0x04, 0x1c,
- 0x00, 0xf0, 0x58, 0xf9, 0x00, 0x28, 0x2c, 0xd0,
- 0x3c, 0x00, 0x30, 0xfc, 0x00, 0x00, 0xb3, 0x00,
- 0x60, 0x1e, 0x00, 0x2d, 0x1c, 0x4e, 0x19, 0x49,
- 0x1a, 0x4a, 0x06, 0xd1, 0x0b, 0x25, 0x0e, 0x2c,
- 0x00, 0xd1, 0x19, 0x4a, 0xd2, 0x58, 0x08, 0x56,
- 0x08, 0xe0, 0x01, 0x2d, 0x1c, 0xd1, 0x9a, 0x18,
- 0x04, 0x36, 0x08, 0x18, 0x08, 0x25, 0x0e, 0x23,
- 0x12, 0x6d, 0xc0, 0x56, 0x07, 0x1c, 0x47, 0x43,
- 0xfb, 0x00, 0xdf, 0x19, 0x12, 0x4b, 0x3f, 0x21,
- 0x58, 0x43, 0x3c, 0x00, 0x6c, 0xfc, 0x00, 0x00,
- 0x11, 0x4b, 0xa9, 0x40, 0x0c, 0x1c, 0x38, 0x18,
- 0xc0, 0x18, 0x14, 0x40, 0xec, 0x40, 0xc0, 0x11,
- 0x60, 0x43, 0x1b, 0x0a, 0xc0, 0x18, 0x80, 0x12,
- 0x03, 0xd1, 0x01, 0x20, 0x04, 0xe0, 0x00, 0x20,
- 0xf8, 0xbd, 0x3f, 0x28, 0x00, 0xdd, 0x3f, 0x20,
- 0x30, 0x60, 0xa8, 0x40, 0x08, 0x40, 0x8a, 0x43,
- 0x10, 0x43, 0xf5, 0xe7, 0xcc, 0x59, 0x01, 0x00,
- 0xdc, 0x58, 0x01, 0x00, 0x3c, 0x00, 0xa8, 0xfc,
- 0x00, 0x00, 0x7c, 0x73, 0x01, 0x00, 0x7c, 0x59,
- 0x01, 0x00, 0x06, 0x06, 0x00, 0x00, 0x26, 0x00,
- 0x02, 0x00, 0x03, 0x48, 0x08, 0xb5, 0xc0, 0x88,
- 0x00, 0xab, 0x18, 0x80, 0x00, 0x98, 0x08, 0xbd,
- 0x00, 0x00, 0xa0, 0x58, 0x01, 0x00, 0xb0, 0xb5,
- 0x0b, 0x4d, 0x09, 0x4c, 0x0e, 0x20, 0x6c, 0x60,
- 0xff, 0xf7, 0x8d, 0xf9, 0x09, 0x49, 0x02, 0x1c,
- 0xc8, 0x60, 0x01, 0x06, 0x09, 0x0e, 0x3c, 0x00,
- 0xe4, 0xfc, 0x00, 0x00, 0x13, 0x3a, 0x02, 0x2a,
- 0x02, 0xd9, 0x17, 0x38, 0x04, 0x28, 0x00, 0xd8,
- 0x00, 0x21, 0x08, 0x1c, 0x6c, 0x60, 0xb0, 0xbd,
- 0x04, 0x18, 0x02, 0x00, 0x60, 0x00, 0x07, 0x00,
- 0x64, 0x73, 0x01, 0x00, 0x0a, 0x48, 0x98, 0xb5,
- 0x02, 0x78, 0x13, 0x21, 0x14, 0x2a, 0x00, 0xd3,
- 0x01, 0x70, 0x42, 0x78, 0x14, 0x2a, 0x00, 0xd3,
- 0x41, 0x70, 0x06, 0x4c, 0x60, 0x68, 0xff, 0xf7,
- 0x3c, 0x00, 0x20, 0xfd, 0x00, 0x00, 0xbd, 0xfe,
- 0x00, 0x90, 0x00, 0xab, 0x18, 0x88, 0xe0, 0x80,
- 0x00, 0xf0, 0x75, 0xff, 0x98, 0xbd, 0xa4, 0x58,
- 0x01, 0x00, 0xa0, 0x58, 0x01, 0x00, 0x03, 0x48,
- 0x80, 0xb5, 0x41, 0x78, 0x01, 0x20, 0xff, 0xf7,
- 0xe6, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0xa6, 0x58,
- 0x01, 0x00, 0x03, 0x48, 0x80, 0xb5, 0x01, 0x78,
- 0x00, 0x20, 0xff, 0xf7, 0xdc, 0xfc, 0x80, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xfd, 0x00, 0x00,
- 0xa6, 0x58, 0x01, 0x00, 0xb0, 0xb5, 0x05, 0x4d,
- 0x00, 0x24, 0x20, 0x1c, 0xff, 0xf7, 0x44, 0xf9,
- 0x01, 0x34, 0x10, 0x2c, 0x01, 0xc5, 0xf8, 0xd3,
- 0xb0, 0xbd, 0x00, 0x00, 0xd4, 0x44, 0x01, 0x00,
- 0x04, 0x49, 0x80, 0xb5, 0x88, 0x70, 0x04, 0x49,
- 0x80, 0x00, 0x09, 0x58, 0x07, 0x20, 0x04, 0xf0,
- 0x0f, 0xf9, 0x80, 0xbd, 0x64, 0x73, 0x01, 0x00,
- 0xd0, 0x58, 0x01, 0x00, 0x3c, 0x00, 0x98, 0xfd,
- 0x00, 0x00, 0xb0, 0xb5, 0x3f, 0x24, 0x02, 0x1c,
- 0x00, 0x2a, 0x01, 0xd1, 0x08, 0x20, 0x0b, 0x23,
- 0x01, 0x2a, 0x01, 0xd1, 0x09, 0x20, 0x08, 0x23,
- 0x25, 0x1c, 0x9d, 0x40, 0x00, 0x29, 0x00, 0xd1,
- 0x01, 0x21, 0x3f, 0x29, 0x00, 0xd9, 0x21, 0x1c,
- 0x99, 0x40, 0x0a, 0x1c, 0x29, 0x1c, 0xff, 0xf7,
- 0x7c, 0xfc, 0xb0, 0xbd, 0x00, 0x00, 0x91, 0xb5,
- 0x12, 0x49, 0x00, 0xab, 0x1a, 0x78, 0x3c, 0x00,
- 0xd4, 0xfd, 0x00, 0x00, 0x08, 0x78, 0x11, 0x4c,
- 0x80, 0x18, 0x00, 0x06, 0x00, 0x0e, 0x20, 0x70,
- 0x49, 0x78, 0x5a, 0x78, 0x89, 0x18, 0x09, 0x06,
- 0x09, 0x0e, 0x13, 0x22, 0x13, 0x28, 0x61, 0x70,
- 0x00, 0xd9, 0x22, 0x70, 0x13, 0x29, 0x00, 0xd9,
- 0x62, 0x70, 0x08, 0x49, 0x08, 0x48, 0x06, 0x39,
- 0xc9, 0x88, 0x81, 0x80, 0x21, 0x78, 0x00, 0x20,
- 0xff, 0xf7, 0x82, 0xfc, 0x61, 0x78, 0x01, 0x20,
- 0x3c, 0x00, 0x10, 0xfe, 0x00, 0x00, 0xff, 0xf7,
- 0x7e, 0xfc, 0x98, 0xbd, 0x00, 0x00, 0xa4, 0x58,
- 0x01, 0x00, 0xa6, 0x58, 0x01, 0x00, 0x64, 0x73,
- 0x01, 0x00, 0x70, 0xb5, 0x1d, 0x4d, 0x04, 0x1c,
- 0x28, 0x78, 0x0e, 0x1c, 0x03, 0x28, 0x03, 0xd1,
- 0x02, 0x21, 0x11, 0x20, 0xf1, 0xf7, 0x35, 0xfa,
- 0x20, 0x1c, 0x00, 0xf0, 0x4e, 0xf8, 0x00, 0x28,
- 0x25, 0xd0, 0x28, 0x78, 0x01, 0x28, 0x0a, 0xd1,
- 0x68, 0x68, 0x3c, 0x00, 0x4c, 0xfe, 0x00, 0x00,
- 0x00, 0x28, 0x07, 0xd0, 0x01, 0x21, 0x11, 0x20,
- 0x03, 0xf0, 0xee, 0xfb, 0x01, 0x20, 0x69, 0x68,
- 0xf0, 0xf7, 0xbd, 0xfa, 0x6c, 0x70, 0x6e, 0x60,
- 0x20, 0x1c, 0xff, 0xf7, 0xc1, 0xfc, 0x04, 0x1c,
- 0x00, 0xf0, 0xd4, 0xfe, 0x00, 0x2c, 0x02, 0xd0,
- 0x68, 0x68, 0x00, 0x28, 0x02, 0xd1, 0xf6, 0xf7,
- 0xd9, 0xf8, 0x70, 0xbd, 0x01, 0x20, 0x28, 0x70,
- 0x01, 0x22, 0x21, 0x1c, 0x3c, 0x00, 0x88, 0xfe,
- 0x00, 0x00, 0x11, 0x20, 0x03, 0xf0, 0x9f, 0xfb,
- 0x70, 0xbd, 0x02, 0x21, 0x11, 0x20, 0xf1, 0xf7,
- 0x06, 0xfa, 0x70, 0xbd, 0x00, 0x00, 0x9c, 0x73,
- 0x01, 0x00, 0x80, 0xb5, 0x01, 0x28, 0x05, 0xd1,
- 0x00, 0x29, 0x04, 0xd0, 0x01, 0x29, 0x01, 0xd1,
- 0xf6, 0xf7, 0xbf, 0xf8, 0x80, 0xbd, 0x05, 0x49,
- 0x08, 0x78, 0x03, 0x28, 0x02, 0xd0, 0x00, 0x20,
- 0x08, 0x70, 0x80, 0xbd, 0x03, 0x21, 0x3c, 0x00,
- 0xc4, 0xfe, 0x00, 0x00, 0x11, 0x20, 0xf1, 0xf7,
- 0xed, 0xf9, 0x80, 0xbd, 0x9c, 0x73, 0x01, 0x00,
- 0x01, 0x48, 0x40, 0x78, 0x70, 0x47, 0x00, 0x00,
- 0x9c, 0x73, 0x01, 0x00, 0x01, 0x1c, 0x01, 0x39,
- 0x01, 0x20, 0x0e, 0x29, 0x00, 0xd3, 0x00, 0x20,
- 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5, 0x13, 0x4c,
- 0x20, 0x78, 0x01, 0x28, 0x0e, 0xd1, 0x60, 0x68,
- 0x00, 0x28, 0x0d, 0xd0, 0x01, 0x21, 0x11, 0x20,
- 0x3c, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0xf0,
- 0x98, 0xfb, 0x01, 0x20, 0x61, 0x68, 0xf0, 0xf7,
- 0x67, 0xfa, 0x00, 0x20, 0x60, 0x60, 0x20, 0x70,
- 0x01, 0xe0, 0x03, 0x28, 0x0e, 0xd0, 0x00, 0x21,
- 0x11, 0x20, 0x03, 0xf0, 0x8a, 0xfb, 0xff, 0xf7,
- 0x24, 0xfc, 0xff, 0xf7, 0xc0, 0xfb, 0x05, 0x49,
- 0x08, 0x7b, 0x40, 0x08, 0x40, 0x00, 0x08, 0x73,
- 0x03, 0x20, 0x20, 0x70, 0x01, 0x20, 0x10, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xff, 0x00, 0x00,
- 0x9c, 0x73, 0x01, 0x00, 0x88, 0x00, 0x07, 0x00,
- 0x10, 0xb5, 0x0d, 0x4c, 0x20, 0x78, 0x03, 0x28,
- 0x13, 0xd1, 0x00, 0x20, 0x20, 0x70, 0x0b, 0x48,
- 0x01, 0x7b, 0x01, 0x22, 0x11, 0x43, 0x01, 0x73,
- 0xff, 0xf7, 0x70, 0xfc, 0xff, 0xf7, 0x18, 0xfc,
- 0x00, 0x28, 0x06, 0xd0, 0x02, 0x21, 0x21, 0x70,
- 0x01, 0x1c, 0x00, 0x22, 0x11, 0x20, 0x03, 0xf0,
- 0x2b, 0xfb, 0x01, 0x20, 0x3c, 0x00, 0x78, 0xff,
- 0x00, 0x00, 0x10, 0xbd, 0x00, 0x00, 0x9c, 0x73,
- 0x01, 0x00, 0x88, 0x00, 0x07, 0x00, 0x80, 0xb5,
- 0x05, 0x49, 0x00, 0x28, 0x04, 0xd0, 0x00, 0x20,
- 0x08, 0x60, 0x03, 0xf0, 0x5a, 0xfa, 0x80, 0xbd,
- 0x01, 0x20, 0x08, 0x60, 0x80, 0xbd, 0x80, 0x5a,
- 0x01, 0x00, 0xfe, 0xb5, 0x05, 0x1c, 0x80, 0x35,
- 0x04, 0x1c, 0xa8, 0x68, 0x29, 0x79, 0x06, 0x68,
- 0x20, 0x1c, 0xa0, 0x30, 0x02, 0x29, 0x3c, 0x00,
- 0xb4, 0xff, 0x00, 0x00, 0x1c, 0xd1, 0x69, 0x79,
- 0x08, 0x29, 0x01, 0xd0, 0x0c, 0x29, 0x17, 0xd1,
- 0x01, 0x21, 0x61, 0x62, 0xa9, 0x68, 0x09, 0x68,
- 0x09, 0x8b, 0x01, 0x82, 0xa9, 0x69, 0x01, 0x91,
- 0x00, 0x8a, 0xc0, 0x06, 0x05, 0xd5, 0x60, 0x68,
- 0x00, 0x88, 0x40, 0x05, 0x01, 0xd4, 0x01, 0x20,
- 0x00, 0xe0, 0x00, 0x20, 0x02, 0x90, 0x05, 0x20,
- 0x01, 0xa9, 0x02, 0xf0, 0xb7, 0xf9, 0x02, 0xe0,
- 0x3c, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x21,
- 0x61, 0x62, 0x01, 0x82, 0xa9, 0x68, 0x1a, 0x23,
- 0x0a, 0x89, 0x67, 0x6a, 0x18, 0x1c, 0x00, 0x2f,
- 0x00, 0xd1, 0x18, 0x20, 0x10, 0x1a, 0x08, 0x81,
- 0xa8, 0x68, 0x01, 0x68, 0x62, 0x6a, 0x00, 0x2a,
- 0x00, 0xd1, 0x18, 0x23, 0xc9, 0x18, 0x01, 0x60,
- 0xa8, 0x68, 0x41, 0xc4, 0x30, 0x88, 0x08, 0x3c,
- 0x40, 0x04, 0x03, 0xd5, 0x20, 0x1c, 0xf7, 0xf7,
- 0xbc, 0xf9, 0x3c, 0x00, 0x2c, 0x00, 0x01, 0x00,
- 0xfe, 0xbd, 0x00, 0x21, 0xe1, 0x61, 0x30, 0x79,
- 0xc0, 0x07, 0x03, 0xd4, 0x20, 0x1c, 0xf7, 0xf7,
- 0x91, 0xfe, 0xf5, 0xe7, 0x20, 0x1c, 0xf7, 0xf7,
- 0x43, 0xff, 0xf1, 0xe7, 0xf7, 0xb5, 0x05, 0x1c,
- 0x0a, 0x30, 0x06, 0x1c, 0xf5, 0xf7, 0xa4, 0xfa,
- 0x14, 0x4f, 0x04, 0x1c, 0x39, 0x88, 0xf2, 0xf7,
- 0x83, 0xfe, 0x32, 0x88, 0x78, 0x68, 0x02, 0x80,
- 0x72, 0x88, 0x02, 0x30, 0x3c, 0x00, 0x68, 0x00,
- 0x01, 0x00, 0x02, 0x80, 0xb1, 0x88, 0x41, 0x80,
- 0x69, 0x88, 0x02, 0x9a, 0x20, 0x1c, 0xfa, 0xf7,
- 0xce, 0xfe, 0x0b, 0x4d, 0x08, 0x35, 0x68, 0x80,
- 0xfb, 0xf7, 0x2b, 0xfe, 0x01, 0x21, 0x09, 0x03,
- 0x00, 0x28, 0x28, 0x88, 0x01, 0xd0, 0x88, 0x43,
- 0x00, 0xe0, 0x08, 0x43, 0x28, 0x80, 0x04, 0x48,
- 0x00, 0x22, 0x00, 0x21, 0x14, 0x30, 0xf2, 0xf7,
- 0x32, 0xfe, 0x20, 0x1c, 0xfc, 0xf7, 0x3c, 0x00,
- 0xa4, 0x00, 0x01, 0x00, 0x85, 0xfa, 0xfe, 0xbd,
- 0x24, 0x7b, 0x01, 0x00, 0x10, 0xb5, 0x13, 0x4c,
- 0x11, 0x49, 0x20, 0x1c, 0xff, 0x30, 0x69, 0x30,
- 0x0e, 0xc9, 0x0e, 0xc0, 0x20, 0x1c, 0xff, 0x30,
- 0x24, 0x22, 0x75, 0x30, 0x0e, 0x49, 0xf0, 0xf7,
- 0x17, 0xfa, 0x20, 0x1c, 0xff, 0x30, 0x3c, 0x22,
- 0x99, 0x30, 0x0c, 0x49, 0xf0, 0xf7, 0x6c, 0xfa,
- 0x20, 0x1c, 0xff, 0x30, 0x10, 0x22, 0xd5, 0x30,
- 0x3c, 0x00, 0xe0, 0x00, 0x01, 0x00, 0x09, 0x49,
- 0xf0, 0xf7, 0x09, 0xfa, 0x20, 0x1c, 0xff, 0x30,
- 0x28, 0x22, 0xe5, 0x30, 0x07, 0x49, 0xf0, 0xf7,
- 0x5e, 0xfa, 0x10, 0xbd, 0x00, 0x00, 0x00, 0x80,
- 0x07, 0x00, 0x40, 0x63, 0x01, 0x00, 0x0c, 0x80,
- 0x07, 0x00, 0x30, 0x80, 0x07, 0x00, 0x80, 0x80,
- 0x07, 0x00, 0xa0, 0x80, 0x07, 0x00, 0xb0, 0xb5,
- 0x00, 0x28, 0x3f, 0xd0, 0x21, 0x48, 0x41, 0x68,
- 0x21, 0x4c, 0x3c, 0x00, 0x1c, 0x01, 0x01, 0x00,
- 0x61, 0x60, 0xc1, 0x68, 0xe1, 0x60, 0x01, 0x69,
- 0x21, 0x61, 0x80, 0x6a, 0xa0, 0x62, 0x1e, 0x49,
- 0x1c, 0x48, 0x09, 0x68, 0x14, 0x38, 0x41, 0x64,
- 0x1c, 0x48, 0x25, 0x1c, 0x3c, 0x35, 0x0f, 0xc8,
- 0x0f, 0xc5, 0x20, 0x1c, 0x80, 0x22, 0x4c, 0x30,
- 0x19, 0x49, 0xf0, 0xf7, 0x33, 0xfa, 0x14, 0x22,
- 0x20, 0x1c, 0xcc, 0x30, 0x17, 0x49, 0xf0, 0xf7,
- 0x2d, 0xfa, 0x38, 0x22, 0x3c, 0x00, 0x58, 0x01,
- 0x01, 0x00, 0x20, 0x1c, 0xe0, 0x30, 0x15, 0x49,
- 0xf0, 0xf7, 0x27, 0xfa, 0x20, 0x1c, 0xff, 0x30,
- 0x50, 0x22, 0x19, 0x30, 0x13, 0x49, 0xf0, 0xf7,
- 0x20, 0xfa, 0x83, 0x20, 0x80, 0x00, 0x14, 0x22,
- 0x20, 0x18, 0x10, 0x49, 0xf0, 0xf7, 0x19, 0xfa,
- 0x11, 0x20, 0x40, 0x01, 0x84, 0x22, 0x20, 0x18,
- 0x0e, 0x49, 0xf0, 0xf7, 0x12, 0xfa, 0xff, 0xf7,
- 0x8e, 0xff, 0xf8, 0xf7, 0x94, 0xfb, 0x3c, 0x00,
- 0x94, 0x01, 0x01, 0x00, 0xb0, 0xbd, 0xff, 0xf7,
- 0x89, 0xff, 0xb0, 0xbd, 0x00, 0x10, 0x07, 0x00,
- 0x40, 0x63, 0x01, 0x00, 0x08, 0x20, 0x07, 0x00,
- 0x40, 0x20, 0x07, 0x00, 0x00, 0x30, 0x07, 0x00,
- 0x00, 0x40, 0x07, 0x00, 0x00, 0x50, 0x07, 0x00,
- 0x00, 0x60, 0x07, 0x00, 0x10, 0x00, 0x07, 0x00,
- 0x00, 0x90, 0x07, 0x00, 0x0c, 0x49, 0x80, 0xb5,
- 0x01, 0x20, 0x48, 0x60, 0x0a, 0x48, 0x14, 0x38,
- 0x3c, 0x00, 0xd0, 0x01, 0x01, 0x00, 0x00, 0x78,
- 0x01, 0x28, 0x04, 0xd0, 0x08, 0x48, 0x94, 0x38,
- 0x40, 0x6f, 0x00, 0x28, 0x03, 0xd0, 0x00, 0x20,
- 0x00, 0xf0, 0x1f, 0xf8, 0x80, 0xbd, 0x08, 0x68,
- 0x00, 0x28, 0xfb, 0xd0, 0x03, 0x48, 0xf2, 0xf7,
- 0x7a, 0xfe, 0x80, 0xbd, 0x00, 0x00, 0x98, 0x66,
- 0x01, 0x00, 0xff, 0xff, 0x00, 0x00, 0x80, 0xb5,
- 0x00, 0x28, 0x09, 0xd1, 0xf2, 0x21, 0x0f, 0x20,
- 0x03, 0xf0, 0x3c, 0x00, 0x0c, 0x02, 0x01, 0x00,
- 0x13, 0xfa, 0x00, 0x22, 0x0f, 0x21, 0xf1, 0x20,
- 0x03, 0xf0, 0xcc, 0xfa, 0x80, 0xbd, 0x01, 0x20,
- 0xf8, 0xf7, 0x6a, 0xfe, 0x80, 0xbd, 0x00, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x03, 0x20, 0x00, 0xf0,
- 0xc9, 0xf9, 0x00, 0x21, 0x0f, 0x20, 0x03, 0xf0,
- 0xff, 0xf9, 0xff, 0xf7, 0x65, 0xf8, 0x0b, 0x49,
- 0x00, 0x20, 0x48, 0x74, 0xfb, 0xf7, 0xe6, 0xfa,
- 0x09, 0x48, 0x00, 0x68, 0x3c, 0x00, 0x48, 0x02,
- 0x01, 0x00, 0x00, 0x28, 0x03, 0xdc, 0x02, 0x21,
- 0x40, 0x42, 0xff, 0xf7, 0x52, 0xfc, 0x04, 0x48,
- 0x14, 0x30, 0x00, 0x68, 0x00, 0x28, 0x02, 0xd0,
- 0x20, 0x1c, 0xf2, 0xf7, 0x42, 0xfe, 0x10, 0xbd,
- 0x00, 0x00, 0x84, 0x66, 0x01, 0x00, 0xd4, 0x7e,
- 0x01, 0x00, 0x06, 0x49, 0x80, 0xb5, 0x09, 0x78,
- 0x04, 0x29, 0x05, 0xd0, 0x05, 0x29, 0x03, 0xd0,
- 0x06, 0x29, 0x01, 0xd0, 0x07, 0x29, 0x3c, 0x00,
- 0x84, 0x02, 0x01, 0x00, 0x01, 0xd1, 0xfe, 0xf7,
- 0xbd, 0xfd, 0x80, 0xbd, 0x74, 0x66, 0x01, 0x00,
- 0x10, 0xb5, 0x09, 0x4c, 0xe0, 0x68, 0x00, 0x28,
- 0x0b, 0xd1, 0x07, 0x48, 0x2c, 0x38, 0x00, 0x8a,
- 0xc0, 0x07, 0x04, 0xd5, 0x00, 0x21, 0x01, 0x20,
- 0x62, 0x68, 0xf9, 0xf7, 0xc9, 0xfa, 0x01, 0x20,
- 0xe0, 0x60, 0x01, 0x20, 0x10, 0xbd, 0x00, 0x00,
- 0xf4, 0x6e, 0x01, 0x00, 0x8c, 0xb5, 0x02, 0x1c,
- 0x3c, 0x00, 0xc0, 0x02, 0x01, 0x00, 0x08, 0x1c,
- 0x11, 0x1c, 0xfd, 0xf7, 0x28, 0xff, 0x01, 0x90,
- 0x00, 0x28, 0x05, 0xd0, 0x17, 0x20, 0x00, 0xab,
- 0x18, 0x80, 0x68, 0x46, 0xfd, 0xf7, 0xff, 0xf8,
- 0x8c, 0xbd, 0xf1, 0xb5, 0x2e, 0x4c, 0xae, 0xb0,
- 0x00, 0x25, 0x25, 0x63, 0x20, 0x69, 0x01, 0x28,
- 0x03, 0xd1, 0x01, 0xa8, 0x01, 0xf0, 0xa1, 0xf8,
- 0x4e, 0xe0, 0x01, 0x26, 0x28, 0x4f, 0x26, 0x70,
- 0x50, 0x3f, 0x3c, 0x00, 0xfc, 0x02, 0x01, 0x00,
- 0xb8, 0x69, 0xf8, 0xf7, 0x4f, 0xf8, 0x25, 0x49,
- 0x2c, 0x39, 0x00, 0x28, 0x1d, 0xd0, 0xe0, 0x6a,
- 0x01, 0x28, 0x1a, 0xd1, 0x08, 0x8a, 0x0f, 0x1c,
- 0x80, 0x07, 0x04, 0xd5, 0x00, 0x21, 0x02, 0x20,
- 0x62, 0x68, 0xf9, 0xf7, 0x8f, 0xfa, 0x38, 0x8a,
- 0x00, 0x07, 0x07, 0xd5, 0xe0, 0x68, 0x01, 0x28,
- 0x04, 0xd1, 0x00, 0x21, 0x08, 0x20, 0x62, 0x68,
- 0xf9, 0xf7, 0x84, 0xfa, 0x3c, 0x00, 0x38, 0x03,
- 0x01, 0x00, 0x00, 0x22, 0x18, 0x21, 0x82, 0x20,
- 0x26, 0x63, 0x03, 0xf0, 0x36, 0xfa, 0x25, 0xe0,
- 0x08, 0x8a, 0x0e, 0x1c, 0x80, 0x07, 0x04, 0xd5,
- 0x00, 0x21, 0x02, 0x20, 0x62, 0x68, 0xf9, 0xf7,
- 0x74, 0xfa, 0x30, 0x8a, 0x00, 0x07, 0x07, 0xd5,
- 0xe0, 0x68, 0x01, 0x28, 0x04, 0xd1, 0x00, 0x21,
- 0x08, 0x20, 0x62, 0x68, 0xf9, 0xf7, 0x69, 0xfa,
- 0x30, 0x8a, 0x40, 0x07, 0x04, 0xd5, 0x3c, 0x00,
- 0x74, 0x03, 0x01, 0x00, 0x00, 0x22, 0x00, 0x21,
- 0x04, 0x20, 0xf9, 0xf7, 0x61, 0xfa, 0x2e, 0x98,
- 0x01, 0x28, 0x04, 0xd0, 0x1e, 0x95, 0x09, 0x21,
- 0x1b, 0xa8, 0xff, 0xf7, 0x97, 0xff, 0xe5, 0x62,
- 0xbd, 0x61, 0xe5, 0x60, 0x2f, 0xb0, 0xf0, 0xbd,
- 0xf4, 0x6e, 0x01, 0x00, 0x80, 0xb5, 0x07, 0x20,
- 0xfe, 0xf7, 0xa0, 0xfe, 0x00, 0x21, 0x0f, 0x20,
- 0x03, 0xf0, 0x44, 0xf9, 0x0c, 0x48, 0x01, 0x78,
- 0x3c, 0x00, 0xb0, 0x03, 0x01, 0x00, 0x00, 0x29,
- 0x0f, 0xd0, 0x02, 0x21, 0x01, 0x70, 0x88, 0x38,
- 0x00, 0x78, 0x00, 0x28, 0x04, 0xd0, 0x07, 0x49,
- 0x10, 0x31, 0x48, 0x7c, 0x01, 0x30, 0x48, 0x74,
- 0xf2, 0x22, 0x0f, 0x20, 0x05, 0x49, 0x03, 0xf0,
- 0xfc, 0xf8, 0x00, 0x22, 0x0f, 0x21, 0xf3, 0x20,
- 0x03, 0xf0, 0xe9, 0xf9, 0x80, 0xbd, 0x74, 0x66,
- 0x01, 0x00, 0x80, 0x84, 0x1e, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x3c, 0x00, 0xec, 0x03, 0x01, 0x00,
- 0xf2, 0x21, 0x0f, 0x20, 0x03, 0xf0, 0x20, 0xf9,
- 0x01, 0x2c, 0x0a, 0xd1, 0x08, 0x48, 0x08, 0x49,
- 0x00, 0x68, 0x14, 0x39, 0x00, 0x28, 0x05, 0xd0,
- 0xc8, 0x78, 0x02, 0x28, 0x02, 0xd1, 0xf7, 0xf7,
- 0xaf, 0xfa, 0x10, 0xbd, 0x00, 0x20, 0x48, 0x70,
- 0x05, 0x20, 0xfe, 0xf7, 0x65, 0xfe, 0x10, 0xbd,
- 0x98, 0x66, 0x01, 0x00, 0xf8, 0xb5, 0x28, 0x4e,
- 0x30, 0x21, 0x35, 0x1c, 0x3c, 0x00, 0x28, 0x04,
- 0x01, 0x00, 0x60, 0x35, 0x28, 0x89, 0x89, 0x5d,
- 0x88, 0x42, 0x03, 0xd1, 0x00, 0x20, 0xff, 0xf7,
- 0xf6, 0xfe, 0xf8, 0xbd, 0x34, 0x1c, 0x70, 0x34,
- 0x01, 0x21, 0x21, 0x70, 0x41, 0x18, 0x80, 0x19,
- 0x30, 0x30, 0x29, 0x81, 0x40, 0x78, 0x1d, 0x4f,
- 0x18, 0x3f, 0x38, 0x70, 0x00, 0x28, 0x08, 0xd0,
- 0x00, 0x21, 0xfb, 0xf7, 0xc2, 0xf9, 0x00, 0x28,
- 0x07, 0xd1, 0x20, 0x78, 0xff, 0xf7, 0x3c, 0x00,
- 0x64, 0x04, 0x01, 0x00, 0x9b, 0xff, 0xe7, 0xe7,
- 0x01, 0x21, 0x0f, 0x20, 0xf0, 0xf7, 0x1a, 0xff,
- 0x14, 0x48, 0x01, 0x21, 0x80, 0x30, 0x81, 0x70,
- 0x38, 0x69, 0xfb, 0xf7, 0x55, 0xfa, 0x20, 0x73,
- 0x00, 0x21, 0x0f, 0x20, 0x03, 0xf0, 0xd6, 0xf8,
- 0x70, 0x7a, 0x01, 0x28, 0x0e, 0xd1, 0x0e, 0x48,
- 0x00, 0x68, 0x00, 0x28, 0x04, 0xd0, 0x38, 0x78,
- 0x02, 0xf0, 0xda, 0xfa, 0x00, 0x28, 0x05, 0xd0,
- 0x3c, 0x00, 0xa0, 0x04, 0x01, 0x00, 0x30, 0x7f,
- 0x60, 0x73, 0x03, 0x20, 0x20, 0x70, 0x71, 0x89,
- 0x05, 0xe0, 0x05, 0x20, 0x20, 0x70, 0xa8, 0x88,
- 0xfa, 0xf7, 0x3b, 0xfb, 0x01, 0x1c, 0x00, 0x22,
- 0x0f, 0x20, 0x03, 0xf0, 0x86, 0xf8, 0xba, 0xe7,
- 0x00, 0x00, 0x04, 0x66, 0x01, 0x00, 0xe4, 0x62,
- 0x01, 0x00, 0x70, 0xb5, 0x04, 0x1c, 0x02, 0xf0,
- 0x6c, 0xfc, 0x36, 0x4b, 0x19, 0x1c, 0xa0, 0x31,
- 0x0a, 0x78, 0x3c, 0x00, 0xdc, 0x04, 0x01, 0x00,
- 0x10, 0x2a, 0x02, 0xd2, 0x0a, 0x79, 0x10, 0x2a,
- 0x01, 0xd3, 0x01, 0x25, 0x00, 0xe0, 0x00, 0x25,
- 0x30, 0x4e, 0xca, 0x79, 0x80, 0x36, 0x01, 0x2c,
- 0x12, 0xd0, 0x00, 0x25, 0x02, 0x2c, 0x2e, 0xd0,
- 0x04, 0x2c, 0x3c, 0xd1, 0x5c, 0x6b, 0x00, 0x2c,
- 0x39, 0xd1, 0x9c, 0x6f, 0x00, 0x1b, 0x2a, 0x4c,
- 0xa0, 0x42, 0x34, 0xd9, 0xb2, 0x68, 0x98, 0x6a,
- 0x82, 0x42, 0x31, 0xd0, 0x3c, 0x00, 0x18, 0x05,
- 0x01, 0x00, 0x4d, 0x72, 0x34, 0xe0, 0xb0, 0x68,
- 0x9c, 0x6a, 0x02, 0x22, 0xa0, 0x42, 0x21, 0xd1,
- 0x58, 0x6b, 0x00, 0x28, 0x1e, 0xd1, 0x00, 0x2d,
- 0x1c, 0xd1, 0x48, 0x7a, 0x19, 0x28, 0x20, 0xd0,
- 0x34, 0x68, 0x98, 0x6f, 0x64, 0x00, 0x00, 0x1b,
- 0x74, 0x68, 0x00, 0x19, 0xff, 0x30, 0x1c, 0x4c,
- 0x39, 0x30, 0xa0, 0x42, 0x16, 0xd2, 0x48, 0x79,
- 0x8c, 0x79, 0x00, 0x19, 0x30, 0x28, 0x3c, 0x00,
- 0x54, 0x05, 0x01, 0x00, 0x11, 0xd3, 0x10, 0x22,
- 0x0f, 0xe0, 0x5c, 0x6b, 0x01, 0x2c, 0x06, 0xd1,
- 0xb0, 0x68, 0x9a, 0x6a, 0x90, 0x42, 0x00, 0xd1,
- 0x4d, 0x72, 0x00, 0x22, 0x05, 0xe0, 0x9c, 0x6f,
- 0x00, 0x1b, 0x12, 0x4c, 0xa0, 0x42, 0x00, 0xd3,
- 0x20, 0x22, 0x06, 0xe0, 0x4a, 0x7a, 0x19, 0x2a,
- 0x01, 0xd2, 0x01, 0x32, 0x4a, 0x72, 0x20, 0x22,
- 0xb0, 0x60, 0x30, 0x68, 0x9b, 0x6f, 0x98, 0x42,
- 0x3c, 0x00, 0x90, 0x05, 0x01, 0x00, 0x04, 0xd1,
- 0x00, 0x2a, 0x00, 0xd1, 0x48, 0x79, 0x4a, 0x71,
- 0x06, 0xe0, 0x10, 0x2a, 0x04, 0xd3, 0x70, 0x60,
- 0x33, 0x60, 0x48, 0x79, 0x88, 0x71, 0xf6, 0xe7,
- 0xca, 0x71, 0x70, 0xbd, 0x00, 0x00, 0xa4, 0x6c,
- 0x01, 0x00, 0xa3, 0x04, 0x00, 0x00, 0x71, 0x02,
- 0x00, 0x00, 0x35, 0x0c, 0x00, 0x00, 0x05, 0x48,
- 0x80, 0xb5, 0x81, 0x7b, 0x00, 0x29, 0x05, 0xd0,
- 0x00, 0x21, 0x3c, 0x00, 0xcc, 0x05, 0x01, 0x00,
- 0x81, 0x73, 0x03, 0x49, 0x0f, 0x20, 0x01, 0xf0,
- 0x0f, 0xff, 0x80, 0xbd, 0x74, 0x66, 0x01, 0x00,
- 0xe9, 0x03, 0x01, 0x00, 0xf8, 0xb5, 0x04, 0x1c,
- 0x02, 0xf0, 0xe2, 0xfb, 0x05, 0x1c, 0x38, 0x4e,
- 0x20, 0x1c, 0x37, 0x49, 0x34, 0x1c, 0xa0, 0x34,
- 0x10, 0x22, 0x44, 0x39, 0x01, 0x28, 0x2c, 0xd0,
- 0x04, 0x28, 0x4e, 0xd1, 0x37, 0x1c, 0x74, 0x36,
- 0x09, 0xce, 0x26, 0x78, 0x3c, 0x00, 0x08, 0x06,
- 0x01, 0x00, 0xc0, 0x1a, 0x20, 0x2e, 0x04, 0xd1,
- 0x30, 0x4e, 0xb0, 0x42, 0x01, 0xd9, 0x00, 0x26,
- 0x4e, 0x61, 0x3e, 0x1c, 0x3f, 0x6c, 0x00, 0x2f,
- 0x48, 0xd1, 0x77, 0x6c, 0x00, 0x2f, 0x45, 0xd1,
- 0xb7, 0x6a, 0x00, 0x2f, 0x3d, 0xd0, 0x77, 0x6b,
- 0x00, 0x2f, 0x3a, 0xd0, 0x27, 0x4f, 0xb8, 0x42,
- 0x37, 0xd2, 0x60, 0x78, 0x10, 0x28, 0x06, 0xd3,
- 0xf0, 0x6f, 0x18, 0x1a, 0x24, 0x4b, 0x3c, 0x00,
- 0x44, 0x06, 0x01, 0x00, 0x98, 0x42, 0x01, 0xd2,
- 0xe2, 0x70, 0xf5, 0x66, 0x48, 0x69, 0x06, 0x28,
- 0x2f, 0xd2, 0x01, 0x30, 0x2c, 0xe0, 0x20, 0x78,
- 0x20, 0x28, 0x01, 0xd1, 0x06, 0x23, 0x4b, 0x61,
- 0x02, 0x23, 0x23, 0x71, 0xb3, 0x6a, 0x00, 0x2b,
- 0x19, 0xd0, 0x49, 0x69, 0x03, 0x29, 0x16, 0xd9,
- 0x71, 0x6b, 0x73, 0x6d, 0x59, 0x40, 0x12, 0xd0,
- 0xe1, 0x78, 0x10, 0x29, 0x10, 0xd3, 0x61, 0x78,
- 0x3c, 0x00, 0x80, 0x06, 0x01, 0x00, 0x33, 0x1c,
- 0x10, 0x29, 0x0c, 0xd3, 0xd9, 0x6f, 0x69, 0x1a,
- 0x13, 0x4d, 0xa9, 0x42, 0x07, 0xd2, 0x58, 0x6c,
- 0x00, 0x28, 0x02, 0xd0, 0x98, 0x6c, 0x00, 0x28,
- 0x00, 0xd1, 0x22, 0x71, 0xf8, 0xbd, 0x02, 0x28,
- 0xfc, 0xd1, 0x22, 0x70, 0xfa, 0xe7, 0x48, 0x69,
- 0x00, 0x28, 0x01, 0xd0, 0x01, 0x38, 0x48, 0x61,
- 0x0a, 0x49, 0xf0, 0x6e, 0x40, 0x18, 0x02, 0xf0,
- 0xb0, 0xfa, 0x3c, 0x00, 0xbc, 0x06, 0x01, 0x00,
- 0x00, 0x28, 0xee, 0xd0, 0x01, 0x20, 0xe0, 0x70,
- 0x06, 0x48, 0x28, 0x18, 0xf0, 0x66, 0xe8, 0xe7,
- 0xa4, 0x6c, 0x01, 0x00, 0xe2, 0x04, 0x00, 0x00,
- 0x1a, 0x06, 0x00, 0x00, 0x53, 0x07, 0x00, 0x00,
- 0x00, 0x2d, 0x31, 0x01, 0x00, 0x5a, 0x62, 0x02,
- 0x80, 0xb5, 0x41, 0x68, 0x09, 0x79, 0xc9, 0x07,
- 0x13, 0xd5, 0xc1, 0x69, 0x00, 0x29, 0x0d, 0xd0,
- 0x89, 0x79, 0x02, 0x29, 0x3c, 0x00, 0xf8, 0x06,
- 0x01, 0x00, 0x0a, 0xd1, 0x08, 0x21, 0x01, 0x86,
- 0x01, 0x1c, 0x38, 0x31, 0x81, 0x62, 0x02, 0x1c,
- 0x06, 0x48, 0x04, 0x49, 0xf9, 0xf7, 0xfd, 0xfc,
- 0x80, 0xbd, 0xf7, 0xf7, 0xdc, 0xfb, 0x80, 0xbd,
- 0xf7, 0xf7, 0x23, 0xfb, 0x80, 0xbd, 0xb9, 0x71,
- 0x00, 0x00, 0xa0, 0x6a, 0x01, 0x00, 0x10, 0xb5,
- 0x00, 0x24, 0x00, 0x28, 0x03, 0xd0, 0x02, 0xf0,
- 0xe8, 0xfe, 0x00, 0x28, 0x17, 0xd0, 0x3c, 0x00,
- 0x34, 0x07, 0x01, 0x00, 0x0c, 0x4c, 0x01, 0x20,
- 0xa0, 0x72, 0x20, 0x68, 0x00, 0x21, 0x41, 0x62,
- 0x0a, 0x49, 0x02, 0x68, 0xc9, 0x78, 0x60, 0x32,
- 0x91, 0x71, 0x21, 0x89, 0x01, 0x31, 0x21, 0x81,
- 0x00, 0x68, 0x40, 0x30, 0x81, 0x83, 0xfb, 0xf7,
- 0x31, 0xfc, 0x20, 0x68, 0x00, 0x68, 0xfc, 0xf7,
- 0xa1, 0xf9, 0x01, 0x24, 0x20, 0x1c, 0x10, 0xbd,
- 0x14, 0x7a, 0x01, 0x00, 0x0e, 0x61, 0x01, 0x00,
- 0x3c, 0x00, 0x70, 0x07, 0x01, 0x00, 0x7f, 0xb5,
- 0x06, 0x1c, 0x1e, 0x48, 0x1d, 0x1c, 0x43, 0x88,
- 0x02, 0x88, 0x1c, 0x21, 0x00, 0x20, 0x90, 0xb0,
- 0xf0, 0xf7, 0x45, 0xff, 0x03, 0x90, 0x04, 0x68,
- 0xff, 0x21, 0x01, 0x31, 0x21, 0x80, 0x08, 0x20,
- 0x60, 0x80, 0x06, 0x20, 0x20, 0x71, 0x04, 0x20,
- 0x60, 0x71, 0xc0, 0x01, 0x00, 0x2d, 0x00, 0xd1,
- 0x08, 0x1c, 0xe0, 0x80, 0x01, 0xa8, 0x02, 0x30,
- 0x31, 0x1c, 0x3c, 0x00, 0xac, 0x07, 0x01, 0x00,
- 0x05, 0x1c, 0xfa, 0xf7, 0x5f, 0xfa, 0x10, 0x49,
- 0x68, 0x46, 0xfa, 0xf7, 0x5b, 0xfa, 0x20, 0x1c,
- 0x08, 0x30, 0x69, 0x46, 0xfa, 0xf7, 0x56, 0xfa,
- 0x29, 0x1c, 0x20, 0x1c, 0x12, 0x30, 0xfa, 0xf7,
- 0x51, 0xfa, 0x10, 0xab, 0x98, 0x88, 0x00, 0x22,
- 0x01, 0x21, 0x20, 0x83, 0xd8, 0x88, 0x60, 0x83,
- 0x18, 0x89, 0xe0, 0x81, 0x58, 0x89, 0x20, 0x82,
- 0x68, 0x46, 0xf9, 0xf7, 0x3c, 0x00, 0xe8, 0x07,
- 0x01, 0x00, 0x17, 0xff, 0x14, 0xb0, 0x70, 0xbd,
- 0x00, 0x00, 0x14, 0x6e, 0x01, 0x00, 0x12, 0x61,
- 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x1c, 0x18, 0x48,
- 0x25, 0x1c, 0x00, 0x78, 0x60, 0x35, 0x80, 0x07,
- 0x00, 0x28, 0x08, 0xda, 0xe8, 0x79, 0x00, 0x28,
- 0x05, 0xd0, 0xf4, 0xf7, 0x70, 0xff, 0x01, 0x1c,
- 0x20, 0x1c, 0x00, 0xf0, 0x78, 0xf9, 0x29, 0x88,
- 0x2e, 0x20, 0x00, 0x5d, 0xf2, 0xf7, 0x3c, 0x00,
- 0x24, 0x08, 0x01, 0x00, 0x9f, 0xfa, 0xe8, 0x79,
- 0x00, 0x28, 0x0b, 0xd1, 0x20, 0x1c, 0x40, 0x30,
- 0x01, 0x8b, 0x22, 0x69, 0x11, 0x80, 0x41, 0x8b,
- 0x22, 0x69, 0x51, 0x80, 0x80, 0x8b, 0x21, 0x69,
- 0xc8, 0x82, 0x07, 0xe0, 0x01, 0x28, 0x05, 0xd1,
- 0x20, 0x69, 0x01, 0x22, 0x01, 0x88, 0xd2, 0x02,
- 0x11, 0x43, 0x01, 0x80, 0x6a, 0x7a, 0xe0, 0x68,
- 0x02, 0x49, 0xf2, 0xf7, 0x53, 0xfa, 0xb0, 0xbd,
- 0x3c, 0x00, 0x60, 0x08, 0x01, 0x00, 0x1d, 0x75,
- 0x01, 0x00, 0xd1, 0x4f, 0x00, 0x00, 0x90, 0xb5,
- 0x04, 0x1c, 0x38, 0x23, 0x0c, 0x49, 0x58, 0x43,
- 0x43, 0x18, 0x85, 0xb0, 0x00, 0x20, 0x0a, 0x49,
- 0x02, 0x90, 0x18, 0x1c, 0x01, 0x22, 0x03, 0x91,
- 0x09, 0x49, 0x04, 0x92, 0x30, 0x30, 0x42, 0x78,
- 0x09, 0x88, 0x01, 0x92, 0x00, 0x91, 0x01, 0x78,
- 0x5a, 0x6b, 0x0c, 0x33, 0x20, 0x1c, 0xfb, 0xf7,
- 0x7c, 0xf8, 0x3c, 0x00, 0x9c, 0x08, 0x01, 0x00,
- 0x05, 0xb0, 0x90, 0xbd, 0xd4, 0xe4, 0x01, 0x00,
- 0x5d, 0x4e, 0x00, 0x00, 0x48, 0x7b, 0x01, 0x00,
- 0x90, 0xb5, 0x85, 0xb0, 0x03, 0x1c, 0x00, 0x20,
- 0x02, 0x90, 0x0a, 0x49, 0x18, 0x1c, 0x00, 0x22,
- 0x04, 0x92, 0x60, 0x30, 0x03, 0x91, 0xc2, 0x79,
- 0x01, 0x88, 0x01, 0x92, 0x00, 0x91, 0x5a, 0x6a,
- 0xdc, 0x68, 0x20, 0x33, 0x99, 0x7b, 0x40, 0x7a,
- 0x23, 0x1c, 0xfb, 0xf7, 0x3c, 0x00, 0xd8, 0x08,
- 0x01, 0x00, 0x5d, 0xf8, 0x05, 0xb0, 0x90, 0xbd,
- 0x00, 0x00, 0x0d, 0x4f, 0x00, 0x00, 0x07, 0x49,
- 0x80, 0xb5, 0x88, 0x6a, 0x00, 0x28, 0x08, 0xd1,
- 0x01, 0x20, 0x88, 0x62, 0xf0, 0xf7, 0xaf, 0xfc,
- 0x01, 0x1c, 0x03, 0x48, 0x00, 0x22, 0xf2, 0xf7,
- 0xb8, 0xfe, 0x80, 0xbd, 0x00, 0x00, 0x78, 0x69,
- 0x01, 0x00, 0x41, 0xe4, 0x00, 0x00, 0xf0, 0xb5,
- 0x9b, 0xb0, 0x00, 0x28, 0x20, 0xd0, 0x3c, 0x00,
- 0x14, 0x09, 0x01, 0x00, 0x01, 0x1c, 0x08, 0xa8,
- 0xfc, 0xf7, 0xb2, 0xfd, 0x01, 0x20, 0x11, 0x90,
- 0x03, 0x20, 0x10, 0xad, 0x28, 0x72, 0x04, 0x20,
- 0x68, 0x72, 0x05, 0xa8, 0x00, 0x22, 0x69, 0x46,
- 0xf4, 0xf7, 0x00, 0xff, 0x00, 0x24, 0x00, 0x26,
- 0x05, 0xa9, 0x00, 0x20, 0xf9, 0xf7, 0xfc, 0xfa,
- 0x69, 0x46, 0xf9, 0xf7, 0xf9, 0xfa, 0x0b, 0x90,
- 0x08, 0xa8, 0xfc, 0xf7, 0xbb, 0xfd, 0x01, 0x34,
- 0x3c, 0x00, 0x50, 0x09, 0x01, 0x00, 0x02, 0x2c,
- 0x2e, 0x72, 0xf0, 0xdb, 0x1b, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0x90, 0xb5, 0x04, 0x1c, 0x4c, 0x23,
- 0x0c, 0x49, 0x58, 0x43, 0x43, 0x18, 0x85, 0xb0,
- 0x00, 0x20, 0x0a, 0x49, 0x02, 0x90, 0x00, 0x22,
- 0x04, 0x92, 0x3c, 0x20, 0x03, 0x91, 0xc2, 0x5c,
- 0x08, 0x48, 0x41, 0x88, 0x01, 0x92, 0x41, 0x20,
- 0x00, 0x91, 0xc1, 0x5c, 0x5a, 0x68, 0x08, 0x33,
- 0x20, 0x1c, 0x3c, 0x00, 0x8c, 0x09, 0x01, 0x00,
- 0xfb, 0xf7, 0x02, 0xf8, 0x05, 0xb0, 0x90, 0xbd,
- 0x58, 0xe3, 0x01, 0x00, 0x75, 0x4f, 0x00, 0x00,
- 0x3c, 0x7c, 0x01, 0x00, 0xf8, 0xb5, 0x0e, 0x1c,
- 0x22, 0x4c, 0x38, 0x21, 0x17, 0x1c, 0x05, 0x1c,
- 0x20, 0x1c, 0xef, 0xf7, 0x75, 0xfd, 0x23, 0x1c,
- 0x25, 0x33, 0x21, 0x1c, 0x24, 0x31, 0x10, 0x20,
- 0x6a, 0x46, 0xf9, 0xf7, 0x1d, 0xf8, 0x00, 0xab,
- 0x18, 0x88, 0x07, 0x21, 0x3c, 0x00, 0xc8, 0x09,
- 0x01, 0x00, 0x1a, 0x4a, 0x02, 0x38, 0x20, 0x84,
- 0x20, 0x1c, 0x20, 0x30, 0x81, 0x70, 0xc5, 0x70,
- 0x11, 0x1c, 0x06, 0x73, 0x47, 0x73, 0x34, 0x31,
- 0x21, 0x63, 0x30, 0x32, 0x62, 0x63, 0x01, 0x79,
- 0x25, 0x1c, 0x10, 0x35, 0x21, 0x81, 0x20, 0x60,
- 0xe5, 0x60, 0x18, 0x88, 0x40, 0x1a, 0x20, 0x83,
- 0x20, 0x1c, 0x28, 0x30, 0x20, 0x61, 0x20, 0x1c,
- 0xf9, 0xf7, 0x11, 0xf8, 0x0d, 0x48, 0x3c, 0x00,
- 0x04, 0x0a, 0x01, 0x00, 0x00, 0x68, 0x00, 0x28,
- 0x07, 0xd0, 0x06, 0x21, 0x20, 0x1c, 0xf8, 0xf7,
- 0x47, 0xfd, 0x10, 0x21, 0x28, 0x1c, 0xf8, 0xf7,
- 0x43, 0xfd, 0x08, 0x48, 0x02, 0x21, 0x01, 0x62,
- 0x44, 0x62, 0x01, 0x21, 0x01, 0x62, 0x06, 0x48,
- 0x00, 0x68, 0xef, 0xf7, 0xd5, 0xfc, 0xf8, 0xbd,
- 0x8c, 0x8e, 0x01, 0x00, 0xe4, 0xfe, 0x01, 0x00,
- 0xcc, 0x5c, 0x01, 0x00, 0x00, 0x30, 0x07, 0x00,
- 0x3c, 0x00, 0x40, 0x0a, 0x01, 0x00, 0x5c, 0x5b,
- 0x01, 0x00, 0xf0, 0xb5, 0x06, 0x1c, 0x40, 0x36,
- 0x31, 0x8b, 0x04, 0x1c, 0x25, 0x1c, 0x08, 0x07,
- 0x80, 0x0f, 0x60, 0x35, 0x01, 0x28, 0x85, 0xb0,
- 0x3b, 0xd0, 0xe8, 0x79, 0x00, 0x28, 0x05, 0xd1,
- 0x20, 0x69, 0x01, 0x80, 0xb0, 0x8b, 0x21, 0x69,
- 0xc8, 0x82, 0x07, 0xe0, 0x01, 0x28, 0x05, 0xd1,
- 0x20, 0x69, 0x01, 0x22, 0x01, 0x88, 0xd2, 0x02,
- 0x11, 0x43, 0x3c, 0x00, 0x7c, 0x0a, 0x01, 0x00,
- 0x01, 0x80, 0x20, 0x48, 0x00, 0x78, 0x80, 0x07,
- 0x26, 0xd5, 0xe8, 0x79, 0x00, 0x28, 0x23, 0xd0,
- 0xa0, 0x6b, 0x00, 0x28, 0x1c, 0xd0, 0xf4, 0xf7,
- 0x2f, 0xfe, 0x00, 0x28, 0x09, 0xd0, 0xb8, 0x21,
- 0x09, 0x58, 0x00, 0x29, 0x05, 0xd0, 0x30, 0x21,
- 0x09, 0x5d, 0xb4, 0x30, 0x08, 0x18, 0x07, 0x7a,
- 0x00, 0xe0, 0x00, 0x27, 0x01, 0x21, 0x38, 0x1c,
- 0xfa, 0xf7, 0x86, 0xf9, 0x3c, 0x00, 0xb8, 0x0a,
- 0x01, 0x00, 0x04, 0x90, 0x20, 0x69, 0x04, 0x30,
- 0x39, 0x1c, 0xf4, 0xf7, 0x6c, 0xfd, 0x04, 0x99,
- 0xfa, 0xf7, 0xd3, 0xf9, 0x02, 0xe0, 0x20, 0x1c,
- 0xf7, 0xf7, 0xf9, 0xfb, 0x70, 0x83, 0x70, 0x8b,
- 0x21, 0x69, 0x00, 0x22, 0x48, 0x80, 0x09, 0x49,
- 0x0a, 0x48, 0x04, 0x92, 0x03, 0x91, 0x02, 0x90,
- 0xea, 0x79, 0x29, 0x88, 0x01, 0x92, 0x00, 0x91,
- 0x62, 0x6a, 0xe3, 0x68, 0x20, 0x34, 0x3c, 0x00,
- 0xf4, 0x0a, 0x01, 0x00, 0xa1, 0x7b, 0x68, 0x7a,
- 0xfa, 0xf7, 0x4c, 0xff, 0x05, 0xb0, 0xf0, 0xbd,
- 0x1d, 0x75, 0x01, 0x00, 0xd1, 0x4f, 0x00, 0x00,
- 0xdd, 0x2f, 0x01, 0x00, 0xfe, 0xb5, 0x04, 0x1c,
- 0x26, 0x1c, 0x01, 0x20, 0x20, 0x36, 0x00, 0x29,
- 0x02, 0x90, 0x2e, 0xd0, 0x58, 0x20, 0x00, 0x5b,
- 0x00, 0x07, 0x80, 0x0f, 0x01, 0x28, 0x01, 0xd1,
- 0xcc, 0x31, 0x00, 0xe0, 0xb4, 0x31, 0x48, 0x68,
- 0x3c, 0x00, 0x30, 0x0b, 0x01, 0x00, 0x0d, 0x1c,
- 0x00, 0x28, 0x24, 0xd0, 0x20, 0x1c, 0x60, 0x30,
- 0xc2, 0x79, 0x01, 0x21, 0x01, 0x2a, 0x00, 0xd0,
- 0x00, 0x21, 0x27, 0x1c, 0x62, 0x6d, 0x30, 0x37,
- 0x00, 0x2a, 0x04, 0xd0, 0x3a, 0x1c, 0x28, 0x1c,
- 0xf6, 0xf7, 0xe7, 0xfd, 0x07, 0xe0, 0x42, 0x7a,
- 0x23, 0x1c, 0x68, 0x33, 0x00, 0x92, 0x3a, 0x1c,
- 0x28, 0x1c, 0xf6, 0xf7, 0x9a, 0xfd, 0x02, 0x90,
- 0x38, 0x78, 0x3c, 0x00, 0x6c, 0x0b, 0x01, 0x00,
- 0x40, 0x19, 0x00, 0x7a, 0x01, 0x21, 0xb0, 0x73,
- 0xfa, 0xf7, 0x26, 0xf9, 0x01, 0xe0, 0x00, 0x20,
- 0xb0, 0x73, 0x60, 0x62, 0xb0, 0x7b, 0x0d, 0x28,
- 0x01, 0xd9, 0xf0, 0xf7, 0xbb, 0xfb, 0x02, 0x98,
- 0xfe, 0xbd, 0x00, 0x00, 0xff, 0xb5, 0x04, 0x1c,
- 0x80, 0x30, 0x25, 0x1c, 0x5e, 0x35, 0x00, 0x78,
- 0xae, 0x1d, 0xaf, 0x1f, 0x00, 0x28, 0x83, 0xb0,
- 0x12, 0xd1, 0xf4, 0xf7, 0x3c, 0x00, 0xa8, 0x0b,
- 0x01, 0x00, 0xc7, 0xfb, 0x00, 0x28, 0x07, 0xd0,
- 0x06, 0x98, 0x05, 0x99, 0x02, 0x90, 0x04, 0x98,
- 0x01, 0x90, 0xa6, 0x61, 0x67, 0x61, 0x0d, 0xe0,
- 0x04, 0x98, 0x06, 0x99, 0x02, 0x90, 0x05, 0x98,
- 0x01, 0x90, 0x66, 0x61, 0x05, 0xe0, 0x04, 0xa9,
- 0x03, 0xc9, 0x02, 0x90, 0x06, 0x98, 0x01, 0x90,
- 0x67, 0x61, 0xa5, 0x61, 0x06, 0x22, 0x38, 0x1c,
- 0xef, 0xf7, 0x8b, 0xfc, 0x06, 0x22, 0x3c, 0x00,
- 0xe4, 0x0b, 0x01, 0x00, 0x28, 0x1c, 0x02, 0x99,
- 0xef, 0xf7, 0x86, 0xfc, 0x06, 0x22, 0x30, 0x1c,
- 0x01, 0x99, 0xef, 0xf7, 0x81, 0xfc, 0x07, 0xb0,
- 0xf0, 0xbd, 0x00, 0x00, 0xb0, 0xb5, 0x0d, 0x1c,
- 0x04, 0x1c, 0x05, 0x28, 0x01, 0xd3, 0xf0, 0xf7,
- 0x7b, 0xfb, 0x02, 0x49, 0xa0, 0x00, 0x08, 0x58,
- 0x85, 0x60, 0xb0, 0xbd, 0x10, 0x7b, 0x01, 0x00,
- 0xf8, 0xb5, 0xff, 0xf7, 0x59, 0xf9, 0x05, 0x1c,
- 0x3c, 0x00, 0x20, 0x0c, 0x01, 0x00, 0xfe, 0xf7,
- 0xe8, 0xff, 0x04, 0x1c, 0x28, 0x1c, 0xff, 0xf7,
- 0x58, 0xf9, 0x00, 0x28, 0x42, 0xd0, 0x69, 0x1e,
- 0x21, 0x4d, 0x4a, 0x00, 0x20, 0x4b, 0x1c, 0x3d,
- 0xae, 0x5c, 0x98, 0x5c, 0x30, 0x40, 0xd6, 0x18,
- 0x01, 0x23, 0xf6, 0x56, 0x52, 0x19, 0xd2, 0x56,
- 0x96, 0x42, 0x01, 0xdd, 0x15, 0x1c, 0x00, 0xe0,
- 0x35, 0x1c, 0x18, 0x4b, 0x2a, 0x3b, 0x59, 0x56,
- 0x51, 0x18, 0x3c, 0x00, 0x5c, 0x0c, 0x01, 0x00,
- 0xb1, 0x42, 0x00, 0xdb, 0x31, 0x1c, 0x0e, 0x1c,
- 0x00, 0x28, 0x26, 0xd0, 0xfe, 0xf7, 0xbe, 0xff,
- 0x00, 0x90, 0x00, 0xab, 0x18, 0x78, 0x12, 0x49,
- 0x00, 0x23, 0xc9, 0x56, 0x00, 0xab, 0x15, 0x22,
- 0x10, 0x1a, 0x5b, 0x78, 0x00, 0x1b, 0x40, 0x18,
- 0xd2, 0x1a, 0x12, 0x1b, 0x51, 0x18, 0x00, 0x22,
- 0x85, 0x42, 0x02, 0xdb, 0x00, 0xab, 0x1a, 0x70,
- 0x02, 0xe0, 0x40, 0x1b, 0x3c, 0x00, 0x98, 0x0c,
- 0x01, 0x00, 0x00, 0xab, 0x18, 0x70, 0x8e, 0x42,
- 0x02, 0xdb, 0x00, 0xab, 0x5a, 0x70, 0x02, 0xe0,
- 0x88, 0x1b, 0x00, 0xab, 0x58, 0x70, 0x00, 0x98,
- 0xff, 0xf7, 0x8d, 0xf8, 0x01, 0xf0, 0xff, 0xf8,
- 0xf8, 0xbd, 0xe6, 0x78, 0x01, 0x00, 0x65, 0x73,
- 0x01, 0x00, 0x70, 0xb5, 0x08, 0x4e, 0x06, 0x4d,
- 0x00, 0x24, 0x06, 0x20, 0x60, 0x43, 0x80, 0x19,
- 0x06, 0x22, 0x29, 0x1c, 0xef, 0xf7, 0x3c, 0x00,
- 0xd4, 0x0c, 0x01, 0x00, 0x11, 0xfc, 0x01, 0x34,
- 0x05, 0x2c, 0xf5, 0xdb, 0x70, 0xbd, 0x00, 0x00,
- 0x4e, 0x47, 0x01, 0x00, 0xe6, 0x7a, 0x01, 0x00,
- 0x03, 0x48, 0x80, 0xb5, 0x01, 0x68, 0x03, 0x48,
- 0xfe, 0xf7, 0x42, 0xfb, 0x80, 0xbd, 0x00, 0x00,
- 0xa8, 0x79, 0x01, 0x00, 0xc4, 0x60, 0x01, 0x00,
- 0x03, 0x48, 0x80, 0xb5, 0x01, 0x68, 0x03, 0x48,
- 0xfe, 0xf7, 0x4a, 0xfb, 0x80, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0x0d, 0x01, 0x00, 0xa8, 0x79,
- 0x01, 0x00, 0xc4, 0x60, 0x01, 0x00, 0x10, 0xb5,
- 0x00, 0x28, 0x0a, 0xd0, 0x06, 0x4c, 0xa1, 0x69,
- 0x00, 0x29, 0x01, 0xd1, 0x00, 0x20, 0x00, 0xe0,
- 0x09, 0x68, 0xf7, 0xf7, 0x38, 0xfb, 0xa0, 0x61,
- 0x10, 0xbd, 0x00, 0x20, 0x10, 0xbd, 0xa4, 0x6e,
- 0x01, 0x00, 0xf3, 0xb5, 0x37, 0x48, 0x83, 0xb0,
- 0x02, 0x90, 0x80, 0x79, 0x0e, 0x1c, 0x00, 0x27,
- 0x01, 0x90, 0x3c, 0x00, 0x4c, 0x0d, 0x01, 0x00,
- 0x34, 0x48, 0x35, 0x4a, 0x01, 0x6a, 0x03, 0x9c,
- 0x03, 0x1c, 0x1b, 0x69, 0xa1, 0x42, 0x01, 0xd0,
- 0x93, 0x61, 0x00, 0xe0, 0x53, 0x61, 0x31, 0x49,
- 0x8a, 0x68, 0x96, 0x42, 0x3f, 0xd0, 0x2d, 0x48,
- 0x8e, 0x60, 0xc1, 0x68, 0x00, 0x24, 0x25, 0x1c,
- 0x00, 0x29, 0x2d, 0x48, 0x09, 0xd0, 0x00, 0x2e,
- 0x0b, 0xd0, 0x28, 0x48, 0x01, 0x24, 0xc0, 0x6a,
- 0x24, 0x03, 0x00, 0x28, 0x3c, 0x00, 0x88, 0x0d,
- 0x01, 0x00, 0x06, 0xd0, 0x01, 0x27, 0x04, 0xe0,
- 0x00, 0x2e, 0x01, 0xd0, 0x05, 0x1c, 0xf9, 0xe7,
- 0x04, 0x1c, 0x00, 0x2f, 0x06, 0xd0, 0xfb, 0xf7,
- 0x1e, 0xfb, 0x1f, 0x48, 0x01, 0x68, 0x22, 0x48,
- 0xfe, 0xf7, 0xfb, 0xfa, 0x20, 0x1c, 0x28, 0x43,
- 0x0e, 0xd0, 0x2a, 0x1c, 0x21, 0x1c, 0x01, 0x20,
- 0x02, 0xf0, 0x21, 0xfe, 0x2a, 0x1c, 0x21, 0x1c,
- 0x02, 0x20, 0x02, 0xf0, 0x1c, 0xfe, 0x3c, 0x00,
- 0xc4, 0x0d, 0x01, 0x00, 0x2a, 0x1c, 0x21, 0x1c,
- 0x03, 0x20, 0x02, 0xf0, 0x17, 0xfe, 0x00, 0x2f,
- 0x06, 0xd1, 0x13, 0x48, 0x01, 0x68, 0x16, 0x48,
- 0xfe, 0xf7, 0xce, 0xfa, 0xfa, 0xf7, 0x42, 0xfd,
- 0x03, 0x9c, 0x00, 0x2c, 0x01, 0xd1, 0x01, 0xf0,
- 0xe1, 0xff, 0x01, 0xa9, 0x03, 0xc9, 0x88, 0x71,
- 0x01, 0xf0, 0xdc, 0xff, 0x0a, 0x4c, 0x0a, 0x4b,
- 0x44, 0x3c, 0xa1, 0x69, 0x22, 0x69, 0x08, 0x3b,
- 0x3c, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x41, 0x1a,
- 0x00, 0x2a, 0x03, 0xd0, 0x1a, 0x68, 0x51, 0x18,
- 0x19, 0x60, 0x02, 0xe0, 0x5a, 0x68, 0x51, 0x18,
- 0x59, 0x60, 0xa0, 0x61, 0x26, 0x61, 0x05, 0xb0,
- 0xf0, 0xbd, 0x20, 0x10, 0x07, 0x00, 0xa4, 0x6c,
- 0x01, 0x00, 0x10, 0x00, 0x07, 0x00, 0xb0, 0x57,
- 0x01, 0x00, 0x00, 0x10, 0x60, 0x00, 0x84, 0x73,
- 0x01, 0x00, 0x1c, 0xb5, 0x4c, 0x23, 0x08, 0x49,
- 0x58, 0x43, 0x3c, 0x00, 0x3c, 0x0e, 0x01, 0x00,
- 0x44, 0x18, 0x20, 0x1c, 0x40, 0x30, 0x41, 0x78,
- 0x62, 0x68, 0x00, 0x91, 0x01, 0x92, 0x3f, 0x21,
- 0x0b, 0x5d, 0x61, 0x8f, 0x00, 0x78, 0x62, 0x6c,
- 0xfa, 0xf7, 0x28, 0xf8, 0xa0, 0x85, 0x1c, 0xbd,
- 0x58, 0xe3, 0x01, 0x00, 0xb0, 0xb5, 0x16, 0x4d,
- 0xa9, 0x69, 0x00, 0x29, 0x25, 0xd0, 0x2c, 0x1c,
- 0x30, 0x34, 0x20, 0x7a, 0x00, 0x28, 0x20, 0xd0,
- 0x00, 0x23, 0x81, 0x22, 0x3c, 0x00, 0x78, 0x0e,
- 0x01, 0x00, 0x18, 0x20, 0x02, 0xf0, 0x89, 0xfc,
- 0x20, 0x7a, 0xff, 0x30, 0x00, 0x06, 0x00, 0x0e,
- 0x20, 0x72, 0x12, 0xd1, 0x0c, 0x48, 0x28, 0x21,
- 0x2c, 0x38, 0x09, 0x5c, 0x21, 0x72, 0x29, 0x7a,
- 0x00, 0x29, 0x01, 0xd1, 0x00, 0x6a, 0x00, 0xe0,
- 0x40, 0x6a, 0xa9, 0x69, 0x80, 0x02, 0x81, 0x42,
- 0x03, 0xd2, 0x49, 0x00, 0x81, 0x42, 0x01, 0xd2,
- 0xa9, 0x61, 0xb0, 0xbd, 0xa8, 0x61, 0x3c, 0x00,
- 0xb4, 0x0e, 0x01, 0x00, 0xb0, 0xbd, 0x01, 0xf0,
- 0x1d, 0xf9, 0xb0, 0xbd, 0xf4, 0x6e, 0x01, 0x00,
- 0x7f, 0xb5, 0x05, 0x1c, 0x04, 0x20, 0x6b, 0x46,
- 0x1b, 0x18, 0x02, 0x90, 0x00, 0x26, 0x28, 0x18,
- 0x6a, 0x46, 0x02, 0xa9, 0xfc, 0xf7, 0x8a, 0xfb,
- 0x00, 0x28, 0x06, 0xd1, 0x00, 0xab, 0x18, 0x79,
- 0x04, 0x28, 0x08, 0xd0, 0x18, 0x79, 0x03, 0x28,
- 0x05, 0xd0, 0x00, 0xab, 0x18, 0x79, 0x10, 0x21,
- 0x3c, 0x00, 0xf0, 0x0e, 0x01, 0x00, 0x08, 0x43,
- 0x04, 0xb0, 0x70, 0xbd, 0x03, 0xa9, 0xe8, 0x68,
- 0xf6, 0xf7, 0xd3, 0xff, 0x00, 0x28, 0x05, 0xd0,
- 0x03, 0x98, 0x20, 0x21, 0x08, 0x43, 0x00, 0x06,
- 0x00, 0x0e, 0xf1, 0xe7, 0x03, 0xa9, 0x00, 0x20,
- 0xf6, 0xf7, 0xc7, 0xff, 0x04, 0x1c, 0x01, 0xd1,
- 0x02, 0x20, 0xe9, 0xe7, 0xe8, 0x68, 0x00, 0xab,
- 0x20, 0x60, 0x00, 0x98, 0x60, 0x60, 0x18, 0x79,
- 0xa0, 0x76, 0x3c, 0x00, 0x2c, 0x0f, 0x01, 0x00,
- 0xa8, 0x8c, 0x60, 0x76, 0xe8, 0x69, 0x20, 0x61,
- 0x68, 0x8c, 0xa0, 0x82, 0x28, 0x8c, 0x20, 0x76,
- 0x69, 0x69, 0x09, 0x48, 0x81, 0x42, 0x00, 0xd9,
- 0x08, 0x1c, 0xa0, 0x60, 0x20, 0x1c, 0x02, 0xf0,
- 0xa1, 0xfd, 0xa1, 0x68, 0x00, 0x29, 0x04, 0xd0,
- 0x03, 0x9a, 0xa1, 0x32, 0x08, 0x20, 0x02, 0xf0,
- 0x37, 0xfb, 0x30, 0x1c, 0xc7, 0xe7, 0x00, 0x00,
- 0xa0, 0x86, 0x01, 0x00, 0x3c, 0x00, 0x68, 0x0f,
- 0x01, 0x00, 0xfe, 0xb5, 0x06, 0x1c, 0x40, 0x78,
- 0x01, 0x24, 0x06, 0x28, 0x50, 0xd3, 0xc1, 0x1e,
- 0x03, 0x20, 0xef, 0xf7, 0x5e, 0xfb, 0x00, 0x90,
- 0x0e, 0x28, 0x49, 0xd8, 0x00, 0x20, 0x0a, 0xe0,
- 0x41, 0x00, 0x09, 0x18, 0x89, 0x19, 0x4a, 0x79,
- 0x89, 0x79, 0x51, 0x18, 0x01, 0x39, 0x0e, 0x29,
- 0x00, 0xd9, 0x00, 0x24, 0x01, 0x30, 0x00, 0x99,
- 0x88, 0x42, 0xf1, 0xdb, 0x00, 0x2c, 0x3c, 0x00,
- 0xa4, 0x0f, 0x01, 0x00, 0x37, 0xd0, 0x03, 0x22,
- 0xb1, 0x1c, 0x1b, 0x48, 0xef, 0xf7, 0xa4, 0xfa,
- 0x1a, 0x4c, 0x1c, 0x21, 0x20, 0x1c, 0xef, 0xf7,
- 0x4d, 0xfa, 0x00, 0x25, 0x28, 0xe0, 0x69, 0x00,
- 0x49, 0x19, 0x02, 0x91, 0x8a, 0x19, 0x53, 0x79,
- 0x15, 0x48, 0x43, 0x54, 0x93, 0x79, 0x0f, 0x18,
- 0x7b, 0x70, 0xd3, 0x79, 0xbb, 0x70, 0x07, 0x23,
- 0xd2, 0x56, 0x01, 0x92, 0x44, 0x5c, 0x0f, 0xe0,
- 0x3c, 0x00, 0xe0, 0x0f, 0x01, 0x00, 0x20, 0x1c,
- 0xfe, 0xf7, 0x7b, 0xff, 0x00, 0x28, 0x07, 0xd0,
- 0x0c, 0x4a, 0x60, 0x00, 0x80, 0x18, 0x01, 0x21,
- 0x10, 0x38, 0x81, 0x73, 0x01, 0x99, 0xc1, 0x73,
- 0x01, 0x34, 0x24, 0x06, 0x24, 0x0e, 0x07, 0x48,
- 0x02, 0x99, 0x40, 0x5c, 0x79, 0x78, 0x40, 0x18,
- 0xa0, 0x42, 0xe8, 0xd8, 0x01, 0x35, 0x00, 0x98,
- 0x85, 0x42, 0xd3, 0xdb, 0xfe, 0xbd, 0xe8, 0x62,
- 0x01, 0x00, 0x3c, 0x00, 0x1c, 0x10, 0x01, 0x00,
- 0xe6, 0x78, 0x01, 0x00, 0xeb, 0x62, 0x01, 0x00,
- 0x01, 0x68, 0x0f, 0x29, 0x01, 0xdd, 0x0f, 0x21,
- 0x01, 0x60, 0x01, 0x68, 0x00, 0x29, 0x01, 0xda,
- 0x00, 0x21, 0x01, 0x60, 0x70, 0x47, 0x00, 0x00,
- 0xf8, 0xb5, 0x04, 0x1c, 0x1e, 0x48, 0x22, 0x1d,
- 0x05, 0x68, 0x00, 0x92, 0x16, 0x1c, 0x23, 0x1c,
- 0x0f, 0x1c, 0xcc, 0x33, 0x2a, 0x1c, 0x20, 0x1c,
- 0x70, 0x30, 0xa1, 0x6d, 0x3c, 0x00, 0x58, 0x10,
- 0x01, 0x00, 0x00, 0xf0, 0x3e, 0xf9, 0x00, 0x96,
- 0xa1, 0x6d, 0x27, 0x20, 0x01, 0x40, 0x23, 0x1c,
- 0xe4, 0x33, 0x20, 0x1c, 0x2a, 0x1c, 0x5c, 0x30,
- 0x00, 0xf0, 0x33, 0xf9, 0x13, 0x48, 0x00, 0x78,
- 0x0e, 0x28, 0x01, 0xd2, 0x01, 0x25, 0x85, 0x40,
- 0x11, 0x48, 0xa1, 0x69, 0x00, 0x78, 0x29, 0x40,
- 0x00, 0x07, 0x0b, 0xd4, 0x48, 0x07, 0x03, 0xd5,
- 0x08, 0x07, 0x01, 0xd5, 0x04, 0x20, 0x3c, 0x00,
- 0x94, 0x10, 0x01, 0x00, 0x81, 0x43, 0x88, 0x06,
- 0x03, 0xd5, 0x48, 0x06, 0x01, 0xd5, 0x20, 0x20,
- 0x81, 0x43, 0x23, 0x1c, 0xb4, 0x33, 0x2a, 0x1c,
- 0x20, 0x1c, 0x30, 0x30, 0x00, 0x96, 0x00, 0xf0,
- 0x13, 0xf9, 0x39, 0x1c, 0x20, 0x1c, 0xf0, 0xf7,
- 0x47, 0xfc, 0xf8, 0xbd, 0x2c, 0x7d, 0x01, 0x00,
- 0x10, 0x67, 0x01, 0x00, 0x1d, 0x75, 0x01, 0x00,
- 0xb0, 0xb5, 0xf2, 0xf7, 0x27, 0xfc, 0xfe, 0xf7,
- 0x3c, 0x00, 0xd0, 0x10, 0x01, 0x00, 0x09, 0xf9,
- 0x0f, 0x48, 0x00, 0x25, 0x45, 0x70, 0x0e, 0x48,
- 0x0d, 0x4c, 0x00, 0x88, 0x5b, 0x34, 0xa0, 0x82,
- 0xf9, 0xf7, 0x23, 0xfd, 0x20, 0x61, 0xa0, 0x8a,
- 0x00, 0x28, 0x04, 0xd0, 0x01, 0x21, 0x89, 0x05,
- 0xef, 0xf7, 0x0d, 0xfb, 0xe1, 0x82, 0x05, 0x48,
- 0x01, 0x38, 0x45, 0x60, 0x01, 0xf0, 0x55, 0xfe,
- 0x02, 0x1c, 0x23, 0x1c, 0x00, 0x21, 0x00, 0x20,
- 0xf4, 0xf7, 0x3c, 0x00, 0x0c, 0x11, 0x01, 0x00,
- 0x49, 0xfd, 0xb0, 0xbd, 0x45, 0x7d, 0x01, 0x00,
- 0xf4, 0x67, 0x01, 0x00, 0x70, 0xb5, 0x16, 0x1c,
- 0x5a, 0x89, 0x04, 0x1c, 0x04, 0x98, 0x92, 0x07,
- 0x92, 0x0f, 0x00, 0x25, 0x00, 0x29, 0xa2, 0x71,
- 0x09, 0xd0, 0x05, 0x21, 0xf9, 0xf7, 0x24, 0xfb,
- 0x00, 0x28, 0x01, 0xd0, 0xc0, 0x78, 0x00, 0xe0,
- 0x01, 0x20, 0xe0, 0x71, 0x00, 0xe0, 0xe5, 0x71,
- 0xe5, 0x60, 0xa6, 0x60, 0x3c, 0x00, 0x48, 0x11,
- 0x01, 0x00, 0x70, 0xbd, 0x00, 0x00, 0xfe, 0xb5,
- 0x05, 0x1c, 0x0e, 0x22, 0x9c, 0x30, 0x16, 0x49,
- 0xef, 0xf7, 0xcf, 0xf9, 0x29, 0x1c, 0x28, 0x1c,
- 0x80, 0x30, 0x88, 0x31, 0x00, 0x24, 0x2f, 0x1c,
- 0x60, 0x37, 0x02, 0x91, 0x01, 0x90, 0x20, 0x06,
- 0x00, 0x0e, 0x06, 0x1c, 0xf9, 0xf7, 0x0d, 0xfe,
- 0x00, 0x28, 0x03, 0xd0, 0x01, 0x98, 0x42, 0x68,
- 0x02, 0x99, 0x01, 0xe0, 0xea, 0x6d, 0x3c, 0x00,
- 0x84, 0x11, 0x01, 0x00, 0x39, 0x1c, 0x00, 0x2a,
- 0x0d, 0xd0, 0x00, 0x20, 0x03, 0xe0, 0x0b, 0x5c,
- 0xb3, 0x42, 0x02, 0xd8, 0x01, 0x30, 0x90, 0x42,
- 0xf9, 0xdb, 0x08, 0x18, 0x10, 0x38, 0xc0, 0x7b,
- 0x29, 0x19, 0x90, 0x31, 0x08, 0x73, 0x01, 0x34,
- 0x0e, 0x2c, 0xdf, 0xd3, 0xfe, 0xbd, 0x00, 0x00,
- 0xcc, 0x47, 0x01, 0x00, 0xff, 0xb5, 0x81, 0xb0,
- 0x14, 0x1c, 0x10, 0x1c, 0x06, 0x22, 0x0d, 0x1c,
- 0x3c, 0x00, 0xc0, 0x11, 0x01, 0x00, 0x19, 0x1c,
- 0x0b, 0x9e, 0x0a, 0x9f, 0xef, 0xf7, 0x97, 0xf9,
- 0x06, 0x22, 0x39, 0x1c, 0xa0, 0x18, 0xef, 0xf7,
- 0x92, 0xf9, 0xe6, 0x60, 0x2c, 0x60, 0x10, 0x20,
- 0x28, 0x81, 0x6e, 0x60, 0x01, 0x98, 0xe8, 0x60,
- 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0x70, 0xb5,
- 0x04, 0x1c, 0x00, 0x20, 0x20, 0x61, 0x58, 0x20,
- 0x00, 0x5d, 0x0e, 0x1c, 0x15, 0x1c, 0xc0, 0x07,
- 0xc0, 0x17, 0x3c, 0x00, 0xfc, 0x11, 0x01, 0x00,
- 0x01, 0x30, 0xe0, 0x61, 0x21, 0x6b, 0x00, 0x29,
- 0x36, 0xd1, 0x1e, 0x49, 0x09, 0x68, 0x29, 0x43,
- 0x32, 0xd0, 0xa1, 0x68, 0x89, 0x8a, 0x00, 0x29,
- 0x2e, 0xd0, 0x00, 0x28, 0x0b, 0xd0, 0x20, 0x1c,
- 0x58, 0x30, 0x00, 0xf0, 0xf3, 0xfd, 0x00, 0x28,
- 0x1b, 0xd0, 0x81, 0x6a, 0x02, 0x6a, 0x40, 0x6a,
- 0x09, 0x78, 0x00, 0x78, 0x06, 0xe0, 0x14, 0x4a,
- 0x3c, 0x23, 0x11, 0x78, 0x3c, 0x00, 0x38, 0x12,
- 0x01, 0x00, 0x50, 0x78, 0x43, 0x43, 0x9a, 0x18,
- 0x04, 0x32, 0x00, 0x2d, 0x03, 0xd1, 0x02, 0x29,
- 0x01, 0xd0, 0x03, 0x29, 0x02, 0xd1, 0x6d, 0x21,
- 0x22, 0x61, 0x08, 0x55, 0x20, 0x69, 0x00, 0x28,
- 0x0d, 0xd0, 0x81, 0x88, 0x00, 0x29, 0x01, 0xd1,
- 0x01, 0x20, 0x70, 0xbd, 0x80, 0x79, 0x02, 0x28,
- 0x05, 0xd1, 0x22, 0x1c, 0x07, 0x49, 0x07, 0x48,
- 0xf8, 0xf7, 0x4b, 0xff, 0x02, 0xe0, 0x3c, 0x00,
- 0x74, 0x12, 0x01, 0x00, 0x20, 0x1c, 0xef, 0xf7,
- 0xb5, 0xf8, 0x00, 0x20, 0x70, 0xbd, 0x00, 0x00,
- 0x28, 0x61, 0x01, 0x00, 0x68, 0x61, 0x01, 0x00,
- 0xa1, 0xda, 0x00, 0x00, 0xa0, 0x6a, 0x01, 0x00,
- 0x10, 0xb5, 0x00, 0x21, 0x00, 0x20, 0xf9, 0xf7,
- 0x39, 0xfe, 0xc4, 0x00, 0xf9, 0xf7, 0x54, 0xfe,
- 0x24, 0x18, 0xf9, 0xf7, 0x47, 0xfe, 0x08, 0x49,
- 0x20, 0x18, 0x09, 0x88, 0x08, 0x4c, 0x40, 0x18,
- 0x3c, 0x00, 0xb0, 0x12, 0x01, 0x00, 0x06, 0x49,
- 0x09, 0x88, 0x40, 0x18, 0x60, 0x61, 0xf9, 0xf7,
- 0x46, 0xfe, 0x05, 0x49, 0x09, 0x88, 0x40, 0x18,
- 0x40, 0x00, 0xa0, 0x61, 0x10, 0xbd, 0x02, 0x61,
- 0x01, 0x00, 0x04, 0x61, 0x01, 0x00, 0xd4, 0x79,
- 0x01, 0x00, 0xa6, 0x69, 0x01, 0x00, 0x11, 0x40,
- 0x08, 0x1c, 0x10, 0xb5, 0x1c, 0x1c, 0x19, 0x1c,
- 0x08, 0x31, 0x18, 0x60, 0xf1, 0xf7, 0x31, 0xfe,
- 0x60, 0x60, 0x3c, 0x00, 0xec, 0x12, 0x01, 0x00,
- 0x10, 0xbd, 0x00, 0x00, 0xf8, 0xb5, 0x06, 0x1c,
- 0x22, 0x48, 0x0f, 0x1c, 0x41, 0x68, 0x91, 0x42,
- 0x03, 0xd0, 0x00, 0x21, 0x81, 0x60, 0xc1, 0x60,
- 0x42, 0x60, 0xc4, 0x68, 0x15, 0xe0, 0x28, 0x20,
- 0x1d, 0x49, 0x60, 0x43, 0x40, 0x18, 0x05, 0x1c,
- 0x06, 0x22, 0x31, 0x1c, 0xef, 0xf7, 0x70, 0xf8,
- 0x00, 0x28, 0x07, 0xd1, 0xa8, 0x1d, 0x39, 0x1c,
- 0xf9, 0xf7, 0x10, 0xfd, 0x3c, 0x00, 0x28, 0x13,
- 0x01, 0x00, 0x00, 0x28, 0x01, 0xd0, 0x01, 0x20,
- 0xf8, 0xbd, 0x01, 0x34, 0x24, 0x07, 0x24, 0x0f,
- 0x12, 0x48, 0x80, 0x68, 0x84, 0x42, 0xe5, 0xd1,
- 0x10, 0x4c, 0x28, 0x23, 0xa0, 0x68, 0x0f, 0x4d,
- 0x58, 0x43, 0x40, 0x19, 0x06, 0x22, 0x31, 0x1c,
- 0xef, 0xf7, 0xd3, 0xf8, 0xa0, 0x68, 0x28, 0x23,
- 0x58, 0x43, 0x40, 0x19, 0x06, 0x30, 0x22, 0x22,
- 0x39, 0x1c, 0xef, 0xf7, 0xca, 0xf8, 0x3c, 0x00,
- 0x64, 0x13, 0x01, 0x00, 0xa0, 0x68, 0x01, 0x30,
- 0x00, 0x07, 0x00, 0x0f, 0xa0, 0x60, 0xe1, 0x68,
- 0x81, 0x42, 0x03, 0xd1, 0x01, 0x31, 0x08, 0x07,
- 0x00, 0x0f, 0xe0, 0x60, 0x00, 0x20, 0xd6, 0xe7,
- 0xec, 0x65, 0x01, 0x00, 0xa0, 0xf4, 0x01, 0x00,
- 0x10, 0xb5, 0x00, 0x21, 0x03, 0x20, 0x00, 0xf0,
- 0xe5, 0xff, 0x05, 0x4c, 0xa0, 0x68, 0x00, 0x28,
- 0x04, 0xd1, 0x01, 0xf0, 0x07, 0xfd, 0x61, 0x68,
- 0x3c, 0x00, 0xa0, 0x13, 0x01, 0x00, 0x40, 0x1a,
- 0x60, 0x60, 0x10, 0xbd, 0x00, 0x00, 0xd0, 0x60,
- 0x01, 0x00, 0x02, 0x68, 0x0a, 0x60, 0x01, 0x60,
- 0x70, 0x47, 0x01, 0x1c, 0x00, 0x68, 0x00, 0x28,
- 0x01, 0xd0, 0x02, 0x68, 0x0a, 0x60, 0x70, 0x47,
- 0x00, 0x00, 0xfe, 0xb5, 0x14, 0x1c, 0x1d, 0x1c,
- 0x00, 0x22, 0xd2, 0x43, 0x01, 0xab, 0xf3, 0xf7,
- 0x82, 0xff, 0x01, 0x98, 0x00, 0x26, 0x28, 0x40,
- 0x01, 0x90, 0x3c, 0x00, 0xdc, 0x13, 0x01, 0x00,
- 0x00, 0x25, 0x00, 0x27, 0x20, 0x60, 0x1e, 0xe0,
- 0x01, 0x21, 0xb9, 0x40, 0x0a, 0x1c, 0x02, 0x40,
- 0x18, 0xd0, 0x88, 0x43, 0x01, 0x90, 0x39, 0x06,
- 0x09, 0x0e, 0x70, 0x19, 0x00, 0x19, 0x02, 0x91,
- 0x01, 0x77, 0x08, 0x1c, 0xf9, 0xf7, 0xc6, 0xfc,
- 0x00, 0x28, 0x06, 0xd0, 0x30, 0x1c, 0x00, 0x19,
- 0x01, 0x36, 0x02, 0x99, 0x30, 0x30, 0x01, 0x70,
- 0x04, 0xe0, 0x28, 0x1c, 0x3c, 0x00, 0x18, 0x14,
- 0x01, 0x00, 0x01, 0x35, 0x02, 0x99, 0x00, 0x19,
- 0x01, 0x72, 0x01, 0x37, 0x01, 0x98, 0x00, 0x28,
- 0xdd, 0xd1, 0x70, 0x19, 0xa0, 0x61, 0x65, 0x60,
- 0xe6, 0x62, 0xfe, 0xbd, 0x00, 0x00, 0xb0, 0xb5,
- 0x14, 0x4d, 0x04, 0x1c, 0x28, 0x7a, 0x01, 0x28,
- 0x02, 0xd1, 0x04, 0x20, 0xf6, 0xf7, 0xad, 0xf9,
- 0x21, 0x1c, 0xa8, 0x6a, 0xf5, 0xf7, 0x21, 0xfc,
- 0x00, 0x28, 0x03, 0xd1, 0x04, 0x20, 0x3c, 0x00,
- 0x54, 0x14, 0x01, 0x00, 0xf6, 0xf7, 0xa4, 0xf9,
- 0xb0, 0xbd, 0x02, 0x20, 0x28, 0x70, 0x28, 0x8c,
- 0x00, 0x28, 0x00, 0xd0, 0x60, 0x81, 0x68, 0x8c,
- 0x00, 0x28, 0x00, 0xd0, 0xa0, 0x81, 0xa8, 0x8c,
- 0x00, 0x28, 0x00, 0xd0, 0xe0, 0x81, 0xe8, 0x69,
- 0x01, 0x23, 0x02, 0x04, 0x12, 0x0c, 0x20, 0x1c,
- 0x02, 0x49, 0xfc, 0xf7, 0x19, 0xff, 0xb0, 0xbd,
- 0xf4, 0x6e, 0x01, 0x00, 0xa1, 0x77, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0x14, 0x01, 0x00, 0xf8, 0xb5,
- 0x19, 0x4e, 0x05, 0x1c, 0xb0, 0x69, 0x00, 0x28,
- 0x00, 0xd1, 0x30, 0x68, 0xff, 0xf7, 0x3b, 0xfc,
- 0x15, 0x4f, 0x04, 0x1c, 0x50, 0x37, 0x00, 0x28,
- 0x0b, 0xd0, 0x60, 0x68, 0x29, 0x1c, 0x78, 0x60,
- 0x01, 0x20, 0x38, 0x63, 0x20, 0x1c, 0xf5, 0xf7,
- 0xea, 0xfb, 0x00, 0x28, 0x04, 0xd1, 0x00, 0x20,
- 0xf8, 0xbd, 0x00, 0x23, 0xfb, 0x62, 0xfa, 0xe7,
- 0x00, 0x23, 0x3c, 0x00, 0xcc, 0x14, 0x01, 0x00,
- 0x23, 0x77, 0xf8, 0x6a, 0x00, 0x28, 0x01, 0xd1,
- 0x01, 0x20, 0xf8, 0x62, 0x38, 0x7a, 0x01, 0x28,
- 0x07, 0xd0, 0xf8, 0x69, 0x06, 0x49, 0x02, 0x04,
- 0x12, 0x0c, 0x28, 0x1c, 0xfc, 0xf7, 0xe6, 0xfe,
- 0x01, 0xe0, 0xfb, 0x62, 0xb3, 0x61, 0x01, 0x20,
- 0xe5, 0xe7, 0x00, 0x00, 0xa4, 0x6e, 0x01, 0x00,
- 0xdd, 0x02, 0x01, 0x00, 0x70, 0xb5, 0x0d, 0x1c,
- 0x04, 0x1c, 0x16, 0x1c, 0x3c, 0x00, 0x08, 0x15,
- 0x01, 0x00, 0x04, 0x2c, 0x1b, 0xd2, 0x10, 0x48,
- 0x83, 0x42, 0x07, 0xd2, 0x58, 0x00, 0x0f, 0x49,
- 0xef, 0xf7, 0xfb, 0xf8, 0xff, 0x30, 0x00, 0x0a,
- 0x01, 0x38, 0x00, 0xe0, 0x00, 0x20, 0x1f, 0x35,
- 0xea, 0x06, 0x61, 0x07, 0x09, 0x0e, 0xd2, 0x0e,
- 0x11, 0x43, 0x72, 0x07, 0x52, 0x0d, 0x11, 0x43,
- 0x00, 0x06, 0x00, 0x0a, 0x08, 0x43, 0x06, 0x4a,
- 0xa1, 0x00, 0x50, 0x50, 0x70, 0xbd, 0x3c, 0x00,
- 0x44, 0x15, 0x01, 0x00, 0x01, 0x21, 0x8d, 0x20,
- 0xef, 0xf7, 0xac, 0xfe, 0x70, 0xbd, 0x00, 0x00,
- 0x40, 0x9c, 0x00, 0x00, 0x00, 0x80, 0x38, 0x01,
- 0xe8, 0x60, 0x01, 0x00, 0x09, 0x4a, 0x80, 0x00,
- 0x10, 0x58, 0x40, 0x09, 0x40, 0x01, 0x07, 0x22,
- 0x02, 0x43, 0x07, 0x48, 0x03, 0x68, 0x00, 0x2b,
- 0xfc, 0xdb, 0x42, 0x60, 0x09, 0x06, 0x01, 0x60,
- 0x01, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x08, 0x20,
- 0x3c, 0x00, 0x80, 0x15, 0x01, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0xe8, 0x60, 0x01, 0x00, 0x30, 0x20,
- 0x07, 0x00, 0xb0, 0xb5, 0x04, 0x1c, 0x0d, 0x1c,
- 0x07, 0x49, 0xa0, 0x00, 0x08, 0x58, 0x00, 0x28,
- 0x03, 0xd1, 0x02, 0x21, 0x8d, 0x20, 0xef, 0xf7,
- 0x80, 0xfe, 0x29, 0x1c, 0x20, 0x1c, 0xf6, 0xf7,
- 0xa8, 0xfa, 0xb0, 0xbd, 0x00, 0x00, 0xe8, 0x60,
- 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x1c, 0x0d, 0x1c,
- 0x07, 0x49, 0x3c, 0x00, 0xbc, 0x15, 0x01, 0x00,
- 0xa0, 0x00, 0x08, 0x58, 0x00, 0x28, 0x03, 0xd1,
- 0x02, 0x21, 0x8d, 0x20, 0xef, 0xf7, 0x6c, 0xfe,
- 0x29, 0x1c, 0x20, 0x1c, 0xff, 0xf7, 0xc4, 0xff,
- 0xb0, 0xbd, 0x00, 0x00, 0xe8, 0x60, 0x01, 0x00,
- 0xf8, 0xb5, 0x0d, 0x1c, 0x16, 0x1c, 0xf7, 0xf7,
- 0x17, 0xf9, 0x04, 0x1c, 0x28, 0x68, 0x40, 0x4f,
- 0x81, 0x78, 0x00, 0x29, 0x3b, 0xd1, 0xc1, 0x78,
- 0x00, 0x29, 0x58, 0xd1, 0x3c, 0x00, 0xf8, 0x15,
- 0x01, 0x00, 0xf8, 0xf7, 0xf8, 0xf9, 0x22, 0x8e,
- 0x61, 0x8e, 0x8a, 0x42, 0x04, 0xd0, 0xa1, 0x6a,
- 0x09, 0x18, 0xe0, 0x69, 0x81, 0x42, 0x10, 0xd9,
- 0x38, 0x49, 0x32, 0x1c, 0x48, 0x6b, 0x01, 0x30,
- 0x48, 0x63, 0x20, 0x6a, 0x01, 0x30, 0x20, 0x62,
- 0x38, 0x68, 0x01, 0x30, 0x38, 0x60, 0xe0, 0x68,
- 0x63, 0x69, 0x29, 0x1c, 0xee, 0xf7, 0xd8, 0xfe,
- 0xf8, 0xbd, 0x01, 0x32, 0x12, 0x04, 0x3c, 0x00,
- 0x34, 0x16, 0x01, 0x00, 0x12, 0x0c, 0x22, 0x86,
- 0xa1, 0x62, 0xb8, 0x68, 0x00, 0x28, 0x34, 0xd1,
- 0x2c, 0x48, 0x0c, 0x23, 0x00, 0x68, 0x1b, 0x1a,
- 0x9a, 0x42, 0x07, 0xd2, 0x19, 0x23, 0x9b, 0x01,
- 0xaf, 0x22, 0x92, 0x01, 0x58, 0x43, 0x10, 0x1a,
- 0x81, 0x42, 0x26, 0xd3, 0x01, 0x20, 0xb8, 0x60,
- 0x01, 0x21, 0x0c, 0x20, 0x00, 0xf0, 0x7a, 0xfe,
- 0x1f, 0xe0, 0x01, 0x29, 0x1d, 0xd1, 0xc0, 0x78,
- 0x3c, 0x00, 0x70, 0x16, 0x01, 0x00, 0x17, 0x28,
- 0x1a, 0xd1, 0xa0, 0x8e, 0xe1, 0x8e, 0x88, 0x42,
- 0x14, 0xd3, 0xe9, 0x68, 0x09, 0x68, 0x09, 0x79,
- 0x09, 0x06, 0x0f, 0xd5, 0x60, 0x6a, 0x32, 0x1c,
- 0x01, 0x30, 0x60, 0x62, 0xe0, 0x68, 0x63, 0x69,
- 0x29, 0x1c, 0xee, 0xf7, 0xa3, 0xfe, 0xe8, 0x68,
- 0x01, 0x68, 0x08, 0x31, 0x0b, 0x20, 0x00, 0xf0,
- 0x5c, 0xfe, 0xc3, 0xe7, 0x01, 0x30, 0xa0, 0x86,
- 0xa0, 0x8d, 0x3c, 0x00, 0xac, 0x16, 0x01, 0x00,
- 0xe1, 0x8d, 0x88, 0x42, 0x04, 0xd1, 0x03, 0x21,
- 0x02, 0x20, 0xef, 0xf7, 0xf5, 0xfd, 0xb8, 0xe7,
- 0x60, 0x68, 0x45, 0x60, 0x86, 0x60, 0x00, 0x68,
- 0x60, 0x60, 0xf8, 0x68, 0x01, 0x30, 0xf8, 0x60,
- 0xa0, 0x8d, 0x41, 0x1c, 0xa1, 0x85, 0x00, 0x28,
- 0xab, 0xd1, 0x08, 0x48, 0xb9, 0x69, 0xfd, 0xf7,
- 0x61, 0xfe, 0x22, 0x1c, 0x02, 0x21, 0xf1, 0x20,
- 0x02, 0xf0, 0x64, 0xf8, 0x3c, 0x00, 0xe8, 0x16,
- 0x01, 0x00, 0xa1, 0xe7, 0x00, 0x00, 0xfc, 0x5a,
- 0x01, 0x00, 0x90, 0x5c, 0x01, 0x00, 0x18, 0x57,
- 0x01, 0x00, 0xc4, 0x60, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x1c, 0x02, 0x21, 0xf0, 0x20, 0x02, 0xf0,
- 0x54, 0xf8, 0x80, 0xbd, 0x00, 0x00, 0x00, 0x28,
- 0x03, 0xd1, 0x02, 0x48, 0x41, 0x78, 0xc9, 0x07,
- 0xfc, 0xd5, 0x70, 0x47, 0x00, 0x00, 0x04, 0x00,
- 0x07, 0x00, 0x80, 0xb5, 0x00, 0x06, 0x3c, 0x00,
- 0x24, 0x17, 0x01, 0x00, 0x01, 0xd1, 0xf1, 0xf7,
- 0x71, 0xfe, 0x80, 0xbd, 0x80, 0xb5, 0xf4, 0xf7,
- 0xe5, 0xfa, 0x80, 0xbd, 0x80, 0xb5, 0xf6, 0xf7,
- 0xeb, 0xf8, 0x80, 0xbd, 0x01, 0x49, 0x00, 0x20,
- 0x08, 0x74, 0x70, 0x47, 0x78, 0x69, 0x01, 0x00,
- 0x80, 0xb5, 0xc0, 0x07, 0x03, 0xd5, 0x02, 0x49,
- 0x01, 0x20, 0x00, 0xf0, 0x1d, 0xfc, 0x80, 0xbd,
- 0x50, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0e,
- 0x3c, 0x00, 0x60, 0x17, 0x01, 0x00, 0x01, 0x28,
- 0x80, 0xb5, 0x02, 0xd1, 0xf6, 0xf7, 0xe1, 0xf9,
- 0x80, 0xbd, 0x00, 0x28, 0xfc, 0xd1, 0xf1, 0xf7,
- 0x4c, 0xfe, 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5,
- 0xf6, 0xf7, 0xd7, 0xf9, 0x80, 0xbd, 0x03, 0x49,
- 0x80, 0xb5, 0x00, 0x20, 0x08, 0x74, 0xf6, 0xf7,
- 0xfe, 0xf9, 0x80, 0xbd, 0x00, 0x00, 0x78, 0x69,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x06, 0x00, 0x0e,
- 0xf1, 0xf7, 0x3c, 0x00, 0x9c, 0x17, 0x01, 0x00,
- 0x71, 0xfe, 0x80, 0xbd, 0x10, 0xb5, 0x01, 0x28,
- 0x08, 0xd0, 0x02, 0x28, 0x03, 0xd0, 0x03, 0x28,
- 0x01, 0xd0, 0xef, 0xf7, 0xa7, 0xfd, 0xf6, 0xf7,
- 0xe9, 0xf9, 0x10, 0xbd, 0x01, 0xf0, 0xf8, 0xfa,
- 0x04, 0x1c, 0xfa, 0xf7, 0x5d, 0xfd, 0x24, 0x1a,
- 0xfa, 0xf7, 0x3e, 0xfd, 0x08, 0x49, 0x00, 0x28,
- 0x0b, 0xd0, 0x48, 0x6a, 0x00, 0x28, 0x08, 0xd0,
- 0x06, 0x48, 0x84, 0x42, 0x3c, 0x00, 0xd8, 0x17,
- 0x01, 0x00, 0x05, 0xd2, 0x01, 0x1b, 0x01, 0x22,
- 0x07, 0x20, 0x01, 0xf0, 0xf4, 0xfe, 0xe5, 0xe7,
- 0x00, 0x20, 0x48, 0x61, 0xe2, 0xe7, 0x78, 0x69,
- 0x01, 0x00, 0x50, 0xc3, 0x00, 0x00, 0x09, 0x49,
- 0x80, 0xb5, 0x48, 0x69, 0x00, 0x28, 0x0c, 0xd0,
- 0x08, 0x6a, 0xca, 0x69, 0x80, 0x1a, 0x00, 0x28,
- 0x07, 0xdd, 0x00, 0x20, 0x48, 0x61, 0x01, 0x21,
- 0x07, 0x20, 0x01, 0xf0, 0x10, 0xff, 0x3c, 0x00,
- 0x14, 0x18, 0x01, 0x00, 0xf6, 0xf7, 0xb8, 0xf9,
- 0x80, 0xbd, 0x00, 0x00, 0x78, 0x69, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0xf0, 0xe7, 0xfb, 0x80, 0xbd,
- 0x80, 0xb5, 0x00, 0xf0, 0x3f, 0xfc, 0x00, 0x20,
- 0xf7, 0xf7, 0xd4, 0xfc, 0x80, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0x00, 0xf0, 0x37, 0xfc, 0xfd, 0xf7,
- 0x6f, 0xfc, 0xf5, 0xf7, 0x73, 0xfd, 0x30, 0xf0,
- 0x47, 0xfb, 0x80, 0xbd, 0x04, 0x48, 0x80, 0xb5,
- 0x3c, 0x00, 0x50, 0x18, 0x01, 0x00, 0xc1, 0x6a,
- 0x00, 0x6b, 0xf2, 0xf7, 0xde, 0xff, 0x01, 0x20,
- 0xf7, 0xf7, 0x89, 0xf8, 0x80, 0xbd, 0xa4, 0x6c,
- 0x01, 0x00, 0x10, 0xb5, 0xf3, 0xf7, 0x41, 0xf8,
- 0x0d, 0x4c, 0x00, 0x28, 0x04, 0xd0, 0x01, 0x20,
- 0xe0, 0x64, 0xf7, 0xf7, 0xb2, 0xfc, 0x10, 0xbd,
- 0x01, 0x21, 0x01, 0x20, 0xf3, 0xf7, 0xe9, 0xf8,
- 0xfd, 0xf7, 0x4d, 0xfc, 0x60, 0x6d, 0x00, 0x28,
- 0x03, 0xd0, 0x3c, 0x00, 0x8c, 0x18, 0x01, 0x00,
- 0xf3, 0xf7, 0x82, 0xf8, 0x00, 0x28, 0x01, 0xd0,
- 0xf5, 0xf7, 0x4a, 0xfd, 0x01, 0x20, 0xf2, 0xf7,
- 0xc1, 0xfc, 0x10, 0xbd, 0xa4, 0x6c, 0x01, 0x00,
- 0x04, 0x48, 0x80, 0xb5, 0xc1, 0x6a, 0x00, 0x6b,
- 0xf2, 0xf7, 0xb2, 0xff, 0x01, 0x20, 0xf7, 0xf7,
- 0x5d, 0xf8, 0x80, 0xbd, 0xa4, 0x6c, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0xf0, 0xf5, 0xfb, 0xf5, 0xf7,
- 0x33, 0xfd, 0xfc, 0xf7, 0x3c, 0x00, 0xc8, 0x18,
- 0x01, 0x00, 0x31, 0xfd, 0xf9, 0xf7, 0xcb, 0xff,
- 0x04, 0x20, 0xf2, 0xf7, 0xa6, 0xfc, 0x80, 0xbd,
- 0x00, 0x00, 0x03, 0x48, 0x80, 0xb5, 0xc1, 0x6a,
- 0x00, 0x6b, 0xf2, 0xf7, 0x98, 0xff, 0x80, 0xbd,
- 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00, 0x80, 0xb5,
- 0x00, 0xf0, 0xdd, 0xfb, 0x00, 0x20, 0xf7, 0xf7,
- 0x3c, 0xf8, 0x30, 0xf0, 0xee, 0xfa, 0x80, 0xbd,
- 0x00, 0x00, 0x80, 0xb5, 0x00, 0x21, 0x3c, 0x00,
- 0x04, 0x19, 0x01, 0x00, 0x01, 0x20, 0xff, 0xf7,
- 0x19, 0xfa, 0x01, 0x20, 0xf2, 0xf7, 0x88, 0xfc,
- 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5, 0x00, 0xf0,
- 0xc9, 0xfb, 0xfc, 0xf7, 0x07, 0xfd, 0x01, 0x21,
- 0x01, 0x20, 0xff, 0xf7, 0x0b, 0xfa, 0x04, 0x20,
- 0xf2, 0xf7, 0x7a, 0xfc, 0x80, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0x00, 0x22, 0x00, 0x21, 0x00, 0x20,
- 0x00, 0xf0, 0x8a, 0xfb, 0x80, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0x19, 0x01, 0x00, 0x03, 0x48,
- 0x80, 0xb5, 0x82, 0x6a, 0x01, 0x21, 0x04, 0x20,
- 0x00, 0xf0, 0x81, 0xfb, 0x80, 0xbd, 0xd4, 0x79,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x22, 0x00, 0x21,
- 0x03, 0x20, 0x00, 0xf0, 0x78, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0x03, 0x48, 0x80, 0xb5, 0x82, 0x6a,
- 0x01, 0x21, 0x04, 0x20, 0x00, 0xf0, 0x6f, 0xfb,
- 0x80, 0xbd, 0xd4, 0x79, 0x01, 0x00, 0x80, 0xb5,
- 0x00, 0x22, 0x3c, 0x00, 0x7c, 0x19, 0x01, 0x00,
- 0x00, 0x21, 0x03, 0x20, 0x00, 0xf0, 0x66, 0xfb,
- 0x80, 0xbd, 0x00, 0x00, 0x06, 0x48, 0x80, 0xb5,
- 0x81, 0x68, 0x42, 0x69, 0x00, 0x69, 0x51, 0x18,
- 0x81, 0x42, 0x03, 0xd9, 0x01, 0x21, 0x01, 0x20,
- 0x00, 0xf0, 0x58, 0xfb, 0x80, 0xbd, 0x00, 0x00,
- 0xd4, 0x79, 0x01, 0x00, 0x06, 0x48, 0x80, 0xb5,
- 0x82, 0x88, 0x81, 0x68, 0x00, 0x69, 0x51, 0x18,
- 0x81, 0x42, 0x03, 0xd9, 0x3c, 0x00, 0xb8, 0x19,
- 0x01, 0x00, 0x01, 0x21, 0x02, 0x20, 0x00, 0xf0,
- 0x48, 0xfb, 0x80, 0xbd, 0x00, 0x00, 0xd4, 0x79,
- 0x01, 0x00, 0x10, 0xb5, 0x08, 0x4c, 0x20, 0x7b,
- 0x21, 0x6a, 0xf9, 0xf7, 0x9c, 0xfa, 0xa1, 0x69,
- 0x42, 0x18, 0xa0, 0x68, 0x21, 0x69, 0x80, 0x18,
- 0x88, 0x42, 0x03, 0xd9, 0x01, 0x21, 0x02, 0x20,
- 0x00, 0xf0, 0x33, 0xfb, 0x10, 0xbd, 0xd4, 0x79,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x22, 0x3c, 0x00,
- 0xf4, 0x19, 0x01, 0x00, 0x00, 0x21, 0x00, 0x20,
- 0x00, 0xf0, 0x2a, 0xfb, 0x80, 0xbd, 0x00, 0x00,
- 0x00, 0x06, 0x00, 0x0e, 0x01, 0x28, 0x80, 0xb5,
- 0x02, 0xd1, 0xf6, 0xf7, 0x8f, 0xf8, 0x80, 0xbd,
- 0x00, 0x28, 0xfc, 0xd1, 0xf1, 0xf7, 0xfa, 0xfc,
- 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5, 0xf6, 0xf7,
- 0x85, 0xf8, 0x80, 0xbd, 0x80, 0xb5, 0x00, 0x06,
- 0x00, 0x0e, 0xf1, 0xf7, 0x29, 0xfd, 0x80, 0xbd,
- 0x3c, 0x00, 0x30, 0x1a, 0x01, 0x00, 0xb0, 0xb5,
- 0x02, 0x25, 0x02, 0x28, 0x10, 0x4c, 0x0b, 0xd1,
- 0xfb, 0xf7, 0x47, 0xfc, 0x00, 0x28, 0x01, 0xd1,
- 0xfe, 0xf7, 0x4f, 0xff, 0x25, 0x70, 0xa1, 0x68,
- 0x0c, 0x48, 0xfd, 0xf7, 0xa8, 0xfc, 0xb0, 0xbd,
- 0x03, 0x28, 0x0d, 0xd1, 0x08, 0x48, 0x7d, 0x23,
- 0x1c, 0x38, 0x00, 0x69, 0xdb, 0x00, 0x58, 0x43,
- 0x19, 0x1c, 0x40, 0x18, 0x41, 0x08, 0x02, 0x20,
- 0x00, 0xf0, 0x3c, 0x00, 0x6c, 0x1a, 0x01, 0x00,
- 0x91, 0xfa, 0x25, 0x70, 0xb0, 0xbd, 0xf8, 0xf7,
- 0x31, 0xf9, 0xb0, 0xbd, 0x78, 0x69, 0x01, 0x00,
- 0x34, 0x63, 0x01, 0x00, 0x10, 0xb5, 0x05, 0x4c,
- 0xe0, 0x68, 0x00, 0x28, 0x01, 0xd1, 0xef, 0xf7,
- 0x39, 0xfc, 0x02, 0x20, 0x20, 0x70, 0x00, 0xf0,
- 0xaf, 0xfa, 0x10, 0xbd, 0x78, 0x69, 0x01, 0x00,
- 0x03, 0x48, 0x80, 0xb5, 0x82, 0x6a, 0x01, 0x21,
- 0x04, 0x20, 0x00, 0xf0, 0x3c, 0x00, 0xa8, 0x1a,
- 0x01, 0x00, 0xd3, 0xfa, 0x80, 0xbd, 0xd4, 0x79,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x22, 0x00, 0x21,
- 0x03, 0x20, 0x00, 0xf0, 0xca, 0xfa, 0x80, 0xbd,
- 0x00, 0x00, 0x80, 0xb5, 0x00, 0x22, 0x00, 0x21,
- 0x00, 0x20, 0x00, 0xf0, 0xc2, 0xfa, 0x80, 0xbd,
- 0x00, 0x00, 0x03, 0x48, 0x80, 0xb5, 0x42, 0x69,
- 0x01, 0x21, 0x01, 0x20, 0x00, 0xf0, 0xb9, 0xfa,
- 0x80, 0xbd, 0xd4, 0x79, 0x01, 0x00, 0x3c, 0x00,
- 0xe4, 0x1a, 0x01, 0x00, 0x06, 0x48, 0x80, 0xb5,
- 0x82, 0x88, 0x00, 0x2a, 0x02, 0xd0, 0x01, 0x21,
- 0x02, 0x20, 0x02, 0xe0, 0x00, 0x22, 0x00, 0x21,
- 0x00, 0x20, 0x00, 0xf0, 0xa9, 0xfa, 0x80, 0xbd,
- 0xd4, 0x79, 0x01, 0x00, 0x10, 0xb5, 0x06, 0x4c,
- 0x20, 0x7b, 0x21, 0x6a, 0xf9, 0xf7, 0xfe, 0xf9,
- 0xa1, 0x69, 0x42, 0x18, 0x01, 0x21, 0x02, 0x20,
- 0x00, 0xf0, 0x9a, 0xfa, 0x10, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0x1b, 0x01, 0x00, 0xd4, 0x79,
- 0x01, 0x00, 0x80, 0xb5, 0x00, 0x22, 0x00, 0x21,
- 0x00, 0x20, 0x00, 0xf0, 0x90, 0xfa, 0x80, 0xbd,
- 0x00, 0x00, 0x38, 0xb5, 0xfa, 0xf7, 0x41, 0xfe,
- 0x00, 0x20, 0xf0, 0xf7, 0x80, 0xf8, 0x00, 0x90,
- 0x00, 0xab, 0x1c, 0x88, 0x5d, 0x88, 0xf8, 0xf7,
- 0x3c, 0xf9, 0x00, 0x2c, 0x02, 0xd0, 0xfd, 0xf7,
- 0x9e, 0xfa, 0x02, 0xe0, 0x01, 0x20, 0xf6, 0xf7,
- 0x0a, 0xff, 0x3c, 0x00, 0x5c, 0x1b, 0x01, 0x00,
- 0x29, 0x1c, 0x20, 0x1c, 0xfc, 0xf7, 0xb8, 0xfc,
- 0x00, 0x2c, 0x02, 0xd0, 0xf5, 0xf7, 0xe0, 0xfb,
- 0x02, 0xe0, 0x00, 0x20, 0x00, 0xf0, 0xdc, 0xf9,
- 0x03, 0x20, 0x00, 0x2c, 0x00, 0xd1, 0x02, 0x20,
- 0x00, 0x06, 0x00, 0x0e, 0xf2, 0xf7, 0x4e, 0xfb,
- 0x38, 0xbd, 0x00, 0x00, 0x03, 0x48, 0x80, 0xb5,
- 0x82, 0x6a, 0x01, 0x21, 0x04, 0x20, 0x00, 0xf0,
- 0x5d, 0xfa, 0x80, 0xbd, 0x3c, 0x00, 0x98, 0x1b,
- 0x01, 0x00, 0xd4, 0x79, 0x01, 0x00, 0x80, 0xb5,
- 0x30, 0xf0, 0x9b, 0xf9, 0x80, 0xbd, 0x80, 0xb5,
- 0x00, 0x22, 0x00, 0x21, 0x03, 0x20, 0x00, 0xf0,
- 0x50, 0xfa, 0x80, 0xbd, 0x00, 0x00, 0x03, 0x48,
- 0x80, 0xb5, 0x42, 0x69, 0x01, 0x21, 0x01, 0x20,
- 0x00, 0xf0, 0x47, 0xfa, 0x80, 0xbd, 0xd4, 0x79,
- 0x01, 0x00, 0x04, 0x48, 0x80, 0xb5, 0x82, 0x88,
- 0x00, 0x2a, 0x03, 0xd0, 0x01, 0x21, 0x3c, 0x00,
- 0xd4, 0x1b, 0x01, 0x00, 0x02, 0x20, 0x00, 0xf0,
- 0x3b, 0xfa, 0x80, 0xbd, 0xd4, 0x79, 0x01, 0x00,
- 0x10, 0xb5, 0x06, 0x4c, 0x20, 0x7b, 0x21, 0x6a,
- 0xf9, 0xf7, 0x90, 0xf9, 0xa1, 0x69, 0x42, 0x18,
- 0x01, 0x21, 0x02, 0x20, 0x00, 0xf0, 0x2c, 0xfa,
- 0x10, 0xbd, 0x00, 0x00, 0xd4, 0x79, 0x01, 0x00,
- 0x80, 0xb5, 0xfc, 0xf7, 0x93, 0xfb, 0x01, 0x21,
- 0x01, 0x20, 0xff, 0xf7, 0x97, 0xf8, 0x04, 0x20,
- 0x3c, 0x00, 0x10, 0x1c, 0x01, 0x00, 0xf2, 0xf7,
- 0x06, 0xfb, 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5,
- 0x2f, 0xf0, 0x6b, 0xfb, 0x00, 0x28, 0x0a, 0xd0,
- 0x01, 0x20, 0xf2, 0xf7, 0xfc, 0xfa, 0xfa, 0xf7,
- 0x2a, 0xfc, 0x00, 0x28, 0x02, 0xd1, 0x04, 0x20,
- 0xf6, 0xf7, 0x5d, 0xf8, 0x80, 0xbd, 0x03, 0x21,
- 0x16, 0x20, 0xef, 0xf7, 0x32, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0x02, 0x48, 0x80, 0xb5, 0x00, 0x68,
- 0xee, 0xf7, 0x3c, 0x00, 0x4c, 0x1c, 0x01, 0x00,
- 0xc5, 0xfb, 0x80, 0xbd, 0xd4, 0x79, 0x01, 0x00,
- 0x03, 0x48, 0x80, 0xb5, 0x42, 0x69, 0x01, 0x21,
- 0x01, 0x20, 0x00, 0xf0, 0xf7, 0xf9, 0x80, 0xbd,
- 0xd4, 0x79, 0x01, 0x00, 0x80, 0xb5, 0x30, 0xf0,
- 0x35, 0xf9, 0x80, 0xbd, 0xb0, 0xb5, 0x18, 0x4c,
- 0xaa, 0x20, 0x00, 0x5d, 0x04, 0x28, 0x19, 0xd1,
- 0x01, 0x25, 0xe5, 0x62, 0x25, 0x63, 0x01, 0xf0,
- 0x93, 0xf8, 0xa0, 0x66, 0x3c, 0x00, 0x88, 0x1c,
- 0x01, 0x00, 0x01, 0xf0, 0xfc, 0xfd, 0xf2, 0xf7,
- 0x2e, 0xfe, 0x00, 0x28, 0x0e, 0xd0, 0x02, 0x20,
- 0xf2, 0xf7, 0xc3, 0xfa, 0xa5, 0x60, 0x01, 0xf0,
- 0x86, 0xf8, 0x64, 0x30, 0x60, 0x60, 0xfa, 0xf7,
- 0x8a, 0xfd, 0x01, 0x21, 0x01, 0x20, 0xff, 0xf7,
- 0x46, 0xf8, 0xb0, 0xbd, 0x01, 0x20, 0xf2, 0xf7,
- 0xb4, 0xfa, 0x00, 0x20, 0xa0, 0x60, 0x00, 0x21,
- 0x01, 0x20, 0xff, 0xf7, 0x3c, 0xf8, 0x3c, 0x00,
- 0xc4, 0x1c, 0x01, 0x00, 0xf2, 0xf7, 0x66, 0xfe,
- 0x00, 0x28, 0xf1, 0xd0, 0xfa, 0xf7, 0x76, 0xfd,
- 0xb0, 0xbd, 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x20, 0xef, 0xf7, 0xd6, 0xfe,
- 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5, 0x01, 0x20,
- 0xef, 0xf7, 0xd0, 0xfe, 0x80, 0xbd, 0x00, 0x00,
- 0xac, 0x21, 0x09, 0x5c, 0x02, 0x4a, 0x09, 0x02,
- 0x89, 0x18, 0xc0, 0x31, 0x81, 0x60, 0x70, 0x47,
- 0x3c, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x70, 0x75,
- 0x01, 0x00, 0x80, 0xb5, 0x01, 0x28, 0x04, 0xd1,
- 0x03, 0xc9, 0x09, 0x68, 0xee, 0xf7, 0x64, 0xfb,
- 0x80, 0xbd, 0x01, 0x21, 0x14, 0x20, 0xef, 0xf7,
- 0xc4, 0xfa, 0x80, 0xbd, 0x00, 0x00, 0x00, 0x28,
- 0x02, 0xd1, 0x02, 0x48, 0x40, 0x68, 0x70, 0x47,
- 0x40, 0x68, 0x70, 0x47, 0x00, 0x00, 0x58, 0x75,
- 0x01, 0x00, 0x10, 0xb5, 0x00, 0x24, 0xf8, 0xf7,
- 0x1c, 0xfb, 0x3c, 0x00, 0x3c, 0x1d, 0x01, 0x00,
- 0x00, 0x28, 0x04, 0xd0, 0x40, 0x30, 0x80, 0x7a,
- 0x05, 0x28, 0x00, 0xd1, 0x01, 0x24, 0x20, 0x1c,
- 0x10, 0xbd, 0x00, 0x00, 0x04, 0x48, 0x00, 0x21,
- 0x40, 0x68, 0x01, 0xe0, 0x01, 0x63, 0x40, 0x68,
- 0x00, 0x28, 0xfb, 0xd1, 0x70, 0x47, 0x00, 0x00,
- 0x58, 0x75, 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x0d, 0x1c, 0xf7, 0xf7, 0xa5, 0xf8, 0x40, 0x34,
- 0xe5, 0x72, 0xb0, 0xbd, 0x3c, 0x00, 0x78, 0x1d,
- 0x01, 0x00, 0xf8, 0xb5, 0x07, 0x1c, 0xf8, 0xf7,
- 0xfa, 0xfa, 0x04, 0x1c, 0x04, 0xd0, 0x05, 0x21,
- 0x14, 0x20, 0xef, 0xf7, 0x8c, 0xfa, 0x28, 0xe0,
- 0x00, 0x25, 0x14, 0x49, 0x28, 0x02, 0x46, 0x18,
- 0x30, 0x1c, 0x44, 0x30, 0x06, 0x22, 0x12, 0x49,
- 0xee, 0xf7, 0x2d, 0xfb, 0x00, 0x28, 0x02, 0xd1,
- 0xac, 0x20, 0x85, 0x55, 0x34, 0x1c, 0x01, 0x35,
- 0x03, 0x2d, 0xee, 0xd3, 0x00, 0x2c, 0x3c, 0x00,
- 0xb4, 0x1d, 0x01, 0x00, 0x14, 0xd0, 0x39, 0x1c,
- 0x20, 0x1c, 0xf8, 0xf7, 0x2b, 0xf8, 0x09, 0x49,
- 0x00, 0x20, 0x20, 0x60, 0x18, 0x39, 0x48, 0x68,
- 0x60, 0x60, 0x00, 0x28, 0x00, 0xd0, 0x04, 0x60,
- 0x4c, 0x60, 0xca, 0x68, 0x00, 0x2a, 0x03, 0xd0,
- 0x01, 0x21, 0x20, 0x1c, 0xee, 0xf7, 0xfe, 0xfa,
- 0x20, 0x1c, 0xf8, 0xbd, 0x70, 0x75, 0x01, 0x00,
- 0x58, 0x46, 0x01, 0x00, 0x80, 0xb5, 0xf8, 0xf7,
- 0x3c, 0x00, 0xf0, 0x1d, 0x01, 0x00, 0xc1, 0xfa,
- 0x00, 0x28, 0x04, 0xd1, 0x06, 0x21, 0x14, 0x20,
- 0xef, 0xf7, 0x53, 0xfa, 0x80, 0xbd, 0xf5, 0xf7,
- 0x16, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5,
- 0xf8, 0xf7, 0xb3, 0xfa, 0x80, 0xbd, 0x10, 0xb5,
- 0x09, 0x4c, 0x21, 0x88, 0x02, 0x29, 0x03, 0xd1,
- 0x14, 0x20, 0xef, 0xf7, 0x42, 0xfa, 0x04, 0xe0,
- 0xa3, 0x68, 0x8a, 0x00, 0x98, 0x50, 0x48, 0x1c,
- 0x20, 0x80, 0x3c, 0x00, 0x2c, 0x1e, 0x01, 0x00,
- 0x20, 0x88, 0x01, 0x38, 0x00, 0x04, 0x00, 0x0c,
- 0x10, 0xbd, 0x00, 0x00, 0x58, 0x75, 0x01, 0x00,
- 0x0b, 0x1c, 0x11, 0x1c, 0x08, 0x4a, 0x80, 0xb5,
- 0x12, 0x88, 0x90, 0x42, 0x06, 0xd2, 0xda, 0x68,
- 0xc0, 0x00, 0x12, 0x18, 0x14, 0x20, 0x01, 0xf0,
- 0xbb, 0xfb, 0x80, 0xbd, 0x03, 0x21, 0x14, 0x20,
- 0xef, 0xf7, 0x22, 0xfa, 0x80, 0xbd, 0x00, 0x00,
- 0x58, 0x75, 0x01, 0x00, 0x3c, 0x00, 0x68, 0x1e,
- 0x01, 0x00, 0x08, 0x4a, 0x80, 0xb5, 0x12, 0x88,
- 0x90, 0x42, 0x06, 0xd2, 0xc9, 0x68, 0xc0, 0x00,
- 0x09, 0x18, 0x14, 0x20, 0x01, 0xf0, 0xdb, 0xfb,
- 0x80, 0xbd, 0x04, 0x21, 0x14, 0x20, 0xef, 0xf7,
- 0x0e, 0xfa, 0x80, 0xbd, 0x00, 0x00, 0x58, 0x75,
- 0x01, 0x00, 0x01, 0x49, 0xc8, 0x60, 0x70, 0x47,
- 0x00, 0x00, 0x58, 0x75, 0x01, 0x00, 0x80, 0xb5,
- 0x06, 0x22, 0x44, 0x30, 0xee, 0xf7, 0x3c, 0x00,
- 0xa4, 0x1e, 0x01, 0x00, 0xab, 0xfa, 0x00, 0x28,
- 0x01, 0xd1, 0x01, 0x20, 0x80, 0xbd, 0x00, 0x20,
- 0x80, 0xbd, 0x00, 0x00, 0x1c, 0xb5, 0x14, 0x4c,
- 0x20, 0x69, 0x00, 0x28, 0x23, 0xd0, 0x20, 0x78,
- 0x0a, 0x28, 0x01, 0xd0, 0x00, 0xf0, 0xfc, 0xf8,
- 0x00, 0x20, 0x60, 0x61, 0x0f, 0x48, 0x40, 0x79,
- 0xa0, 0x70, 0x00, 0x28, 0x01, 0xd0, 0x01, 0x28,
- 0x15, 0xd1, 0xfd, 0xf7, 0xed, 0xfe, 0x01, 0x90,
- 0x3c, 0x00, 0xe0, 0x1e, 0x01, 0x00, 0xfd, 0xf7,
- 0x82, 0xfe, 0x00, 0x90, 0x00, 0xab, 0x18, 0x79,
- 0x19, 0x78, 0x40, 0x1a, 0x18, 0x71, 0x58, 0x79,
- 0x59, 0x78, 0x40, 0x1a, 0x58, 0x71, 0x01, 0x98,
- 0xf2, 0xf7, 0x89, 0xfe, 0x05, 0x20, 0x20, 0x70,
- 0x00, 0xf0, 0xbf, 0xf9, 0x1c, 0xbd, 0x7c, 0x78,
- 0x01, 0x00, 0x0c, 0x5a, 0x01, 0x00, 0x08, 0xb5,
- 0x04, 0x4a, 0x00, 0x90, 0x14, 0x32, 0x00, 0x20,
- 0x02, 0x4b, 0x3c, 0x00, 0x1c, 0x1f, 0x01, 0x00,
- 0x02, 0x49, 0xf1, 0xf7, 0x7d, 0xf9, 0x08, 0xbd,
- 0x2c, 0x75, 0x01, 0x00, 0xb1, 0xa8, 0x00, 0x00,
- 0xb0, 0xb5, 0x00, 0x28, 0x06, 0xd0, 0x01, 0x28,
- 0x06, 0xd0, 0x02, 0x28, 0x07, 0xd1, 0x0c, 0x4c,
- 0x01, 0x25, 0x07, 0xe0, 0x0b, 0x4c, 0x04, 0xe0,
- 0x0a, 0x4c, 0x2a, 0x3c, 0x01, 0xe0, 0x08, 0x4c,
- 0xb6, 0x34, 0x00, 0x25, 0x00, 0xf0, 0x2c, 0xff,
- 0x07, 0x49, 0x89, 0x6e, 0x3c, 0x00, 0x58, 0x1f,
- 0x01, 0x00, 0x09, 0x19, 0x09, 0x1a, 0xa1, 0x42,
- 0x00, 0xd9, 0x00, 0x21, 0x2a, 0x1c, 0x16, 0x20,
- 0x01, 0xf0, 0x31, 0xfb, 0xb0, 0xbd, 0x71, 0x02,
- 0x00, 0x00, 0x0c, 0x05, 0x00, 0x00, 0xa4, 0x6c,
- 0x01, 0x00, 0x8c, 0xb5, 0x00, 0xab, 0x8e, 0x21,
- 0x19, 0x80, 0xfc, 0xf7, 0x38, 0xf9, 0x01, 0x90,
- 0x68, 0x46, 0xfb, 0xf7, 0xa6, 0xfa, 0x8c, 0xbd,
- 0x00, 0x00, 0xbf, 0xb5, 0x13, 0x4a, 0x3c, 0x00,
- 0x94, 0x1f, 0x01, 0x00, 0x01, 0x91, 0x0d, 0x1c,
- 0x11, 0x7c, 0x88, 0x43, 0x04, 0x1c, 0x21, 0x43,
- 0x08, 0x1c, 0x10, 0x74, 0xa0, 0x07, 0x0b, 0xd5,
- 0x0e, 0x48, 0x00, 0x90, 0x01, 0x20, 0x02, 0x90,
- 0x00, 0xf0, 0xfc, 0xfe, 0x0c, 0x49, 0x40, 0x18,
- 0x03, 0x90, 0x68, 0x46, 0xf9, 0xf7, 0x6a, 0xff,
- 0xe0, 0x07, 0x0c, 0xd5, 0xf1, 0xf7, 0x2c, 0xfd,
- 0x00, 0x28, 0x03, 0xd0, 0x07, 0x48, 0x85, 0x42,
- 0x3c, 0x00, 0xd0, 0x1f, 0x01, 0x00, 0x00, 0xd2,
- 0x01, 0x90, 0x06, 0x48, 0x00, 0x90, 0x68, 0x46,
- 0xf9, 0xf7, 0x09, 0xff, 0xbf, 0xbd, 0x78, 0x69,
- 0x01, 0x00, 0x81, 0xea, 0x00, 0x00, 0x10, 0x27,
- 0x00, 0x00, 0xa0, 0x86, 0x01, 0x00, 0x75, 0xea,
- 0x00, 0x00, 0x10, 0xb5, 0x0a, 0x4c, 0x60, 0x69,
- 0x00, 0x28, 0x0e, 0xd1, 0x01, 0x20, 0x60, 0x61,
- 0xa1, 0x68, 0x07, 0x48, 0xfd, 0xf7, 0xcb, 0xf9,
- 0x00, 0x21, 0x3c, 0x00, 0x0c, 0x20, 0x01, 0x00,
- 0xa0, 0x68, 0xf9, 0xf7, 0xd1, 0xfb, 0x01, 0x22,
- 0x07, 0x20, 0x04, 0x49, 0x01, 0xf0, 0xd8, 0xfa,
- 0x10, 0xbd, 0x00, 0x00, 0x78, 0x69, 0x01, 0x00,
- 0x34, 0x63, 0x01, 0x00, 0x98, 0x3a, 0x00, 0x00,
- 0x10, 0xb5, 0x0c, 0x1c, 0x11, 0x1c, 0x06, 0x4a,
- 0x00, 0x2b, 0x10, 0x70, 0x03, 0xd0, 0x00, 0x28,
- 0x02, 0xd1, 0xf9, 0xf7, 0xf5, 0xfd, 0x10, 0xbd,
- 0x20, 0x1c, 0xf9, 0xf7, 0x3c, 0x00, 0x48, 0x20,
- 0x01, 0x00, 0x01, 0xfe, 0x10, 0xbd, 0xa0, 0x79,
- 0x01, 0x00, 0xb0, 0xb5, 0x0a, 0x4c, 0x05, 0x1c,
- 0xe3, 0x6a, 0x20, 0x1f, 0x01, 0x33, 0xe3, 0x62,
- 0x00, 0x88, 0x00, 0x29, 0x06, 0xd0, 0xa1, 0x68,
- 0x89, 0x18, 0x21, 0x61, 0x05, 0x4a, 0x00, 0xf0,
- 0xfc, 0xfe, 0x01, 0xe0, 0x00, 0xf0, 0xcf, 0xfe,
- 0x25, 0x77, 0xb0, 0xbd, 0x00, 0x00, 0xd4, 0x79,
- 0x01, 0x00, 0x55, 0xe3, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x20, 0x01, 0x00, 0x01, 0x1c, 0x03, 0x48,
- 0x80, 0xb5, 0x40, 0x88, 0xff, 0xf7, 0xec, 0xfe,
- 0x80, 0xbd, 0x00, 0x00, 0x98, 0x7c, 0x01, 0x00,
- 0x03, 0x48, 0x80, 0xb5, 0xc1, 0x68, 0x18, 0x38,
- 0x80, 0x88, 0xff, 0xf7, 0xe1, 0xfe, 0x80, 0xbd,
- 0x70, 0x7c, 0x01, 0x00, 0x80, 0xb5, 0x00, 0x21,
- 0x16, 0x20, 0x01, 0xf0, 0xbf, 0xfa, 0x01, 0x21,
- 0x16, 0x20, 0x01, 0xf0, 0xbb, 0xfa, 0x80, 0xbd,
- 0x3c, 0x00, 0xc0, 0x20, 0x01, 0x00, 0x10, 0xb5,
- 0x0b, 0x4c, 0x20, 0x78, 0x0a, 0x28, 0x10, 0xd0,
- 0x01, 0x20, 0x60, 0x61, 0x0a, 0x21, 0x13, 0x20,
- 0x01, 0xf0, 0xaf, 0xfa, 0x0a, 0x20, 0x60, 0x70,
- 0x20, 0x70, 0xfd, 0xf7, 0x3c, 0xfb, 0x01, 0x20,
- 0xfd, 0xf7, 0xe9, 0xfb, 0x00, 0x20, 0xfa, 0xf7,
- 0xc4, 0xf9, 0x10, 0xbd, 0x00, 0x00, 0x7c, 0x78,
- 0x01, 0x00, 0x10, 0xb5, 0x0c, 0x4c, 0x00, 0x20,
- 0x0b, 0x49, 0x3c, 0x00, 0xfc, 0x20, 0x01, 0x00,
- 0x20, 0x63, 0xe0, 0x62, 0x50, 0x39, 0x88, 0x61,
- 0x20, 0x70, 0x08, 0x48, 0x38, 0x21, 0x0c, 0x38,
- 0x00, 0x7a, 0x08, 0x55, 0x81, 0x21, 0x18, 0x20,
- 0x01, 0xf0, 0x8e, 0xfa, 0x20, 0x69, 0x01, 0x28,
- 0x02, 0xd1, 0x00, 0x20, 0xf5, 0xf7, 0x3e, 0xfb,
- 0x10, 0xbd, 0x00, 0x00, 0xf4, 0x6e, 0x01, 0x00,
- 0xb0, 0xb5, 0x1c, 0x4c, 0x00, 0x25, 0x2c, 0x22,
- 0x01, 0x1d, 0x20, 0x1c, 0x3c, 0x00, 0x38, 0x21,
- 0x01, 0x00, 0x9a, 0xb0, 0xee, 0xf7, 0x39, 0xfa,
- 0x18, 0x49, 0x2c, 0x31, 0x08, 0x1c, 0x00, 0x7a,
- 0x8a, 0x69, 0x00, 0x2a, 0x13, 0xd1, 0x02, 0x28,
- 0x03, 0xd1, 0xa0, 0x68, 0x00, 0x28, 0x20, 0xd0,
- 0x04, 0xe0, 0x00, 0x28, 0x1d, 0xd1, 0x60, 0x68,
- 0x00, 0x28, 0x1a, 0xd0, 0x80, 0x02, 0x88, 0x61,
- 0x0e, 0x48, 0x69, 0x46, 0x24, 0x38, 0x00, 0x68,
- 0xef, 0xf7, 0xcb, 0xfb, 0x11, 0xe0, 0x3c, 0x00,
- 0x74, 0x21, 0x01, 0x00, 0x00, 0x22, 0x02, 0x28,
- 0x03, 0xd1, 0xa0, 0x68, 0x00, 0x28, 0x09, 0xd1,
- 0x04, 0xe0, 0x00, 0x28, 0x08, 0xd1, 0x60, 0x68,
- 0x00, 0x28, 0x03, 0xd1, 0x8a, 0x61, 0xff, 0xf7,
- 0xb1, 0xff, 0x01, 0xe0, 0x80, 0x02, 0x88, 0x61,
- 0x28, 0x1c, 0x1a, 0xb0, 0xb0, 0xbd, 0x00, 0x00,
- 0xc8, 0x6e, 0x01, 0x00, 0xf8, 0xb5, 0x0c, 0x49,
- 0x02, 0x20, 0x48, 0x60, 0x0b, 0x49, 0x00, 0x05,
- 0x3c, 0x00, 0xb0, 0x21, 0x01, 0x00, 0x08, 0x60,
- 0x0b, 0x4f, 0xb8, 0x68, 0xf9, 0x68, 0x7c, 0x68,
- 0x45, 0x1a, 0x2e, 0x1c, 0x04, 0xe0, 0xa0, 0x68,
- 0x61, 0x68, 0xee, 0xf7, 0x09, 0xf9, 0x24, 0x68,
- 0x01, 0x3d, 0xf8, 0xd2, 0x7c, 0x60, 0xf8, 0x68,
- 0x80, 0x19, 0xf8, 0x60, 0xf8, 0xbd, 0x40, 0x20,
- 0x07, 0x00, 0x00, 0x10, 0x07, 0x00, 0x44, 0xe3,
- 0x01, 0x00, 0xf8, 0xb5, 0x1f, 0x4e, 0x04, 0x1c,
- 0x30, 0x69, 0x3c, 0x00, 0xec, 0x21, 0x01, 0x00,
- 0x01, 0x21, 0xf9, 0xf7, 0x99, 0xfa, 0x1d, 0x49,
- 0x60, 0x00, 0x40, 0x18, 0x10, 0x38, 0x81, 0x7b,
- 0x1b, 0x4a, 0x51, 0x72, 0xc0, 0x7b, 0x10, 0x74,
- 0x1a, 0x4f, 0x1b, 0x4d, 0x0e, 0x2c, 0x0a, 0xd1,
- 0x01, 0x22, 0x02, 0x21, 0x08, 0x20, 0x01, 0xf0,
- 0xf3, 0xfb, 0x03, 0x20, 0xff, 0x21, 0x41, 0x31,
- 0x39, 0x86, 0x14, 0x21, 0x08, 0xe0, 0x02, 0x22,
- 0x01, 0x21, 0x08, 0x20, 0x3c, 0x00, 0x28, 0x22,
- 0x01, 0x00, 0x01, 0xf0, 0xe8, 0xfb, 0x12, 0x49,
- 0x02, 0x20, 0x39, 0x86, 0x10, 0x21, 0xa9, 0x71,
- 0xe8, 0x71, 0x10, 0x48, 0x11, 0x4a, 0x00, 0x19,
- 0x10, 0x38, 0xc0, 0x7b, 0x00, 0x28, 0x03, 0xd0,
- 0x01, 0x21, 0x51, 0x73, 0x10, 0x73, 0x01, 0xe0,
- 0x00, 0x20, 0x50, 0x73, 0x00, 0x21, 0x20, 0x1c,
- 0xfd, 0xf7, 0xe5, 0xfd, 0x30, 0x69, 0xf9, 0xf7,
- 0x08, 0xfb, 0xf8, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0x22, 0x01, 0x00, 0x40, 0x7c, 0x01, 0x00,
- 0x76, 0x46, 0x01, 0x00, 0x0c, 0x80, 0x07, 0x00,
- 0x30, 0x80, 0x07, 0x00, 0x00, 0x80, 0x07, 0x00,
- 0xff, 0x01, 0x00, 0x00, 0x5c, 0x57, 0x01, 0x00,
- 0xd0, 0x80, 0x07, 0x00, 0x10, 0xb5, 0x15, 0x4c,
- 0x14, 0x4a, 0x21, 0x78, 0x00, 0x20, 0x18, 0x32,
- 0x05, 0x29, 0x1d, 0xd0, 0x06, 0x29, 0x1b, 0xd0,
- 0x07, 0x29, 0x01, 0xd0, 0x08, 0x29, 0x06, 0xd1,
- 0x3c, 0x00, 0xa0, 0x22, 0x01, 0x00, 0x91, 0x68,
- 0x05, 0x20, 0x10, 0x29, 0x00, 0xdb, 0x06, 0x20,
- 0x20, 0x70, 0x01, 0x20, 0xa1, 0x78, 0x00, 0x28,
- 0x61, 0x70, 0x0b, 0xd0, 0x00, 0x20, 0xfa, 0xf7,
- 0xdc, 0xf8, 0x00, 0x21, 0x60, 0x78, 0xf4, 0xf7,
- 0x3c, 0xfa, 0x0a, 0x22, 0x1e, 0x21, 0x13, 0x20,
- 0x01, 0xf0, 0x7f, 0xf9, 0x10, 0xbd, 0xd1, 0x69,
- 0x07, 0x20, 0x10, 0x29, 0xe8, 0xdb, 0x08, 0x20,
- 0xe6, 0xe7, 0x3c, 0x00, 0xdc, 0x22, 0x01, 0x00,
- 0x7c, 0x78, 0x01, 0x00, 0xb0, 0xb5, 0x0d, 0x1c,
- 0x01, 0x1c, 0x04, 0x1c, 0x44, 0x31, 0x00, 0x20,
- 0xf6, 0xf7, 0x40, 0xfa, 0x30, 0x34, 0x00, 0x2d,
- 0x07, 0xd0, 0x0e, 0xc8, 0x0e, 0xc4, 0x08, 0xc8,
- 0x10, 0x38, 0x08, 0xc4, 0xf4, 0xf7, 0xc4, 0xf9,
- 0xb0, 0xbd, 0x1e, 0xcc, 0x1e, 0xc0, 0xb0, 0xbd,
- 0xf8, 0xb5, 0x08, 0x1c, 0x11, 0x1c, 0xf4, 0xf7,
- 0x87, 0xfa, 0x08, 0x4c, 0x3c, 0x00, 0x18, 0x23,
- 0x01, 0x00, 0x00, 0x25, 0x08, 0x4e, 0x08, 0x4f,
- 0x06, 0xe0, 0x30, 0x6b, 0x00, 0x28, 0x03, 0xd0,
- 0x35, 0x63, 0x20, 0x68, 0xee, 0xf7, 0x55, 0xf8,
- 0x38, 0x68, 0x00, 0x28, 0xf5, 0xd0, 0xf8, 0xbd,
- 0x00, 0x00, 0x5c, 0x5b, 0x01, 0x00, 0xe4, 0xfe,
- 0x01, 0x00, 0x84, 0x5a, 0x01, 0x00, 0x80, 0xb5,
- 0x00, 0x06, 0x00, 0x0e, 0x00, 0xf0, 0x07, 0xf8,
- 0x80, 0xbd, 0x80, 0xb5, 0x0a, 0x1c, 0x3c, 0x00,
- 0x54, 0x23, 0x01, 0x00, 0x23, 0x21, 0x01, 0xf0,
- 0x2b, 0xfa, 0x80, 0xbd, 0xb0, 0xb5, 0x0d, 0x1c,
- 0x04, 0x1c, 0x12, 0x28, 0x03, 0xd3, 0x01, 0x21,
- 0x23, 0x20, 0xee, 0xf7, 0x9b, 0xff, 0x06, 0x49,
- 0xa0, 0x00, 0x08, 0x58, 0x04, 0xe0, 0x12, 0xc8,
- 0x28, 0x1c, 0xee, 0xf7, 0x2e, 0xf8, 0x20, 0x1c,
- 0x00, 0x28, 0xf8, 0xd1, 0xb0, 0xbd, 0x00, 0x00,
- 0x68, 0x5b, 0x01, 0x00, 0xf8, 0xb5, 0x0e, 0x1c,
- 0x3c, 0x00, 0x90, 0x23, 0x01, 0x00, 0x00, 0x25,
- 0x04, 0x1c, 0x12, 0x28, 0x03, 0xd3, 0x01, 0x21,
- 0x23, 0x20, 0xee, 0xf7, 0x82, 0xff, 0x13, 0x48,
- 0xa7, 0x00, 0xc4, 0x59, 0x08, 0xe0, 0x20, 0x68,
- 0xb0, 0x42, 0x03, 0xd1, 0x03, 0x21, 0x23, 0x20,
- 0xee, 0xf7, 0x77, 0xff, 0x25, 0x1c, 0x64, 0x68,
- 0x00, 0x2c, 0xf4, 0xd1, 0x0c, 0x4a, 0x04, 0x3a,
- 0x10, 0x68, 0x00, 0x28, 0x01, 0xd0, 0x41, 0x68,
- 0x11, 0x60, 0x3c, 0x00, 0xcc, 0x23, 0x01, 0x00,
- 0x00, 0x28, 0x04, 0xd1, 0x02, 0x21, 0x23, 0x20,
- 0xee, 0xf7, 0x66, 0xff, 0xf8, 0xbd, 0x00, 0x21,
- 0x41, 0x60, 0x06, 0x60, 0x00, 0x2d, 0x01, 0xd0,
- 0x68, 0x60, 0xf7, 0xe7, 0x01, 0x49, 0xc8, 0x51,
- 0xf4, 0xe7, 0x00, 0x00, 0x68, 0x5b, 0x01, 0x00,
- 0x70, 0xb5, 0x0e, 0x1c, 0x05, 0x1c, 0x00, 0x24,
- 0x12, 0x28, 0x03, 0xd3, 0x01, 0x21, 0x23, 0x20,
- 0xee, 0xf7, 0x4e, 0xff, 0x3c, 0x00, 0x08, 0x24,
- 0x01, 0x00, 0x0d, 0x4b, 0xaa, 0x00, 0x98, 0x58,
- 0x04, 0xe0, 0x01, 0x68, 0xb1, 0x42, 0x04, 0xd0,
- 0x04, 0x1c, 0x40, 0x68, 0x00, 0x28, 0xf8, 0xd1,
- 0x70, 0xbd, 0x00, 0x28, 0xfc, 0xd0, 0x00, 0x2c,
- 0x41, 0x68, 0x01, 0xd1, 0x99, 0x50, 0x00, 0xe0,
- 0x61, 0x60, 0x00, 0x21, 0x03, 0x4a, 0x01, 0x60,
- 0x04, 0x3a, 0x11, 0x68, 0x41, 0x60, 0x10, 0x60,
- 0x70, 0xbd, 0x68, 0x5b, 0x01, 0x00, 0x3c, 0x00,
- 0x44, 0x24, 0x01, 0x00, 0xf3, 0xb5, 0x81, 0xb0,
- 0x00, 0x28, 0x17, 0xd0, 0x01, 0x78, 0xff, 0x29,
- 0x14, 0xd0, 0x45, 0x78, 0x44, 0x19, 0x02, 0x34,
- 0x80, 0x27, 0x01, 0x3c, 0x26, 0x78, 0x01, 0x3d,
- 0xbe, 0x43, 0x30, 0x1c, 0xf8, 0xf7, 0x82, 0xfc,
- 0x01, 0x21, 0x81, 0x40, 0x02, 0x98, 0x01, 0x40,
- 0x02, 0xd0, 0x3e, 0x43, 0x30, 0x1c, 0x20, 0x70,
- 0x00, 0x2d, 0xee, 0xd1, 0xfe, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0x24, 0x01, 0x00, 0x10, 0x4b,
- 0x10, 0xb5, 0x59, 0x68, 0x41, 0x1a, 0x0f, 0x29,
- 0x0d, 0xdc, 0x0e, 0x22, 0xd2, 0x43, 0x91, 0x42,
- 0x09, 0xdb, 0x1a, 0x1c, 0x92, 0x68, 0x00, 0x29,
- 0x01, 0xdd, 0x00, 0x2a, 0x03, 0xda, 0x00, 0x29,
- 0x0d, 0xda, 0x00, 0x2a, 0x0b, 0xdc, 0x04, 0x33,
- 0x03, 0xc3, 0xfd, 0xf7, 0x10, 0xfd, 0x04, 0x1c,
- 0xfd, 0xf7, 0x13, 0xfd, 0x00, 0x28, 0x02, 0xd0,
- 0x20, 0x1c, 0x3c, 0x00, 0xbc, 0x24, 0x01, 0x00,
- 0xff, 0xf7, 0x92, 0xfe, 0x10, 0xbd, 0x00, 0x00,
- 0x18, 0x63, 0x01, 0x00, 0xf8, 0xb5, 0x64, 0x4c,
- 0x07, 0x1c, 0x60, 0x78, 0xa1, 0x78, 0x88, 0x42,
- 0x0f, 0xd1, 0x08, 0x1c, 0xfd, 0xf7, 0xce, 0xf8,
- 0xe0, 0x60, 0x04, 0x20, 0x60, 0x70, 0x0a, 0x22,
- 0x1e, 0x21, 0x13, 0x20, 0x01, 0xf0, 0x70, 0xf8,
- 0x00, 0x21, 0x60, 0x78, 0xf4, 0xf7, 0x24, 0xf9,
- 0xf8, 0xbd, 0x04, 0x28, 0x3c, 0x00, 0xf8, 0x24,
- 0x01, 0x00, 0x6e, 0xd1, 0x58, 0x4e, 0xfd, 0xf7,
- 0xbc, 0xf8, 0x00, 0x90, 0x71, 0x78, 0x04, 0x1c,
- 0x00, 0x20, 0x05, 0x29, 0x21, 0xd2, 0x01, 0xa3,
- 0x5b, 0x5c, 0x5b, 0x00, 0x9f, 0x44, 0x0b, 0x0f,
- 0x14, 0x1a, 0x02, 0x00, 0x51, 0x48, 0x51, 0x49,
- 0x60, 0x43, 0x41, 0x18, 0x7d, 0x20, 0xc0, 0x00,
- 0xee, 0xf7, 0x87, 0xf8, 0x11, 0xe0, 0x87, 0x20,
- 0x60, 0x43, 0x4d, 0x49, 0x02, 0xe0, 0x3c, 0x00,
- 0x34, 0x25, 0x01, 0x00, 0x45, 0x20, 0x4d, 0x49,
- 0x60, 0x43, 0x40, 0x18, 0x08, 0xe0, 0x4c, 0x48,
- 0xcd, 0x21, 0x09, 0x01, 0x60, 0x43, 0x40, 0x1a,
- 0x02, 0xe0, 0x46, 0x20, 0x60, 0x43, 0x82, 0x38,
- 0x06, 0x06, 0x48, 0x48, 0x07, 0x21, 0x00, 0x79,
- 0x36, 0x16, 0x08, 0x1a, 0x00, 0x19, 0x00, 0x90,
- 0x68, 0x46, 0xfe, 0xf7, 0x5f, 0xfd, 0x38, 0x1c,
- 0xfd, 0xf7, 0x2e, 0xfb, 0x00, 0x99, 0x42, 0x4a,
- 0x3c, 0x00, 0x70, 0x25, 0x01, 0x00, 0x49, 0x00,
- 0x51, 0x5a, 0x48, 0x43, 0x39, 0x49, 0x04, 0x1c,
- 0x88, 0x78, 0x00, 0x28, 0x01, 0xd0, 0x01, 0x28,
- 0x1e, 0xd1, 0x35, 0x49, 0x00, 0x28, 0x03, 0xd1,
- 0x3a, 0x48, 0x05, 0x78, 0x04, 0x20, 0x02, 0xe0,
- 0x38, 0x48, 0x45, 0x78, 0x0c, 0x20, 0x30, 0x49,
- 0xc9, 0x68, 0x49, 0x1b, 0x08, 0x18, 0x00, 0x90,
- 0x68, 0x46, 0xfe, 0xf7, 0x3e, 0xfd, 0x00, 0x98,
- 0x33, 0x49, 0x3c, 0x00, 0xac, 0x25, 0x01, 0x00,
- 0x40, 0x00, 0x20, 0x31, 0x08, 0x5a, 0x2a, 0x49,
- 0x44, 0x43, 0xc8, 0x68, 0xa8, 0x42, 0x01, 0xd9,
- 0x01, 0x25, 0x00, 0xe0, 0x00, 0x25, 0x2e, 0x48,
- 0x21, 0x18, 0x40, 0x00, 0xee, 0xf7, 0xa2, 0xf8,
- 0x04, 0x1c, 0x00, 0x2d, 0x03, 0xd0, 0xfd, 0xf7,
- 0xc3, 0xfa, 0x02, 0xe0, 0x3d, 0xe0, 0xfd, 0xf7,
- 0xf3, 0xfa, 0x00, 0x2f, 0x02, 0xd1, 0x25, 0x48,
- 0x0e, 0x38, 0x01, 0xe0, 0x3c, 0x00, 0xe8, 0x25,
- 0x01, 0x00, 0x23, 0x48, 0x0a, 0x38, 0x01, 0x68,
- 0x61, 0x1a, 0xcb, 0x1c, 0x01, 0xdb, 0x03, 0x29,
- 0x00, 0xdd, 0x04, 0x60, 0x01, 0x68, 0xa1, 0x42,
- 0x01, 0xd2, 0x01, 0x31, 0x04, 0xe0, 0xa1, 0x42,
- 0x03, 0xd9, 0x00, 0x29, 0x01, 0xd0, 0x01, 0x39,
- 0x01, 0x60, 0x01, 0x68, 0x38, 0x1c, 0xfd, 0xf7,
- 0xc0, 0xfb, 0x10, 0x4c, 0x0a, 0x20, 0x60, 0x70,
- 0x0a, 0x22, 0x13, 0x20, 0xa1, 0x68, 0x3c, 0x00,
- 0x24, 0x26, 0x01, 0x00, 0x00, 0xf0, 0xd2, 0xff,
- 0x60, 0x68, 0x00, 0xf0, 0xf7, 0xfa, 0x00, 0x28,
- 0x00, 0xd1, 0x5f, 0xe7, 0x00, 0xf0, 0xba, 0xfb,
- 0x11, 0x49, 0x00, 0x23, 0x40, 0x18, 0x0e, 0x49,
- 0x60, 0x60, 0x1e, 0x39, 0xc8, 0x56, 0xb0, 0x42,
- 0xf3, 0xd0, 0x0e, 0x70, 0x31, 0x1c, 0x00, 0x20,
- 0xff, 0xf7, 0x84, 0xfe, 0x4e, 0xe7, 0xff, 0xf7,
- 0x15, 0xfe, 0x4b, 0xe7, 0x7c, 0x78, 0x01, 0x00,
- 0x3c, 0x00, 0x60, 0x26, 0x01, 0x00, 0x60, 0xd7,
- 0xff, 0xff, 0x60, 0x8f, 0x01, 0x00, 0x54, 0x0b,
- 0x00, 0x00, 0xc9, 0x09, 0x00, 0x00, 0x8e, 0xfe,
- 0xff, 0xff, 0x0c, 0x5a, 0x01, 0x00, 0x12, 0x5a,
- 0x01, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x40, 0x42,
- 0x0f, 0x00, 0x30, 0xb5, 0x0c, 0x4b, 0xfe, 0x24,
- 0x1b, 0x88, 0x04, 0x40, 0xc0, 0x07, 0x5d, 0x07,
- 0x6d, 0x0f, 0xdb, 0x08, 0xc0, 0x0f, 0x9c, 0x42,
- 0x0b, 0xd8, 0x3c, 0x00, 0x9c, 0x26, 0x01, 0x00,
- 0xa2, 0x18, 0x04, 0x3a, 0x9a, 0x42, 0x07, 0xd3,
- 0x1a, 0x1b, 0x89, 0x5c, 0x01, 0x22, 0xaa, 0x40,
- 0x11, 0x40, 0x01, 0xd0, 0x02, 0x21, 0x08, 0x43,
- 0x30, 0xbd, 0x00, 0x00, 0xfa, 0x60, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x28, 0x03, 0xd0, 0x01, 0x1c,
- 0x14, 0x20, 0xf5, 0xf7, 0xff, 0xfa, 0x80, 0xbd,
- 0xb0, 0xb5, 0x04, 0x1c, 0xf7, 0xf7, 0x08, 0xfd,
- 0x13, 0x4d, 0x00, 0x28, 0x3c, 0x00, 0xd8, 0x26,
- 0x01, 0x00, 0x1d, 0xd1, 0xa0, 0x07, 0x16, 0xd5,
- 0x02, 0x20, 0x84, 0x43, 0x11, 0x48, 0x01, 0x22,
- 0x2a, 0x62, 0x40, 0x68, 0x00, 0x28, 0x13, 0xd0,
- 0xf2, 0xf7, 0x51, 0xf9, 0x00, 0x28, 0x0f, 0xd1,
- 0x0b, 0x48, 0xe4, 0x30, 0x80, 0x7a, 0x01, 0x28,
- 0x00, 0xd0, 0x00, 0x22, 0x11, 0x1c, 0x01, 0x20,
- 0xf2, 0xf7, 0xa5, 0xf9, 0x04, 0xe0, 0x00, 0xf0,
- 0x4e, 0xfb, 0xe8, 0x61, 0xf2, 0xf7, 0x3c, 0x00,
- 0x14, 0x27, 0x01, 0x00, 0x6b, 0xf9, 0xa9, 0x6a,
- 0x00, 0x29, 0x02, 0xd0, 0x20, 0x1c, 0xed, 0xf7,
- 0x5c, 0xfe, 0xb0, 0xbd, 0x60, 0x6c, 0x01, 0x00,
- 0xb0, 0x57, 0x01, 0x00, 0x20, 0x48, 0xb0, 0xb5,
- 0x81, 0x68, 0x01, 0x29, 0x04, 0xd1, 0x00, 0x78,
- 0x00, 0x28, 0x01, 0xd1, 0xfd, 0xf7, 0x72, 0xfd,
- 0x1b, 0x4d, 0x80, 0x3d, 0x2c, 0x1c, 0x70, 0x34,
- 0x20, 0x78, 0x03, 0x38, 0x05, 0x28, 0x18, 0xd2,
- 0x3c, 0x00, 0x50, 0x27, 0x01, 0x00, 0x01, 0xa3,
- 0x1b, 0x5c, 0x5b, 0x00, 0x9f, 0x44, 0x04, 0x15,
- 0x27, 0x27, 0x27, 0x00, 0xfb, 0xf7, 0xf1, 0xff,
- 0x60, 0x7b, 0x01, 0x1c, 0xff, 0x31, 0x61, 0x73,
- 0x00, 0x28, 0xf7, 0xd1, 0x04, 0x20, 0x20, 0x70,
- 0xa8, 0x89, 0xf8, 0xf7, 0xda, 0xf9, 0x01, 0x1c,
- 0x00, 0x22, 0x0f, 0x20, 0x00, 0xf0, 0x25, 0xff,
- 0xb0, 0xbd, 0xef, 0xf7, 0xce, 0xff, 0x6a, 0x21,
- 0x49, 0x5b, 0x3c, 0x00, 0x8c, 0x27, 0x01, 0x00,
- 0x88, 0x42, 0x0b, 0xd0, 0xe8, 0x89, 0xf8, 0xf7,
- 0xcb, 0xf9, 0x01, 0x1c, 0x00, 0x23, 0x00, 0x22,
- 0x0f, 0x20, 0x00, 0xf0, 0xf7, 0xff, 0x07, 0x20,
- 0x20, 0x70, 0xb0, 0xbd, 0xfd, 0xf7, 0x3a, 0xfe,
- 0xb0, 0xbd, 0x00, 0x00, 0x84, 0x66, 0x01, 0x00,
- 0xf0, 0xb5, 0x85, 0xb0, 0x04, 0x1c, 0x03, 0x80,
- 0x18, 0x0c, 0x60, 0x80, 0x0d, 0x1c, 0x51, 0x78,
- 0x10, 0x78, 0x09, 0x02, 0x3c, 0x00, 0xc8, 0x27,
- 0x01, 0x00, 0x48, 0x40, 0xa0, 0x80, 0xd1, 0x78,
- 0x90, 0x78, 0x09, 0x02, 0x48, 0x40, 0xe0, 0x80,
- 0x51, 0x79, 0x10, 0x79, 0x09, 0x02, 0x48, 0x40,
- 0x20, 0x81, 0x68, 0x46, 0x1a, 0x49, 0x14, 0x22,
- 0xed, 0xf7, 0xe3, 0xfe, 0x00, 0x23, 0x00, 0x20,
- 0xd9, 0x07, 0xc9, 0x0f, 0x8c, 0x46, 0x42, 0x00,
- 0x56, 0x07, 0x76, 0x0f, 0x61, 0x46, 0x89, 0x19,
- 0x49, 0x00, 0x6e, 0x5c, 0x49, 0x19, 0x3c, 0x00,
- 0x04, 0x28, 0x01, 0x00, 0x49, 0x78, 0x6f, 0x46,
- 0x09, 0x02, 0x4e, 0x40, 0x81, 0x00, 0x79, 0x58,
- 0x0f, 0x4f, 0x49, 0x00, 0x61, 0x5a, 0x01, 0x30,
- 0x4e, 0x40, 0x31, 0x06, 0x36, 0x0a, 0x76, 0x00,
- 0xc9, 0x0d, 0x79, 0x5a, 0xf6, 0x19, 0x01, 0x27,
- 0x7f, 0x02, 0xf6, 0x19, 0x36, 0x88, 0x71, 0x40,
- 0xa6, 0x5a, 0x89, 0x19, 0xa1, 0x52, 0x05, 0x28,
- 0xdc, 0xdb, 0x20, 0x89, 0xc0, 0x18, 0x01, 0x33,
- 0x3c, 0x00, 0x40, 0x28, 0x01, 0x00, 0x08, 0x2b,
- 0x20, 0x81, 0xd2, 0xdb, 0x05, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0xd8, 0x56, 0x01, 0x00, 0xd8, 0x52,
- 0x01, 0x00, 0xf0, 0xb5, 0x05, 0x1c, 0x0c, 0x1c,
- 0x1e, 0x1c, 0x00, 0x20, 0x89, 0xb0, 0x41, 0x00,
- 0x53, 0x5a, 0x01, 0x30, 0x06, 0xaf, 0x7b, 0x52,
- 0x05, 0x28, 0xf8, 0xdb, 0x10, 0x89, 0x00, 0xab,
- 0x3a, 0x49, 0x80, 0x19, 0x58, 0x84, 0x68, 0x46,
- 0x18, 0x22, 0x3c, 0x00, 0x7c, 0x28, 0x01, 0x00,
- 0xed, 0xf7, 0x98, 0xfe, 0x00, 0x20, 0x41, 0x00,
- 0x0a, 0x19, 0x52, 0x78, 0x63, 0x5c, 0x6f, 0x46,
- 0x12, 0x02, 0x53, 0x40, 0x82, 0x00, 0xba, 0x58,
- 0x06, 0xaf, 0x52, 0x00, 0xba, 0x5a, 0x31, 0x4f,
- 0x01, 0x30, 0x53, 0x40, 0x1a, 0x06, 0x1b, 0x0a,
- 0x5b, 0x00, 0xd2, 0x0d, 0xba, 0x5a, 0xdb, 0x19,
- 0x01, 0x27, 0x7f, 0x02, 0xdb, 0x19, 0x1b, 0x88,
- 0x5a, 0x40, 0x06, 0xab, 0x3c, 0x00, 0xb8, 0x28,
- 0x01, 0x00, 0x5b, 0x5a, 0xd2, 0x18, 0x06, 0xab,
- 0x5a, 0x52, 0x06, 0x28, 0xde, 0xdb, 0x61, 0x7b,
- 0x20, 0x7b, 0x00, 0xab, 0x09, 0x02, 0x48, 0x40,
- 0x59, 0x8c, 0x48, 0x40, 0x41, 0x08, 0xc0, 0x03,
- 0x48, 0x40, 0x19, 0x8b, 0x40, 0x18, 0x18, 0x83,
- 0xe1, 0x7b, 0xa0, 0x7b, 0x09, 0x02, 0x48, 0x40,
- 0x19, 0x8b, 0x48, 0x40, 0x41, 0x08, 0xc0, 0x03,
- 0x48, 0x40, 0x59, 0x8b, 0x40, 0x18, 0x3c, 0x00,
- 0xf4, 0x28, 0x01, 0x00, 0x58, 0x83, 0x02, 0x20,
- 0x41, 0x00, 0x06, 0xaa, 0x8a, 0x18, 0x20, 0x3a,
- 0xd2, 0x8b, 0x01, 0x30, 0x53, 0x08, 0xd2, 0x03,
- 0x5a, 0x40, 0x06, 0xab, 0x5b, 0x5a, 0xd2, 0x18,
- 0x06, 0xab, 0x5a, 0x52, 0x06, 0x28, 0xef, 0xdb,
- 0x30, 0x0a, 0x28, 0x70, 0x70, 0x04, 0x40, 0x0e,
- 0x20, 0x21, 0x08, 0x43, 0x68, 0x70, 0xae, 0x70,
- 0x61, 0x78, 0x20, 0x78, 0x00, 0xab, 0x09, 0x02,
- 0x3c, 0x00, 0x30, 0x29, 0x01, 0x00, 0x48, 0x40,
- 0x59, 0x8c, 0x48, 0x40, 0xc0, 0x05, 0x00, 0x0e,
- 0xe8, 0x70, 0x00, 0x20, 0x41, 0x00, 0x06, 0xaa,
- 0x53, 0x5a, 0x4a, 0x19, 0x01, 0x30, 0x13, 0x71,
- 0x06, 0xab, 0x59, 0x5a, 0x09, 0x0a, 0x51, 0x71,
- 0x06, 0x28, 0xf3, 0xdb, 0x09, 0xb0, 0xf0, 0xbd,
- 0x00, 0x00, 0xec, 0x56, 0x01, 0x00, 0xd8, 0x52,
- 0x01, 0x00, 0xf0, 0xb5, 0x46, 0x68, 0x05, 0x1c,
- 0x60, 0x30, 0x3c, 0x00, 0x6c, 0x29, 0x01, 0x00,
- 0x85, 0xb0, 0x04, 0x90, 0x60, 0xe0, 0x68, 0x68,
- 0x0c, 0x21, 0x07, 0x69, 0x00, 0x20, 0xee, 0xf7,
- 0x2d, 0xfe, 0x70, 0x61, 0x01, 0x89, 0x04, 0x39,
- 0x09, 0x04, 0x09, 0x0c, 0x01, 0x81, 0x70, 0x69,
- 0x00, 0x68, 0x40, 0x18, 0x04, 0x21, 0xee, 0xf7,
- 0x21, 0xfe, 0xf0, 0x61, 0x70, 0x69, 0x20, 0x21,
- 0x04, 0x68, 0x04, 0x98, 0x04, 0x22, 0x40, 0x7b,
- 0x80, 0x01, 0x08, 0x43, 0x3c, 0x00, 0xa8, 0x29,
- 0x01, 0x00, 0xe0, 0x70, 0x28, 0x69, 0x40, 0x89,
- 0xa0, 0x70, 0x28, 0x69, 0x40, 0x89, 0x00, 0x0a,
- 0x20, 0x70, 0x29, 0x69, 0x0c, 0x31, 0xa0, 0x18,
- 0xed, 0xf7, 0x9b, 0xfd, 0x20, 0x78, 0x20, 0x21,
- 0x40, 0x06, 0x40, 0x0e, 0x08, 0x43, 0x60, 0x70,
- 0x28, 0x69, 0x0a, 0x30, 0x01, 0x88, 0x01, 0x31,
- 0x09, 0x04, 0x09, 0x0c, 0x01, 0x80, 0x04, 0xd1,
- 0x28, 0x69, 0x0c, 0x30, 0x01, 0x68, 0x3c, 0x00,
- 0xe4, 0x29, 0x01, 0x00, 0x01, 0x31, 0x01, 0x60,
- 0x35, 0x62, 0x61, 0x79, 0x20, 0x79, 0x09, 0x02,
- 0x40, 0x18, 0xa1, 0x79, 0x09, 0x04, 0x40, 0x18,
- 0xe1, 0x79, 0x09, 0x06, 0x43, 0x18, 0x00, 0x93,
- 0xa0, 0x78, 0x21, 0x78, 0x09, 0x02, 0x40, 0x18,
- 0x04, 0x04, 0x24, 0x0c, 0x10, 0x20, 0xee, 0xf7,
- 0x13, 0xff, 0xb0, 0x61, 0x28, 0x69, 0x3a, 0x1c,
- 0x01, 0x68, 0x00, 0x9b, 0x01, 0xa8, 0x0a, 0x32,
- 0x3c, 0x00, 0x20, 0x2a, 0x01, 0x00, 0xff, 0xf7,
- 0xc8, 0xfe, 0x28, 0x69, 0x23, 0x1c, 0x01, 0x68,
- 0xb0, 0x69, 0x01, 0xaa, 0xff, 0xf7, 0x11, 0xff,
- 0x36, 0x68, 0x00, 0x2e, 0x9c, 0xd1, 0x03, 0x49,
- 0x04, 0x48, 0x6a, 0x68, 0xf7, 0xf7, 0x63, 0xfb,
- 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0xfd, 0x6b,
- 0x00, 0x00, 0xa0, 0x6a, 0x01, 0x00, 0x01, 0x38,
- 0x07, 0x49, 0x40, 0x00, 0x09, 0x5c, 0x00, 0x29,
- 0x06, 0xd0, 0x3c, 0x00, 0x5c, 0x2a, 0x01, 0x00,
- 0x04, 0x49, 0x1c, 0x39, 0x08, 0x5c, 0x00, 0x28,
- 0x01, 0xd0, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20,
- 0x70, 0x47, 0x00, 0x00, 0xe6, 0x78, 0x01, 0x00,
- 0xfe, 0xb5, 0x05, 0x1c, 0x00, 0x20, 0x02, 0x90,
- 0x13, 0x48, 0x17, 0x1c, 0x00, 0x68, 0x0c, 0x1c,
- 0x86, 0x78, 0x30, 0x1c, 0xfd, 0xf7, 0x28, 0xfa,
- 0x00, 0x28, 0x01, 0xd1, 0x02, 0x98, 0xfe, 0xbd,
- 0x00, 0x2d, 0x08, 0xd1, 0x3c, 0x00, 0x98, 0x2a,
- 0x01, 0x00, 0x20, 0x68, 0x00, 0xab, 0x18, 0x71,
- 0x60, 0x68, 0x58, 0x71, 0xa0, 0x68, 0x98, 0x71,
- 0x03, 0x20, 0x38, 0x80, 0x29, 0x1c, 0x30, 0x1c,
- 0x01, 0xaa, 0x00, 0xf0, 0x0e, 0xf8, 0x00, 0x2d,
- 0xec, 0xd0, 0x00, 0xab, 0x19, 0x79, 0x21, 0x60,
- 0x59, 0x79, 0x61, 0x60, 0x99, 0x79, 0xa1, 0x60,
- 0x0c, 0x21, 0x39, 0x80, 0xe2, 0xe7, 0xf8, 0x6b,
- 0x01, 0x00, 0xf8, 0xb5, 0x15, 0x1c, 0x3c, 0x00,
- 0xd4, 0x2a, 0x01, 0x00, 0x42, 0x1e, 0x01, 0x38,
- 0x47, 0x00, 0x3f, 0x18, 0x1f, 0x48, 0x3e, 0x18,
- 0x00, 0x29, 0x06, 0xd0, 0x01, 0x24, 0x03, 0x22,
- 0x31, 0x1c, 0x28, 0x1c, 0xed, 0xf7, 0x04, 0xfd,
- 0x32, 0xe0, 0x68, 0x78, 0x01, 0x24, 0x00, 0x28,
- 0x05, 0xd0, 0x29, 0x78, 0x08, 0x18, 0x01, 0x38,
- 0x0e, 0x28, 0x00, 0xd9, 0x00, 0x24, 0x00, 0x2c,
- 0x26, 0xd0, 0x00, 0x2a, 0x07, 0xd1, 0x2a, 0x21,
- 0x3c, 0x00, 0x10, 0x2b, 0x01, 0x00, 0x12, 0x48,
- 0xed, 0xf7, 0x9f, 0xfc, 0x1c, 0x21, 0x11, 0x48,
- 0xed, 0xf7, 0x9b, 0xfc, 0x0f, 0x48, 0x03, 0x22,
- 0x29, 0x1c, 0x30, 0x1c, 0xed, 0xf7, 0xe7, 0xfc,
- 0x0c, 0x48, 0x71, 0x78, 0xc0, 0x5d, 0xb2, 0x78,
- 0x00, 0x29, 0x0e, 0xd0, 0x00, 0x2a, 0x0c, 0xd0,
- 0x01, 0x22, 0x43, 0x18, 0x08, 0x4d, 0x06, 0xe0,
- 0x41, 0x00, 0x49, 0x19, 0x10, 0x39, 0x8a, 0x73,
- 0xb7, 0x78, 0x3c, 0x00, 0x4c, 0x2b, 0x01, 0x00,
- 0x01, 0x30, 0xcf, 0x73, 0x83, 0x42, 0xf6, 0xd8,
- 0xfe, 0xf7, 0x60, 0xf8, 0x20, 0x1c, 0xf8, 0xbd,
- 0xeb, 0x62, 0x01, 0x00, 0xca, 0x78, 0x01, 0x00,
- 0x70, 0xb5, 0x05, 0x1c, 0x1c, 0x48, 0x00, 0x23,
- 0xc0, 0x56, 0x43, 0x1c, 0x32, 0xd1, 0xa8, 0x7a,
- 0xf8, 0xf7, 0x0c, 0xf9, 0x00, 0x26, 0x00, 0x28,
- 0x18, 0x4c, 0x08, 0xd0, 0xe8, 0x69, 0xe1, 0x6b,
- 0x00, 0x29, 0x0b, 0xd1, 0x3c, 0x00, 0x88, 0x2b,
- 0x01, 0x00, 0x66, 0x63, 0x01, 0x21, 0xe1, 0x63,
- 0xa6, 0x63, 0x06, 0xe0, 0xa8, 0x69, 0xe1, 0x6b,
- 0x00, 0x29, 0x02, 0xd0, 0x66, 0x63, 0xa6, 0x63,
- 0xe6, 0x63, 0xa1, 0x6b, 0x01, 0x31, 0xa1, 0x63,
- 0x82, 0x03, 0x01, 0xd5, 0x0e, 0x4a, 0x10, 0x43,
- 0xe2, 0x6b, 0x00, 0x2a, 0x00, 0xd0, 0x40, 0x42,
- 0x62, 0x6b, 0x10, 0x18, 0x60, 0x63, 0x08, 0x29,
- 0x0b, 0xd1, 0x00, 0x28, 0x01, 0xdd, 0x3c, 0x00,
- 0xc4, 0x2b, 0x01, 0x00, 0x01, 0x20, 0x03, 0xe0,
- 0x00, 0x28, 0x03, 0xda, 0x00, 0x20, 0xc0, 0x43,
- 0xef, 0xf7, 0x62, 0xfe, 0x66, 0x63, 0xa6, 0x63,
- 0x70, 0xbd, 0x00, 0x00, 0xf4, 0x6b, 0x01, 0x00,
- 0x84, 0x6a, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff,
- 0x0c, 0x21, 0x05, 0x4a, 0x41, 0x43, 0x89, 0x18,
- 0x80, 0xb5, 0x89, 0x78, 0x00, 0x29, 0x01, 0xd1,
- 0xf3, 0xf7, 0xf2, 0xfa, 0x80, 0xbd, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x60, 0x7b,
- 0x01, 0x00, 0x80, 0xb5, 0x01, 0x1c, 0x00, 0x20,
- 0xf7, 0xf7, 0x03, 0xfa, 0x80, 0xbd, 0x80, 0xb5,
- 0x01, 0x1c, 0x01, 0x20, 0xf7, 0xf7, 0xfd, 0xf9,
- 0x80, 0xbd, 0x02, 0x49, 0x89, 0x68, 0x40, 0x1a,
- 0xc0, 0x0f, 0x70, 0x47, 0x00, 0x00, 0x00, 0x01,
- 0x07, 0x00, 0x02, 0x49, 0x89, 0x68, 0x08, 0x1a,
- 0xc0, 0x17, 0x01, 0x30, 0x70, 0x47, 0x00, 0x01,
- 0x07, 0x00, 0x3c, 0x00, 0x3c, 0x2c, 0x01, 0x00,
- 0x05, 0x49, 0x4a, 0x68, 0x01, 0x23, 0x1a, 0x43,
- 0x4a, 0x60, 0x8a, 0x68, 0x10, 0x18, 0x88, 0x60,
- 0x48, 0x68, 0x98, 0x43, 0x48, 0x60, 0x70, 0x47,
- 0x00, 0x01, 0x07, 0x00, 0x10, 0xb5, 0x15, 0x4b,
- 0x00, 0x21, 0x0a, 0x01, 0x9a, 0x58, 0x00, 0x2a,
- 0x17, 0xd1, 0x01, 0x24, 0x0a, 0x01, 0x9c, 0x50,
- 0xd2, 0x18, 0x10, 0x73, 0x00, 0x23, 0x53, 0x73,
- 0x02, 0x23, 0x01, 0x28, 0x3c, 0x00, 0x78, 0x2c,
- 0x01, 0x00, 0x0e, 0x4a, 0x05, 0xd1, 0xc8, 0x00,
- 0x80, 0x18, 0x10, 0x30, 0x02, 0x78, 0x9a, 0x43,
- 0x04, 0xe0, 0xc8, 0x00, 0x80, 0x18, 0x10, 0x30,
- 0x02, 0x78, 0x1a, 0x43, 0x02, 0x70, 0x02, 0xe0,
- 0x01, 0x31, 0x08, 0x29, 0xe0, 0xdb, 0x08, 0x29,
- 0x04, 0xd1, 0x01, 0x21, 0x99, 0x20, 0xee, 0xf7,
- 0xfe, 0xfa, 0x03, 0x49, 0x08, 0x04, 0x00, 0x0c,
- 0x10, 0xbd, 0xac, 0x73, 0x01, 0x00, 0x3c, 0x00,
- 0xb4, 0x2c, 0x01, 0x00, 0x00, 0x60, 0x07, 0x00,
- 0xff, 0xff, 0x00, 0x00, 0xf7, 0xb5, 0x19, 0x4f,
- 0x19, 0x4e, 0x0c, 0x1c, 0xc1, 0x00, 0xc9, 0x19,
- 0xb2, 0x68, 0x10, 0x31, 0x81, 0xb0, 0x01, 0x3a,
- 0x4a, 0x60, 0x0b, 0x78, 0x1d, 0x1c, 0x0d, 0x22,
- 0x93, 0x43, 0x0b, 0x70, 0x01, 0x22, 0x82, 0x40,
- 0x3a, 0x73, 0x12, 0x4b, 0x00, 0x01, 0x03, 0x9a,
- 0xc0, 0x18, 0x82, 0x60, 0x10, 0x4a, 0x10, 0x1c,
- 0x3c, 0x00, 0xf0, 0x2c, 0x01, 0x00, 0x20, 0x30,
- 0x87, 0x79, 0x00, 0xab, 0x1f, 0x70, 0xc0, 0x79,
- 0x58, 0x70, 0xb0, 0x68, 0x03, 0x30, 0x00, 0x23,
- 0x26, 0x1a, 0x01, 0xd5, 0x04, 0x1c, 0x01, 0x23,
- 0x4c, 0x60, 0x0d, 0x70, 0x00, 0x2b, 0x04, 0xd0,
- 0x20, 0x1c, 0xff, 0xf7, 0x8a, 0xff, 0x00, 0x28,
- 0xfa, 0xd0, 0x00, 0xab, 0x18, 0x88, 0xd0, 0x84,
- 0xff, 0xbd, 0x00, 0x60, 0x07, 0x00, 0x00, 0x01,
- 0x07, 0x00, 0x3c, 0x00, 0x2c, 0x2d, 0x01, 0x00,
- 0xac, 0x73, 0x01, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0x30, 0xb5, 0x00, 0x20, 0xc0, 0x43, 0x0b, 0x4c,
- 0x09, 0x4b, 0x00, 0x22, 0xd1, 0x00, 0x09, 0x19,
- 0x0d, 0x7c, 0xed, 0x07, 0x07, 0xd5, 0x49, 0x69,
- 0x9d, 0x68, 0x49, 0x1b, 0x00, 0xd5, 0x00, 0x21,
- 0x81, 0x42, 0x00, 0xd2, 0x08, 0x1c, 0x01, 0x32,
- 0x08, 0x2a, 0xef, 0xdb, 0x30, 0xbd, 0x00, 0x00,
- 0x00, 0x01, 0x07, 0x00, 0x3c, 0x00, 0x68, 0x2d,
- 0x01, 0x00, 0x00, 0x60, 0x07, 0x00, 0xb0, 0xb5,
- 0x08, 0x28, 0x0b, 0xd2, 0x08, 0x4d, 0x04, 0x01,
- 0x29, 0x59, 0x00, 0x29, 0x04, 0xd0, 0x00, 0xf0,
- 0x4a, 0xf8, 0x00, 0x20, 0x28, 0x51, 0xb0, 0xbd,
- 0x02, 0x21, 0x00, 0xe0, 0x03, 0x21, 0x99, 0x20,
- 0xee, 0xf7, 0x89, 0xfa, 0xb0, 0xbd, 0xac, 0x73,
- 0x01, 0x00, 0x03, 0x49, 0x00, 0x01, 0x40, 0x18,
- 0x41, 0x7b, 0x08, 0x22, 0x11, 0x43, 0x3c, 0x00,
- 0xa4, 0x2d, 0x01, 0x00, 0x41, 0x73, 0x70, 0x47,
- 0xac, 0x73, 0x01, 0x00, 0x01, 0x48, 0x80, 0x68,
- 0x70, 0x47, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00,
- 0x70, 0xb5, 0x0b, 0x4e, 0x09, 0x4d, 0x00, 0x22,
- 0xd0, 0x00, 0x84, 0x19, 0x20, 0x7c, 0xc0, 0x07,
- 0x07, 0xd5, 0x60, 0x69, 0xff, 0xf7, 0x26, 0xff,
- 0x00, 0x28, 0x02, 0xd0, 0xa8, 0x68, 0x32, 0x30,
- 0x60, 0x61, 0x01, 0x32, 0x08, 0x2a, 0xef, 0xdb,
- 0x3c, 0x00, 0xe0, 0x2d, 0x01, 0x00, 0x70, 0xbd,
- 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x60,
- 0x07, 0x00, 0x02, 0x4a, 0xc0, 0x00, 0x80, 0x18,
- 0x01, 0x74, 0x70, 0x47, 0x00, 0x00, 0x00, 0x60,
- 0x07, 0x00, 0x04, 0x49, 0xc0, 0x00, 0x41, 0x18,
- 0x08, 0x7c, 0x08, 0x23, 0x02, 0x1c, 0x9a, 0x43,
- 0x0a, 0x74, 0x70, 0x47, 0x00, 0x00, 0x00, 0x60,
- 0x07, 0x00, 0x70, 0xb5, 0x08, 0x28, 0x17, 0xd2,
- 0x0e, 0x49, 0x3c, 0x00, 0x1c, 0x2e, 0x01, 0x00,
- 0x8a, 0x68, 0x0e, 0x4d, 0x01, 0x3a, 0xc1, 0x00,
- 0x49, 0x19, 0x4a, 0x61, 0x0c, 0x4b, 0x9a, 0x79,
- 0x10, 0x31, 0x0c, 0x78, 0x0d, 0x26, 0xb4, 0x43,
- 0x0c, 0x70, 0x01, 0x21, 0x81, 0x40, 0x29, 0x73,
- 0x9a, 0x71, 0x09, 0x4a, 0x07, 0x49, 0x00, 0x01,
- 0x80, 0x18, 0x41, 0x60, 0x70, 0xbd, 0x05, 0x21,
- 0x99, 0x20, 0xee, 0xf7, 0x29, 0xfa, 0x70, 0xbd,
- 0x00, 0x01, 0x07, 0x00, 0x3c, 0x00, 0x58, 0x2e,
- 0x01, 0x00, 0x00, 0x60, 0x07, 0x00, 0x20, 0x10,
- 0x07, 0x00, 0xd1, 0x75, 0x00, 0x00, 0xac, 0x73,
- 0x01, 0x00, 0xf8, 0xb5, 0x9e, 0x46, 0x1a, 0x4b,
- 0x94, 0x46, 0x9b, 0x68, 0x1a, 0x4c, 0xc2, 0x00,
- 0x12, 0x19, 0x01, 0x3b, 0x53, 0x61, 0x15, 0x1c,
- 0x18, 0x4c, 0xa6, 0x79, 0x2a, 0x1c, 0x10, 0x32,
- 0x13, 0x78, 0x0d, 0x27, 0xbb, 0x43, 0x13, 0x70,
- 0x01, 0x27, 0x12, 0x4b, 0x87, 0x40, 0x3c, 0x00,
- 0x94, 0x2e, 0x01, 0x00, 0x1f, 0x73, 0xa6, 0x71,
- 0x12, 0x4e, 0x00, 0x01, 0x80, 0x19, 0x63, 0x46,
- 0x43, 0x60, 0x73, 0x46, 0x83, 0x60, 0x13, 0x78,
- 0x40, 0x7b, 0xa6, 0x79, 0x01, 0x27, 0x18, 0x43,
- 0x38, 0x43, 0x14, 0x35, 0x00, 0xab, 0x1e, 0x70,
- 0xe4, 0x79, 0x5c, 0x70, 0x06, 0x4b, 0x9b, 0x68,
- 0x03, 0x33, 0xcc, 0x1a, 0x00, 0xd5, 0x19, 0x1c,
- 0x29, 0x60, 0x10, 0x70, 0x00, 0xab, 0x18, 0x88,
- 0x3c, 0x00, 0xd0, 0x2e, 0x01, 0x00, 0x03, 0x4c,
- 0x20, 0x3c, 0xe0, 0x84, 0xf8, 0xbd, 0x00, 0x01,
- 0x07, 0x00, 0x00, 0x60, 0x07, 0x00, 0x20, 0x10,
- 0x07, 0x00, 0xac, 0x73, 0x01, 0x00, 0x00, 0xb5,
- 0x01, 0x1c, 0xff, 0xf7, 0x5e, 0xff, 0x42, 0x18,
- 0x10, 0x1c, 0xff, 0xf7, 0x92, 0xfe, 0x00, 0x28,
- 0xfa, 0xd0, 0x00, 0xbd, 0x00, 0x00, 0x89, 0x1a,
- 0x40, 0x1a, 0x99, 0x18, 0x88, 0x42, 0x01, 0xd8,
- 0x01, 0x20, 0x3c, 0x00, 0x0c, 0x2f, 0x01, 0x00,
- 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00,
- 0xf8, 0xb5, 0x0f, 0x1c, 0x04, 0x1c, 0x00, 0x28,
- 0x01, 0xd1, 0xee, 0xf7, 0xef, 0xf9, 0x21, 0x1c,
- 0x01, 0x20, 0xff, 0xf7, 0x19, 0xfa, 0x41, 0x20,
- 0x00, 0x5d, 0x00, 0x28, 0x01, 0xd1, 0x00, 0x25,
- 0x04, 0xe0, 0x02, 0x28, 0x01, 0xd1, 0x05, 0x25,
- 0x00, 0xe0, 0x01, 0x25, 0xe0, 0x68, 0xee, 0xf7,
- 0x29, 0xfb, 0xa6, 0x6b, 0x3c, 0x00, 0x48, 0x2f,
- 0x01, 0x00, 0x00, 0x2e, 0x10, 0xd0, 0x00, 0x2f,
- 0x06, 0xd0, 0x2f, 0x20, 0x02, 0x5d, 0x20, 0x6a,
- 0x41, 0x6b, 0x28, 0x1c, 0xed, 0xf7, 0x44, 0xfa,
- 0xa0, 0x69, 0x00, 0x28, 0x01, 0xd0, 0xee, 0xf7,
- 0x46, 0xfc, 0x20, 0x6a, 0xee, 0xf7, 0x43, 0xfc,
- 0x20, 0x1c, 0xee, 0xf7, 0x40, 0xfc, 0x30, 0x1c,
- 0xf8, 0xbd, 0xb0, 0xb5, 0x04, 0x1c, 0xc0, 0x6b,
- 0x00, 0x28, 0x09, 0xd0, 0x20, 0x69, 0x3c, 0x00,
- 0x84, 0x2f, 0x01, 0x00, 0x00, 0x8b, 0xee, 0xf7,
- 0x55, 0xf9, 0x00, 0x28, 0x03, 0xd0, 0x21, 0x1c,
- 0x06, 0x20, 0xff, 0xf7, 0xe3, 0xf9, 0x08, 0x4d,
- 0x20, 0x1c, 0xa9, 0x6d, 0xff, 0xf7, 0xba, 0xff,
- 0x00, 0x28, 0x07, 0xd0, 0xe8, 0x68, 0x01, 0x30,
- 0xe8, 0x60, 0x28, 0x6a, 0x01, 0x38, 0x28, 0x62,
- 0xfc, 0xf7, 0x78, 0xf8, 0xb0, 0xbd, 0x00, 0x00,
- 0xc4, 0x69, 0x01, 0x00, 0x10, 0xb5, 0x06, 0x4c,
- 0x3c, 0x00, 0xc0, 0x2f, 0x01, 0x00, 0xe1, 0x6d,
- 0xff, 0xf7, 0xa7, 0xff, 0x00, 0x28, 0x04, 0xd0,
- 0xe0, 0x69, 0x01, 0x38, 0xe0, 0x61, 0xfc, 0xf7,
- 0x68, 0xf8, 0x10, 0xbd, 0x00, 0x00, 0xc4, 0x69,
- 0x01, 0x00, 0x0c, 0x23, 0x0c, 0x49, 0x58, 0x43,
- 0x40, 0x18, 0x10, 0xb5, 0x44, 0x68, 0xa1, 0x68,
- 0x00, 0x29, 0x02, 0xd0, 0x20, 0x1c, 0xed, 0xf7,
- 0xf3, 0xf9, 0xe0, 0x6b, 0x00, 0x28, 0x08, 0xd0,
- 0x20, 0x69, 0x3c, 0x00, 0xfc, 0x2f, 0x01, 0x00,
- 0x00, 0x8b, 0xee, 0xf7, 0x19, 0xf9, 0x00, 0x28,
- 0x02, 0xd0, 0x20, 0x1c, 0xf9, 0xf7, 0x26, 0xf9,
- 0x10, 0xbd, 0x00, 0x00, 0x60, 0x7b, 0x01, 0x00,
- 0xf8, 0xb5, 0x22, 0x49, 0x48, 0x68, 0x80, 0x00,
- 0x06, 0xd4, 0x01, 0x20, 0x40, 0x07, 0x08, 0x60,
- 0x4a, 0x69, 0x92, 0x00, 0x00, 0xd4, 0x48, 0x60,
- 0x1d, 0x4f, 0x78, 0x7e, 0xc3, 0x06, 0x01, 0x20,
- 0x02, 0x1c, 0xdb, 0x0e, 0x3c, 0x00, 0x38, 0x30,
- 0x01, 0x00, 0x9a, 0x40, 0x0a, 0x60, 0x79, 0x69,
- 0x8c, 0x68, 0x8c, 0x60, 0x21, 0x07, 0x89, 0x0f,
- 0x09, 0xd0, 0x21, 0x07, 0x04, 0xd5, 0x0b, 0x21,
- 0x9e, 0x20, 0xee, 0xf7, 0x28, 0xf9, 0x00, 0xe0,
- 0x78, 0x64, 0x0c, 0x20, 0x84, 0x43, 0x12, 0x48,
- 0x3d, 0x68, 0x06, 0x5d, 0x6c, 0x68, 0x2c, 0x34,
- 0x06, 0xe0, 0xa0, 0x68, 0x00, 0x68, 0xa0, 0x60,
- 0xe9, 0x68, 0x28, 0x1c, 0xed, 0xf7, 0x3c, 0x00,
- 0x74, 0x30, 0x01, 0x00, 0xb2, 0xf9, 0x01, 0x3e,
- 0xf6, 0xd2, 0xa0, 0x68, 0x80, 0x68, 0x00, 0x28,
- 0x0d, 0xd0, 0x40, 0x89, 0x00, 0x28, 0x0a, 0xd0,
- 0x78, 0x6c, 0x00, 0x28, 0x07, 0xd1, 0x78, 0x69,
- 0x80, 0x68, 0x80, 0x07, 0x03, 0xd1, 0x0c, 0x21,
- 0x9e, 0x20, 0xee, 0xf7, 0x03, 0xf9, 0xf8, 0xbd,
- 0x00, 0x10, 0x07, 0x00, 0xcc, 0x6d, 0x01, 0x00,
- 0xb4, 0x44, 0x01, 0x00, 0x09, 0x49, 0x80, 0xb5,
- 0x3c, 0x00, 0xb0, 0x30, 0x01, 0x00, 0x08, 0x7e,
- 0xc2, 0x06, 0xd2, 0x0e, 0x01, 0x20, 0x90, 0x40,
- 0x07, 0x4a, 0x10, 0x60, 0x00, 0x20, 0x0a, 0x69,
- 0xc0, 0x43, 0x90, 0x60, 0x08, 0x68, 0x24, 0x31,
- 0x06, 0xc9, 0x03, 0x69, 0xed, 0xf7, 0x86, 0xf9,
- 0x80, 0xbd, 0xcc, 0x6d, 0x01, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0xf8, 0xb5, 0x44, 0x68, 0x06, 0x1c,
- 0x2c, 0x34, 0x20, 0x68, 0x0d, 0x1c, 0x80, 0x68,
- 0x00, 0x90, 0x3c, 0x00, 0xec, 0x30, 0x01, 0x00,
- 0x00, 0x28, 0x00, 0xd0, 0xc5, 0x60, 0x20, 0x68,
- 0x00, 0x68, 0x20, 0x60, 0x40, 0x68, 0x00, 0x28,
- 0x03, 0xd0, 0x0a, 0x21, 0x9e, 0x20, 0xee, 0xf7,
- 0xcf, 0xf8, 0x20, 0x68, 0x45, 0x60, 0x28, 0x1c,
- 0x02, 0xe0, 0x00, 0x22, 0x42, 0x60, 0x08, 0x1c,
- 0xc1, 0x68, 0x00, 0x29, 0xf9, 0xd1, 0x71, 0x68,
- 0x60, 0x27, 0x0b, 0x1c, 0x40, 0x33, 0x9c, 0x46,
- 0x9b, 0x78, 0xca, 0x7e, 0x3c, 0x00, 0x28, 0x31,
- 0x01, 0x00, 0x5b, 0x01, 0x12, 0x07, 0x12, 0x0f,
- 0x3b, 0x40, 0x1a, 0x43, 0x8b, 0x8f, 0xff, 0x27,
- 0x3f, 0x04, 0x1b, 0x04, 0x3b, 0x40, 0x1a, 0x43,
- 0x90, 0x23, 0x1a, 0x43, 0x42, 0x60, 0x63, 0x46,
- 0x9a, 0x78, 0x01, 0x32, 0xd2, 0x07, 0xd2, 0x0f,
- 0x9a, 0x70, 0x89, 0x6b, 0xc1, 0x60, 0x21, 0x68,
- 0x88, 0x60, 0x00, 0x98, 0x00, 0x28, 0x01, 0xd0,
- 0x00, 0x98, 0xc5, 0x60, 0x0a, 0x4f, 0x3c, 0x00,
- 0x64, 0x31, 0x01, 0x00, 0xbd, 0x79, 0xa0, 0x69,
- 0x00, 0x28, 0x0c, 0xd0, 0x00, 0x22, 0xa2, 0x61,
- 0x74, 0x68, 0x60, 0x69, 0xef, 0xf7, 0x2e, 0xff,
- 0xe0, 0x6a, 0x61, 0x69, 0x40, 0x68, 0x48, 0x60,
- 0x61, 0x69, 0x01, 0x20, 0x08, 0x60, 0xbd, 0x71,
- 0xf8, 0xbd, 0x00, 0x00, 0x20, 0x10, 0x07, 0x00,
- 0xfe, 0xb5, 0x44, 0x68, 0x0f, 0x1c, 0x01, 0x94,
- 0x2c, 0x34, 0x20, 0x1c, 0x12, 0x30, 0x02, 0x90,
- 0x3c, 0x00, 0xa0, 0x31, 0x01, 0x00, 0x2c, 0xe0,
- 0x0c, 0x20, 0xee, 0xf7, 0x00, 0xfb, 0x05, 0x1c,
- 0x60, 0x68, 0x00, 0x28, 0x1d, 0xd1, 0x02, 0x98,
- 0x00, 0x21, 0x00, 0x90, 0x00, 0x20, 0xee, 0xf7,
- 0x0e, 0xfa, 0x06, 0x1c, 0x00, 0x98, 0x04, 0x21,
- 0xee, 0xf7, 0x09, 0xfa, 0x01, 0x1c, 0x01, 0x98,
- 0xc0, 0x7e, 0x00, 0x07, 0x00, 0x0f, 0xd0, 0x30,
- 0x70, 0x60, 0x01, 0x98, 0xc0, 0x7e, 0x00, 0x07,
- 0x00, 0x0f, 0x3c, 0x00, 0xdc, 0x31, 0x01, 0x00,
- 0xf0, 0x30, 0x48, 0x60, 0x30, 0x1c, 0xee, 0xf7,
- 0x19, 0xf9, 0x65, 0x60, 0xe6, 0x60, 0x01, 0xe0,
- 0x20, 0x68, 0x05, 0x60, 0x60, 0x68, 0x28, 0x60,
- 0x25, 0x60, 0x00, 0x20, 0x68, 0x60, 0xa8, 0x60,
- 0x38, 0x1c, 0xff, 0x30, 0x00, 0x06, 0x00, 0x0e,
- 0x39, 0x1c, 0x07, 0x1c, 0x00, 0x29, 0xca, 0xd1,
- 0x60, 0x68, 0xa0, 0x60, 0xfe, 0xbd, 0x00, 0x00,
- 0xff, 0xb5, 0x05, 0x1c, 0x3c, 0x00, 0x18, 0x32,
- 0x01, 0x00, 0x08, 0x1c, 0x00, 0x26, 0x81, 0xb0,
- 0xf4, 0xf7, 0x2f, 0xfe, 0x04, 0x1c, 0x02, 0xd0,
- 0x60, 0x68, 0xff, 0x28, 0x01, 0xd1, 0x06, 0x26,
- 0x28, 0xe0, 0x21, 0x1c, 0x20, 0x31, 0x0a, 0x78,
- 0x01, 0x2a, 0x01, 0xd1, 0x03, 0x26, 0x21, 0xe0,
- 0x01, 0x27, 0x25, 0x60, 0x0f, 0x70, 0x11, 0xc5,
- 0x1d, 0x48, 0x08, 0x3d, 0x68, 0x61, 0x03, 0x98,
- 0x6a, 0x46, 0xe8, 0x60, 0x04, 0x98, 0x3c, 0x00,
- 0x54, 0x32, 0x01, 0x00, 0x28, 0x61, 0x1a, 0x48,
- 0xa8, 0x61, 0x1a, 0x48, 0xe8, 0x61, 0x1a, 0x48,
- 0x28, 0x62, 0x1a, 0x48, 0x68, 0x62, 0x20, 0x7e,
- 0xa1, 0x68, 0xed, 0xf7, 0xb3, 0xfe, 0x00, 0x28,
- 0x06, 0xd1, 0x60, 0x7e, 0xe1, 0x68, 0x6a, 0x46,
- 0xed, 0xf7, 0xac, 0xfe, 0x00, 0x28, 0x07, 0xd0,
- 0x04, 0x26, 0x31, 0x1c, 0x9e, 0x20, 0xee, 0xf7,
- 0x0d, 0xf8, 0x30, 0x1c, 0x05, 0xb0, 0xf0, 0xbd,
- 0x3c, 0x00, 0x90, 0x32, 0x01, 0x00, 0x6a, 0x46,
- 0x0f, 0x49, 0x1d, 0x20, 0xed, 0xf7, 0x9d, 0xfe,
- 0x01, 0x21, 0x0d, 0x48, 0x49, 0x07, 0x01, 0x60,
- 0x22, 0x7e, 0x3b, 0x1c, 0xd2, 0x06, 0xd2, 0x0e,
- 0x93, 0x40, 0x43, 0x60, 0x62, 0x7e, 0xd2, 0x06,
- 0xd2, 0x0e, 0x97, 0x40, 0x47, 0x60, 0x41, 0x60,
- 0xe6, 0xe7, 0x31, 0x33, 0x01, 0x00, 0xd9, 0x32,
- 0x01, 0x00, 0x91, 0x31, 0x01, 0x00, 0xdd, 0x30,
- 0x01, 0x00, 0x3c, 0x00, 0xcc, 0x32, 0x01, 0x00,
- 0xfd, 0x32, 0x01, 0x00, 0x71, 0x33, 0x01, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0x42, 0x68, 0x2c, 0x32,
- 0x50, 0x68, 0x43, 0x68, 0x0b, 0x60, 0x81, 0x68,
- 0x4b, 0x89, 0x0b, 0x81, 0x83, 0x68, 0x00, 0x21,
- 0xd9, 0x60, 0x41, 0x60, 0x81, 0x60, 0x00, 0x68,
- 0x50, 0x60, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00,
- 0x70, 0xb5, 0x42, 0x68, 0xff, 0x26, 0x91, 0x87,
- 0x10, 0x6b, 0x0c, 0x04, 0x3c, 0x00, 0x08, 0x33,
- 0x01, 0x00, 0x05, 0x1c, 0x36, 0x04, 0x34, 0x40,
- 0x43, 0x68, 0x59, 0x68, 0xb1, 0x43, 0x21, 0x43,
- 0x59, 0x60, 0x00, 0x68, 0xa8, 0x42, 0xf7, 0xd1,
- 0x10, 0x6b, 0x51, 0x69, 0x40, 0x68, 0x48, 0x60,
- 0x51, 0x69, 0x01, 0x20, 0x08, 0x60, 0x70, 0xbd,
- 0x00, 0x00, 0xb0, 0xb5, 0x43, 0x68, 0x08, 0x1c,
- 0x59, 0x62, 0x9a, 0x62, 0x00, 0x25, 0x0a, 0xe0,
- 0x45, 0x81, 0xc4, 0x68, 0x2a, 0x1c, 0x3c, 0x00,
- 0x44, 0x33, 0x01, 0x00, 0x00, 0x2c, 0x03, 0xd1,
- 0x9a, 0x7e, 0x12, 0x07, 0x12, 0x0f, 0x10, 0x32,
- 0x42, 0x60, 0x20, 0x1c, 0x00, 0x28, 0xf2, 0xd1,
- 0x18, 0x69, 0x41, 0x60, 0x19, 0x69, 0x01, 0x20,
- 0x08, 0x60, 0x02, 0x48, 0x00, 0x68, 0xed, 0xf7,
- 0x37, 0xf8, 0xb0, 0xbd, 0x5c, 0x5b, 0x01, 0x00,
- 0x01, 0x20, 0x05, 0x49, 0x40, 0x07, 0x80, 0xb5,
- 0x88, 0x60, 0x04, 0x48, 0x01, 0x68, 0x0d, 0x20,
- 0x3c, 0x00, 0x80, 0x33, 0x01, 0x00, 0xfe, 0xf7,
- 0xe6, 0xff, 0x80, 0xbd, 0x00, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0xc4, 0x60, 0x01, 0x00, 0xf8, 0xb5,
- 0x0e, 0x4f, 0x0c, 0x4e, 0x00, 0x24, 0x48, 0x20,
- 0x60, 0x43, 0xc5, 0x19, 0x48, 0x21, 0x28, 0x1c,
- 0xed, 0xf7, 0x7b, 0xf8, 0x1c, 0x20, 0x60, 0x43,
- 0x81, 0x19, 0x28, 0x1d, 0x1c, 0x22, 0xed, 0xf7,
- 0xfe, 0xf8, 0x1c, 0x23, 0xe8, 0x56, 0x05, 0x49,
- 0xfb, 0xf7, 0x3c, 0x00, 0xbc, 0x33, 0x01, 0x00,
- 0xcd, 0xf8, 0x01, 0x34, 0x01, 0x2c, 0xe9, 0xd3,
- 0xf8, 0xbd, 0x00, 0x00, 0xb8, 0x44, 0x01, 0x00,
- 0xcc, 0x6d, 0x01, 0x00, 0x15, 0x32, 0x01, 0x00,
- 0xff, 0xb5, 0x05, 0x1c, 0x0a, 0x30, 0x06, 0x1c,
- 0x81, 0xb0, 0xf2, 0xf7, 0xdd, 0xf8, 0x18, 0x4f,
- 0x04, 0x1c, 0x39, 0x88, 0xef, 0xf7, 0xbc, 0xfc,
- 0x32, 0x88, 0x78, 0x68, 0x02, 0x80, 0x72, 0x88,
- 0x02, 0x30, 0x02, 0x80, 0x3c, 0x00, 0xf8, 0x33,
- 0x01, 0x00, 0xb1, 0x88, 0x12, 0x4e, 0x41, 0x80,
- 0x28, 0x88, 0x08, 0x36, 0x40, 0x05, 0x00, 0x28,
- 0x05, 0xda, 0x69, 0x88, 0x03, 0x9a, 0x20, 0x1c,
- 0xf7, 0xf7, 0x01, 0xfd, 0x00, 0xe0, 0x00, 0x20,
- 0x70, 0x80, 0xf8, 0xf7, 0x5e, 0xfc, 0x01, 0x21,
- 0x09, 0x03, 0x00, 0x28, 0x30, 0x88, 0x01, 0xd0,
- 0x88, 0x43, 0x00, 0xe0, 0x08, 0x43, 0x30, 0x80,
- 0x05, 0x48, 0x00, 0x22, 0x00, 0x21, 0x3c, 0x00,
- 0x34, 0x34, 0x01, 0x00, 0x14, 0x30, 0xef, 0xf7,
- 0x65, 0xfc, 0x20, 0x1c, 0xf9, 0xf7, 0x74, 0xf8,
- 0x05, 0xb0, 0xf0, 0xbd, 0xb0, 0x7a, 0x01, 0x00,
- 0x10, 0xb5, 0x0e, 0x4c, 0x60, 0x68, 0xf8, 0xf7,
- 0x95, 0xf9, 0x20, 0x68, 0x00, 0x6a, 0x00, 0x28,
- 0x13, 0xd1, 0xf8, 0xf7, 0xbf, 0xfc, 0x00, 0x28,
- 0x08, 0xd0, 0x21, 0x68, 0x01, 0x20, 0x08, 0x62,
- 0x1f, 0x21, 0x00, 0x22, 0x83, 0x20, 0x00, 0xf0,
- 0x3c, 0x00, 0x70, 0x34, 0x01, 0x00, 0x9f, 0xf9,
- 0x02, 0xe0, 0x60, 0x68, 0xf8, 0xf7, 0x21, 0xfa,
- 0xff, 0xf7, 0x97, 0xfc, 0x21, 0x68, 0x08, 0x61,
- 0x10, 0xbd, 0x14, 0x7a, 0x01, 0x00, 0xfe, 0xb5,
- 0x1b, 0x4e, 0x0f, 0x1c, 0x1d, 0x1c, 0x14, 0x1c,
- 0xb0, 0x60, 0x08, 0x1c, 0xf7, 0xf7, 0x2b, 0xff,
- 0xb0, 0x80, 0x34, 0x73, 0x35, 0x62, 0x38, 0x1c,
- 0x01, 0xaa, 0x02, 0xa9, 0xf7, 0xf7, 0x25, 0xff,
- 0x00, 0xab, 0x3c, 0x00, 0xac, 0x34, 0x01, 0x00,
- 0x18, 0x7a, 0x01, 0x28, 0x18, 0xd1, 0x18, 0x79,
- 0x0b, 0x28, 0x08, 0xd1, 0x30, 0x7f, 0x24, 0x23,
- 0x0f, 0x49, 0x58, 0x43, 0x40, 0x18, 0x80, 0x68,
- 0xec, 0xf7, 0x88, 0xff, 0xfe, 0xbd, 0x00, 0xab,
- 0x18, 0x79, 0x0a, 0x28, 0x08, 0xd1, 0xf7, 0xf7,
- 0x39, 0xfd, 0x07, 0x1c, 0x29, 0x1c, 0x20, 0x1c,
- 0xf7, 0xf7, 0x16, 0xfd, 0x38, 0x18, 0xb0, 0x80,
- 0x30, 0x7f, 0x24, 0x23, 0x3c, 0x00, 0xe8, 0x34,
- 0x01, 0x00, 0x04, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x40, 0x68, 0xec, 0xf7, 0x72, 0xff, 0xe8, 0xe7,
- 0x00, 0x00, 0xd4, 0x79, 0x01, 0x00, 0x94, 0x46,
- 0x01, 0x00, 0xb0, 0xb5, 0xff, 0xf7, 0x53, 0xfc,
- 0x04, 0x1c, 0xfb, 0xf7, 0xfc, 0xfa, 0x0c, 0x4d,
- 0x29, 0x68, 0x09, 0x69, 0x09, 0x1b, 0x0c, 0x1a,
- 0x02, 0x21, 0x1f, 0x20, 0x00, 0xf0, 0x8b, 0xf8,
- 0x14, 0x2c, 0x06, 0xdd, 0x02, 0x22, 0x3c, 0x00,
- 0x24, 0x35, 0x01, 0x00, 0x21, 0x1c, 0x1f, 0x20,
- 0x00, 0xf0, 0x50, 0xf8, 0x01, 0x20, 0xb0, 0xbd,
- 0x29, 0x68, 0x01, 0x20, 0x89, 0x6a, 0x00, 0x29,
- 0xf9, 0xd0, 0x00, 0x20, 0xb0, 0xbd, 0x00, 0x00,
- 0x14, 0x7a, 0x01, 0x00, 0xf8, 0xb5, 0x1a, 0x4d,
- 0x07, 0x1c, 0xae, 0x79, 0x01, 0x21, 0x19, 0x4c,
- 0x00, 0x20, 0x22, 0x68, 0x00, 0x2a, 0x14, 0xd1,
- 0xae, 0x71, 0xa2, 0x68, 0xd0, 0x68, 0x06, 0xca,
- 0x3c, 0x00, 0x60, 0x35, 0x01, 0x00, 0xec, 0xf7,
- 0x3c, 0xff, 0xae, 0x79, 0x00, 0x21, 0x13, 0x4a,
- 0x50, 0x69, 0x01, 0x30, 0x50, 0x61, 0xa0, 0x68,
- 0x80, 0x68, 0xa0, 0x60, 0x62, 0x68, 0x90, 0x42,
- 0x06, 0xd1, 0x01, 0x20, 0x20, 0x60, 0x03, 0xe0,
- 0x01, 0x30, 0x0c, 0x34, 0x03, 0x28, 0xe3, 0xdb,
- 0x00, 0x2f, 0x08, 0xd1, 0x00, 0x29, 0x0a, 0xd0,
- 0x0a, 0x48, 0x40, 0x68, 0x00, 0x28, 0x06, 0xd0,
- 0xfa, 0xf7, 0x3c, 0x00, 0x9c, 0x35, 0x01, 0x00,
- 0xf5, 0xff, 0x03, 0xe0, 0x01, 0x2f, 0x03, 0xd0,
- 0x00, 0x29, 0x01, 0xd1, 0xae, 0x71, 0xce, 0xe7,
- 0xae, 0x71, 0xf8, 0xbd, 0x20, 0x10, 0x07, 0x00,
- 0x18, 0xd9, 0x01, 0x00, 0xa8, 0x60, 0x01, 0x00,
- 0x70, 0x5d, 0x01, 0x00, 0x80, 0xb5, 0x01, 0x23,
- 0xf5, 0xf7, 0x7c, 0xf8, 0x80, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0x00, 0x23, 0xf5, 0xf7, 0x76, 0xf8,
- 0x80, 0xbd, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0x35,
- 0x01, 0x00, 0xf8, 0xb5, 0x13, 0x4b, 0x00, 0x24,
- 0x1b, 0x88, 0x98, 0x42, 0x1b, 0xd2, 0x11, 0x4b,
- 0xc0, 0x00, 0xc0, 0x18, 0x45, 0x68, 0x06, 0x68,
- 0x28, 0x68, 0x00, 0x28, 0x17, 0xd1, 0x0e, 0x4f,
- 0xa8, 0x68, 0x43, 0x68, 0xb3, 0x42, 0x09, 0xd1,
- 0xc3, 0x68, 0x8b, 0x42, 0x06, 0xd1, 0x03, 0x68,
- 0x93, 0x42, 0x01, 0xd0, 0x53, 0x1c, 0x01, 0xd1,
- 0x01, 0x24, 0x47, 0x60, 0x80, 0x68, 0x3c, 0x00,
- 0x14, 0x36, 0x01, 0x00, 0x6b, 0x68, 0x83, 0x42,
- 0xee, 0xd1, 0x03, 0xe0, 0x01, 0x21, 0x80, 0x20,
- 0xed, 0xf7, 0x40, 0xfe, 0x20, 0x1c, 0xf8, 0xbd,
- 0x56, 0x57, 0x01, 0x00, 0x84, 0x5d, 0x01, 0x00,
- 0x29, 0xe3, 0x00, 0x00, 0xf8, 0xb5, 0x17, 0x4f,
- 0x0a, 0x1c, 0xbe, 0x79, 0x16, 0x4d, 0x00, 0x23,
- 0x6c, 0x68, 0x07, 0xe0, 0x21, 0x68, 0x91, 0x42,
- 0x02, 0xd1, 0x21, 0x79, 0x81, 0x42, 0x04, 0xd0,
- 0x3c, 0x00, 0x50, 0x36, 0x01, 0x00, 0x23, 0x1c,
- 0xe4, 0x68, 0x00, 0x2c, 0xf5, 0xd1, 0x17, 0xe0,
- 0x00, 0x2c, 0x15, 0xd0, 0x00, 0x2b, 0x0d, 0xd1,
- 0xe3, 0x68, 0x0d, 0x48, 0x6b, 0x60, 0x00, 0x88,
- 0x00, 0x2b, 0x02, 0xd1, 0xff, 0xf7, 0xd1, 0xfb,
- 0x06, 0xe0, 0x0a, 0x4a, 0x99, 0x68, 0xff, 0xf7,
- 0xf6, 0xfb, 0x01, 0xe0, 0xe0, 0x68, 0xd8, 0x60,
- 0x28, 0x68, 0xe0, 0x60, 0x2c, 0x60, 0x02, 0xe0,
- 0x01, 0x21, 0x3c, 0x00, 0x8c, 0x36, 0x01, 0x00,
- 0xff, 0xf7, 0xa4, 0xff, 0xbe, 0x71, 0xf8, 0xbd,
- 0x20, 0x10, 0x07, 0x00, 0x7c, 0x5d, 0x01, 0x00,
- 0x2c, 0x74, 0x01, 0x00, 0x21, 0x38, 0x01, 0x00,
- 0x70, 0xb5, 0x09, 0x4e, 0xb5, 0x79, 0xf9, 0xf7,
- 0xaf, 0xfe, 0x04, 0x1c, 0x09, 0xd0, 0x20, 0x1c,
- 0xed, 0xf7, 0x0c, 0xfb, 0x05, 0x49, 0x8a, 0x68,
- 0x80, 0x18, 0x88, 0x60, 0x08, 0x68, 0x01, 0x30,
- 0x08, 0x60, 0xb5, 0x71, 0x3c, 0x00, 0xc8, 0x36,
- 0x01, 0x00, 0x20, 0x1c, 0x70, 0xbd, 0x20, 0x10,
- 0x07, 0x00, 0xa8, 0x60, 0x01, 0x00, 0x09, 0x48,
- 0x80, 0xb5, 0x40, 0x68, 0x02, 0x1c, 0x0b, 0xe0,
- 0x01, 0x69, 0x00, 0x29, 0x07, 0xd0, 0x82, 0x42,
- 0x04, 0xd0, 0x81, 0x68, 0x05, 0x48, 0x00, 0x88,
- 0xff, 0xf7, 0xe5, 0xfa, 0x80, 0xbd, 0xc0, 0x68,
- 0x00, 0x28, 0xf1, 0xd1, 0x80, 0xbd, 0x7c, 0x5d,
- 0x01, 0x00, 0x2c, 0x74, 0x01, 0x00, 0x3c, 0x00,
- 0x04, 0x37, 0x01, 0x00, 0x05, 0x48, 0x80, 0xb5,
- 0x42, 0x68, 0x00, 0x2a, 0x04, 0xd0, 0x04, 0x48,
- 0x00, 0x88, 0x91, 0x68, 0xff, 0xf7, 0xd2, 0xfa,
- 0x80, 0xbd, 0x00, 0x00, 0x7c, 0x5d, 0x01, 0x00,
- 0x2c, 0x74, 0x01, 0x00, 0x05, 0x48, 0x01, 0x68,
- 0x00, 0x29, 0x04, 0xd0, 0xc0, 0x68, 0x00, 0x28,
- 0x01, 0xd0, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20,
- 0x70, 0x47, 0x00, 0x00, 0x18, 0xd9, 0x01, 0x00,
- 0x3c, 0x00, 0x40, 0x37, 0x01, 0x00, 0x80, 0xb5,
- 0xf6, 0xf7, 0xd1, 0xfa, 0x80, 0xbd, 0x13, 0x1c,
- 0x0d, 0x4a, 0xb0, 0xb5, 0x12, 0x88, 0x90, 0x42,
- 0x0f, 0xd2, 0x03, 0x29, 0x0d, 0xd2, 0x0a, 0x4a,
- 0xc0, 0x00, 0x14, 0x58, 0x0a, 0x4d, 0xac, 0x42,
- 0x07, 0xd1, 0x13, 0x50, 0x0c, 0x23, 0x59, 0x43,
- 0x08, 0x4b, 0xc9, 0x18, 0x80, 0x18, 0x41, 0x60,
- 0xb0, 0xbd, 0x02, 0x21, 0x80, 0x20, 0xed, 0xf7,
- 0x94, 0xfd, 0x3c, 0x00, 0x7c, 0x37, 0x01, 0x00,
- 0xb0, 0xbd, 0x00, 0x00, 0x56, 0x57, 0x01, 0x00,
- 0x84, 0x5d, 0x01, 0x00, 0x09, 0xa0, 0x00, 0x00,
- 0x18, 0xd9, 0x01, 0x00, 0xf8, 0xb5, 0x0f, 0x1c,
- 0x1e, 0x1c, 0x15, 0x1c, 0x04, 0x1c, 0x11, 0x1c,
- 0xff, 0xf7, 0x4a, 0xff, 0x33, 0x1c, 0x2a, 0x1c,
- 0x39, 0x1c, 0x20, 0x1c, 0xf4, 0xf7, 0x8a, 0xff,
- 0xf8, 0xbd, 0x00, 0x00, 0xf7, 0xb5, 0x94, 0x46,
- 0xff, 0x29, 0x21, 0xd0, 0x3c, 0x00, 0xb8, 0x37,
- 0x01, 0x00, 0x15, 0x48, 0x00, 0x88, 0x81, 0x42,
- 0x21, 0xd2, 0x14, 0x4a, 0x15, 0x4e, 0xc8, 0x00,
- 0x85, 0x18, 0xb4, 0x79, 0x68, 0x68, 0x02, 0x68,
- 0x00, 0x2a, 0x03, 0xd1, 0x03, 0x1d, 0x0c, 0xcb,
- 0x9a, 0x42, 0x11, 0xd0, 0x43, 0x68, 0x9a, 0x68,
- 0x42, 0x60, 0x0e, 0x4a, 0x17, 0x69, 0x01, 0x37,
- 0x17, 0x61, 0xb4, 0x71, 0x00, 0x22, 0x02, 0x60,
- 0x00, 0x98, 0xd8, 0x60, 0x60, 0x46, 0x3c, 0x00,
- 0xf4, 0x37, 0x01, 0x00, 0x18, 0x60, 0x19, 0x74,
- 0x28, 0x68, 0x58, 0x60, 0xfe, 0xbd, 0xb4, 0x71,
- 0x06, 0x21, 0x00, 0xe0, 0x07, 0x21, 0x80, 0x20,
- 0xed, 0xf7, 0x4c, 0xfd, 0xf6, 0xe7, 0x00, 0x00,
- 0x56, 0x57, 0x01, 0x00, 0x84, 0x5d, 0x01, 0x00,
- 0x20, 0x10, 0x07, 0x00, 0xa8, 0x60, 0x01, 0x00,
- 0xb0, 0xb5, 0x14, 0x4d, 0x6c, 0x68, 0x00, 0x2c,
- 0x01, 0xd0, 0x84, 0x42, 0x04, 0xd0, 0x0c, 0x21,
- 0x3c, 0x00, 0x30, 0x38, 0x01, 0x00, 0x80, 0x20,
- 0xed, 0xf7, 0x37, 0xfd, 0xb0, 0xbd, 0xff, 0xf7,
- 0xb8, 0xfa, 0xa1, 0x68, 0x40, 0x1a, 0x0d, 0x49,
- 0x88, 0x42, 0x03, 0xda, 0x10, 0x21, 0x80, 0x20,
- 0xed, 0xf7, 0x2b, 0xfd, 0x21, 0x79, 0x22, 0x68,
- 0x01, 0x20, 0xff, 0xf7, 0xac, 0xff, 0xe3, 0x68,
- 0x6b, 0x60, 0x00, 0x2b, 0x05, 0xd0, 0x07, 0x48,
- 0x06, 0x4a, 0x00, 0x88, 0x99, 0x68, 0xff, 0xf7,
- 0xfe, 0xfa, 0x3c, 0x00, 0x6c, 0x38, 0x01, 0x00,
- 0x28, 0x68, 0xe0, 0x60, 0x2c, 0x60, 0xb0, 0xbd,
- 0x7c, 0x5d, 0x01, 0x00, 0x18, 0xfc, 0xff, 0xff,
- 0x21, 0x38, 0x01, 0x00, 0x2c, 0x74, 0x01, 0x00,
- 0xb0, 0xb5, 0x15, 0x4c, 0x08, 0x20, 0x21, 0x1c,
- 0x80, 0x31, 0x08, 0x70, 0x13, 0x4a, 0x41, 0x04,
- 0x11, 0x60, 0x13, 0x48, 0x00, 0x68, 0x13, 0x4d,
- 0x6b, 0x69, 0x18, 0x40, 0x01, 0xd1, 0x10, 0x20,
- 0x00, 0xe0, 0x00, 0x20, 0x3c, 0x00, 0xa8, 0x38,
- 0x01, 0x00, 0xa8, 0x23, 0x5b, 0x5d, 0x18, 0x43,
- 0x23, 0x1c, 0x40, 0x33, 0x18, 0x73, 0x51, 0x60,
- 0x20, 0x78, 0x80, 0x08, 0x80, 0x00, 0x20, 0x70,
- 0x00, 0x20, 0xff, 0xf7, 0x12, 0xfb, 0xff, 0xf7,
- 0x72, 0xfa, 0x64, 0x30, 0x28, 0x66, 0x01, 0x38,
- 0xa0, 0x61, 0x20, 0x78, 0x03, 0x21, 0x08, 0x43,
- 0x20, 0x70, 0xb0, 0xbd, 0x00, 0x00, 0x00, 0x90,
- 0x07, 0x00, 0x00, 0x10, 0x07, 0x00, 0x3c, 0x00,
- 0xe4, 0x38, 0x01, 0x00, 0x10, 0x00, 0x07, 0x00,
- 0xa4, 0x6c, 0x01, 0x00, 0x38, 0xb5, 0x0a, 0x4c,
- 0x21, 0x1c, 0x20, 0x31, 0x8a, 0x79, 0x00, 0xab,
- 0x1a, 0x70, 0xc9, 0x79, 0x07, 0x4d, 0x59, 0x70,
- 0x69, 0x78, 0x88, 0x42, 0x03, 0xd1, 0xf8, 0xf7,
- 0x13, 0xfc, 0xff, 0x20, 0x68, 0x70, 0x00, 0xab,
- 0x18, 0x88, 0xe0, 0x84, 0x38, 0xbd, 0x00, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0x4c, 0x7b, 0x01, 0x00,
- 0x3c, 0x00, 0x20, 0x39, 0x01, 0x00, 0xf8, 0xb5,
- 0x0b, 0x1c, 0x06, 0x1c, 0x04, 0x1d, 0x7f, 0x33,
- 0x14, 0xd0, 0x33, 0x68, 0x5d, 0x18, 0x35, 0x60,
- 0x23, 0x88, 0x1f, 0x18, 0x06, 0x23, 0xff, 0x56,
- 0xeb, 0x1b, 0x33, 0x60, 0x23, 0x88, 0x18, 0x18,
- 0x81, 0x71, 0x20, 0x88, 0x01, 0x30, 0x00, 0x04,
- 0x00, 0x0c, 0x20, 0x80, 0x90, 0x42, 0x01, 0xd3,
- 0x00, 0x20, 0x20, 0x80, 0x10, 0x1c, 0x31, 0x68,
- 0xec, 0xf7, 0x3c, 0x00, 0x5c, 0x39, 0x01, 0x00,
- 0x6d, 0xfe, 0xf8, 0xbd, 0x0e, 0x49, 0x0a, 0x7c,
- 0x83, 0x78, 0x1a, 0x43, 0x0a, 0x74, 0x42, 0x78,
- 0x83, 0x78, 0x9a, 0x43, 0x0b, 0x7c, 0x93, 0x43,
- 0x0b, 0x74, 0x8a, 0x7c, 0x43, 0x78, 0x1a, 0x43,
- 0x8a, 0x74, 0x8a, 0x7c, 0x03, 0x78, 0x9a, 0x43,
- 0x8a, 0x74, 0x02, 0x78, 0x43, 0x78, 0x1a, 0x43,
- 0x4b, 0x7c, 0x1a, 0x43, 0x4a, 0x74, 0x4a, 0x7c,
- 0xc0, 0x78, 0x82, 0x43, 0x3c, 0x00, 0x98, 0x39,
- 0x01, 0x00, 0x4a, 0x74, 0x70, 0x47, 0x10, 0x00,
- 0x07, 0x00, 0xb0, 0xb5, 0x06, 0x4d, 0x00, 0x24,
- 0x20, 0x06, 0x00, 0x0e, 0xed, 0xf7, 0xf7, 0xf8,
- 0xa1, 0x00, 0x69, 0x58, 0x08, 0x71, 0x01, 0x34,
- 0x04, 0x2c, 0xf5, 0xdb, 0xb0, 0xbd, 0x10, 0x7b,
- 0x01, 0x00, 0x0b, 0x48, 0x0c, 0x49, 0x7d, 0x23,
- 0x42, 0x69, 0xdb, 0x00, 0x00, 0x2a, 0xc8, 0x6b,
- 0x07, 0xd0, 0xc0, 0x18, 0x1a, 0x01, 0x3c, 0x00,
- 0xd4, 0x39, 0x01, 0x00, 0x90, 0x42, 0xc8, 0x63,
- 0x01, 0xd9, 0x07, 0x48, 0xc8, 0x63, 0x70, 0x47,
- 0xff, 0x38, 0xf5, 0x38, 0xc8, 0x63, 0x98, 0x42,
- 0xf9, 0xd2, 0xcb, 0x63, 0x70, 0x47, 0x00, 0x00,
- 0xf4, 0x68, 0x01, 0x00, 0x44, 0x7d, 0x01, 0x00,
- 0x70, 0x17, 0x00, 0x00, 0x70, 0xb5, 0x0d, 0x1c,
- 0x04, 0x1c, 0x16, 0x1c, 0xfb, 0xf7, 0xf6, 0xfa,
- 0xb0, 0x43, 0x28, 0x43, 0x01, 0x1c, 0x20, 0x1c,
- 0x3c, 0x00, 0x10, 0x3a, 0x01, 0x00, 0x00, 0xf0,
- 0xcc, 0xfa, 0x70, 0xbd, 0x00, 0x00, 0x80, 0xb5,
- 0x0b, 0x4a, 0x00, 0x29, 0x09, 0xd0, 0x02, 0x29,
- 0x0f, 0xd1, 0x01, 0x1c, 0x08, 0x48, 0xd2, 0x78,
- 0x38, 0x30, 0xff, 0xf7, 0x78, 0xff, 0x06, 0x49,
- 0x06, 0xe0, 0x01, 0x1c, 0x04, 0x48, 0x12, 0x79,
- 0x20, 0x30, 0xff, 0xf7, 0x70, 0xff, 0x03, 0x49,
- 0x08, 0x60, 0x80, 0xbd, 0x00, 0x00, 0xac, 0x7c,
- 0x01, 0x00, 0x3c, 0x00, 0x4c, 0x3a, 0x01, 0x00,
- 0xc8, 0x67, 0x01, 0x00, 0xc4, 0x67, 0x01, 0x00,
- 0x80, 0xb5, 0x0b, 0x4a, 0x00, 0x29, 0x09, 0xd0,
- 0x02, 0x29, 0x0f, 0xd1, 0x01, 0x1c, 0x08, 0x48,
- 0x52, 0x79, 0x68, 0x30, 0xff, 0xf7, 0x5a, 0xff,
- 0x06, 0x49, 0x06, 0xe0, 0x01, 0x1c, 0x04, 0x48,
- 0x92, 0x79, 0x50, 0x30, 0xff, 0xf7, 0x52, 0xff,
- 0x03, 0x49, 0x08, 0x60, 0x80, 0xbd, 0x00, 0x00,
- 0xac, 0x7c, 0x01, 0x00, 0x3c, 0x00, 0x88, 0x3a,
- 0x01, 0x00, 0xd0, 0x67, 0x01, 0x00, 0xcc, 0x67,
- 0x01, 0x00, 0x08, 0xb5, 0x04, 0x21, 0x00, 0x91,
- 0x81, 0x7e, 0x43, 0x68, 0x03, 0x29, 0x06, 0xd1,
- 0x01, 0x1c, 0x0c, 0x31, 0x01, 0x20, 0x6a, 0x46,
- 0xec, 0xf7, 0x9a, 0xfc, 0x08, 0xbd, 0x19, 0x68,
- 0xc1, 0x60, 0xfb, 0xe7, 0x00, 0x00, 0x10, 0xb5,
- 0x03, 0x1c, 0x00, 0x20, 0x08, 0x4c, 0x00, 0x21,
- 0xca, 0x00, 0x12, 0x19, 0x92, 0x78, 0x3c, 0x00,
- 0xc4, 0x3a, 0x01, 0x00, 0x9a, 0x42, 0x03, 0xd1,
- 0xc8, 0x00, 0x00, 0x19, 0x40, 0x68, 0x10, 0xbd,
- 0x01, 0x31, 0x09, 0x06, 0x09, 0x16, 0x06, 0x29,
- 0xf1, 0xdb, 0x10, 0xbd, 0xcc, 0x5a, 0x01, 0x00,
- 0xf8, 0xb5, 0x0f, 0x1c, 0x16, 0x1c, 0x00, 0x25,
- 0xfe, 0xf7, 0x8e, 0xf9, 0x04, 0x1c, 0x0a, 0xd0,
- 0x4a, 0x20, 0x00, 0x5d, 0x05, 0x28, 0x06, 0xd1,
- 0x38, 0x1c, 0xf1, 0xf7, 0x81, 0xfe, 0x00, 0x28,
- 0x3c, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x01, 0xd0,
- 0x01, 0x25, 0x34, 0x60, 0x28, 0x1c, 0xf8, 0xbd,
- 0x00, 0x00, 0x70, 0xb5, 0x0d, 0x1c, 0x16, 0x1c,
- 0x00, 0x24, 0xfe, 0xf7, 0x78, 0xf9, 0x00, 0x28,
- 0x0b, 0xd0, 0x4a, 0x21, 0x09, 0x5c, 0x05, 0x29,
- 0x07, 0xd1, 0x01, 0x69, 0x00, 0x29, 0x04, 0xd1,
- 0x30, 0x60, 0xf1, 0xf7, 0x04, 0xfd, 0x01, 0x24,
- 0x28, 0x60, 0x20, 0x1c, 0x70, 0xbd, 0xf8, 0xb5,
- 0x06, 0x1c, 0x3c, 0x00, 0x3c, 0x3b, 0x01, 0x00,
- 0x00, 0x25, 0x0c, 0x1c, 0x08, 0x1c, 0xf1, 0xf7,
- 0x5d, 0xfe, 0x00, 0x28, 0x01, 0xd0, 0x00, 0x21,
- 0x05, 0xe0, 0x20, 0x1c, 0xf1, 0xf7, 0x74, 0xfe,
- 0x00, 0x28, 0x14, 0xd0, 0x01, 0x21, 0x30, 0x1c,
- 0xf4, 0xf7, 0x80, 0xfb, 0x00, 0x90, 0x00, 0x28,
- 0x0d, 0xd0, 0x08, 0x4f, 0x01, 0x25, 0x06, 0x22,
- 0x31, 0x1c, 0x38, 0x1c, 0xec, 0xf7, 0xc2, 0xfc,
- 0x06, 0x22, 0x21, 0x1c, 0x3c, 0x00, 0x78, 0x3b,
- 0x01, 0x00, 0xb8, 0x18, 0xec, 0xf7, 0xbd, 0xfc,
- 0x00, 0x98, 0xf8, 0x60, 0x28, 0x1c, 0xf8, 0xbd,
- 0x00, 0x00, 0x70, 0x7c, 0x01, 0x00, 0x00, 0x21,
- 0x00, 0x28, 0x06, 0xd0, 0x42, 0x78, 0x07, 0x2a,
- 0x03, 0xd1, 0xc0, 0x79, 0x01, 0x28, 0x00, 0xd1,
- 0x01, 0x21, 0x08, 0x1c, 0x70, 0x47, 0xf8, 0xb5,
- 0x05, 0x1c, 0x00, 0x27, 0x16, 0x4e, 0xf1, 0xf7,
- 0x28, 0xfe, 0x00, 0x28, 0x07, 0xd0, 0x3c, 0x00,
- 0xb4, 0x3b, 0x01, 0x00, 0xf1, 0xf7, 0xc0, 0xfb,
- 0x00, 0x28, 0x10, 0xd1, 0x00, 0x24, 0xf1, 0xf7,
- 0xbb, 0xfc, 0x06, 0xe0, 0xf1, 0xf7, 0x02, 0xfe,
- 0x00, 0x28, 0x08, 0xd0, 0x01, 0x24, 0xf1, 0xf7,
- 0x99, 0xfd, 0x01, 0x1c, 0x06, 0x22, 0x30, 0x1c,
- 0xec, 0xf7, 0x8e, 0xfc, 0x01, 0x27, 0x00, 0x2f,
- 0x0d, 0xd0, 0x21, 0x1c, 0x28, 0x1c, 0xf4, 0xf7,
- 0x3b, 0xfb, 0x01, 0x1c, 0x05, 0x48, 0x06, 0x22,
- 0x3c, 0x00, 0xf0, 0x3b, 0x01, 0x00, 0x06, 0x38,
- 0xc1, 0x60, 0x29, 0x1c, 0xec, 0xf7, 0x7f, 0xfc,
- 0x01, 0x20, 0xf8, 0xbd, 0x00, 0x20, 0xfc, 0xe7,
- 0x00, 0x00, 0x76, 0x7c, 0x01, 0x00, 0xf0, 0xb5,
- 0x07, 0x1c, 0x00, 0x68, 0x02, 0x21, 0x04, 0x68,
- 0x78, 0x69, 0x87, 0xb0, 0x01, 0x40, 0x00, 0x25,
- 0x00, 0x29, 0x05, 0x91, 0x74, 0x4e, 0x12, 0xd0,
- 0x22, 0x88, 0x01, 0x21, 0x13, 0x05, 0x02, 0xd4,
- 0xc0, 0x07, 0x3c, 0x00, 0x2c, 0x3c, 0x01, 0x00,
- 0xc1, 0x17, 0x01, 0x31, 0x6f, 0x48, 0x00, 0x29,
- 0x00, 0x68, 0x01, 0xd0, 0x01, 0x30, 0x04, 0xe0,
- 0x11, 0x06, 0x89, 0x0e, 0x2d, 0x29, 0x01, 0xd1,
- 0x03, 0x30, 0x30, 0x60, 0x20, 0x88, 0x80, 0x07,
- 0x67, 0xd1, 0x78, 0x69, 0xc0, 0x07, 0x64, 0xd5,
- 0x03, 0xaa, 0x04, 0xa9, 0x20, 0x1c, 0xf7, 0xf7,
- 0x4b, 0xfb, 0x00, 0xab, 0x18, 0x7c, 0x00, 0x28,
- 0x07, 0xd0, 0x18, 0x7c, 0x3c, 0x00, 0x68, 0x3c,
- 0x01, 0x00, 0x02, 0x28, 0x58, 0xd1, 0x18, 0x7b,
- 0x40, 0x07, 0x40, 0x0f, 0x04, 0x28, 0x53, 0xd8,
- 0x20, 0x79, 0x05, 0x99, 0xc0, 0x07, 0xc0, 0x17,
- 0x01, 0x30, 0x02, 0x90, 0x00, 0x29, 0x02, 0xd1,
- 0x02, 0x98, 0x00, 0x28, 0x48, 0xd1, 0x05, 0x99,
- 0x00, 0x29, 0x04, 0xd0, 0x20, 0x88, 0x00, 0x05,
- 0x01, 0xd4, 0x00, 0x20, 0x30, 0x60, 0xc0, 0x20,
- 0xed, 0xf7, 0xcb, 0xfd, 0x05, 0x1c, 0x3c, 0x00,
- 0xa4, 0x3c, 0x01, 0x00, 0x20, 0x1c, 0x0a, 0x30,
- 0x06, 0x90, 0xfe, 0xf7, 0xad, 0xf8, 0x06, 0x1c,
- 0x28, 0x1c, 0x08, 0x30, 0x23, 0x88, 0x02, 0x1d,
- 0x11, 0x1d, 0xdb, 0x05, 0x06, 0xd5, 0x06, 0x9b,
- 0x03, 0x60, 0x20, 0x1c, 0x10, 0x30, 0x10, 0x60,
- 0x20, 0x1d, 0x0e, 0xe0, 0x23, 0x1d, 0x13, 0x60,
- 0x22, 0x88, 0x92, 0x05, 0x05, 0xd5, 0x22, 0x1c,
- 0x10, 0x32, 0x02, 0x60, 0x06, 0x9b, 0x0b, 0x60,
- 0x3c, 0x00, 0xe0, 0x3c, 0x01, 0x00, 0x04, 0xe0,
- 0x06, 0x9b, 0x03, 0x60, 0x20, 0x1c, 0x10, 0x30,
- 0x08, 0x60, 0x28, 0x69, 0xf1, 0xf7, 0x43, 0xfc,
- 0x00, 0x28, 0x08, 0xd0, 0x01, 0x28, 0x12, 0xd0,
- 0x02, 0x28, 0x58, 0xd1, 0x00, 0xab, 0x18, 0x7c,
- 0x00, 0x28, 0x54, 0xd1, 0x12, 0xe0, 0x00, 0xab,
- 0x18, 0x7c, 0x02, 0x28, 0x0b, 0xd1, 0x00, 0x2e,
- 0x4d, 0xd0, 0x4b, 0x20, 0x80, 0x5d, 0x02, 0x28,
- 0x49, 0xd1, 0x3c, 0x00, 0x1c, 0x3d, 0x01, 0x00,
- 0x07, 0xe0, 0x63, 0xe0, 0x00, 0xab, 0x18, 0x7c,
- 0x00, 0x28, 0x02, 0xd1, 0x38, 0x1c, 0xfe, 0xf7,
- 0x1b, 0xff, 0x20, 0x88, 0x41, 0x04, 0x30, 0x48,
- 0x11, 0xd5, 0x00, 0x2e, 0x52, 0xd0, 0x00, 0xab,
- 0x19, 0x7c, 0x00, 0x29, 0x26, 0xd0, 0x02, 0x99,
- 0x00, 0x29, 0x02, 0xd0, 0xb0, 0x6a, 0x00, 0x78,
- 0x00, 0xe0, 0x00, 0x78, 0x01, 0x28, 0x1d, 0xd0,
- 0x03, 0x28, 0x43, 0xd1, 0x3c, 0x00, 0x58, 0x3d,
- 0x01, 0x00, 0x1a, 0xe0, 0x00, 0xab, 0x19, 0x7c,
- 0x02, 0x29, 0x16, 0xd1, 0x19, 0x7b, 0x04, 0x29,
- 0x13, 0xd0, 0x19, 0x7b, 0x0c, 0x29, 0x10, 0xd0,
- 0x22, 0x49, 0x09, 0x68, 0x00, 0x29, 0x0c, 0xd0,
- 0x00, 0x2e, 0x0a, 0xd0, 0x02, 0x99, 0x00, 0x29,
- 0x02, 0xd0, 0xb0, 0x6a, 0x00, 0x78, 0x00, 0xe0,
- 0x00, 0x78, 0x01, 0x28, 0x29, 0xd0, 0x03, 0x28,
- 0x27, 0xd0, 0x28, 0x22, 0x39, 0x1c, 0x3c, 0x00,
- 0x94, 0x3d, 0x01, 0x00, 0x28, 0x1c, 0x88, 0x30,
- 0xec, 0xf7, 0x0a, 0xfc, 0x00, 0xab, 0x19, 0x7c,
- 0x28, 0x1c, 0x80, 0x30, 0x01, 0x71, 0x19, 0x7b,
- 0x41, 0x71, 0x6c, 0x60, 0x6e, 0x61, 0x1b, 0xe0,
- 0x05, 0x99, 0x00, 0x29, 0x14, 0xd0, 0x11, 0x48,
- 0x84, 0x6c, 0x00, 0x2c, 0x10, 0xd0, 0x00, 0x22,
- 0x00, 0x2e, 0x04, 0xd0, 0x40, 0x36, 0xb0, 0x7a,
- 0x05, 0x28, 0x00, 0xd1, 0x01, 0x22, 0x00, 0x92,
- 0x3c, 0x00, 0xd0, 0x3d, 0x01, 0x00, 0xf8, 0x7a,
- 0xba, 0x7a, 0x29, 0x69, 0xc3, 0x07, 0xdb, 0x0f,
- 0x06, 0x98, 0xec, 0xf7, 0x00, 0xfb, 0x28, 0x1c,
- 0xed, 0xf7, 0x07, 0xfd, 0x00, 0x25, 0x28, 0x1c,
- 0x07, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0xc4, 0x6a,
- 0x01, 0x00, 0x68, 0x61, 0x01, 0x00, 0x28, 0x61,
- 0x01, 0x00, 0xc4, 0x69, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x20, 0xff, 0xf7, 0x70, 0xf8, 0x80, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x3e, 0x01, 0x00,
- 0xb0, 0xb5, 0x1d, 0x4d, 0x01, 0x28, 0x17, 0xd0,
- 0xa2, 0x28, 0x06, 0xd0, 0xa3, 0x28, 0x03, 0xd1,
- 0x01, 0x21, 0x15, 0x20, 0xff, 0xf7, 0x08, 0xfc,
- 0xb0, 0xbd, 0x00, 0x29, 0x01, 0xd1, 0x17, 0x48,
- 0x02, 0xe0, 0x7d, 0x20, 0xc0, 0x00, 0x48, 0x43,
- 0x00, 0x23, 0x01, 0x22, 0x01, 0x1c, 0x28, 0x60,
- 0x15, 0x20, 0xff, 0xf7, 0xa7, 0xfc, 0xb0, 0xbd,
- 0x01, 0x29, 0x04, 0xd0, 0x3c, 0x00, 0x48, 0x3e,
- 0x01, 0x00, 0x02, 0x29, 0xfa, 0xd1, 0x00, 0xf0,
- 0x2a, 0xf8, 0xb0, 0xbd, 0x6c, 0x68, 0xf5, 0xf7,
- 0xde, 0xfc, 0xfe, 0xf7, 0xa8, 0xff, 0x68, 0x60,
- 0x00, 0x2c, 0x09, 0xd0, 0x29, 0x68, 0x0a, 0x23,
- 0x59, 0x43, 0x00, 0x1b, 0x88, 0x42, 0x03, 0xd9,
- 0x01, 0x21, 0x15, 0x20, 0xed, 0xf7, 0x17, 0xfa,
- 0x01, 0x22, 0x15, 0x20, 0x29, 0x68, 0xff, 0xf7,
- 0xa6, 0xfb, 0xb0, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x3e, 0x01, 0x00, 0x04, 0x79, 0x01, 0x00,
- 0x00, 0x87, 0x93, 0x03, 0x01, 0x20, 0x04, 0x49,
- 0x40, 0x03, 0x80, 0xb5, 0x08, 0x60, 0x03, 0x21,
- 0x15, 0x20, 0xed, 0xf7, 0x03, 0xfa, 0x80, 0xbd,
- 0x00, 0x10, 0x07, 0x00, 0x07, 0x48, 0x80, 0xb5,
- 0xbe, 0x21, 0x01, 0x73, 0x01, 0x7a, 0x10, 0x22,
- 0x11, 0x43, 0x01, 0x72, 0x00, 0x23, 0x02, 0x22,
- 0x15, 0x20, 0x03, 0x49, 0xff, 0xf7, 0x68, 0xfc,
- 0x3c, 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x80, 0xbd,
- 0x00, 0x00, 0x00, 0x03, 0x07, 0x00, 0x80, 0x9f,
- 0xd5, 0x00, 0x80, 0xb5, 0x00, 0x28, 0x03, 0xd0,
- 0x0a, 0x1c, 0x15, 0x21, 0xa2, 0x20, 0x02, 0xe0,
- 0x00, 0x22, 0x15, 0x21, 0xa3, 0x20, 0xff, 0xf7,
- 0x66, 0xfc, 0x80, 0xbd, 0x00, 0x00, 0x10, 0xb5,
- 0x00, 0xf0, 0x19, 0xf8, 0x0a, 0x48, 0xbe, 0x21,
- 0x01, 0x73, 0x03, 0x7a, 0x10, 0x22, 0x93, 0x43,
- 0x01, 0x24, 0x3c, 0x00, 0xfc, 0x3e, 0x01, 0x00,
- 0x23, 0x43, 0x03, 0x72, 0x01, 0x73, 0x01, 0x7a,
- 0x91, 0x43, 0x20, 0x22, 0x11, 0x43, 0x01, 0x72,
- 0x02, 0x22, 0x15, 0x20, 0x02, 0x49, 0xff, 0xf7,
- 0x5b, 0xfb, 0x10, 0xbd, 0x00, 0x03, 0x07, 0x00,
- 0x80, 0x9f, 0xd5, 0x00, 0x80, 0xb5, 0x02, 0x21,
- 0x15, 0x20, 0xff, 0xf7, 0x85, 0xfb, 0x04, 0x48,
- 0xbe, 0x21, 0x01, 0x73, 0x01, 0x7a, 0x11, 0x22,
- 0x91, 0x43, 0x01, 0x72, 0x3c, 0x00, 0x38, 0x3f,
- 0x01, 0x00, 0x80, 0xbd, 0x00, 0x00, 0x00, 0x03,
- 0x07, 0x00, 0xf8, 0xb5, 0x06, 0x1c, 0x05, 0x1c,
- 0x60, 0x36, 0x00, 0x27, 0x44, 0x68, 0x22, 0xe0,
- 0x08, 0x21, 0x00, 0x20, 0xed, 0xf7, 0x41, 0xfb,
- 0x60, 0x61, 0x01, 0x89, 0x04, 0x39, 0x09, 0x04,
- 0x09, 0x0c, 0x01, 0x81, 0x60, 0x69, 0x00, 0x68,
- 0x40, 0x18, 0x04, 0x21, 0xed, 0xf7, 0x35, 0xfb,
- 0xe0, 0x61, 0x60, 0x69, 0x71, 0x7b, 0x3c, 0x00,
- 0x74, 0x3f, 0x01, 0x00, 0x00, 0x68, 0x89, 0x01,
- 0xc1, 0x70, 0x29, 0x69, 0x0c, 0x31, 0x03, 0x22,
- 0xec, 0xf7, 0xba, 0xfa, 0x28, 0x69, 0x0c, 0x30,
- 0x01, 0x68, 0x01, 0x31, 0x01, 0x60, 0x25, 0x62,
- 0xa7, 0x61, 0x24, 0x68, 0x00, 0x2c, 0xda, 0xd1,
- 0x02, 0x49, 0x03, 0x48, 0x6a, 0x68, 0xf6, 0xf7,
- 0xb3, 0xf8, 0xf8, 0xbd, 0xfd, 0x6b, 0x00, 0x00,
- 0xa0, 0x6a, 0x01, 0x00, 0x80, 0xb5, 0x00, 0x07,
- 0x3c, 0x00, 0xb0, 0x3f, 0x01, 0x00, 0x00, 0x09,
- 0x09, 0x02, 0x09, 0x0a, 0x08, 0x43, 0x02, 0x49,
- 0x08, 0x60, 0xff, 0xf7, 0x20, 0xff, 0x80, 0xbd,
- 0x00, 0x00, 0x60, 0x00, 0x07, 0x00, 0x08, 0x00,
- 0x14, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xe8, 0x03,
- 0x00, 0x00, 0x10, 0x00, 0x14, 0x00, 0xc8, 0x00,
- 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x1c, 0x00,
- 0x14, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xe8, 0x03,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0x3f, 0x01, 0x00,
- 0x24, 0x01, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00,
- 0xe8, 0x03, 0x00, 0x00, 0x40, 0x06, 0x01, 0x00,
- 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
- 0x41, 0x6e, 0x62, 0x69, 0x7e, 0x64, 0x61, 0x6f,
- 0x6f, 0x00, 0x00, 0x00, 0x52, 0x65, 0x6c, 0x65,
- 0x61, 0x73, 0x65, 0x20, 0x36, 0x5f, 0x37, 0x5f,
- 0x31, 0x35, 0x20, 0x42, 0x75, 0x69, 0x6c, 0x64,
- 0x20, 0x32, 0x3a, 0x35, 0x3c, 0x00, 0x28, 0x40,
- 0x01, 0x00, 0x32, 0x39, 0x38, 0x20, 0x53, 0x65,
- 0x70, 0x20, 0x30, 0x34, 0x20, 0x32, 0x30, 0x30,
- 0x39, 0x20, 0x31, 0x37, 0x3a, 0x31, 0x33, 0x3a,
- 0x32, 0x30, 0x20, 0x28, 0x48, 0x57, 0x3d, 0x34,
- 0x3a, 0x33, 0x2c, 0x42, 0x54, 0x43, 0x4f, 0x45,
- 0x58, 0x29, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
- 0x1c, 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x00,
- 0x64, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xe8, 0x03, 0x70, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0xd0, 0x07, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x7c, 0x15, 0x15, 0x00,
- 0x3c, 0x00, 0xa0, 0x40, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x70, 0x17,
- 0x1e, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
- 0x00, 0x00, 0x28, 0x23, 0x16, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0xf8, 0x2a,
- 0x0b, 0x00, 0x3c, 0x00, 0xdc, 0x40, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
- 0xe0, 0x2e, 0x12, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x18, 0x00, 0x00, 0x00, 0x50, 0x46, 0x0e, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
- 0xf0, 0x55, 0x08, 0x00, 0x3c, 0x00, 0x18, 0x41,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2c, 0x00,
- 0x00, 0x00, 0xc0, 0x5d, 0x0e, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xe8, 0x80,
- 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x42, 0x00,
- 0x00, 0x00, 0xa0, 0x8c, 0x0a, 0x00, 0x3c, 0x00,
- 0x54, 0x41, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x48, 0x00, 0x00, 0x00, 0x80, 0xbb, 0x0a, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
- 0xf0, 0xd2, 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x6c, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x90, 0x00,
- 0x3c, 0x00, 0x90, 0x41, 0x01, 0x00, 0xc0, 0x00,
- 0x90, 0x00, 0xc0, 0x00, 0x90, 0x00, 0x14, 0x00,
- 0x10, 0x00, 0x14, 0x00, 0x10, 0x00, 0xc0, 0x00,
- 0x90, 0x00, 0x14, 0x00, 0x10, 0x00, 0x14, 0x00,
- 0x10, 0x00, 0xc0, 0x00, 0x90, 0x00, 0x14, 0x00,
- 0x10, 0x00, 0xc0, 0x00, 0x90, 0x00, 0x14, 0x00,
- 0x10, 0x00, 0x14, 0x00, 0x10, 0x00, 0x14, 0x00,
- 0x10, 0x00, 0xc0, 0x00, 0x90, 0x00, 0x60, 0x00,
- 0x48, 0x00, 0x3c, 0x00, 0xcc, 0x41, 0x01, 0x00,
- 0x60, 0x00, 0x48, 0x00, 0x14, 0x00, 0x10, 0x00,
- 0x14, 0x00, 0x10, 0x00, 0x60, 0x00, 0x48, 0x00,
- 0x14, 0x00, 0x10, 0x00, 0x14, 0x00, 0x10, 0x00,
- 0x60, 0x00, 0x48, 0x00, 0x14, 0x00, 0x10, 0x00,
- 0x60, 0x00, 0x48, 0x00, 0x14, 0x00, 0x10, 0x00,
- 0x14, 0x00, 0x10, 0x00, 0x14, 0x00, 0x10, 0x00,
- 0x02, 0x00, 0x04, 0x01, 0x0b, 0x02, 0x0c, 0x03,
- 0x12, 0x04, 0x16, 0x05, 0x3c, 0x00, 0x08, 0x42,
- 0x01, 0x00, 0x18, 0x06, 0x00, 0x0e, 0x00, 0x0e,
- 0x24, 0x07, 0x00, 0x0e, 0x2c, 0x08, 0x30, 0x09,
- 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x42, 0x0a,
- 0x00, 0x0e, 0x48, 0x0b, 0x00, 0x0e, 0x00, 0x0e,
- 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x60, 0x0c,
- 0x00, 0x0e, 0x00, 0x0e, 0x6c, 0x0d, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x80, 0xc0, 0xff, 0xff, 0xff, 0x3c, 0x00,
- 0x44, 0x42, 0x01, 0x00, 0xb6, 0xff, 0xff, 0xff,
- 0xd3, 0xff, 0xff, 0xff, 0xc9, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x51, 0xb0, 0x00, 0x00,
- 0x0c, 0x00, 0x00, 0x00, 0x51, 0xb0, 0x00, 0x00,
- 0x0c, 0x00, 0x00, 0x00, 0x59, 0xaf, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0x42, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xa5, 0xaf, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x4d, 0xaf, 0x00, 0x00, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x45, 0xb0, 0x00, 0x00, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xd5, 0xaf, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xad, 0xb0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0x42, 0x01, 0x00,
- 0x95, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x95, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x99, 0xb0, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x42,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x17,
- 0x01, 0x00, 0x35, 0x17, 0x01, 0x00, 0x21, 0x17,
- 0x01, 0x00, 0xd9, 0x9c, 0x00, 0x00, 0x49, 0x17,
- 0x01, 0x00, 0x3d, 0x17, 0x01, 0x00, 0xd1, 0x9c,
- 0x00, 0x00, 0xd1, 0x9c, 0x00, 0x00, 0x1d, 0x1a,
- 0x01, 0x00, 0xd1, 0x9c, 0x00, 0x00, 0x01, 0x1a,
- 0x01, 0x00, 0x31, 0x1a, 0x01, 0x00, 0x25, 0x1a,
- 0x01, 0x00, 0x3d, 0x17, 0x01, 0x00, 0x3c, 0x00,
- 0x34, 0x43, 0x01, 0x00, 0x81, 0x1a, 0x01, 0x00,
- 0xd1, 0x9c, 0x00, 0x00, 0x79, 0x17, 0x01, 0x00,
- 0xd9, 0x9c, 0x00, 0x00, 0x5d, 0x17, 0x01, 0x00,
- 0xa1, 0x17, 0x01, 0x00, 0x95, 0x17, 0x01, 0x00,
- 0x81, 0x17, 0x01, 0x00, 0x21, 0x18, 0x01, 0x00,
- 0xf5, 0x17, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00,
- 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0x43, 0x01, 0x00, 0x02, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x19, 0x1c,
- 0x01, 0x00, 0x89, 0x41, 0x00, 0x00, 0x89, 0x41,
- 0x00, 0x00, 0x85, 0x41, 0x00, 0x00, 0x85, 0x41,
- 0x00, 0x00, 0x85, 0x41, 0x00, 0x00, 0x85, 0x41,
- 0x00, 0x00, 0x89, 0x41, 0x00, 0x00, 0x85, 0x41,
- 0x00, 0x00, 0x85, 0x41, 0x00, 0x00, 0x35, 0x1b,
- 0x01, 0x00, 0x3c, 0x00, 0xac, 0x43, 0x01, 0x00,
- 0x9d, 0x1b, 0x01, 0x00, 0x01, 0x1c, 0x01, 0x00,
- 0x89, 0x41, 0x00, 0x00, 0x89, 0x41, 0x00, 0x00,
- 0x89, 0x41, 0x00, 0x00, 0x85, 0x41, 0x00, 0x00,
- 0x65, 0x18, 0x01, 0x00, 0x29, 0x18, 0x01, 0x00,
- 0x39, 0x18, 0x01, 0x00, 0xbd, 0x18, 0x01, 0x00,
- 0x89, 0x41, 0x00, 0x00, 0x4d, 0x18, 0x01, 0x00,
- 0xa5, 0x18, 0x01, 0x00, 0x85, 0x41, 0x00, 0x00,
- 0x01, 0x19, 0x01, 0x00, 0x3c, 0x00, 0xe8, 0x43,
- 0x01, 0x00, 0xd9, 0x18, 0x01, 0x00, 0xed, 0x18,
- 0x01, 0x00, 0x15, 0x19, 0x01, 0x00, 0x89, 0x41,
- 0x00, 0x00, 0x89, 0x41, 0x00, 0x00, 0x89, 0x41,
- 0x00, 0x00, 0x85, 0x41, 0x00, 0x00, 0x89, 0x41,
- 0x00, 0x00, 0x89, 0x41, 0x00, 0x00, 0x69, 0x1c,
- 0x01, 0x00, 0x89, 0x41, 0x00, 0x00, 0x71, 0x1c,
- 0x01, 0x00, 0x89, 0x41, 0x00, 0x00, 0x89, 0x41,
- 0x00, 0x00, 0xfd, 0xdb, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0x44, 0x01, 0x00, 0x1d, 0x7c, 0x00, 0x00,
- 0x00, 0x00, 0x80, 0x00, 0xf5, 0xda, 0x00, 0x00,
- 0x14, 0x00, 0x81, 0x00, 0xfd, 0xdd, 0x00, 0x00,
- 0x08, 0x00, 0x82, 0x00, 0xc5, 0xdd, 0x00, 0x00,
- 0x38, 0x00, 0x83, 0x00, 0x45, 0xdc, 0x00, 0x00,
- 0x10, 0x00, 0x84, 0x00, 0x99, 0xdc, 0x00, 0x00,
- 0x0c, 0x00, 0x86, 0x00, 0x39, 0xdc, 0x00, 0x00,
- 0x10, 0x00, 0x88, 0x00, 0x11, 0xde, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0x44, 0x01, 0x00, 0x10, 0x00,
- 0x8a, 0x00, 0x35, 0xdd, 0x00, 0x00, 0x0c, 0x00,
- 0x8c, 0x00, 0xad, 0xdf, 0x00, 0x00, 0x1c, 0x00,
- 0x8e, 0x00, 0xc9, 0xde, 0x00, 0x00, 0x38, 0x00,
- 0x8f, 0x00, 0xed, 0xdc, 0x00, 0x00, 0x38, 0x00,
- 0x90, 0x00, 0x75, 0xdf, 0x00, 0x00, 0x0c, 0x00,
- 0x91, 0x00, 0x8d, 0xdc, 0x00, 0x00, 0x0c, 0x00,
- 0x93, 0x00, 0xb9, 0xdd, 0x00, 0x00, 0x0c, 0x00,
- 0x94, 0x00, 0x3c, 0x00, 0x9c, 0x44, 0x01, 0x00,
- 0x00, 0x08, 0x08, 0x08, 0x10, 0x0c, 0x0c, 0x0c,
- 0x08, 0x0c, 0x08, 0x0c, 0x08, 0x0c, 0x08, 0x08,
- 0x08, 0x08, 0x14, 0x08, 0x08, 0x14, 0x00, 0x30,
- 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0xad, 0x30, 0x01, 0x00, 0x15, 0x30, 0x01, 0x00,
- 0x20, 0x30, 0x07, 0x00, 0x30, 0x30, 0x07, 0x00,
- 0x06, 0x07, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0x44,
- 0x01, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
- 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x80, 0xc9, 0x02, 0x00, 0x94, 0x3f,
- 0x03, 0x00, 0xe0, 0x8b, 0x5a, 0x00, 0x05, 0x3a,
- 0x85, 0x00, 0xc8, 0xf2, 0x06, 0x00, 0xf8, 0x4c,
- 0x56, 0x00, 0x20, 0xa7, 0x3d, 0x00, 0xb7, 0x4a,
- 0x00, 0x00, 0xb7, 0x4a, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0x45, 0x01, 0x00, 0x01, 0x01, 0x01, 0x02,
- 0x02, 0x02, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04,
- 0x05, 0x06, 0x00, 0x00, 0x2d, 0x7c, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0x00, 0xfd, 0x95, 0x00, 0x00,
- 0x08, 0x00, 0xff, 0x00, 0xed, 0x97, 0x00, 0x00,
- 0x08, 0x00, 0x82, 0x00, 0xcd, 0x95, 0x00, 0x00,
- 0x0c, 0x00, 0x83, 0x00, 0x4d, 0x96, 0x00, 0x00,
- 0x0c, 0x00, 0x85, 0x00, 0x2d, 0x7c, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0x45, 0x01, 0x00, 0x00, 0x00,
- 0xff, 0x00, 0x2d, 0x7c, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0x00, 0x2d, 0x7c, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0x00, 0x3d, 0x96, 0x00, 0x00, 0x0c, 0x00,
- 0x89, 0x00, 0xd9, 0x97, 0x00, 0x00, 0x08, 0x00,
- 0x8a, 0x00, 0x91, 0x95, 0x00, 0x00, 0x08, 0x00,
- 0xff, 0x00, 0x2d, 0x7c, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0x00, 0x2d, 0x7c, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0x00, 0x3c, 0x00, 0x8c, 0x45, 0x01, 0x00,
- 0xf9, 0x97, 0x00, 0x00, 0x08, 0x00, 0x8d, 0x00,
- 0x2d, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
- 0x2d, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
- 0xc9, 0x97, 0x00, 0x00, 0x30, 0x00, 0x90, 0x00,
- 0x11, 0x95, 0x00, 0x00, 0x18, 0x00, 0x91, 0x00,
- 0x15, 0x96, 0x00, 0x00, 0x08, 0x00, 0x92, 0x00,
- 0x59, 0x95, 0x00, 0x00, 0x3c, 0x00, 0x93, 0x00,
- 0x29, 0x96, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0x45,
- 0x01, 0x00, 0x08, 0x00, 0x94, 0x00, 0xa1, 0x95,
- 0x00, 0x00, 0x08, 0x00, 0x95, 0x00, 0x81, 0x97,
- 0x00, 0x00, 0x0c, 0x00, 0x96, 0x00, 0x6d, 0x97,
- 0x00, 0x00, 0x10, 0x00, 0x98, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x08,
- 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x10,
- 0x08, 0x00, 0x00, 0x08, 0x00, 0x10, 0x3c, 0x00,
- 0x04, 0x46, 0x01, 0x00, 0x08, 0x0c, 0x0c, 0x0c,
- 0x0c, 0x1c, 0x0c, 0x0c, 0x08, 0x00, 0x00, 0x00,
- 0x0d, 0x8b, 0x00, 0x00, 0xf5, 0x8a, 0x00, 0x00,
- 0xe9, 0x8a, 0x00, 0x00, 0x01, 0x8b, 0x00, 0x00,
- 0x14, 0x08, 0x0c, 0x0c, 0x10, 0x0c, 0x00, 0x00,
- 0xb1, 0x98, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
- 0x19, 0x99, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00,
- 0x3d, 0x7c, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0x46, 0x01, 0x00, 0x3d, 0x99,
- 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x09, 0x99,
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x3d, 0x7c,
- 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01,
- 0x04, 0x04, 0x08, 0x08, 0x81, 0x37, 0x80, 0xf3,
- 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, 0xaa, 0xaa,
- 0x03, 0x00, 0x00, 0xf8, 0x6d, 0xa9, 0x6d, 0xa9,
- 0x6e, 0xa9, 0x3c, 0x00, 0x7c, 0x46, 0x01, 0x00,
- 0x6e, 0xa8, 0x6e, 0xa8, 0x6e, 0xa8, 0x6f, 0xa7,
- 0x6f, 0xa7, 0x6f, 0xa7, 0x6f, 0xa6, 0x6f, 0xa6,
- 0x70, 0xa6, 0x70, 0xa5, 0x70, 0xa4, 0x00, 0x00,
- 0xb5, 0x1b, 0x01, 0x00, 0xc9, 0x1b, 0x01, 0x00,
- 0xe1, 0x1b, 0x01, 0x00, 0xe5, 0x9c, 0x00, 0x00,
- 0xa5, 0x1b, 0x01, 0x00, 0xe5, 0x9c, 0x00, 0x00,
- 0x89, 0x1b, 0x01, 0x00, 0xd5, 0x9c, 0x00, 0x00,
- 0xd5, 0x9c, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0x46,
- 0x01, 0x00, 0xd1, 0x1a, 0x01, 0x00, 0xe5, 0x1a,
- 0x01, 0x00, 0x05, 0x1b, 0x01, 0x00, 0x25, 0x1b,
- 0x01, 0x00, 0xb1, 0x1a, 0x01, 0x00, 0xe5, 0x9c,
- 0x00, 0x00, 0x9d, 0x1a, 0x01, 0x00, 0xd5, 0x9c,
- 0x00, 0x00, 0xc1, 0x1a, 0x01, 0x00, 0x89, 0x19,
- 0x01, 0x00, 0xa9, 0x19, 0x01, 0x00, 0xc9, 0x19,
- 0x01, 0x00, 0xf1, 0x19, 0x01, 0x00, 0x79, 0x19,
- 0x01, 0x00, 0xe5, 0x9c, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0x46, 0x01, 0x00, 0x65, 0x19, 0x01, 0x00,
- 0xd5, 0x9c, 0x00, 0x00, 0xd5, 0x9c, 0x00, 0x00,
- 0xd5, 0x9c, 0x00, 0x00, 0xd5, 0x9c, 0x00, 0x00,
- 0xd5, 0x9c, 0x00, 0x00, 0xd5, 0x9c, 0x00, 0x00,
- 0xd5, 0x9c, 0x00, 0x00, 0x55, 0x1c, 0x01, 0x00,
- 0x45, 0x1c, 0x01, 0x00, 0x45, 0x1c, 0x01, 0x00,
- 0xd5, 0x9c, 0x00, 0x00, 0xd5, 0x9c, 0x00, 0x00,
- 0xd5, 0x9c, 0x00, 0x00, 0xd5, 0x9c, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0x47, 0x01, 0x00, 0xd5, 0x9c,
- 0x00, 0x00, 0x55, 0x19, 0x01, 0x00, 0xe5, 0x9c,
- 0x00, 0x00, 0x41, 0x19, 0x01, 0x00, 0x31, 0x19,
- 0x01, 0x00, 0xd5, 0x9c, 0x00, 0x00, 0x02, 0x05,
- 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x0a, 0x00,
- 0x00, 0x00, 0xc5, 0x20, 0x00, 0x00, 0x21, 0x21,
- 0x00, 0x00, 0x25, 0x21, 0x00, 0x00, 0x39, 0x21,
- 0x00, 0x00, 0x49, 0x21, 0x00, 0x00, 0x55, 0x21,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0x47, 0x01, 0x00,
- 0x61, 0x21, 0x00, 0x00, 0xed, 0x21, 0x00, 0x00,
- 0x0d, 0x22, 0x00, 0x00, 0x21, 0x22, 0x00, 0x00,
- 0x3d, 0x22, 0x00, 0x00, 0x49, 0x22, 0x00, 0x00,
- 0xc5, 0x22, 0x00, 0x00, 0xe1, 0x22, 0x00, 0x00,
- 0xf5, 0x22, 0x00, 0x00, 0xe9, 0x1f, 0x00, 0x00,
- 0xe9, 0x1f, 0x00, 0x00, 0xe9, 0x1f, 0x00, 0x00,
- 0xe9, 0x1f, 0x00, 0x00, 0xe9, 0x1f, 0x00, 0x00,
- 0x11, 0x23, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0x47,
- 0x01, 0x00, 0x1d, 0x23, 0x00, 0x00, 0x89, 0x23,
- 0x00, 0x00, 0xa5, 0x23, 0x00, 0x00, 0xb9, 0x23,
- 0x00, 0x00, 0x11, 0x20, 0x00, 0x00, 0x1d, 0x20,
- 0x00, 0x00, 0x6d, 0x20, 0x00, 0x00, 0x8d, 0x20,
- 0x00, 0x00, 0xb9, 0x20, 0x00, 0x00, 0x00, 0x01,
- 0x02, 0x03, 0x03, 0x05, 0x06, 0x06, 0x08, 0x09,
- 0x08, 0x09, 0x09, 0x09, 0xc4, 0x80, 0xca, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0xd0, 0x80, 0x3c, 0x00,
- 0xe4, 0x47, 0x01, 0x00, 0xd6, 0xd9, 0xdc, 0xdf,
- 0xe2, 0x80, 0x80, 0x80, 0xe5, 0xe8, 0x80, 0x80,
- 0x80, 0x80, 0xeb, 0xee, 0xf1, 0xf4, 0xf7, 0xfa,
- 0xfd, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00,
- 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00,
- 0x08, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0b, 0x00,
- 0x0c, 0x00, 0x0e, 0x00, 0x10, 0x00, 0x11, 0x00,
- 0x13, 0x00, 0x16, 0x00, 0x18, 0x00, 0x1b, 0x00,
- 0x3c, 0x00, 0x20, 0x48, 0x01, 0x00, 0x1e, 0x00,
- 0x22, 0x00, 0x26, 0x00, 0x2b, 0x00, 0x30, 0x00,
- 0x36, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x4c, 0x00,
- 0x55, 0x00, 0x5f, 0x00, 0x6b, 0x00, 0x78, 0x00,
- 0x86, 0x00, 0x97, 0x00, 0xa9, 0x00, 0xbe, 0x00,
- 0xd5, 0x00, 0xef, 0x00, 0xff, 0x7f, 0x0c, 0x00,
- 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0xfe, 0xff,
- 0xfc, 0xff, 0xfb, 0xff, 0xfa, 0xff, 0xf9, 0xff,
- 0xf8, 0xff, 0x3c, 0x00, 0x5c, 0x48, 0x01, 0x00,
- 0xf7, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xf4, 0xff,
- 0xf3, 0xff, 0xf2, 0xff, 0xf1, 0xff, 0xf0, 0xff,
- 0xef, 0xff, 0xee, 0xff, 0xed, 0xff, 0xec, 0xff,
- 0xeb, 0xff, 0xea, 0xff, 0xe9, 0xff, 0xe8, 0xff,
- 0xe7, 0xff, 0xe6, 0xff, 0xe5, 0xff, 0xe4, 0xff,
- 0xe3, 0xff, 0xe2, 0xff, 0xe1, 0xff, 0xe0, 0xff,
- 0xdf, 0xff, 0xde, 0xff, 0xdd, 0xff, 0xdc, 0xff,
- 0xdc, 0xff, 0x00, 0x00, 0x3c, 0x00, 0x98, 0x48,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xb1, 0x7c, 0x41, 0x00, 0x11, 0x5a,
- 0x40, 0xe2, 0xb2, 0x7c, 0x41, 0x00, 0x05, 0x5a,
- 0x40, 0xe2, 0xaf, 0x7c, 0x41, 0x00, 0xf9, 0x59,
- 0x40, 0xe2, 0xb0, 0x7c, 0x41, 0x00, 0xed, 0x59,
- 0x40, 0xe2, 0x24, 0x67, 0x01, 0x00, 0x0e, 0x00,
- 0x00, 0xe3, 0x5c, 0x67, 0x01, 0x00, 0x0e, 0x00,
- 0x00, 0xe3, 0x0a, 0x61, 0x01, 0x00, 0x3c, 0x00,
- 0xd4, 0x48, 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3,
- 0x0e, 0x61, 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3,
- 0x32, 0x67, 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3,
- 0x6a, 0x67, 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3,
- 0x0b, 0x61, 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3,
- 0x0f, 0x61, 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3,
- 0x40, 0x67, 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3,
- 0x78, 0x67, 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3,
- 0x3c, 0x00, 0x10, 0x49, 0x01, 0x00, 0x0c, 0x61,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3, 0x10, 0x61,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3, 0x4e, 0x67,
- 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3, 0x86, 0x67,
- 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3, 0x0d, 0x61,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3, 0x11, 0x61,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0xe3, 0xc0, 0x48,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0x0a, 0xe0, 0x48,
- 0x01, 0x00, 0x3c, 0x00, 0x4c, 0x49, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0x0a, 0x00, 0x49, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0x0a, 0x20, 0x49, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0x0a, 0x18, 0x67, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x28, 0x75, 0x01, 0x01,
- 0x7d, 0xa9, 0x40, 0xe2, 0x2c, 0x75, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x20, 0x75, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x44, 0x75, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x3c, 0x00, 0x88, 0x49,
- 0x01, 0x00, 0xf0, 0x59, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x24, 0x75, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0xb8, 0x7c, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x8d, 0xa9, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0xda, 0x1d, 0x75, 0x01, 0x00, 0x01, 0x00,
- 0x00, 0xe2, 0xc4, 0x67, 0x01, 0x00, 0x3c, 0x00,
- 0xc4, 0x49, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x21, 0x59, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xd9,
- 0xc8, 0x67, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xcc, 0x67, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xd0, 0x67, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x65, 0xd9, 0x00, 0x00, 0x04, 0x00, 0x00, 0xda,
- 0xa5, 0xd9, 0x00, 0x00, 0x04, 0x00, 0x00, 0xda,
- 0x3c, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x01, 0x59,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0xda, 0x32, 0x67,
- 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3, 0x6a, 0x67,
- 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3, 0x11, 0x59,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x48,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0xa0, 0x48,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x40, 0x49,
- 0x01, 0x00, 0x3c, 0x00, 0x3c, 0x4a, 0x01, 0x00,
- 0x05, 0x00, 0x00, 0x0a, 0x68, 0x49, 0x01, 0x00,
- 0x09, 0x00, 0x00, 0x0a, 0x6c, 0x57, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x38, 0x61, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xac, 0x6e, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0xb0, 0x6e, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x70, 0x57, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x3c, 0x00, 0x78, 0x4a,
- 0x01, 0x00, 0xe8, 0x59, 0x01, 0x00, 0x08, 0x00,
- 0x00, 0xe3, 0xdc, 0x58, 0x01, 0x14, 0x4d, 0xfd,
- 0x40, 0xe3, 0x2c, 0x59, 0x01, 0x14, 0x39, 0xfd,
- 0x40, 0xe3, 0xc0, 0x58, 0x01, 0x00, 0x0e, 0x00,
- 0x00, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x64, 0x73, 0x41, 0x00, 0x3d, 0x2e,
- 0x44, 0xe2, 0x7c, 0x59, 0x01, 0x14, 0x3c, 0x00,
- 0xb4, 0x4a, 0x01, 0x00, 0x9d, 0x2f, 0x44, 0xe3,
- 0x5c, 0x57, 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe2,
- 0x79, 0x2e, 0x04, 0x00, 0x01, 0x00, 0x00, 0xdb,
- 0xa0, 0x58, 0x01, 0x00, 0x02, 0x00, 0x00, 0xe3,
- 0xa2, 0x58, 0x01, 0x00, 0x02, 0x00, 0x00, 0xe3,
- 0xa0, 0x57, 0x01, 0x00, 0x0e, 0x00, 0x00, 0xe3,
- 0xd1, 0x88, 0x01, 0x00, 0x01, 0x00, 0x00, 0xda,
- 0x1d, 0x89, 0x01, 0x00, 0x04, 0x00, 0x00, 0xda,
- 0x3c, 0x00, 0xf0, 0x4a, 0x01, 0x00, 0x95, 0x88,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0xdb, 0x31, 0x2f,
- 0x04, 0x00, 0x0e, 0x00, 0x00, 0xd9, 0xc5, 0x2e,
- 0x04, 0x00, 0x0e, 0x00, 0x00, 0xd9, 0x68, 0x6c,
- 0x01, 0x01, 0x15, 0xd5, 0x40, 0xe2, 0xc0, 0x57,
- 0x01, 0x00, 0x08, 0x00, 0x00, 0xe3, 0xc8, 0x57,
- 0x01, 0x00, 0x34, 0x00, 0x00, 0xe3, 0x9c, 0x6c,
- 0x01, 0x00, 0x08, 0x00, 0x00, 0xe3, 0xb0, 0x58,
- 0x01, 0x03, 0x3c, 0x00, 0x2c, 0x4b, 0x01, 0x00,
- 0xe9, 0xd4, 0x40, 0xe2, 0xbc, 0x58, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x9d, 0xa3, 0x00, 0x00,
- 0x60, 0x00, 0x00, 0xd9, 0x70, 0x79, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x78, 0x79, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x7c, 0x5a, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x5d, 0x1c, 0x00, 0x00,
- 0x11, 0x00, 0x00, 0xd9, 0x24, 0x6e, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x3c, 0x00, 0x68, 0x4b,
- 0x01, 0x00, 0x18, 0x58, 0x01, 0x05, 0xd5, 0xd5,
- 0x40, 0xe3, 0xfc, 0x57, 0x01, 0x00, 0x14, 0x00,
- 0x00, 0xe3, 0x04, 0x8e, 0x01, 0x03, 0xe5, 0xd5,
- 0x40, 0xe3, 0x00, 0x5b, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x18, 0x5b, 0x01, 0x00, 0x40, 0x00,
- 0x00, 0xe2, 0xd4, 0x67, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x8d, 0x37, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0xdb, 0xbd, 0x36, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0x4b, 0x01, 0x00, 0x04, 0x00, 0x00, 0xdb,
- 0xfc, 0x60, 0x01, 0x00, 0x02, 0x00, 0x00, 0xe2,
- 0x90, 0x7d, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x70, 0x69, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xb0, 0x49, 0x01, 0x00, 0x1a, 0x00, 0x00, 0x0a,
- 0x90, 0x4b, 0x01, 0x00, 0x06, 0x00, 0x00, 0x0a,
- 0xa4, 0x58, 0x81, 0x00, 0x05, 0xfd, 0x40, 0xe3,
- 0x3c, 0x00, 0xe0, 0x4b, 0x01, 0x00, 0x80, 0x4a,
- 0x01, 0x00, 0x0c, 0x00, 0x00, 0x0a, 0x0c, 0x5a,
- 0x81, 0x01, 0x25, 0x2d, 0x44, 0xe3, 0xe0, 0x4a,
- 0x01, 0x00, 0x03, 0x00, 0x00, 0x0a, 0x18, 0x63,
- 0x41, 0x00, 0xfd, 0xbb, 0x40, 0xe2, 0x08, 0x57,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0xe2, 0x9c, 0x48,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x4a,
- 0x01, 0x00, 0x3c, 0x00, 0x1c, 0x4c, 0x01, 0x00,
- 0x02, 0x00, 0x00, 0x0a, 0xcc, 0x74, 0x01, 0x00,
- 0x03, 0x00, 0x00, 0xe3, 0x65, 0x73, 0x41, 0x00,
- 0xa9, 0x2e, 0x44, 0xe2, 0xf6, 0x59, 0x01, 0x01,
- 0xd1, 0x2c, 0x44, 0xe3, 0x08, 0x4b, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x6a, 0x28, 0x4b, 0x01, 0x00,
- 0x02, 0x00, 0x00, 0x0a, 0x88, 0x7d, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x3c, 0x00, 0x58, 0x4c,
- 0x01, 0x00, 0x00, 0x75, 0x01, 0x04, 0x65, 0x6f,
- 0x40, 0xe3, 0xbc, 0x78, 0x01, 0x00, 0x0e, 0x00,
- 0x00, 0xe3, 0x38, 0x4b, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0x0a, 0x04, 0x57, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0x62, 0x58, 0x4b, 0x01, 0x00, 0x02, 0x00,
- 0x00, 0x0a, 0x80, 0x4b, 0x01, 0x00, 0x02, 0x00,
- 0x00, 0x0a, 0x68, 0x4b, 0x01, 0x00, 0x03, 0x00,
- 0x00, 0x0a, 0x8c, 0x7d, 0x01, 0x00, 0x3c, 0x00,
- 0x94, 0x4c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x39, 0x2d, 0x04, 0x00, 0x04, 0x00, 0x00, 0xdb,
- 0x94, 0x7d, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x64,
- 0xa8, 0x4c, 0x01, 0x00, 0x04, 0x00, 0x00, 0x0a,
- 0x3c, 0x00, 0xd0, 0x4c, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x4c,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0x0a, 0xd0, 0x4c,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x7a,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0xe2, 0xe8, 0x7a,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0xe2, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x7a,
- 0x01, 0x00, 0x3c, 0x00, 0x0c, 0x4d, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe2, 0xee, 0x7a, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf3, 0x7a, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe2, 0xf4, 0x7a, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf9, 0x7a, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe2, 0xfa, 0x7a, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe2, 0x3c, 0x00, 0x48, 0x4d,
- 0x01, 0x00, 0xe8, 0x4c, 0x01, 0x00, 0x03, 0x00,
- 0x00, 0x0a, 0x00, 0x4d, 0x01, 0x00, 0x03, 0x00,
- 0x00, 0x0a, 0x18, 0x4d, 0x01, 0x00, 0x03, 0x00,
- 0x00, 0x0a, 0x30, 0x4d, 0x01, 0x00, 0x03, 0x00,
- 0x00, 0x0a, 0x90, 0x5c, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x94, 0x5c, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x98, 0x5c, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x9c, 0x5c, 0x01, 0x00, 0x3c, 0x00,
- 0x84, 0x4d, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xa0, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xa4, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xa8, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xac, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xb0, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xb4, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0xb8, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x3c, 0x00, 0xc0, 0x4d, 0x01, 0x00, 0xbc, 0x5c,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2, 0xc0, 0x5c,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2, 0xc4, 0x5c,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2, 0x90, 0x5c,
- 0x01, 0x00, 0x38, 0x00, 0x00, 0xe3, 0x68, 0x4d,
- 0x01, 0x00, 0x0e, 0x00, 0x00, 0x0a, 0xd8, 0x4d,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x12, 0x61,
- 0x81, 0x01, 0x31, 0xd5, 0x40, 0xe3, 0x06, 0x61,
- 0x01, 0x00, 0x3c, 0x00, 0xfc, 0x4d, 0x01, 0x00,
- 0x02, 0x00, 0x00, 0xe2, 0x0b, 0x61, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe3, 0x0f, 0x61, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0xe3, 0x08, 0x61, 0x01, 0x00,
- 0x02, 0x00, 0x00, 0xe2, 0x50, 0x7b, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x38, 0x4e, 0x01, 0x00,
- 0x0e, 0x00, 0x00, 0x64, 0x9c, 0x57, 0x01, 0x01,
- 0x91, 0x88, 0x41, 0xe3, 0x3c, 0x00, 0x38, 0x4e,
- 0x01, 0x00, 0x6e, 0x41, 0x67, 0x6f, 0xe2, 0x65,
- 0x60, 0x69, 0x6f, 0x20, 0x41, 0x42, 0x00, 0x00,
- 0x00, 0x00, 0xf0, 0x4d, 0x01, 0x00, 0x09, 0x00,
- 0x00, 0x0a, 0x48, 0x4e, 0x01, 0x00, 0x01, 0x00,
- 0x00, 0x0a, 0xe8, 0x4d, 0x01, 0x00, 0x01, 0x00,
- 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x48, 0x4d, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0x0a, 0x28, 0x61, 0x01, 0x01, 0x3c, 0x00,
- 0x74, 0x4e, 0x01, 0x00, 0xbd, 0xd5, 0x40, 0xe2,
- 0x69, 0x61, 0x41, 0x00, 0x85, 0xd5, 0x40, 0xe2,
- 0x30, 0x61, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x34, 0x61, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x3c, 0x61, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x34, 0x61, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x44, 0x61, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a,
- 0x3c, 0x00, 0xb0, 0x4e, 0x01, 0x00, 0x70, 0x4e,
- 0x01, 0x00, 0x08, 0x00, 0x00, 0x0a, 0x18, 0x61,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0xe2, 0x1c, 0x61,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2, 0x20, 0x61,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0xe2, 0x24, 0x61,
- 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2, 0xb8, 0x4e,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0xc8, 0x4e,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0xd8, 0x4e,
- 0x01, 0x00, 0x3c, 0x00, 0xec, 0x4e, 0x01, 0x00,
- 0x02, 0x00, 0x00, 0x0a, 0x96, 0x48, 0x01, 0x00,
- 0x06, 0x00, 0x00, 0xe3, 0xe0, 0x62, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x9b, 0x7d, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x62, 0x9c, 0x7d, 0x01, 0x00,
- 0x02, 0x00, 0x00, 0x62, 0x60, 0x7c, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0xe2, 0x01, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x3c, 0x00, 0x28, 0x4f,
- 0x01, 0x00, 0x2d, 0x63, 0x01, 0x00, 0x01, 0x00,
- 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x49, 0xd5, 0x00, 0x00, 0x0e, 0x00,
- 0x00, 0xd9, 0xf4, 0x67, 0x01, 0x00, 0x02, 0x00,
- 0x00, 0x62, 0x46, 0x7d, 0x01, 0x00, 0x01, 0x00,
- 0x00, 0x62, 0x9c, 0x7c, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0xe2, 0x98, 0x7c, 0x01, 0x00, 0x3c, 0x00,
- 0x64, 0x4f, 0x01, 0x00, 0x02, 0x00, 0x00, 0x62,
- 0xa0, 0x7c, 0x01, 0x00, 0x06, 0x00, 0x00, 0x62,
- 0x58, 0x7c, 0x01, 0x00, 0x02, 0x00, 0x00, 0x62,
- 0x64, 0x7c, 0x01, 0x00, 0x06, 0x00, 0x00, 0x62,
- 0x5a, 0x7c, 0x01, 0x00, 0x02, 0x00, 0x00, 0x62,
- 0x6a, 0x7c, 0x01, 0x00, 0x06, 0x00, 0x00, 0x62,
- 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a,
- 0xe4, 0x62, 0x01, 0x00, 0x04, 0x00, 0x00, 0xe2,
- 0x3c, 0x00, 0xa0, 0x4f, 0x01, 0x00, 0xe8, 0x62,
- 0x01, 0x00, 0x03, 0x00, 0x00, 0xe2, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x01, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0x4f, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x3c, 0x00, 0x18, 0x50,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0xf0, 0x4e, 0x01, 0x00, 0x2a, 0x00,
- 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0x75, 0x2a, 0x01, 0x00, 0x3c, 0x00,
- 0x54, 0x50, 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb,
- 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a,
- 0x75, 0x2a, 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb,
- 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a,
- 0x75, 0x2a, 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb,
- 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a,
- 0x75, 0x2a, 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb,
- 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a,
- 0x3c, 0x00, 0x90, 0x50, 0x01, 0x00, 0x75, 0x2a,
- 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb, 0x06, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x75, 0x2a,
- 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb, 0x07, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x75, 0x2a,
- 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb, 0x08, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x6a, 0x75, 0x2a,
- 0x01, 0x00, 0x0c, 0x00, 0x00, 0xdb, 0x09, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0x50, 0x01, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x75, 0x2a, 0x01, 0x00,
- 0x0c, 0x00, 0x00, 0xdb, 0x0a, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x75, 0x2a, 0x01, 0x00,
- 0x0c, 0x00, 0x00, 0xdb, 0x0b, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x75, 0x2a, 0x01, 0x00,
- 0x0c, 0x00, 0x00, 0xdb, 0x0c, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x6a, 0x75, 0x2a, 0x01, 0x00,
- 0x0c, 0x00, 0x00, 0xdb, 0x3c, 0x00, 0x08, 0x51,
- 0x01, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0x75, 0x2a, 0x01, 0x00, 0x0c, 0x00,
- 0x00, 0xdb, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x6a, 0x75, 0x2a, 0x01, 0x00, 0x0c, 0x00,
- 0x00, 0xdb, 0x48, 0x50, 0x01, 0x00, 0x02, 0x00,
- 0x00, 0x0a, 0x58, 0x50, 0x01, 0x00, 0x02, 0x00,
- 0x00, 0x0a, 0x68, 0x50, 0x01, 0x00, 0x02, 0x00,
- 0x00, 0x0a, 0x78, 0x50, 0x01, 0x00, 0x3c, 0x00,
- 0x44, 0x51, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0x88, 0x50, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0x98, 0x50, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0xa8, 0x50, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0xb8, 0x50, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0xc8, 0x50, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0xd8, 0x50, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0xe8, 0x50, 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a,
- 0x3c, 0x00, 0x80, 0x51, 0x01, 0x00, 0xf8, 0x50,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x08, 0x51,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x18, 0x51,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x40, 0x50,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0x0a, 0xe8, 0x4e,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x4e,
- 0x01, 0x00, 0x3c, 0x00, 0xbc, 0x51, 0x01, 0x00,
- 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x28, 0x51, 0x01, 0x00,
- 0x0e, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x51,
- 0x01, 0x00, 0x98, 0x51, 0x01, 0x00, 0x0c, 0x00,
- 0x00, 0x0a, 0x50, 0x4e, 0x01, 0x00, 0x04, 0x00,
- 0x00, 0x0a, 0xe0, 0x4c, 0x01, 0x00, 0x01, 0x00,
- 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xc0, 0x4b, 0x01, 0x00, 0x1d, 0x00,
- 0x00, 0x0a, 0xf8, 0x51, 0x01, 0x00, 0x05, 0x00,
- 0x00, 0x0a, 0x24, 0x80, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x1d, 0x80, 0x07, 0x00, 0x3c, 0x00,
- 0x34, 0x52, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00,
- 0x2a, 0x80, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00,
- 0x24, 0x80, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x1d, 0x80, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0x2a, 0x80, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00,
- 0x24, 0x80, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x1d, 0x80, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0x2a, 0x80, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0x52, 0x01, 0x00, 0x00, 0x01,
- 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
- 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
- 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
- 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x01, 0x63,
- 0x00, 0x00, 0xa1, 0x63, 0x00, 0x00, 0xc5, 0x63,
- 0x00, 0x00, 0xb1, 0x62, 0x00, 0x00, 0xc5, 0x63,
- 0x00, 0x00, 0x21, 0x63, 0x00, 0x00, 0x4d, 0x63,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0x52, 0x01, 0x00,
- 0xa1, 0x63, 0x00, 0x00, 0x01, 0x63, 0x00, 0x00,
- 0xa1, 0x63, 0x00, 0x00, 0x06, 0x05, 0x05, 0x05,
- 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
- 0x05, 0x05, 0x03, 0x05, 0x06, 0x07, 0x08, 0x09,
- 0x0a, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x0f, 0x10,
- 0x11, 0x00, 0x00, 0x00, 0xa5, 0xc6, 0x84, 0xf8,
- 0x99, 0xee, 0x8d, 0xf6, 0x0d, 0xff, 0xbd, 0xd6,
- 0xb1, 0xde, 0x54, 0x91, 0x3c, 0x00, 0xe8, 0x52,
- 0x01, 0x00, 0x50, 0x60, 0x03, 0x02, 0xa9, 0xce,
- 0x7d, 0x56, 0x19, 0xe7, 0x62, 0xb5, 0xe6, 0x4d,
- 0x9a, 0xec, 0x45, 0x8f, 0x9d, 0x1f, 0x40, 0x89,
- 0x87, 0xfa, 0x15, 0xef, 0xeb, 0xb2, 0xc9, 0x8e,
- 0x0b, 0xfb, 0xec, 0x41, 0x67, 0xb3, 0xfd, 0x5f,
- 0xea, 0x45, 0xbf, 0x23, 0xf7, 0x53, 0x96, 0xe4,
- 0x5b, 0x9b, 0xc2, 0x75, 0x1c, 0xe1, 0xae, 0x3d,
- 0x6a, 0x4c, 0x5a, 0x6c, 0x41, 0x7e, 0x3c, 0x00,
- 0x24, 0x53, 0x01, 0x00, 0x02, 0xf5, 0x4f, 0x83,
- 0x5c, 0x68, 0xf4, 0x51, 0x34, 0xd1, 0x08, 0xf9,
- 0x93, 0xe2, 0x73, 0xab, 0x53, 0x62, 0x3f, 0x2a,
- 0x0c, 0x08, 0x52, 0x95, 0x65, 0x46, 0x5e, 0x9d,
- 0x28, 0x30, 0xa1, 0x37, 0x0f, 0x0a, 0xb5, 0x2f,
- 0x09, 0x0e, 0x36, 0x24, 0x9b, 0x1b, 0x3d, 0xdf,
- 0x26, 0xcd, 0x69, 0x4e, 0xcd, 0x7f, 0x9f, 0xea,
- 0x1b, 0x12, 0x9e, 0x1d, 0x74, 0x58, 0x2e, 0x34,
- 0x3c, 0x00, 0x60, 0x53, 0x01, 0x00, 0x2d, 0x36,
- 0xb2, 0xdc, 0xee, 0xb4, 0xfb, 0x5b, 0xf6, 0xa4,
- 0x4d, 0x76, 0x61, 0xb7, 0xce, 0x7d, 0x7b, 0x52,
- 0x3e, 0xdd, 0x71, 0x5e, 0x97, 0x13, 0xf5, 0xa6,
- 0x68, 0xb9, 0x00, 0x00, 0x2c, 0xc1, 0x60, 0x40,
- 0x1f, 0xe3, 0xc8, 0x79, 0xed, 0xb6, 0xbe, 0xd4,
- 0x46, 0x8d, 0xd9, 0x67, 0x4b, 0x72, 0xde, 0x94,
- 0xd4, 0x98, 0xe8, 0xb0, 0x4a, 0x85, 0x6b, 0xbb,
- 0x2a, 0xc5, 0x3c, 0x00, 0x9c, 0x53, 0x01, 0x00,
- 0xe5, 0x4f, 0x16, 0xed, 0xc5, 0x86, 0xd7, 0x9a,
- 0x55, 0x66, 0x94, 0x11, 0xcf, 0x8a, 0x10, 0xe9,
- 0x06, 0x04, 0x81, 0xfe, 0xf0, 0xa0, 0x44, 0x78,
- 0xba, 0x25, 0xe3, 0x4b, 0xf3, 0xa2, 0xfe, 0x5d,
- 0xc0, 0x80, 0x8a, 0x05, 0xad, 0x3f, 0xbc, 0x21,
- 0x48, 0x70, 0x04, 0xf1, 0xdf, 0x63, 0xc1, 0x77,
- 0x75, 0xaf, 0x63, 0x42, 0x30, 0x20, 0x1a, 0xe5,
- 0x0e, 0xfd, 0x6d, 0xbf, 0x3c, 0x00, 0xd8, 0x53,
- 0x01, 0x00, 0x4c, 0x81, 0x14, 0x18, 0x35, 0x26,
- 0x2f, 0xc3, 0xe1, 0xbe, 0xa2, 0x35, 0xcc, 0x88,
- 0x39, 0x2e, 0x57, 0x93, 0xf2, 0x55, 0x82, 0xfc,
- 0x47, 0x7a, 0xac, 0xc8, 0xe7, 0xba, 0x2b, 0x32,
- 0x95, 0xe6, 0xa0, 0xc0, 0x98, 0x19, 0xd1, 0x9e,
- 0x7f, 0xa3, 0x66, 0x44, 0x7e, 0x54, 0xab, 0x3b,
- 0x83, 0x0b, 0xca, 0x8c, 0x29, 0xc7, 0xd3, 0x6b,
- 0x3c, 0x28, 0x79, 0xa7, 0xe2, 0xbc, 0x3c, 0x00,
- 0x14, 0x54, 0x01, 0x00, 0x1d, 0x16, 0x76, 0xad,
- 0x3b, 0xdb, 0x56, 0x64, 0x4e, 0x74, 0x1e, 0x14,
- 0xdb, 0x92, 0x0a, 0x0c, 0x6c, 0x48, 0xe4, 0xb8,
- 0x5d, 0x9f, 0x6e, 0xbd, 0xef, 0x43, 0xa6, 0xc4,
- 0xa8, 0x39, 0xa4, 0x31, 0x37, 0xd3, 0x8b, 0xf2,
- 0x32, 0xd5, 0x43, 0x8b, 0x59, 0x6e, 0xb7, 0xda,
- 0x8c, 0x01, 0x64, 0xb1, 0xd2, 0x9c, 0xe0, 0x49,
- 0xb4, 0xd8, 0xfa, 0xac, 0x07, 0xf3, 0x25, 0xcf,
- 0x3c, 0x00, 0x50, 0x54, 0x01, 0x00, 0xaf, 0xca,
- 0x8e, 0xf4, 0xe9, 0x47, 0x18, 0x10, 0xd5, 0x6f,
- 0x88, 0xf0, 0x6f, 0x4a, 0x72, 0x5c, 0x24, 0x38,
- 0xf1, 0x57, 0xc7, 0x73, 0x51, 0x97, 0x23, 0xcb,
- 0x7c, 0xa1, 0x9c, 0xe8, 0x21, 0x3e, 0xdd, 0x96,
- 0xdc, 0x61, 0x86, 0x0d, 0x85, 0x0f, 0x90, 0xe0,
- 0x42, 0x7c, 0xc4, 0x71, 0xaa, 0xcc, 0xd8, 0x90,
- 0x05, 0x06, 0x01, 0xf7, 0x12, 0x1c, 0xa3, 0xc2,
- 0x5f, 0x6a, 0x3c, 0x00, 0x8c, 0x54, 0x01, 0x00,
- 0xf9, 0xae, 0xd0, 0x69, 0x91, 0x17, 0x58, 0x99,
- 0x27, 0x3a, 0xb9, 0x27, 0x38, 0xd9, 0x13, 0xeb,
- 0xb3, 0x2b, 0x33, 0x22, 0xbb, 0xd2, 0x70, 0xa9,
- 0x89, 0x07, 0xa7, 0x33, 0xb6, 0x2d, 0x22, 0x3c,
- 0x92, 0x15, 0x20, 0xc9, 0x49, 0x87, 0xff, 0xaa,
- 0x78, 0x50, 0x7a, 0xa5, 0x8f, 0x03, 0xf8, 0x59,
- 0x80, 0x09, 0x17, 0x1a, 0xda, 0x65, 0x31, 0xd7,
- 0xc6, 0x84, 0xb8, 0xd0, 0x3c, 0x00, 0xc8, 0x54,
- 0x01, 0x00, 0xc3, 0x82, 0xb0, 0x29, 0x77, 0x5a,
- 0x11, 0x1e, 0xcb, 0x7b, 0xfc, 0xa8, 0xd6, 0x6d,
- 0x3a, 0x2c, 0xc6, 0xa5, 0xf8, 0x84, 0xee, 0x99,
- 0xf6, 0x8d, 0xff, 0x0d, 0xd6, 0xbd, 0xde, 0xb1,
- 0x91, 0x54, 0x60, 0x50, 0x02, 0x03, 0xce, 0xa9,
- 0x56, 0x7d, 0xe7, 0x19, 0xb5, 0x62, 0x4d, 0xe6,
- 0xec, 0x9a, 0x8f, 0x45, 0x1f, 0x9d, 0x89, 0x40,
- 0xfa, 0x87, 0xef, 0x15, 0xb2, 0xeb, 0x3c, 0x00,
- 0x04, 0x55, 0x01, 0x00, 0x8e, 0xc9, 0xfb, 0x0b,
- 0x41, 0xec, 0xb3, 0x67, 0x5f, 0xfd, 0x45, 0xea,
- 0x23, 0xbf, 0x53, 0xf7, 0xe4, 0x96, 0x9b, 0x5b,
- 0x75, 0xc2, 0xe1, 0x1c, 0x3d, 0xae, 0x4c, 0x6a,
- 0x6c, 0x5a, 0x7e, 0x41, 0xf5, 0x02, 0x83, 0x4f,
- 0x68, 0x5c, 0x51, 0xf4, 0xd1, 0x34, 0xf9, 0x08,
- 0xe2, 0x93, 0xab, 0x73, 0x62, 0x53, 0x2a, 0x3f,
- 0x08, 0x0c, 0x95, 0x52, 0x46, 0x65, 0x9d, 0x5e,
- 0x3c, 0x00, 0x40, 0x55, 0x01, 0x00, 0x30, 0x28,
- 0x37, 0xa1, 0x0a, 0x0f, 0x2f, 0xb5, 0x0e, 0x09,
- 0x24, 0x36, 0x1b, 0x9b, 0xdf, 0x3d, 0xcd, 0x26,
- 0x4e, 0x69, 0x7f, 0xcd, 0xea, 0x9f, 0x12, 0x1b,
- 0x1d, 0x9e, 0x58, 0x74, 0x34, 0x2e, 0x36, 0x2d,
- 0xdc, 0xb2, 0xb4, 0xee, 0x5b, 0xfb, 0xa4, 0xf6,
- 0x76, 0x4d, 0xb7, 0x61, 0x7d, 0xce, 0x52, 0x7b,
- 0xdd, 0x3e, 0x5e, 0x71, 0x13, 0x97, 0xa6, 0xf5,
- 0xb9, 0x68, 0x3c, 0x00, 0x7c, 0x55, 0x01, 0x00,
- 0x00, 0x00, 0xc1, 0x2c, 0x40, 0x60, 0xe3, 0x1f,
- 0x79, 0xc8, 0xb6, 0xed, 0xd4, 0xbe, 0x8d, 0x46,
- 0x67, 0xd9, 0x72, 0x4b, 0x94, 0xde, 0x98, 0xd4,
- 0xb0, 0xe8, 0x85, 0x4a, 0xbb, 0x6b, 0xc5, 0x2a,
- 0x4f, 0xe5, 0xed, 0x16, 0x86, 0xc5, 0x9a, 0xd7,
- 0x66, 0x55, 0x11, 0x94, 0x8a, 0xcf, 0xe9, 0x10,
- 0x04, 0x06, 0xfe, 0x81, 0xa0, 0xf0, 0x78, 0x44,
- 0x25, 0xba, 0x4b, 0xe3, 0x3c, 0x00, 0xb8, 0x55,
- 0x01, 0x00, 0xa2, 0xf3, 0x5d, 0xfe, 0x80, 0xc0,
- 0x05, 0x8a, 0x3f, 0xad, 0x21, 0xbc, 0x70, 0x48,
- 0xf1, 0x04, 0x63, 0xdf, 0x77, 0xc1, 0xaf, 0x75,
- 0x42, 0x63, 0x20, 0x30, 0xe5, 0x1a, 0xfd, 0x0e,
- 0xbf, 0x6d, 0x81, 0x4c, 0x18, 0x14, 0x26, 0x35,
- 0xc3, 0x2f, 0xbe, 0xe1, 0x35, 0xa2, 0x88, 0xcc,
- 0x2e, 0x39, 0x93, 0x57, 0x55, 0xf2, 0xfc, 0x82,
- 0x7a, 0x47, 0xc8, 0xac, 0xba, 0xe7, 0x3c, 0x00,
- 0xf4, 0x55, 0x01, 0x00, 0x32, 0x2b, 0xe6, 0x95,
- 0xc0, 0xa0, 0x19, 0x98, 0x9e, 0xd1, 0xa3, 0x7f,
- 0x44, 0x66, 0x54, 0x7e, 0x3b, 0xab, 0x0b, 0x83,
- 0x8c, 0xca, 0xc7, 0x29, 0x6b, 0xd3, 0x28, 0x3c,
- 0xa7, 0x79, 0xbc, 0xe2, 0x16, 0x1d, 0xad, 0x76,
- 0xdb, 0x3b, 0x64, 0x56, 0x74, 0x4e, 0x14, 0x1e,
- 0x92, 0xdb, 0x0c, 0x0a, 0x48, 0x6c, 0xb8, 0xe4,
- 0x9f, 0x5d, 0xbd, 0x6e, 0x43, 0xef, 0xc4, 0xa6,
- 0x3c, 0x00, 0x30, 0x56, 0x01, 0x00, 0x39, 0xa8,
- 0x31, 0xa4, 0xd3, 0x37, 0xf2, 0x8b, 0xd5, 0x32,
- 0x8b, 0x43, 0x6e, 0x59, 0xda, 0xb7, 0x01, 0x8c,
- 0xb1, 0x64, 0x9c, 0xd2, 0x49, 0xe0, 0xd8, 0xb4,
- 0xac, 0xfa, 0xf3, 0x07, 0xcf, 0x25, 0xca, 0xaf,
- 0xf4, 0x8e, 0x47, 0xe9, 0x10, 0x18, 0x6f, 0xd5,
- 0xf0, 0x88, 0x4a, 0x6f, 0x5c, 0x72, 0x38, 0x24,
- 0x57, 0xf1, 0x73, 0xc7, 0x97, 0x51, 0xcb, 0x23,
- 0xa1, 0x7c, 0x3c, 0x00, 0x6c, 0x56, 0x01, 0x00,
- 0xe8, 0x9c, 0x3e, 0x21, 0x96, 0xdd, 0x61, 0xdc,
- 0x0d, 0x86, 0x0f, 0x85, 0xe0, 0x90, 0x7c, 0x42,
- 0x71, 0xc4, 0xcc, 0xaa, 0x90, 0xd8, 0x06, 0x05,
- 0xf7, 0x01, 0x1c, 0x12, 0xc2, 0xa3, 0x6a, 0x5f,
- 0xae, 0xf9, 0x69, 0xd0, 0x17, 0x91, 0x99, 0x58,
- 0x3a, 0x27, 0x27, 0xb9, 0xd9, 0x38, 0xeb, 0x13,
- 0x2b, 0xb3, 0x22, 0x33, 0xd2, 0xbb, 0xa9, 0x70,
- 0x07, 0x89, 0x33, 0xa7, 0x3c, 0x00, 0xa8, 0x56,
- 0x01, 0x00, 0x2d, 0xb6, 0x3c, 0x22, 0x15, 0x92,
- 0xc9, 0x20, 0x87, 0x49, 0xaa, 0xff, 0x50, 0x78,
- 0xa5, 0x7a, 0x03, 0x8f, 0x59, 0xf8, 0x09, 0x80,
- 0x1a, 0x17, 0x65, 0xda, 0xd7, 0x31, 0x84, 0xc6,
- 0xd0, 0xb8, 0x82, 0xc3, 0x29, 0xb0, 0x5a, 0x77,
- 0x1e, 0x11, 0x7b, 0xcb, 0xa8, 0xfc, 0x6d, 0xd6,
- 0x2c, 0x3a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0x56, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x01, 0x72, 0x65, 0x71, 0x45, 0x72, 0x72, 0x52,
- 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0x57, 0x01, 0x00, 0xc4, 0x8e,
- 0x01, 0x00, 0x24, 0x9a, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x24, 0x9a,
- 0x01, 0x00, 0xa4, 0xb2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xa4, 0xb2,
- 0x01, 0x00, 0x14, 0xc8, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x20,
- 0x30, 0x40, 0x50, 0xbb, 0x30, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0x57, 0x01, 0x00,
- 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22,
- 0x24, 0x26, 0x28, 0x2a, 0x2b, 0x2c, 0x01, 0x00,
- 0x70, 0x17, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x0d, 0x25, 0x00, 0x00, 0x41, 0x3f, 0x01, 0x00,
- 0x65, 0x29, 0x01, 0x00, 0x0d, 0x25, 0x00, 0x00,
- 0xf5, 0x5e, 0x00, 0x00, 0x41, 0x3f, 0x01, 0x00,
- 0x41, 0x3f, 0x01, 0x00, 0x02, 0x04, 0x0b, 0x0c,
- 0x12, 0x16, 0x18, 0x24, 0x3c, 0x00, 0x98, 0x57,
- 0x01, 0x00, 0x30, 0x48, 0x60, 0x6c, 0x01, 0x00,
- 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x10, 0x12, 0x11, 0x00,
- 0x00, 0x01, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0x57, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xe0, 0x93, 0x04, 0x00,
- 0x40, 0x42, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
- 0xdf, 0x40, 0xcf, 0xfd, 0x00, 0x40, 0x83, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0x58, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x00, 0x80, 0x81, 0x00, 0x00,
- 0x80, 0x00, 0xbf, 0xff, 0x7f, 0x7e, 0x01, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x6f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x6f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x6f,
- 0x01, 0x00, 0x3c, 0x00, 0x4c, 0x58, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x78, 0x70, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xb8, 0x70, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf8, 0x70, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x38, 0x71, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x78, 0x71, 0x01, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x90, 0x71, 0x01, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x3c, 0x00, 0x88, 0x58,
- 0x01, 0x00, 0xa8, 0x71, 0x01, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x05, 0x0a, 0x01, 0x06, 0x0b,
- 0x02, 0x07, 0x0c, 0x03, 0x08, 0x0d, 0x04, 0x09,
- 0x00, 0x00, 0x03, 0x03, 0x01, 0x01, 0x00, 0x04,
- 0x00, 0x04, 0x04, 0x06, 0x16, 0x1e, 0x1f, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0xff, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
- 0xc4, 0x58, 0x01, 0x00, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
- 0x61, 0x8b, 0x4a, 0x00, 0x61, 0x8f, 0x4a, 0x00,
- 0x61, 0x8b, 0x4a, 0x00, 0x05, 0xe3, 0xc0, 0x00,
- 0x05, 0xcb, 0xc0, 0x00, 0x05, 0xbb, 0xc0, 0x00,
- 0x85, 0xba, 0xc0, 0x00, 0x85, 0xa2, 0xc0, 0x00,
- 0x85, 0x92, 0xc0, 0x00, 0x85, 0x8a, 0xc0, 0x00,
- 0x85, 0x7a, 0xc0, 0x00, 0x45, 0x89, 0xc0, 0x00,
- 0x3c, 0x00, 0x00, 0x59, 0x01, 0x00, 0x45, 0x71,
- 0xc0, 0x00, 0x45, 0x69, 0xc0, 0x00, 0x45, 0x61,
- 0xc0, 0x00, 0x45, 0x59, 0xc0, 0x00, 0x45, 0x51,
- 0xc0, 0x00, 0x45, 0x49, 0xc0, 0x00, 0x45, 0x41,
- 0xc0, 0x00, 0x45, 0x39, 0xc0, 0x00, 0x45, 0x31,
- 0xc0, 0x00, 0x45, 0x29, 0xc0, 0x00, 0x45, 0x21,
- 0xc0, 0x00, 0x60, 0x2d, 0x06, 0x00, 0x60, 0x2d,
- 0x06, 0x00, 0x60, 0x2d, 0x06, 0x00, 0x60, 0x2d,
- 0x06, 0x00, 0x3c, 0x00, 0x3c, 0x59, 0x01, 0x00,
- 0x60, 0x2d, 0x06, 0x00, 0x60, 0x28, 0x06, 0x00,
- 0x50, 0x26, 0x06, 0x00, 0x50, 0x21, 0x06, 0x00,
- 0x50, 0x1f, 0x06, 0x00, 0x50, 0x1c, 0x06, 0x00,
- 0x50, 0x1a, 0x06, 0x00, 0x50, 0x18, 0x06, 0x00,
- 0x50, 0x16, 0x06, 0x00, 0x50, 0x14, 0x06, 0x00,
- 0x50, 0x12, 0x06, 0x00, 0x50, 0x10, 0x06, 0x00,
- 0x50, 0x0e, 0x06, 0x00, 0x50, 0x0c, 0x06, 0x00,
- 0x50, 0x0a, 0x06, 0x00, 0x3c, 0x00, 0x78, 0x59,
- 0x01, 0x00, 0x2b, 0x0b, 0x06, 0x00, 0x1d, 0x75,
- 0xc0, 0x00, 0x1d, 0x75, 0xc0, 0x00, 0x1d, 0x75,
- 0xc0, 0x00, 0x1d, 0x75, 0xc0, 0x00, 0x1d, 0x75,
- 0xc0, 0x00, 0x1d, 0x75, 0xc0, 0x00, 0x1d, 0x6d,
- 0xc0, 0x00, 0xdd, 0x5b, 0xc0, 0x00, 0xdd, 0x4b,
- 0xc0, 0x00, 0xdd, 0x43, 0xc0, 0x00, 0xdd, 0x3b,
- 0xc0, 0x00, 0xdd, 0x33, 0xc0, 0x00, 0xdd, 0x2b,
- 0xc0, 0x00, 0xdd, 0x23, 0xc0, 0x00, 0x3c, 0x00,
- 0xb4, 0x59, 0x01, 0x00, 0xdd, 0x1b, 0xc0, 0x00,
- 0xdd, 0x13, 0xc0, 0x00, 0xdd, 0x13, 0xc0, 0x00,
- 0xdd, 0x13, 0xc0, 0x00, 0xdd, 0x13, 0xc0, 0x00,
- 0xdd, 0x13, 0xc0, 0x00, 0x05, 0x05, 0x05, 0x04,
- 0x04, 0x03, 0x03, 0x02, 0x02, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x05, 0x05, 0x05, 0x04, 0x04, 0x03,
- 0x03, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x88, 0x13, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0x59, 0x01, 0x00, 0x07, 0x00,
- 0x00, 0x00, 0x80, 0x00, 0x5b, 0x00, 0x40, 0x02,
- 0xe0, 0xfd, 0xf2, 0x00, 0xb8, 0xfc, 0xa4, 0x01,
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00,
- 0x00, 0x00, 0x03, 0x0b, 0x9f, 0x5f, 0x07, 0x01,
- 0x2a, 0x04, 0x21, 0x04, 0x17, 0x04, 0x0e, 0x04,
- 0x04, 0x04, 0xfb, 0x03, 0xf1, 0x03, 0xe8, 0x03,
- 0xc9, 0x03, 0xaa, 0x03, 0x8a, 0x03, 0x6b, 0x03,
- 0x4c, 0x03, 0x3c, 0x00, 0x2c, 0x5a, 0x01, 0x00,
- 0x2d, 0x03, 0x0e, 0x03, 0xee, 0x02, 0xec, 0x02,
- 0x01, 0x03, 0x16, 0x03, 0x2b, 0x03, 0x40, 0x03,
- 0x55, 0x03, 0x6a, 0x03, 0x7f, 0x03, 0x94, 0x03,
- 0xa9, 0x03, 0xbe, 0x03, 0xd3, 0x03, 0xe8, 0x03,
- 0xbe, 0x03, 0x94, 0x03, 0x6a, 0x03, 0x00, 0x02,
- 0x04, 0x06, 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x00, 0x03, 0x3c, 0x00, 0x68, 0x5a,
- 0x01, 0x00, 0x05, 0x08, 0x0b, 0x0e, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0x5a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0x5a, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0x5b, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0x5b,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0x5b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0x5b, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x5c, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0x5c,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0x5c, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0x5c, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0x5d,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0x5d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0x5d, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0x5d, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0x5e,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0x5e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0x5e, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0x5e, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0x5f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0x5f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0x5f, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0x5f, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0x60,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0x60, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0x60, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x60,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0x61, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0x61, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0x61,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0x62, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0x62, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0x62, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0x62,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0x63, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0x63, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0x63, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0x63,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0x64, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0x64, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0x64,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0x65, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0x65, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0x65,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0x65, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0x66, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0x66, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0x66,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0x66, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0x67, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0x67, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0x67,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0x67, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0x68, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0x68,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0x68, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0x69, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0x69,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0x69, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0x69, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0x6a, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0x6a,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0x6a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0x6a, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x6b, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0x6b,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x6b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0x6b, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0x6b, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0x6c,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0x6c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0x6c, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0x6c, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0x6d,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0x6d, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0x6d, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0x6e,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0x6e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0x6e, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0x6e, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0x6f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0x6f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0x6f, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0x6f, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x6f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0x70, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0x70, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0x70,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0x71, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0x71, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0x71, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0x71,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0x72, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0x72, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0x72, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0x72,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0x73, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0x73, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0x73,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0x74, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0x74, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0x74,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0x74, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0x75, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0x75, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0x75,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0x75, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0x76, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0x76, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0x76,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0x76, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0x77, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0x77,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0x77, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0x77, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0x78, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0x78,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0x78, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0x78, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0x79, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0x79,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0x79, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0x79, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x7a, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0x7a,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x7a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0x7a, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0x7a, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0x7b,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0x7b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0x7b, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0x7b, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0x7c,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0x7c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0x7c, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0x7c, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0x7d,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0x7d, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0x7d, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0x7e,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0x7e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0x7e, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0x7e, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x7e,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0x7f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0x7f, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0x7f, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0x7f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x70, 0xb5, 0x01, 0x25, 0x07, 0x4e,
- 0xad, 0x03, 0x75, 0x61, 0x0a, 0x20, 0xfa, 0xf7,
- 0x6c, 0xff, 0x30, 0x68, 0x80, 0x03, 0xc4, 0x0f,
- 0xb5, 0x61, 0x0a, 0x20, 0xfa, 0xf7, 0x65, 0xff,
- 0x20, 0x1c, 0x70, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0x80, 0x01, 0x00, 0x10, 0x00, 0x07, 0x00,
- 0x70, 0xb5, 0x01, 0x25, 0x6d, 0x04, 0x00, 0x28,
- 0x10, 0x4c, 0x01, 0xd0, 0x65, 0x61, 0x00, 0xe0,
- 0xa5, 0x61, 0x60, 0x68, 0x28, 0x43, 0x60, 0x60,
- 0xa0, 0x68, 0x28, 0x43, 0xa0, 0x60, 0x0a, 0x20,
- 0xfa, 0xf7, 0x4e, 0xff, 0x01, 0x26, 0xb6, 0x03,
- 0x66, 0x61, 0x0a, 0x20, 0xfa, 0xf7, 0x48, 0xff,
- 0xa6, 0x61, 0x01, 0x20, 0xfa, 0xf7, 0x44, 0xff,
- 0x3c, 0x00, 0x60, 0x80, 0x01, 0x00, 0xa0, 0x68,
- 0xa8, 0x43, 0xa0, 0x60, 0x60, 0x68, 0x28, 0x43,
- 0x60, 0x60, 0x0a, 0x20, 0xfa, 0xf7, 0x3b, 0xff,
- 0x70, 0xbd, 0x10, 0x00, 0x07, 0x00, 0x70, 0xb5,
- 0x01, 0x25, 0x10, 0x4c, 0x6d, 0x04, 0x65, 0x61,
- 0x60, 0x68, 0x28, 0x43, 0x60, 0x60, 0xa0, 0x68,
- 0x28, 0x43, 0xa0, 0x60, 0xee, 0x08, 0xa6, 0x61,
- 0x0a, 0x20, 0xfa, 0xf7, 0x28, 0xff, 0x66, 0x61,
- 0x0a, 0x20, 0x3c, 0x00, 0x9c, 0x80, 0x01, 0x00,
- 0xfa, 0xf7, 0x24, 0xff, 0xa5, 0x61, 0x0a, 0x20,
- 0xfa, 0xf7, 0x20, 0xff, 0xa6, 0x61, 0x0a, 0x20,
- 0xfa, 0xf7, 0x1c, 0xff, 0xa0, 0x68, 0xa8, 0x43,
- 0xa0, 0x60, 0x60, 0x68, 0x28, 0x43, 0x60, 0x60,
- 0x70, 0xbd, 0x00, 0x00, 0x10, 0x00, 0x07, 0x00,
- 0x70, 0xb5, 0x01, 0x25, 0x0e, 0x4c, 0x6d, 0x04,
- 0xa5, 0x61, 0x60, 0x68, 0x28, 0x43, 0x60, 0x60,
- 0xa0, 0x68, 0x28, 0x43, 0x3c, 0x00, 0xd8, 0x80,
- 0x01, 0x00, 0xa0, 0x60, 0xee, 0x08, 0x66, 0x61,
- 0x0a, 0x20, 0xfa, 0xf7, 0x02, 0xff, 0x65, 0x61,
- 0x0a, 0x20, 0xfa, 0xf7, 0xfe, 0xfe, 0xa6, 0x61,
- 0x0a, 0x20, 0xfa, 0xf7, 0xfa, 0xfe, 0xa0, 0x68,
- 0xa8, 0x43, 0xa0, 0x60, 0x60, 0x68, 0x28, 0x43,
- 0x60, 0x60, 0x70, 0xbd, 0x00, 0x00, 0x10, 0x00,
- 0x07, 0x00, 0x70, 0xb5, 0x05, 0x1c, 0x00, 0x24,
- 0x80, 0x26, 0x28, 0x1c, 0x30, 0x40, 0x3c, 0x00,
- 0x14, 0x81, 0x01, 0x00, 0xff, 0xf7, 0x88, 0xff,
- 0x68, 0x06, 0x05, 0x0e, 0x01, 0x34, 0x08, 0x2c,
- 0xf6, 0xdb, 0xff, 0xf7, 0x6d, 0xff, 0x70, 0xbd,
- 0x80, 0xb5, 0x02, 0x1c, 0x0b, 0x21, 0x80, 0x20,
- 0xfb, 0xf7, 0x3e, 0xfb, 0x80, 0xbd, 0x00, 0x00,
- 0xf8, 0xb5, 0x12, 0x48, 0x00, 0x25, 0x07, 0x1c,
- 0xff, 0x37, 0x06, 0x1d, 0x01, 0x37, 0x28, 0x1c,
- 0xf9, 0xf7, 0xea, 0xfd, 0x04, 0x1c, 0x17, 0xd0,
- 0x3c, 0x00, 0x50, 0x81, 0x01, 0x00, 0x20, 0x69,
- 0x00, 0x28, 0x04, 0xd0, 0xe0, 0x6a, 0x00, 0x28,
- 0x03, 0xd0, 0x00, 0x20, 0xe0, 0x62, 0x25, 0x1c,
- 0xf0, 0xe7, 0x7b, 0x68, 0x00, 0x2b, 0x05, 0xd0,
- 0x32, 0x1c, 0x21, 0x1c, 0x44, 0x31, 0x01, 0x20,
- 0xe8, 0xf7, 0x34, 0xf9, 0x20, 0x1c, 0x44, 0x30,
- 0xf9, 0xf7, 0x37, 0xfe, 0xe2, 0xe7, 0xf8, 0xbd,
- 0x00, 0x00, 0x20, 0xf7, 0x01, 0x00, 0x11, 0x48,
- 0x70, 0xb5, 0x3c, 0x00, 0x8c, 0x81, 0x01, 0x00,
- 0x00, 0x68, 0xff, 0x28, 0x1d, 0xd1, 0xff, 0x20,
- 0x32, 0x30, 0xfa, 0xf7, 0xa7, 0xfe, 0x0e, 0x4d,
- 0x6c, 0x68, 0x0e, 0x48, 0xfa, 0xf7, 0xa2, 0xfe,
- 0x68, 0x68, 0x24, 0x1a, 0x01, 0x20, 0x00, 0xf0,
- 0x95, 0xfd, 0x6e, 0x68, 0x09, 0x48, 0xfa, 0xf7,
- 0x99, 0xfe, 0x68, 0x68, 0x21, 0x1c, 0x0a, 0x39,
- 0x30, 0x1a, 0x88, 0x42, 0x02, 0xd3, 0x0a, 0x34,
- 0xa0, 0x42, 0x02, 0xd9, 0x3c, 0x00, 0xc8, 0x81,
- 0x01, 0x00, 0x00, 0x20, 0x00, 0xf0, 0x85, 0xfd,
- 0x70, 0xbd, 0xf4, 0x74, 0x01, 0x00, 0x00, 0x03,
- 0x07, 0x00, 0x93, 0x03, 0x00, 0x00, 0x70, 0xb5,
- 0x00, 0xf0, 0x4d, 0xf8, 0x01, 0x20, 0xed, 0xf7,
- 0x34, 0xf9, 0x11, 0x4d, 0x18, 0x21, 0x68, 0x60,
- 0x00, 0x20, 0xe9, 0xf7, 0xf2, 0xf9, 0x28, 0x60,
- 0x04, 0x68, 0x80, 0x20, 0x20, 0x80, 0x00, 0x26,
- 0x06, 0x22, 0xff, 0x21, 0x20, 0x1d, 0x3c, 0x00,
- 0x04, 0x82, 0x01, 0x00, 0x66, 0x80, 0xe8, 0xf7,
- 0x0b, 0xfa, 0x20, 0x1c, 0x0a, 0x30, 0x09, 0x49,
- 0xf2, 0xf7, 0x2e, 0xfd, 0x20, 0x1c, 0x10, 0x30,
- 0x07, 0x49, 0xf2, 0xf7, 0x29, 0xfd, 0xe6, 0x82,
- 0x03, 0xcd, 0xe9, 0xf7, 0xf9, 0xf8, 0x02, 0x49,
- 0x01, 0x20, 0x14, 0x39, 0x88, 0x60, 0x70, 0xbd,
- 0x90, 0xd9, 0x01, 0x00, 0x12, 0x61, 0x01, 0x00,
- 0x24, 0xf7, 0x01, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0x82, 0x01, 0x00, 0x10, 0xb5,
- 0x06, 0x4c, 0x00, 0x22, 0x02, 0x20, 0xe1, 0x68,
- 0xf0, 0xf7, 0x11, 0xfb, 0x60, 0x78, 0x02, 0x28,
- 0x01, 0xd1, 0x00, 0xf0, 0x1a, 0xf9, 0x10, 0xbd,
- 0x00, 0x00, 0x40, 0xd9, 0x01, 0x00, 0x80, 0xb5,
- 0xa1, 0x20, 0xff, 0xf7, 0x50, 0xff, 0x80, 0xbd,
- 0x00, 0x00, 0x40, 0x00, 0x0e, 0x21, 0x08, 0x40,
- 0x80, 0xb5, 0xa0, 0x30, 0xff, 0xf7, 0x47, 0xff,
- 0x80, 0xbd, 0x3c, 0x00, 0x7c, 0x82, 0x01, 0x00,
- 0x10, 0xb5, 0x05, 0x4c, 0x20, 0x68, 0x00, 0x28,
- 0x04, 0xd0, 0xe9, 0xf7, 0x87, 0xf9, 0x00, 0x20,
- 0x20, 0x60, 0x60, 0x60, 0x10, 0xbd, 0x00, 0x00,
- 0x90, 0xd9, 0x01, 0x00, 0x10, 0xb5, 0x07, 0x4c,
- 0x01, 0x21, 0x07, 0x4a, 0x21, 0x61, 0x02, 0x20,
- 0x10, 0x70, 0x61, 0x61, 0x00, 0xf0, 0xd6, 0xfc,
- 0x00, 0xf0, 0xc8, 0xfb, 0x20, 0x1c, 0xed, 0xf7,
- 0x9f, 0xfa, 0x10, 0xbd, 0x3c, 0x00, 0xb8, 0x82,
- 0x01, 0x00, 0x20, 0xf7, 0x01, 0x00, 0x7c, 0xd9,
- 0x01, 0x00, 0x70, 0xb5, 0x02, 0x1c, 0x08, 0x1c,
- 0x02, 0x25, 0x00, 0x2a, 0x13, 0x4e, 0x14, 0xd0,
- 0x00, 0xf0, 0x11, 0xfc, 0x30, 0x78, 0x01, 0x21,
- 0x08, 0x43, 0x30, 0x70, 0x30, 0x78, 0x28, 0x43,
- 0x30, 0x70, 0x00, 0x20, 0x7d, 0x21, 0x49, 0x01,
- 0xb2, 0x79, 0x92, 0x07, 0x00, 0xd5, 0x01, 0x34,
- 0x01, 0x30, 0x88, 0x42, 0xf8, 0xdb, 0x3c, 0x00,
- 0xf4, 0x82, 0x01, 0x00, 0x20, 0x1c, 0x70, 0xbd,
- 0x30, 0x78, 0xa8, 0x43, 0x30, 0x70, 0x30, 0x78,
- 0x40, 0x08, 0x40, 0x00, 0x30, 0x70, 0x05, 0x49,
- 0x48, 0x68, 0x01, 0x22, 0x12, 0x04, 0x90, 0x43,
- 0x48, 0x60, 0x01, 0x20, 0x70, 0xbd, 0x00, 0x00,
- 0x88, 0x00, 0x07, 0x00, 0x6c, 0x00, 0x07, 0x00,
- 0xff, 0xb5, 0x09, 0xae, 0x00, 0x20, 0x60, 0xce,
- 0x28, 0x60, 0x00, 0x23, 0x9c, 0x46, 0x30, 0x60,
- 0x3c, 0x00, 0x30, 0x83, 0x01, 0x00, 0x69, 0x46,
- 0x01, 0xaa, 0x17, 0xe0, 0xdb, 0x07, 0x0e, 0xd5,
- 0x12, 0x4b, 0x1c, 0x56, 0x63, 0x1c, 0x0a, 0xd0,
- 0x01, 0x27, 0x2b, 0x68, 0xa7, 0x40, 0x3b, 0x43,
- 0x2b, 0x60, 0x13, 0x68, 0xdb, 0x07, 0x02, 0xd5,
- 0x33, 0x68, 0x3b, 0x43, 0x33, 0x60, 0x0b, 0x68,
- 0x5b, 0x08, 0x0b, 0x60, 0x13, 0x68, 0x5b, 0x08,
- 0x13, 0x60, 0x01, 0x30, 0x0b, 0x68, 0x00, 0x2b,
- 0x01, 0xd0, 0x3c, 0x00, 0x6c, 0x83, 0x01, 0x00,
- 0x22, 0x28, 0xe2, 0xd3, 0x63, 0x46, 0x01, 0x33,
- 0x20, 0x20, 0x02, 0x2b, 0x9c, 0x46, 0x02, 0xa9,
- 0x03, 0xaa, 0xf2, 0xdb, 0xff, 0xbd, 0x00, 0x00,
- 0xb4, 0x8d, 0x01, 0x00, 0xb0, 0xb5, 0x04, 0x1c,
- 0x0d, 0x1c, 0x1e, 0x21, 0x00, 0x22, 0x03, 0x20,
- 0x05, 0x4b, 0xf9, 0xf7, 0xb3, 0xf8, 0x21, 0x1c,
- 0x03, 0x20, 0xf9, 0xf7, 0xf5, 0xf8, 0x29, 0x1c,
- 0x03, 0x20, 0xf9, 0xf7, 0x3c, 0x00, 0xa8, 0x83,
- 0x01, 0x00, 0xf1, 0xf8, 0xb0, 0xbd, 0x80, 0x38,
- 0x01, 0x00, 0xb0, 0xb5, 0x1c, 0x4c, 0x1c, 0x4d,
- 0x21, 0x78, 0x02, 0x29, 0x09, 0xd0, 0x03, 0x29,
- 0x19, 0xd0, 0x04, 0x29, 0x1f, 0xd0, 0x05, 0x29,
- 0x23, 0xd1, 0x00, 0x20, 0x00, 0xf0, 0x17, 0xfb,
- 0x23, 0xe0, 0x68, 0x61, 0x14, 0x48, 0x1c, 0x30,
- 0xc1, 0x68, 0x02, 0x69, 0x89, 0x18, 0xc1, 0x60,
- 0x00, 0xf0, 0x2f, 0xfb, 0xe0, 0x68, 0x3c, 0x00,
- 0xe4, 0x83, 0x01, 0x00, 0x01, 0x38, 0xe0, 0x60,
- 0x16, 0xd1, 0x32, 0x20, 0xe0, 0x60, 0xff, 0xf7,
- 0xa3, 0xfe, 0x11, 0xe0, 0x00, 0x20, 0x00, 0xf0,
- 0x01, 0xfb, 0x00, 0xf0, 0x2d, 0xfc, 0x01, 0x20,
- 0x20, 0x70, 0x09, 0xe0, 0x00, 0x20, 0x00, 0xf0,
- 0xf9, 0xfa, 0xff, 0xf7, 0x45, 0xff, 0x03, 0xe0,
- 0x05, 0x21, 0x0b, 0x20, 0xe8, 0xf7, 0x46, 0xff,
- 0x68, 0x69, 0x61, 0x68, 0xe7, 0xf7, 0xdd, 0xff,
- 0x3c, 0x00, 0x20, 0x84, 0x01, 0x00, 0xb0, 0xbd,
- 0x00, 0x00, 0x7c, 0xd9, 0x01, 0x00, 0x20, 0xf7,
- 0x01, 0x00, 0xf7, 0xb5, 0x04, 0x1c, 0x17, 0x1c,
- 0xff, 0xf7, 0x21, 0xfe, 0x20, 0x0a, 0xff, 0xf7,
- 0x18, 0xff, 0x20, 0x06, 0x00, 0x0e, 0xff, 0xf7,
- 0x62, 0xfe, 0xff, 0xf7, 0x18, 0xfe, 0xa1, 0x20,
- 0xff, 0xf7, 0x5d, 0xfe, 0x00, 0x25, 0x16, 0xe0,
- 0x00, 0x20, 0x00, 0x24, 0x40, 0x06, 0x06, 0x0e,
- 0xff, 0xf7, 0x3c, 0x00, 0x5c, 0x84, 0x01, 0x00,
- 0xd1, 0xfd, 0x00, 0x06, 0x00, 0x0e, 0x30, 0x43,
- 0x01, 0x34, 0x08, 0x2c, 0xf5, 0xdb, 0x29, 0x1c,
- 0x01, 0x9a, 0x01, 0x35, 0xbd, 0x42, 0x50, 0x54,
- 0x01, 0xda, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20,
- 0xff, 0xf7, 0xd4, 0xfd, 0xbd, 0x42, 0xe6, 0xdb,
- 0xff, 0xf7, 0x1e, 0xfe, 0xfe, 0xbd, 0x00, 0x00,
- 0x80, 0xb5, 0xff, 0xf7, 0x19, 0xfe, 0x09, 0x21,
- 0x89, 0x03, 0x00, 0x22, 0x3c, 0x00, 0x98, 0x84,
- 0x01, 0x00, 0x02, 0x20, 0xf0, 0xf7, 0xe9, 0xf9,
- 0x80, 0xbd, 0x09, 0x21, 0x89, 0x03, 0x80, 0xb5,
- 0x00, 0x22, 0x02, 0x20, 0xf0, 0xf7, 0xc9, 0xf9,
- 0x01, 0x21, 0x09, 0x48, 0x89, 0x03, 0x81, 0x61,
- 0x42, 0x68, 0x0a, 0x43, 0x42, 0x60, 0x82, 0x68,
- 0x11, 0x43, 0x81, 0x60, 0x01, 0x21, 0x49, 0x04,
- 0x81, 0x61, 0x82, 0x68, 0x8a, 0x43, 0x82, 0x60,
- 0x42, 0x68, 0x11, 0x43, 0x41, 0x60, 0x3c, 0x00,
- 0xd4, 0x84, 0x01, 0x00, 0x80, 0xbd, 0x00, 0x00,
- 0x10, 0x00, 0x07, 0x00, 0xf0, 0xb5, 0x04, 0x1c,
- 0xc0, 0x68, 0x7b, 0x4e, 0x05, 0x68, 0x30, 0x78,
- 0x85, 0xb0, 0x01, 0x28, 0x01, 0xd0, 0x02, 0x28,
- 0x72, 0xd1, 0x00, 0x21, 0x20, 0x69, 0xf2, 0xf7,
- 0x41, 0xf9, 0x76, 0x49, 0xf2, 0xf7, 0x24, 0xfc,
- 0x00, 0x28, 0x69, 0xd0, 0x20, 0x1c, 0x20, 0x30,
- 0x41, 0x7a, 0x08, 0x29, 0x02, 0xd1, 0x72, 0x4a,
- 0x3c, 0x00, 0x10, 0x85, 0x01, 0x00, 0x00, 0x21,
- 0x51, 0x61, 0x00, 0x7a, 0x22, 0x6a, 0x18, 0x21,
- 0xf2, 0xf7, 0xc9, 0xfb, 0xe1, 0x6a, 0x37, 0x1c,
- 0x40, 0x18, 0x6c, 0x49, 0x02, 0x90, 0x30, 0x78,
- 0x0e, 0x1c, 0xff, 0x36, 0x0a, 0x1d, 0x01, 0x36,
- 0x01, 0x28, 0x04, 0x92, 0x07, 0xd0, 0x65, 0x4a,
- 0x02, 0x99, 0x1c, 0x32, 0x28, 0x1c, 0xed, 0xf7,
- 0xe2, 0xfb, 0x00, 0x28, 0x6b, 0xd0, 0x32, 0x21,
- 0x20, 0x69, 0x3c, 0x00, 0x4c, 0x85, 0x01, 0x00,
- 0xf2, 0xf7, 0x16, 0xf9, 0x01, 0x90, 0x20, 0x69,
- 0x01, 0x21, 0xf2, 0xf7, 0x11, 0xf9, 0x01, 0x1c,
- 0x5e, 0x48, 0x01, 0x23, 0x01, 0x9a, 0xed, 0xf7,
- 0x07, 0xfc, 0x00, 0x28, 0x04, 0xd1, 0x5b, 0x48,
- 0xed, 0xf7, 0x92, 0xfa, 0x00, 0x21, 0xb9, 0x60,
- 0x56, 0x48, 0x1c, 0x30, 0x81, 0x68, 0xea, 0xf7,
- 0x19, 0xfc, 0x20, 0x1c, 0x14, 0x30, 0x03, 0x90,
- 0x04, 0x99, 0xf2, 0xf7, 0x3c, 0x00, 0x88, 0x85,
- 0x01, 0x00, 0xd5, 0xfb, 0x00, 0x28, 0x05, 0xd1,
- 0x00, 0x22, 0xba, 0x60, 0x04, 0x98, 0x03, 0x99,
- 0xf2, 0xf7, 0x6b, 0xfb, 0x4f, 0x49, 0x28, 0x89,
- 0x09, 0x88, 0x88, 0x42, 0x03, 0xd0, 0x00, 0x22,
- 0x4c, 0x49, 0xba, 0x60, 0x08, 0x80, 0x03, 0x21,
- 0x20, 0x69, 0xf2, 0xf7, 0xe4, 0xf8, 0x00, 0x28,
- 0x10, 0xd0, 0x46, 0x49, 0x82, 0x78, 0x20, 0x31,
- 0x0b, 0x79, 0x94, 0x46, 0x9a, 0x42, 0x3c, 0x00,
- 0xc4, 0x85, 0x01, 0x00, 0x09, 0xd0, 0x00, 0x22,
- 0xba, 0x60, 0x62, 0x46, 0x0a, 0x71, 0x80, 0x78,
- 0x01, 0x21, 0xf3, 0xf7, 0x05, 0xf9, 0x00, 0xe0,
- 0x77, 0xe0, 0x06, 0x21, 0x20, 0x69, 0xf2, 0xf7,
- 0xcd, 0xf8, 0x00, 0x28, 0x08, 0xd0, 0x81, 0x78,
- 0x3a, 0x48, 0x40, 0x30, 0x82, 0x88, 0x91, 0x42,
- 0x02, 0xd0, 0x00, 0x22, 0xba, 0x60, 0x81, 0x80,
- 0x2a, 0x21, 0x20, 0x69, 0xf2, 0xf7, 0xbe, 0xf8,
- 0x3c, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x28,
- 0x0d, 0xd0, 0x80, 0x78, 0xf1, 0x69, 0x33, 0x4a,
- 0x81, 0x42, 0x08, 0xd0, 0x00, 0x21, 0xb9, 0x60,
- 0xf0, 0x61, 0x10, 0x1c, 0xed, 0xf7, 0x09, 0xfb,
- 0x2f, 0x48, 0xed, 0xf7, 0xfa, 0xfa, 0x38, 0x78,
- 0x3b, 0x1c, 0x01, 0x28, 0x17, 0xd1, 0x02, 0x20,
- 0x18, 0x70, 0x2a, 0x4f, 0x01, 0x23, 0x3b, 0x61,
- 0x27, 0x4b, 0x03, 0xcd, 0x1c, 0x33, 0x08, 0x3d,
- 0x02, 0x9a, 0x3c, 0x00, 0x3c, 0x86, 0x01, 0x00,
- 0xed, 0xf7, 0xb0, 0xfa, 0x38, 0x1c, 0xed, 0xf7,
- 0xd7, 0xf8, 0x32, 0x68, 0x00, 0x2a, 0x03, 0xd0,
- 0x00, 0x21, 0x01, 0x20, 0xe7, 0xf7, 0xc4, 0xfe,
- 0x00, 0xf0, 0xf4, 0xf9, 0x20, 0x1c, 0xf9, 0xf7,
- 0xd5, 0xfb, 0x07, 0x1c, 0x11, 0xd1, 0x20, 0x1c,
- 0xf9, 0xf7, 0x88, 0xfb, 0x07, 0x1c, 0x2e, 0xd0,
- 0x01, 0x23, 0x3b, 0x61, 0x68, 0x89, 0x40, 0x21,
- 0xc8, 0x53, 0x73, 0x68, 0x3c, 0x00, 0x78, 0x86,
- 0x01, 0x00, 0x00, 0x2b, 0x04, 0xd0, 0x21, 0x1c,
- 0x00, 0x20, 0x04, 0x9a, 0xe7, 0xf7, 0xac, 0xfe,
- 0x01, 0x23, 0xfb, 0x62, 0x20, 0x69, 0x32, 0x21,
- 0xf2, 0xf7, 0x75, 0xf8, 0x05, 0x1c, 0x20, 0x69,
- 0x01, 0x21, 0xf2, 0xf7, 0x70, 0xf8, 0x0e, 0x4e,
- 0x01, 0x1c, 0x2a, 0x1c, 0x30, 0x1c, 0xed, 0xf7,
- 0xc0, 0xfb, 0x00, 0x28, 0x0e, 0xd1, 0x32, 0x21,
- 0x20, 0x69, 0xf2, 0xf7, 0x64, 0xf8, 0x3c, 0x00,
- 0xb4, 0x86, 0x01, 0x00, 0x05, 0x1c, 0x20, 0x69,
- 0x01, 0x21, 0xf2, 0xf7, 0x5f, 0xf8, 0x01, 0x1c,
- 0x3b, 0x1c, 0x2a, 0x1c, 0x30, 0x1c, 0xed, 0xf7,
- 0xd7, 0xfa, 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00,
- 0x7c, 0xd9, 0x01, 0x00, 0x40, 0xf8, 0x01, 0x00,
- 0x20, 0xf7, 0x01, 0x00, 0x02, 0x1c, 0x08, 0x1c,
- 0x80, 0x2a, 0x80, 0xb5, 0x06, 0xd0, 0x81, 0x2a,
- 0x03, 0xd0, 0x04, 0x21, 0x0b, 0x20, 0xe8, 0xf7,
- 0x3c, 0x00, 0xf0, 0x86, 0x01, 0x00, 0xd9, 0xfd,
- 0x80, 0xbd, 0xff, 0xf7, 0x5c, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0x03, 0x48, 0x81, 0x78, 0xff, 0x29,
- 0x01, 0xd0, 0x00, 0x79, 0x70, 0x47, 0x00, 0x20,
- 0x70, 0x47, 0x80, 0xf8, 0x01, 0x00, 0x30, 0xb5,
- 0x89, 0xb0, 0x00, 0x93, 0x0e, 0x4d, 0x13, 0x1c,
- 0x04, 0x1c, 0x2a, 0x1c, 0xec, 0xf7, 0x25, 0xfd,
- 0x01, 0xa9, 0x06, 0xa8, 0xa2, 0x68, 0xec, 0xf7,
- 0xce, 0xfe, 0x3c, 0x00, 0x2c, 0x87, 0x01, 0x00,
- 0x01, 0xaa, 0x06, 0xa9, 0x28, 0x1c, 0x63, 0x6a,
- 0xed, 0xf7, 0x44, 0xfa, 0x04, 0x1c, 0x01, 0x28,
- 0x04, 0xd1, 0x28, 0x1c, 0xed, 0xf7, 0x2c, 0xf8,
- 0x00, 0xf0, 0x4a, 0xf8, 0x20, 0x1c, 0x09, 0xb0,
- 0x30, 0xbd, 0x00, 0x00, 0x20, 0xf7, 0x01, 0x00,
- 0x80, 0xb5, 0xed, 0xf7, 0x2b, 0xf8, 0x00, 0xf0,
- 0x7d, 0xf8, 0x02, 0x48, 0xed, 0xf7, 0x02, 0xfa,
- 0x80, 0xbd, 0x00, 0x00, 0x3c, 0x00, 0x68, 0x87,
- 0x01, 0x00, 0x20, 0xf7, 0x01, 0x00, 0x80, 0xb5,
- 0x00, 0x28, 0x0b, 0xd1, 0x06, 0x48, 0xed, 0xf7,
- 0xf8, 0xf9, 0x00, 0xf0, 0x6e, 0xf8, 0x01, 0x20,
- 0xed, 0xf7, 0xeb, 0xfa, 0x03, 0x49, 0x03, 0x20,
- 0xf9, 0xf7, 0x35, 0xfe, 0x80, 0xbd, 0x20, 0xf7,
- 0x01, 0x00, 0x6d, 0x87, 0x01, 0x00, 0xb0, 0xb5,
- 0x10, 0x4d, 0x04, 0x1c, 0x13, 0x1c, 0x2a, 0x1c,
- 0x88, 0xb0, 0xec, 0xf7, 0x02, 0xfd, 0x3c, 0x00,
- 0xa4, 0x87, 0x01, 0x00, 0x21, 0x1c, 0x0a, 0x31,
- 0x06, 0x22, 0x28, 0x1d, 0xe7, 0xf7, 0xa4, 0xfe,
- 0x69, 0x46, 0x05, 0xa8, 0x62, 0x69, 0xec, 0xf7,
- 0x87, 0xfe, 0x28, 0x1c, 0xec, 0xf7, 0xee, 0xff,
- 0x7f, 0x23, 0xdb, 0x43, 0x28, 0x1c, 0x6a, 0x46,
- 0x05, 0xa9, 0xed, 0xf7, 0xf9, 0xf9, 0x00, 0xf0,
- 0x1d, 0xf8, 0x08, 0xb0, 0xb0, 0xbd, 0x00, 0x00,
- 0x20, 0xf7, 0x01, 0x00, 0x0a, 0x48, 0x80, 0xb5,
- 0x3c, 0x00, 0xe0, 0x87, 0x01, 0x00, 0x01, 0x78,
- 0x00, 0x29, 0x06, 0xd0, 0x02, 0x29, 0x01, 0xd0,
- 0x05, 0x29, 0x07, 0xd1, 0x03, 0x21, 0x01, 0x70,
- 0x80, 0xbd, 0x01, 0x21, 0x01, 0x70, 0x00, 0xf0,
- 0x2e, 0xfa, 0x80, 0xbd, 0x03, 0x21, 0x0b, 0x20,
- 0xe8, 0xf7, 0x4f, 0xfd, 0x80, 0xbd, 0x7c, 0xd9,
- 0x01, 0x00, 0x09, 0x49, 0x80, 0xb5, 0x08, 0x78,
- 0x00, 0x28, 0x06, 0xd0, 0x02, 0x28, 0x01, 0xd0,
- 0x05, 0x28, 0x3c, 0x00, 0x1c, 0x88, 0x01, 0x00,
- 0x05, 0xd1, 0x04, 0x20, 0x08, 0x70, 0x80, 0xbd,
- 0xff, 0xf7, 0x38, 0xfd, 0x80, 0xbd, 0x02, 0x21,
- 0x0b, 0x20, 0xe8, 0xf7, 0x39, 0xfd, 0x80, 0xbd,
- 0x7c, 0xd9, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x21,
- 0x0b, 0x20, 0x04, 0x4a, 0xfa, 0xf7, 0x82, 0xff,
- 0xf6, 0xf7, 0x86, 0xfd, 0x02, 0x49, 0x08, 0x61,
- 0x80, 0xbd, 0x00, 0x00, 0xdd, 0x86, 0x01, 0x00,
- 0x7c, 0xd9, 0x01, 0x00, 0x3c, 0x00, 0x58, 0x88,
- 0x01, 0x00, 0x0c, 0x48, 0x80, 0xb5, 0x01, 0x78,
- 0x06, 0x29, 0x0e, 0xd2, 0x02, 0xa3, 0x5b, 0x5c,
- 0x5b, 0x00, 0x9f, 0x44, 0x00, 0x00, 0x06, 0x03,
- 0x07, 0x07, 0x07, 0x06, 0x00, 0x20, 0x00, 0xf0,
- 0xc2, 0xf8, 0x80, 0xbd, 0x05, 0x21, 0x01, 0x70,
- 0x80, 0xbd, 0x04, 0x21, 0x0b, 0x20, 0xe8, 0xf7,
- 0x0e, 0xfd, 0x80, 0xbd, 0x00, 0x00, 0x7c, 0xd9,
- 0x01, 0x00, 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0x88, 0x01, 0x00, 0x10, 0xb5, 0x0d, 0x4b,
- 0x04, 0x1c, 0x18, 0x1c, 0x10, 0x30, 0x00, 0x2c,
- 0x08, 0xd0, 0xdb, 0x88, 0x5b, 0x04, 0x5b, 0x0c,
- 0x0b, 0x80, 0x80, 0x7b, 0x48, 0x80, 0x04, 0x20,
- 0x10, 0x80, 0x08, 0xe0, 0xda, 0x88, 0x01, 0x24,
- 0xe4, 0x03, 0x22, 0x40, 0x0c, 0x88, 0x22, 0x43,
- 0xda, 0x80, 0x49, 0x88, 0x81, 0x73, 0x01, 0x20,
- 0x10, 0xbd, 0x00, 0x00, 0x30, 0x00, 0x07, 0x00,
- 0x3c, 0x00, 0xd0, 0x88, 0x01, 0x00, 0x70, 0xb5,
- 0x10, 0x4e, 0x02, 0x1c, 0x00, 0x23, 0xf0, 0x56,
- 0x00, 0x2a, 0x02, 0xd0, 0x08, 0x70, 0x01, 0x24,
- 0x15, 0xe0, 0x00, 0x23, 0xcd, 0x56, 0x85, 0x42,
- 0x01, 0xd1, 0x01, 0x20, 0x70, 0xbd, 0x28, 0x1c,
- 0x00, 0xf0, 0x5f, 0xf9, 0x04, 0x1c, 0x0a, 0xd0,
- 0x07, 0x48, 0x35, 0x70, 0x00, 0x68, 0x00, 0x28,
- 0x03, 0xd0, 0x00, 0x21, 0x0a, 0x20, 0xf9, 0xf7,
- 0x28, 0xfd, 0x3c, 0x00, 0x0c, 0x89, 0x01, 0x00,
- 0x00, 0xf0, 0x16, 0xfa, 0x20, 0x1c, 0x70, 0xbd,
- 0xf4, 0x6b, 0x01, 0x00, 0x3c, 0xd9, 0x01, 0x00,
- 0x03, 0x1c, 0x08, 0x1c, 0x00, 0x2b, 0x80, 0xb5,
- 0x06, 0xd0, 0x04, 0x21, 0x11, 0x80, 0x04, 0x22,
- 0x04, 0x49, 0xe7, 0xf7, 0xe3, 0xfd, 0x02, 0xe0,
- 0x00, 0x68, 0x00, 0xf0, 0xcf, 0xf9, 0x01, 0x20,
- 0x80, 0xbd, 0x00, 0x00, 0xf4, 0x74, 0x01, 0x00,
- 0x10, 0xb5, 0xff, 0xf7, 0x3c, 0x00, 0x48, 0x89,
- 0x01, 0x00, 0x97, 0xfb, 0xff, 0xf7, 0x89, 0xfc,
- 0x04, 0x1c, 0xff, 0xf7, 0xb8, 0xfb, 0xff, 0xf7,
- 0x84, 0xfc, 0x00, 0x2c, 0x02, 0xd1, 0x01, 0x28,
- 0x00, 0xd1, 0x10, 0xbd, 0x00, 0x20, 0x10, 0xbd,
- 0x00, 0x00, 0xf8, 0xb5, 0x20, 0x4f, 0x04, 0x1c,
- 0x78, 0x78, 0x0e, 0x1c, 0x02, 0x28, 0x2e, 0xd0,
- 0x1e, 0x4a, 0xf9, 0x68, 0x91, 0x61, 0x14, 0x23,
- 0x1d, 0x49, 0x58, 0x43, 0x40, 0x18, 0x3c, 0x00,
- 0x84, 0x89, 0x01, 0x00, 0x41, 0x7b, 0xb8, 0x78,
- 0xf8, 0xf7, 0x14, 0xfe, 0x00, 0xf0, 0x8a, 0xf9,
- 0x00, 0x25, 0x04, 0xe0, 0x00, 0x21, 0xb8, 0x78,
- 0xf8, 0xf7, 0x0c, 0xfe, 0x01, 0x35, 0x78, 0x78,
- 0x14, 0x23, 0x14, 0x49, 0x58, 0x43, 0x40, 0x18,
- 0x80, 0x7a, 0xa8, 0x42, 0xf2, 0xdc, 0x00, 0x25,
- 0x08, 0xe0, 0x00, 0x21, 0xb8, 0x78, 0xf8, 0xf7,
- 0xfd, 0xfd, 0x0f, 0x48, 0x00, 0x68, 0x20, 0x70,
- 0x3c, 0x00, 0xc0, 0x89, 0x01, 0x00, 0x01, 0x34,
- 0x01, 0x35, 0xb5, 0x42, 0xf4, 0xdb, 0x09, 0x4a,
- 0xf8, 0x68, 0x50, 0x61, 0x78, 0x78, 0x02, 0x28,
- 0x06, 0xd1, 0xb8, 0x68, 0x32, 0x1c, 0x21, 0x1c,
- 0x00, 0x04, 0x00, 0x0c, 0xff, 0xf7, 0x25, 0xfd,
- 0xb8, 0x68, 0x80, 0x19, 0xb8, 0x60, 0xf8, 0xbd,
- 0x00, 0x00, 0x40, 0xd9, 0x01, 0x00, 0x10, 0x00,
- 0x07, 0x00, 0x64, 0x8d, 0x01, 0x00, 0x30, 0x20,
- 0x07, 0x00, 0x3c, 0x00, 0xfc, 0x89, 0x01, 0x00,
- 0x70, 0xb5, 0x06, 0x1c, 0x0c, 0x4d, 0x00, 0x24,
- 0x2c, 0x70, 0xff, 0xf7, 0x39, 0xfc, 0x0a, 0x48,
- 0x18, 0x21, 0x1c, 0x30, 0xac, 0x60, 0xe7, 0xf7,
- 0x43, 0xfd, 0x08, 0x48, 0x44, 0x61, 0xf9, 0xf7,
- 0x63, 0xf9, 0x00, 0x2e, 0x06, 0xd1, 0x06, 0x48,
- 0x29, 0x69, 0xf6, 0xf7, 0xa7, 0xfc, 0x00, 0x20,
- 0xec, 0xf7, 0xb0, 0xfe, 0x70, 0xbd, 0x00, 0x00,
- 0x7c, 0xd9, 0x01, 0x00, 0x3c, 0x00, 0x38, 0x8a,
- 0x01, 0x00, 0x20, 0xf7, 0x01, 0x00, 0x34, 0x63,
- 0x01, 0x00, 0x30, 0xb5, 0x12, 0x4c, 0x85, 0xb0,
- 0x20, 0x68, 0x00, 0x28, 0x1c, 0xd0, 0x0f, 0x48,
- 0x14, 0x38, 0x80, 0x68, 0x00, 0x28, 0x01, 0xd1,
- 0xff, 0xf7, 0xc1, 0xfb, 0x20, 0x68, 0x00, 0x23,
- 0x00, 0x68, 0x01, 0xaa, 0x04, 0x30, 0x01, 0x21,
- 0xec, 0xf7, 0xd1, 0xfd, 0x08, 0x49, 0x08, 0x4a,
- 0x08, 0x31, 0x0c, 0x31, 0x00, 0x92, 0x3c, 0x00,
- 0x74, 0x8a, 0x01, 0x00, 0x03, 0xc9, 0x00, 0xab,
- 0x45, 0x18, 0x99, 0x7b, 0x01, 0x9a, 0x20, 0x68,
- 0x2b, 0x1c, 0xf2, 0xf7, 0x2b, 0xfe, 0x05, 0xb0,
- 0x30, 0xbd, 0x00, 0x00, 0x90, 0xd9, 0x01, 0x00,
- 0x29, 0x81, 0x01, 0x00, 0x10, 0xb5, 0x13, 0x4c,
- 0x14, 0x23, 0x60, 0x70, 0x58, 0x43, 0x12, 0x4b,
- 0xc1, 0x18, 0x8a, 0x88, 0xe2, 0x80, 0x18, 0x58,
- 0xe0, 0x60, 0x08, 0x7a, 0xa0, 0x70, 0xff, 0x28,
- 0x3c, 0x00, 0xb0, 0x8a, 0x01, 0x00, 0x12, 0xd0,
- 0x00, 0x22, 0x08, 0x21, 0x0d, 0x4b, 0xf8, 0xf7,
- 0x22, 0xfd, 0x00, 0x22, 0x02, 0x20, 0xe1, 0x68,
- 0xef, 0xf7, 0xbd, 0xfe, 0x0a, 0x49, 0xe0, 0x68,
- 0x48, 0x61, 0x4a, 0x68, 0x02, 0x43, 0x4a, 0x60,
- 0x8a, 0x68, 0x10, 0x43, 0x88, 0x60, 0x60, 0x78,
- 0x02, 0x28, 0x01, 0xd1, 0xff, 0xf7, 0xdf, 0xfc,
- 0x10, 0xbd, 0x40, 0xd9, 0x01, 0x00, 0x64, 0x8d,
- 0x01, 0x00, 0x3c, 0x00, 0xec, 0x8a, 0x01, 0x00,
- 0xb8, 0x0b, 0x00, 0x00, 0x10, 0x00, 0x07, 0x00,
- 0xfe, 0x30, 0x00, 0x06, 0x00, 0x0e, 0x06, 0x21,
- 0x15, 0x4b, 0x41, 0x43, 0x58, 0x5c, 0x82, 0x06,
- 0x14, 0x48, 0x92, 0x0e, 0x42, 0x71, 0xc9, 0x18,
- 0x4a, 0x78, 0xd2, 0x06, 0xd2, 0x0e, 0x02, 0x71,
- 0x42, 0x78, 0x0c, 0x23, 0x1a, 0x43, 0x42, 0x70,
- 0x42, 0x78, 0x8b, 0x78, 0x92, 0x08, 0x92, 0x00,
- 0x9b, 0x07, 0x9b, 0x0f, 0x3c, 0x00, 0x28, 0x8b,
- 0x01, 0x00, 0x1a, 0x43, 0x42, 0x70, 0x02, 0x78,
- 0xc0, 0x23, 0x9a, 0x43, 0x40, 0x32, 0x02, 0x70,
- 0x02, 0x78, 0x38, 0x23, 0x1a, 0x43, 0x02, 0x70,
- 0x02, 0x78, 0xc9, 0x78, 0x04, 0x23, 0x9a, 0x43,
- 0x89, 0x00, 0x19, 0x40, 0x11, 0x43, 0x01, 0x70,
- 0x01, 0x20, 0x70, 0x47, 0x00, 0x00, 0xd8, 0x8d,
- 0x01, 0x00, 0x88, 0x00, 0x07, 0x00, 0x8f, 0xb5,
- 0x00, 0x20, 0x02, 0x90, 0x03, 0x90, 0x3c, 0x00,
- 0x64, 0x8b, 0x01, 0x00, 0x07, 0x48, 0x02, 0xaa,
- 0x03, 0xa9, 0x00, 0x91, 0x01, 0x92, 0x43, 0x89,
- 0x02, 0x89, 0x03, 0xc8, 0xff, 0xf7, 0xd4, 0xfb,
- 0x03, 0x98, 0x02, 0x99, 0xff, 0xf7, 0x04, 0xfc,
- 0x8f, 0xbd, 0x00, 0x00, 0x04, 0x8e, 0x01, 0x00,
- 0x08, 0x49, 0x4a, 0x78, 0x00, 0x2a, 0x03, 0xd1,
- 0x88, 0x80, 0x00, 0x20, 0x88, 0x60, 0x70, 0x47,
- 0x14, 0x23, 0x5a, 0x43, 0x04, 0x4b, 0xd2, 0x18,
- 0x3c, 0x00, 0xa0, 0x8b, 0x01, 0x00, 0xd2, 0x88,
- 0x42, 0x43, 0xc8, 0x88, 0x42, 0x43, 0x8a, 0x60,
- 0x70, 0x47, 0x40, 0xd9, 0x01, 0x00, 0x64, 0x8d,
- 0x01, 0x00, 0xf8, 0xb5, 0x25, 0x4e, 0x04, 0x1c,
- 0x30, 0x7a, 0x40, 0x08, 0x40, 0x00, 0x30, 0x72,
- 0xb0, 0x7a, 0x00, 0x20, 0xb0, 0x72, 0x01, 0x27,
- 0x01, 0x2c, 0x20, 0x4d, 0x01, 0xd0, 0xfc, 0x42,
- 0x13, 0xd1, 0x30, 0x7b, 0x38, 0x43, 0x30, 0x73,
- 0x00, 0x22, 0x3c, 0x00, 0xdc, 0x8b, 0x01, 0x00,
- 0x21, 0x1c, 0x00, 0x20, 0xff, 0xf7, 0x6e, 0xfb,
- 0x63, 0x1c, 0x01, 0xd1, 0x3f, 0x21, 0xe9, 0x73,
- 0xb1, 0x7a, 0xa0, 0x22, 0x11, 0x43, 0xb1, 0x72,
- 0x31, 0x7a, 0x39, 0x43, 0x31, 0x72, 0xf8, 0xbd,
- 0x30, 0x7b, 0x40, 0x08, 0x40, 0x00, 0x30, 0x73,
- 0x01, 0x22, 0x21, 0x1c, 0x01, 0x20, 0xff, 0xf7,
- 0x59, 0xfb, 0x01, 0x20, 0x00, 0x21, 0xe9, 0x73,
- 0xb1, 0x7a, 0x02, 0x22, 0x3c, 0x00, 0x18, 0x8c,
- 0x01, 0x00, 0x11, 0x43, 0xb1, 0x72, 0xb1, 0x7a,
- 0x04, 0x22, 0x11, 0x43, 0xb1, 0x72, 0xb1, 0x7a,
- 0x30, 0x22, 0x11, 0x43, 0xb1, 0x72, 0x31, 0x7a,
- 0x39, 0x43, 0x31, 0x72, 0x08, 0x49, 0x4a, 0x68,
- 0x80, 0x23, 0x9a, 0x43, 0x4a, 0x60, 0x0a, 0x68,
- 0x1a, 0x43, 0x0a, 0x60, 0x31, 0x7b, 0x39, 0x43,
- 0x31, 0x73, 0xd7, 0xe7, 0x00, 0x00, 0x88, 0x00,
- 0x07, 0x00, 0x40, 0x00, 0x07, 0x00, 0x3c, 0x00,
- 0x54, 0x8c, 0x01, 0x00, 0x6c, 0x00, 0x07, 0x00,
- 0xb0, 0xb5, 0x0e, 0x4d, 0x0e, 0x48, 0x29, 0x69,
- 0xf6, 0xf7, 0x9e, 0xfb, 0x0d, 0x48, 0xec, 0xf7,
- 0x93, 0xfd, 0x0d, 0x48, 0x09, 0x4c, 0x00, 0x88,
- 0x1c, 0x34, 0xa0, 0x82, 0xf1, 0xf7, 0x5a, 0xff,
- 0x20, 0x61, 0xfa, 0xf7, 0x97, 0xf8, 0x02, 0x1c,
- 0x23, 0x1c, 0x00, 0x21, 0x00, 0x20, 0xec, 0xf7,
- 0x8b, 0xff, 0x32, 0x20, 0xe8, 0x60, 0xff, 0xf7,
- 0x3c, 0x00, 0x90, 0x8c, 0x01, 0x00, 0xa5, 0xfa,
- 0xb0, 0xbd, 0x7c, 0xd9, 0x01, 0x00, 0x34, 0x63,
- 0x01, 0x00, 0xdd, 0x84, 0x01, 0x00, 0x20, 0xf7,
- 0x01, 0x00, 0xb0, 0xb5, 0x0a, 0x4d, 0x68, 0x78,
- 0x00, 0x28, 0x0e, 0xd0, 0x14, 0x23, 0x08, 0x49,
- 0x58, 0x43, 0x40, 0x18, 0x44, 0x7a, 0x06, 0xe0,
- 0xa8, 0x68, 0xe0, 0x40, 0x01, 0x06, 0x09, 0x0e,
- 0xa8, 0x78, 0xf8, 0xf7, 0x76, 0xfc, 0x08, 0x3c,
- 0xf6, 0xd5, 0x3c, 0x00, 0xcc, 0x8c, 0x01, 0x00,
- 0xb0, 0xbd, 0x00, 0x00, 0x40, 0xd9, 0x01, 0x00,
- 0x64, 0x8d, 0x01, 0x00, 0x01, 0x1c, 0x14, 0x48,
- 0xb0, 0xb5, 0x01, 0x60, 0x13, 0x48, 0x02, 0x7f,
- 0x02, 0x23, 0x9a, 0x43, 0x02, 0x77, 0x02, 0x7f,
- 0x01, 0x24, 0x22, 0x43, 0x02, 0x77, 0x10, 0x4d,
- 0x00, 0x29, 0x0c, 0xd0, 0x01, 0x22, 0x00, 0x21,
- 0x03, 0x20, 0xef, 0xf7, 0x9f, 0xfd, 0x0d, 0x49,
- 0x48, 0x7c, 0xa0, 0x43, 0x3c, 0x00, 0x08, 0x8d,
- 0x01, 0x00, 0x48, 0x74, 0x68, 0x7a, 0x20, 0x43,
- 0x68, 0x72, 0xb0, 0xbd, 0x01, 0x7f, 0x21, 0x43,
- 0x01, 0x77, 0x68, 0x7a, 0x40, 0x08, 0x40, 0x00,
- 0x68, 0x72, 0x01, 0x22, 0x00, 0x21, 0x03, 0x20,
- 0xef, 0xf7, 0xb1, 0xfd, 0xb0, 0xbd, 0xf4, 0x74,
- 0x01, 0x00, 0x30, 0x00, 0x07, 0x00, 0x88, 0x00,
- 0x07, 0x00, 0x10, 0x00, 0x07, 0x00, 0x10, 0xb5,
- 0x07, 0x4c, 0x21, 0x1c, 0x00, 0x20, 0x3c, 0x00,
- 0x44, 0x8d, 0x01, 0x00, 0xf9, 0xf7, 0x56, 0xfb,
- 0x05, 0x48, 0x00, 0x23, 0xc0, 0x56, 0x01, 0x28,
- 0x03, 0xdd, 0x21, 0x1c, 0x00, 0x20, 0xf9, 0xf7,
- 0x19, 0xfb, 0x10, 0xbd, 0x65, 0x1a, 0x00, 0x00,
- 0xf4, 0x6b, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00,
- 0x08, 0x01, 0x01, 0x00, 0x02, 0x18, 0x04, 0xff,
- 0x82, 0xe8, 0xd7, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
- 0x3c, 0x00, 0x80, 0x8d, 0x01, 0x00, 0x00, 0x18,
- 0x00, 0x06, 0x02, 0x03, 0x05, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x01, 0x00, 0xff, 0x10, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x00, 0x20, 0x00, 0x01, 0x00, 0x02, 0x10,
- 0x00, 0x06, 0x02, 0x03, 0x05, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0c,
- 0x0d, 0x0e, 0x3c, 0x00, 0xbc, 0x8d, 0x01, 0x00,
- 0xff, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1b,
- 0x1c, 0x1d, 0xff, 0x1a, 0x11, 0x13, 0x12, 0x0f,
- 0x10, 0xff, 0x02, 0x00, 0xff, 0x01, 0x03, 0x09,
- 0x0a, 0x0b, 0x00, 0x00, 0x30, 0x0d, 0x02, 0x00,
- 0x00, 0x00, 0x28, 0x0e, 0x03, 0x00, 0x00, 0x00,
- 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0d,
- 0x02, 0x01, 0x00, 0x00, 0x1e, 0x0c, 0x00, 0x01,
- 0x00, 0x00, 0x23, 0x0d, 0x3c, 0x00, 0xf8, 0x8d,
- 0x01, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1d, 0x0d,
- 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe,
- 0xfb, 0x6d, 0x00, 0x00, 0x80, 0x00, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0x8e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0x8e, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0x8e, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0x8e,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0x8f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0x8f, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0x8f, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0x8f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0x90, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0x90, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0x90,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0x91, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0x91, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0x91, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0x91,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0x91, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0x92, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0x92, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0x92,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0x93, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0x93, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0x93,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0x93, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0x94, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0x94, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0x94,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0x94, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0x95, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0x95,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0x95, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0x95, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0x96, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0x96,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0x96, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0x96, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0x97, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0x97,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0x97, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0x97, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x98, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0x98,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0x98, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0x98, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0x99,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0x99, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0x99, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0x99, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0x9a,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0x9a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0x9a, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0x9a, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0x9b,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0x9b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0x9b, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0x9b, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0x9c,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0x9c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0x9c, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0x9c, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x9c,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0x9d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0x9d, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0x9d, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0x9d,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0x9e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0x9e, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0x9e, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0x9e,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0x9f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0x9f, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0x9f, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0x9f,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xa0, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0xa0, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xa0,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0xa1, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0xa1, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0xa1,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0xa2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xa2, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xa2,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xa2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0xa3, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0xa3, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0xa3,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0xa3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xa4, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xa4,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0xa4, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0xa5, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0xa5,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0xa5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0xa5, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0xa6, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0xa6,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0xa6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0xa6, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0xa7, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0xa7,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0xa7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0xa7, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0xa7, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0xa8,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0xa8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0xa8, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0xa8, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0xa9,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0xa9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0xa9, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0xa9, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0xaa,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0xaa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0xaa, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0xaa, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0xab,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0xab, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0xab, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0xab, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0xab,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xac, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0xac, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0xac, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xac,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0xad, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0xad, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0xad, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0xad,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0xae, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0xae, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0xae, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0xae,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0xaf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xaf, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0xaf, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xaf,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0xaf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0xb0, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0xb0, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0xb0,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xb0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0xb1, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xb1, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xb1,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xb1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0xb2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0xb2, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0xb2,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0xb2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xb3, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xb3,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0xb3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0xb3, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0xb4, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0xb4,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0xb4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0xb4, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0xb5, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0xb5,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0xb5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0xb5, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0xb6, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0xb6,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0xb6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0xb6, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0xb6, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0xb7,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0xb7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0xb7, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0xb7, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0xb8,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0xb8, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0xb8, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0xb9,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0xb9, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0xb9, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0xba,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0xba, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0xba, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0xba, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0xba,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0xbb, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0xbb, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xbb,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0xbc, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0xbc, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0xbc,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0xbd, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0xbd, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0xbd,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0xbe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xbe, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0xbe, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xbe,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0xbe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0xbf, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0xbf, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0xbf,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0xc0, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xc0, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xc0,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0xc1, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0xc1, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0xc1,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xc2, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xc2,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0xc2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0xc2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0xc3, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0xc3,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0xc3, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0xc4, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0xc4,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0xc4, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0xc5, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0xc5,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0xc5, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0xc5, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0xc6,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0xc6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0xc6, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0xc6, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0xc7,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0xc7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0xc7, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0xc7, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0xc8,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0xc8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0xc8, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0xc8, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0xc9,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0xc9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0xc9, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0xc9, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0xc9,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xca, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0xca, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0xca, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xca,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0xcb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0xcb, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0xcb, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0xcb,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0xcc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0xcc, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0xcc, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0xcc,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0xcd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xcd, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0xcd, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xcd,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0xcd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0xce, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0xce, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0xce,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xce, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0xcf, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xcf, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xcf,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xcf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0xd0, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0xd0, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0xd0,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0xd0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xd1, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xd1,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0xd1, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0xd2, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0xd2,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0xd2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0xd2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0xd3, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0xd3,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0xd3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0xd3, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0xd4, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0xd4,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0xd4, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0xd4, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0xd5,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0xd5, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0xd5, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0xd6,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0xd6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0xd6, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0xd6, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0xd7,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0xd7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0xd7, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0xd7, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0xd8,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0xd8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0xd8, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0xd8, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0xd8,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xd9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0xd9, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0xd9, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xd9,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0xda, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0xda, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0xda, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0xda,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0xdb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0xdb, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0xdb, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0xdb,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xdc, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0xdc, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xdc,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0xdd, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0xdd, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0xdd,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xdd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0xde, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xde, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xde,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xde, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0xdf, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0xdf, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0xdf,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0xdf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xe0, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xe0,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0xe0, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0xe1, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0xe1,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0xe1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0xe1, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0xe2, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0xe2,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0xe2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0xe2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0xe3, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0xe3,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0xe3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0xe3, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0xe3, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0xe4,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0xe4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0xe4, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0xe4, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0xe5,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0xe5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0xe5, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0xe5, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0xe6,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0xe6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0xe6, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0xe6, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0xe7,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0xe7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0xe7, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0xe7, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0xe7,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0xe8, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0xe8, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xe8,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0xe9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0xe9, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0xe9, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0xe9,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0xea, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0xea, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0xea, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0xea,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0xeb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xeb, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0xeb, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xeb,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0xeb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0xec, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0xec, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0xec,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xec, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0xed, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xed, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xed,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0xee, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0xee, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0xee,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0xee, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xef, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xef,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0xef, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0xef, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0xf0, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x68, 0xf0,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xa4, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xe0, 0xf0, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x1c, 0xf1, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x58, 0xf1,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x94, 0xf1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xd0, 0xf1, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x0c, 0xf2, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x48, 0xf2,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x84, 0xf2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xc0, 0xf2, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xfc, 0xf2, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0xf3,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x74, 0xf3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xb0, 0xf3, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xec, 0xf3, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x28, 0xf4,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x64, 0xf4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xa0, 0xf4, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xdc, 0xf4, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x18, 0xf5,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x54, 0xf5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x90, 0xf5, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xcc, 0xf5, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0xf6,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x44, 0xf6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x80, 0xf6, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xbc, 0xf6, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0xf6,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x34, 0xf7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x70, 0xf7, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0xac, 0xf7, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe8, 0xf7,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x24, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x60, 0xf8, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x9c, 0xf8, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xd8, 0xf8,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x14, 0xf9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x50, 0xf9, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x8c, 0xf9, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xc8, 0xf9,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x04, 0xfa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x40, 0xfa, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x7c, 0xfa, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xb8, 0xfa,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xf4, 0xfa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x30, 0xfb, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x6c, 0xfb, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xa8, 0xfb,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xe4, 0xfb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x20, 0xfc, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x5c, 0xfc, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x98, 0xfc,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xd4, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x10, 0xfd, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x4c, 0xfd, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x88, 0xfd,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xc4, 0xfd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x3c, 0xfe, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xfe,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0xb4, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x00, 0xf0, 0xfe, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3c, 0x00, 0x2c, 0xff, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x68, 0xff,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
- 0x00, 0x10, 0x04, 0x00, 0x70, 0xb5, 0x2b, 0x48,
- 0x06, 0x21, 0x81, 0x75, 0xc1, 0x75, 0x01, 0x7e,
- 0x49, 0x08, 0x49, 0x00, 0x01, 0x76, 0x01, 0x7e,
- 0x02, 0x22, 0x91, 0x43, 0x01, 0x76, 0x26, 0x49,
- 0x0b, 0x78, 0x5b, 0x08, 0x5b, 0x00, 0x0b, 0x70,
- 0x04, 0x23, 0x8b, 0x70, 0x0c, 0x23, 0x43, 0x76,
- 0x20, 0x23, 0x03, 0x75, 0x1a, 0x24, 0x44, 0x75,
- 0x24, 0x24, 0x84, 0x76, 0x10, 0x24, 0xc4, 0x76,
- 0x3c, 0x00, 0x3c, 0x10, 0x04, 0x00, 0x2a, 0x25,
- 0x4d, 0x70, 0x05, 0x7a, 0x30, 0x26, 0xb5, 0x43,
- 0x20, 0x35, 0x05, 0x72, 0x85, 0x7a, 0x6d, 0x08,
- 0x6d, 0x00, 0x85, 0x72, 0x85, 0x7a, 0x95, 0x43,
- 0x85, 0x72, 0x85, 0x7a, 0x04, 0x26, 0x35, 0x43,
- 0x85, 0x72, 0x85, 0x7a, 0x08, 0x26, 0x35, 0x43,
- 0x85, 0x72, 0x85, 0x7a, 0xa5, 0x43, 0x85, 0x72,
- 0x05, 0x7b, 0x2c, 0x43, 0x04, 0x73, 0x04, 0x7b,
- 0x1c, 0x43, 0x3c, 0x00, 0x78, 0x10, 0x04, 0x00,
- 0x04, 0x73, 0x04, 0x7b, 0x40, 0x25, 0x2c, 0x43,
- 0x04, 0x73, 0x84, 0x7a, 0x23, 0x43, 0x83, 0x72,
- 0x83, 0x7a, 0xab, 0x43, 0x83, 0x72, 0x03, 0x7b,
- 0x80, 0x24, 0x23, 0x43, 0x03, 0x73, 0x08, 0x78,
- 0x90, 0x43, 0x08, 0x70, 0x08, 0x78, 0x01, 0x22,
- 0x10, 0x43, 0x08, 0x70, 0x08, 0x78, 0x04, 0x22,
- 0x90, 0x43, 0x08, 0x70, 0x70, 0xbd, 0x00, 0x00,
- 0x0c, 0x80, 0x07, 0x00, 0x3c, 0x00, 0xb4, 0x10,
- 0x04, 0x00, 0x80, 0x80, 0x07, 0x00, 0x01, 0x49,
- 0x04, 0x20, 0x48, 0x73, 0x70, 0x47, 0x40, 0x80,
- 0x07, 0x00, 0x03, 0x49, 0x80, 0xb5, 0x00, 0x20,
- 0x08, 0x80, 0x00, 0xf0, 0x0a, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0xfc, 0x6b, 0x01, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x80, 0xb5, 0x00, 0xf0, 0x67, 0xfb,
- 0x80, 0xbd, 0x80, 0xb5, 0x0a, 0x49, 0x18, 0x20,
- 0xc1, 0xf7, 0x3b, 0xfa, 0x09, 0x49, 0x3c, 0x00,
- 0xf0, 0x10, 0x04, 0x00, 0x02, 0x20, 0xc1, 0xf7,
- 0x37, 0xfa, 0x08, 0x49, 0x1f, 0x20, 0xc1, 0xf7,
- 0x33, 0xfa, 0x07, 0x49, 0x1c, 0x20, 0xc1, 0xf7,
- 0x2f, 0xfa, 0x06, 0x49, 0x03, 0x20, 0xc1, 0xf7,
- 0x2b, 0xfa, 0x80, 0xbd, 0x99, 0x2a, 0x00, 0x00,
- 0x41, 0x25, 0x00, 0x00, 0x55, 0x25, 0x00, 0x00,
- 0x5d, 0x25, 0x00, 0x00, 0x39, 0x25, 0x00, 0x00,
- 0x80, 0xb5, 0xbf, 0xf7, 0x91, 0xfd, 0x80, 0xbd,
- 0x3c, 0x00, 0x2c, 0x11, 0x04, 0x00, 0x80, 0xb5,
- 0x05, 0x4a, 0x05, 0x49, 0x0a, 0x20, 0xbf, 0xf7,
- 0x4e, 0xff, 0x01, 0x20, 0x04, 0x49, 0x80, 0x02,
- 0x08, 0x60, 0x48, 0x60, 0x80, 0xbd, 0xb4, 0x74,
- 0x01, 0x00, 0xb1, 0x64, 0x00, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x80, 0xb5, 0x00, 0xf0, 0x91, 0xfe,
- 0x80, 0xbd, 0x80, 0xb5, 0x05, 0x4a, 0x05, 0x49,
- 0x1b, 0x20, 0xbf, 0xf7, 0x38, 0xff, 0x01, 0x20,
- 0x04, 0x49, 0x3c, 0x00, 0x68, 0x11, 0x04, 0x00,
- 0xc0, 0x06, 0x08, 0x60, 0x48, 0x60, 0x80, 0xbd,
- 0xb8, 0x74, 0x01, 0x00, 0x2d, 0x6e, 0x00, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0x80, 0xb5, 0x04, 0x48,
- 0x00, 0xf0, 0x80, 0xfe, 0x03, 0x49, 0x00, 0x20,
- 0x48, 0x60, 0x88, 0x60, 0x80, 0xbd, 0x00, 0x00,
- 0x41, 0x4b, 0x00, 0x00, 0xbc, 0x74, 0x01, 0x00,
- 0x80, 0xb5, 0xc5, 0xf7, 0xd5, 0xfe, 0xce, 0xf7,
- 0xd9, 0xf8, 0x03, 0x49, 0x3c, 0x00, 0xa4, 0x11,
- 0x04, 0x00, 0x08, 0x60, 0x03, 0x49, 0x0a, 0x20,
- 0xd1, 0xf7, 0xef, 0xf8, 0x80, 0xbd, 0xbc, 0x74,
- 0x01, 0x00, 0x49, 0x6e, 0x00, 0x00, 0x80, 0xb5,
- 0x01, 0x22, 0x20, 0x21, 0x06, 0x20, 0xc8, 0xf7,
- 0x56, 0xfc, 0xbf, 0xf7, 0x70, 0xfe, 0x03, 0x49,
- 0x00, 0x20, 0x08, 0x60, 0x20, 0x21, 0x02, 0x48,
- 0xbf, 0xf7, 0x63, 0xf9, 0x80, 0xbd, 0xcc, 0x5c,
- 0x01, 0x00, 0x64, 0x6d, 0x01, 0x00, 0x3c, 0x00,
- 0xe0, 0x11, 0x04, 0x00, 0x08, 0x48, 0x80, 0xb5,
- 0x00, 0x68, 0x00, 0x28, 0x05, 0xd0, 0x06, 0x48,
- 0x54, 0x30, 0x42, 0x6a, 0x00, 0x21, 0xbf, 0xf7,
- 0xf3, 0xf8, 0x04, 0x4a, 0x04, 0x49, 0x03, 0x20,
- 0xbf, 0xf7, 0xac, 0xfd, 0x80, 0xbd, 0x00, 0x00,
- 0x50, 0x6d, 0x01, 0x00, 0x89, 0x98, 0x00, 0x00,
- 0x91, 0x98, 0x00, 0x00, 0x80, 0xb5, 0x00, 0xf0,
- 0x03, 0xf8, 0x00, 0xf0, 0x19, 0xf8, 0x80, 0xbd,
- 0x3c, 0x00, 0x1c, 0x12, 0x04, 0x00, 0x10, 0xb5,
- 0x09, 0x4c, 0x60, 0x21, 0x20, 0x1c, 0xbf, 0xf7,
- 0x3a, 0xf9, 0x00, 0x20, 0xc0, 0x43, 0xa0, 0x60,
- 0x20, 0x60, 0xff, 0x20, 0x02, 0x30, 0xe0, 0x84,
- 0x20, 0x22, 0x20, 0x1c, 0x40, 0x30, 0x02, 0x49,
- 0xbf, 0xf7, 0x5b, 0xf9, 0x10, 0xbd, 0x00, 0x10,
- 0x07, 0x00, 0x70, 0x52, 0x01, 0x00, 0x00, 0x20,
- 0x0a, 0x49, 0xc0, 0x43, 0x88, 0x60, 0x09, 0x4b,
- 0x0a, 0x49, 0x3c, 0x00, 0x58, 0x12, 0x04, 0x00,
- 0x00, 0x20, 0x82, 0x00, 0x01, 0x30, 0x00, 0x06,
- 0x00, 0x0e, 0x20, 0x28, 0x99, 0x50, 0xf8, 0xd3,
- 0x06, 0x49, 0x04, 0x4a, 0x08, 0x1c, 0x10, 0x30,
- 0x08, 0x3a, 0x03, 0xc2, 0x70, 0x47, 0x00, 0x00,
- 0x00, 0x10, 0x07, 0x00, 0xe0, 0x7e, 0x01, 0x00,
- 0x75, 0x75, 0x00, 0x00, 0x00, 0xa0, 0x07, 0x00,
- 0x04, 0x48, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23,
- 0x0e, 0xc0, 0x0c, 0x38, 0x3c, 0x00, 0x94, 0x12,
- 0x04, 0x00, 0x01, 0x21, 0x41, 0x60, 0x70, 0x47,
- 0x00, 0x00, 0x70, 0x78, 0x01, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x03, 0x48, 0x00, 0x21, 0x00, 0x22,
- 0x00, 0x23, 0x0e, 0xc0, 0x08, 0xc0, 0x70, 0x47,
- 0x00, 0x00, 0x88, 0x5a, 0x01, 0x00, 0x04, 0x49,
- 0x80, 0xb5, 0x00, 0x20, 0x48, 0x61, 0x02, 0x48,
- 0x40, 0x21, 0x1c, 0x30, 0xbf, 0xf7, 0xe9, 0xf8,
- 0x80, 0xbd, 0xfc, 0x5a, 0x01, 0x00, 0x3c, 0x00,
- 0xd0, 0x12, 0x04, 0x00, 0x80, 0xb5, 0xce, 0xf7,
- 0x3f, 0xf8, 0x03, 0x49, 0x88, 0x61, 0x03, 0x49,
- 0x03, 0x20, 0xd1, 0xf7, 0x55, 0xf8, 0x80, 0xbd,
- 0xfc, 0x5a, 0x01, 0x00, 0x0d, 0x17, 0x01, 0x00,
- 0x80, 0xb5, 0xc0, 0xf7, 0xa5, 0xf9, 0x80, 0xbd,
- 0xfe, 0xb5, 0x6c, 0x49, 0x00, 0x20, 0x00, 0x90,
- 0xc8, 0x78, 0x6b, 0x4c, 0x6b, 0x4f, 0x43, 0x07,
- 0xc0, 0x06, 0xc0, 0x17, 0xdb, 0x0e, 0xe3, 0x58,
- 0x3c, 0x00, 0x0c, 0x13, 0x04, 0x00, 0x01, 0x30,
- 0x38, 0x62, 0x3b, 0x61, 0x08, 0x1c, 0x80, 0x78,
- 0x66, 0x4e, 0x03, 0x22, 0x41, 0x07, 0xa0, 0x36,
- 0x02, 0x96, 0x49, 0x0f, 0x31, 0x72, 0x89, 0x00,
- 0x61, 0x58, 0x3c, 0x1c, 0x61, 0x61, 0x01, 0x91,
- 0xc0, 0x06, 0xc0, 0x0f, 0x78, 0x62, 0x20, 0x1c,
- 0x00, 0x27, 0x87, 0x61, 0x00, 0x20, 0x21, 0x1c,
- 0xc8, 0x61, 0x59, 0x48, 0x59, 0x49, 0x00, 0x78,
- 0x09, 0x79, 0x3c, 0x00, 0x48, 0x13, 0x04, 0x00,
- 0x5a, 0x4c, 0x4e, 0x07, 0x76, 0x0f, 0x71, 0x1c,
- 0x8c, 0x46, 0xb1, 0x00, 0x8e, 0x46, 0x56, 0x49,
- 0x80, 0x31, 0x00, 0x28, 0x24, 0xd0, 0x52, 0x4f,
- 0x01, 0x28, 0x7f, 0x78, 0x1a, 0xd0, 0x02, 0x28,
- 0x71, 0xd1, 0x4f, 0x48, 0x00, 0x2f, 0x0c, 0xd0,
- 0x01, 0x2f, 0x6c, 0xd1, 0x40, 0x79, 0x4d, 0x4d,
- 0x40, 0x07, 0x40, 0x0f, 0x82, 0x00, 0xaa, 0x58,
- 0x4b, 0x4d, 0x01, 0x30, 0x3c, 0x00, 0x84, 0x13,
- 0x04, 0x00, 0xea, 0x61, 0xa0, 0x73, 0x04, 0x22,
- 0x4b, 0x48, 0x48, 0x4d, 0xc8, 0x61, 0x4a, 0x48,
- 0x00, 0x2f, 0x00, 0xd0, 0x4a, 0x48, 0x2f, 0x1c,
- 0x11, 0xe0, 0x42, 0x48, 0x00, 0x2f, 0x55, 0xd1,
- 0x07, 0x70, 0x02, 0x27, 0x47, 0x70, 0x3f, 0x48,
- 0x40, 0x78, 0x00, 0x28, 0x10, 0xd0, 0x01, 0x28,
- 0x01, 0xd0, 0x02, 0x28, 0x4a, 0xd1, 0x3f, 0x48,
- 0x3d, 0x4f, 0xc8, 0x61, 0x3f, 0x48, 0x3c, 0x00,
- 0xc0, 0x13, 0x04, 0x00, 0x88, 0x61, 0x3a, 0x49,
- 0x70, 0x46, 0x08, 0x58, 0x35, 0x1c, 0xb8, 0x61,
- 0x60, 0x46, 0x60, 0x73, 0x04, 0xe0, 0x3c, 0x48,
- 0x02, 0x22, 0x88, 0x61, 0x3b, 0x48, 0xc8, 0x61,
- 0x00, 0x20, 0x32, 0x49, 0x06, 0xe0, 0x0e, 0x18,
- 0xb6, 0x78, 0x76, 0x07, 0x76, 0x0f, 0x04, 0x2e,
- 0x2f, 0xd8, 0x01, 0x30, 0x90, 0x42, 0xf6, 0xd3,
- 0xc8, 0x79, 0x2e, 0x4f, 0xc0, 0x07, 0xc0, 0x0f,
- 0x3c, 0x00, 0xfc, 0x13, 0x04, 0x00, 0xf8, 0x60,
- 0x33, 0x48, 0x41, 0x68, 0x19, 0x43, 0x41, 0x60,
- 0x81, 0x68, 0x19, 0x43, 0x81, 0x60, 0x01, 0x9a,
- 0xb9, 0x69, 0x8c, 0x46, 0x11, 0x43, 0xfa, 0x69,
- 0x86, 0x68, 0x11, 0x43, 0x8e, 0x43, 0x86, 0x60,
- 0x46, 0x68, 0x31, 0x43, 0x41, 0x60, 0x01, 0x99,
- 0x0b, 0x43, 0x18, 0x1c, 0x61, 0x46, 0x08, 0x43,
- 0x10, 0x43, 0x01, 0x1c, 0x00, 0x22, 0x02, 0x20,
- 0xc7, 0xf7, 0x3c, 0x00, 0x38, 0x14, 0x04, 0x00,
- 0x03, 0xfa, 0x1e, 0x4e, 0x40, 0x3e, 0x70, 0x78,
- 0xc0, 0x08, 0xc0, 0x00, 0x28, 0x43, 0x70, 0x70,
- 0x70, 0x1c, 0x01, 0x78, 0x00, 0xe0, 0x29, 0xe0,
- 0x08, 0x25, 0xa9, 0x43, 0x01, 0x70, 0x01, 0x20,
- 0xc0, 0x43, 0xb0, 0x80, 0x00, 0x21, 0x01, 0x20,
- 0xcf, 0xf7, 0x6c, 0xfc, 0x30, 0x1c, 0x80, 0x30,
- 0x81, 0x78, 0x09, 0x09, 0x09, 0x01, 0x81, 0x70,
- 0x0f, 0x21, 0x01, 0x70, 0x3c, 0x00, 0x74, 0x14,
- 0x04, 0x00, 0x16, 0x4a, 0x69, 0x04, 0x11, 0x60,
- 0x51, 0x60, 0x02, 0x9e, 0x10, 0x21, 0x32, 0x7a,
- 0x7b, 0x6a, 0x00, 0x2b, 0x00, 0xd1, 0x00, 0x21,
- 0x11, 0x43, 0x21, 0x73, 0x81, 0x78, 0x29, 0x43,
- 0x81, 0x70, 0xe0, 0x78, 0x01, 0x21, 0x08, 0x43,
- 0xe0, 0x70, 0xd2, 0xf7, 0xf2, 0xf9, 0x01, 0x20,
- 0x00, 0x90, 0x00, 0x98, 0xfe, 0xbd, 0xc0, 0x57,
- 0x01, 0x00, 0x6c, 0x43, 0x01, 0x00, 0x3c, 0x00,
- 0xb0, 0x14, 0x04, 0x00, 0xa4, 0x6c, 0x01, 0x00,
- 0x40, 0x90, 0x07, 0x00, 0xc9, 0x1d, 0x00, 0x00,
- 0x81, 0x1d, 0x00, 0x00, 0xa5, 0x1d, 0x00, 0x00,
- 0x99, 0x1d, 0x00, 0x00, 0xf1, 0x1d, 0x00, 0x00,
- 0x10, 0x00, 0x07, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0x03, 0x49, 0x00, 0x20, 0x88, 0x62, 0x08, 0x70,
- 0x48, 0x70, 0x08, 0x71, 0x08, 0x62, 0x70, 0x47,
- 0xac, 0x7e, 0x01, 0x00, 0x80, 0xb5, 0x01, 0x21,
- 0x3c, 0x00, 0xec, 0x14, 0x04, 0x00, 0x00, 0x20,
- 0xcd, 0xf7, 0x69, 0xff, 0x80, 0xbd, 0xb0, 0xb5,
- 0x0f, 0x48, 0xc0, 0xf7, 0x18, 0xfc, 0x0e, 0x4d,
- 0x03, 0x20, 0x28, 0x70, 0x0d, 0x49, 0x0d, 0x48,
- 0x0c, 0x39, 0x48, 0x60, 0x0d, 0x48, 0x0a, 0x4c,
- 0x88, 0x60, 0x40, 0x21, 0x18, 0x34, 0x20, 0x1c,
- 0xbe, 0xf7, 0xc1, 0xff, 0xff, 0x21, 0x68, 0x68,
- 0x09, 0x06, 0x08, 0x43, 0x20, 0x60, 0xff, 0x21,
- 0x06, 0x22, 0x3c, 0x00, 0x28, 0x15, 0x04, 0x00,
- 0x20, 0x1d, 0xbf, 0xf7, 0x79, 0xf8, 0x01, 0x20,
- 0xe0, 0x60, 0xb0, 0xbd, 0xc0, 0xa8, 0x13, 0x0a,
- 0x20, 0x6e, 0x01, 0x00, 0xc0, 0xa8, 0x13, 0x01,
- 0xff, 0xff, 0xff, 0x00, 0x80, 0xb5, 0x02, 0x49,
- 0x01, 0x20, 0xc8, 0xf7, 0x45, 0xff, 0x80, 0xbd,
- 0x9d, 0x1c, 0x00, 0x00, 0x98, 0xb5, 0x0c, 0x4c,
- 0x00, 0x20, 0x60, 0x60, 0xe0, 0x60, 0x0b, 0x4b,
- 0x0b, 0x49, 0x82, 0x00, 0x3c, 0x00, 0x64, 0x15,
- 0x04, 0x00, 0x01, 0x30, 0x20, 0x28, 0x99, 0x50,
- 0xfa, 0xdb, 0x6a, 0x46, 0x09, 0x49, 0x05, 0x20,
- 0xbf, 0xf7, 0x2f, 0xfd, 0x00, 0x20, 0xc0, 0x43,
- 0x20, 0x60, 0x06, 0x49, 0x20, 0x20, 0x08, 0x60,
- 0x48, 0x60, 0x98, 0xbd, 0x00, 0x00, 0x00, 0x40,
- 0x07, 0x00, 0x30, 0x74, 0x01, 0x00, 0xa9, 0x75,
- 0x00, 0x00, 0xb5, 0x9f, 0x00, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x05, 0x49, 0x00, 0x20, 0x3c, 0x00,
- 0xa0, 0x15, 0x04, 0x00, 0x08, 0x60, 0x05, 0x48,
- 0x81, 0x78, 0x28, 0x22, 0x91, 0x43, 0x81, 0x70,
- 0x81, 0x78, 0x11, 0x43, 0x81, 0x70, 0x70, 0x47,
- 0x78, 0x6e, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x41, 0x48, 0x10, 0xb5,
- 0x00, 0x68, 0x02, 0x21, 0x88, 0x43, 0x3f, 0x49,
- 0x08, 0x60, 0x08, 0x1c, 0x00, 0x68, 0x02, 0x21,
- 0x08, 0x43, 0x3c, 0x49, 0x08, 0x60, 0x3c, 0x48,
- 0x3c, 0x00, 0xdc, 0x15, 0x04, 0x00, 0x40, 0x68,
- 0x80, 0x21, 0x88, 0x43, 0x3a, 0x49, 0x48, 0x60,
- 0x08, 0x1c, 0x00, 0x68, 0x80, 0x21, 0x08, 0x43,
- 0x37, 0x49, 0x08, 0x60, 0x37, 0x48, 0x01, 0x7a,
- 0x01, 0x24, 0x21, 0x43, 0x01, 0x72, 0x01, 0x7a,
- 0x02, 0x22, 0x11, 0x43, 0x01, 0x72, 0x01, 0x7a,
- 0x04, 0x22, 0x91, 0x43, 0x01, 0x72, 0x01, 0x7a,
- 0x08, 0x22, 0x11, 0x43, 0x01, 0x72, 0x01, 0x7b,
- 0x21, 0x43, 0x3c, 0x00, 0x18, 0x16, 0x04, 0x00,
- 0x01, 0x73, 0x01, 0x7b, 0x02, 0x22, 0x11, 0x43,
- 0x01, 0x73, 0x01, 0x7b, 0x04, 0x22, 0x11, 0x43,
- 0x01, 0x73, 0x01, 0x7b, 0x08, 0x22, 0x11, 0x43,
- 0x01, 0x73, 0x2e, 0x21, 0x41, 0x73, 0x81, 0x7b,
- 0x38, 0x22, 0x91, 0x43, 0x28, 0x31, 0x81, 0x73,
- 0x20, 0x21, 0x41, 0x74, 0x81, 0x7b, 0xc9, 0x08,
- 0xc9, 0x00, 0x03, 0x31, 0x81, 0x73, 0x22, 0x21,
- 0xc1, 0x73, 0x20, 0x49, 0x3c, 0x00, 0x54, 0x16,
- 0x04, 0x00, 0x09, 0x7a, 0x41, 0x72, 0x1e, 0x49,
- 0x49, 0x7a, 0x01, 0x74, 0x3c, 0x22, 0x02, 0x77,
- 0x01, 0x1c, 0x10, 0x31, 0x4a, 0x73, 0x50, 0x23,
- 0x8b, 0x73, 0x5a, 0x23, 0xcb, 0x73, 0x0d, 0x23,
- 0x01, 0x1c, 0x20, 0x31, 0x0b, 0x70, 0x17, 0x4b,
- 0x43, 0x84, 0x0e, 0x23, 0x4b, 0x70, 0x00, 0x21,
- 0x41, 0x82, 0x30, 0x21, 0x01, 0x70, 0x05, 0x21,
- 0x41, 0x70, 0x04, 0x21, 0x41, 0x71, 0x3c, 0x00,
- 0x90, 0x16, 0x04, 0x00, 0x84, 0x71, 0xc4, 0x71,
- 0x0c, 0x21, 0x01, 0x71, 0xf8, 0x21, 0x41, 0x80,
- 0x0f, 0x49, 0xca, 0x72, 0x8a, 0x72, 0x03, 0x22,
- 0x0a, 0x72, 0x09, 0x22, 0x4a, 0x72, 0x08, 0x22,
- 0x0a, 0x73, 0x02, 0x7a, 0x40, 0x23, 0x1a, 0x43,
- 0x02, 0x72, 0x4c, 0x73, 0xff, 0xf7, 0xa2, 0xfc,
- 0x08, 0x48, 0x01, 0x78, 0x21, 0x43, 0x01, 0x70,
- 0x10, 0xbd, 0x00, 0x00, 0xf0, 0x00, 0x07, 0x00,
- 0x3c, 0x00, 0xcc, 0x16, 0x04, 0x00, 0xf4, 0x00,
- 0x07, 0x00, 0x0c, 0x80, 0x07, 0x00, 0x76, 0x46,
- 0x01, 0x00, 0x24, 0x09, 0x00, 0x00, 0x80, 0x80,
- 0x07, 0x00, 0xa0, 0x80, 0x07, 0x00, 0x80, 0xb5,
- 0x18, 0x21, 0x09, 0x48, 0xbe, 0xf7, 0xd7, 0xfe,
- 0x08, 0x48, 0x00, 0x21, 0x3c, 0x38, 0x41, 0x60,
- 0x81, 0x60, 0xc1, 0x60, 0x01, 0x61, 0x41, 0x61,
- 0x81, 0x61, 0x01, 0x21, 0x01, 0x62, 0xff, 0xf7,
- 0x5c, 0xff, 0x3c, 0x00, 0x08, 0x17, 0x04, 0x00,
- 0xc0, 0xf7, 0x6c, 0xff, 0x80, 0xbd, 0x00, 0x00,
- 0x24, 0x7e, 0x01, 0x00, 0xb0, 0xb5, 0x21, 0x48,
- 0x00, 0x68, 0x40, 0x08, 0x1f, 0x49, 0x40, 0x00,
- 0x08, 0x60, 0x08, 0x1c, 0x00, 0x68, 0x01, 0x21,
- 0x08, 0x43, 0x1c, 0x49, 0x08, 0x60, 0x1c, 0x4a,
- 0x10, 0x79, 0x01, 0x21, 0x08, 0x43, 0x10, 0x71,
- 0x10, 0x79, 0x02, 0x21, 0x88, 0x43, 0x10, 0x71,
- 0x00, 0xf0, 0x6c, 0xf8, 0x3c, 0x00, 0x44, 0x17,
- 0x04, 0x00, 0x10, 0x7a, 0x01, 0x21, 0x08, 0x43,
- 0x10, 0x72, 0x10, 0x7a, 0xfe, 0x21, 0x88, 0x43,
- 0x0a, 0x30, 0x10, 0x72, 0x28, 0x20, 0x90, 0x72,
- 0x5a, 0x20, 0xd0, 0x72, 0x11, 0x4d, 0x14, 0x20,
- 0x28, 0x77, 0x2c, 0x1c, 0x10, 0x34, 0xa0, 0x73,
- 0x16, 0x20, 0xa8, 0x75, 0x18, 0x20, 0xe8, 0x75,
- 0xff, 0xf7, 0xa1, 0xfc, 0x0c, 0x48, 0x68, 0x86,
- 0xe0, 0x7b, 0x40, 0x06, 0x40, 0x0e, 0x3c, 0x00,
- 0x80, 0x17, 0x04, 0x00, 0x0e, 0x21, 0x08, 0x43,
- 0xe0, 0x73, 0xe0, 0x7b, 0x80, 0x21, 0x08, 0x43,
- 0xe0, 0x73, 0x07, 0x48, 0x41, 0x79, 0x04, 0x22,
- 0x11, 0x43, 0x41, 0x71, 0xb0, 0xbd, 0x00, 0x00,
- 0xf0, 0x00, 0x07, 0x00, 0x00, 0x80, 0x07, 0x00,
- 0x30, 0x80, 0x07, 0x00, 0xff, 0x01, 0x00, 0x00,
- 0x50, 0x00, 0x07, 0x00, 0x80, 0xb5, 0xff, 0xf7,
- 0xaf, 0xff, 0x00, 0x20, 0x14, 0x49, 0xc0, 0x43,
- 0x3c, 0x00, 0xbc, 0x17, 0x04, 0x00, 0x88, 0x60,
- 0xc1, 0xf7, 0x0b, 0xf9, 0x13, 0x49, 0x00, 0x20,
- 0x48, 0x62, 0xc8, 0x60, 0x48, 0x61, 0x08, 0x61,
- 0x88, 0x61, 0xc8, 0x61, 0x0f, 0x4b, 0x08, 0x62,
- 0x0f, 0x4a, 0x08, 0x63, 0x38, 0x33, 0x1a, 0x80,
- 0x01, 0x22, 0x5a, 0x71, 0x0b, 0x4a, 0x40, 0x32,
- 0xd0, 0x60, 0x13, 0x60, 0x08, 0x23, 0x13, 0x81,
- 0x50, 0x60, 0x09, 0x4a, 0x8a, 0x62, 0xff, 0x22,
- 0x0a, 0x70, 0x3c, 0x00, 0xf8, 0x17, 0x04, 0x00,
- 0x48, 0x70, 0x05, 0x48, 0x00, 0x21, 0x00, 0x22,
- 0x50, 0x30, 0x00, 0x23, 0x0e, 0xc0, 0xc1, 0xf7,
- 0xff, 0xf8, 0x80, 0xbd, 0x00, 0x30, 0x07, 0x00,
- 0x04, 0x6c, 0x01, 0x00, 0xbe, 0xba, 0x00, 0x00,
- 0x85, 0x75, 0x00, 0x00, 0x03, 0x48, 0x10, 0x21,
- 0x81, 0x71, 0x02, 0x21, 0xc1, 0x71, 0x30, 0x21,
- 0x41, 0x72, 0x70, 0x47, 0x00, 0x80, 0x07, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0x3c, 0x00, 0x34, 0x18,
- 0x04, 0x00, 0x00, 0xb5, 0xc1, 0xf7, 0xdb, 0xfb,
- 0x00, 0xbd, 0x70, 0x47, 0x00, 0x00, 0x80, 0xb5,
- 0xcd, 0xf7, 0x87, 0xfd, 0x01, 0x49, 0x88, 0x60,
- 0x80, 0xbd, 0x50, 0xd9, 0x01, 0x00, 0x80, 0xb5,
- 0x06, 0x21, 0x05, 0x48, 0xbe, 0xf7, 0xfd, 0xfd,
- 0x04, 0x49, 0x00, 0x20, 0x04, 0x39, 0x08, 0x60,
- 0x00, 0xf0, 0x67, 0xf8, 0x00, 0xf0, 0x03, 0xf8,
- 0x80, 0xbd, 0xec, 0x67, 0x01, 0x00, 0x3c, 0x00,
- 0x70, 0x18, 0x04, 0x00, 0x10, 0xb5, 0x07, 0x4c,
- 0x2c, 0x21, 0x20, 0x1c, 0xbe, 0xf7, 0x10, 0xfe,
- 0x01, 0x20, 0x20, 0x70, 0x03, 0x49, 0x00, 0x20,
- 0x1c, 0x39, 0xc8, 0x60, 0x08, 0x61, 0x88, 0x61,
- 0x10, 0xbd, 0x00, 0x00, 0x78, 0x69, 0x01, 0x00,
- 0x80, 0xb5, 0xcd, 0xf7, 0x5d, 0xfd, 0x09, 0x49,
- 0x88, 0x60, 0x09, 0x49, 0x08, 0x20, 0xd0, 0xf7,
- 0x73, 0xfd, 0x08, 0x49, 0x09, 0x20, 0xd0, 0xf7,
- 0x3c, 0x00, 0xac, 0x18, 0x04, 0x00, 0x6f, 0xfd,
- 0x07, 0x49, 0x11, 0x20, 0xd0, 0xf7, 0x6b, 0xfd,
- 0x06, 0x48, 0xc2, 0xf7, 0x74, 0xf9, 0x80, 0xbd,
- 0x00, 0x00, 0x78, 0x69, 0x01, 0x00, 0x21, 0x35,
- 0x00, 0x00, 0xa1, 0x38, 0x00, 0x00, 0x45, 0x34,
- 0x00, 0x00, 0xbd, 0x26, 0x01, 0x00, 0x80, 0xb5,
- 0x86, 0xb0, 0x0f, 0x48, 0xc4, 0xf7, 0x45, 0xf9,
- 0x00, 0xf0, 0x45, 0xf8, 0xff, 0xf7, 0xd7, 0xff,
- 0xff, 0xf7, 0x3c, 0x00, 0xe8, 0x18, 0x04, 0x00,
- 0xab, 0xff, 0x0c, 0x49, 0x03, 0x20, 0xd0, 0xf7,
- 0x4d, 0xfd, 0x0b, 0x48, 0x69, 0x46, 0x00, 0x90,
- 0x00, 0x20, 0x01, 0x90, 0x09, 0x48, 0x04, 0x90,
- 0x09, 0x48, 0x02, 0x90, 0x09, 0x48, 0x03, 0x90,
- 0x09, 0x48, 0x05, 0x90, 0x00, 0x20, 0xc4, 0xf7,
- 0xcf, 0xf8, 0x06, 0xb0, 0x80, 0xbd, 0x00, 0x00,
- 0xf4, 0x67, 0x01, 0x00, 0x45, 0x35, 0x00, 0x00,
- 0x95, 0x32, 0x00, 0x00, 0x3c, 0x00, 0x24, 0x19,
- 0x04, 0x00, 0xa0, 0x7d, 0x01, 0x00, 0xfd, 0x32,
- 0x00, 0x00, 0xcd, 0x31, 0x00, 0x00, 0x45, 0x7d,
- 0x01, 0x00, 0x10, 0xb5, 0xcd, 0xf7, 0xd5, 0xfc,
- 0x09, 0x48, 0x09, 0x4c, 0x30, 0x21, 0x60, 0x61,
- 0x08, 0x48, 0x74, 0x30, 0xbe, 0xf7, 0xa9, 0xfd,
- 0x00, 0x20, 0xa0, 0x62, 0x06, 0x49, 0x20, 0x61,
- 0xe1, 0x63, 0x60, 0x64, 0xa0, 0x64, 0x14, 0x21,
- 0x21, 0x65, 0x60, 0x62, 0x10, 0xbd, 0x3c, 0x00,
- 0x60, 0x19, 0x04, 0x00, 0xb9, 0x75, 0x00, 0x00,
- 0x44, 0x7d, 0x01, 0x00, 0x70, 0x17, 0x00, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x09, 0x20, 0x04, 0x4a,
- 0xd1, 0xf7, 0xe8, 0xfe, 0xcd, 0xf7, 0xec, 0xfc,
- 0x02, 0x49, 0x08, 0x63, 0x80, 0xbd, 0x00, 0x00,
- 0x39, 0x39, 0x00, 0x00, 0x44, 0x7d, 0x01, 0x00,
- 0x80, 0xb5, 0xac, 0x21, 0x03, 0x48, 0xbe, 0xf7,
- 0x83, 0xfd, 0x00, 0xf0, 0x51, 0xf8, 0x00, 0xf0,
- 0x3c, 0x00, 0x9c, 0x19, 0x04, 0x00, 0x49, 0xf8,
- 0x80, 0xbd, 0xa4, 0x6c, 0x01, 0x00, 0x08, 0xb5,
- 0x00, 0xf0, 0x4d, 0xf8, 0x00, 0xf0, 0x45, 0xf8,
- 0x00, 0x21, 0x16, 0x20, 0x18, 0x4a, 0xd1, 0xf7,
- 0xc8, 0xfe, 0x17, 0x4a, 0x04, 0x21, 0x10, 0x1c,
- 0x40, 0x30, 0x01, 0x70, 0x00, 0x21, 0x81, 0x70,
- 0x11, 0x21, 0xc1, 0x80, 0x14, 0x49, 0x01, 0x81,
- 0x10, 0x1c, 0x80, 0x30, 0xc1, 0x78, 0x08, 0x22,
- 0x91, 0x43, 0x3c, 0x00, 0xd8, 0x19, 0x04, 0x00,
- 0xc1, 0x70, 0xc1, 0x78, 0x11, 0x43, 0xc1, 0x70,
- 0x6a, 0x46, 0x0f, 0x49, 0x14, 0x20, 0xbf, 0xf7,
- 0xf5, 0xfa, 0x0e, 0x49, 0x07, 0x20, 0xd0, 0xf7,
- 0xcd, 0xfc, 0x0d, 0x49, 0x0f, 0x20, 0xd0, 0xf7,
- 0xc9, 0xfc, 0xcd, 0xf7, 0xab, 0xfc, 0x0b, 0x49,
- 0x08, 0x60, 0x0a, 0x48, 0x44, 0x38, 0x80, 0x68,
- 0x00, 0x28, 0x02, 0xd0, 0x00, 0x20, 0xc6, 0xf7,
- 0x6f, 0xf9, 0x08, 0xbd, 0x3c, 0x00, 0x14, 0x1a,
- 0x04, 0x00, 0xb5, 0x3b, 0x00, 0x00, 0x00, 0x90,
- 0x07, 0x00, 0xe7, 0xfd, 0x00, 0x00, 0x8d, 0x41,
- 0x00, 0x00, 0xcd, 0x48, 0x00, 0x00, 0xd9, 0x49,
- 0x00, 0x00, 0xa4, 0x6c, 0x01, 0x00, 0x80, 0xb5,
- 0x00, 0xf0, 0x6f, 0xfc, 0x80, 0xbd, 0x70, 0x47,
- 0x00, 0x00, 0x80, 0xb5, 0x00, 0xf0, 0x61, 0xfc,
- 0x80, 0xbd, 0x70, 0x47, 0x00, 0x00, 0xb0, 0xb5,
- 0x30, 0x21, 0x0c, 0x48, 0xbe, 0xf7, 0x3c, 0x00,
- 0x50, 0x1a, 0x04, 0x00, 0x25, 0xfd, 0x0b, 0x4c,
- 0x00, 0x25, 0x0a, 0x48, 0x84, 0x3c, 0x38, 0x22,
- 0x03, 0x21, 0x70, 0x38, 0x65, 0x60, 0xbe, 0xf7,
- 0xdd, 0xfd, 0x06, 0x48, 0x38, 0x22, 0x01, 0x21,
- 0x38, 0x38, 0xbe, 0xf7, 0xd7, 0xfd, 0x0e, 0x20,
- 0xa5, 0x60, 0x60, 0x70, 0x20, 0x70, 0x00, 0xf0,
- 0x1d, 0xf8, 0xb0, 0xbd, 0x94, 0x67, 0x01, 0x00,
- 0x04, 0x49, 0x00, 0xb5, 0x01, 0x20, 0x48, 0x60,
- 0x3c, 0x00, 0x8c, 0x1a, 0x04, 0x00, 0x88, 0x60,
- 0xc8, 0x60, 0xc3, 0xf7, 0xf8, 0xff, 0x00, 0xbd,
- 0x00, 0x00, 0xd4, 0x67, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x21, 0x0a, 0x20, 0x02, 0x4a, 0xd1, 0xf7,
- 0x50, 0xfe, 0x80, 0xbd, 0x00, 0x00, 0x1d, 0x5a,
- 0x00, 0x00, 0x80, 0xb5, 0x00, 0xf0, 0x05, 0xf8,
- 0x80, 0xbd, 0x80, 0xb5, 0x00, 0xf0, 0xfd, 0xfb,
- 0x80, 0xbd, 0x80, 0xb5, 0x02, 0x49, 0x04, 0x20,
- 0xd0, 0xf7, 0x3c, 0x00, 0xc8, 0x1a, 0x04, 0x00,
- 0x61, 0xfc, 0x80, 0xbd, 0x65, 0x1f, 0x00, 0x00,
- 0x00, 0x21, 0x17, 0x48, 0xc9, 0x43, 0x80, 0xb5,
- 0x16, 0x4b, 0x01, 0x70, 0x18, 0x1c, 0x10, 0x22,
- 0x20, 0x30, 0x02, 0x71, 0x00, 0x22, 0x10, 0x33,
- 0x9a, 0x73, 0x42, 0x79, 0x04, 0x23, 0x1a, 0x43,
- 0x42, 0x71, 0x42, 0x79, 0x18, 0x23, 0x9a, 0x43,
- 0x08, 0x32, 0x42, 0x71, 0x08, 0x1c, 0xd7, 0xf7,
- 0x59, 0xf8, 0x00, 0x28, 0x3c, 0x00, 0x04, 0x1b,
- 0x04, 0x00, 0x03, 0xd1, 0x01, 0x21, 0x9a, 0x20,
- 0xbf, 0xf7, 0xcb, 0xfb, 0x50, 0x20, 0x09, 0x49,
- 0x50, 0x22, 0x0a, 0x60, 0xc8, 0x60, 0x88, 0x60,
- 0x48, 0x60, 0x08, 0x61, 0x01, 0x20, 0x48, 0x61,
- 0x00, 0x20, 0xd7, 0xf7, 0xd8, 0xf8, 0x04, 0x49,
- 0xff, 0x20, 0x08, 0x60, 0x80, 0xbd, 0xf4, 0x6b,
- 0x01, 0x00, 0x30, 0x00, 0x07, 0x00, 0x04, 0x02,
- 0x07, 0x00, 0xf4, 0x74, 0x01, 0x00, 0x3c, 0x00,
- 0x40, 0x1b, 0x04, 0x00, 0x80, 0xb5, 0xd7, 0xf7,
- 0xfb, 0xf8, 0x80, 0xbd, 0x10, 0xb5, 0xff, 0xf7,
- 0xab, 0xfb, 0xbf, 0xf7, 0xdd, 0xfb, 0x81, 0x48,
- 0xcd, 0xf7, 0x98, 0xfa, 0x00, 0x24, 0x23, 0x1c,
- 0x04, 0x22, 0x04, 0x21, 0x00, 0x20, 0x01, 0xf0,
- 0x39, 0xfa, 0x00, 0x28, 0x01, 0xd0, 0xbf, 0xf7,
- 0xc9, 0xfb, 0x23, 0x1c, 0x00, 0x22, 0xff, 0x21,
- 0x00, 0x20, 0x01, 0xf0, 0x2f, 0xfa, 0x00, 0x28,
- 0x3c, 0x00, 0x7c, 0x1b, 0x04, 0x00, 0x01, 0xd0,
- 0xbf, 0xf7, 0xbf, 0xfb, 0x23, 0x1c, 0x00, 0x22,
- 0xff, 0x21, 0x00, 0x20, 0x01, 0xf0, 0x25, 0xfa,
- 0x00, 0x28, 0x01, 0xd0, 0xbf, 0xf7, 0xb5, 0xfb,
- 0xc4, 0xf7, 0x27, 0xff, 0x70, 0x48, 0x84, 0x70,
- 0x6f, 0x49, 0x7f, 0x20, 0x88, 0x70, 0x6e, 0x49,
- 0x0c, 0x60, 0x03, 0x20, 0x08, 0x60, 0x6b, 0x48,
- 0x44, 0x70, 0x6c, 0x48, 0x04, 0x80, 0x69, 0x48,
- 0xc0, 0x78, 0x3c, 0x00, 0xb8, 0x1b, 0x04, 0x00,
- 0x08, 0x21, 0x08, 0x43, 0x67, 0x49, 0xc8, 0x70,
- 0x08, 0x1c, 0xc0, 0x78, 0x04, 0x21, 0x08, 0x43,
- 0x64, 0x49, 0xc8, 0x70, 0x01, 0xf0, 0x7e, 0xfa,
- 0xff, 0xf7, 0x7e, 0xff, 0xff, 0xf7, 0x2c, 0xfe,
- 0x01, 0xf0, 0x46, 0xfb, 0xff, 0xf7, 0x18, 0xfb,
- 0x01, 0xf0, 0x52, 0xfa, 0xff, 0xf7, 0x82, 0xfb,
- 0x5f, 0x48, 0xc1, 0x68, 0x10, 0x22, 0x91, 0x43,
- 0xc1, 0x60, 0x01, 0x69, 0x3c, 0x00, 0xf4, 0x1b,
- 0x04, 0x00, 0x5d, 0x4a, 0x11, 0x43, 0x01, 0x61,
- 0x01, 0x69, 0xd2, 0x0a, 0x91, 0x43, 0x01, 0x61,
- 0xc1, 0x68, 0x5a, 0x4a, 0x11, 0x43, 0xc1, 0x60,
- 0x81, 0x6a, 0x59, 0x4a, 0x11, 0x43, 0x81, 0x62,
- 0x00, 0xf0, 0x77, 0xf9, 0x01, 0xf0, 0x1f, 0xf8,
- 0x00, 0xf0, 0x93, 0xfa, 0x01, 0xf0, 0x99, 0xfb,
- 0x00, 0xf0, 0xf1, 0xff, 0x00, 0xf0, 0x99, 0xfc,
- 0x00, 0xf0, 0xdd, 0xfc, 0x00, 0xf0, 0x3c, 0x00,
- 0x30, 0x1c, 0x04, 0x00, 0x83, 0xfc, 0xff, 0xf7,
- 0xb3, 0xfc, 0x01, 0xf0, 0x31, 0xfa, 0x01, 0xf0,
- 0x71, 0xfa, 0xff, 0xf7, 0x87, 0xfa, 0xff, 0xf7,
- 0x9b, 0xfa, 0x01, 0x21, 0x01, 0x20, 0x4b, 0x4a,
- 0xd1, 0xf7, 0x7c, 0xfd, 0x01, 0x21, 0x02, 0x20,
- 0x49, 0x4a, 0xd1, 0xf7, 0x77, 0xfd, 0x02, 0x21,
- 0x03, 0x20, 0x48, 0x4a, 0xd1, 0xf7, 0x72, 0xfd,
- 0x02, 0x21, 0x04, 0x20, 0x46, 0x4a, 0xd1, 0xf7,
- 0x3c, 0x00, 0x6c, 0x1c, 0x04, 0x00, 0x6d, 0xfd,
- 0x02, 0x21, 0x05, 0x20, 0x45, 0x4a, 0xd1, 0xf7,
- 0x68, 0xfd, 0x02, 0x21, 0x06, 0x20, 0x43, 0x4a,
- 0xd1, 0xf7, 0x63, 0xfd, 0x01, 0x21, 0x07, 0x20,
- 0x42, 0x4a, 0xd1, 0xf7, 0x5e, 0xfd, 0x02, 0x21,
- 0x17, 0x20, 0x40, 0x4a, 0xd1, 0xf7, 0x59, 0xfd,
- 0x02, 0x21, 0x08, 0x20, 0x3f, 0x4a, 0xd1, 0xf7,
- 0x54, 0xfd, 0xff, 0xf7, 0xc8, 0xfd, 0x3d, 0x48,
- 0x04, 0x60, 0x3c, 0x00, 0xa8, 0x1c, 0x04, 0x00,
- 0x44, 0x60, 0xff, 0xf7, 0x17, 0xfa, 0xff, 0xf7,
- 0x09, 0xfa, 0xff, 0xf7, 0x4f, 0xfc, 0x00, 0xf0,
- 0x43, 0xf9, 0xff, 0xf7, 0x33, 0xfa, 0xff, 0xf7,
- 0xfb, 0xfa, 0x01, 0xf0, 0x85, 0xf8, 0x01, 0xf0,
- 0xeb, 0xf9, 0x01, 0xf0, 0x23, 0xfa, 0x01, 0xf0,
- 0x71, 0xf9, 0x00, 0xf0, 0xe3, 0xff, 0xff, 0xf7,
- 0x6f, 0xfa, 0x00, 0xf0, 0xaf, 0xf9, 0x00, 0xf0,
- 0xbd, 0xf9, 0x00, 0xf0, 0x3c, 0x00, 0xe4, 0x1c,
- 0x04, 0x00, 0xad, 0xfc, 0x00, 0xf0, 0x9b, 0xfe,
- 0xff, 0xf7, 0xcd, 0xfa, 0xff, 0xf7, 0xab, 0xfe,
- 0x00, 0xf0, 0xc3, 0xf9, 0xff, 0xf7, 0xab, 0xfd,
- 0x00, 0xf0, 0x8d, 0xff, 0x00, 0xf0, 0x21, 0xff,
- 0x00, 0xf0, 0x65, 0xf9, 0x00, 0xf0, 0x97, 0xf9,
- 0x00, 0xf0, 0xfd, 0xfe, 0x00, 0xf0, 0xe5, 0xfe,
- 0x00, 0xf0, 0x3f, 0xf9, 0x00, 0xf0, 0x73, 0xf9,
- 0xff, 0xf7, 0x37, 0xfe, 0x00, 0xf0, 0x3c, 0x00,
- 0x20, 0x1d, 0x04, 0x00, 0x21, 0xf9, 0x00, 0xf0,
- 0x73, 0xfb, 0xff, 0xf7, 0xe5, 0xfb, 0x00, 0xf0,
- 0xd3, 0xfb, 0xff, 0xf7, 0xa9, 0xfe, 0x00, 0xf0,
- 0xbb, 0xfb, 0x00, 0xf0, 0x09, 0xff, 0x00, 0xf0,
- 0xdb, 0xf9, 0x18, 0x48, 0xc9, 0xf7, 0x56, 0xf8,
- 0x17, 0x48, 0xc9, 0xf7, 0x2b, 0xf8, 0x00, 0x22,
- 0x01, 0x21, 0xf0, 0x20, 0xd1, 0xf7, 0x2e, 0xfd,
- 0x00, 0x20, 0x10, 0xbd, 0xa9, 0x69, 0x00, 0x00,
- 0x3c, 0x00, 0x5c, 0x1d, 0x04, 0x00, 0x00, 0x00,
- 0x07, 0x00, 0xf0, 0x00, 0x07, 0x00, 0x2c, 0x00,
- 0x07, 0x00, 0x00, 0x10, 0x07, 0x00, 0x3c, 0x00,
- 0x08, 0x00, 0xc0, 0x3f, 0x74, 0x38, 0xfc, 0xdf,
- 0x7f, 0x38, 0x55, 0x69, 0x00, 0x00, 0xe5, 0x13,
- 0x00, 0x00, 0x61, 0x0c, 0x00, 0x00, 0x6d, 0x0c,
- 0x00, 0x00, 0x3d, 0x0c, 0x00, 0x00, 0xf1, 0x0d,
- 0x00, 0x00, 0xc5, 0x33, 0x00, 0x00, 0x3d, 0x0f,
- 0x00, 0x00, 0x3c, 0x00, 0x98, 0x1d, 0x04, 0x00,
- 0xad, 0xd8, 0x00, 0x00, 0x80, 0x00, 0x07, 0x00,
- 0x50, 0x57, 0x01, 0x00, 0x04, 0x40, 0x01, 0x00,
- 0x80, 0xb5, 0x01, 0xf0, 0xa9, 0xf9, 0x00, 0xf0,
- 0xc9, 0xf8, 0xff, 0xf7, 0xc5, 0xfe, 0x01, 0xf0,
- 0x03, 0xfb, 0x01, 0xf0, 0x93, 0xfa, 0xff, 0xf7,
- 0xcb, 0xf9, 0x2c, 0x48, 0xff, 0xf7, 0xe8, 0xf9,
- 0x00, 0xf0, 0xaa, 0xf8, 0x00, 0xf0, 0x58, 0xff,
- 0xff, 0xf7, 0x34, 0xfd, 0x3c, 0x00, 0xd4, 0x1d,
- 0x04, 0x00, 0xff, 0xf7, 0xf2, 0xfb, 0xff, 0xf7,
- 0x7a, 0xfa, 0xff, 0xf7, 0x00, 0xfa, 0x00, 0xf0,
- 0x34, 0xf9, 0x00, 0xf0, 0x3c, 0xf9, 0x01, 0xf0,
- 0xe2, 0xf8, 0xff, 0xf7, 0x7a, 0xf9, 0xff, 0xf7,
- 0x72, 0xf9, 0xff, 0xf7, 0x9a, 0xf9, 0x01, 0xf0,
- 0x66, 0xf9, 0x01, 0xf0, 0x8e, 0xf9, 0x01, 0xf0,
- 0xe0, 0xf8, 0x00, 0xf0, 0x06, 0xff, 0x00, 0xf0,
- 0xf0, 0xfb, 0x00, 0xf0, 0x46, 0xfb, 0x3c, 0x00,
- 0x10, 0x1e, 0x04, 0x00, 0x00, 0xf0, 0xbc, 0xff,
- 0x00, 0xf0, 0xe4, 0xfc, 0x00, 0xf0, 0x20, 0xfe,
- 0xff, 0xf7, 0x40, 0xfa, 0xff, 0xf7, 0x46, 0xfe,
- 0xff, 0xf7, 0x56, 0xfd, 0x00, 0xf0, 0x2c, 0xf9,
- 0x00, 0xf0, 0xfa, 0xfe, 0x00, 0xf0, 0x8a, 0xfe,
- 0x00, 0xf0, 0xd4, 0xf8, 0x00, 0xf0, 0xb4, 0xf8,
- 0x00, 0xf0, 0x78, 0xfe, 0x00, 0xf0, 0x4e, 0xfe,
- 0x00, 0xf0, 0xde, 0xf8, 0xff, 0xf7, 0xac, 0xfd,
- 0x3c, 0x00, 0x4c, 0x1e, 0x04, 0x00, 0x00, 0xf0,
- 0x8c, 0xf8, 0x00, 0xf0, 0xf8, 0xfa, 0xff, 0xf7,
- 0x76, 0xfb, 0xff, 0xf7, 0x20, 0xfe, 0x01, 0xf0,
- 0xa6, 0xfa, 0x00, 0xf0, 0x48, 0xfb, 0x00, 0xf0,
- 0x7c, 0xfe, 0x00, 0xf0, 0x5c, 0xf9, 0xbe, 0xf7,
- 0x57, 0xfd, 0x00, 0x20, 0x80, 0xbd, 0x80, 0x38,
- 0x01, 0x00, 0x01, 0x49, 0x00, 0x20, 0x08, 0x60,
- 0x70, 0x47, 0xa8, 0x7e, 0x01, 0x00, 0x10, 0xb5,
- 0x04, 0x1c, 0x3c, 0x00, 0x88, 0x1e, 0x04, 0x00,
- 0x01, 0xd1, 0xbf, 0xf7, 0x39, 0xfa, 0x0f, 0x48,
- 0x7d, 0x21, 0xc9, 0x00, 0x84, 0x60, 0x01, 0x80,
- 0x0d, 0x49, 0x01, 0x61, 0x80, 0x21, 0x41, 0x80,
- 0x00, 0x21, 0xc1, 0x60, 0x01, 0x62, 0x0b, 0x48,
- 0x41, 0x80, 0x14, 0x21, 0x81, 0x80, 0x07, 0x21,
- 0x41, 0x81, 0x06, 0x4a, 0x46, 0x23, 0x04, 0x32,
- 0x05, 0x24, 0x13, 0x70, 0x54, 0x70, 0x0a, 0x21,
- 0x91, 0x70, 0x81, 0x76, 0x3c, 0x00, 0xc4, 0x1e,
- 0x04, 0x00, 0x03, 0x76, 0x04, 0x81, 0x10, 0xbd,
- 0x00, 0x00, 0xc8, 0x74, 0x01, 0x00, 0x00, 0x87,
- 0x93, 0x03, 0x30, 0x00, 0x07, 0x00, 0x09, 0x48,
- 0x80, 0xb5, 0x01, 0x69, 0x42, 0x69, 0x11, 0x43,
- 0x82, 0x69, 0xc0, 0x69, 0x11, 0x43, 0x01, 0x43,
- 0x00, 0x22, 0x03, 0x20, 0xc6, 0xf7, 0xbf, 0xfc,
- 0xcc, 0xf7, 0x1b, 0xfa, 0x00, 0x20, 0xc2, 0xf7,
- 0x92, 0xf9, 0x80, 0xbd, 0x00, 0x00, 0x3c, 0x00,
- 0x00, 0x1f, 0x04, 0x00, 0xa4, 0x6c, 0x01, 0x00,
- 0x05, 0x48, 0x80, 0xb5, 0x00, 0x21, 0x81, 0x60,
- 0x02, 0x21, 0xc1, 0x60, 0x03, 0x39, 0x41, 0x60,
- 0xc7, 0xf7, 0x3a, 0xff, 0x80, 0xbd, 0x00, 0x00,
- 0x40, 0x20, 0x07, 0x00, 0x08, 0xb5, 0x6a, 0x46,
- 0x04, 0x49, 0x15, 0x20, 0xbf, 0xf7, 0x54, 0xf8,
- 0x01, 0x20, 0x03, 0x49, 0x40, 0x05, 0x08, 0x60,
- 0x48, 0x60, 0x08, 0xbd, 0xa5, 0x21, 0x01, 0x00,
- 0x3c, 0x00, 0x3c, 0x1f, 0x04, 0x00, 0x00, 0x10,
- 0x07, 0x00, 0x70, 0x47, 0x00, 0x00, 0x06, 0x48,
- 0x80, 0xb5, 0x80, 0x68, 0xc0, 0x01, 0x80, 0x0f,
- 0x05, 0xd1, 0x03, 0x22, 0xc1, 0x43, 0xc6, 0xf7,
- 0xba, 0xfc, 0xd6, 0xf7, 0x00, 0xfe, 0x80, 0xbd,
- 0x00, 0x00, 0x10, 0x00, 0x07, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x80, 0xb5, 0x02, 0x21, 0x2a, 0x20,
- 0x06, 0x4a, 0xd1, 0xf7, 0xea, 0xfb, 0x00, 0x22,
- 0x07, 0x20, 0x3c, 0x00, 0x78, 0x1f, 0x04, 0x00,
- 0x04, 0x49, 0xbe, 0xf7, 0xed, 0xfe, 0x04, 0x48,
- 0xc7, 0xf7, 0x58, 0xfc, 0x80, 0xbd, 0x00, 0x00,
- 0x8d, 0x89, 0x00, 0x00, 0xd5, 0x9b, 0x00, 0x00,
- 0x10, 0x46, 0x01, 0x00, 0x02, 0x48, 0x00, 0x21,
- 0x00, 0x22, 0x00, 0x23, 0x0e, 0xc0, 0x70, 0x47,
- 0x80, 0x6e, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x21,
- 0x2c, 0x20, 0x06, 0x4a, 0xd1, 0xf7, 0xcc, 0xfb,
- 0x00, 0x22, 0x00, 0x20, 0x3c, 0x00, 0xb4, 0x1f,
- 0x04, 0x00, 0x04, 0x49, 0xbe, 0xf7, 0xcf, 0xfe,
- 0x04, 0x49, 0x02, 0x20, 0xc8, 0xf7, 0x0b, 0xfa,
- 0x80, 0xbd, 0x05, 0x8a, 0x00, 0x00, 0xe9, 0x9b,
- 0x00, 0x00, 0xb1, 0x8b, 0x00, 0x00, 0x02, 0x48,
- 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x0e, 0xc0,
- 0x70, 0x47, 0x10, 0x75, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x21, 0x2b, 0x20, 0x04, 0x4a, 0xd1, 0xf7,
- 0xae, 0xfb, 0x00, 0x22, 0x02, 0x20, 0x3c, 0x00,
- 0xf0, 0x1f, 0x04, 0x00, 0x02, 0x49, 0xbe, 0xf7,
- 0xb1, 0xfe, 0x80, 0xbd, 0x2d, 0x8a, 0x00, 0x00,
- 0x8d, 0x8c, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x2d, 0x20, 0x07, 0x4a,
- 0xd1, 0xf7, 0x9c, 0xfb, 0x00, 0x22, 0x01, 0x20,
- 0x05, 0x49, 0xbe, 0xf7, 0x9f, 0xfe, 0x05, 0x48,
- 0xcb, 0xf7, 0x56, 0xfa, 0x04, 0x48, 0xcc, 0xf7,
- 0xf7, 0xf8, 0x80, 0xbd, 0xad, 0x8a, 0x00, 0x00,
- 0x3c, 0x00, 0x2c, 0x20, 0x04, 0x00, 0x21, 0xe2,
- 0x00, 0x00, 0xf9, 0xdf, 0x00, 0x00, 0x20, 0x44,
- 0x01, 0x00, 0x70, 0x47, 0x00, 0x00, 0x02, 0x49,
- 0x00, 0x20, 0x08, 0x60, 0x01, 0x20, 0x48, 0x60,
- 0x70, 0x47, 0xac, 0x79, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x49, 0x0d, 0x20, 0xd0, 0xf7, 0x9b, 0xf9,
- 0x80, 0xbd, 0x61, 0x98, 0x00, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x80, 0xb5, 0xcd, 0xf7, 0x77, 0xf9,
- 0x03, 0x49, 0x3c, 0x00, 0x68, 0x20, 0x04, 0x00,
- 0x08, 0x60, 0x01, 0x1c, 0x02, 0x48, 0xcd, 0xf7,
- 0x97, 0xf9, 0x80, 0xbd, 0xa8, 0x79, 0x01, 0x00,
- 0xc4, 0x60, 0x01, 0x00, 0x80, 0xb5, 0x00, 0xf0,
- 0x29, 0xf8, 0x80, 0xbd, 0x80, 0xb5, 0x86, 0xb0,
- 0x0c, 0x48, 0xc3, 0xf7, 0x6d, 0xfd, 0xd6, 0xf7,
- 0xd3, 0xfb, 0x0b, 0x48, 0x0d, 0x49, 0x00, 0x90,
- 0x0a, 0x48, 0x04, 0x91, 0x01, 0x90, 0x0a, 0x48,
- 0x69, 0x46, 0x02, 0x90, 0x3c, 0x00, 0xa4, 0x20,
- 0x04, 0x00, 0x00, 0x20, 0x03, 0x90, 0x05, 0x90,
- 0x01, 0x20, 0xc3, 0xf7, 0x00, 0xfd, 0x07, 0x49,
- 0x03, 0x20, 0xd0, 0xf7, 0x6a, 0xf9, 0x06, 0xb0,
- 0x80, 0xbd, 0x20, 0xf7, 0x01, 0x00, 0x11, 0x87,
- 0x01, 0x00, 0x95, 0x87, 0x01, 0x00, 0x55, 0x87,
- 0x01, 0x00, 0x98, 0xd9, 0x01, 0x00, 0x6d, 0x87,
- 0x01, 0x00, 0x80, 0xb5, 0x01, 0x20, 0xd6, 0xf7,
- 0x90, 0xfc, 0x03, 0x49, 0x00, 0x20, 0x3c, 0x00,
- 0xe0, 0x20, 0x04, 0x00, 0x08, 0x60, 0x48, 0x60,
- 0x02, 0x48, 0x14, 0x39, 0x48, 0x60, 0x80, 0xbd,
- 0x90, 0xd9, 0x01, 0x00, 0x3d, 0x82, 0x01, 0x00,
- 0x70, 0xb5, 0x00, 0x26, 0x09, 0x4c, 0x09, 0x4d,
- 0x26, 0x60, 0x66, 0x60, 0x44, 0x21, 0x50, 0x35,
- 0x28, 0x1c, 0xa6, 0x61, 0xbe, 0xf7, 0xc8, 0xf9,
- 0x14, 0x20, 0xe0, 0x60, 0xe8, 0x63, 0x28, 0x20,
- 0xe8, 0x61, 0xa0, 0x60, 0x28, 0x64, 0x2e, 0x70,
- 0x3c, 0x00, 0x1c, 0x21, 0x04, 0x00, 0x70, 0xbd,
- 0x00, 0x00, 0xa4, 0x6e, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x21, 0x18, 0x20, 0x04, 0x4a, 0xd1, 0xf7,
- 0x0c, 0xfb, 0x03, 0x49, 0x08, 0x20, 0xd0, 0xf7,
- 0x2a, 0xf9, 0x80, 0xbd, 0x00, 0x00, 0x15, 0x9c,
- 0x00, 0x00, 0x69, 0x9c, 0x00, 0x00, 0xfe, 0xb5,
- 0x26, 0x4d, 0x28, 0x78, 0xc0, 0x07, 0x0c, 0xd4,
- 0x25, 0x49, 0x00, 0x20, 0x08, 0x70, 0x28, 0x70,
- 0x24, 0x48, 0x3c, 0x00, 0x58, 0x21, 0x04, 0x00,
- 0x81, 0x78, 0x49, 0x08, 0x49, 0x00, 0x81, 0x70,
- 0x81, 0x78, 0x01, 0x22, 0x11, 0x43, 0x81, 0x70,
- 0x00, 0x24, 0xff, 0x26, 0x1f, 0x4f, 0x01, 0x36,
- 0x21, 0x1c, 0x01, 0xa8, 0xc6, 0xf7, 0x32, 0xf8,
- 0x00, 0xab, 0x18, 0x79, 0x01, 0x28, 0x1f, 0xd0,
- 0x02, 0x28, 0x19, 0xd0, 0x03, 0x28, 0x1e, 0xd1,
- 0xb8, 0x68, 0x00, 0x21, 0xb0, 0x43, 0xb8, 0x60,
- 0x78, 0x68, 0x30, 0x43, 0x3c, 0x00, 0x94, 0x21,
- 0x04, 0x00, 0x78, 0x60, 0x3a, 0x68, 0x32, 0x40,
- 0xa0, 0x20, 0x05, 0xe0, 0x3b, 0x68, 0x33, 0x40,
- 0x93, 0x42, 0x01, 0xd0, 0x01, 0x21, 0x01, 0xe0,
- 0x01, 0x38, 0xf7, 0xd2, 0x78, 0x68, 0xb0, 0x43,
- 0x78, 0x60, 0x00, 0x29, 0x03, 0xd0, 0x01, 0xa8,
- 0x00, 0xf0, 0x27, 0xff, 0x02, 0xe0, 0x01, 0xa8,
- 0x00, 0xf0, 0x45, 0xff, 0x01, 0x34, 0x24, 0x06,
- 0x24, 0x16, 0x06, 0x2c, 0xcf, 0xdb, 0x3c, 0x00,
- 0xd0, 0x21, 0x04, 0x00, 0x04, 0x49, 0x02, 0x22,
- 0x08, 0x78, 0x10, 0x43, 0x08, 0x70, 0x28, 0x70,
- 0xfe, 0xbd, 0x00, 0x00, 0x04, 0x00, 0x07, 0x00,
- 0xe0, 0x60, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00,
- 0x10, 0x00, 0x07, 0x00, 0xb0, 0xb5, 0x00, 0x20,
- 0x15, 0x23, 0x14, 0x49, 0x01, 0x25, 0x42, 0x00,
- 0x8d, 0x54, 0x52, 0x18, 0x01, 0x30, 0x0e, 0x28,
- 0x53, 0x70, 0xf8, 0xd3, 0x0f, 0x48, 0x1c, 0x22,
- 0x3c, 0x00, 0x0c, 0x22, 0x04, 0x00, 0x1c, 0x38,
- 0xbe, 0xf7, 0x73, 0xf9, 0x0d, 0x48, 0x0e, 0x21,
- 0x2a, 0x38, 0xbe, 0xf7, 0x1c, 0xf9, 0x0b, 0x49,
- 0x00, 0x20, 0x08, 0x60, 0x0b, 0x4c, 0x2a, 0x21,
- 0x20, 0x1c, 0xbe, 0xf7, 0x14, 0xf9, 0x25, 0x70,
- 0x0e, 0x20, 0x60, 0x70, 0x17, 0x20, 0xa0, 0x70,
- 0x07, 0x48, 0x53, 0x21, 0x01, 0x70, 0x45, 0x21,
- 0x41, 0x70, 0x20, 0x21, 0x81, 0x70, 0xb0, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x48, 0x22, 0x04, 0x00,
- 0xe6, 0x78, 0x01, 0x00, 0xe4, 0x62, 0x01, 0x00,
- 0xeb, 0x62, 0x01, 0x00, 0xe8, 0x62, 0x01, 0x00,
- 0x0c, 0x49, 0x0d, 0x48, 0x00, 0x22, 0x41, 0x60,
- 0x0c, 0x49, 0x81, 0x60, 0x0c, 0x49, 0xc1, 0x60,
- 0x0c, 0x49, 0x01, 0x61, 0x0c, 0x49, 0x41, 0x61,
- 0x0c, 0x49, 0x82, 0x61, 0xc1, 0x61, 0x0c, 0x49,
- 0x01, 0x62, 0x0c, 0x49, 0x41, 0x62, 0x0c, 0x49,
- 0x81, 0x62, 0x0c, 0x49, 0x3c, 0x00, 0x84, 0x22,
- 0x04, 0x00, 0xc1, 0x62, 0xc2, 0x63, 0x70, 0x47,
- 0x00, 0x00, 0xc9, 0x75, 0x00, 0x00, 0x28, 0x7a,
- 0x01, 0x00, 0xc1, 0x75, 0x00, 0x00, 0x81, 0x75,
- 0x00, 0x00, 0x99, 0x75, 0x00, 0x00, 0xcd, 0x75,
- 0x00, 0x00, 0x89, 0x75, 0x00, 0x00, 0x91, 0x75,
- 0x00, 0x00, 0xb5, 0x75, 0x00, 0x00, 0x8d, 0x75,
- 0x00, 0x00, 0xc5, 0x75, 0x00, 0x00, 0xb0, 0xb5,
- 0x0e, 0x48, 0x0e, 0x49, 0x08, 0x60, 0x3c, 0x00,
- 0xc0, 0x22, 0x04, 0x00, 0x08, 0x31, 0xc0, 0xf7,
- 0x43, 0xfe, 0x0c, 0x49, 0x00, 0x25, 0x48, 0x60,
- 0x0b, 0x48, 0x0a, 0x4c, 0x05, 0x60, 0x0b, 0x48,
- 0x80, 0x3c, 0x05, 0x60, 0x10, 0x20, 0x20, 0x71,
- 0xe0, 0x70, 0xa0, 0x71, 0x60, 0x71, 0x27, 0x20,
- 0xc0, 0x43, 0xc3, 0xf7, 0xf7, 0xfb, 0x28, 0x20,
- 0xc3, 0xf7, 0xfc, 0xfb, 0x25, 0x72, 0xb0, 0xbd,
- 0xff, 0x3f, 0x00, 0x00, 0x2c, 0x7d, 0x01, 0x00,
- 0x3c, 0x00, 0xfc, 0x22, 0x04, 0x00, 0x1c, 0x67,
- 0x01, 0x00, 0x20, 0x67, 0x01, 0x00, 0x80, 0xb5,
- 0x2c, 0x21, 0x01, 0x48, 0xbe, 0xf7, 0xc7, 0xf8,
- 0x80, 0xbd, 0x3c, 0x7e, 0x01, 0x00, 0x80, 0xb5,
- 0x38, 0x21, 0x01, 0x48, 0xbe, 0xf7, 0xbf, 0xf8,
- 0x80, 0xbd, 0x68, 0x7e, 0x01, 0x00, 0x80, 0xb5,
- 0x02, 0x21, 0x0e, 0x20, 0x02, 0x4a, 0xd1, 0xf7,
- 0x0c, 0xfa, 0x80, 0xbd, 0x00, 0x00, 0x21, 0xe0,
- 0x00, 0x00, 0x3c, 0x00, 0x38, 0x23, 0x04, 0x00,
- 0x70, 0x47, 0x00, 0x00, 0xf0, 0xb5, 0x85, 0xb0,
- 0x00, 0x27, 0x00, 0xab, 0x2f, 0x4e, 0x1f, 0x81,
- 0x00, 0x25, 0x00, 0x24, 0x28, 0x1c, 0xd6, 0xf7,
- 0xa1, 0xfb, 0x02, 0x2d, 0x03, 0xd1, 0xd6, 0xf7,
- 0xf5, 0xfa, 0x00, 0x28, 0x0c, 0xd0, 0x01, 0x24,
- 0x01, 0x2d, 0x03, 0xd1, 0x07, 0x20, 0x00, 0xab,
- 0x18, 0x71, 0x01, 0xe0, 0x00, 0xab, 0x1f, 0x71,
- 0x00, 0xab, 0x18, 0x79, 0x3c, 0x00, 0x74, 0x23,
- 0x04, 0x00, 0xd6, 0xf7, 0x08, 0xfc, 0x00, 0x2c,
- 0x39, 0xd0, 0x08, 0x21, 0x03, 0xa8, 0xd6, 0xf7,
- 0xf2, 0xfa, 0x00, 0xab, 0x18, 0x7b, 0xfe, 0x28,
- 0x31, 0xd1, 0x58, 0x7b, 0x01, 0x28, 0x2a, 0xd1,
- 0x02, 0x21, 0x02, 0xa8, 0xd6, 0xf7, 0xe7, 0xfa,
- 0x00, 0xab, 0x18, 0x89, 0x00, 0x28, 0x26, 0xd0,
- 0x18, 0x89, 0x18, 0x49, 0x88, 0x42, 0x22, 0xd0,
- 0x19, 0x89, 0x00, 0x20, 0xbf, 0xf7, 0x3c, 0x00,
- 0xb0, 0x23, 0x04, 0x00, 0x13, 0xf9, 0x04, 0x1c,
- 0x00, 0x69, 0x00, 0xab, 0x19, 0x89, 0xd6, 0xf7,
- 0xd5, 0xfa, 0x20, 0x68, 0x00, 0xab, 0x1a, 0x89,
- 0x01, 0x1c, 0x08, 0x31, 0x08, 0x3a, 0xcb, 0xf7,
- 0xa1, 0xf9, 0x00, 0x28, 0x06, 0xd0, 0x02, 0x28,
- 0x04, 0xd0, 0x02, 0x21, 0x94, 0x20, 0x37, 0x60,
- 0xbe, 0xf7, 0x62, 0xff, 0x20, 0x1c, 0xbf, 0xf7,
- 0xc7, 0xf8, 0xd4, 0xe7, 0x01, 0x21, 0x94, 0x20,
- 0x3c, 0x00, 0xec, 0x23, 0x04, 0x00, 0xbe, 0xf7,
- 0x5a, 0xff, 0xd5, 0xf7, 0x26, 0xff, 0x01, 0x35,
- 0x2d, 0x06, 0x2d, 0x0e, 0x04, 0x2d, 0xa5, 0xd3,
- 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x00, 0x58, 0x57,
- 0x01, 0x00, 0xff, 0xff, 0x00, 0x00, 0x0a, 0x48,
- 0x00, 0x21, 0x02, 0x1c, 0x18, 0x32, 0x80, 0xb5,
- 0x09, 0x4b, 0x02, 0xe0, 0x01, 0x60, 0x83, 0x80,
- 0x08, 0x30, 0x82, 0x42, 0xfa, 0xd1, 0x04, 0x48,
- 0x6c, 0x21, 0x3c, 0x00, 0x28, 0x24, 0x04, 0x00,
- 0x6c, 0x38, 0xbe, 0xf7, 0x37, 0xf8, 0x04, 0x49,
- 0x02, 0x20, 0xc7, 0xf7, 0xd1, 0xff, 0x80, 0xbd,
- 0x7c, 0x79, 0x01, 0x00, 0xfc, 0x05, 0x00, 0x00,
- 0x9d, 0x75, 0x00, 0x00, 0x80, 0xb5, 0x02, 0x21,
- 0x26, 0x20, 0x0d, 0x4a, 0xd1, 0xf7, 0x7c, 0xf9,
- 0x0c, 0x48, 0xc8, 0xf7, 0x73, 0xff, 0x0c, 0x48,
- 0xc8, 0xf7, 0x76, 0xff, 0x0b, 0x49, 0x10, 0x20,
- 0xcf, 0xf7, 0x94, 0xff, 0x3c, 0x00, 0x64, 0x24,
- 0x04, 0x00, 0x0a, 0x49, 0x0c, 0x20, 0xcf, 0xf7,
- 0x90, 0xff, 0x09, 0x49, 0x00, 0x20, 0xc7, 0xf7,
- 0xb2, 0xff, 0xcc, 0xf7, 0x6e, 0xff, 0x07, 0x49,
- 0x08, 0x60, 0x80, 0xbd, 0x00, 0x00, 0x9d, 0xa6,
- 0x00, 0x00, 0xa9, 0xa4, 0x00, 0x00, 0x81, 0xa4,
- 0x00, 0x00, 0x31, 0xa7, 0x00, 0x00, 0xb9, 0x6d,
- 0x00, 0x00, 0xbd, 0xa6, 0x00, 0x00, 0x0c, 0x79,
- 0x01, 0x00, 0x02, 0x49, 0x08, 0x78, 0x3c, 0x00,
- 0xa0, 0x24, 0x04, 0x00, 0x40, 0x08, 0x40, 0x00,
- 0x08, 0x70, 0x70, 0x47, 0x58, 0x00, 0x07, 0x00,
- 0x00, 0x21, 0x08, 0x48, 0x80, 0xb5, 0x41, 0x61,
- 0x81, 0x61, 0x01, 0x70, 0x41, 0x70, 0x41, 0x60,
- 0x81, 0x60, 0x14, 0x22, 0xc2, 0x60, 0x01, 0x61,
- 0x42, 0x62, 0xc1, 0x61, 0xff, 0xf7, 0x04, 0xf8,
- 0x80, 0xbd, 0x00, 0x00, 0x1c, 0x75, 0x01, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x1d, 0x20, 0x04, 0x4a,
- 0x3c, 0x00, 0xdc, 0x24, 0x04, 0x00, 0xd1, 0xf7,
- 0x34, 0xf9, 0x03, 0x49, 0x08, 0x20, 0xcf, 0xf7,
- 0x52, 0xff, 0x80, 0xbd, 0x00, 0x00, 0x11, 0xe3,
- 0x00, 0x00, 0x09, 0xe4, 0x00, 0x00, 0x80, 0xb5,
- 0x01, 0x21, 0x25, 0x20, 0x0a, 0x4a, 0xd1, 0xf7,
- 0x24, 0xf9, 0xcc, 0xf7, 0x28, 0xff, 0x08, 0x49,
- 0x08, 0x62, 0x08, 0x49, 0x01, 0x20, 0xcf, 0xf7,
- 0x3e, 0xff, 0x07, 0x49, 0x02, 0x20, 0xcf, 0xf7,
- 0x3a, 0xff, 0x3c, 0x00, 0x18, 0x25, 0x04, 0x00,
- 0xfe, 0xf7, 0xe6, 0xff, 0x05, 0x48, 0xc1, 0xf7,
- 0xe1, 0xf9, 0x80, 0xbd, 0x29, 0xa9, 0x00, 0x00,
- 0x1c, 0x75, 0x01, 0x00, 0xa1, 0xaa, 0x00, 0x00,
- 0x2d, 0x19, 0x00, 0x00, 0x45, 0xa8, 0x00, 0x00,
- 0x10, 0xb5, 0x06, 0x4c, 0x0c, 0x22, 0x22, 0x70,
- 0xa0, 0x18, 0x05, 0x49, 0xbd, 0xf7, 0xd8, 0xff,
- 0x00, 0x20, 0xc8, 0xf7, 0x85, 0xfb, 0x01, 0x20,
- 0xa0, 0x60, 0x10, 0xbd, 0x3c, 0x00, 0x54, 0x25,
- 0x04, 0x00, 0xa4, 0x69, 0x01, 0x00, 0x90, 0x57,
- 0x01, 0x00, 0xb0, 0xb5, 0x1f, 0x4c, 0x00, 0x25,
- 0x65, 0x80, 0x01, 0x20, 0x20, 0x70, 0x0a, 0x20,
- 0xa0, 0x80, 0x90, 0x20, 0xe0, 0x80, 0x30, 0x20,
- 0x20, 0x81, 0x90, 0x20, 0x60, 0x81, 0x30, 0x20,
- 0xa0, 0x81, 0x17, 0x48, 0x04, 0x22, 0x07, 0x21,
- 0x12, 0x30, 0xbe, 0xf7, 0x4c, 0xf8, 0x14, 0x48,
- 0x04, 0x22, 0x05, 0x21, 0x16, 0x30, 0x3c, 0x00,
- 0x90, 0x25, 0x04, 0x00, 0xbe, 0xf7, 0x46, 0xf8,
- 0x12, 0x48, 0x11, 0x4a, 0xe0, 0x81, 0x20, 0x82,
- 0x70, 0x32, 0x15, 0x70, 0x55, 0x70, 0x00, 0x20,
- 0x3c, 0x23, 0x41, 0x01, 0x43, 0x43, 0x89, 0x18,
- 0xf4, 0x31, 0x9b, 0x18, 0x01, 0x30, 0x04, 0x28,
- 0x59, 0x60, 0xf5, 0xdb, 0x08, 0x48, 0x06, 0x22,
- 0x1a, 0x30, 0x09, 0x49, 0xbd, 0xf7, 0x9a, 0xff,
- 0x07, 0x48, 0x05, 0x4c, 0x0c, 0x30, 0x0f, 0xc8,
- 0x3c, 0x00, 0xcc, 0x25, 0x04, 0x00, 0x20, 0x34,
- 0x0f, 0xc4, 0x20, 0x21, 0x20, 0x1c, 0xbd, 0xf7,
- 0x62, 0xff, 0xb0, 0xbd, 0x00, 0x00, 0xf8, 0x60,
- 0x01, 0x00, 0x2c, 0x09, 0x00, 0x00, 0x58, 0x40,
- 0x01, 0x00, 0x70, 0x47, 0x00, 0x00, 0x07, 0x48,
- 0x10, 0xb5, 0x00, 0x68, 0x00, 0x28, 0x08, 0xd0,
- 0x06, 0x48, 0xbe, 0xf7, 0x9c, 0xfe, 0x04, 0x1c,
- 0xff, 0xf7, 0x9d, 0xfe, 0x20, 0x1c, 0xbe, 0xf7,
- 0x96, 0xfe, 0x3c, 0x00, 0x08, 0x26, 0x04, 0x00,
- 0x10, 0xbd, 0x00, 0x00, 0x58, 0x57, 0x01, 0x00,
- 0xb5, 0xad, 0x00, 0x00, 0x04, 0x49, 0x80, 0xb5,
- 0x00, 0x20, 0x88, 0x70, 0x02, 0x21, 0x20, 0x20,
- 0x02, 0x4a, 0xd1, 0xf7, 0x91, 0xf8, 0x80, 0xbd,
- 0xb4, 0x79, 0x01, 0x00, 0x25, 0xb5, 0x00, 0x00,
- 0x80, 0xb5, 0xcc, 0xf7, 0x8f, 0xfe, 0x01, 0x49,
- 0x48, 0x61, 0x80, 0xbd, 0xb4, 0x79, 0x01, 0x00,
- 0x80, 0xb5, 0x18, 0x21, 0x3c, 0x00, 0x44, 0x26,
- 0x04, 0x00, 0x14, 0x48, 0xbd, 0xf7, 0x29, 0xff,
- 0x14, 0x48, 0x01, 0x21, 0x01, 0x70, 0x00, 0x21,
- 0xc1, 0x60, 0x41, 0x70, 0x01, 0x61, 0x00, 0xf0,
- 0x02, 0xf9, 0x00, 0xf0, 0xaa, 0xf8, 0x00, 0xf0,
- 0x1e, 0xf8, 0x00, 0xf0, 0xba, 0xf9, 0x00, 0xf0,
- 0xcc, 0xf9, 0x00, 0xf0, 0x20, 0xf9, 0x00, 0xf0,
- 0x64, 0xf9, 0x00, 0xf0, 0xce, 0xf9, 0x00, 0xf0,
- 0xfc, 0xf8, 0x00, 0xf0, 0x82, 0xf9, 0x3c, 0x00,
- 0x80, 0x26, 0x04, 0x00, 0x00, 0xf0, 0x28, 0xf8,
- 0x00, 0xf0, 0x6e, 0xf8, 0x00, 0xf0, 0x4a, 0xf8,
- 0xff, 0xf7, 0xc2, 0xff, 0x00, 0xf0, 0x72, 0xf9,
- 0x80, 0xbd, 0x00, 0x00, 0x40, 0x7c, 0x01, 0x00,
- 0x18, 0x63, 0x01, 0x00, 0xb0, 0xb5, 0x08, 0x4c,
- 0x00, 0x25, 0x08, 0x48, 0x25, 0x77, 0x20, 0x60,
- 0xce, 0xf7, 0xf0, 0xfd, 0x00, 0x20, 0xe5, 0x62,
- 0xd0, 0xf7, 0xd0, 0xfa, 0x21, 0x1f, 0x08, 0x80,
- 0x3c, 0x00, 0xbc, 0x26, 0x04, 0x00, 0xd0, 0xf7,
- 0x6c, 0xfb, 0xb0, 0xbd, 0x00, 0x00, 0xd4, 0x79,
- 0x01, 0x00, 0x95, 0x75, 0x00, 0x00, 0x80, 0xb5,
- 0xcc, 0xf7, 0xc1, 0xfc, 0x80, 0xbd, 0x05, 0x49,
- 0x80, 0xb5, 0x00, 0x20, 0x08, 0x70, 0x48, 0x70,
- 0x03, 0x48, 0x04, 0x49, 0x03, 0x4a, 0x08, 0x30,
- 0xcc, 0xf7, 0x27, 0xfe, 0x80, 0xbd, 0x2c, 0x63,
- 0x01, 0x00, 0xed, 0xbc, 0x00, 0x00, 0x4d, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x26, 0x04, 0x00,
- 0x80, 0xb5, 0xcc, 0xf7, 0x2b, 0xfe, 0x05, 0x49,
- 0x48, 0x60, 0x01, 0x1c, 0x04, 0x48, 0xcc, 0xf7,
- 0x4b, 0xfe, 0x04, 0x49, 0x03, 0x20, 0xcf, 0xf7,
- 0x3d, 0xfe, 0x80, 0xbd, 0x2c, 0x63, 0x01, 0x00,
- 0xc4, 0x60, 0x01, 0x00, 0xc1, 0xbc, 0x00, 0x00,
- 0x04, 0x48, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23,
- 0x0e, 0xc0, 0x08, 0xc0, 0x02, 0x49, 0x10, 0x38,
- 0x01, 0x60, 0x70, 0x47, 0x3c, 0x00, 0x34, 0x27,
- 0x04, 0x00, 0x04, 0x7a, 0x01, 0x00, 0x1c, 0xe6,
- 0x01, 0x00, 0x80, 0xb5, 0xcc, 0xf7, 0x09, 0xfe,
- 0x05, 0x49, 0x05, 0x4a, 0x48, 0x60, 0x02, 0x21,
- 0x24, 0x20, 0xd0, 0xf7, 0xfc, 0xff, 0x03, 0x48,
- 0xc9, 0xf7, 0x6b, 0xfd, 0x80, 0xbd, 0x04, 0x7a,
- 0x01, 0x00, 0x69, 0xbe, 0x00, 0x00, 0x71, 0xeb,
- 0x00, 0x00, 0x10, 0xb5, 0x04, 0x4c, 0x14, 0x21,
- 0x20, 0x1c, 0xbd, 0xf7, 0x96, 0xfe, 0x3c, 0x00,
- 0x70, 0x27, 0x04, 0x00, 0x02, 0x48, 0x20, 0x60,
- 0x10, 0xbd, 0x00, 0x00, 0x14, 0x7a, 0x01, 0x00,
- 0xec, 0xe5, 0x01, 0x00, 0x80, 0xb5, 0xcc, 0xf7,
- 0xe7, 0xfd, 0x07, 0x49, 0x07, 0x4a, 0x48, 0x60,
- 0x02, 0x21, 0x1f, 0x20, 0xd0, 0xf7, 0xda, 0xff,
- 0x05, 0x49, 0x01, 0x20, 0x08, 0x60, 0x05, 0x49,
- 0x0c, 0x20, 0xcf, 0xf7, 0xf5, 0xfd, 0x80, 0xbd,
- 0x14, 0x7a, 0x01, 0x00, 0xd5, 0xbf, 0x00, 0x00,
- 0x3c, 0x00, 0xac, 0x27, 0x04, 0x00, 0x80, 0x5a,
- 0x01, 0x00, 0x85, 0xff, 0x00, 0x00, 0x80, 0xb5,
- 0xff, 0xf7, 0x4f, 0xfd, 0x01, 0x21, 0x21, 0x20,
- 0x02, 0x4a, 0xd0, 0xf7, 0xc2, 0xff, 0x80, 0xbd,
- 0x00, 0x00, 0xc9, 0xc1, 0x00, 0x00, 0x80, 0xb5,
- 0xcc, 0xf7, 0xc1, 0xfd, 0x02, 0x49, 0x08, 0x63,
- 0xc9, 0xf7, 0x57, 0xfd, 0x80, 0xbd, 0x28, 0x7a,
- 0x01, 0x00, 0x10, 0xb5, 0xcc, 0xf7, 0xb7, 0xfd,
- 0x16, 0x4c, 0x3c, 0x00, 0xe8, 0x27, 0x04, 0x00,
- 0x20, 0x61, 0xcc, 0xf7, 0xb3, 0xfd, 0x60, 0x61,
- 0x14, 0x48, 0x15, 0x49, 0x08, 0x60, 0x16, 0x49,
- 0x14, 0x48, 0x08, 0x60, 0xcc, 0xf7, 0xaa, 0xfd,
- 0x14, 0x49, 0x08, 0x60, 0x00, 0xf0, 0x34, 0xf8,
- 0xff, 0xf7, 0xe0, 0xff, 0xff, 0xf7, 0x5e, 0xff,
- 0x00, 0xf0, 0x04, 0xf9, 0x00, 0xf0, 0x8e, 0xf8,
- 0xff, 0xf7, 0x6e, 0xff, 0xff, 0xf7, 0xb0, 0xff,
- 0xff, 0xf7, 0x8c, 0xff, 0x3c, 0x00, 0x24, 0x28,
- 0x04, 0x00, 0xff, 0xf7, 0x04, 0xff, 0x00, 0xf0,
- 0xaa, 0xf8, 0x0a, 0x48, 0xbf, 0xf7, 0xbd, 0xff,
- 0xc9, 0xf7, 0xbb, 0xfd, 0x09, 0x49, 0x00, 0x20,
- 0xcf, 0xf7, 0xa7, 0xfd, 0x10, 0xbd, 0x40, 0x7c,
- 0x01, 0x00, 0x7d, 0xb7, 0x00, 0x00, 0x18, 0x7e,
- 0x01, 0x00, 0xbd, 0xb8, 0x00, 0x00, 0x1c, 0x7e,
- 0x01, 0x00, 0x20, 0x7e, 0x01, 0x00, 0xb9, 0xba,
- 0x00, 0x00, 0x81, 0x24, 0x01, 0x00, 0x3c, 0x00,
- 0x60, 0x28, 0x04, 0x00, 0x80, 0xb5, 0x38, 0x21,
- 0x01, 0x48, 0xbd, 0xf7, 0x19, 0xfe, 0x80, 0xbd,
- 0x90, 0x5c, 0x01, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0xb0, 0xb5, 0x0c, 0x4c, 0x0b, 0x4d, 0x00, 0x20,
- 0x0c, 0x34, 0x60, 0x60, 0x25, 0x60, 0xe0, 0x60,
- 0x0a, 0x20, 0x20, 0x81, 0x28, 0x1c, 0xc8, 0xf7,
- 0x3f, 0xfd, 0x28, 0x1c, 0xc8, 0xf7, 0x3a, 0xfd,
- 0x08, 0x3d, 0x68, 0x60, 0x04, 0x48, 0xc9, 0xf7,
- 0x3c, 0x00, 0x9c, 0x28, 0x04, 0x00, 0x1b, 0xfd,
- 0x20, 0x1c, 0xc0, 0xf7, 0x6e, 0xfa, 0x28, 0x80,
- 0xb0, 0xbd, 0xb8, 0x7a, 0x01, 0x00, 0xd5, 0x33,
- 0x01, 0x00, 0xf8, 0xb5, 0x1f, 0x4e, 0x1d, 0x4c,
- 0x00, 0x20, 0x0c, 0x21, 0x41, 0x43, 0x82, 0x00,
- 0x01, 0x30, 0x09, 0x19, 0x08, 0x31, 0x00, 0x06,
- 0x00, 0x0e, 0x04, 0x28, 0xb1, 0x50, 0xf4, 0xd3,
- 0x18, 0x48, 0x0c, 0x38, 0x30, 0x61, 0xce, 0xf7,
- 0xf4, 0xf9, 0x3c, 0x00, 0xd8, 0x28, 0x04, 0x00,
- 0x14, 0x4c, 0xa0, 0x78, 0x00, 0x09, 0x00, 0x01,
- 0xa0, 0x70, 0x00, 0x27, 0xe7, 0x70, 0x67, 0x70,
- 0x00, 0x24, 0xa5, 0x00, 0x70, 0x59, 0x07, 0x70,
- 0x20, 0x1c, 0xbe, 0xf7, 0x53, 0xf9, 0x71, 0x59,
- 0x08, 0x71, 0x00, 0x21, 0x20, 0x1c, 0xce, 0xf7,
- 0x7d, 0xf9, 0x01, 0x34, 0x24, 0x06, 0x24, 0x0e,
- 0x04, 0x2c, 0xee, 0xd3, 0x07, 0x4c, 0x20, 0x78,
- 0x00, 0x09, 0x00, 0x01, 0x3c, 0x00, 0x14, 0x29,
- 0x04, 0x00, 0x0a, 0x30, 0x20, 0x70, 0x20, 0x78,
- 0xf0, 0x21, 0x88, 0x43, 0x30, 0x30, 0x20, 0x70,
- 0xa0, 0x78, 0x0f, 0x21, 0x08, 0x43, 0xa0, 0x70,
- 0xf8, 0xbd, 0x00, 0x50, 0x07, 0x00, 0x10, 0x7b,
- 0x01, 0x00, 0x80, 0xb5, 0xcc, 0xf7, 0x9f, 0xfb,
- 0x80, 0xbd, 0xb0, 0xb5, 0x0c, 0x4c, 0x0b, 0x4d,
- 0x00, 0x20, 0x0c, 0x34, 0x60, 0x60, 0x25, 0x60,
- 0xe0, 0x60, 0x0a, 0x20, 0x20, 0x81, 0x3c, 0x00,
- 0x50, 0x29, 0x04, 0x00, 0x28, 0x1c, 0xc8, 0xf7,
- 0xe1, 0xfc, 0x28, 0x1c, 0xc8, 0xf7, 0xd4, 0xfc,
- 0x08, 0x3d, 0x68, 0x60, 0x20, 0x1c, 0xc0, 0xf7,
- 0x0d, 0xfa, 0x28, 0x80, 0x02, 0x48, 0xc9, 0xf7,
- 0x9b, 0xfc, 0xb0, 0xbd, 0x2c, 0x7b, 0x01, 0x00,
- 0x49, 0x00, 0x01, 0x00, 0x80, 0xb5, 0xca, 0xf7,
- 0x2f, 0xf8, 0x80, 0xbd, 0x70, 0x47, 0x00, 0x00,
- 0xb0, 0xb5, 0x12, 0x4d, 0x3c, 0x21, 0x28, 0x1c,
- 0x3c, 0x00, 0x8c, 0x29, 0x04, 0x00, 0xbd, 0xf7,
- 0x86, 0xfd, 0x0f, 0x48, 0x28, 0x21, 0x3c, 0x30,
- 0xbd, 0xf7, 0x81, 0xfd, 0x0d, 0x48, 0x00, 0x21,
- 0x14, 0x38, 0x01, 0x61, 0xc1, 0x60, 0xff, 0x21,
- 0x01, 0x70, 0x41, 0x70, 0x0a, 0x49, 0x0a, 0x4a,
- 0x41, 0x60, 0x01, 0x21, 0x0c, 0x20, 0xd0, 0xf7,
- 0xc8, 0xfe, 0x2c, 0x1c, 0x30, 0x34, 0x0c, 0x3d,
- 0x00, 0x20, 0xd0, 0xf7, 0x4a, 0xf9, 0x20, 0x80,
- 0x0c, 0x3c, 0x3c, 0x00, 0xc8, 0x29, 0x04, 0x00,
- 0xac, 0x42, 0xf8, 0xd1, 0xb0, 0xbd, 0x00, 0x00,
- 0x60, 0x7b, 0x01, 0x00, 0x20, 0xa1, 0x07, 0x00,
- 0x35, 0xcd, 0x00, 0x00, 0x08, 0x49, 0x00, 0x20,
- 0x0c, 0x22, 0x42, 0x43, 0x52, 0x18, 0x10, 0x71,
- 0x01, 0x30, 0x05, 0x28, 0xf8, 0xdb, 0x04, 0x48,
- 0x00, 0x21, 0x08, 0x38, 0x01, 0x70, 0x41, 0x60,
- 0xff, 0x21, 0x41, 0x70, 0x70, 0x47, 0x00, 0x00,
- 0x74, 0x7a, 0x01, 0x00, 0x3c, 0x00, 0x04, 0x2a,
- 0x04, 0x00, 0x80, 0xb5, 0x78, 0x21, 0x01, 0x48,
- 0xbd, 0xf7, 0x47, 0xfd, 0x80, 0xbd, 0xc4, 0x7b,
- 0x01, 0x00, 0x80, 0xb5, 0xca, 0xf7, 0x97, 0xfa,
- 0x80, 0xbd, 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5,
- 0x0b, 0x4c, 0xff, 0x21, 0x05, 0x31, 0x20, 0x1c,
- 0xbd, 0xf7, 0x37, 0xfd, 0x09, 0x48, 0xf0, 0x21,
- 0x08, 0x51, 0x20, 0x1c, 0x40, 0x30, 0xc5, 0xf7,
- 0x8e, 0xf9, 0x6c, 0x21, 0x06, 0x48, 0x3c, 0x00,
- 0x40, 0x2a, 0x04, 0x00, 0xbd, 0xf7, 0x2c, 0xfd,
- 0x04, 0x48, 0xc0, 0x21, 0x6c, 0x30, 0xbd, 0xf7,
- 0x27, 0xfd, 0x10, 0xbd, 0xc4, 0x69, 0x01, 0x00,
- 0xb0, 0xd9, 0x01, 0x00, 0xc8, 0x6a, 0x01, 0x00,
- 0xb0, 0xb5, 0x0b, 0x4d, 0x00, 0x24, 0x1c, 0x20,
- 0x60, 0x43, 0x40, 0x19, 0x6c, 0x30, 0xc3, 0xf7,
- 0x0f, 0xfe, 0x01, 0x34, 0x04, 0x2c, 0xf6, 0xdb,
- 0xcc, 0xf7, 0x6e, 0xfc, 0xa8, 0x63, 0xc7, 0xf7,
- 0x3c, 0x00, 0x7c, 0x2a, 0x04, 0x00, 0x75, 0xf9,
- 0x04, 0x48, 0xc9, 0xf7, 0x1c, 0xfc, 0x03, 0x48,
- 0xcf, 0xf7, 0x03, 0xfa, 0xb0, 0xbd, 0xc4, 0x69,
- 0x01, 0x00, 0xfd, 0x80, 0x00, 0x00, 0xe1, 0x22,
- 0x01, 0x00, 0x10, 0xb5, 0x05, 0x4c, 0x00, 0x20,
- 0x20, 0x80, 0x03, 0x48, 0x06, 0x21, 0x08, 0x30,
- 0xbd, 0xf7, 0xd5, 0xfc, 0x14, 0x20, 0x60, 0x60,
- 0x10, 0xbd, 0x98, 0x7c, 0x01, 0x00, 0x10, 0xb5,
- 0x08, 0x4c, 0x3c, 0x00, 0xb8, 0x2a, 0x04, 0x00,
- 0x00, 0x20, 0x20, 0x80, 0x60, 0x80, 0x06, 0x48,
- 0x06, 0x21, 0x0c, 0x30, 0xbd, 0xf7, 0xc6, 0xfc,
- 0x03, 0x48, 0x06, 0x21, 0x12, 0x30, 0xbd, 0xf7,
- 0xc1, 0xfc, 0x14, 0x20, 0xa0, 0x60, 0x10, 0xbd,
- 0x58, 0x7c, 0x01, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x0d, 0x20, 0x05, 0x4a,
- 0xd0, 0xf7, 0x2e, 0xfe, 0x04, 0x48, 0xc8, 0xf7,
- 0x1f, 0xfc, 0x04, 0x48, 0x3c, 0x00, 0xf4, 0x2a,
- 0x04, 0x00, 0xca, 0xf7, 0x44, 0xfc, 0x80, 0xbd,
- 0x00, 0x00, 0x31, 0xd4, 0x00, 0x00, 0x51, 0xb1,
- 0x00, 0x00, 0x09, 0xb1, 0x00, 0x00, 0x08, 0x49,
- 0x80, 0xb5, 0x00, 0x20, 0x08, 0x60, 0xff, 0xf7,
- 0xd0, 0xff, 0xff, 0xf7, 0xc0, 0xff, 0xff, 0xf7,
- 0x04, 0xfc, 0x00, 0xf0, 0x4a, 0xf8, 0xff, 0xf7,
- 0x0a, 0xfc, 0x00, 0xf0, 0x3c, 0xf8, 0x80, 0xbd,
- 0x00, 0x00, 0xe4, 0x65, 0x01, 0x00, 0x3c, 0x00,
- 0x30, 0x2b, 0x04, 0x00, 0x80, 0xb5, 0x00, 0xf0,
- 0x29, 0xf8, 0x00, 0xf0, 0x1b, 0xf8, 0x00, 0xf0,
- 0x51, 0xf8, 0x00, 0xf0, 0x31, 0xf8, 0x80, 0xbd,
- 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x80, 0xb5, 0xff, 0x21, 0x89, 0x31, 0x02, 0x48,
- 0xbd, 0xf7, 0xa2, 0xfc, 0x80, 0xbd, 0x00, 0x00,
- 0xdc, 0x71, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x49,
- 0x08, 0x20, 0xcf, 0xf7, 0x11, 0xfc, 0x80, 0xbd,
- 0x3c, 0x00, 0x6c, 0x2b, 0x04, 0x00, 0x59, 0xd9,
- 0x00, 0x00, 0x80, 0xb5, 0x03, 0x48, 0xcf, 0xf7,
- 0x4c, 0xf9, 0x02, 0x49, 0x48, 0x80, 0x80, 0xbd,
- 0x00, 0x00, 0x8d, 0x1f, 0x00, 0x00, 0x98, 0x7c,
- 0x01, 0x00, 0x80, 0xb5, 0x03, 0x48, 0xcf, 0xf7,
- 0x40, 0xf9, 0x02, 0x49, 0x88, 0x80, 0x80, 0xbd,
- 0x00, 0x00, 0xd5, 0x23, 0x00, 0x00, 0x58, 0x7c,
- 0x01, 0x00, 0x70, 0x47, 0x00, 0x00, 0x80, 0xb5,
- 0x02, 0x48, 0x3c, 0x00, 0xa8, 0x2b, 0x04, 0x00,
- 0xca, 0xf7, 0xe4, 0xfb, 0x80, 0xbd, 0x00, 0x00,
- 0x71, 0xe0, 0x00, 0x00, 0x80, 0xb5, 0xcc, 0xf7,
- 0xa5, 0xfb, 0x02, 0x21, 0x0f, 0x20, 0x06, 0x4a,
- 0xd0, 0xf7, 0xc2, 0xfd, 0x14, 0x21, 0x05, 0x48,
- 0xbd, 0xf7, 0x68, 0xfc, 0x03, 0x48, 0x78, 0x21,
- 0x14, 0x30, 0xbd, 0xf7, 0x63, 0xfc, 0x80, 0xbd,
- 0x35, 0xe2, 0x00, 0x00, 0x84, 0x66, 0x01, 0x00,
- 0x80, 0xb5, 0xcc, 0xf7, 0x3c, 0x00, 0xe4, 0x2b,
- 0x04, 0x00, 0xb7, 0xfb, 0x05, 0x49, 0x08, 0x61,
- 0x05, 0x49, 0x0e, 0x20, 0xcf, 0xf7, 0xcd, 0xfb,
- 0x04, 0x49, 0x08, 0x20, 0xcf, 0xf7, 0xc9, 0xfb,
- 0x80, 0xbd, 0xec, 0x65, 0x01, 0x00, 0x01, 0x02,
- 0x01, 0x00, 0xc1, 0x2e, 0x00, 0x00, 0x01, 0x49,
- 0x00, 0x20, 0x08, 0x70, 0x70, 0x47, 0x40, 0xd9,
- 0x01, 0x00, 0x70, 0x47, 0x00, 0x00, 0x01, 0x49,
- 0x00, 0x20, 0x08, 0x70, 0x70, 0x47, 0x3c, 0x00,
- 0x20, 0x2c, 0x04, 0x00, 0xa0, 0x79, 0x01, 0x00,
- 0x80, 0xb5, 0x07, 0x48, 0xc8, 0xf7, 0xf2, 0xff,
- 0x06, 0x49, 0x48, 0x60, 0x06, 0x48, 0xc0, 0xf7,
- 0x07, 0xfb, 0x06, 0x48, 0xc0, 0xf7, 0x86, 0xfb,
- 0x05, 0x48, 0xc9, 0xf7, 0xa3, 0xfa, 0x80, 0xbd,
- 0xa9, 0xe4, 0x00, 0x00, 0xa0, 0x79, 0x01, 0x00,
- 0xb9, 0xe4, 0x00, 0x00, 0x85, 0x2e, 0x00, 0x00,
- 0x81, 0xe4, 0x00, 0x00, 0x07, 0x48, 0x80, 0xb5,
- 0x3c, 0x00, 0x5c, 0x2c, 0x04, 0x00, 0x00, 0x21,
- 0x00, 0x22, 0x00, 0x23, 0x0e, 0xc0, 0x08, 0xc0,
- 0x10, 0x38, 0xc8, 0x21, 0x01, 0x60, 0x00, 0x21,
- 0x0c, 0x38, 0x02, 0x4a, 0xcc, 0xf7, 0x61, 0xfb,
- 0x80, 0xbd, 0xd0, 0x60, 0x01, 0x00, 0xfd, 0xe5,
- 0x00, 0x00, 0x80, 0xb5, 0xcc, 0xf7, 0x67, 0xfb,
- 0x04, 0x49, 0x08, 0x60, 0x01, 0x1c, 0x02, 0x48,
- 0x04, 0x30, 0xcc, 0xf7, 0x86, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0x3c, 0x00, 0x98, 0x2c, 0x04, 0x00,
- 0xc0, 0x60, 0x01, 0x00, 0x09, 0x48, 0x80, 0xb5,
- 0x0a, 0x21, 0x01, 0x70, 0x41, 0x70, 0x08, 0x49,
- 0x08, 0x4a, 0x81, 0x60, 0x00, 0x21, 0xc1, 0x60,
- 0x52, 0x79, 0x82, 0x70, 0x01, 0x61, 0x41, 0x61,
- 0x28, 0x21, 0x18, 0x30, 0xbd, 0xf7, 0xee, 0xfb,
- 0x80, 0xbd, 0x00, 0x00, 0x7c, 0x78, 0x01, 0x00,
- 0xa0, 0x86, 0x01, 0x00, 0x0c, 0x5a, 0x01, 0x00,
- 0xf8, 0xb5, 0x0f, 0x49, 0x3c, 0x00, 0xd4, 0x2c,
- 0x04, 0x00, 0x0f, 0x48, 0x0d, 0x88, 0x4f, 0x88,
- 0x06, 0x79, 0x00, 0x24, 0x30, 0x1b, 0x68, 0x43,
- 0x68, 0x23, 0x0c, 0x49, 0x58, 0x43, 0x41, 0x18,
- 0x7d, 0x20, 0xc0, 0x00, 0xbd, 0xf7, 0x0f, 0xfd,
- 0x61, 0x00, 0x09, 0x4a, 0xa6, 0x42, 0x50, 0x52,
- 0x00, 0xd1, 0x3d, 0x1c, 0x01, 0x34, 0x24, 0x06,
- 0x24, 0x0e, 0x10, 0x2c, 0xea, 0xd3, 0x05, 0x49,
- 0x01, 0x20, 0x08, 0x61, 0xf8, 0xbd, 0x3c, 0x00,
- 0x10, 0x2d, 0x04, 0x00, 0xf6, 0x59, 0x01, 0x00,
- 0x0c, 0x5a, 0x01, 0x00, 0x34, 0x44, 0x0f, 0x00,
- 0x12, 0x5a, 0x01, 0x00, 0x7c, 0x78, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0xf0, 0xe7, 0xfa, 0x02, 0x49,
- 0x01, 0x20, 0x08, 0x61, 0x80, 0xbd, 0x00, 0x00,
- 0x7c, 0x78, 0x01, 0x00, 0x10, 0xb5, 0x04, 0x1c,
- 0x08, 0x1c, 0x0f, 0x49, 0x49, 0x79, 0x00, 0x29,
- 0x01, 0xd1, 0x0e, 0x4b, 0x00, 0xe0, 0x0e, 0x4b,
- 0x3c, 0x00, 0x4c, 0x2d, 0x04, 0x00, 0x00, 0x2c,
- 0x07, 0xd0, 0x04, 0x21, 0x11, 0x80, 0x0a, 0x1c,
- 0x01, 0x24, 0x19, 0x1c, 0xbd, 0xf7, 0xcd, 0xfb,
- 0x0a, 0xe0, 0x01, 0x24, 0x01, 0x1c, 0x18, 0x1c,
- 0x12, 0x88, 0xbd, 0xf7, 0xc6, 0xfb, 0x00, 0xf0,
- 0xc4, 0xfa, 0x05, 0x49, 0x01, 0x20, 0x08, 0x61,
- 0x20, 0x1c, 0x10, 0xbd, 0x00, 0x00, 0x0c, 0x5a,
- 0x01, 0x00, 0xfe, 0x59, 0x01, 0x00, 0xfa, 0x59,
- 0x01, 0x00, 0x3c, 0x00, 0x88, 0x2d, 0x04, 0x00,
- 0x7c, 0x78, 0x01, 0x00, 0x0d, 0x48, 0x8c, 0xb5,
- 0xc1, 0x88, 0x00, 0xab, 0x0c, 0x4a, 0x99, 0x80,
- 0x01, 0x89, 0x04, 0x20, 0xd9, 0x80, 0x18, 0x80,
- 0x02, 0x21, 0x13, 0x20, 0xd0, 0xf7, 0xd0, 0xfc,
- 0x00, 0xf0, 0xa6, 0xfa, 0x07, 0x49, 0x01, 0x20,
- 0x08, 0x61, 0xff, 0xf7, 0x8d, 0xff, 0x6a, 0x46,
- 0x01, 0xa9, 0x00, 0x20, 0xff, 0xf7, 0xbc, 0xff,
- 0x8c, 0xbd, 0x00, 0x00, 0x3c, 0x00, 0xc4, 0x2d,
- 0x04, 0x00, 0xf4, 0x59, 0x01, 0x00, 0x95, 0xf9,
- 0x00, 0x00, 0x7c, 0x78, 0x01, 0x00, 0xf8, 0xb5,
- 0x13, 0x4e, 0x01, 0x25, 0xb5, 0x70, 0x05, 0x20,
- 0xf0, 0x70, 0x11, 0x49, 0x10, 0x48, 0x0e, 0xc9,
- 0x2c, 0x30, 0x0e, 0xc0, 0x00, 0x20, 0x70, 0x61,
- 0x0f, 0x48, 0x0f, 0x49, 0x10, 0x4f, 0x00, 0x24,
- 0x48, 0x60, 0xa0, 0x00, 0x39, 0x58, 0x20, 0x1c,
- 0xd1, 0xf7, 0xd7, 0xf8, 0x01, 0x34, 0x3c, 0x00,
- 0x00, 0x2e, 0x04, 0x00, 0x10, 0x2c, 0xf7, 0xd3,
- 0x06, 0x4c, 0x0b, 0x4a, 0x20, 0x34, 0x20, 0x1c,
- 0x0a, 0x49, 0xb5, 0x60, 0xcc, 0xf7, 0x92, 0xfa,
- 0xcc, 0xf7, 0x9e, 0xfa, 0x30, 0x61, 0x20, 0x60,
- 0xf8, 0xbd, 0x00, 0x00, 0x64, 0x73, 0x01, 0x00,
- 0xb0, 0x58, 0x01, 0x00, 0x04, 0x18, 0x02, 0x00,
- 0x60, 0x00, 0x07, 0x00, 0xd4, 0x44, 0x01, 0x00,
- 0x45, 0xfa, 0x00, 0x00, 0x71, 0xfa, 0x00, 0x00,
- 0x3c, 0x00, 0x3c, 0x2e, 0x04, 0x00, 0x0c, 0x49,
- 0x30, 0xb5, 0x00, 0x23, 0xcc, 0x56, 0x0b, 0x4b,
- 0x00, 0x20, 0xf0, 0x25, 0x1a, 0x5c, 0x11, 0x07,
- 0x09, 0x0f, 0x09, 0x19, 0x0f, 0x29, 0x01, 0xdd,
- 0x0f, 0x21, 0x02, 0xe0, 0x00, 0x29, 0x00, 0xda,
- 0x00, 0x21, 0x2a, 0x40, 0x51, 0x18, 0x19, 0x54,
- 0x01, 0x30, 0x0e, 0x28, 0xee, 0xdb, 0x30, 0xbd,
- 0x00, 0x00, 0x64, 0x73, 0x01, 0x00, 0xc0, 0x58,
- 0x01, 0x00, 0x3c, 0x00, 0x78, 0x2e, 0x04, 0x00,
- 0xb0, 0xb5, 0x0d, 0x1c, 0x00, 0x28, 0x08, 0xd0,
- 0x01, 0x24, 0x14, 0x80, 0x05, 0x20, 0xcc, 0xf7,
- 0xb5, 0xf8, 0x80, 0x03, 0xc0, 0x0f, 0x28, 0x70,
- 0x07, 0xe0, 0x28, 0x78, 0x01, 0x22, 0x41, 0x04,
- 0x52, 0x04, 0x05, 0x20, 0xd0, 0xf7, 0xae, 0xfd,
- 0x01, 0x24, 0x20, 0x1c, 0xb0, 0xbd, 0x00, 0x00,
- 0x98, 0xb5, 0x05, 0x4c, 0x60, 0x68, 0xcc, 0xf7,
- 0xf5, 0xfd, 0x00, 0x90, 0x3c, 0x00, 0xb4, 0x2e,
- 0x04, 0x00, 0x00, 0xab, 0x18, 0x88, 0xe0, 0x80,
- 0xce, 0xf7, 0xfb, 0xff, 0x98, 0xbd, 0xa0, 0x58,
- 0x01, 0x00, 0x38, 0xb5, 0x03, 0x1c, 0x08, 0x1c,
- 0x00, 0x24, 0x00, 0x2b, 0x17, 0x4d, 0x07, 0xd0,
- 0x0e, 0x21, 0x11, 0x80, 0x0a, 0x1c, 0x01, 0x24,
- 0x29, 0x1c, 0xbd, 0xf7, 0x0c, 0xfb, 0x22, 0xe0,
- 0x11, 0x88, 0x04, 0x29, 0x17, 0xd1, 0x01, 0x1c,
- 0x68, 0x46, 0x12, 0x88, 0xbd, 0xf7, 0x3c, 0x00,
- 0xf0, 0x2e, 0x04, 0x00, 0x03, 0xfb, 0x00, 0x98,
- 0x00, 0x28, 0x01, 0xdb, 0x32, 0x30, 0x00, 0xe0,
- 0x32, 0x38, 0x00, 0x90, 0x01, 0x1c, 0x64, 0x20,
- 0xbd, 0xf7, 0x98, 0xfb, 0x01, 0x06, 0x09, 0x16,
- 0x00, 0x90, 0x0e, 0x22, 0x28, 0x1c, 0xbd, 0xf7,
- 0x85, 0xfb, 0x06, 0xe0, 0x0e, 0x29, 0x05, 0xd1,
- 0x0a, 0x1c, 0x01, 0x1c, 0x28, 0x1c, 0xbd, 0xf7,
- 0xe9, 0xfa, 0x01, 0x24, 0x20, 0x1c, 0x38, 0xbd,
- 0x3c, 0x00, 0x2c, 0x2f, 0x04, 0x00, 0xda, 0x59,
- 0x01, 0x00, 0x38, 0xb5, 0x03, 0x1c, 0x08, 0x1c,
- 0x00, 0x24, 0x00, 0x2b, 0x17, 0x4d, 0x07, 0xd0,
- 0x0e, 0x21, 0x11, 0x80, 0x0a, 0x1c, 0x01, 0x24,
- 0x29, 0x1c, 0xbd, 0xf7, 0xd6, 0xfa, 0x22, 0xe0,
- 0x11, 0x88, 0x04, 0x29, 0x17, 0xd1, 0x01, 0x1c,
- 0x68, 0x46, 0x12, 0x88, 0xbd, 0xf7, 0xcd, 0xfa,
- 0x00, 0x98, 0x00, 0x28, 0x01, 0xdb, 0x32, 0x30,
- 0x00, 0xe0, 0x3c, 0x00, 0x68, 0x2f, 0x04, 0x00,
- 0x32, 0x38, 0x00, 0x90, 0x01, 0x1c, 0x64, 0x20,
- 0xbd, 0xf7, 0x62, 0xfb, 0x01, 0x06, 0x09, 0x16,
- 0x00, 0x90, 0x0e, 0x22, 0x28, 0x1c, 0xbd, 0xf7,
- 0x4f, 0xfb, 0x06, 0xe0, 0x0e, 0x29, 0x05, 0xd1,
- 0x0a, 0x1c, 0x01, 0x1c, 0x28, 0x1c, 0xbd, 0xf7,
- 0xb3, 0xfa, 0x01, 0x24, 0x20, 0x1c, 0x38, 0xbd,
- 0xcc, 0x59, 0x01, 0x00, 0x03, 0x48, 0x80, 0xb5,
- 0x01, 0x78, 0x00, 0x20, 0x3c, 0x00, 0xa4, 0x2f,
- 0x04, 0x00, 0xcc, 0xf7, 0xb4, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0xa6, 0x58, 0x01, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x02, 0x49, 0x03, 0x20, 0x08, 0x70,
- 0x00, 0x20, 0x48, 0x70, 0x70, 0x47, 0x9c, 0x73,
- 0x01, 0x00, 0x80, 0xb5, 0x02, 0x21, 0x11, 0x20,
- 0x02, 0x4a, 0xd0, 0xf7, 0xbc, 0xfb, 0x80, 0xbd,
- 0x00, 0x00, 0xa1, 0xfe, 0x00, 0x00, 0xf0, 0xb5,
- 0x0b, 0x4f, 0x1c, 0x1c, 0x00, 0x23, 0x3c, 0x00,
- 0xe0, 0x2f, 0x04, 0x00, 0xfd, 0x56, 0x2b, 0x1c,
- 0x06, 0x2d, 0x01, 0xd1, 0x01, 0x20, 0xf0, 0xbd,
- 0x06, 0x4e, 0x05, 0x1c, 0xd8, 0x00, 0x34, 0x36,
- 0x35, 0x54, 0x80, 0x19, 0x41, 0x70, 0x82, 0x70,
- 0x44, 0x60, 0x58, 0x1c, 0x38, 0x70, 0x00, 0x20,
- 0xf0, 0xbd, 0x00, 0x00, 0x98, 0x5a, 0x01, 0x00,
- 0x10, 0xb5, 0x04, 0x1c, 0x0c, 0x48, 0x00, 0xf0,
- 0x21, 0xf9, 0x60, 0x78, 0xff, 0x28, 0x04, 0xd0,
- 0x3c, 0x00, 0x1c, 0x30, 0x04, 0x00, 0x01, 0x23,
- 0xe0, 0x56, 0x06, 0x21, 0x00, 0xf0, 0xcd, 0xf8,
- 0x08, 0x4a, 0x01, 0x21, 0x10, 0x78, 0x08, 0x43,
- 0x07, 0x49, 0x08, 0x70, 0x20, 0x23, 0x18, 0x43,
- 0x08, 0x70, 0x80, 0x23, 0x18, 0x43, 0x10, 0x70,
- 0x08, 0x70, 0x10, 0xbd, 0x00, 0x00, 0x91, 0x9b,
- 0x00, 0x00, 0xe0, 0x60, 0x01, 0x00, 0x04, 0x00,
- 0x07, 0x00, 0x10, 0xb5, 0x0a, 0x49, 0x04, 0x1c,
- 0x08, 0x78, 0x3c, 0x00, 0x58, 0x30, 0x04, 0x00,
- 0x40, 0x08, 0x40, 0x00, 0x08, 0x70, 0x08, 0x49,
- 0x08, 0x70, 0x08, 0x48, 0x00, 0xf0, 0xf8, 0xf8,
- 0x60, 0x78, 0xff, 0x28, 0x04, 0xd0, 0x01, 0x23,
- 0xe0, 0x56, 0x05, 0x21, 0x00, 0xf0, 0xa4, 0xf8,
- 0x10, 0xbd, 0x00, 0x00, 0xe0, 0x60, 0x01, 0x00,
- 0x04, 0x00, 0x07, 0x00, 0x91, 0x9b, 0x00, 0x00,
- 0x03, 0x48, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23,
- 0x0e, 0xc0, 0x08, 0xc0, 0x3c, 0x00, 0x94, 0x30,
- 0x04, 0x00, 0x70, 0x47, 0x00, 0x00, 0xe8, 0x60,
- 0x01, 0x00, 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5,
- 0x07, 0x4c, 0x00, 0x20, 0x60, 0x60, 0x20, 0x80,
- 0xe0, 0x60, 0x02, 0x21, 0x14, 0x20, 0x04, 0x4a,
- 0xd0, 0xf7, 0x49, 0xfb, 0x02, 0x48, 0x10, 0x30,
- 0xa0, 0x60, 0x10, 0xbd, 0x00, 0x00, 0x58, 0x75,
- 0x01, 0x00, 0x05, 0x1d, 0x01, 0x00, 0x70, 0x47,
- 0x00, 0x00, 0x10, 0xb5, 0x48, 0x21, 0x3c, 0x00,
- 0xd0, 0x30, 0x04, 0x00, 0x0a, 0x48, 0xbd, 0xf7,
- 0xe3, 0xf9, 0x09, 0x4c, 0xe0, 0x21, 0x48, 0x34,
- 0x20, 0x1c, 0xbd, 0xf7, 0xdd, 0xf9, 0x00, 0x20,
- 0xc1, 0x00, 0x09, 0x19, 0x0a, 0x1c, 0x08, 0x32,
- 0x01, 0x30, 0x1b, 0x28, 0x4a, 0x60, 0xf7, 0xd3,
- 0x01, 0x48, 0x04, 0x38, 0x04, 0x60, 0x10, 0xbd,
- 0x68, 0x5b, 0x01, 0x00, 0x80, 0xb5, 0x02, 0x21,
- 0x23, 0x20, 0x02, 0x4a, 0xd0, 0xf7, 0x1e, 0xfb,
- 0x3c, 0x00, 0x0c, 0x31, 0x04, 0x00, 0x80, 0xbd,
- 0x00, 0x00, 0x45, 0x23, 0x01, 0x00, 0x80, 0xb5,
- 0xff, 0xf7, 0x6b, 0xf8, 0x80, 0xbd, 0x70, 0x47,
- 0x00, 0x00, 0xf8, 0xb5, 0x01, 0x20, 0x1d, 0x49,
- 0xc0, 0x07, 0x48, 0x60, 0x1d, 0x49, 0xff, 0x20,
- 0x08, 0x73, 0x1c, 0x4e, 0x10, 0x20, 0x30, 0x60,
- 0x05, 0x01, 0x35, 0x60, 0x1b, 0x4c, 0x80, 0x21,
- 0x20, 0x1c, 0xbd, 0xf7, 0xac, 0xf9, 0x00, 0x21,
- 0x19, 0x4a, 0x3c, 0x00, 0x48, 0x31, 0x04, 0x00,
- 0x15, 0x4f, 0x00, 0x20, 0x0b, 0x01, 0x1b, 0x19,
- 0x5a, 0x60, 0xcb, 0x00, 0xdb, 0x19, 0x18, 0x74,
- 0x01, 0x31, 0x08, 0x29, 0xf6, 0xdb, 0x0f, 0x4c,
- 0xfa, 0x21, 0x21, 0x80, 0x12, 0x49, 0x61, 0x80,
- 0xa0, 0x60, 0x6a, 0x46, 0x11, 0x49, 0x04, 0x20,
- 0xbd, 0xf7, 0x30, 0xff, 0x6a, 0x46, 0x10, 0x49,
- 0x08, 0x20, 0xbd, 0xf7, 0x2b, 0xff, 0x10, 0x20,
- 0x70, 0x60, 0x75, 0x60, 0x3c, 0x00, 0x84, 0x31,
- 0x04, 0x00, 0x60, 0x68, 0x02, 0x21, 0x08, 0x43,
- 0x60, 0x60, 0x0b, 0x49, 0x06, 0x4a, 0x08, 0x1c,
- 0x10, 0x30, 0x08, 0x3a, 0x03, 0xc2, 0xf8, 0xbd,
- 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x60,
- 0x07, 0x00, 0x00, 0x10, 0x07, 0x00, 0xac, 0x73,
- 0x01, 0x00, 0xd1, 0x75, 0x00, 0x00, 0x20, 0x4e,
- 0x00, 0x00, 0x05, 0x2c, 0x01, 0x00, 0x11, 0x2c,
- 0x01, 0x00, 0x00, 0xa0, 0x07, 0x00, 0x3c, 0x00,
- 0xc0, 0x31, 0x04, 0x00, 0x70, 0xb5, 0x0e, 0x1c,
- 0x00, 0x24, 0xc4, 0xf7, 0x5b, 0xfe, 0x00, 0x28,
- 0x3b, 0xd0, 0x45, 0x68, 0xff, 0x2d, 0x38, 0xd0,
- 0x0c, 0x2e, 0x28, 0xd2, 0x01, 0xa3, 0x9b, 0x5d,
- 0x5b, 0x00, 0x9f, 0x44, 0x05, 0x07, 0x09, 0x0b,
- 0x0d, 0x10, 0x13, 0x16, 0x18, 0x1b, 0x1e, 0x21,
- 0x18, 0x24, 0x20, 0xe0, 0x30, 0x24, 0x1e, 0xe0,
- 0x60, 0x24, 0x1c, 0xe0, 0xc0, 0x24, 0x1a, 0xe0,
- 0x3c, 0x00, 0xfc, 0x31, 0x04, 0x00, 0xff, 0x24,
- 0x81, 0x34, 0x17, 0xe0, 0x09, 0x24, 0xa4, 0x01,
- 0x14, 0xe0, 0x09, 0x24, 0xe4, 0x01, 0x11, 0xe0,
- 0x0f, 0x4c, 0x0f, 0xe0, 0x09, 0x24, 0x24, 0x02,
- 0x0c, 0xe0, 0x09, 0x24, 0x64, 0x02, 0x09, 0xe0,
- 0x03, 0x24, 0xe4, 0x02, 0x06, 0xe0, 0x09, 0x24,
- 0xa4, 0x02, 0x03, 0xe0, 0x09, 0x21, 0x9e, 0x20,
- 0xbe, 0xf7, 0x39, 0xf8, 0x60, 0x00, 0x00, 0x19,
- 0x40, 0x08, 0x3c, 0x00, 0x38, 0x32, 0x04, 0x00,
- 0x05, 0x49, 0x80, 0x04, 0x40, 0x18, 0x05, 0x4a,
- 0xa9, 0x00, 0x89, 0x18, 0x48, 0x60, 0x64, 0x20,
- 0x60, 0x43, 0x70, 0xbd, 0xdc, 0x07, 0x00, 0x00,
- 0x80, 0x38, 0x01, 0x00, 0x04, 0x00, 0x07, 0x00,
- 0x02, 0x49, 0x80, 0xb5, 0x08, 0x60, 0xd0, 0xf7,
- 0x97, 0xf8, 0x80, 0xbd, 0x5c, 0x5b, 0x01, 0x00,
- 0xf8, 0xb5, 0x00, 0x26, 0x17, 0x4c, 0x17, 0x4b,
- 0x19, 0x49, 0x26, 0x70, 0x3c, 0x00, 0x74, 0x32,
- 0x04, 0x00, 0x00, 0x20, 0x14, 0x33, 0x0d, 0x88,
- 0x15, 0x4e, 0x15, 0x4a, 0x04, 0xe0, 0xc1, 0x00,
- 0xcf, 0x18, 0x7a, 0x60, 0x5e, 0x50, 0x01, 0x30,
- 0xa8, 0x42, 0xf8, 0xdb, 0xc6, 0xf7, 0x2b, 0xfd,
- 0xff, 0x21, 0x11, 0x4d, 0xa5, 0x31, 0x28, 0x1c,
- 0xbd, 0xf7, 0xff, 0xf8, 0x00, 0x21, 0x28, 0x1c,
- 0x02, 0x1c, 0x14, 0x32, 0xc2, 0x60, 0x10, 0x1c,
- 0x01, 0x31, 0x14, 0x29, 0xf8, 0xdb, 0x3c, 0x00,
- 0xb0, 0x32, 0x04, 0x00, 0x00, 0x26, 0xc6, 0x60,
- 0x05, 0x48, 0x0c, 0x30, 0x60, 0xc0, 0x09, 0x48,
- 0x18, 0x21, 0xbd, 0xf7, 0xed, 0xf8, 0x01, 0x20,
- 0x04, 0x34, 0x41, 0xc4, 0x00, 0x20, 0xf8, 0xbd,
- 0x70, 0x5d, 0x01, 0x00, 0x09, 0xa0, 0x00, 0x00,
- 0x30, 0xd9, 0x01, 0x00, 0x56, 0x57, 0x01, 0x00,
- 0x04, 0x5f, 0x01, 0x00, 0xa8, 0x60, 0x01, 0x00,
- 0x80, 0xb5, 0x00, 0x20, 0xcf, 0xf7, 0xb6, 0xfc,
- 0x3c, 0x00, 0xec, 0x32, 0x04, 0x00, 0x01, 0x49,
- 0x08, 0x80, 0x80, 0xbd, 0x00, 0x00, 0x2c, 0x74,
- 0x01, 0x00, 0x11, 0x48, 0xf8, 0xb5, 0x41, 0x79,
- 0x00, 0x29, 0x02, 0xd1, 0x05, 0x78, 0x0f, 0x4e,
- 0x01, 0xe0, 0x45, 0x78, 0x0f, 0x4e, 0x02, 0x23,
- 0xf7, 0x5e, 0x00, 0x24, 0x60, 0x1b, 0x78, 0x43,
- 0x64, 0x23, 0x0c, 0x49, 0x58, 0x43, 0x41, 0x18,
- 0x7d, 0x20, 0xc0, 0x00, 0xbd, 0xf7, 0xf5, 0xf9,
- 0x61, 0x00, 0x3c, 0x00, 0x28, 0x33, 0x04, 0x00,
- 0x09, 0x4a, 0xac, 0x42, 0x50, 0x52, 0x01, 0xd1,
- 0x00, 0x23, 0xf7, 0x5e, 0x01, 0x34, 0x24, 0x06,
- 0x24, 0x0e, 0x10, 0x2c, 0xe9, 0xd3, 0xf8, 0xbd,
- 0x0c, 0x5a, 0x01, 0x00, 0xfe, 0x59, 0x01, 0x00,
- 0xfa, 0x59, 0x01, 0x00, 0x34, 0x44, 0x0f, 0x00,
- 0x32, 0x5a, 0x01, 0x00, 0x38, 0xb5, 0x10, 0x4c,
- 0xbe, 0x25, 0x25, 0x73, 0x20, 0x7a, 0x18, 0x21,
- 0x88, 0x43, 0x20, 0x72, 0x3c, 0x00, 0x64, 0x33,
- 0x04, 0x00, 0x6a, 0x46, 0x0d, 0x49, 0x0d, 0x20,
- 0xbd, 0xf7, 0x33, 0xfe, 0x01, 0x20, 0x0b, 0x49,
- 0x40, 0x03, 0x08, 0x60, 0x48, 0x60, 0x25, 0x73,
- 0x2d, 0x20, 0xc0, 0x03, 0x20, 0x60, 0x25, 0x73,
- 0x20, 0x7a, 0x10, 0x21, 0x08, 0x43, 0x20, 0x72,
- 0x06, 0x48, 0x06, 0x49, 0x08, 0x60, 0x00, 0x20,
- 0x48, 0x60, 0x38, 0xbd, 0x00, 0x00, 0x00, 0x03,
- 0x07, 0x00, 0x8d, 0x3e, 0x01, 0x00, 0x24, 0x00,
- 0xa0, 0x33, 0x04, 0x00, 0x00, 0x10, 0x07, 0x00,
- 0x00, 0x87, 0x93, 0x03, 0x04, 0x79, 0x01, 0x00,
- 0x80, 0xb5, 0x02, 0x21, 0x15, 0x20, 0x02, 0x4a,
- 0xd0, 0xf7, 0xc8, 0xf9, 0x80, 0xbd, 0x00, 0x00,
- 0x0d, 0x3e, 0x01, 0x00, 0x70, 0x47, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x44, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x40, 0x20, 0x07, 0x00,
- 0xff, 0xff, 0xff, 0xff,
-};
-const uint32_t fw_len = sizeof(fw_buf) / sizeof(fw_buf[0]);
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_os.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_os.h
deleted file mode 100644
index 1a3b75f..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_os.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef WL_OS_H
-#define WL_OS_H
-
-#include <stdarg.h>
-#include <stdlib.h>
-
-void *owl_os_alloc(size_t size);
-void *owl_os_realloc(void *ptr, size_t size);
-void owl_os_free(void *p);
-void *owl_os_memcpy(void *dst, const void *src, size_t n);
-void *owl_os_memset(void *s, int c, size_t n);
-void *owl_os_memmove(void *dst, const void *src, size_t n);
-size_t owl_os_strlen(char *s);
-char *owl_os_strncpy(char *dst, const char *src, size_t n);
-int owl_os_strncmp(const char *s1, const char *s2, size_t n);
-int owl_os_strcmp(const char *s1, const char *s2);
-char *owl_os_strcpy(char *dst, const char *src);
-char *owl_os_strdup(const char *s);
-char *owl_os_strndup(const char *s, size_t n);
-int owl_os_memcmp(const void *s1, const void *s2, size_t n);
-long int owl_os_strtol(const char *nptr, char **endptr, int base);
-char *owl_os_strchr(const char *s, int c);
-char *owl_os_strrchr(const char *s, int c);
-int owl_os_strcasecmp(const char *s1, const char *s2);
-char *owl_os_strstr(const char *haystack, const char *needle);
-
-int owl_os_snprintf(char *str, size_t size, const char *format, ...)
- __attribute__((format(printf, 3, 4)));
-
-int owl_os_vprintf(const char *format, va_list arg); /* debug only */
-int owl_os_printf(const char *format, ...) /* debug only */
- __attribute__((format(printf, 1, 2)));
-
-#endif /* WL_OS_H */
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_sdio.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_sdio.h
deleted file mode 100644
index ee08fad..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_sdio.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/*!
- * \file wl_sdio.h
- * \brief SDIO interface for wl_api.
- * Copyright (C) 2010 HD Wireless AB
- *
- * You should have received a copy of the license along with this library.
- */
-
-#ifndef WL_SDIO_H
-#define WL_SDIO_H
-
-/** \defgroup wl_sdio SDIO Interface
- *
- * These functions implement the interface that the wl_api library
- * needs to work with a SDIO transport layer.
- *
- * The functions prototyped here must be implemented when porting the
- * wl_api library to a new platform with a different SDIO configuration
- *
- * On platforms supported by H&D Wireless these functions are
- * implemented in the file avr32_sdio.c
- *
- * @{
- */
-
-/**
- * Maximum transfer size. This will set an upper limit on the len parameter
- * passed to owl_sdio_tx() and owl_sdio_rx().
- *
- */
-#define MAX_BLOCK_LEN 512
-
-
-/**
- * This flag might be set when owl_sdio_cmd() is called in case the cmd will
- * be followed by a data transfer. If the flag is set, the transfer direction is
- * from the device to the host (read). Otherwise, the transfer direction is
- * from the host to the device (write).
- *
- */
- #define CMD_FLAG_TO_HOST (1 << 0)
-
-
-/**
- * Indicates that the sdio driver needs to be polled in order to make
- * forward progress, i.e. it does not support interrupts
- *
- * The actual polling will result in owl_sdio_cmd() being called to
- * request status information from the device.
- *
- * To activate polling, this flag should be set in owl_sdio_init().
- */
-#define SDIO_FLAG_POLL (1 << 0)
-
-/**
- * Indicates that the sdio driver only supports 1-bit mode.
- *
- * To set 1-bit mode, this flag should be set in owl_sdio_init().
- */
-#define SDIO_FLAG_1BIT_MODE (1 << 1)
-
-/**
- * This function will be invoked when wlan initialization should be performed,
- * this happens when the wl_fw_download() function in the transport group of
- * wl_api is invoked.
- *
- * The wifi device supports sdio high speed mode and clock frequencies up to
- * 50 MHz.
- *
- * The function is responsible for doing any necessary sdio initialization such
- * as allocating gpio's, setting up the mci master, one time allocations of
- * dma buffers etc.
- *
- * @param flags is an out parameter that should hold any sdio flags upon return.
- * The avaible flags are prefixed with SDIO_FLAG_
- *
- *
- */
-void owl_sdio_init(uint8_t *flags);
-
-
-
-/**
- * This function will be invoked when an sdio cmd should be sent to the
- * device.
- *
- * @param idx is the sdio command number
- * @param arg is the sdio command argument
- * @param flags specifies other options, such as any transfer direction.
- * @param rsp should hold the command response upon return. If null, the
- * response can be ignored.
- * @param data holds a pointer to any data that might follow the command. This
- * allows the sdio driver to setup dma transfers while waiting for the
- * command response. NULL if no data transfer will follow. Note that
- * the same data pointer will be passed to owl_sdio_tx(), which should
- * start the actual transfer.
- * @param len is the length of the data buffer.
- *
- */
-void owl_sdio_cmd(uint8_t idx, uint32_t arg, uint8_t flags, uint32_t *rsp,
- const uint8_t *data, uint16_t len);
-
-
-/**
- * This function will be invoked when data should be transmitted to the device.
- *
- * If wl_fw_downlad() was called with the size_align parameter set to non-zero,
- * the pad parameter should be used. If the pad parameter is not 0, additional
- * data must be transmitted after the data buffer has be sent. Depending on
- * how the data buffer was first allocated (probably by an TCP/IP stack), it
- * might be safe or unsafe to continue reading beyond the data buffer to
- * transmit the additional padding bytes.
- *
- * @param data holds a pointer to the data to transmit, the pointer is the
- * same as the one passed to wl_tx().
- * @param len is the number of bytes that should be transmitted, including
- * padding.
- * @param pad is the number of padding bytes to send.
- *
- */
-void owl_sdio_tx(const uint8_t *data, uint16_t len, uint8_t pad);
-
-
-/**
- * This function will be invoked when data should be received from the device.
- *
- * @param data should hold the read data upon return.
- * @param len is the number of bytes to read.
- *
- */
-void owl_sdio_rx(uint8_t *data, uint16_t len);
-
-
-/**
- * Invoked when sdio rx interrupts from the device should be enabled or
- * disabled.
- *
- * If SDIO_FLAG_POLL was set in wl_spi_init(), then this function can be
- * left empty.
- *
- * @param enable specifies if interrupts should be enabled or disabled.
- *
- */
-void owl_sdio_irq(uint8_t enable);
-
-
-/**
- * Delay executiom for the specified number of ms. This function will be called
- * with delays in the 10-20 ms range during fw download and startup of the
- * Wi-Fi device. This function can be implemented with a simple for-loop if
- * desired (beware of optimization). The timing does not have to be accurate as
- * long as the actual delay becomes at least the specified number of ms.
- *
- * @param ms is the minimal amount of time to wait [ms].
- *
- */
-void owl_sdio_mdelay(uint32_t ms);
-
-
-/**
- * This function should be called whenever an interrupt is detected. It can
- * be called from an interrupt context.
- *
- * If SDIO_FLAG_POLL was set in owl_sdio_init(), then wl_sdio_irq()
- * should never be called.
- *
- */
-extern void wl_sdio_irq(void);
-
-/*! @} */
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_spi.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_spi.h
deleted file mode 100644
index 5d91374..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_spi.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*!
- * \file wl_spi.h
- * \brief SPI interface for wl_api.
- * Copyright (C) 2010 HD Wireless AB
- *
- * You should have received a copy of the license along with this library.
- */
-
-#ifndef WL_SPI_H
-#define WL_SPI_H
-
-#ifndef WITHOUT_STDINT
-#include <stdint.h>
-#endif
-
-/** \defgroup wl_spi SPI Interface
- *
- * These functions implement the interface that the wl_api library
- * needs to work with a SPI transport layer.
- *
- * The functions prototyped here must be implemented when porting the
- * wl_api library to a new platform with a different SPI configuration
- *
- * On platforms supported by H&D Wireless these functions are
- * implemented in the file avr32_spi.c
- *
- * @{
- */
-
-/**
- * Maximum transfer size. This will set an upper limit on the len parameter
- * passed to owl_spi_txrx().
- *
- *
- */
-#define MAX_BLOCK_LEN 512
-
-
-/**
- * Indicates that the spi driver needs to be polled in order to make
- * forward progress, i.e. it does not support interrupts through SD pin 8.
- *
- * The actual polling will result in owl_spi_txrx() being call to
- * request status information from the device.
- *
- * To activate polling, this flag should be set in owl_spi_init().
- *
- * See wl_poll() and wl_register_rx_isr() for more information regarding
- * polled and interrupt modes.
- *
- */
-#define SPI_FLAG_POLL (1 << 0)
-
-
-/**
- * This function will be invoked when wlan device initialization should be
- * performed, this happens when the wl_fw_download() function in the transport
- * group of wl_api is invoked.
- *
- * The wifi device requires spi mode 3, i.e. clock polarity high and sample
- * on second phase. This corresponds to CPOL=1, CPHA=1. Maximum frequency on
- * spi clock is 30 MHz.
- *
- * The function is also responsible for doing any necessary spi initialization
- * such as allocating gpio's, setting up the SPI master, one time allocations of
- * dma buffers etc.
- *
- *
- * If the SPB105 device is used, two signals; POWER (pin 10 on SPB105) and
- * SHUTDOWN (pin 4 on SPB105) might be connected to gpio's on the host.
- * The GPIO_POWER_PIN is the main power supply to the device. The
- * GPIO_SHUTDOWN_PIN (active low) should be defined as an input.
- *
- * After GPIO_POWER_PIN is pulled high by the host, the device will pull the
- * GPIO_SHUTDOWN_PIN high once the device is properly powered.
- *
- * However, if pin 4 (GPIO_SHUTDOWN_PIN) is not connected to the host, a delay
- * of up to 250 ms must be added after GPIO_POWER_PIN is pulled high to ensure
- * that startup is completed. The actual time is usually much shorter, therefore
- * one might try to reduce the delay for a particualar hardware design.
- *
- * On SPB104, the GPIO_POWER_PIN will be connected to VCC and GPIO_SHUTDOWN_PIN
- * will be unconnected; hence we have to make sure that we have enough delay
- * after powering on the host. Since the device power-on usually happens at the
- * same time as the host power-on, the startup time of the host can be
- * subtracted from any delay put into owl_spi_init().
- *
- * @param flags is an out parameter that should hold any spi flags upon return.
- * The avaible flags are prefixed with SPI_FLAG_
- *
- * @return 0 on success
- * -1 if any error occurs
- *
- */
-int owl_spi_init(uint8_t *flags);
-
-
-/**
- * Invoked when a spi transfer should be performed.
- *
- * All buffers that are allocated by the wl library will have a size that is
- * aligned to 4. If size-unaligned data is passed to this function, it is
- * always allocated by the ip stack. If 4-byte size alignment (e.g. for DMA)
- * is required, 1-3 extra padding bytes can be transmitted after the in buffer.
- * These bytes must be 0xff.
- *
- * Since size-unaligned data always comes from the ip stack, the out ptr is
- * always NULL for such data.
- *
- * @param in points a buffer which holds the data to be transmitted. If NULL,
- * then \a len bytes with the value 0xff should be transmitted on the
- * bus.
- * @param out points a buffer should hold the data received from the device. If
- * NULL, any received data can be discarded.
- * @param len is the length of the in and out buffers.
- *
- */
-void owl_spi_txrx(const uint8_t *in, uint8_t* out, uint16_t len);
-
-
-/**
- * Invoked when spi rx interrupts from the device should be enabled or disabled.
- * Note that the spi interrupts are obtained from pin 8 on SPB104 or pin 3 from
- * SPB105. This pin can be be connected to a gpio on the host. The irq line
- * will signal an interrupt on both edges.
- *
- * In general, the wifi device will not issue a new interrupt unless the
- * last interrupt has been handled. Also, during normal operation (i.e after
- * the complete callback registered in wl_init() has been invoked),
- * owl_spi_irq() will never be invoked so interrupts will be enabled all
- * the time. For the SPI-mode, the purpose of owl_spi_irq() is basically to
- * make sure that the first interrupt (coming after the reset performed in
- * owl_spi_init()) is ignored.
- *
- * If SPI_FLAG_POLL was set in owl_spi_init(), then this function can be
- * left empty and the wifi device will be used in polled mode. In polled mode,
- * the interrupt line is not used. Regardless of polled or interrupt-mode,
- * wl_poll() must be called to ensure progress of the driver.
- *
- * @param enable specifies if interrupts should be enabled or disabled.
- *
- */
-void owl_spi_irq(uint8_t enable);
-
-
-/**
- * Invoked when the spi cs for the wifi device should be enabled. Note that
- * multiple calls to owl_spi_txrx() might be done during a 'single' chip
- * select.
- *
- * @param enable specifies whether chip select should be asserted or deasserted,
- * The chip select signal is active low, so if enable is '1' then the
- * chip select connected to the wifi device should be set to '0'.
- *
- */
-void owl_spi_cs(uint8_t enable);
-
-
-/**
- * Delay executiom for the specified number of ms. This function will be called
- * with delays in the 10-20 ms range during fw download and startup of the
- * Wi-Fi device. This function can be implemented with a simple for-loop if
- * desired (beware of optimization). The timing does not have to be accurate as
- * long as the actual delay becomes at least the specified number of ms.
- *
- * @param ms is the minimal amount of time to wait [ms].
- *
- */
-void owl_spi_mdelay(uint32_t ms);
-
-
-/**
- * This function should be called whenever an interrupt is detected. It can
- * be called from an interrupt context.
- *
- * If SPI_FLAG_POLL was set in owl_spi_init(), then wl_spi_irq()
- * should never be called.
- *
- */
-extern void wl_spi_irq(void);
-
-
-/*! @} */
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wlap_api.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wlap_api.h
deleted file mode 100644
index 9a4483a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wlap_api.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Programming interface for wlap_api.
- * Copyright (C) 2011 HD Wireless AB
- *
- * You should have received a copy of the license along with this library.
- */
-
-/*! \file wlap_api.h *************************************************************
- *
- * \brief WiFi AP API
- *
- * This file provides the wlap_api interface.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices:
- * \li SPB104 + EVK1100
- * \li SPB104 + EVK1101
- * \li SPB104 + EVK1104
- * \li SPB104 + EVK1105 (SPI)
- * \li SPB104 + EVK1105 (SPI + irq)
- * \li SPB105 + EVK1105 (SPI)
- * - AppNote:
- *
- * \author H&D Wireless AB: \n
- *
- *****************************************************************************
- *
- * \section intro Introduction
- * This is the documentation for the WiFi AP Driver API \a wlap_api.
- *
- * \section files Main Files
- * - wlap_api.h : WiFi driver interface.
- * - libwlap_api_*.*.a - Driver library.
- *
- */
-
-#ifndef WLAP_API_H
-#define WLAP_API_H
-
-#define WLAP_API_RELEASE_NAME "unknown"
-
-#include <wl_api.h>
-
-/** \defgroup wl_softap Access Point Mode
- *
- * \brief Support the WiFi Access Point mode.
- *
- * @{
- */
-/*
- * Station representation
- *
- */
-struct wl_sta_t
-{
- struct wl_mac_addr_t bssid; /**< The BSSID of the network. */
- uint8_t queued_pkt_cnt; /**< Number of queueud packets for
- this STA. */
- uint8_t in_ps; /**< Is the STA in power save mode. */
- uint8_t aid; /**< STA AID */
-};
-
-/* Station list representation. Array of pointers to wl_sta_t entries. */
-struct wl_sta_list_t
-{
- struct wl_sta_t **sta; /**< The list of pointers to stations */
- size_t cnt; /**< Number of stations */
-};
-
-/*! \brief Get the list of currently associated stations (SoftAP).
- *
- * Retrieves the list of current stations from
- * the driver.
- *
- * This function is not thread safe. It must be called in the
- * same execution context as wl_poll().
- *
- * @param network_list Output buffer. The API call returns
- * a pointer to allocated memory containing the network list.
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE.
- */
-wl_err_t wlap_get_sta_list(struct wl_sta_list_t **network_list);
-
-
-/*! Callback used to read data from a TX packet.
- * This function is supplied by the user of the API.
- *
- * @param dst Destination buffer. The data should be copied
- * to this buffer.
- * @param src_handle Handle to the source packet from where
- * the data should be copied. This handle is the same one that
- * is passed in parameter \a pkt_handle to \a wl_process_tx().
- * @param read_len Number of bytes to copy from \a src_handle
- * to \a dst.
- * @param offset The offset in bytes, counting from the
- * beginning of the Ethernet header, from where to copy data.
- * @return
- * - The number of bytes copied. This number may be smaller
- * than the length requested in \a read_len but it may not
- * be shorter than the length of the packet counting from
- * \a offset. In other words, if the caller of this function
- * receives a return count that is shorter than \a read_len
- * he will assume that all packet data has been read.
- * - < 0 on error.
- */
-typedef ssize_t (*wl_pkt_read_cb_t)(char *dst,
- void *src_handle,
- size_t read_len,
- int offset);
-
-/*! \brief Register a data access function for TX packets (SoftAP).
- *
- * When a TX data packet has a different representation than a single
- * contiguous buffer in memory then a packet read function must be
- * implemented and registered with this call. Whenever the library
- * needs to read packet data it will call this function to do it.
- *
- * This function can be ignored if the TX packet representation is
- * a single contiguous buffer. This function is only needed in SoftAP
- * mode.
- *
- * @param pkt_read_cb Read callback.
- * @param ctx Context
- */
-void wl_register_pkt_read_cb(wl_pkt_read_cb_t pkt_read_cb);
-
-/*! \brief Start a network using the SoftAP mode.
- *
- * This call will cause the WiFi chip to start sending beacons
- * and accept associations from WiFi stations.
- *
- */
-wl_err_t wlap_start_ap(const char *ssid,
- const size_t ssid_len,
- const uint8_t channel,
- const enum wl_auth_mode auth_mode,
- const enum wl_enc_type enc_type);
-
-/*! \brief Disconnect a STA (SoftAP)
- *
- * @param bssid The BSSID of the station to disconnect.
- * @return
- * - WL_SUCCESS
- * - WL_FAILURE.
- */
-wl_err_t wlap_disconnect_sta(const struct wl_mac_addr_t bssid);
-
-
-/*! @} */ /* End wl_softap group */
-
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER/cycle_counter.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER/cycle_counter.h
deleted file mode 100644
index d0c51df..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER/cycle_counter.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Cycle counter driver.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32UC devices.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _CYCLE_COUNTER_H_
-#define _CYCLE_COUNTER_H_
-
-#include "compiler.h"
-
-
-//! Structure holding private information, automatically initialized by the
-//! cpu_set_timeout() function.
-typedef struct
-{
- //! The cycle count at the begining of the timeout.
- unsigned long delay_start_cycle;
-
- //! The cycle count at the end of the timeout.
- unsigned long delay_end_cycle;
-
- //! Enable/disable the timout detection
- unsigned char timer_state;
- #define CPU_TIMER_STATE_STARTED 0
- #define CPU_TIMER_STATE_REACHED 1
- #define CPU_TIMER_STATE_STOPPED 2
-} t_cpu_time;
-
-
-/*!
- * \brief Convert milli-seconds into CPU cycles.
- *
- * \param ms: Number of millisecond.
- * \param fcpu_hz: CPU frequency in Hz.
- *
- * \return the converted number of CPU cycles.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ U32 cpu_ms_2_cy(unsigned long ms, unsigned long fcpu_hz)
-{
- return ((unsigned long long)ms * fcpu_hz + 999) / 1000;
-}
-
-
-/*!
- * \brief Convert micro-seconds into CPU cycles.
- *
- * \param us: Number of microsecond.
- * \param fcpu_hz: CPU frequency in Hz.
- *
- * \return the converted number of CPU cycles.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ U32 cpu_us_2_cy(unsigned long us, unsigned long fcpu_hz)
-{
- return ((unsigned long long)us * fcpu_hz + 999999) / 1000000;
-}
-
-
-/*!
- * \brief Convert CPU cycles into milli-seconds.
- *
- * \param cy: Number of CPU cycles.
- * \param fcpu_hz: CPU frequency in Hz.
- *
- * \return the converted number of milli-second.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ U32 cpu_cy_2_ms(unsigned long cy, unsigned long fcpu_hz)
-{
- return ((unsigned long long)cy * 1000 + fcpu_hz-1) / fcpu_hz;
-}
-
-
-/*!
- * \brief Convert CPU cycles into micro-seconds.
- *
- * \param cy: Number of CPU cycles.
- * \param fcpu_hz: CPU frequency in Hz.
- *
- * \return the converted number of micro-second.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ U32 cpu_cy_2_us(unsigned long cy, unsigned long fcpu_hz)
-{
- return ((unsigned long long)cy * 1000000 + fcpu_hz-1) / fcpu_hz;
-}
-
-
-/*!
- * \brief Set a timer variable.
- *
- * Ex: t_cpu_time timer;
- * cpu_set_timeout( cpu_ms_2_cy(10, FOSC0), &timer ); // timeout in 10 ms
- * if( cpu_is_timeout(&timer) )
- * cpu_stop_timeout(&timer);
- * ../..
- *
- * \param delay: (input) delay in CPU cycles before timeout.
- * \param cpu_time: (output) internal information used by the timer API.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void cpu_set_timeout(unsigned long delay, t_cpu_time *cpu_time)
-{
- cpu_time->delay_start_cycle = Get_system_register(AVR32_COUNT);
- cpu_time->delay_end_cycle = cpu_time->delay_start_cycle + delay;
- cpu_time->timer_state = CPU_TIMER_STATE_STARTED;
-}
-
-
-/*!
- * \brief Test if a timer variable reached its timeout.
- *
- * Once the timeout is reached, the function will always return TRUE,
- * until the cpu_stop_timeout() function is called.
- *
- * Ex: t_cpu_time timer;
- * cpu_set_timeout( 10, FOSC0, &timer ); // timeout in 10 ms
- * if( cpu_is_timeout(&timer) )
- * cpu_stop_timeout(&timer);
- * ../..
- *
- * \param cpu_time: (input) internal information used by the timer API.
- *
- * \return TRUE if timeout occured, otherwise FALSE.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ unsigned long cpu_is_timeout(t_cpu_time *cpu_time)
-{
- unsigned long current_cycle_count = Get_system_register(AVR32_COUNT);
-
- if( cpu_time->timer_state==CPU_TIMER_STATE_STOPPED )
- return FALSE;
-
- // Test if the timeout as already occured.
- else if (cpu_time->timer_state == CPU_TIMER_STATE_REACHED)
- return TRUE;
-
- // If the ending cycle count of this timeout is wrapped, ...
- else if (cpu_time->delay_start_cycle > cpu_time->delay_end_cycle)
- {
- if (current_cycle_count < cpu_time->delay_start_cycle && current_cycle_count > cpu_time->delay_end_cycle)
- {
- cpu_time->timer_state = CPU_TIMER_STATE_REACHED;
- return TRUE;
- }
- return FALSE;
- }
- else
- {
- if (current_cycle_count < cpu_time->delay_start_cycle || current_cycle_count > cpu_time->delay_end_cycle)
- {
- cpu_time->timer_state = CPU_TIMER_STATE_REACHED;
- return TRUE;
- }
- return FALSE;
- }
-}
-
-
-/*!
- * \brief Stop a timeout detection.
- *
- * Ex: t_cpu_time timer;
- * cpu_set_timeout( 10, FOSC0, &timer ); // timeout in 10 ms
- * if( cpu_is_timeout(&timer) )
- * cpu_stop_timeout(&timer);
- * ../..
- *
- * \param cpu_time: (input) internal information used by the timer API.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void cpu_stop_timeout(t_cpu_time *cpu_time)
-{
- cpu_time->timer_state = CPU_TIMER_STATE_STOPPED;
-}
-
-
-/*!
- * \brief Test if a timer is stopped.
- *
- * \param cpu_time: (input) internal information used by the timer API.
- *
- * \return TRUE if timer is stopped, otherwise FALSE.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ unsigned long cpu_is_timer_stopped(t_cpu_time *cpu_time)
-{
-
- if( cpu_time->timer_state==CPU_TIMER_STATE_STOPPED )
- return TRUE;
- else
- return FALSE;
-}
-
-
-/*!
- * \brief Waits during at least the specified delay (in millisecond) before returning.
- *
- * \param delay: Number of millisecond to wait.
- * \param fcpu_hz: CPU frequency in Hz.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void cpu_delay_ms(unsigned long delay, unsigned long fcpu_hz)
-{
- t_cpu_time timer;
- cpu_set_timeout( cpu_ms_2_cy(delay, fcpu_hz), &timer);
- while( !cpu_is_timeout(&timer) );
-}
-
-/*!
- * \brief Waits during at least the specified delay (in microsecond) before returning.
- *
- * \param delay: Number of microsecond to wait.
- * \param fcpu_hz: CPU frequency in Hz.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void cpu_delay_us(unsigned long delay, unsigned long fcpu_hz)
-{
- t_cpu_time timer;
- cpu_set_timeout( cpu_us_2_cy(delay, fcpu_hz), &timer);
- while( !cpu_is_timeout(&timer) );
-}
-
-/*!
- * \brief Waits during at least the specified delay (in CPU cycles) before returning.
- *
- * \param delay: Number of CPU cycles to wait.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void cpu_delay_cy(unsigned long delay)
-{
- t_cpu_time timer;
- cpu_set_timeout( delay, &timer);
- while( !cpu_is_timeout(&timer) );
-}
-
-
-#define Get_sys_count() ( Get_system_register(AVR32_COUNT) )
-#define Set_sys_count(x) ( Set_system_register(AVR32_COUNT, (x)) )
-#define Get_sys_compare() ( Get_system_register(AVR32_COMPARE) )
-#define Set_sys_compare(x) ( Set_system_register(AVR32_COMPARE, (x)) )
-
-
-#endif // _CYCLE_COUNTER_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.c
deleted file mode 100644
index 543fed6..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.c
+++ /dev/null
@@ -1,995 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief SMC on EBI driver for AVR32 UC3.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a SMC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "compiler.h"
-#include "preprocessor.h"
-#include "gpio.h"
-#include "smc.h"
-
-// Configure the SM Controller with SM setup and timing information for all chip select
-#define SMC_CS_SETUP(ncs) { \
- U32 nwe_setup = ((NWE_SETUP * hsb_mhz_up + 999) / 1000); \
- U32 ncs_wr_setup = ((NCS_WR_SETUP * hsb_mhz_up + 999) / 1000); \
- U32 nrd_setup = ((NRD_SETUP * hsb_mhz_up + 999) / 1000); \
- U32 ncs_rd_setup = ((NCS_RD_SETUP * hsb_mhz_up + 999) / 1000); \
- U32 nwe_pulse = ((NWE_PULSE * hsb_mhz_up + 999) / 1000); \
- U32 ncs_wr_pulse = ((NCS_WR_PULSE * hsb_mhz_up + 999) / 1000); \
- U32 nrd_pulse = ((NRD_PULSE * hsb_mhz_up + 999) / 1000); \
- U32 ncs_rd_pulse = ((NCS_RD_PULSE * hsb_mhz_up + 999) / 1000); \
- U32 nwe_cycle = ((NWE_CYCLE * hsb_mhz_up + 999) / 1000); \
- U32 nrd_cycle = ((NRD_CYCLE * hsb_mhz_up + 999) / 1000); \
- \
- /* Some coherence checks... */ \
- /* Ensures CS is active during Rd or Wr */ \
- if( ncs_rd_setup + ncs_rd_pulse < nrd_setup + nrd_pulse ) \
- ncs_rd_pulse = nrd_setup + nrd_pulse - ncs_rd_setup; \
- if( ncs_wr_setup + ncs_wr_pulse < nwe_setup + nwe_pulse ) \
- ncs_wr_pulse = nwe_setup + nwe_pulse - ncs_wr_setup; \
- \
- /* ncs_hold = n_cycle - ncs_setup - ncs_pulse */ \
- /* n_hold = n_cycle - n_setup - n_pulse */ \
- /* */ \
- /* All holds parameters must be positive or null, so: */ \
- /* nwe_cycle shall be >= ncs_wr_setup + ncs_wr_pulse */ \
- if( nwe_cycle < ncs_wr_setup + ncs_wr_pulse ) \
- nwe_cycle = ncs_wr_setup + ncs_wr_pulse; \
- \
- /* nwe_cycle shall be >= nwe_setup + nwe_pulse */ \
- if( nwe_cycle < nwe_setup + nwe_pulse ) \
- nwe_cycle = nwe_setup + nwe_pulse; \
- \
- /* nrd_cycle shall be >= ncs_rd_setup + ncs_rd_pulse */ \
- if( nrd_cycle < ncs_rd_setup + ncs_rd_pulse ) \
- nrd_cycle = ncs_rd_setup + ncs_rd_pulse; \
- \
- /* nrd_cycle shall be >= nrd_setup + nrd_pulse */ \
- if( nrd_cycle < nrd_setup + nrd_pulse ) \
- nrd_cycle = nrd_setup + nrd_pulse; \
- \
- AVR32_SMC.cs[ncs].setup = (nwe_setup << AVR32_SMC_SETUP0_NWE_SETUP_OFFSET) | \
- (ncs_wr_setup << AVR32_SMC_SETUP0_NCS_WR_SETUP_OFFSET) | \
- (nrd_setup << AVR32_SMC_SETUP0_NRD_SETUP_OFFSET) | \
- (ncs_rd_setup << AVR32_SMC_SETUP0_NCS_RD_SETUP_OFFSET); \
- AVR32_SMC.cs[ncs].pulse = (nwe_pulse << AVR32_SMC_PULSE0_NWE_PULSE_OFFSET) | \
- (ncs_wr_pulse << AVR32_SMC_PULSE0_NCS_WR_PULSE_OFFSET) | \
- (nrd_pulse << AVR32_SMC_PULSE0_NRD_PULSE_OFFSET) | \
- (ncs_rd_pulse << AVR32_SMC_PULSE0_NCS_RD_PULSE_OFFSET); \
- AVR32_SMC.cs[ncs].cycle = (nwe_cycle << AVR32_SMC_CYCLE0_NWE_CYCLE_OFFSET) | \
- (nrd_cycle << AVR32_SMC_CYCLE0_NRD_CYCLE_OFFSET); \
- AVR32_SMC.cs[ncs].mode = (((NCS_CONTROLLED_READ) ? AVR32_SMC_MODE0_READ_MODE_NCS_CONTROLLED : \
- AVR32_SMC_MODE0_READ_MODE_NRD_CONTROLLED) << AVR32_SMC_MODE0_READ_MODE_OFFSET) | \
- + (((NCS_CONTROLLED_WRITE) ? AVR32_SMC_MODE0_WRITE_MODE_NCS_CONTROLLED : \
- AVR32_SMC_MODE0_WRITE_MODE_NWE_CONTROLLED) << AVR32_SMC_MODE0_WRITE_MODE_OFFSET) | \
- (NWAIT_MODE << AVR32_SMC_MODE0_EXNW_MODE_OFFSET) | \
- (((SMC_8_BIT_CHIPS) ? AVR32_SMC_MODE0_BAT_BYTE_WRITE : \
- AVR32_SMC_MODE0_BAT_BYTE_SELECT) << AVR32_SMC_MODE0_BAT_OFFSET) | \
- (((SMC_DBW <= 8 ) ? AVR32_SMC_MODE0_DBW_8_BITS : \
- (SMC_DBW <= 16) ? AVR32_SMC_MODE0_DBW_16_BITS : \
- AVR32_SMC_MODE0_DBW_32_BITS) << AVR32_SMC_MODE0_DBW_OFFSET) | \
- (TDF_CYCLES << AVR32_SMC_MODE0_TDF_CYCLES_OFFSET) | \
- (TDF_OPTIM << AVR32_SMC_MODE0_TDF_MODE_OFFSET) | \
- (PAGE_MODE << AVR32_SMC_MODE0_PMEN_OFFSET) | \
- (PAGE_SIZE << AVR32_SMC_MODE0_PS_OFFSET); \
- smc_tab_cs_size[ncs] = (U8)EXT_SM_SIZE; \
- }
-
-static U8 smc_tab_cs_size[6];
-
-static void smc_enable_muxed_pins(void);
-
-
-void smc_init(unsigned long hsb_hz)
-{
- unsigned long hsb_mhz_up = (hsb_hz + 999999) / 1000000;
-
-//! Whether to use the NCS0 pin
-#ifdef SMC_USE_NCS0
- #include SMC_COMPONENT_CS0
-
- // Setup SMC for NCS0
- SMC_CS_SETUP(0)
-
- #ifdef SMC_DBW_GLOBAL
- #if (SMC_DBW_GLOBAL < SMC_DBW)
- #undef SMC_DBW_GLOBAL
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
- #else
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
-
- #ifdef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS_GLOBAL < SMC_8_BIT)
- #undef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
- #else
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
-
- #ifdef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE_GLOBAL < NWAIT_MODE)
- #undef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
- #else
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
-
- #undef EXT_SM_SIZE
- #undef SMC_DBW
- #undef SMC_8_BIT_CHIPS
- #undef NWE_SETUP
- #undef NCS_WR_SETUP
- #undef NRD_SETUP
- #undef NCS_RD_SETUP
- #undef NCS_WR_PULSE
- #undef NWE_PULSE
- #undef NCS_RD_PULSE
- #undef NRD_PULSE
- #undef NCS_WR_HOLD
- #undef NWE_HOLD
- #undef NWE_CYCLE
- #undef NCS_RD_HOLD
- #undef NRD_CYCLE
- #undef TDF_CYCLES
- #undef TDF_OPTIM
- #undef PAGE_MODE
- #undef PAGE_SIZE
- #undef NCS_CONTROLLED_READ
- #undef NCS_CONTROLLED_WRITE
- #undef NWAIT_MODE
-#endif
-
-
-//! Whether to use the NCS1 pin
-#ifdef SMC_USE_NCS1
- #include SMC_COMPONENT_CS1
-
- // Enable SM mode for CS1 if necessary.
- AVR32_HMATRIX.sfr[AVR32_EBI_HMATRIX_NR] &= ~(1 << AVR32_EBI_SDRAM_CS);
- AVR32_HMATRIX.sfr[AVR32_EBI_HMATRIX_NR];
-
- // Setup SMC for NCS1
- SMC_CS_SETUP(1)
-
- #ifdef SMC_DBW_GLOBAL
- #if (SMC_DBW_GLOBAL < SMC_DBW)
- #undef SMC_DBW_GLOBAL
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
- #else
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
-
- #ifdef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS_GLOBAL < SMC_8_BIT)
- #undef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
- #else
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
-
- #ifdef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE_GLOBAL < NWAIT_MODE)
- #undef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
- #else
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
-
- #undef EXT_SM_SIZE
- #undef SMC_DBW
- #undef SMC_8_BIT_CHIPS
- #undef NWE_SETUP
- #undef NCS_WR_SETUP
- #undef NRD_SETUP
- #undef NCS_RD_SETUP
- #undef NCS_WR_PULSE
- #undef NWE_PULSE
- #undef NCS_RD_PULSE
- #undef NRD_PULSE
- #undef NCS_WR_HOLD
- #undef NWE_HOLD
- #undef NWE_CYCLE
- #undef NCS_RD_HOLD
- #undef NRD_CYCLE
- #undef TDF_CYCLES
- #undef TDF_OPTIM
- #undef PAGE_MODE
- #undef PAGE_SIZE
- #undef NCS_CONTROLLED_READ
- #undef NCS_CONTROLLED_WRITE
- #undef NWAIT_MODE
-#endif
-
-//! Whether to use the NCS2 pin
-#ifdef SMC_USE_NCS2
- #include SMC_COMPONENT_CS2
-
- // Setup SMC for NCS2
- SMC_CS_SETUP(2)
-
- #ifdef SMC_DBW_GLOBAL
- #if (SMC_DBW_GLOBAL < SMC_DBW)
- #undef SMC_DBW_GLOBAL
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
- #else
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
-
- #ifdef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS_GLOBAL < SMC_8_BIT)
- #undef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
- #else
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
-
- #ifdef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE_GLOBAL < NWAIT_MODE)
- #undef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
- #else
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
-
-
- #undef EXT_SM_SIZE
- #undef SMC_DBW
- #undef SMC_8_BIT_CHIPS
- #undef NWE_SETUP
- #undef NCS_WR_SETUP
- #undef NRD_SETUP
- #undef NCS_RD_SETUP
- #undef NCS_WR_PULSE
- #undef NWE_PULSE
- #undef NCS_RD_PULSE
- #undef NRD_PULSE
- #undef NCS_WR_HOLD
- #undef NWE_HOLD
- #undef NWE_CYCLE
- #undef NCS_RD_HOLD
- #undef NRD_CYCLE
- #undef TDF_CYCLES
- #undef TDF_OPTIM
- #undef PAGE_MODE
- #undef PAGE_SIZE
- #undef NCS_CONTROLLED_READ
- #undef NCS_CONTROLLED_WRITE
- #undef NWAIT_MODE
-#endif
-
-//! Whether to use the NCS3 pin
-#ifdef SMC_USE_NCS3
- #include SMC_COMPONENT_CS3
-
- // Setup SMC for NCS3
- SMC_CS_SETUP(3)
-
- #ifdef SMC_DBW_GLOBAL
- #if (SMC_DBW_GLOBAL < SMC_DBW)
- #undef SMC_DBW_GLOBAL
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
- #else
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
-
- #ifdef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS_GLOBAL < SMC_8_BIT)
- #undef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
- #else
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
-
- #ifdef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE_GLOBAL < NWAIT_MODE)
- #undef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
- #else
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
-
-
- #undef EXT_SM_SIZE
- #undef SMC_DBW
- #undef SMC_8_BIT_CHIPS
- #undef NWE_SETUP
- #undef NCS_WR_SETUP
- #undef NRD_SETUP
- #undef NCS_RD_SETUP
- #undef NCS_WR_PULSE
- #undef NWE_PULSE
- #undef NCS_RD_PULSE
- #undef NRD_PULSE
- #undef NCS_WR_HOLD
- #undef NWE_HOLD
- #undef NWE_CYCLE
- #undef NCS_RD_HOLD
- #undef NRD_CYCLE
- #undef TDF_CYCLES
- #undef TDF_OPTIM
- #undef PAGE_MODE
- #undef PAGE_SIZE
- #undef NCS_CONTROLLED_READ
- #undef NCS_CONTROLLED_WRITE
- #undef NWAIT_MODE
-#endif
-
-//! Whether to use the NCS4 pin
-#ifdef SMC_USE_NCS4
- #include SMC_COMPONENT_CS4
-
- // Setup SMC for NCS4
- SMC_CS_SETUP(4)
-
- #ifdef SMC_DBW_GLOBAL
- #if (SMC_DBW_GLOBAL < SMC_DBW)
- #undef SMC_DBW_GLOBAL
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
- #else
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
-
- #ifdef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS_GLOBAL < SMC_8_BIT)
- #undef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
- #else
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
-
- #ifdef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE_GLOBAL < NWAIT_MODE)
- #undef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
- #else
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
-
-
- #undef EXT_SM_SIZE
- #undef SMC_DBW
- #undef SMC_8_BIT_CHIPS
- #undef NWE_SETUP
- #undef NCS_WR_SETUP
- #undef NRD_SETUP
- #undef NCS_RD_SETUP
- #undef NCS_WR_PULSE
- #undef NWE_PULSE
- #undef NCS_RD_PULSE
- #undef NRD_PULSE
- #undef NCS_WR_HOLD
- #undef NWE_HOLD
- #undef NWE_CYCLE
- #undef NCS_RD_HOLD
- #undef NRD_CYCLE
- #undef TDF_CYCLES
- #undef TDF_OPTIM
- #undef PAGE_MODE
- #undef PAGE_SIZE
- #undef NCS_CONTROLLED_READ
- #undef NCS_CONTROLLED_WRITE
- #undef NWAIT_MODE
-#endif
-
-//! Whether to use the NCS5 pin
-#ifdef SMC_USE_NCS5
- #include SMC_COMPONENT_CS5
-
- // Setup SMC for NCS5
- SMC_CS_SETUP(5)
-
- #ifdef SMC_DBW_GLOBAL
- #if (SMC_DBW_GLOBAL < SMC_DBW)
- #undef SMC_DBW_GLOBAL
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
- #else
- #if (SMC_DBW == 8)
- #define SMC_DBW_GLOBAL 8
- #elif (SMC_DBW == 16)
- #define SMC_DBW_GLOBAL 16
- #elif (SMC_DBW == 32)
- #define SMC_DBW_GLOBAL 32
- #else
- #error error in SMC_DBW size
- #endif
- #endif
-
- #ifdef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS_GLOBAL < SMC_8_BIT)
- #undef SMC_8_BIT_CHIPS_GLOBAL
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
- #else
- #if (SMC_8_BIT_CHIPS == TRUE)
- #define SMC_8_BIT_CHIPS_GLOBAL TRUE
- #elif (SMC_8_BIT_CHIPS == FALSE)
- #define SMC_8_BIT_CHIPS_GLOBAL FALSE
- #else
- #error error in SMC_8_BIT_CHIPS size
- #endif
- #endif
-
- #ifdef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE_GLOBAL < NWAIT_MODE)
- #undef NWAIT_MODE_GLOBAL
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
- #else
- #if (NWAIT_MODE == AVR32_SMC_EXNW_MODE_DISABLED)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_DISABLED
- #elif (NWAIT_MODE == AVR32_SMC_EXNW_MODE_FROZEN)
- #define NWAIT_MODE_GLOBAL AVR32_SMC_EXNW_MODE_FROZEN
- #else
- #error error in NWAIT_MODE size
- #endif
- #endif
-
-
- #undef EXT_SM_SIZE
- #undef SMC_DBW
- #undef SMC_8_BIT_CHIPS
- #undef NWE_SETUP
- #undef NCS_WR_SETUP
- #undef NRD_SETUP
- #undef NCS_RD_SETUP
- #undef NCS_WR_PULSE
- #undef NWE_PULSE
- #undef NCS_RD_PULSE
- #undef NRD_PULSE
- #undef NCS_WR_HOLD
- #undef NWE_HOLD
- #undef NWE_CYCLE
- #undef NCS_RD_HOLD
- #undef NRD_CYCLE
- #undef TDF_CYCLES
- #undef TDF_OPTIM
- #undef PAGE_MODE
- #undef PAGE_SIZE
- #undef NCS_CONTROLLED_READ
- #undef NCS_CONTROLLED_WRITE
- #undef NWAIT_MODE
-#endif
- // Put the multiplexed MCU pins used for the SM under control of the SMC.
- smc_enable_muxed_pins();
-}
-
-/*! \brief Puts the multiplexed MCU pins used for the SMC
- *
- */
-static void smc_enable_muxed_pins(void)
-{
- static const gpio_map_t SMC_EBI_GPIO_MAP =
- {
- // Enable data pins.
-#ifdef EBI_DATA_0
- {ATPASTE2(EBI_DATA_0,_PIN),ATPASTE2(EBI_DATA_0,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_1
- {ATPASTE2(EBI_DATA_1,_PIN),ATPASTE2(EBI_DATA_1,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_2
- {ATPASTE2(EBI_DATA_2,_PIN),ATPASTE2(EBI_DATA_2,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_3
- {ATPASTE2(EBI_DATA_3,_PIN),ATPASTE2(EBI_DATA_3,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_4
- {ATPASTE2(EBI_DATA_4,_PIN),ATPASTE2(EBI_DATA_4,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_5
- {ATPASTE2(EBI_DATA_5,_PIN),ATPASTE2(EBI_DATA_5,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_6
- {ATPASTE2(EBI_DATA_6,_PIN),ATPASTE2(EBI_DATA_6,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_7
- {ATPASTE2(EBI_DATA_7,_PIN),ATPASTE2(EBI_DATA_7,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_8
- {ATPASTE2(EBI_DATA_8,_PIN),ATPASTE2(EBI_DATA_8,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_9
- {ATPASTE2(EBI_DATA_9,_PIN),ATPASTE2(EBI_DATA_9,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_10
- {ATPASTE2(EBI_DATA_10,_PIN),ATPASTE2(EBI_DATA_10,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_11
- {ATPASTE2(EBI_DATA_11,_PIN),ATPASTE2(EBI_DATA_11,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_12
- {ATPASTE2(EBI_DATA_12,_PIN),ATPASTE2(EBI_DATA_12,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_13
- {ATPASTE2(EBI_DATA_13,_PIN),ATPASTE2(EBI_DATA_13,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_14
- {ATPASTE2(EBI_DATA_14,_PIN),ATPASTE2(EBI_DATA_14,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_15
- {ATPASTE2(EBI_DATA_15,_PIN),ATPASTE2(EBI_DATA_15,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_16
- {ATPASTE2(EBI_DATA_16,_PIN),ATPASTE2(EBI_DATA_16,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_17
- {ATPASTE2(EBI_DATA_17,_PIN),ATPASTE2(EBI_DATA_17,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_18
- {ATPASTE2(EBI_DATA_18,_PIN),ATPASTE2(EBI_DATA_18,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_19
- {ATPASTE2(EBI_DATA_19,_PIN),ATPASTE2(EBI_DATA_19,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_20
- {ATPASTE2(EBI_DATA_20,_PIN),ATPASTE2(EBI_DATA_20,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_21
- {ATPASTE2(EBI_DATA_21,_PIN),ATPASTE2(EBI_DATA_21,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_22
- {ATPASTE2(EBI_DATA_22,_PIN),ATPASTE2(EBI_DATA_22,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_23
- {ATPASTE2(EBI_DATA_23,_PIN),ATPASTE2(EBI_DATA_23,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_24
- {ATPASTE2(EBI_DATA_24,_PIN),ATPASTE2(EBI_DATA_24,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_25
- {ATPASTE2(EBI_DATA_25,_PIN),ATPASTE2(EBI_DATA_25,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_26
- {ATPASTE2(EBI_DATA_26,_PIN),ATPASTE2(EBI_DATA_26,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_27
- {ATPASTE2(EBI_DATA_27,_PIN),ATPASTE2(EBI_DATA_27,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_28
- {ATPASTE2(EBI_DATA_28,_PIN),ATPASTE2(EBI_DATA_28,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_29
- {ATPASTE2(EBI_DATA_29,_PIN),ATPASTE2(EBI_DATA_29,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_30
- {ATPASTE2(EBI_DATA_30,_PIN),ATPASTE2(EBI_DATA_30,_FUNCTION)},
-#endif
-#ifdef EBI_DATA_31
- {ATPASTE2(EBI_DATA_31,_PIN),ATPASTE2(EBI_DATA_31,_FUNCTION)},
-#endif
-
- // Enable address pins.
-#if SMC_DBW_GLOBAL <= 8
-#ifdef EBI_ADDR_0
- {ATPASTE2(EBI_ADDR_0,_PIN),ATPASTE2(EBI_ADDR_0,_FUNCTION)},
-#endif
-#endif
-#if SMC_DBW_GLOBAL <= 16
-#ifdef EBI_ADDR_1
- {ATPASTE2(EBI_ADDR_1,_PIN),ATPASTE2(EBI_ADDR_1,_FUNCTION)},
-#endif
-#endif
-
-#ifdef EBI_ADDR_2
- {ATPASTE2(EBI_ADDR_2,_PIN),ATPASTE2(EBI_ADDR_2,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_3
- {ATPASTE2(EBI_ADDR_3,_PIN),ATPASTE2(EBI_ADDR_3,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_4
- {ATPASTE2(EBI_ADDR_4,_PIN),ATPASTE2(EBI_ADDR_4,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_5
- {ATPASTE2(EBI_ADDR_5,_PIN),ATPASTE2(EBI_ADDR_5,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_6
- {ATPASTE2(EBI_ADDR_6,_PIN),ATPASTE2(EBI_ADDR_6,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_7
- {ATPASTE2(EBI_ADDR_7,_PIN),ATPASTE2(EBI_ADDR_7,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_8
- {ATPASTE2(EBI_ADDR_8,_PIN),ATPASTE2(EBI_ADDR_8,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_9
- {ATPASTE2(EBI_ADDR_9,_PIN),ATPASTE2(EBI_ADDR_9,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_10
- {ATPASTE2(EBI_ADDR_10,_PIN),ATPASTE2(EBI_ADDR_10,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_11
- {ATPASTE2(EBI_ADDR_11,_PIN),ATPASTE2(EBI_ADDR_11,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_12
- {ATPASTE2(EBI_ADDR_12,_PIN),ATPASTE2(EBI_ADDR_12,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_13
- {ATPASTE2(EBI_ADDR_13,_PIN),ATPASTE2(EBI_ADDR_13,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_14
- {ATPASTE2(EBI_ADDR_14,_PIN),ATPASTE2(EBI_ADDR_14,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_15
- {ATPASTE2(EBI_ADDR_15,_PIN),ATPASTE2(EBI_ADDR_15,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_16
- {ATPASTE2(EBI_ADDR_16,_PIN),ATPASTE2(EBI_ADDR_16,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_17
- {ATPASTE2(EBI_ADDR_17,_PIN),ATPASTE2(EBI_ADDR_17,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_18
- {ATPASTE2(EBI_ADDR_18,_PIN),ATPASTE2(EBI_ADDR_18,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_19
- {ATPASTE2(EBI_ADDR_19,_PIN),ATPASTE2(EBI_ADDR_19,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_20
- {ATPASTE2(EBI_ADDR_20,_PIN),ATPASTE2(EBI_ADDR_20,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_21
- {ATPASTE2(EBI_ADDR_21,_PIN),ATPASTE2(EBI_ADDR_21,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_22
- {ATPASTE2(EBI_ADDR_22,_PIN),ATPASTE2(EBI_ADDR_22,_FUNCTION)},
-#endif
-#ifdef EBI_ADDR_23
- {ATPASTE2(EBI_ADDR_23,_PIN),ATPASTE2(EBI_ADDR_23,_FUNCTION)},
-#endif
-
-#if SMC_DBW_GLOBAL <= 8
- #undef SMC_8_BIT_CHIPS
- #define SMC_8_BIT_CHIPS TRUE
-#endif
-
- // Enable data mask pins.
-#if !SMC_8_BIT_CHIPS_GLOBAL
-#ifdef EBI_ADDR_0
- {ATPASTE2(EBI_ADDR_0,_PIN),ATPASTE2(EBI_ADDR_0,_FUNCTION)},
-#endif
-#endif
-#ifdef EBI_NWE0
- {ATPASTE2(EBI_NWE0,_PIN),ATPASTE2(EBI_NWE0,_FUNCTION)},
-#endif
-
-#if SMC_DBW_GLOBAL >= 16
- #ifdef EBI_NWE1
- {ATPASTE2(EBI_NWE1,_PIN),ATPASTE2(EBI_NWE1,_FUNCTION)},
- #endif
- #if SMC_DBW_GLOBAL >= 32
- #ifdef EBI_ADDR_1
- {ATPASTE2(EBI_ADDR_1,_PIN),ATPASTE2(EBI_ADDR_1,_FUNCTION)},
- #endif
- #ifdef EBI_NWE3
- {ATPASTE2(EBI_NWE3,_PIN),ATPASTE2(EBI_NWE3,_FUNCTION)},
- #endif
- #endif
-#endif
- #ifdef EBI_NRD
- {ATPASTE2(EBI_NRD,_PIN),ATPASTE2(EBI_NRD,_FUNCTION)},
- #endif
-
- // Enable control pins.
-#if NWAIT_MODE_GLOBAL != AVR32_SMC_EXNW_MODE_DISABLED
- #ifdef EBI_NWAIT
- {ATPASTE2(EBI_NWAIT,_PIN),ATPASTE2(EBI_NWAIT,_FUNCTION)},
- #endif
-#endif
-#ifdef SMC_USE_NCS0
- #ifdef EBI_NCS_0
- {ATPASTE2(EBI_NCS_0,_PIN),ATPASTE2(EBI_NCS_0,_FUNCTION)},
- #endif
-#endif
-#ifdef SMC_USE_NCS1
- #ifdef EBI_NCS_1
- {ATPASTE2(EBI_NCS_1,_PIN),ATPASTE2(EBI_NCS_1,_FUNCTION)},
- #endif
-#endif
-#ifdef SMC_USE_NCS2
- #ifdef EBI_NCS_2
- {ATPASTE2(EBI_NCS_2,_PIN),ATPASTE2(EBI_NCS_2,_FUNCTION)},
- #endif
-#endif
-#ifdef SMC_USE_NCS3
- #ifdef EBI_NCS_3
- {ATPASTE2(EBI_NCS_3,_PIN),ATPASTE2(EBI_NCS_3,_FUNCTION)},
- #endif
-#endif
-#ifdef SMC_USE_NCS4
- #ifdef EBI_NCS_4
- {ATPASTE2(EBI_NCS_4,_PIN),ATPASTE2(EBI_NCS_4,_FUNCTION)},
- #endif
-#endif
-#ifdef SMC_USE_NCS5
- #ifdef EBI_NCS_5
- {ATPASTE2(EBI_NCS_5,_PIN),ATPASTE2(EBI_NCS_5,_FUNCTION)},
- #endif
-#endif
- };
-
- gpio_enable_module(SMC_EBI_GPIO_MAP, sizeof(SMC_EBI_GPIO_MAP) / sizeof(SMC_EBI_GPIO_MAP[0]));
-}
-
-unsigned char smc_get_cs_size(unsigned char cs)
-{
- return smc_tab_cs_size[cs];
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.h
deleted file mode 100644
index c3bdf43..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief SMC on EBI driver for AVR32 UC3.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a SMC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _SMC_H_
-#define _SMC_H_
-
-#include <avr32/io.h>
-
-#include "compiler.h"
-#include "conf_ebi.h"
-
-/*! \brief Initializes the AVR32 SMC module and the connected SRAM(s).
- * \param hsb_hz HSB frequency in Hz (the HSB frequency is applied to the SMC).
- * \note Each access to the SMC address space validates the mode of the SMC
- * and generates an operation corresponding to this mode.
- */
-extern void smc_init(unsigned long hsb_hz);
-
-/*! \brief Return the size of the peripheral connected .
- * \param cs The chip select value
- */
-extern unsigned char smc_get_cs_size(unsigned char cs);
-
-#endif // _SMC_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.c
deleted file mode 100644
index 1008c94..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief EIC driver for AVR32 UC3.
- *
- * AVR32 External Interrupt Controller driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an EIC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-#include "compiler.h"
-#include "preprocessor.h"
-#include "eic.h"
-
-
-
-void eic_init(volatile avr32_eic_t *eic, const eic_options_t *opt, unsigned int nb_lines)
-{
- int i;
- for (i = 0; i < nb_lines; i++)
- {
- // Set up mode level
- eic->mode = (opt[i].eic_mode == 1) ? (eic->mode | (1 << opt[i].eic_line)) : (eic->mode & ~(1 << opt[i].eic_line));
- // Set up edge type
- eic->edge = (opt[i].eic_edge == 1) ? (eic->edge | (1 << opt[i].eic_line)) : (eic->edge & ~(1 << opt[i].eic_line));
- // Set up level
- eic->level = (opt[i].eic_level == 1) ? (eic->level | (1 << opt[i].eic_line)) : (eic->level & ~(1 << opt[i].eic_line));
- // Set up if filter is used
- eic->filter = (opt[i].eic_filter == 1) ? (eic->filter | (1 << opt[i].eic_line)) : (eic->filter & ~(1 << opt[i].eic_line));
- // Set up which mode is used : asynchronous mode/ synchronous mode
- eic->async = (opt[i].eic_async == 1) ? (eic->async | (1 << opt[i].eic_line)) : (eic->async & ~(1 << opt[i].eic_line));
- }
-}
-
-void eic_enable_lines(volatile avr32_eic_t *eic, unsigned int mask_lines)
-{
- eic->en = mask_lines;
-}
-
-void eic_enable_line(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- // Enable line line_number
- eic->en = 1 << line_number;
-}
-
-void eic_disable_lines(volatile avr32_eic_t *eic, unsigned int mask_lines)
-{
- eic->dis = mask_lines;
-}
-
-void eic_disable_line(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- // Disable line line_number
- eic->dis = 1 << line_number;
-}
-
-Bool eic_is_line_enabled(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- return (eic->ctrl & (1 << line_number)) != 0;
-}
-
-void eic_enable_interrupt_lines(volatile avr32_eic_t *eic, unsigned int mask_lines)
-{
- eic->ier = mask_lines;
-}
-
-void eic_enable_interrupt_line(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- // Enable line line_number
- eic->ier = 1 << line_number;
-}
-
-void eic_disable_interrupt_lines(volatile avr32_eic_t *eic, unsigned int mask_lines)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- eic->idr = mask_lines;
- eic->imr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-void eic_disable_interrupt_line(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- // Disable line line_number
- if (global_interrupt_enabled) Disable_global_interrupt();
- eic->idr = 1 << line_number;
- eic->imr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-Bool eic_is_interrupt_line_enabled(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- return (eic->imr & (1 << line_number)) != 0;
-}
-
-void eic_clear_interrupt_lines(volatile avr32_eic_t *eic, unsigned int mask_lines)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- eic->icr = mask_lines;
- eic->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-void eic_clear_interrupt_line(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- // Clear line line_number
- if (global_interrupt_enabled) Disable_global_interrupt();
- eic->icr = 1 << line_number;
- eic->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-Bool eic_is_interrupt_line_pending(volatile avr32_eic_t *eic, unsigned int line_number)
-{
- return (eic->isr & (1 << line_number)) != 0;
-}
-
-#if !defined(AVR32_EIC_301_H_INCLUDED)
-void eic_enable_interrupt_scan(volatile avr32_eic_t *eic,unsigned int presc)
-{
- // Enable SCAN function with PRESC value
- eic->scan |= (presc << AVR32_EIC_SCAN_PRESC_OFFSET) | (1 << AVR32_EIC_SCAN_EN_OFFSET);
-}
-
-void eic_disable_interrupt_scan(volatile avr32_eic_t *eic)
-{
- // Disable SCAN function
- eic->scan = 0 << AVR32_EIC_SCAN_EN_OFFSET;
-}
-
-unsigned long eic_get_interrupt_pad_scan(volatile avr32_eic_t *eic)
-{
- // Return pad number that causes interrupt
- return(eic->scan>>AVR32_EIC_SCAN_PIN_OFFSET);
-}
-#endif \ No newline at end of file
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.h
deleted file mode 100644
index 32641b7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief EIC driver for AVR32 UC3.
- *
- * AVR32 External Interrupt Controller driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an EIC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _EIC_H_
-#define _EIC_H_
-
-#include "compiler.h"
-
-/*! \name External Interrupt lines
- */
-//! @{
-#if (UC3A || UC3B)
-#define EXT_INT0 AVR32_EIC_INT0 //!< Line 0
-#define EXT_INT1 AVR32_EIC_INT1 //!< Line 1
-#define EXT_INT2 AVR32_EIC_INT2 //!< Line 2
-#define EXT_INT3 AVR32_EIC_INT3 //!< Line 3
-#define EXT_INT4 AVR32_EIC_INT4 //!< Line 4
-#define EXT_INT5 AVR32_EIC_INT5 //!< Line 5
-#define EXT_INT6 AVR32_EIC_INT6 //!< Line 6
-#define EXT_INT7 AVR32_EIC_INT7 //!< Line 7
-#define EXT_NMI AVR32_EIC_NMI //!< Line 8
-#else
-#define EXT_INT0 AVR32_EIC_INT1 //!< Line 0
-#define EXT_INT1 AVR32_EIC_INT2 //!< Line 1
-#define EXT_INT2 AVR32_EIC_INT3 //!< Line 2
-#define EXT_INT3 AVR32_EIC_INT4 //!< Line 3
-#define EXT_INT4 AVR32_EIC_INT5 //!< Line 4
-#define EXT_INT5 AVR32_EIC_INT6 //!< Line 5
-#define EXT_INT6 AVR32_EIC_INT7 //!< Line 6
-#define EXT_INT7 AVR32_EIC_INT8 //!< Line 7
-#define EXT_NMI AVR32_EIC_NMI //!< Line 8
-
-#endif
-
-//! @}
-
-/*! \name Mode Trigger Options
- */
-//! @{
-#define EIC_MODE_EDGE_TRIGGERED AVR32_EIC_EDGE_IRQ //!<
-#define EIC_MODE_LEVEL_TRIGGERED AVR32_EIC_LEVEL_IRQ //!<
-//! @}
-
-/*! \name Edge level Options
- */
-//! @{
-#define EIC_EDGE_FALLING_EDGE AVR32_EIC_FALLING_EDGE //!<
-#define EIC_EDGE_RISING_EDGE AVR32_EIC_RISING_EDGE //!<
-//! @}
-
-/*! \name Level Options
- */
-//! @{
-#define EIC_LEVEL_LOW_LEVEL AVR32_EIC_LOW_LEVEL //!<
-#define EIC_LEVEL_HIGH_LEVEL AVR32_EIC_HIGH_LEVEL //!<
-//! @}
-
-/*! \name Filter Options
- */
-//! @{
-#define EIC_FILTER_ENABLED AVR32_EIC_FILTER_ON //!<
-#define EIC_FILTER_DISABLED AVR32_EIC_FILTER_OFF //!<
-//! @}
-
-/*! \name Synch Mode Options
- */
-//! @{
-#define EIC_SYNCH_MODE AVR32_EIC_SYNC //!<
-#define EIC_ASYNCH_MODE AVR32_EIC_USE_ASYNC //!<
-//! @}
-
-//! Configuration parameters of the EIC module.
-typedef struct
-{
- //!Line
- unsigned char eic_line;
-
- //! Mode : EDGE_LEVEL or TRIGGER_LEVEL
- unsigned char eic_mode;
-
- //! Edge : FALLING_EDGE or RISING_EDGE
- unsigned char eic_edge;
-
- //! Level : LOW_LEVEL or HIGH_LEVEL
- unsigned char eic_level;
-
- //! Filter: NOT_FILTERED or FILTERED
- unsigned char eic_filter;
-
- //! Async: SYNC mode or ASYNC
- unsigned char eic_async;
-
-} eic_options_t;
-
-
-/*! \brief Init the EIC driver.
- *
- * \param eic Base address of the EIC module
- * \param opt Configuration parameters of the EIC module (see \ref eic_options_t)
- * \param nb_lines Number of lines to consider, equal to size of opt buffer
- */
-extern void eic_init(volatile avr32_eic_t *eic, const eic_options_t *opt, unsigned int nb_lines);
-
-/*! \brief Enable the EIC driver.
- *
- * \param eic Base address of the EIC module
- * \param mask_lines Mask for current selected lines
- */
-extern void eic_enable_lines(volatile avr32_eic_t *eic, unsigned int mask_lines);
-
-/*! \brief Enable the EIC driver.
- *
- * \param eic Base address of the EIC module
- * \param line_number Line number to enable
- */
-extern void eic_enable_line(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \brief Disable the EIC driver.
- *
- * \param eic Base address of the EIC module
- * \param mask_lines Mask for current selected lines
- */
-extern void eic_disable_lines(volatile avr32_eic_t *eic, unsigned int mask_lines);
-
-/*! \brief Disable the EIC driver.
- *
- * \param eic Base address of the EIC module
- * \param line_number Line number to disable
- */
-extern void eic_disable_line(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \brief Tells whether an EIC line is enabled.
- *
- * \param eic Base address of the EIC module
- * \param line_number Line number to test
- *
- * \return Whether an EIC line is enabled.
- */
-extern Bool eic_is_line_enabled(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \name Interrupt Control Functions
- */
-//! @{
-
-/*! \brief Enable the interrupt feature of the EIC.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- * \param mask_lines Mask for current selected lines
- */
-extern void eic_enable_interrupt_lines(volatile avr32_eic_t *eic, unsigned int mask_lines);
-
-/*! \brief Enable the interrupt feature of the EIC.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- * \param line_number Line number to enable
- */
-extern void eic_enable_interrupt_line(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \brief Disable the interrupt feature of the EIC.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- * \param mask_lines Mask for current selected lines
- */
-extern void eic_disable_interrupt_lines(volatile avr32_eic_t *eic, unsigned int mask_lines);
-
-/*! \brief Disable the interrupt feature of the EIC.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- * \param line_number Line number to disable
- */
-extern void eic_disable_interrupt_line(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \brief Tells whether an EIC interrupt line is enabled.
- *
- * \param eic Base address of the EIC module
- * \param line_number Line number to test
- *
- * \return Whether an EIC interrupt line is enabled.
- */
-extern Bool eic_is_interrupt_line_enabled(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \brief Clear the interrupt flag.
- * Call this function once you've handled the interrupt.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- * \param mask_lines Mask for current selected lines
- */
-extern void eic_clear_interrupt_lines(volatile avr32_eic_t *eic, unsigned int mask_lines);
-
-/*! \brief Clear the interrupt flag.
- * Call this function once you've handled the interrupt.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- * \param line_number Line number to clear
- */
-extern void eic_clear_interrupt_line(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \brief Tells whether an EIC interrupt line is pending.
- *
- * \param eic Base address of the EIC module
- * \param line_number Line number to test
- *
- * \return Whether an EIC interrupt line is pending.
- */
-extern Bool eic_is_interrupt_line_pending(volatile avr32_eic_t *eic, unsigned int line_number);
-
-/*! \brief Enable the interrupt scan feature of the EIC.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- * \param presc Prescale select for the keypad scan rate in the range [0,31].
- */
-extern void eic_enable_interrupt_scan(volatile avr32_eic_t *eic, unsigned int presc);
-
-/*! \brief Disable the interrupt scan feature of the EIC.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- */
-extern void eic_disable_interrupt_scan(volatile avr32_eic_t *eic);
-
-/*! \brief Return scan pad number that causes interrupt.
- *
- * \param eic Base address of the EIC (i.e. &AVR32_EIC).
- */
-extern unsigned long eic_get_interrupt_pad_scan(volatile avr32_eic_t *eic);
-
-//! @}
-
-
-#endif // _EIC_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.c
deleted file mode 100644
index 2eee15c..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.c
+++ /dev/null
@@ -1,1117 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief FLASHC driver for AVR32 UC3.
- *
- * AVR32 Flash Controller driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a FLASHC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-#include <stddef.h>
-#include "compiler.h"
-#include "flashc.h"
-
-
-/*! \name FLASHC Writable Bit-Field Registers
- */
-//! @{
-
-typedef union
-{
- unsigned long fcr;
- avr32_flashc_fcr_t FCR;
-} u_avr32_flashc_fcr_t;
-
-typedef union
-{
- unsigned long fcmd;
- avr32_flashc_fcmd_t FCMD;
-} u_avr32_flashc_fcmd_t;
-
-//! @}
-
-
-/*! \name Flash Properties
- */
-//! @{
-
-
-unsigned int flashc_get_flash_size(void)
-{
-#if (defined AVR32_FLASHC_300_H_INCLUDED)
- static const unsigned int FLASH_SIZE[1 << AVR32_FLASHC_PR_FSZ_SIZE] =
- {
- 32 << 10,
- 64 << 10,
- 128 << 10,
- 256 << 10,
- 384 << 10,
- 512 << 10,
- 768 << 10,
- 1024 << 10
- };
- return FLASH_SIZE[(AVR32_FLASHC.pr & AVR32_FLASHC_PR_FSZ_MASK) >> AVR32_FLASHC_PR_FSZ_OFFSET];
-#else
- static const unsigned int FLASH_SIZE[1 << AVR32_FLASHC_FSR_FSZ_SIZE] =
- {
- 32 << 10,
- 64 << 10,
- 128 << 10,
- 256 << 10,
- 384 << 10,
- 512 << 10,
- 768 << 10,
- 1024 << 10
- };
- return FLASH_SIZE[(AVR32_FLASHC.fsr & AVR32_FLASHC_FSR_FSZ_MASK) >> AVR32_FLASHC_FSR_FSZ_OFFSET];
-#endif
-}
-
-
-unsigned int flashc_get_page_count(void)
-{
- return flashc_get_flash_size() / AVR32_FLASHC_PAGE_SIZE;
-}
-
-
-unsigned int flashc_get_page_count_per_region(void)
-{
- return flashc_get_page_count() / AVR32_FLASHC_REGIONS;
-}
-
-
-unsigned int flashc_get_page_region(int page_number)
-{
- return ((page_number >= 0) ? page_number : flashc_get_page_number()) / flashc_get_page_count_per_region();
-}
-
-
-unsigned int flashc_get_region_first_page_number(unsigned int region)
-{
- return region * flashc_get_page_count_per_region();
-}
-
-
-//! @}
-
-
-/*! \name FLASHC Control
- */
-//! @{
-
-
-unsigned int flashc_get_wait_state(void)
-{
- return (AVR32_FLASHC.fcr & AVR32_FLASHC_FCR_FWS_MASK) >> AVR32_FLASHC_FCR_FWS_OFFSET;
-}
-
-
-void flashc_set_wait_state(unsigned int wait_state)
-{
- u_avr32_flashc_fcr_t u_avr32_flashc_fcr = {AVR32_FLASHC.fcr};
- u_avr32_flashc_fcr.FCR.fws = wait_state;
- AVR32_FLASHC.fcr = u_avr32_flashc_fcr.fcr;
-}
-
-
-Bool flashc_is_ready_int_enabled(void)
-{
- return ((AVR32_FLASHC.fcr & AVR32_FLASHC_FCR_FRDY_MASK) != 0);
-}
-
-
-void flashc_enable_ready_int(Bool enable)
-{
- u_avr32_flashc_fcr_t u_avr32_flashc_fcr = {AVR32_FLASHC.fcr};
- u_avr32_flashc_fcr.FCR.frdy = (enable != FALSE);
- AVR32_FLASHC.fcr = u_avr32_flashc_fcr.fcr;
-}
-
-
-Bool flashc_is_lock_error_int_enabled(void)
-{
- return ((AVR32_FLASHC.fcr & AVR32_FLASHC_FCR_LOCKE_MASK) != 0);
-}
-
-
-void flashc_enable_lock_error_int(Bool enable)
-{
- u_avr32_flashc_fcr_t u_avr32_flashc_fcr = {AVR32_FLASHC.fcr};
- u_avr32_flashc_fcr.FCR.locke = (enable != FALSE);
- AVR32_FLASHC.fcr = u_avr32_flashc_fcr.fcr;
-}
-
-
-Bool flashc_is_prog_error_int_enabled(void)
-{
- return ((AVR32_FLASHC.fcr & AVR32_FLASHC_FCR_PROGE_MASK) != 0);
-}
-
-
-void flashc_enable_prog_error_int(Bool enable)
-{
- u_avr32_flashc_fcr_t u_avr32_flashc_fcr = {AVR32_FLASHC.fcr};
- u_avr32_flashc_fcr.FCR.proge = (enable != FALSE);
- AVR32_FLASHC.fcr = u_avr32_flashc_fcr.fcr;
-}
-
-
-//! @}
-
-
-/*! \name FLASHC Status
- */
-//! @{
-
-
-Bool flashc_is_ready(void)
-{
- return ((AVR32_FLASHC.fsr & AVR32_FLASHC_FSR_FRDY_MASK) != 0);
-}
-
-
-void flashc_default_wait_until_ready(void)
-{
- while (!flashc_is_ready());
-}
-
-
-void (*volatile flashc_wait_until_ready)(void) = flashc_default_wait_until_ready;
-
-
-/*! \brief Gets the error status of the FLASHC.
- *
- * \return The error status of the FLASHC built up from
- * \c AVR32_FLASHC_FSR_LOCKE_MASK and \c AVR32_FLASHC_FSR_PROGE_MASK.
- *
- * \warning This hardware error status is cleared by all functions reading the
- * Flash Status Register (FSR). This function is therefore not part of
- * the driver's API which instead presents \ref flashc_is_lock_error
- * and \ref flashc_is_programming_error.
- */
-static unsigned int flashc_get_error_status(void)
-{
- return AVR32_FLASHC.fsr & (AVR32_FLASHC_FSR_LOCKE_MASK |
- AVR32_FLASHC_FSR_PROGE_MASK);
-}
-
-
-//! Sticky error status of the FLASHC.
-//! This variable is updated by functions that issue FLASHC commands. It
-//! contains the cumulated FLASHC error status of all the FLASHC commands issued
-//! by a function.
-static unsigned int flashc_error_status = 0;
-
-
-Bool flashc_is_lock_error(void)
-{
- return ((flashc_error_status & AVR32_FLASHC_FSR_LOCKE_MASK) != 0);
-}
-
-
-Bool flashc_is_programming_error(void)
-{
- return ((flashc_error_status & AVR32_FLASHC_FSR_PROGE_MASK) != 0);
-}
-
-
-//! @}
-
-
-/*! \name FLASHC Command Control
- */
-//! @{
-
-
-unsigned int flashc_get_command(void)
-{
- return (AVR32_FLASHC.fcmd & AVR32_FLASHC_FCMD_CMD_MASK) >> AVR32_FLASHC_FCMD_CMD_OFFSET;
-}
-
-
-unsigned int flashc_get_page_number(void)
-{
- return (AVR32_FLASHC.fcmd & AVR32_FLASHC_FCMD_PAGEN_MASK) >> AVR32_FLASHC_FCMD_PAGEN_OFFSET;
-}
-
-
-void flashc_issue_command(unsigned int command, int page_number)
-{
- u_avr32_flashc_fcmd_t u_avr32_flashc_fcmd;
- flashc_wait_until_ready();
- u_avr32_flashc_fcmd.fcmd = AVR32_FLASHC.fcmd;
- u_avr32_flashc_fcmd.FCMD.cmd = command;
- if (page_number >= 0) u_avr32_flashc_fcmd.FCMD.pagen = page_number;
- u_avr32_flashc_fcmd.FCMD.key = AVR32_FLASHC_FCMD_KEY_KEY;
- AVR32_FLASHC.fcmd = u_avr32_flashc_fcmd.fcmd;
- flashc_error_status = flashc_get_error_status();
- flashc_wait_until_ready();
-}
-
-
-//! @}
-
-
-/*! \name FLASHC Global Commands
- */
-//! @{
-
-
-void flashc_no_operation(void)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_NOP, -1);
-}
-
-
-void flashc_erase_all(void)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_EA, -1);
-}
-
-
-//! @}
-
-
-/*! \name FLASHC Protection Mechanisms
- */
-//! @{
-
-
-Bool flashc_is_security_bit_active(void)
-{
- return ((AVR32_FLASHC.fsr & AVR32_FLASHC_FSR_SECURITY_MASK) != 0);
-}
-
-
-void flashc_activate_security_bit(void)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_SSB, -1);
-}
-
-
-unsigned int flashc_get_bootloader_protected_size(void)
-{
- unsigned int bootprot = (1 << AVR32_FLASHC_FGPFRLO_BOOTPROT_SIZE) - 1 -
- flashc_read_gp_fuse_bitfield(AVR32_FLASHC_FGPFRLO_BOOTPROT_OFFSET,
- AVR32_FLASHC_FGPFRLO_BOOTPROT_SIZE);
- return (bootprot) ? AVR32_FLASHC_PAGE_SIZE << bootprot : 0;
-}
-
-
-unsigned int flashc_set_bootloader_protected_size(unsigned int bootprot_size)
-{
- flashc_set_gp_fuse_bitfield(AVR32_FLASHC_FGPFRLO_BOOTPROT_OFFSET,
- AVR32_FLASHC_FGPFRLO_BOOTPROT_SIZE,
- (1 << AVR32_FLASHC_FGPFRLO_BOOTPROT_SIZE) - 1 -
- ((bootprot_size) ?
- 32 - clz((((min(max(bootprot_size, AVR32_FLASHC_PAGE_SIZE << 1),
- AVR32_FLASHC_PAGE_SIZE <<
- ((1 << AVR32_FLASHC_FGPFRLO_BOOTPROT_SIZE) - 1)) +
- AVR32_FLASHC_PAGE_SIZE - 1) /
- AVR32_FLASHC_PAGE_SIZE) << 1) - 1) - 1 :
- 0));
- return flashc_get_bootloader_protected_size();
-}
-
-
-Bool flashc_is_external_privileged_fetch_locked(void)
-{
- return (!flashc_read_gp_fuse_bit(AVR32_FLASHC_FGPFRLO_EPFL_OFFSET));
-}
-
-
-void flashc_lock_external_privileged_fetch(Bool lock)
-{
- flashc_set_gp_fuse_bit(AVR32_FLASHC_FGPFRLO_EPFL_OFFSET, !lock);
-}
-
-
-Bool flashc_is_page_region_locked(int page_number)
-{
- return flashc_is_region_locked(flashc_get_page_region(page_number));
-}
-
-
-Bool flashc_is_region_locked(unsigned int region)
-{
- return ((AVR32_FLASHC.fsr & AVR32_FLASHC_FSR_LOCK0_MASK << (region & (AVR32_FLASHC_REGIONS - 1))) != 0);
-}
-
-
-void flashc_lock_page_region(int page_number, Bool lock)
-{
- flashc_issue_command((lock) ? AVR32_FLASHC_FCMD_CMD_LP : AVR32_FLASHC_FCMD_CMD_UP, page_number);
-}
-
-
-void flashc_lock_region(unsigned int region, Bool lock)
-{
- flashc_lock_page_region(flashc_get_region_first_page_number(region), lock);
-}
-
-
-void flashc_lock_all_regions(Bool lock)
-{
- unsigned int error_status = 0;
- unsigned int region = AVR32_FLASHC_REGIONS;
- while (region)
- {
- flashc_lock_region(--region, lock);
- error_status |= flashc_error_status;
- }
- flashc_error_status = error_status;
-}
-
-
-//! @}
-
-
-/*! \name Access to General-Purpose Fuses
- */
-//! @{
-
-
-Bool flashc_read_gp_fuse_bit(unsigned int gp_fuse_bit)
-{
- return ((flashc_read_all_gp_fuses() & 1ULL << (gp_fuse_bit & 0x3F)) != 0);
-}
-
-
-U64 flashc_read_gp_fuse_bitfield(unsigned int pos, unsigned int width)
-{
- return flashc_read_all_gp_fuses() >> (pos & 0x3F) & ((1ULL << min(width, 64)) - 1);
-}
-
-
-U8 flashc_read_gp_fuse_byte(unsigned int gp_fuse_byte)
-{
- return flashc_read_all_gp_fuses() >> ((gp_fuse_byte & 0x07) << 3);
-}
-
-
-U64 flashc_read_all_gp_fuses(void)
-{
- return AVR32_FLASHC.fgpfrlo | (U64)AVR32_FLASHC.fgpfrhi << 32;
-}
-
-
-Bool flashc_erase_gp_fuse_bit(unsigned int gp_fuse_bit, Bool check)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_EGPB, gp_fuse_bit & 0x3F);
- return (check) ? flashc_read_gp_fuse_bit(gp_fuse_bit) : TRUE;
-}
-
-
-Bool flashc_erase_gp_fuse_bitfield(unsigned int pos, unsigned int width, Bool check)
-{
- unsigned int error_status = 0;
- unsigned int gp_fuse_bit;
- pos &= 0x3F;
- width = min(width, 64);
- for (gp_fuse_bit = pos; gp_fuse_bit < pos + width; gp_fuse_bit++)
- {
- flashc_erase_gp_fuse_bit(gp_fuse_bit, FALSE);
- error_status |= flashc_error_status;
- }
- flashc_error_status = error_status;
- return (check) ? (flashc_read_gp_fuse_bitfield(pos, width) == (1ULL << width) - 1) : TRUE;
-}
-
-
-Bool flashc_erase_gp_fuse_byte(unsigned int gp_fuse_byte, Bool check)
-{
- unsigned int error_status;
- unsigned int current_gp_fuse_byte;
- U64 value = flashc_read_all_gp_fuses();
- flashc_erase_all_gp_fuses(FALSE);
- error_status = flashc_error_status;
- for (current_gp_fuse_byte = 0; current_gp_fuse_byte < 8; current_gp_fuse_byte++, value >>= 8)
- {
- if (current_gp_fuse_byte != gp_fuse_byte)
- {
- flashc_write_gp_fuse_byte(current_gp_fuse_byte, value);
- error_status |= flashc_error_status;
- }
- }
- flashc_error_status = error_status;
- return (check) ? (flashc_read_gp_fuse_byte(gp_fuse_byte) == 0xFF) : TRUE;
-}
-
-
-Bool flashc_erase_all_gp_fuses(Bool check)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_EAGPF, -1);
- return (check) ? (flashc_read_all_gp_fuses() == 0xFFFFFFFFFFFFFFFFULL) : TRUE;
-}
-
-
-void flashc_write_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value)
-{
- if (!value)
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_WGPB, gp_fuse_bit & 0x3F);
-}
-
-
-void flashc_write_gp_fuse_bitfield(unsigned int pos, unsigned int width, U64 value)
-{
- unsigned int error_status = 0;
- unsigned int gp_fuse_bit;
- pos &= 0x3F;
- width = min(width, 64);
- for (gp_fuse_bit = pos; gp_fuse_bit < pos + width; gp_fuse_bit++, value >>= 1)
- {
- flashc_write_gp_fuse_bit(gp_fuse_bit, value & 0x01);
- error_status |= flashc_error_status;
- }
- flashc_error_status = error_status;
-}
-
-
-void flashc_write_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_PGPFB, (gp_fuse_byte & 0x07) | value << 3);
-}
-
-
-void flashc_write_all_gp_fuses(U64 value)
-{
- unsigned int error_status = 0;
- unsigned int gp_fuse_byte;
- for (gp_fuse_byte = 0; gp_fuse_byte < 8; gp_fuse_byte++, value >>= 8)
- {
- flashc_write_gp_fuse_byte(gp_fuse_byte, value);
- error_status |= flashc_error_status;
- }
- flashc_error_status = error_status;
-}
-
-
-void flashc_set_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value)
-{
- if (value)
- flashc_erase_gp_fuse_bit(gp_fuse_bit, FALSE);
- else
- flashc_write_gp_fuse_bit(gp_fuse_bit, FALSE);
-}
-
-
-void flashc_set_gp_fuse_bitfield(unsigned int pos, unsigned int width, U64 value)
-{
- unsigned int error_status = 0;
- unsigned int gp_fuse_bit;
- pos &= 0x3F;
- width = min(width, 64);
- for (gp_fuse_bit = pos; gp_fuse_bit < pos + width; gp_fuse_bit++, value >>= 1)
- {
- flashc_set_gp_fuse_bit(gp_fuse_bit, value & 0x01);
- error_status |= flashc_error_status;
- }
- flashc_error_status = error_status;
-}
-
-
-void flashc_set_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value)
-{
- unsigned int error_status;
- switch (value)
- {
- case 0xFF:
- flashc_erase_gp_fuse_byte(gp_fuse_byte, FALSE);
- break;
- case 0x00:
- flashc_write_gp_fuse_byte(gp_fuse_byte, 0x00);
- break;
- default:
- flashc_erase_gp_fuse_byte(gp_fuse_byte, FALSE);
- error_status = flashc_error_status;
- flashc_write_gp_fuse_byte(gp_fuse_byte, value);
- flashc_error_status |= error_status;
- }
-}
-
-
-void flashc_set_all_gp_fuses(U64 value)
-{
- unsigned int error_status;
- switch (value)
- {
- case 0xFFFFFFFFFFFFFFFFULL:
- flashc_erase_all_gp_fuses(FALSE);
- break;
- case 0x0000000000000000ULL:
- flashc_write_all_gp_fuses(0x0000000000000000ULL);
- break;
- default:
- flashc_erase_all_gp_fuses(FALSE);
- error_status = flashc_error_status;
- flashc_write_all_gp_fuses(value);
- flashc_error_status |= error_status;
- }
-}
-
-
-//! @}
-
-
-/*! \name Access to Flash Pages
- */
-//! @{
-
-
-void flashc_clear_page_buffer(void)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_CPB, -1);
-}
-
-
-Bool flashc_is_page_erased(void)
-{
- return ((AVR32_FLASHC.fsr & AVR32_FLASHC_FSR_QPRR_MASK) != 0);
-}
-
-
-Bool flashc_quick_page_read(int page_number)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_QPR, page_number);
- return flashc_is_page_erased();
-}
-
-
-Bool flashc_erase_page(int page_number, Bool check)
-{
- Bool page_erased = TRUE;
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_EP, page_number);
- if (check)
- {
- unsigned int error_status = flashc_error_status;
- page_erased = flashc_quick_page_read(-1);
- flashc_error_status |= error_status;
- }
- return page_erased;
-}
-
-
-Bool flashc_erase_all_pages(Bool check)
-{
- Bool all_pages_erased = TRUE;
- unsigned int error_status = 0;
- unsigned int page_number = flashc_get_page_count();
- while (page_number)
- {
- all_pages_erased &= flashc_erase_page(--page_number, check);
- error_status |= flashc_error_status;
- }
- flashc_error_status = error_status;
- return all_pages_erased;
-}
-
-
-void flashc_write_page(int page_number)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_WP, page_number);
-}
-
-
-Bool flashc_quick_user_page_read(void)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_QPRUP, -1);
- return flashc_is_page_erased();
-}
-
-
-Bool flashc_erase_user_page(Bool check)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_EUP, -1);
- return (check) ? flashc_quick_user_page_read() : TRUE;
-}
-
-
-void flashc_write_user_page(void)
-{
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_WUP, -1);
-}
-
-
-volatile void *flashc_memset8(volatile void *dst, U8 src, size_t nbytes, Bool erase)
-{
- return flashc_memset16(dst, src | (U16)src << 8, nbytes, erase);
-}
-
-
-volatile void *flashc_memset16(volatile void *dst, U16 src, size_t nbytes, Bool erase)
-{
- return flashc_memset32(dst, src | (U32)src << 16, nbytes, erase);
-}
-
-
-volatile void *flashc_memset32(volatile void *dst, U32 src, size_t nbytes, Bool erase)
-{
- return flashc_memset64(dst, src | (U64)src << 32, nbytes, erase);
-}
-
-
-volatile void *flashc_memset64(volatile void *dst, U64 src, size_t nbytes, Bool erase)
-{
- // Use aggregated pointers to have several alignments available for a same address.
- UnionCVPtr flash_array_end;
- UnionVPtr dest;
- Union64 source = {0};
- StructCVPtr dest_end;
- UnionCVPtr flash_page_source_end;
- Bool incomplete_flash_page_end;
- Union64 flash_dword;
- UnionVPtr tmp;
- unsigned int error_status = 0;
- unsigned int i;
-
- // Reformat arguments.
- flash_array_end.u8ptr = AVR32_FLASH + flashc_get_flash_size();
- dest.u8ptr = dst;
- for (i = (Get_align((U32)dest.u8ptr, sizeof(U64)) - 1) & (sizeof(U64) - 1);
- src; i = (i - 1) & (sizeof(U64) - 1))
- {
- source.u8[i] = src;
- src >>= 8;
- }
- dest_end.u8ptr = dest.u8ptr + nbytes;
-
- // If destination is outside flash, go to next flash page if any.
- if (dest.u8ptr < AVR32_FLASH)
- {
- dest.u8ptr = AVR32_FLASH;
- }
- else if (flash_array_end.u8ptr <= dest.u8ptr && dest.u8ptr < AVR32_FLASHC_USER_PAGE)
- {
- dest.u8ptr = AVR32_FLASHC_USER_PAGE;
- }
-
- // If end of destination is outside flash, move it to the end of the previous flash page if any.
- if (dest_end.u8ptr > AVR32_FLASHC_USER_PAGE + AVR32_FLASHC_USER_PAGE_SIZE)
- {
- dest_end.u8ptr = AVR32_FLASHC_USER_PAGE + AVR32_FLASHC_USER_PAGE_SIZE;
- }
- else if (AVR32_FLASHC_USER_PAGE >= dest_end.u8ptr && dest_end.u8ptr > flash_array_end.u8ptr)
- {
- dest_end.u8ptr = flash_array_end.u8ptr;
- }
-
- // Align each end of destination pointer with its natural boundary.
- dest_end.u16ptr = (U16 *)Align_down((U32)dest_end.u8ptr, sizeof(U16));
- dest_end.u32ptr = (U32 *)Align_down((U32)dest_end.u16ptr, sizeof(U32));
- dest_end.u64ptr = (U64 *)Align_down((U32)dest_end.u32ptr, sizeof(U64));
-
- // While end of destination is not reached...
- while (dest.u8ptr < dest_end.u8ptr)
- {
- // Clear the page buffer in order to prepare data for a flash page write.
- flashc_clear_page_buffer();
- error_status |= flashc_error_status;
-
- // Determine where the source data will end in the current flash page.
- flash_page_source_end.u64ptr =
- (U64 *)min((U32)dest_end.u64ptr,
- Align_down((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE) + AVR32_FLASHC_PAGE_SIZE);
-
- // Determine if the current destination page has an incomplete end.
- incomplete_flash_page_end = (Align_down((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE) >=
- Align_down((U32)dest_end.u8ptr, AVR32_FLASHC_PAGE_SIZE));
-
- // Use a flash double-word buffer to manage unaligned accesses.
- flash_dword.u64 = source.u64;
-
- // If destination does not point to the beginning of the current flash page...
- if (!Test_align((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE))
- {
- // Fill the beginning of the page buffer with the current flash page data.
- // This is required by the hardware, even if page erase is not requested,
- // in order to be able to write successfully to erased parts of flash
- // pages that have already been written to.
- for (tmp.u8ptr = (U8 *)Align_down((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE);
- tmp.u64ptr < (U64 *)Align_down((U32)dest.u8ptr, sizeof(U64));
- tmp.u64ptr++)
- *tmp.u64ptr = *tmp.u64ptr;
-
- // If destination is not 64-bit aligned...
- if (!Test_align((U32)dest.u8ptr, sizeof(U64)))
- {
- // Fill the beginning of the flash double-word buffer with the current
- // flash page data.
- // This is required by the hardware, even if page erase is not
- // requested, in order to be able to write successfully to erased parts
- // of flash pages that have already been written to.
- for (i = 0; i < Get_align((U32)dest.u8ptr, sizeof(U64)); i++)
- flash_dword.u8[i] = *tmp.u8ptr++;
-
- // Align the destination pointer with its 64-bit boundary.
- dest.u64ptr = (U64 *)Align_down((U32)dest.u8ptr, sizeof(U64));
-
- // If the current destination double-word is not the last one...
- if (dest.u64ptr < dest_end.u64ptr)
- {
- // Write the flash double-word buffer to the page buffer and reinitialize it.
- *dest.u64ptr++ = flash_dword.u64;
- flash_dword.u64 = source.u64;
- }
- }
- }
-
- // Write the source data to the page buffer with 64-bit alignment.
- for (i = flash_page_source_end.u64ptr - dest.u64ptr; i; i--)
- *dest.u64ptr++ = source.u64;
-
- // If the current destination page has an incomplete end...
- if (incomplete_flash_page_end)
- {
- // This is required by the hardware, even if page erase is not requested,
- // in order to be able to write successfully to erased parts of flash
- // pages that have already been written to.
- {
- tmp.u8ptr = (volatile U8 *)dest_end.u8ptr;
-
- // If end of destination is not 64-bit aligned...
- if (!Test_align((U32)dest_end.u8ptr, sizeof(U64)))
- {
- // Fill the end of the flash double-word buffer with the current flash page data.
- for (i = Get_align((U32)dest_end.u8ptr, sizeof(U64)); i < sizeof(U64); i++)
- flash_dword.u8[i] = *tmp.u8ptr++;
-
- // Write the flash double-word buffer to the page buffer.
- *dest.u64ptr++ = flash_dword.u64;
- }
-
- // Fill the end of the page buffer with the current flash page data.
- for (; !Test_align((U32)tmp.u64ptr, AVR32_FLASHC_PAGE_SIZE); tmp.u64ptr++)
- *tmp.u64ptr = *tmp.u64ptr;
- }
- }
-
- // If the current flash page is in the flash array...
- if (dest.u8ptr <= AVR32_FLASHC_USER_PAGE)
- {
- // Erase the current page if requested and write it from the page buffer.
- if (erase)
- {
- flashc_erase_page(-1, FALSE);
- error_status |= flashc_error_status;
- }
- flashc_write_page(-1);
- error_status |= flashc_error_status;
-
- // If the end of the flash array is reached, go to the User page.
- if (dest.u8ptr >= flash_array_end.u8ptr)
- dest.u8ptr = AVR32_FLASHC_USER_PAGE;
- }
- // If the current flash page is the User page...
- else
- {
- // Erase the User page if requested and write it from the page buffer.
- if (erase)
- {
- flashc_erase_user_page(FALSE);
- error_status |= flashc_error_status;
- }
- flashc_write_user_page();
- error_status |= flashc_error_status;
- }
- }
-
- // Update the FLASHC error status.
- flashc_error_status = error_status;
-
- // Return the initial destination pointer as the standard memset function does.
- return dst;
-}
-
-
-volatile void *flashc_memcpy(volatile void *dst, const void *src, size_t nbytes, Bool erase)
-{
- // Use aggregated pointers to have several alignments available for a same address.
- UnionCVPtr flash_array_end;
- UnionVPtr dest;
- UnionCPtr source;
- StructCVPtr dest_end;
- UnionCVPtr flash_page_source_end;
- Bool incomplete_flash_page_end;
- Union64 flash_dword;
- Bool flash_dword_pending = FALSE;
- UnionVPtr tmp;
- unsigned int error_status = 0;
- unsigned int i, j;
-
- // Reformat arguments.
- flash_array_end.u8ptr = AVR32_FLASH + flashc_get_flash_size();
- dest.u8ptr = dst;
- source.u8ptr = src;
- dest_end.u8ptr = dest.u8ptr + nbytes;
-
- // If destination is outside flash, go to next flash page if any.
- if (dest.u8ptr < AVR32_FLASH)
- {
- source.u8ptr += AVR32_FLASH - dest.u8ptr;
- dest.u8ptr = AVR32_FLASH;
- }
- else if (flash_array_end.u8ptr <= dest.u8ptr && dest.u8ptr < AVR32_FLASHC_USER_PAGE)
- {
- source.u8ptr += AVR32_FLASHC_USER_PAGE - dest.u8ptr;
- dest.u8ptr = AVR32_FLASHC_USER_PAGE;
- }
-
- // If end of destination is outside flash, move it to the end of the previous flash page if any.
- if (dest_end.u8ptr > AVR32_FLASHC_USER_PAGE + AVR32_FLASHC_USER_PAGE_SIZE)
- {
- dest_end.u8ptr = AVR32_FLASHC_USER_PAGE + AVR32_FLASHC_USER_PAGE_SIZE;
- }
- else if (AVR32_FLASHC_USER_PAGE >= dest_end.u8ptr && dest_end.u8ptr > flash_array_end.u8ptr)
- {
- dest_end.u8ptr = flash_array_end.u8ptr;
- }
-
- // Align each end of destination pointer with its natural boundary.
- dest_end.u16ptr = (U16 *)Align_down((U32)dest_end.u8ptr, sizeof(U16));
- dest_end.u32ptr = (U32 *)Align_down((U32)dest_end.u16ptr, sizeof(U32));
- dest_end.u64ptr = (U64 *)Align_down((U32)dest_end.u32ptr, sizeof(U64));
-
- // While end of destination is not reached...
- while (dest.u8ptr < dest_end.u8ptr)
- {
- // Clear the page buffer in order to prepare data for a flash page write.
- flashc_clear_page_buffer();
- error_status |= flashc_error_status;
-
- // Determine where the source data will end in the current flash page.
- flash_page_source_end.u64ptr =
- (U64 *)min((U32)dest_end.u64ptr,
- Align_down((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE) + AVR32_FLASHC_PAGE_SIZE);
-
- // Determine if the current destination page has an incomplete end.
- incomplete_flash_page_end = (Align_down((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE) >=
- Align_down((U32)dest_end.u8ptr, AVR32_FLASHC_PAGE_SIZE));
-
- // If destination does not point to the beginning of the current flash page...
- if (!Test_align((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE))
- {
- // Fill the beginning of the page buffer with the current flash page data.
- // This is required by the hardware, even if page erase is not requested,
- // in order to be able to write successfully to erased parts of flash
- // pages that have already been written to.
- for (tmp.u8ptr = (U8 *)Align_down((U32)dest.u8ptr, AVR32_FLASHC_PAGE_SIZE);
- tmp.u64ptr < (U64 *)Align_down((U32)dest.u8ptr, sizeof(U64));
- tmp.u64ptr++)
- *tmp.u64ptr = *tmp.u64ptr;
-
- // If destination is not 64-bit aligned...
- if (!Test_align((U32)dest.u8ptr, sizeof(U64)))
- {
- // Fill the beginning of the flash double-word buffer with the current
- // flash page data.
- // This is required by the hardware, even if page erase is not
- // requested, in order to be able to write successfully to erased parts
- // of flash pages that have already been written to.
- for (i = 0; i < Get_align((U32)dest.u8ptr, sizeof(U64)); i++)
- flash_dword.u8[i] = *tmp.u8ptr++;
-
- // Fill the end of the flash double-word buffer with the source data.
- for (; i < sizeof(U64); i++)
- flash_dword.u8[i] = *source.u8ptr++;
-
- // Align the destination pointer with its 64-bit boundary.
- dest.u64ptr = (U64 *)Align_down((U32)dest.u8ptr, sizeof(U64));
-
- // If the current destination double-word is not the last one...
- if (dest.u64ptr < dest_end.u64ptr)
- {
- // Write the flash double-word buffer to the page buffer.
- *dest.u64ptr++ = flash_dword.u64;
- }
- // If the current destination double-word is the last one, the flash
- // double-word buffer must be kept for later.
- else flash_dword_pending = TRUE;
- }
- }
-
- // Read the source data with the maximal possible alignment and write it to
- // the page buffer with 64-bit alignment.
- switch (Get_align((U32)source.u8ptr, sizeof(U32)))
- {
- case 0:
- for (i = flash_page_source_end.u64ptr - dest.u64ptr; i; i--)
- *dest.u64ptr++ = *source.u64ptr++;
- break;
-
- case sizeof(U16):
- for (i = flash_page_source_end.u64ptr - dest.u64ptr; i; i--)
- {
- for (j = 0; j < sizeof(U64) / sizeof(U16); j++) flash_dword.u16[j] = *source.u16ptr++;
- *dest.u64ptr++ = flash_dword.u64;
- }
- break;
-
- default:
- for (i = flash_page_source_end.u64ptr - dest.u64ptr; i; i--)
- {
- for (j = 0; j < sizeof(U64); j++) flash_dword.u8[j] = *source.u8ptr++;
- *dest.u64ptr++ = flash_dword.u64;
- }
- }
-
- // If the current destination page has an incomplete end...
- if (incomplete_flash_page_end)
- {
- // If the flash double-word buffer is in use, do not initialize it.
- if (flash_dword_pending) i = Get_align((U32)dest_end.u8ptr, sizeof(U64));
- // If the flash double-word buffer is free...
- else
- {
- // Fill the beginning of the flash double-word buffer with the source data.
- for (i = 0; i < Get_align((U32)dest_end.u8ptr, sizeof(U64)); i++)
- flash_dword.u8[i] = *source.u8ptr++;
- }
-
- // This is required by the hardware, even if page erase is not requested,
- // in order to be able to write successfully to erased parts of flash
- // pages that have already been written to.
- {
- tmp.u8ptr = (volatile U8 *)dest_end.u8ptr;
-
- // If end of destination is not 64-bit aligned...
- if (!Test_align((U32)dest_end.u8ptr, sizeof(U64)))
- {
- // Fill the end of the flash double-word buffer with the current flash page data.
- for (; i < sizeof(U64); i++)
- flash_dword.u8[i] = *tmp.u8ptr++;
-
- // Write the flash double-word buffer to the page buffer.
- *dest.u64ptr++ = flash_dword.u64;
- }
-
- // Fill the end of the page buffer with the current flash page data.
- for (; !Test_align((U32)tmp.u64ptr, AVR32_FLASHC_PAGE_SIZE); tmp.u64ptr++)
- *tmp.u64ptr = *tmp.u64ptr;
- }
- }
-
- // If the current flash page is in the flash array...
- if (dest.u8ptr <= AVR32_FLASHC_USER_PAGE)
- {
- // Erase the current page if requested and write it from the page buffer.
- if (erase)
- {
- flashc_erase_page(-1, FALSE);
- error_status |= flashc_error_status;
- }
- flashc_write_page(-1);
- error_status |= flashc_error_status;
-
- // If the end of the flash array is reached, go to the User page.
- if (dest.u8ptr >= flash_array_end.u8ptr)
- {
- source.u8ptr += AVR32_FLASHC_USER_PAGE - dest.u8ptr;
- dest.u8ptr = AVR32_FLASHC_USER_PAGE;
- }
- }
- // If the current flash page is the User page...
- else
- {
- // Erase the User page if requested and write it from the page buffer.
- if (erase)
- {
- flashc_erase_user_page(FALSE);
- error_status |= flashc_error_status;
- }
- flashc_write_user_page();
- error_status |= flashc_error_status;
- }
- }
-
- // Update the FLASHC error status.
- flashc_error_status = error_status;
-
- // Return the initial destination pointer as the standard memcpy function does.
- return dst;
-}
-
-
-#if UC3C
-void flashc_set_flash_waitstate_and_readmode(unsigned long cpu_f_hz)
-{
- //! Device-specific data
- #undef AVR32_FLASHC_FWS_0_MAX_FREQ
- #undef AVR32_FLASHC_FWS_1_MAX_FREQ
- #undef AVR32_FLASHC_HSEN_FWS_0_MAX_FREQ
- #undef AVR32_FLASHC_HSEN_FWS_1_MAX_FREQ
- #define AVR32_FLASHC_FWS_0_MAX_FREQ 33000000
- #define AVR32_FLASHC_FWS_1_MAX_FREQ 66000000
- #define AVR32_FLASHC_HSEN_FWS_0_MAX_FREQ 33000000
- #define AVR32_FLASHC_HSEN_FWS_1_MAX_FREQ 72000000
- // These defines are missing from or wrong in the toolchain header files uc3cxxx.h
- // Put a Bugzilla
-
- if(cpu_f_hz > AVR32_FLASHC_HSEN_FWS_0_MAX_FREQ) // > 33MHz
- {
- // Set a wait-state
- flashc_set_wait_state(1);
- if(cpu_f_hz <= AVR32_FLASHC_FWS_1_MAX_FREQ) // <= 66MHz and >33Mhz
- {
- // Disable the high-speed read mode.
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_HSDIS, -1);
- }
- else // > 66Mhz
- {
- // Enable the high-speed read mode.
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_HSEN, -1);
- }
- }
- else // <= 33 MHz
- {
- // Disable wait-state
- flashc_set_wait_state(0);
-
- // Disable the high-speed read mode.
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_HSDIS, -1);
-
- }
-}
-#endif // UC3C device-specific implementation
-
-//! @}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.h
deleted file mode 100644
index 9f2547a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.h
+++ /dev/null
@@ -1,1002 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief FLASHC driver for AVR32 UC3.
- *
- * AVR32 Flash Controller driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a FLASHC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _FLASHC_H_
-#define _FLASHC_H_
-
-#include <avr32/io.h>
-#include <stddef.h>
-#include "compiler.h"
-
-//! Number of flash regions defined by the FLASHC.
-#define AVR32_FLASHC_REGIONS (AVR32_FLASHC_FLASH_SIZE /\
- (AVR32_FLASHC_PAGES_PR_REGION * AVR32_FLASHC_PAGE_SIZE))
-
-
-/*! \name Flash Properties
- */
-//! @{
-
-/*! \brief Gets the size of the whole flash array.
- *
- * \return The size of the whole flash array in bytes.
- */
-extern unsigned int flashc_get_flash_size(void);
-
-/*! \brief Gets the total number of pages in the flash array.
- *
- * \return The total number of pages in the flash array.
- */
-extern unsigned int flashc_get_page_count(void);
-
-/*! \brief Gets the number of pages in each flash region.
- *
- * \return The number of pages in each flash region.
- */
-extern unsigned int flashc_get_page_count_per_region(void);
-
-/*! \brief Gets the region number of a page.
- *
- * \param page_number The page number:
- * \arg \c 0 to <tt>(flashc_get_page_count() - 1)</tt>: a page number within
- * the flash array;
- * \arg <tt>< 0</tt>: the current page number.
- *
- * \return The region number of the specified page.
- */
-extern unsigned int flashc_get_page_region(int page_number);
-
-/*! \brief Gets the number of the first page of a region.
- *
- * \param region The region number: \c 0 to <tt>(AVR32_FLASHC_REGIONS - 1)</tt>.
- *
- * \return The number of the first page of the specified region.
- */
-extern unsigned int flashc_get_region_first_page_number(unsigned int region);
-
-//! @}
-
-
-/*! \name FLASHC Control
- */
-//! @{
-
-/*! \brief Gets the number of wait states of flash read accesses.
- *
- * \return The number of wait states of flash read accesses.
- */
-extern unsigned int flashc_get_wait_state(void);
-
-/*! \brief Sets the number of wait states of flash read accesses.
- *
- * \param wait_state The number of wait states of flash read accesses: \c 0 to
- * \c 1.
- */
-extern void flashc_set_wait_state(unsigned int wait_state);
-
-/*! \brief Tells whether the Flash Ready interrupt is enabled.
- *
- * \return Whether the Flash Ready interrupt is enabled.
- */
-extern Bool flashc_is_ready_int_enabled(void);
-
-/*! \brief Enables or disables the Flash Ready interrupt.
- *
- * \param enable Whether to enable the Flash Ready interrupt: \c TRUE or
- * \c FALSE.
- */
-extern void flashc_enable_ready_int(Bool enable);
-
-/*! \brief Tells whether the Lock Error interrupt is enabled.
- *
- * \return Whether the Lock Error interrupt is enabled.
- */
-extern Bool flashc_is_lock_error_int_enabled(void);
-
-/*! \brief Enables or disables the Lock Error interrupt.
- *
- * \param enable Whether to enable the Lock Error interrupt: \c TRUE or
- * \c FALSE.
- */
-extern void flashc_enable_lock_error_int(Bool enable);
-
-/*! \brief Tells whether the Programming Error interrupt is enabled.
- *
- * \return Whether the Programming Error interrupt is enabled.
- */
-extern Bool flashc_is_prog_error_int_enabled(void);
-
-/*! \brief Enables or disables the Programming Error interrupt.
- *
- * \param enable Whether to enable the Programming Error interrupt: \c TRUE or
- * \c FALSE.
- */
-extern void flashc_enable_prog_error_int(Bool enable);
-
-//! @}
-
-
-/*! \name FLASHC Status
- */
-//! @{
-
-/*! \brief Tells whether the FLASHC is ready to run a new command.
- *
- * \return Whether the FLASHC is ready to run a new command.
- */
-extern Bool flashc_is_ready(void);
-
-/*! \brief Waits actively until the FLASHC is ready to run a new command.
- *
- * This is the default function assigned to \ref flashc_wait_until_ready.
- */
-extern void flashc_default_wait_until_ready(void);
-
-//! Pointer to the function used by the driver when it needs to wait until the
-//! FLASHC is ready to run a new command.
-//! The default function is \ref flashc_default_wait_until_ready.
-//! The user may change this pointer to use another implementation.
-extern void (*volatile flashc_wait_until_ready)(void);
-
-/*! \brief Tells whether a Lock Error has occurred during the last function
- * called that issued one or more FLASHC commands.
- *
- * \return Whether a Lock Error has occurred during the last function called
- * that issued one or more FLASHC commands.
- */
-extern Bool flashc_is_lock_error(void);
-
-/*! \brief Tells whether a Programming Error has occurred during the last
- * function called that issued one or more FLASHC commands.
- *
- * \return Whether a Programming Error has occurred during the last function
- * called that issued one or more FLASHC commands.
- */
-extern Bool flashc_is_programming_error(void);
-
-//! @}
-
-
-/*! \name FLASHC Command Control
- */
-//! @{
-
-/*! \brief Gets the last issued FLASHC command.
- *
- * \return The last issued FLASHC command.
- */
-extern unsigned int flashc_get_command(void);
-
-/*! \brief Gets the current FLASHC page number.
- *
- * \return The current FLASHC page number.
- */
-extern unsigned int flashc_get_page_number(void);
-
-/*! \brief Issues a FLASHC command.
- *
- * \param command The command: \c AVR32_FLASHC_FCMD_CMD_x.
- * \param page_number The page number to apply the command to:
- * \arg \c 0 to <tt>(flashc_get_page_count() - 1)</tt>: a page number within
- * the flash array;
- * \arg <tt>< 0</tt>: use this to apply the command to the current page number
- * or if the command does not apply to any page number;
- * \arg this argument may have other meanings according to the command. See
- * the FLASHC chapter of the MCU datasheet.
- *
- * \warning A Lock Error is issued if the command violates the protection
- * mechanism.
- *
- * \warning A Programming Error is issued if the command is invalid.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_issue_command(unsigned int command, int page_number);
-
-//! @}
-
-
-/*! \name FLASHC Global Commands
- */
-//! @{
-
-/*! \brief Issues a No Operation command to the FLASHC.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_no_operation(void);
-
-/*! \brief Issues an Erase All command to the FLASHC.
- *
- * This command erases all bits in the flash array, the general-purpose fuse
- * bits and the Security bit. The User page is not erased.
- *
- * This command also ensures that all volatile memories, such as register file
- * and RAMs, are erased before the Security bit is erased, i.e. deactivated.
- *
- * \warning A Lock Error is issued if at least one region is locked or the
- * bootloader protection is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- */
-extern void flashc_erase_all(void);
-
-//! @}
-
-
-/*! \name FLASHC Protection Mechanisms
- */
-//! @{
-
-/*! \brief Tells whether the Security bit is active.
- *
- * \return Whether the Security bit is active.
- */
-extern Bool flashc_is_security_bit_active(void);
-
-/*! \brief Activates the Security bit.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_activate_security_bit(void);
-
-/*! \brief Gets the bootloader protected size.
- *
- * \return The bootloader protected size in bytes.
- */
-extern unsigned int flashc_get_bootloader_protected_size(void);
-
-/*! \brief Sets the bootloader protected size.
- *
- * \param bootprot_size The wanted bootloader protected size in bytes. If this
- * size is not supported, the actual size will be the
- * nearest greater available size or the maximal possible
- * size if the requested size is too large.
- *
- * \return The actual bootloader protected size in bytes.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern unsigned int flashc_set_bootloader_protected_size(unsigned int bootprot_size);
-
-/*! \brief Tells whether external privileged fetch is locked.
- *
- * \return Whether external privileged fetch is locked.
- */
-extern Bool flashc_is_external_privileged_fetch_locked(void);
-
-/*! \brief Locks or unlocks external privileged fetch.
- *
- * \param lock Whether to lock external privileged fetch: \c TRUE or \c FALSE.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_lock_external_privileged_fetch(Bool lock);
-
-/*! \brief Tells whether the region of a page is locked.
- *
- * \param page_number The page number:
- * \arg \c 0 to <tt>(flashc_get_page_count() - 1)</tt>: a page number within
- * the flash array;
- * \arg <tt>< 0</tt>: the current page number.
- *
- * \return Whether the region of the specified page is locked.
- */
-extern Bool flashc_is_page_region_locked(int page_number);
-
-/*! \brief Tells whether a region is locked.
- *
- * \param region The region number: \c 0 to <tt>(AVR32_FLASHC_REGIONS - 1)</tt>.
- *
- * \return Whether the specified region is locked.
- */
-extern Bool flashc_is_region_locked(unsigned int region);
-
-/*! \brief Locks or unlocks the region of a page.
- *
- * \param page_number The page number:
- * \arg \c 0 to <tt>(flashc_get_page_count() - 1)</tt>: a page number within
- * the flash array;
- * \arg <tt>< 0</tt>: the current page number.
- * \param lock Whether to lock the region of the specified page: \c TRUE or
- * \c FALSE.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_lock_page_region(int page_number, Bool lock);
-
-/*! \brief Locks or unlocks a region.
- *
- * \param region The region number: \c 0 to <tt>(AVR32_FLASHC_REGIONS - 1)</tt>.
- * \param lock Whether to lock the specified region: \c TRUE or \c FALSE.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_lock_region(unsigned int region, Bool lock);
-
-/*! \brief Locks or unlocks all regions.
- *
- * \param lock Whether to lock the regions: \c TRUE or \c FALSE.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_lock_all_regions(Bool lock);
-
-//! @}
-
-
-/*! \name Access to General-Purpose Fuses
- */
-//! @{
-
-/*! \brief Reads a general-purpose fuse bit.
- *
- * \param gp_fuse_bit The general-purpose fuse bit: \c 0 to \c 63.
- *
- * \return The value of the specified general-purpose fuse bit.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern Bool flashc_read_gp_fuse_bit(unsigned int gp_fuse_bit);
-
-/*! \brief Reads a general-purpose fuse bit-field.
- *
- * \param pos The bit-position of the general-purpose fuse bit-field: \c 0 to
- * \c 63.
- * \param width The bit-width of the general-purpose fuse bit-field: \c 0 to
- * \c 64.
- *
- * \return The value of the specified general-purpose fuse bit-field.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern U64 flashc_read_gp_fuse_bitfield(unsigned int pos, unsigned int width);
-
-/*! \brief Reads a general-purpose fuse byte.
- *
- * \param gp_fuse_byte The general-purpose fuse byte: \c 0 to \c 7.
- *
- * \return The value of the specified general-purpose fuse byte.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern U8 flashc_read_gp_fuse_byte(unsigned int gp_fuse_byte);
-
-/*! \brief Reads all general-purpose fuses.
- *
- * \return The value of all general-purpose fuses as a word.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern U64 flashc_read_all_gp_fuses(void);
-
-/*! \brief Erases a general-purpose fuse bit.
- *
- * \param gp_fuse_bit The general-purpose fuse bit: \c 0 to \c 63.
- * \param check Whether to check erase: \c TRUE or \c FALSE.
- *
- * \return Whether the erase succeeded or always \c TRUE if erase check was not
- * requested.
- *
- * \warning A Lock Error is issued if the Security bit is active and the command
- * is applied to BOOTPROT or EPFL fuses.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern Bool flashc_erase_gp_fuse_bit(unsigned int gp_fuse_bit, Bool check);
-
-/*! \brief Erases a general-purpose fuse bit-field.
- *
- * \param pos The bit-position of the general-purpose fuse bit-field: \c 0 to
- * \c 63.
- * \param width The bit-width of the general-purpose fuse bit-field: \c 0 to
- * \c 64.
- * \param check Whether to check erase: \c TRUE or \c FALSE.
- *
- * \return Whether the erase succeeded or always \c TRUE if erase check was not
- * requested.
- *
- * \warning A Lock Error is issued if the Security bit is active and the command
- * is applied to BOOTPROT or EPFL fuses.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern Bool flashc_erase_gp_fuse_bitfield(unsigned int pos, unsigned int width, Bool check);
-
-/*! \brief Erases a general-purpose fuse byte.
- *
- * \param gp_fuse_byte The general-purpose fuse byte: \c 0 to \c 7.
- * \param check Whether to check erase: \c TRUE or \c FALSE.
- *
- * \return Whether the erase succeeded or always \c TRUE if erase check was not
- * requested.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern Bool flashc_erase_gp_fuse_byte(unsigned int gp_fuse_byte, Bool check);
-
-/*! \brief Erases all general-purpose fuses.
- *
- * \param check Whether to check erase: \c TRUE or \c FALSE.
- *
- * \return Whether the erase succeeded or always \c TRUE if erase check was not
- * requested.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern Bool flashc_erase_all_gp_fuses(Bool check);
-
-/*! \brief Writes a general-purpose fuse bit.
- *
- * \param gp_fuse_bit The general-purpose fuse bit: \c 0 to \c 63.
- * \param value The value of the specified general-purpose fuse bit.
- *
- * \warning A Lock Error is issued if the Security bit is active and the command
- * is applied to BOOTPROT or EPFL fuses.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note A write operation can only clear bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_write_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value);
-
-/*! \brief Writes a general-purpose fuse bit-field.
- *
- * \param pos The bit-position of the general-purpose fuse bit-field: \c 0 to
- * \c 63.
- * \param width The bit-width of the general-purpose fuse bit-field: \c 0 to
- * \c 64.
- * \param value The value of the specified general-purpose fuse bit-field.
- *
- * \warning A Lock Error is issued if the Security bit is active and the command
- * is applied to BOOTPROT or EPFL fuses.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note A write operation can only clear bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_write_gp_fuse_bitfield(unsigned int pos, unsigned int width, U64 value);
-
-/*! \brief Writes a general-purpose fuse byte.
- *
- * \param gp_fuse_byte The general-purpose fuse byte: \c 0 to \c 7.
- * \param value The value of the specified general-purpose fuse byte.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note A write operation can only clear bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_write_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value);
-
-/*! \brief Writes all general-purpose fuses.
- *
- * \param value The value of all general-purpose fuses as a word.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note A write operation can only clear bits.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_write_all_gp_fuses(U64 value);
-
-/*! \brief Sets a general-purpose fuse bit with the appropriate erase and write
- * operations.
- *
- * \param gp_fuse_bit The general-purpose fuse bit: \c 0 to \c 63.
- * \param value The value of the specified general-purpose fuse bit.
- *
- * \warning A Lock Error is issued if the Security bit is active and the command
- * is applied to BOOTPROT or EPFL fuses.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_set_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value);
-
-/*! \brief Sets a general-purpose fuse bit-field with the appropriate erase and
- * write operations.
- *
- * \param pos The bit-position of the general-purpose fuse bit-field: \c 0 to
- * \c 63.
- * \param width The bit-width of the general-purpose fuse bit-field: \c 0 to
- * \c 64.
- * \param value The value of the specified general-purpose fuse bit-field.
- *
- * \warning A Lock Error is issued if the Security bit is active and the command
- * is applied to BOOTPROT or EPFL fuses.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_set_gp_fuse_bitfield(unsigned int pos, unsigned int width, U64 value);
-
-/*! \brief Sets a general-purpose fuse byte with the appropriate erase and write
- * operations.
- *
- * \param gp_fuse_byte The general-purpose fuse byte: \c 0 to \c 7.
- * \param value The value of the specified general-purpose fuse byte.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_set_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value);
-
-/*! \brief Sets all general-purpose fuses with the appropriate erase and write
- * operations.
- *
- * \param value The value of all general-purpose fuses as a word.
- *
- * \warning A Lock Error is issued if the Security bit is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note The actual number of general-purpose fuse bits implemented by hardware
- * is given by \c AVR32_FLASHC_GPF_NUM. The other bits among the 64 are
- * fixed at 1 by hardware.
- */
-extern void flashc_set_all_gp_fuses(U64 value);
-
-//! @}
-
-
-/*! \name Access to Flash Pages
- */
-//! @{
-
-/*! \brief Clears the page buffer.
- *
- * This command resets all bits in the page buffer to one. Write accesses to the
- * page buffer can only change page buffer bits from one to zero.
- *
- * \warning The page buffer is not automatically reset after a page write.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern void flashc_clear_page_buffer(void);
-
-/*! \brief Tells whether the page to which the last Quick Page Read or Quick
- * Page Read User Page command was applied was erased.
- *
- * \return Whether the page to which the last Quick Page Read or Quick Page Read
- * User Page command was applied was erased.
- */
-extern Bool flashc_is_page_erased(void);
-
-/*! \brief Applies the Quick Page Read command to a page.
- *
- * \param page_number The page number:
- * \arg \c 0 to <tt>(flashc_get_page_count() - 1)</tt>: a page number within
- * the flash array;
- * \arg <tt>< 0</tt>: the current page number.
- *
- * \return Whether the specified page is erased.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern Bool flashc_quick_page_read(int page_number);
-
-/*! \brief Erases a page.
- *
- * \param page_number The page number:
- * \arg \c 0 to <tt>(flashc_get_page_count() - 1)</tt>: a page number within
- * the flash array;
- * \arg <tt>< 0</tt>: the current page number.
- * \param check Whether to check erase: \c TRUE or \c FALSE.
- *
- * \return Whether the erase succeeded or always \c TRUE if erase check was not
- * requested.
- *
- * \warning A Lock Error is issued if the command is applied to a page belonging
- * to a locked region or to the bootloader protected area.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- */
-extern Bool flashc_erase_page(int page_number, Bool check);
-
-/*! \brief Erases all pages within the flash array.
- *
- * \param check Whether to check erase: \c TRUE or \c FALSE.
- *
- * \return Whether the erase succeeded or always \c TRUE if erase check was not
- * requested.
- *
- * \warning A Lock Error is issued if at least one region is locked or the
- * bootloader protection is active.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- */
-extern Bool flashc_erase_all_pages(Bool check);
-
-/*! \brief Writes a page from the page buffer.
- *
- * \param page_number The page number:
- * \arg \c 0 to <tt>(flashc_get_page_count() - 1)</tt>: a page number within
- * the flash array;
- * \arg <tt>< 0</tt>: the current page number.
- *
- * \warning A Lock Error is issued if the command is applied to a page belonging
- * to a locked region or to the bootloader protected area.
- *
- * \warning The page buffer is not automatically reset after a page write.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note A write operation can only clear bits.
- */
-extern void flashc_write_page(int page_number);
-
-/*! \brief Issues a Quick Page Read User Page command to the FLASHC.
- *
- * \return Whether the User page is erased.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern Bool flashc_quick_user_page_read(void);
-
-/*! \brief Erases the User page.
- *
- * \param check Whether to check erase: \c TRUE or \c FALSE.
- *
- * \return Whether the erase succeeded or always \c TRUE if erase check was not
- * requested.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note An erase operation can only set bits.
- */
-extern Bool flashc_erase_user_page(Bool check);
-
-/*! \brief Writes the User page from the page buffer.
- *
- * \warning The page buffer is not automatically reset after a page write.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- *
- * \note A write operation can only clear bits.
- */
-extern void flashc_write_user_page(void);
-
-/*! \brief Copies \a nbytes bytes to the flash destination pointed to by \a dst
- * from the repeated \a src source byte.
- *
- * The destination areas that are not within the flash array or the User page
- * are ignored.
- *
- * All pointer and size alignments are supported.
- *
- * \param dst Pointer to flash destination.
- * \param src Source byte.
- * \param nbytes Number of bytes to set.
- * \param erase Whether to erase before writing: \c TRUE or \c FALSE.
- *
- * \return The value of \a dst.
- *
- * \warning This function may be called with \a erase set to \c FALSE only if
- * the destination consists only of erased words, i.e. this function
- * can not be used to write only one bit of a previously written word.
- * E.g., if \c 0x00000001 then \c 0xFFFFFFFE are written to a word, the
- * resulting value in flash may be different from \c 0x00000000.
- *
- * \warning A Lock Error is issued if the command is applied to pages belonging
- * to a locked region or to the bootloader protected area.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern volatile void *flashc_memset8(volatile void *dst, U8 src, size_t nbytes, Bool erase);
-
-/*! \brief Copies \a nbytes bytes to the flash destination pointed to by \a dst
- * from the repeated \a src big-endian source half-word.
- *
- * The destination areas that are not within the flash array or the User page
- * are ignored.
- *
- * All pointer and size alignments are supported.
- *
- * \param dst Pointer to flash destination.
- * \param src Source half-word.
- * \param nbytes Number of bytes to set.
- * \param erase Whether to erase before writing: \c TRUE or \c FALSE.
- *
- * \return The value of \a dst.
- *
- * \warning This function may be called with \a erase set to \c FALSE only if
- * the destination consists only of erased words, i.e. this function
- * can not be used to write only one bit of a previously written word.
- * E.g., if \c 0x00000001 then \c 0xFFFFFFFE are written to a word, the
- * resulting value in flash may be different from \c 0x00000000.
- *
- * \warning A Lock Error is issued if the command is applied to pages belonging
- * to a locked region or to the bootloader protected area.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern volatile void *flashc_memset16(volatile void *dst, U16 src, size_t nbytes, Bool erase);
-
-/*! \brief Copies \a nbytes bytes to the flash destination pointed to by \a dst
- * from the repeated \a src big-endian source word.
- *
- * The destination areas that are not within the flash array or the User page
- * are ignored.
- *
- * All pointer and size alignments are supported.
- *
- * \param dst Pointer to flash destination.
- * \param src Source word.
- * \param nbytes Number of bytes to set.
- * \param erase Whether to erase before writing: \c TRUE or \c FALSE.
- *
- * \return The value of \a dst.
- *
- * \warning This function may be called with \a erase set to \c FALSE only if
- * the destination consists only of erased words, i.e. this function
- * can not be used to write only one bit of a previously written word.
- * E.g., if \c 0x00000001 then \c 0xFFFFFFFE are written to a word, the
- * resulting value in flash may be different from \c 0x00000000.
- *
- * \warning A Lock Error is issued if the command is applied to pages belonging
- * to a locked region or to the bootloader protected area.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern volatile void *flashc_memset32(volatile void *dst, U32 src, size_t nbytes, Bool erase);
-
-/*! \brief Copies \a nbytes bytes to the flash destination pointed to by \a dst
- * from the repeated \a src big-endian source double-word.
- *
- * The destination areas that are not within the flash array or the User page
- * are ignored.
- *
- * All pointer and size alignments are supported.
- *
- * \param dst Pointer to flash destination.
- * \param src Source double-word.
- * \param nbytes Number of bytes to set.
- * \param erase Whether to erase before writing: \c TRUE or \c FALSE.
- *
- * \return The value of \a dst.
- *
- * \warning This function may be called with \a erase set to \c FALSE only if
- * the destination consists only of erased words, i.e. this function
- * can not be used to write only one bit of a previously written word.
- * E.g., if \c 0x00000001 then \c 0xFFFFFFFE are written to a word, the
- * resulting value in flash may be different from \c 0x00000000.
- *
- * \warning A Lock Error is issued if the command is applied to pages belonging
- * to a locked region or to the bootloader protected area.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern volatile void *flashc_memset64(volatile void *dst, U64 src, size_t nbytes, Bool erase);
-
-/*! \brief Copies \a nbytes bytes to the flash destination pointed to by \a dst
- * from the repeated \a src big-endian source pattern.
- *
- * The destination areas that are not within the flash array or the User page
- * are ignored.
- *
- * All pointer and size alignments are supported.
- *
- * \param dst Pointer to flash destination.
- * \param src Source double-word.
- * \param src_width \a src width in bits: 8, 16, 32 or 64.
- * \param nbytes Number of bytes to set.
- * \param erase Whether to erase before writing: \c TRUE or \c FALSE.
- *
- * \return The value of \a dst.
- *
- * \warning This function may be called with \a erase set to \c FALSE only if
- * the destination consists only of erased words, i.e. this function
- * can not be used to write only one bit of a previously written word.
- * E.g., if \c 0x00000001 then \c 0xFFFFFFFE are written to a word, the
- * resulting value in flash may be different from \c 0x00000000.
- *
- * \warning A Lock Error is issued if the command is applied to pages belonging
- * to a locked region or to the bootloader protected area.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-#define flashc_memset(dst, src, src_width, nbytes, erase) \
- TPASTE2(flashc_memset, src_width)((dst), (src), (nbytes), (erase))
-
-/*! \brief Copies \a nbytes bytes to the flash destination pointed to by \a dst
- * from the source pointed to by \a src.
- *
- * The destination areas that are not within the flash array or the User page
- * are ignored.
- *
- * All pointer and size alignments are supported.
- *
- * \param dst Pointer to flash destination.
- * \param src Pointer to source data.
- * \param nbytes Number of bytes to copy.
- * \param erase Whether to erase before writing: \c TRUE or \c FALSE.
- *
- * \return The value of \a dst.
- *
- * \warning If copying takes place between areas that overlap, the behavior is
- * undefined.
- *
- * \warning This function may be called with \a erase set to \c FALSE only if
- * the destination consists only of erased words, i.e. this function
- * can not be used to write only one bit of a previously written word.
- * E.g., if \c 0x00000001 then \c 0xFFFFFFFE are written to a word, the
- * resulting value in flash may be different from \c 0x00000000.
- *
- * \warning A Lock Error is issued if the command is applied to pages belonging
- * to a locked region or to the bootloader protected area.
- *
- * \note The FLASHC error status returned by \ref flashc_is_lock_error and
- * \ref flashc_is_programming_error is updated.
- */
-extern volatile void *flashc_memcpy(volatile void *dst, const void *src, size_t nbytes, Bool erase);
-
-#if UC3C
-
-/*! \brief Depednding to the CPU frequency, set the wait states of flash read
- * accesses and enable or disable the High speed read mode.
- *
- * \param cpu_f_hz The CPU frequency
- */
-void flashc_set_flash_waitstate_and_readmode(unsigned long cpu_f_hz);
-#endif // UC3C device-specific implementation
-
-//! @}
-
-
-#endif // _FLASHC_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.c
deleted file mode 100644
index b6b83c7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.c
+++ /dev/null
@@ -1,458 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief GPIO driver for AVR32 UC3.
- *
- * This file defines a useful set of functions for the GPIO.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a GPIO module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "gpio.h"
-
-//! GPIO module instance.
-#define GPIO AVR32_GPIO
-
-
-/*! \name Peripheral Bus Interface
- */
-//! @{
-
-
-int gpio_enable_module(const gpio_map_t gpiomap, unsigned int size)
-{
- int status = GPIO_SUCCESS;
- unsigned int i;
-
- for (i = 0; i < size; i++)
- {
- status |= gpio_enable_module_pin(gpiomap->pin, gpiomap->function);
- gpiomap++;
- }
-
- return status;
-}
-
-
-int gpio_enable_module_pin(unsigned int pin, unsigned int function)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- // Enable the correct function.
- switch (function)
- {
- case 0: // A function.
- gpio_port->pmr0c = 1 << (pin & 0x1F);
- gpio_port->pmr1c = 1 << (pin & 0x1F);
-#if defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
- gpio_port->pmr2c = 1 << (pin & 0x1F);
-#endif
- break;
-
- case 1: // B function.
- gpio_port->pmr0s = 1 << (pin & 0x1F);
- gpio_port->pmr1c = 1 << (pin & 0x1F);
-#if defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
- gpio_port->pmr2c = 1 << (pin & 0x1F);
-#endif
- break;
-
- case 2: // C function.
- gpio_port->pmr0c = 1 << (pin & 0x1F);
- gpio_port->pmr1s = 1 << (pin & 0x1F);
-#if defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
- gpio_port->pmr2c = 1 << (pin & 0x1F);
-#endif
- break;
-
- case 3: // D function.
- gpio_port->pmr0s = 1 << (pin & 0x1F);
- gpio_port->pmr1s = 1 << (pin & 0x1F);
-#if defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
- gpio_port->pmr2c = 1 << (pin & 0x1F);
-#endif
- break;
-
-#if defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
- case 4: // E function.
- gpio_port->pmr0c = 1 << (pin & 0x1F);
- gpio_port->pmr1c = 1 << (pin & 0x1F);
- gpio_port->pmr2s = 1 << (pin & 0x1F);
- break;
-
- case 5: // F function.
- gpio_port->pmr0s = 1 << (pin & 0x1F);
- gpio_port->pmr1c = 1 << (pin & 0x1F);
- gpio_port->pmr2s = 1 << (pin & 0x1F);
- break;
-
- case 6: // G function.
- gpio_port->pmr0c = 1 << (pin & 0x1F);
- gpio_port->pmr1s = 1 << (pin & 0x1F);
- gpio_port->pmr2s = 1 << (pin & 0x1F);
- break;
-
- case 7: // H function.
- gpio_port->pmr0s = 1 << (pin & 0x1F);
- gpio_port->pmr1s = 1 << (pin & 0x1F);
- gpio_port->pmr2s = 1 << (pin & 0x1F);
- break;
-#endif
-
- default:
- return GPIO_INVALID_ARGUMENT;
- }
-
- // Disable GPIO control.
- gpio_port->gperc = 1 << (pin & 0x1F);
-
- return GPIO_SUCCESS;
-}
-
-
-void gpio_enable_gpio(const gpio_map_t gpiomap, unsigned int size)
-{
- unsigned int i;
-
- for (i = 0; i < size; i++)
- {
- gpio_enable_gpio_pin(gpiomap->pin);
- gpiomap++;
- }
-}
-
-
-void gpio_enable_gpio_pin(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->oderc = 1 << (pin & 0x1F);
- gpio_port->gpers = 1 << (pin & 0x1F);
-}
-
-
-// The open-drain mode is not synthesized on the current AVR32 products.
-// If one day some AVR32 products have this feature, the corresponding part
-// numbers should be listed in the #if below.
-// Note that other functions are available in this driver to use pins with open
-// drain in GPIO mode. The advantage of the open-drain mode functions over these
-// other functions is that they can be used not only in GPIO mode but also in
-// module mode.
-#if 0
-
-
-void gpio_enable_pin_open_drain(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->odmers = 1 << (pin & 0x1F);
-}
-
-
-void gpio_disable_pin_open_drain(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->odmerc = 1 << (pin & 0x1F);
-}
-
-
-#endif
-
-
-void gpio_enable_pin_pull_up(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->puers = 1 << (pin & 0x1F);
-#if defined(AVR32_GPIO_200_H_INCLUDED) || defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
- gpio_port->pderc = 1 << (pin & 0x1F);
-#endif
-}
-
-
-void gpio_disable_pin_pull_up(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->puerc = 1 << (pin & 0x1F);
-}
-
-#if defined(AVR32_GPIO_200_H_INCLUDED) || defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
-// Added support of Pull-up Resistor, Pull-down Resistor and Buskeeper Control.
-
-/*! \brief Enables the pull-down resistor of a pin.
- *
- * \param pin The pin number.
- */
-void gpio_enable_pin_pull_down(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->puerc = 1 << (pin & 0x1F);
- gpio_port->pders = 1 << (pin & 0x1F);
-}
-
-/*! \brief Disables the pull-down resistor of a pin.
- *
- * \param pin The pin number.
- */
-void gpio_disable_pin_pull_down(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->pderc = 1 << (pin & 0x1F);
-}
-
-/*! \brief Enables the buskeeper functionality on a pin.
- *
- * \param pin The pin number.
- */
-void gpio_enable_pin_buskeeper(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->puers = 1 << (pin & 0x1F);
- gpio_port->pders = 1 << (pin & 0x1F);
-}
-
-/*! \brief Disables the buskeeper functionality on a pin.
- *
- * \param pin The pin number.
- */
-void gpio_disable_pin_buskeeper(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->puerc = 1 << (pin & 0x1F);
- gpio_port->pderc = 1 << (pin & 0x1F);
-}
-
-#endif
-
-int gpio_get_pin_value(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- return (gpio_port->pvr >> (pin & 0x1F)) & 1;
-}
-
-
-int gpio_get_gpio_pin_output_value(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- return (gpio_port->ovr >> (pin & 0x1F)) & 1;
-}
-
-
-int gpio_get_gpio_open_drain_pin_output_value(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- return ((gpio_port->oder >> (pin & 0x1F)) & 1) ^ 1;
-}
-
-
-void gpio_set_gpio_pin(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- gpio_port->ovrs = 1 << (pin & 0x1F); // Value to be driven on the I/O line: 1.
- gpio_port->oders = 1 << (pin & 0x1F); // The GPIO output driver is enabled for that pin.
- gpio_port->gpers = 1 << (pin & 0x1F); // The GPIO module controls that pin.
-}
-
-
-void gpio_clr_gpio_pin(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- gpio_port->ovrc = 1 << (pin & 0x1F); // Value to be driven on the I/O line: 0.
- gpio_port->oders = 1 << (pin & 0x1F); // The GPIO output driver is enabled for that pin.
- gpio_port->gpers = 1 << (pin & 0x1F); // The GPIO module controls that pin.
-}
-
-
-void gpio_tgl_gpio_pin(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- gpio_port->ovrt = 1 << (pin & 0x1F); // Toggle the I/O line.
- gpio_port->oders = 1 << (pin & 0x1F); // The GPIO output driver is enabled for that pin.
- gpio_port->gpers = 1 << (pin & 0x1F); // The GPIO module controls that pin.
-}
-
-
-void gpio_set_gpio_open_drain_pin(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- gpio_port->oderc = 1 << (pin & 0x1F); // The GPIO output driver is disabled for that pin.
- gpio_port->gpers = 1 << (pin & 0x1F); // The GPIO module controls that pin.
-}
-
-
-void gpio_clr_gpio_open_drain_pin(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- gpio_port->ovrc = 1 << (pin & 0x1F); // Value to be driven on the I/O line: 0.
- gpio_port->oders = 1 << (pin & 0x1F); // The GPIO output driver is enabled for that pin.
- gpio_port->gpers = 1 << (pin & 0x1F); // The GPIO module controls that pin.
-}
-
-
-void gpio_tgl_gpio_open_drain_pin(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- gpio_port->ovrc = 1 << (pin & 0x1F); // Value to be driven on the I/O line if the GPIO output driver is enabled: 0.
- gpio_port->odert = 1 << (pin & 0x1F); // The GPIO output driver is toggled for that pin.
- gpio_port->gpers = 1 << (pin & 0x1F); // The GPIO module controls that pin.
-}
-
-
-void gpio_enable_pin_glitch_filter(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->gfers = 1 << (pin & 0x1F);
-}
-
-
-void gpio_disable_pin_glitch_filter(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->gferc = 1 << (pin & 0x1F);
-}
-
-/*! \brief Configure the edge detector of an input pin
- *
- * \param pin The pin number.
- * \param mode The edge detection mode (\ref GPIO_PIN_CHANGE, \ref GPIO_RISING_EDGE
- * or \ref GPIO_FALLING_EDGE).
- *
- * \return \ref GPIO_SUCCESS or \ref GPIO_INVALID_ARGUMENT.
- */
-static int gpio_configure_edge_detector(unsigned int pin, unsigned int mode)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- // Configure the edge detector.
- switch (mode)
- {
- case GPIO_PIN_CHANGE:
- gpio_port->imr0c = 1 << (pin & 0x1F);
- gpio_port->imr1c = 1 << (pin & 0x1F);
- break;
-
- case GPIO_RISING_EDGE:
- gpio_port->imr0s = 1 << (pin & 0x1F);
- gpio_port->imr1c = 1 << (pin & 0x1F);
- break;
-
- case GPIO_FALLING_EDGE:
- gpio_port->imr0c = 1 << (pin & 0x1F);
- gpio_port->imr1s = 1 << (pin & 0x1F);
- break;
-
- default:
- return GPIO_INVALID_ARGUMENT;
- }
-
- return GPIO_SUCCESS;
-}
-
-
-int gpio_enable_pin_interrupt(unsigned int pin, unsigned int mode)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- // Enable the glitch filter.
- gpio_port->gfers = 1 << (pin & 0x1F);
-
- // Configure the edge detector.
- if(GPIO_INVALID_ARGUMENT == gpio_configure_edge_detector(pin, mode))
- return(GPIO_INVALID_ARGUMENT);
-
- // Enable interrupt.
- gpio_port->iers = 1 << (pin & 0x1F);
-
- return GPIO_SUCCESS;
-}
-
-
-void gpio_disable_pin_interrupt(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->ierc = 1 << (pin & 0x1F);
-}
-
-
-int gpio_get_pin_interrupt_flag(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- return (gpio_port->ifr >> (pin & 0x1F)) & 1;
-}
-
-
-void gpio_clear_pin_interrupt_flag(unsigned int pin)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
- gpio_port->ifrc = 1 << (pin & 0x1F);
-}
-
-
-//#
-//# Peripheral Event System Support.
-//#
-#if UC3L
-int gpio_configure_pin_periph_event_mode(unsigned int pin, unsigned int mode, unsigned int use_igf)
-{
- volatile avr32_gpio_port_t *gpio_port = &GPIO.port[pin >> 5];
-
- if(TRUE == use_igf)
- {
- // Enable the glitch filter.
- gpio_port->gfers = 1 << (pin & 0x1F);
- }
- else
- {
- // Disable the glitch filter.
- gpio_port->gferc = 1 << (pin & 0x1F);
- }
-
- // Configure the edge detector.
- return(gpio_configure_edge_detector(pin, mode));
-}
-
-#endif
-
-//! @}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h
deleted file mode 100644
index f0b5fd8..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h
+++ /dev/null
@@ -1,583 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief GPIO header for AVR32 UC3.
- *
- * This file contains basic GPIO driver functions.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a GPIO module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _GPIO_H_
-#define _GPIO_H_
-
-#include <avr32/io.h>
-#include "compiler.h"
-
-/*! \name Return Values of the GPIO API
- */
-//! @{
-#define GPIO_SUCCESS 0 //!< Function successfully completed.
-#define GPIO_INVALID_ARGUMENT 1 //!< Input parameters are out of range.
-//! @}
-
-
-/*! \name Interrupt Trigger Modes
- */
-//! @{
-#define GPIO_PIN_CHANGE 0 //!< Interrupt triggered upon pin change.
-#define GPIO_RISING_EDGE 1 //!< Interrupt triggered upon rising edge.
-#define GPIO_FALLING_EDGE 2 //!< Interrupt triggered upon falling edge.
-//! @}
-
-
-//! A type definition of pins and modules connectivity.
-typedef struct
-{
- unsigned char pin; //!< Module pin.
- unsigned char function; //!< Module function.
-} gpio_map_t[];
-
-
-/*! \name Peripheral Bus Interface
- *
- * Low-speed interface with a non-deterministic number of clock cycles per
- * access.
- *
- * This interface operates with lower clock frequencies (fPB <= fCPU), and its
- * timing is not deterministic since it needs to access a shared bus which may
- * be heavily loaded.
- *
- * \note This interface is immediately available without initialization.
- */
-//! @{
-
-/*! \brief Enables specific module modes for a set of pins.
- *
- * \param gpiomap The pin map.
- * \param size The number of pins in \a gpiomap.
- *
- * \return \ref GPIO_SUCCESS or \ref GPIO_INVALID_ARGUMENT.
- */
-extern int gpio_enable_module(const gpio_map_t gpiomap, unsigned int size);
-
-/*! \brief Enables a specific module mode for a pin.
- *
- * \param pin The pin number.\n
- * Refer to the product header file `uc3x.h' (where x is the part
- * number; e.g. x = a0512) for module pins. E.g., to enable a PWM
- * channel output, the pin number can be AVR32_PWM_3_PIN for PWM
- * channel 3.
- * \param function The pin function.\n
- * Refer to the product header file `uc3x.h' (where x is the
- * part number; e.g. x = a0512) for module pin functions. E.g.,
- * to enable a PWM channel output, the pin function can be
- * AVR32_PWM_3_FUNCTION for PWM channel 3.
- *
- * \return \ref GPIO_SUCCESS or \ref GPIO_INVALID_ARGUMENT.
- */
-extern int gpio_enable_module_pin(unsigned int pin, unsigned int function);
-
-/*! \brief Enables the GPIO mode of a set of pins.
- *
- * \param gpiomap The pin map.
- * \param size The number of pins in \a gpiomap.
- */
-extern void gpio_enable_gpio(const gpio_map_t gpiomap, unsigned int size);
-
-/*! \brief Enables the GPIO mode of a pin.
- *
- * \param pin The pin number.\n
- * Refer to the product header file `uc3x.h' (where x is the part
- * number; e.g. x = a0512) for pin definitions. E.g., to enable the
- * GPIO mode of PX21, AVR32_PIN_PX21 can be used. Module pins such as
- * AVR32_PWM_3_PIN for PWM channel 3 can also be used to release
- * module pins for GPIO.
- */
-extern void gpio_enable_gpio_pin(unsigned int pin);
-
-// The open-drain mode is not synthesized on the current AVR32 products.
-// If one day some AVR32 products have this feature, the corresponding part
-// numbers should be listed in the #if below.
-// Note that other functions are available in this driver to use pins with open
-// drain in GPIO mode. The advantage of the open-drain mode functions over these
-// other functions is that they can be used not only in GPIO mode but also in
-// module mode.
-#if 0
-
-/*! \brief Enables the open-drain mode of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_enable_pin_open_drain(unsigned int pin);
-
-/*! \brief Disables the open-drain mode of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_disable_pin_open_drain(unsigned int pin);
-
-#endif
-
-/*! \brief Enables the pull-up resistor of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_enable_pin_pull_up(unsigned int pin);
-
-/*! \brief Disables the pull-up resistor of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_disable_pin_pull_up(unsigned int pin);
-
-#if defined(AVR32_GPIO_200_H_INCLUDED) || defined(AVR32_GPIO_210_H_INCLUDED) || defined(AVR32_GPIO_211_H_INCLUDED)
-// Added support of Pull-up Resistor, Pull-down Resistor and Buskeeper Control.
-
-/*! \brief Enables the pull-down resistor of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_enable_pin_pull_down(unsigned int pin);
-
-/*! \brief Disables the pull-down resistor of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_disable_pin_pull_down(unsigned int pin);
-
-/*! \brief Enables the buskeeper functionality on a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_enable_pin_buskeeper(unsigned int pin);
-
-/*! \brief Disables the buskeeper functionality on a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_disable_pin_buskeeper(unsigned int pin);
-
-#endif
-
-/*! \brief Returns the value of a pin.
- *
- * \param pin The pin number.
- *
- * \return The pin value.
- */
-extern int gpio_get_pin_value(unsigned int pin);
-
-/*! \brief Returns the output value set for a GPIO pin.
- *
- * \param pin The pin number.
- *
- * \return The pin output value.
- *
- * \note This function must be used in conjunction with \ref gpio_set_gpio_pin,
- * \ref gpio_clr_gpio_pin and \ref gpio_tgl_gpio_pin.
- */
-extern int gpio_get_gpio_pin_output_value(unsigned int pin);
-
-/*! \brief Returns the output value set for a GPIO pin using open drain.
- *
- * \param pin The pin number.
- *
- * \return The pin output value.
- *
- * \note This function must be used in conjunction with
- * \ref gpio_set_gpio_open_drain_pin, \ref gpio_clr_gpio_open_drain_pin
- * and \ref gpio_tgl_gpio_open_drain_pin.
- */
-extern int gpio_get_gpio_open_drain_pin_output_value(unsigned int pin);
-
-/*! \brief Drives a GPIO pin to 1.
- *
- * \param pin The pin number.
- */
-extern void gpio_set_gpio_pin(unsigned int pin);
-
-/*! \brief Drives a GPIO pin to 0.
- *
- * \param pin The pin number.
- */
-extern void gpio_clr_gpio_pin(unsigned int pin);
-
-/*! \brief Toggles a GPIO pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_tgl_gpio_pin(unsigned int pin);
-
-/*! \brief Drives a GPIO pin to 1 using open drain.
- *
- * \param pin The pin number.
- */
-extern void gpio_set_gpio_open_drain_pin(unsigned int pin);
-
-/*! \brief Drives a GPIO pin to 0 using open drain.
- *
- * \param pin The pin number.
- */
-extern void gpio_clr_gpio_open_drain_pin(unsigned int pin);
-
-/*! \brief Toggles a GPIO pin using open drain.
- *
- * \param pin The pin number.
- */
-extern void gpio_tgl_gpio_open_drain_pin(unsigned int pin);
-
-/*! \brief Enables the glitch filter of a pin.
- *
- * When the glitch filter is enabled, a glitch with duration of less than 1
- * clock cycle is automatically rejected, while a pulse with duration of 2 clock
- * cycles or more is accepted. For pulse durations between 1 clock cycle and 2
- * clock cycles, the pulse may or may not be taken into account, depending on
- * the precise timing of its occurrence. Thus for a pulse to be guaranteed
- * visible it must exceed 2 clock cycles, whereas for a glitch to be reliably
- * filtered out, its duration must not exceed 1 clock cycle. The filter
- * introduces 2 clock cycles latency.
- *
- * \param pin The pin number.
- */
-extern void gpio_enable_pin_glitch_filter(unsigned int pin);
-
-/*! \brief Disables the glitch filter of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_disable_pin_glitch_filter(unsigned int pin);
-
-/*! \brief Enables the interrupt of a pin with the specified settings.
- *
- * \param pin The pin number.
- * \param mode The trigger mode (\ref GPIO_PIN_CHANGE, \ref GPIO_RISING_EDGE or
- * \ref GPIO_FALLING_EDGE).
- *
- * \return \ref GPIO_SUCCESS or \ref GPIO_INVALID_ARGUMENT.
- */
-extern int gpio_enable_pin_interrupt(unsigned int pin, unsigned int mode);
-
-/*! \brief Disables the interrupt of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_disable_pin_interrupt(unsigned int pin);
-
-/*! \brief Gets the interrupt flag of a pin.
- *
- * \param pin The pin number.
- *
- * \return The pin interrupt flag.
- */
-extern int gpio_get_pin_interrupt_flag(unsigned int pin);
-
-/*! \brief Clears the interrupt flag of a pin.
- *
- * \param pin The pin number.
- */
-extern void gpio_clear_pin_interrupt_flag(unsigned int pin);
-
-//! @}
-
-
-#if (defined AVR32_GPIO_LOCAL_ADDRESS)
-/*! \name Local Bus Interface
- *
- * High-speed interface with only one clock cycle per access.
- *
- * This interface operates with high clock frequency (fCPU), and its timing is
- * deterministic since it does not need to access a shared bus which may be
- * heavily loaded.
- *
- * \warning To use this interface, the clock frequency of the peripheral bus on
- * which the GPIO peripheral is connected must be set to the CPU clock
- * frequency (fPB = fCPU).
- *
- * \note This interface has to be initialized in order to be available.
- */
-//! @{
-
-/*! \brief Enables the local bus interface for GPIO.
- *
- * \note This function must have been called at least once before using other
- * functions in this interface.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_init(void)
-{
- Set_system_register(AVR32_CPUCR,
- Get_system_register(AVR32_CPUCR) | AVR32_CPUCR_LOCEN_MASK);
-}
-
-/*! \brief Enables the output driver of a pin.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init must have been called beforehand.
- *
- * \note This function does not enable the GPIO mode of the pin.
- * \ref gpio_enable_gpio_pin can be called for this purpose.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_enable_pin_output_driver(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].oders = 1 << (pin & 0x1F);
-}
-
-/*! \brief Disables the output driver of a pin.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init must have been called beforehand.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_disable_pin_output_driver(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].oderc = 1 << (pin & 0x1F);
-}
-
-/*! \brief Returns the value of a pin.
- *
- * \param pin The pin number.
- *
- * \return The pin value.
- *
- * \note \ref gpio_local_init must have been called beforehand.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int gpio_local_get_pin_value(unsigned int pin)
-{
- return (AVR32_GPIO_LOCAL.port[pin >> 5].pvr >> (pin & 0x1F)) & 1;
-}
-
-/*! \brief Drives a GPIO pin to 1.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init must have been called beforehand.
- *
- * \note This function does not enable the GPIO mode of the pin nor its output
- * driver. \ref gpio_enable_gpio_pin and
- * \ref gpio_local_enable_pin_output_driver can be called for this
- * purpose.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_set_gpio_pin(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].ovrs = 1 << (pin & 0x1F);
-}
-
-/*! \brief Drives a GPIO pin to 0.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init must have been called beforehand.
- *
- * \note This function does not enable the GPIO mode of the pin nor its output
- * driver. \ref gpio_enable_gpio_pin and
- * \ref gpio_local_enable_pin_output_driver can be called for this
- * purpose.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_clr_gpio_pin(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].ovrc = 1 << (pin & 0x1F);
-}
-
-/*! \brief Toggles a GPIO pin.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init must have been called beforehand.
- *
- * \note This function does not enable the GPIO mode of the pin nor its output
- * driver. \ref gpio_enable_gpio_pin and
- * \ref gpio_local_enable_pin_output_driver can be called for this
- * purpose.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_tgl_gpio_pin(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].ovrt = 1 << (pin & 0x1F);
-}
-
-/*! \brief Initializes the configuration of a GPIO pin so that it can be used
- * with GPIO open-drain functions.
- *
- * \note This function must have been called at least once before using
- * \ref gpio_local_set_gpio_open_drain_pin,
- * \ref gpio_local_clr_gpio_open_drain_pin or
- * \ref gpio_local_tgl_gpio_open_drain_pin.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_init_gpio_open_drain_pin(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].ovrc = 1 << (pin & 0x1F);
-}
-
-/*! \brief Drives a GPIO pin to 1 using open drain.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init and \ref gpio_local_init_gpio_open_drain_pin must
- * have been called beforehand.
- *
- * \note This function does not enable the GPIO mode of the pin.
- * \ref gpio_enable_gpio_pin can be called for this purpose.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_set_gpio_open_drain_pin(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].oderc = 1 << (pin & 0x1F);
-}
-
-/*! \brief Drives a GPIO pin to 0 using open drain.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init and \ref gpio_local_init_gpio_open_drain_pin must
- * have been called beforehand.
- *
- * \note This function does not enable the GPIO mode of the pin.
- * \ref gpio_enable_gpio_pin can be called for this purpose.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_clr_gpio_open_drain_pin(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].oders = 1 << (pin & 0x1F);
-}
-
-/*! \brief Toggles a GPIO pin using open drain.
- *
- * \param pin The pin number.
- *
- * \note \ref gpio_local_init and \ref gpio_local_init_gpio_open_drain_pin must
- * have been called beforehand.
- *
- * \note This function does not enable the GPIO mode of the pin.
- * \ref gpio_enable_gpio_pin can be called for this purpose.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_local_tgl_gpio_open_drain_pin(unsigned int pin)
-{
- AVR32_GPIO_LOCAL.port[pin >> 5].odert = 1 << (pin & 0x1F);
-}
-
-//! @}
-#endif // AVR32_GPIO_LOCAL_ADDRESS
-
-#if UC3L
-//! @{
-/*! \name Peripheral Event System support
- *
- * The GPIO can be programmed to output peripheral events whenever an interrupt
- * condition is detected, such as pin value change, or only when a rising or
- * falling edge is detected.
- *
- */
-
-/*! \brief Enables the peripheral event generation of a pin.
- *
- * \param pin The pin number.
- *
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_enable_pin_periph_event(unsigned int pin)
-{
- AVR32_GPIO.port[pin >> 5].oderc = 1 << (pin & 0x1F); // The GPIO output driver is disabled for that pin.
- AVR32_GPIO.port[pin >> 5].evers = 1 << (pin & 0x1F);
-}
-
-/*! \brief Disables the peripheral event generation of a pin.
- *
- * \param pin The pin number.
- *
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void gpio_disable_pin_periph_event(unsigned int pin)
-{
- AVR32_GPIO.port[pin >> 5].everc = 1 << (pin & 0x1F);
-}
-
-/*! \brief Configure the peripheral event trigger mode of a pin
- *
- * \param pin The pin number.
- * \param mode The trigger mode (\ref GPIO_PIN_CHANGE, \ref GPIO_RISING_EDGE or
- * \ref GPIO_FALLING_EDGE).
- * \param use_igf use the Input Glitch Filter (TRUE) or not (FALSE).
- *
- * \return \ref GPIO_SUCCESS or \ref GPIO_INVALID_ARGUMENT.
- */
-extern int gpio_configure_pin_periph_event_mode(unsigned int pin, unsigned int mode, unsigned int use_igf);
-
-//! @}
-#endif
-
-
-#endif // _GPIO_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/exception.x b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/exception.x
deleted file mode 100644
index ec4109d..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/exception.x
+++ /dev/null
@@ -1,239 +0,0 @@
-/* This file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Exception and interrupt vectors.
- *
- * This file maps all events supported by an AVR32.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an INTC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#if !__AVR32_UC__ && !__AVR32_AP__
- #error Implementation of the AVR32 architecture not supported by the INTC driver.
-#endif
-
-
-#include <avr32/io.h>
-
-
-//! @{
-//! \verbatim
-
-
- .section .exception, "ax", @progbits
-
-
-// Start of Exception Vector Table.
-
- // EVBA must be aligned with a power of two strictly greater than the EVBA-
- // relative offset of the last vector.
- .balign 0x200
-
- // Export symbol.
- .global _evba
- .type _evba, @function
-_evba:
-
- .org 0x000
- // Unrecoverable Exception.
-_handle_Unrecoverable_Exception:
- rjmp $
-
- .org 0x004
- // TLB Multiple Hit.
-_handle_TLB_Multiple_Hit:
- rjmp $
-
- .org 0x008
- // Bus Error Data Fetch.
-_handle_Bus_Error_Data_Fetch:
- rjmp $
-
- .org 0x00C
- // Bus Error Instruction Fetch.
-_handle_Bus_Error_Instruction_Fetch:
- rjmp $
-
- .org 0x010
- // NMI.
-_handle_NMI:
- rjmp $
-
- .org 0x014
- // Instruction Address.
-_handle_Instruction_Address:
- rjmp $
-
- .org 0x018
- // ITLB Protection.
-_handle_ITLB_Protection:
- rjmp $
-
- .org 0x01C
- // Breakpoint.
-_handle_Breakpoint:
- rjmp $
-
- .org 0x020
- // Illegal Opcode.
-_handle_Illegal_Opcode:
- rjmp $
-
- .org 0x024
- // Unimplemented Instruction.
-_handle_Unimplemented_Instruction:
- rjmp $
-
- .org 0x028
- // Privilege Violation.
-_handle_Privilege_Violation:
- rjmp $
-
- .org 0x02C
- // Floating-Point: UNUSED IN AVR32UC and AVR32AP.
-_handle_Floating_Point:
- rjmp $
-
- .org 0x030
- // Coprocessor Absent: UNUSED IN AVR32UC.
-_handle_Coprocessor_Absent:
- rjmp $
-
- .org 0x034
- // Data Address (Read).
-_handle_Data_Address_Read:
- rjmp $
-
- .org 0x038
- // Data Address (Write).
-_handle_Data_Address_Write:
- rjmp $
-
- .org 0x03C
- // DTLB Protection (Read).
-_handle_DTLB_Protection_Read:
- rjmp $
-
- .org 0x040
- // DTLB Protection (Write).
-_handle_DTLB_Protection_Write:
- rjmp $
-
- .org 0x044
- // DTLB Modified: UNUSED IN AVR32UC.
-_handle_DTLB_Modified:
- rjmp $
-
- .org 0x050
- // ITLB Miss.
-_handle_ITLB_Miss:
- rjmp $
-
- .org 0x060
- // DTLB Miss (Read).
-_handle_DTLB_Miss_Read:
- rjmp $
-
- .org 0x070
- // DTLB Miss (Write).
-_handle_DTLB_Miss_Write:
- rjmp $
-
- .org 0x100
- // Supervisor Call.
-_handle_Supervisor_Call:
- rjmp $
-
-
-// Interrupt support.
-// The interrupt controller must provide the offset address relative to EVBA.
-// Important note:
-// All interrupts call a C function named _get_interrupt_handler.
-// This function will read group and interrupt line number to then return in
-// R12 a pointer to a user-provided interrupt handler.
-
- .balign 4
-
- .irp priority, 0, 1, 2, 3
-_int\priority:
-#if __AVR32_UC__
- // R8-R12, LR, PC and SR are automatically pushed onto the system stack by the
- // CPU upon interrupt entry. No other register is saved by hardware.
-#elif __AVR32_AP__
- // PC and SR are automatically saved in respectively RAR_INTx and RSR_INTx by
- // the CPU upon interrupt entry. No other register is saved by hardware.
- pushm r8-r12, lr
-#endif
- mov r12, \priority // Pass the int_level parameter to the _get_interrupt_handler function.
- call _get_interrupt_handler
- cp.w r12, 0 // Get the pointer to the interrupt handler returned by the function.
-#if __AVR32_UC__
- movne pc, r12 // If this was not a spurious interrupt (R12 != NULL), jump to the handler.
-#elif __AVR32_AP__
- breq spint\priority // If this was a spurious interrupt (R12 == NULL), branch.
- st.w --sp, r12 // Push the pointer to the interrupt handler onto the system stack since no register may be altered.
- popm r8-r12, lr, pc // Restore registers and jump to the handler.
-spint\priority:
- popm r8-r12, lr
-#endif
- rete // If this was a spurious interrupt (R12 == NULL), return from event handler.
- .endr
-
-
-// Constant data area.
-
- .balign 4
-
- // Values to store in the interrupt priority registers for the various interrupt priority levels.
- // The interrupt priority registers contain the interrupt priority level and
- // the EVBA-relative interrupt vector offset.
- .global ipr_val
- .type ipr_val, @object
-ipr_val:
- .word (AVR32_INTC_INT0 << AVR32_INTC_IPR_INTLEVEL_OFFSET) | (_int0 - _evba),\
- (AVR32_INTC_INT1 << AVR32_INTC_IPR_INTLEVEL_OFFSET) | (_int1 - _evba),\
- (AVR32_INTC_INT2 << AVR32_INTC_IPR_INTLEVEL_OFFSET) | (_int2 - _evba),\
- (AVR32_INTC_INT3 << AVR32_INTC_IPR_INTLEVEL_OFFSET) | (_int3 - _evba)
-
-
-//! \endverbatim
-//! @}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.c
deleted file mode 100644
index 84d498d..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief INTC driver for AVR32 UC3.
- *
- * AVR32 Interrupt Controller driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an INTC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-#include "compiler.h"
-#include "preprocessor.h"
-#include "intc.h"
-
-// define _evba from exception.S
-extern void _evba;
-
-//! Values to store in the interrupt priority registers for the various interrupt priority levels.
-extern const unsigned int ipr_val[AVR32_INTC_NUM_INT_LEVELS];
-
-//! Creates a table of interrupt line handlers per interrupt group in order to optimize RAM space.
-//! Each line handler table contains a set of pointers to interrupt handlers.
-#if (defined __GNUC__)
-#define DECL_INT_LINE_HANDLER_TABLE(GRP, unused) \
-static volatile __int_handler _int_line_handler_table_##GRP[Max(AVR32_INTC_NUM_IRQS_PER_GRP##GRP, 1)];
-#elif (defined __ICCAVR32__)
-#define DECL_INT_LINE_HANDLER_TABLE(GRP, unused) \
-static volatile __no_init __int_handler _int_line_handler_table_##GRP[Max(AVR32_INTC_NUM_IRQS_PER_GRP##GRP, 1)];
-#endif
-MREPEAT(AVR32_INTC_NUM_INT_GRPS, DECL_INT_LINE_HANDLER_TABLE, ~);
-#undef DECL_INT_LINE_HANDLER_TABLE
-
-//! Table containing for each interrupt group the number of interrupt request
-//! lines and a pointer to the table of interrupt line handlers.
-static const struct
-{
- unsigned int num_irqs;
- volatile __int_handler *_int_line_handler_table;
-} _int_handler_table[AVR32_INTC_NUM_INT_GRPS] =
-{
-#define INSERT_INT_LINE_HANDLER_TABLE(GRP, unused) \
- {AVR32_INTC_NUM_IRQS_PER_GRP##GRP, _int_line_handler_table_##GRP},
- MREPEAT(AVR32_INTC_NUM_INT_GRPS, INSERT_INT_LINE_HANDLER_TABLE, ~)
-#undef INSERT_INT_LINE_HANDLER_TABLE
-};
-
-
-/*! \brief Default interrupt handler.
- *
- * \note Taken and adapted from Newlib.
- */
-#if (defined __GNUC__)
-__attribute__((__interrupt__))
-#elif (defined __ICCAVR32__)
-__interrupt
-#endif
-static void _unhandled_interrupt(void)
-{
- // Catch unregistered interrupts.
- while (TRUE);
-}
-
-
-/*! \brief Gets the interrupt handler of the current event at the \a int_level
- * interrupt priority level (called from exception.S).
- *
- * \param int_level Interrupt priority level to handle.
- *
- * \return Interrupt handler to execute.
- *
- * \note Taken and adapted from Newlib.
- */
-__int_handler _get_interrupt_handler(unsigned int int_level)
-{
- // ICR3 is mapped first, ICR0 last.
- // Code in exception.S puts int_level in R12 which is used by AVR32-GCC to
- // pass a single argument to a function.
- unsigned int int_grp = AVR32_INTC.icr[AVR32_INTC_INT3 - int_level];
- unsigned int int_req = AVR32_INTC.irr[int_grp];
-
- // As an interrupt may disappear while it is being fetched by the CPU
- // (spurious interrupt caused by a delayed response from an MCU peripheral to
- // an interrupt flag clear or interrupt disable instruction), check if there
- // are remaining interrupt lines to process.
- // If a spurious interrupt occurs, the status register (SR) contains an
- // execution mode and interrupt level masks corresponding to a level 0
- // interrupt, whatever the interrupt priority level causing the spurious
- // event. This behavior has been chosen because a spurious interrupt has not
- // to be a priority one and because it may not cause any trouble to other
- // interrupts.
- // However, these spurious interrupts place the hardware in an unstable state
- // and could give problems in other/future versions of the CPU, so the
- // software has to be written so that they never occur. The only safe way of
- // achieving this is to always clear or disable peripheral interrupts with the
- // following sequence:
- // 1: Mask the interrupt in the CPU by setting GM (or IxM) in SR.
- // 2: Perform the bus access to the peripheral register that clears or
- // disables the interrupt.
- // 3: Wait until the interrupt has actually been cleared or disabled by the
- // peripheral. This is usually performed by reading from a register in the
- // same peripheral (it DOES NOT have to be the same register that was
- // accessed in step 2, but it MUST be in the same peripheral), what takes
- // bus system latencies into account, but peripheral internal latencies
- // (generally 0 cycle) also have to be considered.
- // 4: Unmask the interrupt in the CPU by clearing GM (or IxM) in SR.
- // Note that steps 1 and 4 are useless inside interrupt handlers as the
- // corresponding interrupt level is automatically masked by IxM (unless IxM is
- // explicitly cleared by the software).
- //
- // Get the right IRQ handler.
- //
- // If several interrupt lines are active in the group, the interrupt line with
- // the highest number is selected. This is to be coherent with the
- // prioritization of interrupt groups performed by the hardware interrupt
- // controller.
- //
- // If no handler has been registered for the pending interrupt,
- // _unhandled_interrupt will be selected thanks to the initialization of
- // _int_line_handler_table_x by INTC_init_interrupts.
- //
- // exception.S will provide the interrupt handler with a clean interrupt stack
- // frame, with nothing more pushed onto the stack. The interrupt handler must
- // manage the `rete' instruction, what can be done thanks to pure assembly,
- // inline assembly or the `__attribute__((__interrupt__))' C function
- // attribute.
- return (int_req) ? _int_handler_table[int_grp]._int_line_handler_table[32 - clz(int_req) - 1] : NULL;
-}
-
-//! Init EVBA address. This sequence might also be done in the UTILS/STARTUP/GCC/crt0.S
-static __inline__ void INTC_init_evba(void)
-{
- Set_system_register(AVR32_EVBA, (int)&_evba );
-}
-
-void INTC_init_interrupts(void)
-{
- unsigned int int_grp, int_req;
-
- INTC_init_evba();
-
- // For all interrupt groups,
- for (int_grp = 0; int_grp < AVR32_INTC_NUM_INT_GRPS; int_grp++)
- {
- // For all interrupt request lines of each group,
- for (int_req = 0; int_req < _int_handler_table[int_grp].num_irqs; int_req++)
- {
- // Assign _unhandled_interrupt as default interrupt handler.
- _int_handler_table[int_grp]._int_line_handler_table[int_req] = &_unhandled_interrupt;
- }
-
- // Set the interrupt group priority register to its default value.
- // By default, all interrupt groups are linked to the interrupt priority
- // level 0 and to the interrupt vector _int0.
- AVR32_INTC.ipr[int_grp] = ipr_val[AVR32_INTC_INT0];
- }
-}
-
-
-void INTC_register_interrupt(__int_handler handler, unsigned int irq, unsigned int int_level)
-{
- // Determine the group of the IRQ.
- unsigned int int_grp = irq / AVR32_INTC_MAX_NUM_IRQS_PER_GRP;
-
- // Store in _int_line_handler_table_x the pointer to the interrupt handler, so
- // that _get_interrupt_handler can retrieve it when the interrupt is vectored.
- _int_handler_table[int_grp]._int_line_handler_table[irq % AVR32_INTC_MAX_NUM_IRQS_PER_GRP] = handler;
-
- // Program the corresponding IPRX register to set the interrupt priority level
- // and the interrupt vector offset that will be fetched by the core interrupt
- // system.
- // NOTE: The _intx functions are intermediate assembly functions between the
- // core interrupt system and the user interrupt handler.
- AVR32_INTC.ipr[int_grp] = ipr_val[int_level & (AVR32_INTC_IPR_INTLEVEL_MASK >> AVR32_INTC_IPR_INTLEVEL_OFFSET)];
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.h
deleted file mode 100644
index 31a4fc1..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief INTC driver for AVR32 UC3.
- *
- * AVR32 Interrupt Controller driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an INTC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _INTC_H_
-#define _INTC_H_
-
-#include "compiler.h"
-
-
-//! Maximal number of interrupt request lines per group.
-#define AVR32_INTC_MAX_NUM_IRQS_PER_GRP 32
-
-//! Number of interrupt priority levels.
-#define AVR32_INTC_NUM_INT_LEVELS (1 << AVR32_INTC_IPR_INTLEVEL_SIZE)
-
-
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-
-//! Pointer to interrupt handler.
-#if (defined __GNUC__)
-typedef void (*__int_handler)(void);
-#elif (defined __ICCAVR32__)
-typedef void (__interrupt *__int_handler)(void);
-#endif
-
-
-/*! \brief Initializes the hardware interrupt controller driver.
- *
- * \note Taken and adapted from Newlib.
- */
-extern void INTC_init_interrupts(void);
-
-/*! \brief Registers an interrupt handler.
- *
- * \param handler Interrupt handler to register.
- * \param irq IRQ of the interrupt handler to register.
- * \param int_level Interrupt priority level to assign to the group of this IRQ.
- *
- * \warning The interrupt handler must manage the `rete' instruction, what can
- * be done thanks to pure assembly, inline assembly or the
- * `__attribute__((__interrupt__))' C function attribute.
- *
- * \warning If several interrupt handlers of a same group are registered with
- * different priority levels, only the latest priority level set will
- * be effective.
- *
- * \note Taken and adapted from Newlib.
- */
-extern void INTC_register_interrupt(__int_handler handler, unsigned int irq, unsigned int int_level);
-
-#endif // __AVR32_ABI_COMPILER__
-
-
-#endif // _INTC_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.c
deleted file mode 100644
index 6c00f9e..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief PDCA driver for AVR32 UC3.
- *
- * This file defines a useful set of functions for the PDCA interface on AVR32
- * devices.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a PDCA module.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "compiler.h"
-#include "pdca.h"
-
-
-volatile avr32_pdca_channel_t *pdca_get_handler(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = &AVR32_PDCA.channel[pdca_ch_number];
-
- if (pdca_ch_number >= AVR32_PDCA_CHANNEL_LENGTH)
- return (volatile avr32_pdca_channel_t *)PDCA_INVALID_ARGUMENT;
-
- return pdca_channel;
-}
-
-
-int pdca_init_channel(unsigned int pdca_ch_number, const pdca_channel_options_t *opt)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_disable_interrupt_transfer_complete(pdca_ch_number); // disable channel interrupt
- pdca_disable_interrupt_reload_counter_zero(pdca_ch_number); // disable channel interrupt
-
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- pdca_channel->mar = (unsigned long)opt->addr;
- pdca_channel->tcr = opt->size;
- pdca_channel->psr = opt->pid;
- pdca_channel->marr = (unsigned long)opt->r_addr;
- pdca_channel->tcrr = opt->r_size;
- pdca_channel->mr =
-#if (defined AVR32_PDCA_120_H_INCLUDED ) || (defined AVR32_PDCA_121_H_INCLUDED ) || (defined AVR32_PDCA_122_H_INCLUDED )
-opt->etrig << AVR32_PDCA_ETRIG_OFFSET |
-#endif // #ifdef AVR32_PDCA_120_H_INCLUDED
- opt->transfer_size << AVR32_PDCA_SIZE_OFFSET;
- pdca_channel->cr = AVR32_PDCA_ECLR_MASK;
- pdca_channel->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-
- return PDCA_SUCCESS;
-}
-
-
-unsigned int pdca_get_channel_status(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- return (pdca_channel->sr & AVR32_PDCA_TEN_MASK) != 0;
-}
-
-
-void pdca_disable(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- // Disable transfer
- pdca_channel->cr = AVR32_PDCA_TDIS_MASK;
-
-}
-
-
-void pdca_enable(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- // Enable transfer
- pdca_channel->cr = AVR32_PDCA_TEN_MASK;
-}
-
-
-unsigned int pdca_get_load_size(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- return pdca_channel->tcr;
-}
-
-
-void pdca_load_channel(unsigned int pdca_ch_number, volatile void *addr, unsigned int size)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- pdca_channel->mar = (unsigned long)addr;
- pdca_channel->tcr = size;
- pdca_channel->cr = AVR32_PDCA_ECLR_MASK;
- pdca_channel->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-unsigned int pdca_get_reload_size(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- return pdca_channel->tcrr;
-}
-
-
-void pdca_reload_channel(unsigned int pdca_ch_number, volatile void *addr, unsigned int size)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- // set up next memory address
- pdca_channel->marr = (unsigned long)addr;
- // set up next memory size
- pdca_channel->tcrr = size;
- pdca_channel->cr = AVR32_PDCA_ECLR_MASK;
- pdca_channel->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-void pdca_set_peripheral_select(unsigned int pdca_ch_number, unsigned int pid)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_channel->psr = pid;
-}
-
-
-void pdca_set_transfer_size(unsigned int pdca_ch_number, unsigned int transfer_size)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_channel->mr = (pdca_channel->mr & ~AVR32_PDCA_SIZE_MASK) |
- transfer_size << AVR32_PDCA_SIZE_OFFSET;
-}
-
-
-#if (defined AVR32_PDCA_120_H_INCLUDED ) || (defined AVR32_PDCA_121_H_INCLUDED ) || (defined AVR32_PDCA_122_H_INCLUDED )
-
-
-void pdca_disable_event_trigger(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_channel->mr &= ~AVR32_PDCA_ETRIG_MASK;
-}
-
-
-void pdca_enable_event_trigger(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_channel->mr |= AVR32_PDCA_ETRIG_MASK;
-}
-
-
-#endif // #ifdef AVR32_PDCA_120_H_INCLUDED
-
-
-void pdca_disable_interrupt_transfer_error(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- pdca_channel->idr = AVR32_PDCA_TERR_MASK;
- pdca_channel->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-void pdca_enable_interrupt_transfer_error(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_channel->ier = AVR32_PDCA_TERR_MASK;
-}
-
-
-void pdca_disable_interrupt_transfer_complete(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- pdca_channel->idr = AVR32_PDCA_TRC_MASK;
- pdca_channel->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-void pdca_enable_interrupt_transfer_complete(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_channel->ier = AVR32_PDCA_TRC_MASK;
-}
-
-
-void pdca_disable_interrupt_reload_counter_zero(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- pdca_channel->idr = AVR32_PDCA_RCZ_MASK;
- pdca_channel->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-void pdca_enable_interrupt_reload_counter_zero(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- pdca_channel->ier = AVR32_PDCA_RCZ_MASK;
-}
-
-
-unsigned long pdca_get_transfer_status(unsigned int pdca_ch_number)
-{
- // get the correct channel pointer
- volatile avr32_pdca_channel_t *pdca_channel = pdca_get_handler(pdca_ch_number);
-
- return pdca_channel->isr;
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.h
deleted file mode 100644
index 5668fe9..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief PDCA driver for AVR32 UC3.
- *
- * This file defines a useful set of functions for the PDCA interface on AVR32
- * devices.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a PDCA module.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _PDCA_H_
-#define _PDCA_H_
-
-#include <avr32/io.h>
-
-
-//! Size of PDCA transfer: byte.
-#define PDCA_TRANSFER_SIZE_BYTE AVR32_PDCA_BYTE
-
-//! Size of PDCA transfer: half-word.
-#define PDCA_TRANSFER_SIZE_HALF_WORD AVR32_PDCA_HALF_WORD
-
-//! Size of PDCA transfer: word.
-#define PDCA_TRANSFER_SIZE_WORD AVR32_PDCA_WORD
-
-/*! \name PDCA Driver Status Codes
- */
-//! @{
-#define PDCA_SUCCESS 0
-#define PDCA_INVALID_ARGUMENT -1
-//! @}
-
-/*! \name PDCA Transfer Status Codes
- */
-//! @{
-#define PDCA_TRANSFER_ERROR AVR32_PDCA_TERR_MASK
-#define PDCA_TRANSFER_COMPLETE AVR32_PDCA_TRC_MASK
-#define PDCA_TRANSFER_COUNTER_RELOAD_IS_ZERO AVR32_PDCA_RCZ_MASK
-//! @}
-
-
-//! PDCA channel options.
-typedef struct
-{
- //! Memory address.
- volatile void *addr ;
- //! Transfer counter.
- unsigned int size ;
- //! Next memory address.
- volatile void *r_addr ;
- //! Next transfer counter.
- unsigned int r_size ;
- //! Select peripheral ID.
- unsigned int pid ;
- //! Select the size of the transfer (byte, half-word or word).
- unsigned int transfer_size ;
-#if (defined AVR32_PDCA_120_H_INCLUDED ) || (defined AVR32_PDCA_121_H_INCLUDED ) || (defined AVR32_PDCA_122_H_INCLUDED )
-// Note: the options in this preprocessor section are only available from the PDCA IP version 1.2.0 on.
- //! Enable (\c 1) or disable (\c 0) the transfer upon event trigger.
- unsigned char etrig ;
-#endif // #ifdef AVR32_PDCA_120_H_INCLUDED
-} pdca_channel_options_t;
-
-
-/*! \brief Get PDCA channel handler
- *
- * \param pdca_ch_number PDCA channel
- *
- * \return channel handled or PDCA_INVALID_ARGUMENT
- */
-extern volatile avr32_pdca_channel_t *pdca_get_handler(unsigned int pdca_ch_number);
-
-/*! \brief Set the channel configuration
- *
- * \param pdca_ch_number PDCA channel
- * \param opt channel option
- */
-extern int pdca_init_channel(unsigned int pdca_ch_number, const pdca_channel_options_t *opt);
-
-/*! \brief Get the PDCA channel transfer enable status
- *
- * \param pdca_ch_number PDCA channel
- *
- * \return \c 1 if channel transfer is enabled, else \c 0
- */
-extern unsigned int pdca_get_channel_status(unsigned int pdca_ch_number);
-
-/*! \brief Disable the PDCA for the given channel
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_disable(unsigned int pdca_ch_number);
-
-/*! \brief Enable the PDCA for the given channel
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_enable(unsigned int pdca_ch_number);
-
-/*! \brief Get PDCA channel load size (or remaining size if transfer started)
- *
- * \param pdca_ch_number PDCA channel
- *
- * \return size current size to transfer
- */
-extern unsigned int pdca_get_load_size(unsigned int pdca_ch_number);
-
-/*! \brief Set PDCA channel load values
- *
- * \param pdca_ch_number PDCA channel
- * \param addr address where data to load are stored
- * \param size size of the data block to load
- */
-extern void pdca_load_channel(unsigned int pdca_ch_number, volatile void *addr, unsigned int size);
-
-/*! \brief Get PDCA channel reload size
- *
- * \param pdca_ch_number PDCA channel
- *
- * \return size current reload size
- */
-extern unsigned int pdca_get_reload_size(unsigned int pdca_ch_number);
-
-/*! \brief Set PDCA channel reload values
- *
- * \param pdca_ch_number PDCA channel
- * \param addr address where data to load are stored
- * \param size size of the data block to load
- */
-extern void pdca_reload_channel(unsigned int pdca_ch_number, volatile void *addr, unsigned int size);
-
-/*! \brief Set the peripheral function to use with the PDCA channel
- *
- * \param pdca_ch_number PDCA channel
- * \param pid the peripheral ID
- */
-extern void pdca_set_peripheral_select(unsigned int pdca_ch_number, unsigned int pid);
-
-/*! \brief Set the size of the transfer
- *
- * \param pdca_ch_number PDCA channel
- * \param transfer_size size of the transfer (byte, half-word or word)
- */
-extern void pdca_set_transfer_size(unsigned int pdca_ch_number, unsigned int transfer_size);
-
-#if (defined AVR32_PDCA_120_H_INCLUDED ) || (defined AVR32_PDCA_121_H_INCLUDED ) || (defined AVR32_PDCA_122_H_INCLUDED )
-// Note: the functions in this preprocessor section are only available from the PDCA IP version 1.2.0 on.
-
-/*! \brief Disable the event-triggered transfer feature
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_disable_event_trigger(unsigned int pdca_ch_number);
-
-/*! \brief Enable the event-triggered transfer feature
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_enable_event_trigger(unsigned int pdca_ch_number);
-
-#endif // #ifdef AVR32_PDCA_120_H_INCLUDED
-
-/*! \brief Disable PDCA transfer error interrupt
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_disable_interrupt_transfer_error(unsigned int pdca_ch_number);
-
-/*! \brief Enable PDCA transfer error interrupt
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_enable_interrupt_transfer_error(unsigned int pdca_ch_number);
-
-/*! \brief Disable PDCA transfer interrupt when completed (ie TCR and TCRR are both zero)
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_disable_interrupt_transfer_complete(unsigned int pdca_ch_number);
-
-/*! \brief Enable PDCA transfer interrupt when completed (ie TCR and TCRR are both zero)
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_enable_interrupt_transfer_complete(unsigned int pdca_ch_number);
-
-/*! \brief Disable PDCA transfer interrupt when TCRR reaches zero
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_disable_interrupt_reload_counter_zero(unsigned int pdca_ch_number);
-
-/*! \brief Enable PDCA transfer interrupt when TCRR reaches zero
- *
- * \param pdca_ch_number PDCA channel
- */
-extern void pdca_enable_interrupt_reload_counter_zero(unsigned int pdca_ch_number);
-
-/*! \brief Get PDCA channel transfer status
- *
- * \param pdca_ch_number PDCA channel
- *
- * \return PDCA transfer status with the following bit-masks:\n
- * - \c PDCA_TRANSFER_ERROR;\n
- * - \c PDCA_TRANSFER_COMPLETE;\n
- * - \c PDCA_TRANSFER_COUNTER_RELOAD_IS_ZERO.
- */
-extern unsigned long pdca_get_transfer_status(unsigned int pdca_ch_number);
-
-
-#endif // _PDCA_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.c
deleted file mode 100644
index 76d9268..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.c
+++ /dev/null
@@ -1,546 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Power Manager driver.
- *
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "compiler.h"
-#include "pm.h"
-
-
-/*! \name PM Writable Bit-Field Registers
- */
-//! @{
-
-typedef union
-{
- unsigned long mcctrl;
- avr32_pm_mcctrl_t MCCTRL;
-} u_avr32_pm_mcctrl_t;
-
-typedef union
-{
- unsigned long cksel;
- avr32_pm_cksel_t CKSEL;
-} u_avr32_pm_cksel_t;
-
-typedef union
-{
- unsigned long pll;
- avr32_pm_pll_t PLL;
-} u_avr32_pm_pll_t;
-
-typedef union
-{
- unsigned long oscctrl0;
- avr32_pm_oscctrl0_t OSCCTRL0;
-} u_avr32_pm_oscctrl0_t;
-
-typedef union
-{
- unsigned long oscctrl1;
- avr32_pm_oscctrl1_t OSCCTRL1;
-} u_avr32_pm_oscctrl1_t;
-
-typedef union
-{
- unsigned long oscctrl32;
- avr32_pm_oscctrl32_t OSCCTRL32;
-} u_avr32_pm_oscctrl32_t;
-
-typedef union
-{
- unsigned long ier;
- avr32_pm_ier_t IER;
-} u_avr32_pm_ier_t;
-
-typedef union
-{
- unsigned long idr;
- avr32_pm_idr_t IDR;
-} u_avr32_pm_idr_t;
-
-typedef union
-{
- unsigned long icr;
- avr32_pm_icr_t ICR;
-} u_avr32_pm_icr_t;
-
-typedef union
-{
- unsigned long gcctrl;
- avr32_pm_gcctrl_t GCCTRL;
-} u_avr32_pm_gcctrl_t;
-
-typedef union
-{
- unsigned long rccr;
- avr32_pm_rccr_t RCCR;
-} u_avr32_pm_rccr_t;
-
-typedef union
-{
- unsigned long bgcr;
- avr32_pm_bgcr_t BGCR;
-} u_avr32_pm_bgcr_t;
-
-typedef union
-{
- unsigned long vregcr;
- avr32_pm_vregcr_t VREGCR;
-} u_avr32_pm_vregcr_t;
-
-typedef union
-{
- unsigned long bod;
- avr32_pm_bod_t BOD;
-} u_avr32_pm_bod_t;
-
-//! @}
-
-
-/*! \brief Sets the mode of the oscillator 0.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- * \param mode Oscillator 0 mode (i.e. AVR32_PM_OSCCTRL0_MODE_x).
- */
-static void pm_set_osc0_mode(volatile avr32_pm_t *pm, unsigned int mode)
-{
- // Read
- u_avr32_pm_oscctrl0_t u_avr32_pm_oscctrl0 = {pm->oscctrl0};
- // Modify
- u_avr32_pm_oscctrl0.OSCCTRL0.mode = mode;
- // Write
- pm->oscctrl0 = u_avr32_pm_oscctrl0.oscctrl0;
-}
-
-
-void pm_enable_osc0_ext_clock(volatile avr32_pm_t *pm)
-{
- pm_set_osc0_mode(pm, AVR32_PM_OSCCTRL0_MODE_EXT_CLOCK);
-}
-
-
-void pm_enable_osc0_crystal(volatile avr32_pm_t *pm, unsigned int fosc0)
-{
- pm_set_osc0_mode(pm, (fosc0 < 900000) ? AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G0 :
- (fosc0 < 3000000) ? AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G1 :
- (fosc0 < 8000000) ? AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G2 :
- AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G3);
-}
-
-
-void pm_enable_clk0(volatile avr32_pm_t *pm, unsigned int startup)
-{
- pm_enable_clk0_no_wait(pm, startup);
- pm_wait_for_clk0_ready(pm);
-}
-
-
-void pm_disable_clk0(volatile avr32_pm_t *pm)
-{
- pm->mcctrl &= ~AVR32_PM_MCCTRL_OSC0EN_MASK;
-}
-
-
-void pm_enable_clk0_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
-{
- // Read register
- u_avr32_pm_oscctrl0_t u_avr32_pm_oscctrl0 = {pm->oscctrl0};
- // Modify
- u_avr32_pm_oscctrl0.OSCCTRL0.startup = startup;
- // Write back
- pm->oscctrl0 = u_avr32_pm_oscctrl0.oscctrl0;
-
- pm->mcctrl |= AVR32_PM_MCCTRL_OSC0EN_MASK;
-}
-
-
-void pm_wait_for_clk0_ready(volatile avr32_pm_t *pm)
-{
- while (!(pm->poscsr & AVR32_PM_POSCSR_OSC0RDY_MASK));
-}
-
-
-/*! \brief Sets the mode of the oscillator 1.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- * \param mode Oscillator 1 mode (i.e. AVR32_PM_OSCCTRL1_MODE_x).
- */
-static void pm_set_osc1_mode(volatile avr32_pm_t *pm, unsigned int mode)
-{
- // Read
- u_avr32_pm_oscctrl1_t u_avr32_pm_oscctrl1 = {pm->oscctrl1};
- // Modify
- u_avr32_pm_oscctrl1.OSCCTRL1.mode = mode;
- // Write
- pm->oscctrl1 = u_avr32_pm_oscctrl1.oscctrl1;
-}
-
-
-void pm_enable_osc1_ext_clock(volatile avr32_pm_t *pm)
-{
- pm_set_osc1_mode(pm, AVR32_PM_OSCCTRL1_MODE_EXT_CLOCK);
-}
-
-
-void pm_enable_osc1_crystal(volatile avr32_pm_t *pm, unsigned int fosc1)
-{
- pm_set_osc1_mode(pm, (fosc1 < 900000) ? AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G0 :
- (fosc1 < 3000000) ? AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G1 :
- (fosc1 < 8000000) ? AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G2 :
- AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G3);
-}
-
-
-void pm_enable_clk1(volatile avr32_pm_t *pm, unsigned int startup)
-{
- pm_enable_clk1_no_wait(pm, startup);
- pm_wait_for_clk1_ready(pm);
-}
-
-
-void pm_disable_clk1(volatile avr32_pm_t *pm)
-{
- pm->mcctrl &= ~AVR32_PM_MCCTRL_OSC1EN_MASK;
-}
-
-
-void pm_enable_clk1_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
-{
- // Read register
- u_avr32_pm_oscctrl1_t u_avr32_pm_oscctrl1 = {pm->oscctrl1};
- // Modify
- u_avr32_pm_oscctrl1.OSCCTRL1.startup = startup;
- // Write back
- pm->oscctrl1 = u_avr32_pm_oscctrl1.oscctrl1;
-
- pm->mcctrl |= AVR32_PM_MCCTRL_OSC1EN_MASK;
-}
-
-
-void pm_wait_for_clk1_ready(volatile avr32_pm_t *pm)
-{
- while (!(pm->poscsr & AVR32_PM_POSCSR_OSC1RDY_MASK));
-}
-
-
-/*! \brief Sets the mode of the 32-kHz oscillator.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- * \param mode 32-kHz oscillator mode (i.e. AVR32_PM_OSCCTRL32_MODE_x).
- */
-static void pm_set_osc32_mode(volatile avr32_pm_t *pm, unsigned int mode)
-{
- // Read
- u_avr32_pm_oscctrl32_t u_avr32_pm_oscctrl32 = {pm->oscctrl32};
- // Modify
- u_avr32_pm_oscctrl32.OSCCTRL32.mode = mode;
- // Write
- pm->oscctrl32 = u_avr32_pm_oscctrl32.oscctrl32;
-}
-
-
-void pm_enable_osc32_ext_clock(volatile avr32_pm_t *pm)
-{
- pm_set_osc32_mode(pm, AVR32_PM_OSCCTRL32_MODE_EXT_CLOCK);
-}
-
-
-void pm_enable_osc32_crystal(volatile avr32_pm_t *pm)
-{
- pm_set_osc32_mode(pm, AVR32_PM_OSCCTRL32_MODE_CRYSTAL);
-}
-
-
-void pm_enable_clk32(volatile avr32_pm_t *pm, unsigned int startup)
-{
- pm_enable_clk32_no_wait(pm, startup);
- pm_wait_for_clk32_ready(pm);
-}
-
-
-void pm_disable_clk32(volatile avr32_pm_t *pm)
-{
- pm->oscctrl32 &= ~AVR32_PM_OSCCTRL32_OSC32EN_MASK;
-}
-
-
-void pm_enable_clk32_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
-{
- // Read register
- u_avr32_pm_oscctrl32_t u_avr32_pm_oscctrl32 = {pm->oscctrl32};
- // Modify
- u_avr32_pm_oscctrl32.OSCCTRL32.osc32en = 1;
- u_avr32_pm_oscctrl32.OSCCTRL32.startup = startup;
- // Write back
- pm->oscctrl32 = u_avr32_pm_oscctrl32.oscctrl32;
-}
-
-
-void pm_wait_for_clk32_ready(volatile avr32_pm_t *pm)
-{
- while (!(pm->poscsr & AVR32_PM_POSCSR_OSC32RDY_MASK));
-}
-
-
-void pm_cksel(volatile avr32_pm_t *pm,
- unsigned int pbadiv,
- unsigned int pbasel,
- unsigned int pbbdiv,
- unsigned int pbbsel,
- unsigned int hsbdiv,
- unsigned int hsbsel)
-{
- u_avr32_pm_cksel_t u_avr32_pm_cksel = {0};
-
- u_avr32_pm_cksel.CKSEL.cpusel = hsbsel;
- u_avr32_pm_cksel.CKSEL.cpudiv = hsbdiv;
- u_avr32_pm_cksel.CKSEL.hsbsel = hsbsel;
- u_avr32_pm_cksel.CKSEL.hsbdiv = hsbdiv;
- u_avr32_pm_cksel.CKSEL.pbasel = pbasel;
- u_avr32_pm_cksel.CKSEL.pbadiv = pbadiv;
- u_avr32_pm_cksel.CKSEL.pbbsel = pbbsel;
- u_avr32_pm_cksel.CKSEL.pbbdiv = pbbdiv;
-
- pm->cksel = u_avr32_pm_cksel.cksel;
-
- // Wait for ckrdy bit and then clear it
- while (!(pm->poscsr & AVR32_PM_POSCSR_CKRDY_MASK));
-}
-
-
-void pm_gc_setup(volatile avr32_pm_t *pm,
- unsigned int gc,
- unsigned int osc_or_pll, // Use Osc (=0) or PLL (=1)
- unsigned int pll_osc, // Sel Osc0/PLL0 or Osc1/PLL1
- unsigned int diven,
- unsigned int div)
-{
- u_avr32_pm_gcctrl_t u_avr32_pm_gcctrl = {0};
-
- u_avr32_pm_gcctrl.GCCTRL.oscsel = pll_osc;
- u_avr32_pm_gcctrl.GCCTRL.pllsel = osc_or_pll;
- u_avr32_pm_gcctrl.GCCTRL.diven = diven;
- u_avr32_pm_gcctrl.GCCTRL.div = div;
-
- pm->gcctrl[gc] = u_avr32_pm_gcctrl.gcctrl;
-}
-
-
-void pm_gc_enable(volatile avr32_pm_t *pm,
- unsigned int gc)
-{
- pm->gcctrl[gc] |= AVR32_PM_GCCTRL_CEN_MASK;
-}
-
-
-void pm_gc_disable(volatile avr32_pm_t *pm,
- unsigned int gc)
-{
- pm->gcctrl[gc] &= ~AVR32_PM_GCCTRL_CEN_MASK;
-}
-
-
-void pm_pll_setup(volatile avr32_pm_t *pm,
- unsigned int pll,
- unsigned int mul,
- unsigned int div,
- unsigned int osc,
- unsigned int lockcount)
-{
- u_avr32_pm_pll_t u_avr32_pm_pll = {0};
-
- u_avr32_pm_pll.PLL.pllosc = osc;
- u_avr32_pm_pll.PLL.plldiv = div;
- u_avr32_pm_pll.PLL.pllmul = mul;
- u_avr32_pm_pll.PLL.pllcount = lockcount;
-
- pm->pll[pll] = u_avr32_pm_pll.pll;
-}
-
-
-void pm_pll_set_option(volatile avr32_pm_t *pm,
- unsigned int pll,
- unsigned int pll_freq,
- unsigned int pll_div2,
- unsigned int pll_wbwdisable)
-{
- u_avr32_pm_pll_t u_avr32_pm_pll = {pm->pll[pll]};
- u_avr32_pm_pll.PLL.pllopt = pll_freq | (pll_div2 << 1) | (pll_wbwdisable << 2);
- pm->pll[pll] = u_avr32_pm_pll.pll;
-}
-
-
-unsigned int pm_pll_get_option(volatile avr32_pm_t *pm,
- unsigned int pll)
-{
- return (pm->pll[pll] & AVR32_PM_PLLOPT_MASK) >> AVR32_PM_PLLOPT_OFFSET;
-}
-
-
-void pm_pll_enable(volatile avr32_pm_t *pm,
- unsigned int pll)
-{
- pm->pll[pll] |= AVR32_PM_PLLEN_MASK;
-}
-
-
-void pm_pll_disable(volatile avr32_pm_t *pm,
- unsigned int pll)
-{
- pm->pll[pll] &= ~AVR32_PM_PLLEN_MASK;
-}
-
-
-void pm_wait_for_pll0_locked(volatile avr32_pm_t *pm)
-{
- while (!(pm->poscsr & AVR32_PM_POSCSR_LOCK0_MASK));
-}
-
-
-void pm_wait_for_pll1_locked(volatile avr32_pm_t *pm)
-{
- while (!(pm->poscsr & AVR32_PM_POSCSR_LOCK1_MASK));
-}
-
-
-void pm_switch_to_clock(volatile avr32_pm_t *pm, unsigned long clock)
-{
- // Read
- u_avr32_pm_mcctrl_t u_avr32_pm_mcctrl = {pm->mcctrl};
- // Modify
- u_avr32_pm_mcctrl.MCCTRL.mcsel = clock;
- // Write back
- pm->mcctrl = u_avr32_pm_mcctrl.mcctrl;
-}
-
-
-void pm_switch_to_osc0(volatile avr32_pm_t *pm, unsigned int fosc0, unsigned int startup)
-{
- pm_enable_osc0_crystal(pm, fosc0); // Enable the Osc0 in crystal mode
- pm_enable_clk0(pm, startup); // Crystal startup time - This parameter is critical and depends on the characteristics of the crystal
- pm_switch_to_clock(pm, AVR32_PM_MCSEL_OSC0); // Then switch main clock to Osc0
-}
-
-
-void pm_bod_enable_irq(volatile avr32_pm_t *pm)
-{
- pm->ier = AVR32_PM_IER_BODDET_MASK;
-}
-
-
-void pm_bod_disable_irq(volatile avr32_pm_t *pm)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- pm->idr = AVR32_PM_IDR_BODDET_MASK;
- pm->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-void pm_bod_clear_irq(volatile avr32_pm_t *pm)
-{
- pm->icr = AVR32_PM_ICR_BODDET_MASK;
-}
-
-
-unsigned long pm_bod_get_irq_status(volatile avr32_pm_t *pm)
-{
- return ((pm->isr & AVR32_PM_ISR_BODDET_MASK) != 0);
-}
-
-
-unsigned long pm_bod_get_irq_enable_bit(volatile avr32_pm_t *pm)
-{
- return ((pm->imr & AVR32_PM_IMR_BODDET_MASK) != 0);
-}
-
-
-unsigned long pm_bod_get_level(volatile avr32_pm_t *pm)
-{
- return (pm->bod & AVR32_PM_BOD_LEVEL_MASK) >> AVR32_PM_BOD_LEVEL_OFFSET;
-}
-
-
-unsigned long pm_read_gplp(volatile avr32_pm_t *pm, unsigned long gplp)
-{
- return pm->gplp[gplp];
-}
-
-
-void pm_write_gplp(volatile avr32_pm_t *pm, unsigned long gplp, unsigned long value)
-{
- pm->gplp[gplp] = value;
-}
-
-
-long pm_enable_module(volatile avr32_pm_t *pm, unsigned long module)
-{
- unsigned long domain = module>>5;
- unsigned long *regptr = (unsigned long*)(&(pm->cpumask) + domain);
-
- // Implementation-specific shortcut: the ckMASK registers are contiguous and
- // memory-mapped in that order: CPUMASK, HSBMASK, PBAMASK, PBBMASK.
-
- *regptr |= (1<<(module%32));
-
- return PASS;
-}
-
-long pm_disable_module(volatile avr32_pm_t *pm, unsigned long module)
-{
- unsigned long domain = module>>5;
- unsigned long *regptr = (unsigned long*)(&(pm->cpumask) + domain);
-
- // Implementation-specific shortcut: the ckMASK registers are contiguous and
- // memory-mapped in that order: CPUMASK, HSBMASK, PBAMASK, PBBMASK.
-
- *regptr &= ~(1<<(module%32));
-
- return PASS;
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.h
deleted file mode 100644
index ca679f7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.h
+++ /dev/null
@@ -1,493 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Power Manager driver.
- *
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _PM_H_
-#define _PM_H_
-
-#include <avr32/io.h>
-#include "compiler.h"
-#include "preprocessor.h"
-
-
-/*! \brief Sets the MCU in the specified sleep mode.
- *
- * \param mode Sleep mode:
- * \arg \c AVR32_PM_SMODE_IDLE: Idle;
- * \arg \c AVR32_PM_SMODE_FROZEN: Frozen;
- * \arg \c AVR32_PM_SMODE_STANDBY: Standby;
- * \arg \c AVR32_PM_SMODE_STOP: Stop;
- * \arg \c AVR32_PM_SMODE_DEEP_STOP: DeepStop;
- * \arg \c AVR32_PM_SMODE_STATIC: Static.
- */
-#define SLEEP(mode) {__asm__ __volatile__ ("sleep "STRINGZ(mode));}
-
-
-//! Input and output parameters when initializing PM clocks using pm_configure_clocks().
-typedef struct
-{
- //! CPU frequency (input/output argument).
- unsigned long cpu_f;
-
- //! PBA frequency (input/output argument).
- unsigned long pba_f;
-
- //! Oscillator 0's external crystal(or external clock) frequency (board dependant) (input argument).
- unsigned long osc0_f;
-
- //! Oscillator 0's external crystal(or external clock) startup time: AVR32_PM_OSCCTRL0_STARTUP_x_RCOSC (input argument).
- unsigned long osc0_startup;
-} pm_freq_param_t;
-
-#define PM_FREQ_STATUS_FAIL (-1)
-#define PM_FREQ_STATUS_OK (0)
-
-
-/*! \brief Gets the MCU reset cause.
- *
- * \param pm Base address of the Power Manager instance (i.e. &AVR32_PM).
- *
- * \return The MCU reset cause which can be masked with the
- * \c AVR32_PM_RCAUSE_x_MASK bit-masks to isolate specific causes.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ unsigned int pm_get_reset_cause(volatile avr32_pm_t *pm)
-{
- return pm->rcause;
-}
-
-
-/*!
- * \brief This function will enable the external clock mode of the oscillator 0.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_enable_osc0_ext_clock(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the crystal mode of the oscillator 0.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param fosc0 Oscillator 0 crystal frequency (Hz)
- */
-extern void pm_enable_osc0_crystal(volatile avr32_pm_t *pm, unsigned int fosc0);
-
-
-/*!
- * \brief This function will enable the oscillator 0 to be used with a startup time.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param startup Clock 0 startup time. AVR32_PM_OSCCTRL0_STARTUP_x_RCOSC.
- */
-extern void pm_enable_clk0(volatile avr32_pm_t *pm, unsigned int startup);
-
-
-/*!
- * \brief This function will disable the oscillator 0.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_disable_clk0(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the oscillator 0 to be used with no startup time.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param startup Clock 0 startup time, for which the function does not wait. AVR32_PM_OSCCTRL0_STARTUP_x_RCOSC.
- */
-extern void pm_enable_clk0_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
-
-
-/*!
- * \brief This function will wait until the Osc0 clock is ready.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_wait_for_clk0_ready(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the external clock mode of the oscillator 1.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_enable_osc1_ext_clock(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the crystal mode of the oscillator 1.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param fosc1 Oscillator 1 crystal frequency (Hz)
- */
-extern void pm_enable_osc1_crystal(volatile avr32_pm_t *pm, unsigned int fosc1);
-
-
-/*!
- * \brief This function will enable the oscillator 1 to be used with a startup time.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param startup Clock 1 startup time. AVR32_PM_OSCCTRL1_STARTUP_x_RCOSC.
- */
-extern void pm_enable_clk1(volatile avr32_pm_t *pm, unsigned int startup);
-
-
-/*!
- * \brief This function will disable the oscillator 1.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_disable_clk1(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the oscillator 1 to be used with no startup time.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param startup Clock 1 startup time, for which the function does not wait. AVR32_PM_OSCCTRL1_STARTUP_x_RCOSC.
- */
-extern void pm_enable_clk1_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
-
-
-/*!
- * \brief This function will wait until the Osc1 clock is ready.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_wait_for_clk1_ready(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the external clock mode of the 32-kHz oscillator.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_enable_osc32_ext_clock(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the crystal mode of the 32-kHz oscillator.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_enable_osc32_crystal(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the oscillator 32 to be used with a startup time.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param startup Clock 32 kHz startup time. AVR32_PM_OSCCTRL32_STARTUP_x_RCOSC.
- */
-extern void pm_enable_clk32(volatile avr32_pm_t *pm, unsigned int startup);
-
-
-/*!
- * \brief This function will disable the oscillator 32.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_disable_clk32(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will enable the oscillator 32 to be used with no startup time.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param startup Clock 32 kHz startup time, for which the function does not wait. AVR32_PM_OSCCTRL32_STARTUP_x_RCOSC.
- */
-extern void pm_enable_clk32_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
-
-
-/*!
- * \brief This function will wait until the osc32 clock is ready.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_wait_for_clk32_ready(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will select all the power manager clocks.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param pbadiv Peripheral Bus A clock divisor enable
- * \param pbasel Peripheral Bus A select
- * \param pbbdiv Peripheral Bus B clock divisor enable
- * \param pbbsel Peripheral Bus B select
- * \param hsbdiv High Speed Bus clock divisor enable (CPU clock = HSB clock)
- * \param hsbsel High Speed Bus select (CPU clock = HSB clock )
- */
-extern void pm_cksel(volatile avr32_pm_t *pm, unsigned int pbadiv, unsigned int pbasel, unsigned int pbbdiv, unsigned int pbbsel, unsigned int hsbdiv, unsigned int hsbsel);
-
-
-/*!
- * \brief This function will setup a generic clock.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param gc generic clock number (0 for gc0...)
- * \param osc_or_pll Use OSC (=0) or PLL (=1)
- * \param pll_osc Select Osc0/PLL0 or Osc1/PLL1
- * \param diven Generic clock divisor enable
- * \param div Generic clock divisor
- */
-extern void pm_gc_setup(volatile avr32_pm_t *pm, unsigned int gc, unsigned int osc_or_pll, unsigned int pll_osc, unsigned int diven, unsigned int div);
-
-
-/*!
- * \brief This function will enable a generic clock.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param gc generic clock number (0 for gc0...)
- */
-extern void pm_gc_enable(volatile avr32_pm_t *pm, unsigned int gc);
-
-
-/*!
- * \brief This function will disable a generic clock.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param gc generic clock number (0 for gc0...)
- */
-extern void pm_gc_disable(volatile avr32_pm_t *pm, unsigned int gc);
-
-
-/*!
- * \brief This function will setup a PLL.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param pll PLL number(0 for PLL0, 1 for PLL1)
- * \param mul PLL MUL in the PLL formula
- * \param div PLL DIV in the PLL formula
- * \param osc OSC number (0 for osc0, 1 for osc1)
- * \param lockcount PLL lockount
- */
-extern void pm_pll_setup(volatile avr32_pm_t *pm, unsigned int pll, unsigned int mul, unsigned int div, unsigned int osc, unsigned int lockcount);
-
-
-/*!
- * \brief This function will set a PLL option.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param pll PLL number(0 for PLL0, 1 for PLL1)
- * \param pll_freq Set to 1 for VCO frequency range 80-180MHz, set to 0 for VCO frequency range 160-240Mhz.
- * \param pll_div2 Divide the PLL output frequency by 2 (this settings does not change the FVCO value)
- * \param pll_wbwdisable 1 Disable the Wide-Bandith Mode (Wide-Bandwith mode allow a faster startup time and out-of-lock time). 0 to enable the Wide-Bandith Mode.
- */
-extern void pm_pll_set_option(volatile avr32_pm_t *pm, unsigned int pll, unsigned int pll_freq, unsigned int pll_div2, unsigned int pll_wbwdisable);
-
-
-/*!
- * \brief This function will get a PLL option.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param pll PLL number(0 for PLL0, 1 for PLL1)
- * \return Option
- */
-extern unsigned int pm_pll_get_option(volatile avr32_pm_t *pm, unsigned int pll);
-
-
-/*!
- * \brief This function will enable a PLL.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param pll PLL number(0 for PLL0, 1 for PLL1)
- */
-extern void pm_pll_enable(volatile avr32_pm_t *pm, unsigned int pll);
-
-
-/*!
- * \brief This function will disable a PLL.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param pll PLL number(0 for PLL0, 1 for PLL1)
- */
-extern void pm_pll_disable(volatile avr32_pm_t *pm, unsigned int pll);
-
-
-/*!
- * \brief This function will wait for PLL0 locked
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_wait_for_pll0_locked(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will wait for PLL1 locked
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- */
-extern void pm_wait_for_pll1_locked(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief This function will switch the power manager main clock.
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param clock Clock to be switched on. AVR32_PM_MCSEL_SLOW for RCOsc, AVR32_PM_MCSEL_OSC0 for Osc0, AVR32_PM_MCSEL_PLL0 for PLL0.
- */
-extern void pm_switch_to_clock(volatile avr32_pm_t *pm, unsigned long clock);
-
-
-/*!
- * \brief Switch main clock to clock Osc0 (crystal mode)
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param fosc0 Oscillator 0 crystal frequency (Hz)
- * \param startup Crystal 0 startup time. AVR32_PM_OSCCTRL0_STARTUP_x_RCOSC.
- */
-extern void pm_switch_to_osc0(volatile avr32_pm_t *pm, unsigned int fosc0, unsigned int startup);
-
-
-/*! \brief Enables the Brown-Out Detector interrupt.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- */
-extern void pm_bod_enable_irq(volatile avr32_pm_t *pm);
-
-
-/*! \brief Disables the Brown-Out Detector interrupt.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- */
-extern void pm_bod_disable_irq(volatile avr32_pm_t *pm);
-
-
-/*! \brief Clears the Brown-Out Detector interrupt flag.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- */
-extern void pm_bod_clear_irq(volatile avr32_pm_t *pm);
-
-
-/*! \brief Gets the Brown-Out Detector interrupt flag.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- *
- * \retval 0 No BOD interrupt.
- * \retval 1 BOD interrupt pending.
- */
-extern unsigned long pm_bod_get_irq_status(volatile avr32_pm_t *pm);
-
-
-/*! \brief Gets the Brown-Out Detector interrupt enable status.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- *
- * \retval 0 BOD interrupt disabled.
- * \retval 1 BOD interrupt enabled.
- */
-extern unsigned long pm_bod_get_irq_enable_bit(volatile avr32_pm_t *pm);
-
-
-/*! \brief Gets the triggering threshold of the Brown-Out Detector.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM).
- *
- * \return Triggering threshold of the BOD. See the electrical characteristics
- * in the part datasheet for actual voltage levels.
- */
-extern unsigned long pm_bod_get_level(volatile avr32_pm_t *pm);
-
-
-/*!
- * \brief Read the content of the PM GPLP registers
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param gplp GPLP register index (0,1,... depending on the number of GPLP registers for a given part)
- *
- * \return The content of the chosen GPLP register.
- */
-extern unsigned long pm_read_gplp(volatile avr32_pm_t *pm, unsigned long gplp);
-
-
-/*!
- * \brief Write into the PM GPLP registers
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param gplp GPLP register index (0,1,... depending on the number of GPLP registers for a given part)
- * \param value Value to write
- */
-extern void pm_write_gplp(volatile avr32_pm_t *pm, unsigned long gplp, unsigned long value);
-
-
-/*! \brief Enable the clock of a module.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param module The module to clock (use one of the defines in the part-specific
- * header file under "toolchain folder"/avr32/inc(lude)/avr32/; depending on the
- * clock domain, look for the sections "CPU clocks", "HSB clocks", "PBx clocks")
- *
- * \return Status.
- * \retval 0 Success.
- * \retval <0 An error occured.
- */
-extern long pm_enable_module(volatile avr32_pm_t *pm, unsigned long module);
-
-/*! \brief Disable the clock of a module.
- *
- * \param pm Base address of the Power Manager (i.e. &AVR32_PM)
- * \param module The module to shut down (use one of the defines in the part-specific
- * header file under "toolchain folder"/avr32/inc(lude)/avr32/; depending on the
- * clock domain, look for the sections "CPU clocks", "HSB clocks", "PBx clocks")
- *
- * \return Status.
- * \retval 0 Success.
- * \retval <0 An error occured.
- */
-extern long pm_disable_module(volatile avr32_pm_t *pm, unsigned long module);
-
-
-
-/*! \brief Automatically configure the CPU, PBA, PBB, and HSB clocks
- * according to the user wishes.
- *
- * This function needs some parameters stored in a pm_freq_param_t structure:
- * - cpu_f and pba_f are the wanted frequencies,
- * - osc0_f is the oscillator 0 on-board frequency (e.g. FOSC0),
- * - osc0_startup is the oscillator 0 startup time (e.g. OSC0_STARTUP).
- *
- * The function will then configure the clocks using the following rules:
- * - It first try to find a valid PLL frequency (the highest possible value to avoid jitter) in order
- * to satisfy the CPU frequency,
- * - It optimizes the configuration depending the various divide stages,
- * - Then, the PBA frequency is configured from the CPU freq.
- * - Note that HSB and PBB are configured with the same frequency as CPU.
- * - Note also that the number of wait states of the flash read accesses is automatically set-up depending
- * the CPU frequency. As a consequence, the application needs the FLASHC driver to compile.
- *
- * The CPU, HSB and PBA frequencies programmed after configuration are stored back into cpu_f and pba_f.
- *
- * \param param pointer on the configuration structure.
- *
- * \retval PM_FREQ_STATUS_OK Mode successfully initialized.
- * \retval PM_FREQ_STATUS_FAIL The configuration can not be done.
- */
-extern int pm_configure_clocks(pm_freq_param_t *param);
-
-
-/*! \brief Automatically configure the USB clock.
- *
- * USB clock is configured to 48MHz, using the PLL1 from the Oscillator0, assuming
- * a 12 MHz crystal is connected to it.
- */
-extern void pm_configure_usb_clock(void);
-
-
-#endif // _PM_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm_conf_clocks.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm_conf_clocks.c
deleted file mode 100644
index 8beb83b..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm_conf_clocks.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Power Manager clocks configuration helper.
- *
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <string.h>
-#include "compiler.h"
-#include "pm.h"
-
-extern void flashc_set_wait_state(unsigned int wait_state);
-#if (defined AVR32_FLASHC_210_H_INCLUDED)
-extern void flashc_issue_command(unsigned int command, int page_number);
-#endif
-
-
-#define PM_MAX_MUL ((1 << AVR32_PM_PLL0_PLLMUL_SIZE) - 1)
-
-
-int pm_configure_clocks(pm_freq_param_t *param)
-{
- // Supported frequencies:
- // Fosc0 mul div PLL div2_en cpu_f pba_f Comment
- // 12 15 1 192 1 12 12
- // 12 9 3 40 1 20 20 PLL out of spec
- // 12 15 1 192 1 24 12
- // 12 9 1 120 1 30 15
- // 12 9 3 40 0 40 20 PLL out of spec
- // 12 15 1 192 1 48 12
- // 12 15 1 192 1 48 24
- // 12 8 1 108 1 54 27
- // 12 9 1 120 1 60 15
- // 12 9 1 120 1 60 30
- // 12 10 1 132 1 66 16.5
- //
- unsigned long in_cpu_f = param->cpu_f;
- unsigned long in_osc0_f = param->osc0_f;
- unsigned long mul, div, div2_en = 0, div2_cpu = 0, div2_pba = 0;
- unsigned long pll_freq, rest;
- Bool b_div2_pba, b_div2_cpu;
-
- // Switch to external Oscillator 0
- pm_switch_to_osc0(&AVR32_PM, in_osc0_f, param->osc0_startup);
-
- // Start with CPU freq config
- if (in_cpu_f == in_osc0_f)
- {
- param->cpu_f = in_osc0_f;
- param->pba_f = in_osc0_f;
- return PM_FREQ_STATUS_OK;
- }
- else if (in_cpu_f < in_osc0_f)
- {
- // TBD
- }
-
- rest = in_cpu_f % in_osc0_f;
-
- for (div = 1; div < 32; div++)
- {
- if ((div * rest) % in_osc0_f == 0)
- break;
- }
- if (div == 32)
- return PM_FREQ_STATUS_FAIL;
-
- mul = (in_cpu_f * div) / in_osc0_f;
-
- if (mul > PM_MAX_MUL)
- return PM_FREQ_STATUS_FAIL;
-
- // export 2power from PLL div to div2_cpu
- while (!(div % 2))
- {
- div /= 2;
- div2_cpu++;
- }
-
- // Here we know the mul and div parameter of the PLL config.
- // . Check out if the PLL has a valid in_cpu_f.
- // . Try to have for the PLL frequency (VCO output) the highest possible value
- // to reduce jitter.
- while (in_osc0_f * 2 * mul / div < AVR32_PM_PLL_VCO_RANGE0_MAX_FREQ)
- {
- if (2 * mul > PM_MAX_MUL)
- break;
- mul *= 2;
- div2_cpu++;
- }
-
- if (div2_cpu != 0)
- {
- div2_cpu--;
- div2_en = 1;
- }
-
- pll_freq = in_osc0_f * mul / (div * (1 << div2_en));
-
- // Update real CPU Frequency
- param->cpu_f = pll_freq / (1 << div2_cpu);
- mul--;
-
- pm_pll_setup(&AVR32_PM
- , 0 // pll
- , mul // mul
- , div // div
- , 0 // osc
- , 16 // lockcount
- );
-
- pm_pll_set_option(&AVR32_PM
- , 0 // pll
- // PLL clock is lower than 160MHz: need to set pllopt.
- , (pll_freq < AVR32_PM_PLL_VCO_RANGE0_MIN_FREQ) ? 1 : 0 // pll_freq
- , div2_en // pll_div2
- , 0 // pll_wbwdisable
- );
-
- rest = pll_freq;
- while (rest > AVR32_PM_PBA_MAX_FREQ ||
- rest != param->pba_f)
- {
- div2_pba++;
- rest = pll_freq / (1 << div2_pba);
- if (rest < param->pba_f)
- break;
- }
-
- // Update real PBA Frequency
- param->pba_f = pll_freq / (1 << div2_pba);
-
- // Enable PLL0
- pm_pll_enable(&AVR32_PM, 0);
-
- // Wait for PLL0 locked
- pm_wait_for_pll0_locked(&AVR32_PM);
-
- if (div2_cpu)
- {
- b_div2_cpu = TRUE;
- div2_cpu--;
- }
- else
- b_div2_cpu = FALSE;
-
- if (div2_pba)
- {
- b_div2_pba = TRUE;
- div2_pba--;
- }
- else
- b_div2_pba = FALSE;
-
- pm_cksel(&AVR32_PM
- , b_div2_pba, div2_pba // PBA
- , b_div2_cpu, div2_cpu // PBB
- , b_div2_cpu, div2_cpu // HSB
- );
-
- if (param->cpu_f > AVR32_FLASHC_FWS_0_MAX_FREQ)
- {
- flashc_set_wait_state(1);
-#if (defined AVR32_FLASHC_210_H_INCLUDED)
- if (param->cpu_f > AVR32_FLASHC_HSEN_FWS_1_MAX_FREQ)
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_HSEN, -1);
- else
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_HSDIS, -1);
-#endif
- }
- else
- {
- flashc_set_wait_state(0);
-#if (defined AVR32_FLASHC_210_H_INCLUDED)
- if (param->cpu_f > AVR32_FLASHC_HSEN_FWS_0_MAX_FREQ)
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_HSEN, -1);
- else
- flashc_issue_command(AVR32_FLASHC_FCMD_CMD_HSDIS, -1);
-#endif
- }
-
- pm_switch_to_clock(&AVR32_PM, AVR32_PM_MCCTRL_MCSEL_PLL0);
-
- return PM_FREQ_STATUS_OK;
-}
-
-
-void pm_configure_usb_clock(void)
-{
-#if UC3A3
-
- // Setup USB GCLK.
- pm_gc_setup(&AVR32_PM, AVR32_PM_GCLK_USBB, // gc
- 0, // osc_or_pll: use Osc (if 0) or PLL (if 1)
- 0, // pll_osc: select Osc0/PLL0 or Osc1/PLL1
- 0, // diven
- 0); // div
-
- // Enable USB GCLK.
- pm_gc_enable(&AVR32_PM, AVR32_PM_GCLK_USBB);
-#else
- // Use 12MHz from OSC0 and generate 96 MHz
- pm_pll_setup(&AVR32_PM, 1, // pll.
- 7, // mul.
- 1, // div.
- 0, // osc.
- 16); // lockcount.
-
- pm_pll_set_option(&AVR32_PM, 1, // pll.
- 1, // pll_freq: choose the range 80-180MHz.
- 1, // pll_div2.
- 0); // pll_wbwdisable.
-
- // start PLL1 and wait forl lock
- pm_pll_enable(&AVR32_PM, 1);
-
- // Wait for PLL1 locked.
- pm_wait_for_pll1_locked(&AVR32_PM);
-
- pm_gc_setup(&AVR32_PM, AVR32_PM_GCLK_USBB, // gc.
- 1, // osc_or_pll: use Osc (if 0) or PLL (if 1).
- 1, // pll_osc: select Osc0/PLL0 or Osc1/PLL1.
- 0, // diven.
- 0); // div.
- pm_gc_enable(&AVR32_PM, AVR32_PM_GCLK_USBB);
-#endif
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.c
deleted file mode 100644
index f5fc155..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.c
+++ /dev/null
@@ -1,566 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief High-level library abstracting features such as oscillators/pll/dfll
- * configuration, clock configuration, System-sensible parameters
- * configuration, buses clocks configuration, sleep mode, reset.
- *
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-#include "power_clocks_lib.h"
-
-
-//! Device-specific data
-#if UC3L
-static long int pcl_configure_clocks_uc3l(pcl_freq_param_t *param); // FORWARD declaration
-#endif
-
-#if UC3C
-static long int pcl_configure_clocks_uc3c(pcl_freq_param_t *param); // FORWARD declaration
-#endif
-
-long int pcl_configure_clocks(pcl_freq_param_t *param)
-{
-#ifndef AVR32_PM_VERSION_RESETVALUE
- // Implementation for UC3A, UC3A3, UC3B parts.
- return(pm_configure_clocks(param));
-#else
- #ifdef AVR32_PM_410_H_INCLUDED
- // Implementation for UC3C parts.
- return(pcl_configure_clocks_uc3c(param));
- #else
- // Implementation for UC3L parts.
- return(pcl_configure_clocks_uc3l(param));
- #endif
-#endif
-}
-
-
-//! Device-specific implementation
-#if UC3L
-// FORWARD declaration
-static long int pcl_configure_synchronous_clocks( pm_clk_src_t main_clk_src,
- unsigned long main_clock_freq_hz,
- pcl_freq_param_t *param);
-
-long int pcl_configure_clocks_rcsys(pcl_freq_param_t *param)
-{
- // Supported main clock sources: PCL_MC_RCSYS
-
- // Supported synchronous clocks frequencies if RCSYS is the main clock source:
- // 115200Hz, 57600Hz, 28800Hz, 14400Hz, 7200Hz, 3600Hz, 1800Hz, 900Hz, 450Hz.
-
- // NOTE: by default, this implementation doesn't perform thorough checks on the
- // input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
-
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that fCPU >= fPBx
- if((param->cpu_f < param->pba_f) || (param->cpu_f < param->pbb_f))
- return(-1);
-#endif
-
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that the target frequencies are reachable.
- if((param->cpu_f > SCIF_SLOWCLOCK_FREQ_HZ) || (param->pba_f > SCIF_SLOWCLOCK_FREQ_HZ)
- || (param->pbb_f > SCIF_SLOWCLOCK_FREQ_HZ))
- return(-1);
-#endif
-
- return(pcl_configure_synchronous_clocks(PM_CLK_SRC_SLOW, SCIF_SLOWCLOCK_FREQ_HZ, param));
-}
-
-
-long int pcl_configure_clocks_rc120m(pcl_freq_param_t *param)
-{
- // Supported main clock sources: PCL_MC_RC120M
-
- // Supported synchronous clocks frequencies if RC120M is the main clock source:
- // 30MHz, 15MHz, 7.5MHz, 3.75MHz, 1.875MHz, 937.5kHz, 468.75kHz.
-
- // NOTE: by default, this implementation doesn't perform thorough checks on the
- // input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
-
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that fCPU >= fPBx
- if((param->cpu_f < param->pba_f) || (param->cpu_f < param->pbb_f))
- return(-1);
-#endif
-
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that the target frequencies are reachable.
- if((param->cpu_f > SCIF_RC120M_FREQ_HZ) || (param->pba_f > SCIF_RC120M_FREQ_HZ)
- || (param->pbb_f > SCIF_RC120M_FREQ_HZ))
- return(-1);
-#endif
-
- // Start the 120MHz internal RCosc (RC120M) clock
- scif_start_rc120M();
-
- return(pcl_configure_synchronous_clocks(PM_CLK_SRC_RC120M, SCIF_RC120M_FREQ_HZ, param));
-}
-
-
-long int pcl_configure_clocks_osc0(pcl_freq_param_t *param)
-{
- // Supported main clock sources: PCL_MC_OSC0
-
- // Supported synchronous clocks frequencies if OSC0 is the main clock source:
- // (these obviously depend on the OSC0 frequency; we'll take 16MHz as an example)
- // 16MHz, 8MHz, 4MHz, 2MHz, 1MHz, 500kHz, 250kHz, 125kHz, 62.5kHz.
-
- // NOTE: by default, this implementation doesn't perform thorough checks on the
- // input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
-
- unsigned long main_clock_freq;
-
-
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that fCPU >= fPBx
- if((param->cpu_f < param->pba_f) || (param->cpu_f < param->pbb_f))
- return(-1);
-#endif
-
- main_clock_freq = param->osc0_f;
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that the target frequencies are reachable.
- if((param->cpu_f > main_clock_freq) || (param->pba_f > main_clock_freq)
- || (param->pbb_f > main_clock_freq))
- return(-1);
-#endif
- // Configure OSC0 in crystal mode, external crystal with a fcrystal Hz frequency.
- scif_configure_osc_crystalmode(SCIF_OSC0, main_clock_freq);
- // Enable the OSC0
- scif_enable_osc(SCIF_OSC0, param->osc0_startup, true);
-
- return(pcl_configure_synchronous_clocks(PM_CLK_SRC_OSC0, main_clock_freq, param));
-}
-
-
-long int pcl_configure_clocks_dfll0(pcl_freq_param_t *param)
-{
- // Supported main clock sources: PCL_MC_DFLL
-
- // Supported synchronous clocks frequencies if DFLL is the main clock source:
- // (these obviously depend on the DFLL target frequency; we'll take 100MHz as an example)
- // 50MHz, 25MHz, 12.5MHz, 6.25MHz, 3.125MHz, 1562.5kHz, 781.25kHz, 390.625kHz.
-
- // NOTE: by default, this implementation doesn't perform thorough checks on the
- // input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
-
- unsigned long main_clock_freq;
- scif_gclk_opt_t *pgc_dfllif_ref_opt;
-
-
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that fCPU >= fPBx
- if((param->cpu_f < param->pba_f) || (param->cpu_f < param->pbb_f))
- return(-1);
-#endif
-
- main_clock_freq = param->dfll_f;
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that the target DFLL output frequency is in the correct range.
- if((main_clock_freq > SCIF_DFLL_MAXFREQ_HZ) || (main_clock_freq < SCIF_DFLL_MINFREQ_HZ))
- return(-1);
- // Verify that the target frequencies are reachable.
- if((param->cpu_f > main_clock_freq) || (param->pba_f > main_clock_freq)
- || (param->pbb_f > main_clock_freq))
- return(-1);
-#endif
- pgc_dfllif_ref_opt = (scif_gclk_opt_t *)param->pextra_params;
- // Implementation note: this implementation configures the DFLL in closed-loop
- // mode (because it gives the best accuracy) which enables the generic clock CLK_DFLLIF_REF
- // as a reference (RCSYS being used as the generic clock source, undivided).
- scif_dfll0_closedloop_configure_and_start(pgc_dfllif_ref_opt, main_clock_freq, TRUE);
-
- return(pcl_configure_synchronous_clocks(PM_CLK_SRC_DFLL0, main_clock_freq, param));
-}
-
-
-static long int pcl_configure_clocks_uc3l(pcl_freq_param_t *param)
-{
- // Supported main clock sources: PCL_MC_RCSYS, PCL_MC_OSC0, PCL_MC_DFLL0, PCL_MC_RC120M
-
- // Supported synchronous clocks frequencies if RCSYS is the main clock source:
- // 115200Hz, 57600Hz, 28800Hz, 14400Hz, 7200Hz, 3600Hz, 1800Hz, 900Hz, 450Hz.
-
- // Supported synchronous clocks frequencies if RC120M is the main clock source:
- // 30MHz, 15MHz, 7.5MHz, 3.75MHz, 1.875MHz, 937.5kHz, 468.75kHz.
-
- // Supported synchronous clocks frequencies if OSC0 is the main clock source:
- // (these obviously depend on the OSC0 frequency; we'll take 16MHz as an example)
- // 16MHz, 8MHz, 4MHz, 2MHz, 1MHz, 500kHz, 250kHz, 125kHz, 62.5kHz.
-
- // Supported synchronous clocks frequencies if DFLL is the main clock source:
- // (these obviously depend on the DFLL target frequency; we'll take 100MHz as an example)
- // 50MHz, 25MHz, 12.5MHz, 6.25MHz, 3.125MHz, 1562.5kHz, 781.25kHz, 390.625kHz.
-
- // NOTE: by default, this implementation doesn't perform thorough checks on the
- // input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
-
-
-#ifdef AVR32SFW_INPUT_CHECK
- // Verify that fCPU >= fPBx
- if((param->cpu_f < param->pba_f) || (param->cpu_f < param->pbb_f))
- return(-1);
-#endif
-
- if(PCL_MC_RCSYS == param->main_clk_src)
- {
- return(pcl_configure_clocks_rcsys(param));
- }
- else if(PCL_MC_RC120M == param->main_clk_src)
- {
- return(pcl_configure_clocks_rc120m(param));
- }
- else if(PCL_MC_OSC0 == param->main_clk_src)
- {
- return(pcl_configure_clocks_osc0(param));
- }
- else // PCL_MC_DFLL0 == param->main_clk_src
- {
- return(pcl_configure_clocks_dfll0(param));
- }
-}
-
-static long int pcl_configure_synchronous_clocks(pm_clk_src_t main_clk_src, unsigned long main_clock_freq_hz, pcl_freq_param_t *param)
-{
- //#
- //# Set the Synchronous clock division ratio for each clock domain
- //#
- pm_set_all_cksel(main_clock_freq_hz, param->cpu_f, param->pba_f, param->pbb_f);
-
- //#
- //# Set the Flash wait state and the speed read mode (depending on the target CPU frequency).
- //#
-#if UC3L
- flashcdw_set_flash_waitstate_and_readmode(param->cpu_f);
-#elif UC3C
- flashc_set_flash_waitstate_and_readmode(param->cpu_f);
-#endif
-
-
- //#
- //# Switch the main clock source to the selected clock.
- //#
- pm_set_mclk_source(main_clk_src);
-
- return PASS;
-}
-
-#endif // UC3L device-specific implementation
-
-//! UC3C Device-specific implementation
-#if UC3C
-static long int pcl_configure_clocks_uc3c(pcl_freq_param_t *param)
-{
- #define PM_MAX_MUL ((1 << AVR32_SCIF_PLLMUL_SIZE) - 1)
- #define AVR32_PM_PBA_MAX_FREQ 66000000
- #define AVR32_PM_PLL_VCO_RANGE0_MAX_FREQ 240000000
- #define AVR32_PM_PLL_VCO_RANGE0_MIN_FREQ 160000000
-
- // Implementation for UC3C parts.
- // Supported frequencies:
- // Fosc0 mul div PLL div2_en cpu_f pba_f Comment
- // 12 15 1 192 1 12 12
- // 12 9 3 40 1 20 20 PLL out of spec
- // 12 15 1 192 1 24 12
- // 12 9 1 120 1 30 15
- // 12 9 3 40 0 40 20 PLL out of spec
- // 12 15 1 192 1 48 12
- // 12 15 1 192 1 48 24
- // 12 8 1 108 1 54 27
- // 12 9 1 120 1 60 15
- // 12 9 1 120 1 60 30
- // 12 10 1 132 1 66 16.5
- //
- unsigned long in_cpu_f = param->cpu_f;
- unsigned long in_osc0_f = param->osc0_f;
- unsigned long mul, div, div2_en = 0, div2_cpu = 0, div2_pba = 0;
- unsigned long pll_freq, rest;
- Bool b_div2_pba, b_div2_cpu;
-
- // Configure OSC0 in crystal mode, external crystal with a FOSC0 Hz frequency.
- scif_configure_osc_crystalmode(SCIF_OSC0, in_osc0_f);
- // Enable the OSC0
- scif_enable_osc(SCIF_OSC0, param->osc0_startup, true);
- // Set the main clock source as being OSC0.
- pm_set_mclk_source(PM_CLK_SRC_OSC0);
-
- // Start with CPU freq config
- if (in_cpu_f == in_osc0_f)
- {
- param->cpu_f = in_osc0_f;
- param->pba_f = in_osc0_f;
- return PASS;
- }
- else if (in_cpu_f < in_osc0_f)
- {
- // TBD
- }
-
- rest = in_cpu_f % in_osc0_f;
-
- for (div = 1; div < 32; div++)
- {
- if ((div * rest) % in_osc0_f == 0)
- break;
- }
- if (div == 32)
- return FAIL;
-
- mul = (in_cpu_f * div) / in_osc0_f;
-
- if (mul > PM_MAX_MUL)
- return FAIL;
-
- // export 2power from PLL div to div2_cpu
- while (!(div % 2))
- {
- div /= 2;
- div2_cpu++;
- }
-
- // Here we know the mul and div parameter of the PLL config.
- // . Check out if the PLL has a valid in_cpu_f.
- // . Try to have for the PLL frequency (VCO output) the highest possible value
- // to reduce jitter.
- while (in_osc0_f * 2 * mul / div < AVR32_PM_PLL_VCO_RANGE0_MAX_FREQ)
- {
- if (2 * mul > PM_MAX_MUL)
- break;
- mul *= 2;
- div2_cpu++;
- }
-
- if (div2_cpu != 0)
- {
- div2_cpu--;
- div2_en = 1;
- }
-
- pll_freq = in_osc0_f * mul / (div * (1 << div2_en));
-
- // Update real CPU Frequency
- param->cpu_f = pll_freq / (1 << div2_cpu);
- mul--;
-
- scif_pll_opt_t opt;
-
- opt.osc = SCIF_OSC0, // Sel Osc0 or Osc1
- opt.lockcount = 16, // lockcount in main clock for the PLL wait lock
- opt.div = div, // DIV=1 in the formula
- opt.mul = mul, // MUL=7 in the formula
- opt.pll_div2 = div2_en, // pll_div2 Divide the PLL output frequency by 2 (this settings does not change the FVCO value)
- opt.pll_wbwdisable = 0, //pll_wbwdisable 1 Disable the Wide-Bandith Mode (Wide-Bandwith mode allow a faster startup time and out-of-lock time). 0 to enable the Wide-Bandith Mode.
- opt.pll_freq = (pll_freq < AVR32_PM_PLL_VCO_RANGE0_MIN_FREQ) ? 1 : 0, // Set to 1 for VCO frequency range 80-180MHz, set to 0 for VCO frequency range 160-240Mhz.
-
-
- scif_pll_setup(SCIF_PLL0, opt); // lockcount in main clock for the PLL wait lock
-
- /* Enable PLL0 */
- scif_pll_enable(SCIF_PLL0);
-
- /* Wait for PLL0 locked */
- scif_wait_for_pll_locked(SCIF_PLL0) ;
-
- rest = pll_freq;
- while (rest > AVR32_PM_PBA_MAX_FREQ ||
- rest != param->pba_f)
- {
- div2_pba++;
- rest = pll_freq / (1 << div2_pba);
- if (rest < param->pba_f)
- break;
- }
-
- // Update real PBA Frequency
- param->pba_f = pll_freq / (1 << div2_pba);
-
-
- if (div2_cpu)
- {
- b_div2_cpu = TRUE;
- div2_cpu--;
- }
- else
- b_div2_cpu = FALSE;
-
- if (div2_pba)
- {
- b_div2_pba = TRUE;
- div2_pba--;
- }
- else
- b_div2_pba = FALSE;
-
- if (b_div2_cpu == TRUE )
- {
- pm_set_clk_domain_div(PM_CLK_DOMAIN_0, (pm_divratio_t) div2_cpu); // CPU
- pm_set_clk_domain_div(PM_CLK_DOMAIN_1, (pm_divratio_t) div2_cpu); // HSB
- pm_set_clk_domain_div(PM_CLK_DOMAIN_3, (pm_divratio_t) div2_cpu); // PBB
- }
- if (b_div2_pba == TRUE )
- {
- pm_set_clk_domain_div(PM_CLK_DOMAIN_2, (pm_divratio_t) div2_pba); // PBA
- pm_set_clk_domain_div(PM_CLK_DOMAIN_4, (pm_divratio_t) div2_pba); // PBC
- }
-
- // Set Flashc Wait State
- flashc_set_flash_waitstate_and_readmode(param->cpu_f);
-
- // Set the main clock source as being PLL0.
- pm_set_mclk_source(PM_CLK_SRC_PLL0);
-
- return PASS;
-}
-#endif // UC3C device-specific implementation
-
-long int pcl_switch_to_osc(pcl_osc_t osc, unsigned int fcrystal, unsigned int startup)
-{
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Implementation for UC3A, UC3A3, UC3B parts.
- if(PCL_OSC0 == osc)
- {
- // Configure OSC0 in crystal mode, external crystal with a FOSC0 Hz frequency,
- // enable the OSC0, set the main clock source as being OSC0.
- pm_switch_to_osc0(&AVR32_PM, fcrystal, startup);
- }
- else
- {
- return PCL_NOT_SUPPORTED;
- }
-#else
-// Implementation for UC3C, UC3L parts.
- #if AVR32_PM_VERSION_RESETVALUE < 0x400
- return PCL_NOT_SUPPORTED;
- #else
- if(PCL_OSC0 == osc)
- {
- // Configure OSC0 in crystal mode, external crystal with a fcrystal Hz frequency.
- scif_configure_osc_crystalmode(SCIF_OSC0, fcrystal);
- // Enable the OSC0
- scif_enable_osc(SCIF_OSC0, startup, true);
- // Set the Flash wait state and the speed read mode (depending on the target CPU frequency).
-#if UC3L
- flashcdw_set_flash_waitstate_and_readmode(fcrystal);
-#elif UC3C
- flashc_set_flash_waitstate_and_readmode(fcrystal);
-#endif
- // Set the main clock source as being OSC0.
- pm_set_mclk_source(PM_CLK_SRC_OSC0);
- }
- else
- {
- return PCL_NOT_SUPPORTED;
- }
- #endif
-#endif
- return PASS;
-}
-
-long int pcl_configure_usb_clock(void)
-{
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Implementation for UC3A, UC3A3, UC3B parts.
- pm_configure_usb_clock();
- return PASS;
-#else
- #ifdef AVR32_PM_410_H_INCLUDED
- const scif_pll_opt_t opt = {
- .osc = SCIF_OSC0, // Sel Osc0 or Osc1
- .lockcount = 16, // lockcount in main clock for the PLL wait lock
- .div = 1, // DIV=1 in the formula
- .mul = 5, // MUL=7 in the formula
- .pll_div2 = 1, // pll_div2 Divide the PLL output frequency by 2 (this settings does not change the FVCO value)
- .pll_wbwdisable = 0, //pll_wbwdisable 1 Disable the Wide-Bandith Mode (Wide-Bandwith mode allow a faster startup time and out-of-lock time). 0 to enable the Wide-Bandith Mode.
- .pll_freq = 1, // Set to 1 for VCO frequency range 80-180MHz, set to 0 for VCO frequency range 160-240Mhz.
- };
-
- /* Setup PLL1 on Osc0, mul=7 ,no divisor, lockcount=16, ie. 16Mhzx6 = 96MHz output */
- scif_pll_setup(SCIF_PLL1, opt); // lockcount in main clock for the PLL wait lock
-
- /* Enable PLL1 */
- scif_pll_enable(SCIF_PLL1);
-
- /* Wait for PLL1 locked */
- scif_wait_for_pll_locked(SCIF_PLL1) ;
-
- // Implementation for UC3C parts.
- // Setup the generic clock for USB
- scif_gc_setup(AVR32_SCIF_GCLK_USB,
- SCIF_GCCTRL_PLL1,
- AVR32_SCIF_GC_NO_DIV_CLOCK,
- 0);
- // Now enable the generic clock
- scif_gc_enable(AVR32_SCIF_GCLK_USB);
- return PASS;
- #else
- return PCL_NOT_SUPPORTED;
- #endif
-#endif
-}
-
-
-#if UC3L
-#else
-void pcl_write_gplp(unsigned long gplp, unsigned long value)
-{
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Implementation for UC3A, UC3A3, UC3B parts.
- pm_write_gplp(&AVR32_PM,gplp,value);
-#else
- scif_write_gplp(gplp,value);
-#endif
-}
-
-unsigned long pcl_read_gplp(unsigned long gplp)
-{
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Implementation for UC3A, UC3A3, UC3B parts.
- return pm_read_gplp(&AVR32_PM,gplp);
-#else
- return scif_read_gplp(gplp);
-#endif
-}
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.h
deleted file mode 100644
index 28c5888..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.h
+++ /dev/null
@@ -1,379 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief High-level library abstracting features such as oscillators/pll/dfll
- * configuration, clock configuration, System-sensible parameters
- * configuration, buses clocks configuration, sleep mode, reset.
- *
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _POWER_CLOCKS_LIB_H_
-#define _POWER_CLOCKS_LIB_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <avr32/io.h>
-#include "compiler.h"
-
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Support for UC3A, UC3A3, UC3B parts.
- #include "pm.h"
-#else
-//! Device-specific data
-#if UC3L
- #include "pm_uc3l.h"
- #include "scif_uc3l.h"
- #include "flashcdw.h"
-#elif UC3C
- #include "pm_uc3c.h"
- #include "scif_uc3c.h"
- #include "flashc.h"
-#endif
-#endif
-
-/*! \name Clocks Management
- */
-//! @{
-
-//! The different oscillators
-typedef enum
-{
- PCL_OSC0 = 0,
- PCL_OSC1 = 1
-} pcl_osc_t;
-
-//! The different DFLLs
-typedef enum
-{
- PCL_DFLL0 = 0,
- PCL_DFLL1 = 1
-} pcl_dfll_t;
-
-//! Possible Main Clock Sources
-typedef enum
-{
- PCL_MC_RCSYS, // Default main clock source, supported by all (aka Slow Clock)
- PCL_MC_OSC0, // Supported by all
- PCL_MC_OSC1, // Supported by UC3C only
- PCL_MC_OSC0_PLL0, // Supported by UC3A, UC3B, UC3A3, UC3C (the main clock source is PLL0 with OSC0 as reference)
- PCL_MC_OSC1_PLL0, // Supported by UC3A, UC3B, UC3A3, UC3C (the main clock source is PLL0 with OSC1 as reference)
- PCL_MC_OSC0_PLL1, // Supported by UC3C (the main clock source is PLL1 with OSC0 as reference)
- PCL_MC_OSC1_PLL1, // Supported by UC3C (the main clock source is PLL1 with OSC1 as reference)
- PCL_MC_DFLL0, // Supported by UC3L
- PCL_MC_DFLL1, // Not supported yet
- PCL_MC_RC120M, // Supported by UC3L, UC3C
- PCL_MC_RC8M, // Supported by UC3C
- PCL_MC_CRIPOSC // Supported by UC3C
-} pcl_mainclk_t;
-
-//! Input and output parameters to configure clocks with pcl_configure_clocks().
-// NOTE: regarding the frequency settings, always abide by the datasheet rules and min & max supported frequencies.
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Support for UC3A, UC3A3, UC3B parts.
-#define pcl_freq_param_t pm_freq_param_t // See pm.h
-#else
-// Support for UC3C, UC3L parts.
-typedef struct
-{
- //! Main clock source selection (input argument).
- pcl_mainclk_t main_clk_src;
-
- //! Target CPU frequency (input/output argument).
- unsigned long cpu_f;
-
- //! Target PBA frequency (input/output argument).
- unsigned long pba_f;
-
- //! Target PBB frequency (input/output argument).
- unsigned long pbb_f;
-
- //! Target PBC frequency (input/output argument).
- unsigned long pbc_f;
-
- //! Oscillator 0's external crystal(or external clock) frequency (board dependant) (input argument).
- unsigned long osc0_f;
-
- //! Oscillator 0's external crystal(or external clock) startup time: AVR32_PM_OSCCTRL0_STARTUP_x_RCOSC (input argument).
- unsigned long osc0_startup;
-
- //! DFLL target frequency (input/output argument) (NOTE: the bigger, the most stable the frequency)
- unsigned long dfll_f;
-
- //! Other parameters that might be necessary depending on the device (implementation-dependent).
- // For the UC3L DFLL setup, this parameter should be pointing to a structure of
- // type (scif_gclk_opt_t *).
- void *pextra_params;
-} pcl_freq_param_t;
-#endif
-
-//! Define "not supported" for the lib.
-#define PCL_NOT_SUPPORTED (-10000)
-
-/*! \brief Automatically configure the CPU, PBA, PBB, and HSB clocks
- *
- * This function needs some parameters stored in a pcl_freq_param_t structure:
- * - main_clk_src is the id of the main clock source to use,
- * - cpu_f and pba_f and pbb_f are the wanted frequencies,
- * - osc0_f is the oscillator 0's external crystal (or external clock) on-board frequency (e.g. FOSC0),
- * - osc0_startup is the oscillator 0's external crystal (or external clock) startup time (e.g. OSC0_STARTUP).
- * - dfll_f is the target DFLL frequency to set-up if main_clk_src is the dfll.
- *
- * The CPU, HSB and PBA frequencies programmed after configuration are stored back into cpu_f and pba_f.
- *
- * \note: since it is dynamically computing the appropriate field values of the
- * configuration registers from the parameters structure, this function is not
- * optimal in terms of code size. For a code size optimal solution, it is better
- * to create a new function from pcl_configure_clocks() and modify it to use
- * preprocessor computation from pre-defined target frequencies.
- *
- * \param param pointer on the configuration structure.
- *
- * \retval 0 Success.
- * \retval <0 The configuration cannot be performed.
- */
-extern long int pcl_configure_clocks(pcl_freq_param_t *param);
-
-/*! \brief Automatically configure the CPU, PBA, PBB, and HSB clocks using the RCSYS osc as main source clock.
- *
- * This function needs some parameters stored in a pcl_freq_param_t structure:
- * - cpu_f and pba_f and pbb_f are the wanted frequencies
- *
- * Supported main clock sources: PCL_MC_RCSYS
- *
- * Supported synchronous clocks frequencies:
- * 115200Hz, 57600Hz, 28800Hz, 14400Hz, 7200Hz, 3600Hz, 1800Hz, 900Hz, 450Hz.
- *
- * \note: by default, this implementation doesn't perform thorough checks on the
- * input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
- *
- * \note: since it is dynamically computing the appropriate field values of the
- * configuration registers from the parameters structure, this function is not
- * optimal in terms of code size. For a code size optimal solution, it is better
- * to create a new function from pcl_configure_clocks_rcsys() and modify it to use
- * preprocessor computation from pre-defined target frequencies.
- *
- * \param param pointer on the configuration structure.
- *
- * \retval 0 Success.
- * \retval <0 The configuration cannot be performed.
- */
-extern long int pcl_configure_clocks_rcsys(pcl_freq_param_t *param);
-
-/*! \brief Automatically configure the CPU, PBA, PBB, and HSB clocks using the RC120M osc as main source clock.
- *
- * This function needs some parameters stored in a pcl_freq_param_t structure:
- * - cpu_f and pba_f and pbb_f are the wanted frequencies
- *
- * Supported main clock sources: PCL_MC_RC120M
- *
- * Supported synchronous clocks frequencies:
- * 30MHz, 15MHz, 7.5MHz, 3.75MHz, 1.875MHz, 937.5kHz, 468.75kHz.
- *
- * \note: by default, this implementation doesn't perform thorough checks on the
- * input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
- *
- * \note: since it is dynamically computing the appropriate field values of the
- * configuration registers from the parameters structure, this function is not
- * optimal in terms of code size. For a code size optimal solution, it is better
- * to create a new function from pcl_configure_clocks_rc120m() and modify it to
- * use preprocessor computation from pre-defined target frequencies.
- *
- * \param param pointer on the configuration structure.
- *
- * \retval 0 Success.
- * \retval <0 The configuration cannot be performed.
- */
-extern long int pcl_configure_clocks_rc120m(pcl_freq_param_t *param);
-
-/*! \brief Automatically configure the CPU, PBA, PBB, and HSB clocks using the OSC0 osc as main source clock
- *
- * This function needs some parameters stored in a pcl_freq_param_t structure:
- * - cpu_f and pba_f and pbb_f are the wanted frequencies,
- * - osc0_f is the oscillator 0's external crystal (or external clock) on-board frequency (e.g. FOSC0),
- * - osc0_startup is the oscillator 0's external crystal (or external clock) startup time (e.g. OSC0_STARTUP).
- *
- * Supported main clock sources: PCL_MC_OSC0
- *
- * Supported synchronous clocks frequencies:
- * (these obviously depend on the OSC0 frequency; we'll take 16MHz as an example)
- * 16MHz, 8MHz, 4MHz, 2MHz, 1MHz, 500kHz, 250kHz, 125kHz, 62.5kHz.
- *
- * \note: by default, this implementation doesn't perform thorough checks on the
- * input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
- *
- * \note: since it is dynamically computing the appropriate field values of the
- * configuration registers from the parameters structure, this function is not
- * optimal in terms of code size. For a code size optimal solution, it is better
- * to create a new function from pcl_configure_clocks_osc0() and modify it to use
- * preprocessor computation from pre-defined target frequencies.
- *
- * \param param pointer on the configuration structure.
- *
- * \retval 0 Success.
- * \retval <0 The configuration cannot be performed.
- */
-extern long int pcl_configure_clocks_osc0(pcl_freq_param_t *param);
-
-/*! \brief Automatically configure the CPU, PBA, PBB, and HSB clocks using the DFLL0 as main source clock
- *
- * This function needs some parameters stored in a pcl_freq_param_t structure:
- * - cpu_f and pba_f and pbb_f are the wanted frequencies,
- * - dfll_f is the target DFLL frequency to set-up
- *
- * \note: when the DFLL0 is to be used as main source clock for the synchronous clocks,
- * the target frequency of the DFLL should be chosen to be as high as possible
- * within the specification range (for stability reasons); the target cpu and pbx
- * frequencies will then be reached by appropriate division ratio.
- *
- * Supported main clock sources: PCL_MC_DFLL0
- *
- * Supported synchronous clocks frequencies:
- * (these obviously depend on the DFLL target frequency; we'll take 100MHz as an example)
- * 50MHz, 25MHz, 12.5MHz, 6.25MHz, 3.125MHz, 1562.5kHz, 781.25kHz, 390.625kHz.
- *
- * \note: by default, this implementation doesn't perform thorough checks on the
- * input parameters. To enable the checks, define AVR32SFW_INPUT_CHECK.
- *
- * \note: since it is dynamically computing the appropriate field values of the
- * configuration registers from the parameters structure, this function is not
- * optimal in terms of code size. For a code size optimal solution, it is better
- * to create a new function from pcl_configure_clocks_dfll0() and modify it to
- * use preprocessor computation from pre-defined target frequencies.
- *
- * \param param pointer on the configuration structure.
- *
- * \retval 0 Success.
- * \retval <0 The configuration cannot be performed.
- */
-extern long int pcl_configure_clocks_dfll0(pcl_freq_param_t *param);
-
-/*! \brief Switch the main clock source to Osc0 configured in crystal mode
- *
- * \param osc The oscillator to enable and switch to.
- * \param fcrystal Oscillator external crystal frequency (Hz)
- * \param startup Oscillator startup time.
- *
- * \return Status.
- * \retval 0 Success.
- * \retval <0 An error occured.
- */
-extern long int pcl_switch_to_osc(pcl_osc_t osc, unsigned int fcrystal, unsigned int startup);
-
-/*! \brief Enable the clock of a module.
- *
- * \param module The module to clock (use one of the defines in the part-specific
- * header file under "toolchain folder"/avr32/inc(lude)/avr32/; depending on the
- * clock domain, look for the sections "CPU clocks", "HSB clocks", "PBx clocks"
- * or look in the module section).
- *
- * \return Status.
- * \retval 0 Success.
- * \retval <0 An error occured.
- */
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Implementation for UC3A, UC3A3, UC3B parts.
-#define pcl_enable_module(module) pm_enable_module(&AVR32_PM, module)
-#else
-// Implementation for UC3C, UC3L parts.
-#define pcl_enable_module(module) pm_enable_module(module)
-#endif
-
-/*! \brief Disable the clock of a module.
- *
- * \param module The module to shut down (use one of the defines in the part-specific
- * header file under "toolchain folder"/avr32/inc(lude)/avr32/; depending on the
- * clock domain, look for the sections "CPU clocks", "HSB clocks", "PBx clocks"
- * or look in the module section).
- *
- * \return Status.
- * \retval 0 Success.
- * \retval <0 An error occured.
- */
-#ifndef AVR32_PM_VERSION_RESETVALUE
-// Implementation for UC3A, UC3A3, UC3B parts.
-#define pcl_disable_module(module) pm_disable_module(&AVR32_PM, module)
-#else
-// Implementation for UC3C, UC3L parts.
-#define pcl_disable_module(module) pm_disable_module(module)
-#endif
-
-/*! \brief Configure the USB Clock
- *
- *
- * \return Status.
- * \retval 0 Success.
- * \retval <0 An error occured.
- */
-extern long int pcl_configure_usb_clock(void);
-
-//! @}
-
-/*! \name Power Management
- */
-//! @{
-/*!
- * \brief Read the content of the GPLP registers
- * \param gplp GPLP register index (0,1,... depending on the number of GPLP registers for a given part)
- *
- * \return The content of the chosen GPLP register.
- */
-extern unsigned long pcl_read_gplp(unsigned long gplp);
-
-
-/*!
- * \brief Write into the GPLP registers
- * \param gplp GPLP register index (0,1,... depending on the number of GPLP registers for a given part)
- * \param value Value to write
- */
-extern void pcl_write_gplp(unsigned long gplp, unsigned long value);
-
-//! @}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // _POWER_CLOCKS_LIB_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.c
deleted file mode 100644
index 4cbae0f..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief RTC driver for AVR32 UC3.
- *
- * AVR32 Real Time Counter driver module.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an RTC and a PM module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-#include "compiler.h"
-#include "pm.h"
-#include "rtc.h"
-
-
-int rtc_is_busy(volatile avr32_rtc_t *rtc)
-{
- return (rtc->ctrl & AVR32_RTC_CTRL_BUSY_MASK) != 0;
-}
-
-
-int rtc_init(volatile avr32_rtc_t *rtc, unsigned char osc_type, unsigned char psel)
-{
- // If exit, it means that the configuration has not been set correctly
- if (osc_type > (1 << AVR32_RTC_CTRL_CLK32_SIZE) - 1 ||
- psel > (1 << AVR32_RTC_CTRL_PSEL_SIZE) - 1)
- return 0;
-
- // If we use the 32-kHz oscillator, we have to enable it first
- if (osc_type == RTC_OSC_32KHZ)
- {
- // Select the 32-kHz oscillator crystal
- pm_enable_osc32_crystal(&AVR32_PM);
- // Enable the 32-kHz clock
- pm_enable_clk32_no_wait(&AVR32_PM, AVR32_PM_OSCCTRL32_STARTUP_0_RCOSC);
- }
-
- // Wait until the rtc CTRL register is up-to-date
- while (rtc_is_busy(rtc));
-
- // Set the new RTC configuration
- rtc->ctrl = osc_type << AVR32_RTC_CTRL_CLK32_OFFSET |
- psel << AVR32_RTC_CTRL_PSEL_OFFSET |
- AVR32_RTC_CTRL_CLKEN_MASK;
-
- // Wait until write is done
- while (rtc_is_busy(rtc));
-
- // Set the counter value to 0
- rtc_set_value(rtc, 0x00000000);
- // Set the top value to 0xFFFFFFFF
- rtc_set_top_value(rtc, 0xFFFFFFFF);
-
- return 1;
-}
-
-
-void rtc_set_value(volatile avr32_rtc_t *rtc, unsigned long val)
-{
- // Wait until we can write into the VAL register
- while (rtc_is_busy(rtc));
- // Set the new val value
- rtc->val = val;
- // Wait until write is done
- while (rtc_is_busy(rtc));
-}
-
-
-unsigned long rtc_get_value(volatile avr32_rtc_t *rtc)
-{
- return rtc->val;
-}
-
-
-void rtc_enable_wake_up(volatile avr32_rtc_t *rtc)
-{
- // Wait until the rtc CTRL register is up-to-date
- while (rtc_is_busy(rtc));
- // Enable the wake up of the RTC
- rtc->ctrl |= AVR32_RTC_CTRL_WAKE_EN_MASK;
- // Wait until write is done
- while (rtc_is_busy(rtc));
-}
-
-
-void rtc_disable_wake_up(volatile avr32_rtc_t *rtc)
-{
- // Wait until the rtc CTRL register is up-to-date
- while (rtc_is_busy(rtc));
- // Disable the wake up of the RTC
- rtc->ctrl &= ~AVR32_RTC_CTRL_WAKE_EN_MASK;
- // Wait until write is done
- while (rtc_is_busy(rtc));
-}
-
-
-void rtc_enable(volatile avr32_rtc_t *rtc)
-{
- // Wait until the rtc CTRL register is up-to-date
- while (rtc_is_busy(rtc));
- // Enable the RTC
- rtc->ctrl |= AVR32_RTC_CTRL_EN_MASK;
- // Wait until write is done
- while (rtc_is_busy(rtc));
-}
-
-
-void rtc_disable(volatile avr32_rtc_t *rtc)
-{
- // Wait until the rtc CTRL register is up-to-date
- while (rtc_is_busy(rtc));
- // Disable the RTC
- rtc->ctrl &= ~AVR32_RTC_CTRL_EN_MASK;
- // Wait until write is done
- while (rtc_is_busy(rtc));
-}
-
-
-void rtc_enable_interrupt(volatile avr32_rtc_t *rtc)
-{
- rtc->ier = AVR32_RTC_IER_TOPI_MASK;
-}
-
-
-void rtc_disable_interrupt(volatile avr32_rtc_t *rtc)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- rtc->idr = AVR32_RTC_IDR_TOPI_MASK;
- rtc->imr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-void rtc_clear_interrupt(volatile avr32_rtc_t *rtc)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- if (global_interrupt_enabled) Disable_global_interrupt();
- rtc->icr = AVR32_RTC_ICR_TOPI_MASK;
- rtc->isr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-}
-
-
-void rtc_set_top_value(volatile avr32_rtc_t *rtc, unsigned long top)
-{
- // Wait until we can write into the VAL register
- while (rtc_is_busy(rtc));
- // Set the new val value
- rtc->top = top;
- // Wait until write is done
- while (rtc_is_busy(rtc));
-}
-
-
-unsigned long rtc_get_top_value(volatile avr32_rtc_t *rtc)
-{
- return rtc->top;
-}
-
-
-int rtc_interrupt_enabled(volatile avr32_rtc_t *rtc)
-{
- return (rtc->imr & AVR32_RTC_IMR_TOPI_MASK) != 0;
-}
-
-
-int rtc_is_interrupt(volatile avr32_rtc_t *rtc)
-{
- return (rtc->isr & AVR32_RTC_ISR_TOPI_MASK) != 0;
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.h
deleted file mode 100644
index 5702c29..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief RTC driver for AVR32 UC3.
- *
- * AVR32 Real Time Counter driver module.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an RTC and a PM module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _RTC_H_
-#define _RTC_H_
-
-#include "compiler.h"
-#include <avr32/io.h>
-
-
-/*! \name Oscillator Types
- */
-//! @{
-#define RTC_OSC_32KHZ 1
-#define RTC_OSC_RC 0
-//! @}
-
-/*! \name Predefined PSEL Values
- */
-//! @{
-
-//! The PSEL value to set the RTC source clock (after the prescaler) to 1 Hz,
-//! when using an external 32-kHz crystal.
-#define RTC_PSEL_32KHZ_1HZ 14
-
-//! The PSEL value to set the RTC source clock (after the prescaler) to 1.76 Hz,
-//! when using the internal RC oscillator (~ 115 kHz).
-#define RTC_PSEL_RC_1_76HZ 15
-
-//! @}
-
-
-/*!
- * \brief This function will initialise the RTC module.
- * If you use the 32 KHz oscillator, it will enable this module.
- * This function also set the top value of the RTC to 0xFFFFFFFF
- * and the value to 0.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \param osc_type The oscillator you want to use. If you need a better
- * accuracy, use the 32 KHz oscillator (i.e. RTC_OSC_32KHZ).
- * \param psel The preselector value for the corresponding oscillator (4-bits).
- * To obtain this value, you can use this formula:
- * psel = log(Fosc/Frtc)/log(2)-1, where Fosc is the frequency of the
- * oscillator you are using (32 KHz or 115 KHz) and Frtc the frequency
- * desired.
- * \return 1 if the initialisation succeds otherwize it will return 0.
- */
-extern int rtc_init(volatile avr32_rtc_t *rtc, unsigned char osc_type, unsigned char psel);
-
-/*!
- * \brief Enable the RTC.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- */
-extern void rtc_enable(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Disable the RTC.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- */
-extern void rtc_disable(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Enable the wake up feature of the RTC.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- */
-extern void rtc_enable_wake_up(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Disable the wake up feature of the RTC.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- */
-extern void rtc_disable_wake_up(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Enable the interrupt feature of the RTC.
- * An interrupt is raised when the value of the RTC
- * is equal to its top value.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- */
-extern void rtc_enable_interrupt(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Disable the interrupt feature of the RTC.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- */
-extern void rtc_disable_interrupt(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Clear the interrupt flag.
- * Call this function once you handled the interrupt.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- */
-extern void rtc_clear_interrupt(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Get the status of interrupts.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \return 1 if the interrupts are enabled otherwize it returns 0.
- */
-extern int rtc_interrupt_enabled(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief Check if an interrupt is raised.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \return 1 if an interrupt is currently raised otherwize it returns 0.
- */
-extern int rtc_is_interrupt(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief This function sets the RTC current top value.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \param top The top value you want to store.
- */
-extern void rtc_set_top_value(volatile avr32_rtc_t *rtc, unsigned long top);
-
-/*!
- * \brief This function returns the RTC current top value.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \return The RTC current top value.
- */
-extern unsigned long rtc_get_top_value(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief This function checks if the RTC is busy or not.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \return 1 if the RTC is busy otherwize it will return 0.
- */
-extern int rtc_is_busy(volatile avr32_rtc_t *rtc);
-
-/*!
- * \brief This function sets the RTC current value.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \param val The value you want to store.
- */
-extern void rtc_set_value(volatile avr32_rtc_t *rtc, unsigned long val);
-
-/*!
- * \brief This function returns the RTC current value.
- * \param rtc Base address of the RTC (i.e. &AVR32_RTC).
- * \return The RTC current value.
- */
-extern unsigned long rtc_get_value(volatile avr32_rtc_t *rtc);
-
-
-#endif // _RTC_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.c
deleted file mode 100644
index d2b7ccd..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.c
+++ /dev/null
@@ -1,443 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief SPI driver for AVR32 UC3.
- *
- * This file defines a useful set of functions for the SPI interface on AVR32
- * devices.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "spi.h"
-
-#ifdef FREERTOS_USED
-
-#include "FreeRTOS.h"
-#include "semphr.h"
-
-#endif
-
-
-/*! \name SPI Writable Bit-Field Registers
- */
-//! @{
-
-typedef union
-{
- unsigned long cr;
- avr32_spi_cr_t CR;
-} u_avr32_spi_cr_t;
-
-typedef union
-{
- unsigned long mr;
- avr32_spi_mr_t MR;
-} u_avr32_spi_mr_t;
-
-typedef union
-{
- unsigned long tdr;
- avr32_spi_tdr_t TDR;
-} u_avr32_spi_tdr_t;
-
-typedef union
-{
- unsigned long ier;
- avr32_spi_ier_t IER;
-} u_avr32_spi_ier_t;
-
-typedef union
-{
- unsigned long idr;
- avr32_spi_idr_t IDR;
-} u_avr32_spi_idr_t;
-
-typedef union
-{
- unsigned long csr;
- avr32_spi_csr0_t CSR;
-} u_avr32_spi_csr_t;
-
-//! @}
-
-
-#ifdef FREERTOS_USED
-
-//! The SPI mutex.
-static xSemaphoreHandle xSPIMutex;
-
-#endif
-
-
-/*! \brief Calculates the baudrate divider.
- *
- * \param options Pointer to a structure containing initialization options for
- * an SPI channel.
- * \param pba_hz SPI module input clock frequency (PBA clock, Hz).
- *
- * \return Divider or error code.
- * \retval >=0 Success.
- * \retval <0 Error.
- */
-static int getBaudDiv(const spi_options_t *options, unsigned int pba_hz)
-{
- int baudDiv = (pba_hz + options->baudrate / 2) / options->baudrate;
-
- if (baudDiv <= 0 || baudDiv > 255) {
- return -1;
- }
-
- return baudDiv;
-}
-
-
-void spi_reset(volatile avr32_spi_t *spi)
-{
- spi->cr = AVR32_SPI_CR_SWRST_MASK;
-}
-
-
-spi_status_t spi_initSlave(volatile avr32_spi_t *spi,
- unsigned char bits,
- unsigned char spi_mode)
-{
- if (spi_mode > 3 ||
- bits < 8 || bits > 16) {
- return SPI_ERROR_ARGUMENT;
- }
-
- // Reset.
- spi->cr = AVR32_SPI_CR_SWRST_MASK;
-
- // Will use CSR0 offsets; these are the same for CSR0 to CSR3.
- spi->csr0 = ((spi_mode >> 1) << AVR32_SPI_CSR0_CPOL_OFFSET) |
- (((spi_mode & 0x1) ^ 0x1) << AVR32_SPI_CSR0_NCPHA_OFFSET) |
- ((bits - 8) << AVR32_SPI_CSR0_BITS_OFFSET);
-
- return SPI_OK;
-}
-
-
-spi_status_t spi_initTest(volatile avr32_spi_t *spi)
-{
- // Reset.
- spi->cr = AVR32_SPI_CR_SWRST_MASK;
- spi->mr |= AVR32_SPI_MR_MSTR_MASK | // Master Mode.
- AVR32_SPI_MR_LLB_MASK; // Local Loopback.
-
- return SPI_OK;
-}
-
-
-spi_status_t spi_initMaster(volatile avr32_spi_t *spi, const spi_options_t *options)
-{
- u_avr32_spi_mr_t u_avr32_spi_mr;
-
- if (options->modfdis > 1) {
- return SPI_ERROR_ARGUMENT;
- }
-
- // Reset.
- spi->cr = AVR32_SPI_CR_SWRST_MASK;
-
- // Master Mode.
- u_avr32_spi_mr.mr = spi->mr;
- u_avr32_spi_mr.MR.mstr = 1;
- u_avr32_spi_mr.MR.modfdis = options->modfdis;
- u_avr32_spi_mr.MR.llb = 0;
- u_avr32_spi_mr.MR.pcs = (1 << AVR32_SPI_MR_PCS_SIZE) - 1;
- spi->mr = u_avr32_spi_mr.mr;
-
- return SPI_OK;
-}
-
-
-spi_status_t spi_selectionMode(volatile avr32_spi_t *spi,
- unsigned char variable_ps,
- unsigned char pcs_decode,
- unsigned char delay)
-{
- u_avr32_spi_mr_t u_avr32_spi_mr;
-
- if (variable_ps > 1 ||
- pcs_decode > 1) {
- return SPI_ERROR_ARGUMENT;
- }
-
- u_avr32_spi_mr.mr = spi->mr;
- u_avr32_spi_mr.MR.ps = variable_ps;
- u_avr32_spi_mr.MR.pcsdec = pcs_decode;
- u_avr32_spi_mr.MR.dlybcs = delay;
- spi->mr = u_avr32_spi_mr.mr;
-
- return SPI_OK;
-}
-
-
-spi_status_t spi_selectChip(volatile avr32_spi_t *spi, unsigned char chip)
-{
-#ifdef FREERTOS_USED
- while (pdFALSE == xSemaphoreTake(xSPIMutex, 20));
-#endif
-
- // Assert all lines; no peripheral is selected.
- spi->mr |= AVR32_SPI_MR_PCS_MASK;
-
- if (spi->mr & AVR32_SPI_MR_PCSDEC_MASK) {
- // The signal is decoded; allow up to 15 chips.
- if (chip > 14) {
- return SPI_ERROR_ARGUMENT;
- }
-
- spi->mr &= ~AVR32_SPI_MR_PCS_MASK | (chip << AVR32_SPI_MR_PCS_OFFSET);
- } else {
- if (chip > 3) {
- return SPI_ERROR_ARGUMENT;
- }
-
- spi->mr &= ~(1 << (AVR32_SPI_MR_PCS_OFFSET + chip));
- }
-
- return SPI_OK;
-}
-
-
-spi_status_t spi_unselectChip(volatile avr32_spi_t *spi, unsigned char chip)
-{
- unsigned int timeout = SPI_TIMEOUT;
-
- while (!(spi->sr & AVR32_SPI_SR_TXEMPTY_MASK)) {
- if (!timeout--) {
- return SPI_ERROR_TIMEOUT;
- }
- }
-
- // Assert all lines; no peripheral is selected.
- spi->mr |= AVR32_SPI_MR_PCS_MASK;
-
- // Last transfer, so deassert the current NPCS if CSAAT is set.
- spi->cr = AVR32_SPI_CR_LASTXFER_MASK;
-
-#ifdef FREERTOS_USED
- xSemaphoreGive(xSPIMutex);
-#endif
-
- return SPI_OK;
-}
-
-
-spi_status_t spi_setupChipReg(volatile avr32_spi_t *spi,
- const spi_options_t *options,
- unsigned int pba_hz)
-{
- u_avr32_spi_csr_t u_avr32_spi_csr;
-
- if (options->spi_mode > 3 ||
- options->stay_act > 1 ||
- options->bits < 8 || options->bits > 16) {
- return SPI_ERROR_ARGUMENT;
- }
-
- int baudDiv = getBaudDiv(options, pba_hz);
-
- if (baudDiv < 0) {
- return SPI_ERROR_ARGUMENT;
- }
-
- // Will use CSR0 offsets; these are the same for CSR0 to CSR3.
- u_avr32_spi_csr.csr = 0;
- u_avr32_spi_csr.CSR.cpol = options->spi_mode >> 1;
- u_avr32_spi_csr.CSR.ncpha = (options->spi_mode & 0x1) ^ 0x1;
- u_avr32_spi_csr.CSR.csaat = options->stay_act;
- u_avr32_spi_csr.CSR.bits = options->bits - 8;
- u_avr32_spi_csr.CSR.scbr = baudDiv;
- u_avr32_spi_csr.CSR.dlybs = options->spck_delay;
- u_avr32_spi_csr.CSR.dlybct = options->trans_delay;
-
- switch(options->reg) {
- case 0:
- spi->csr0 = u_avr32_spi_csr.csr;
- break;
- case 1:
- spi->csr1 = u_avr32_spi_csr.csr;
- break;
- case 2:
- spi->csr2 = u_avr32_spi_csr.csr;
- break;
- case 3:
- spi->csr3 = u_avr32_spi_csr.csr;
- break;
- default:
- return SPI_ERROR_ARGUMENT;
- }
-
-#ifdef FREERTOS_USED
- if (!xSPIMutex)
- {
- // Create the SPI mutex.
- vSemaphoreCreateBinary(xSPIMutex);
- if (!xSPIMutex)
- {
- while(1);
- }
- }
-#endif
-
- return SPI_OK;
-}
-
-
-void spi_enable(volatile avr32_spi_t *spi)
-{
- spi->cr = AVR32_SPI_CR_SPIEN_MASK;
-}
-
-
-void spi_disable(volatile avr32_spi_t *spi)
-{
- spi->cr = AVR32_SPI_CR_SPIDIS_MASK;
-}
-
-
-int spi_is_enabled(volatile avr32_spi_t *spi)
-{
- return (spi->sr & AVR32_SPI_SR_SPIENS_MASK) != 0;
-}
-
-
-inline unsigned char spi_writeRegisterEmptyCheck(volatile avr32_spi_t *spi)
-{
- return ((spi->sr & AVR32_SPI_SR_TDRE_MASK) != 0);
-}
-
-
-inline spi_status_t spi_write(volatile avr32_spi_t *spi, unsigned short data)
-{
- unsigned int timeout = SPI_TIMEOUT;
-
- while (!(spi->sr & AVR32_SPI_SR_TDRE_MASK)) {
- if (!timeout--) {
- return SPI_ERROR_TIMEOUT;
- }
- }
-
- spi->tdr = data << AVR32_SPI_TDR_TD_OFFSET;
-
- return SPI_OK;
-}
-
-
-spi_status_t spi_variableSlaveWrite(volatile avr32_spi_t *spi, unsigned short data,
- unsigned char pcs, unsigned char lastxfer)
-{
- unsigned int timeout = SPI_TIMEOUT;
-
- if (pcs > 14 || lastxfer > 1) {
- return SPI_ERROR_ARGUMENT;
- }
-
- while (!(spi->sr & AVR32_SPI_SR_TDRE_MASK)) {
- if (!timeout--) {
- return SPI_ERROR_TIMEOUT;
- }
- }
-
- spi->tdr = (data << AVR32_SPI_TDR_TD_OFFSET) |
- (pcs << AVR32_SPI_TDR_PCS_OFFSET) |
- (lastxfer << AVR32_SPI_TDR_LASTXFER_OFFSET);
-
- return SPI_OK;
-}
-
-
-inline unsigned char spi_writeEndCheck(volatile avr32_spi_t *spi)
-{
- return ((spi->sr & AVR32_SPI_SR_TXEMPTY_MASK) != 0);
-}
-
-
-unsigned char spi_readRegisterFullCheck(volatile avr32_spi_t *spi)
-{
- return ((spi->sr & AVR32_SPI_SR_RDRF_MASK) != 0);
-}
-
-
-inline spi_status_t spi_read(volatile avr32_spi_t *spi, unsigned short *data)
-{
- unsigned int timeout = SPI_TIMEOUT;
-
- while ((spi->sr & (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) !=
- (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) {
- if (!timeout--) {
- return SPI_ERROR_TIMEOUT;
- }
- }
-
- *data = spi->rdr >> AVR32_SPI_RDR_RD_OFFSET;
-
- return SPI_OK;
-}
-
-
-unsigned char spi_getStatus(volatile avr32_spi_t *spi)
-{
- spi_status_t ret = SPI_OK;
- unsigned long sr = spi->sr;
-
- if (sr & AVR32_SPI_SR_OVRES_MASK) {
- ret = SPI_ERROR_OVERRUN;
- }
-
- if (sr & AVR32_SPI_SR_MODF_MASK) {
- ret += SPI_ERROR_MODE_FAULT;
- }
-
- if (ret == (SPI_ERROR_OVERRUN + SPI_ERROR_MODE_FAULT)) {
- return SPI_ERROR_OVERRUN_AND_MODE_FAULT;
- }
- else if (ret > 0) {
- return ret;
- } else {
- return SPI_OK;
- }
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.h
deleted file mode 100644
index 6dcc928..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief SPI driver for AVR32 UC3.
- *
- * This file defines a useful set of functions for the SPI interface on AVR32
- * devices.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with an SPI module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _SPI_H_
-#define _SPI_H_
-
-#include <avr32/io.h>
-
-
-//! Time-out value (number of attempts).
-#define SPI_TIMEOUT 10000
-
-
-//! Status codes used by the SPI driver.
-typedef enum
-{
- SPI_ERROR = -1,
- SPI_OK = 0,
- SPI_ERROR_TIMEOUT = 1,
- SPI_ERROR_ARGUMENT,
- SPI_ERROR_OVERRUN,
- SPI_ERROR_MODE_FAULT,
- SPI_ERROR_OVERRUN_AND_MODE_FAULT
-} spi_status_t;
-
-//! Option structure for SPI channels.
-typedef struct
-{
- //! The SPI channel to set up.
- unsigned char reg;
-
- //! Preferred baudrate for the SPI.
- unsigned int baudrate;
-
- //! Number of bits in each character (8 to 16).
- unsigned char bits;
-
- //! Delay before first clock pulse after selecting slave (in PBA clock periods).
- unsigned char spck_delay;
-
- //! Delay between each transfer/character (in PBA clock periods).
- unsigned char trans_delay;
-
- //! Sets this chip to stay active after last transfer to it.
- unsigned char stay_act;
-
- //! Which SPI mode to use when transmitting.
- unsigned char spi_mode;
-
- //! Disables the mode fault detection.
- //! With this bit cleared, the SPI master mode will disable itself if another
- //! master tries to address it.
- unsigned char modfdis;
-} spi_options_t;
-
-
-/*! \brief Resets the SPI controller.
- *
- * \param spi Base address of the SPI instance.
- */
-extern void spi_reset(volatile avr32_spi_t *spi);
-
-/*! \brief Initializes the SPI in slave mode.
- *
- * \param spi Base address of the SPI instance.
- * \param bits Number of bits in each transmitted character (8 to 16).
- * \param spi_mode Clock polarity and phase.
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_ARGUMENT Invalid argument(s) passed.
- */
-extern spi_status_t spi_initSlave(volatile avr32_spi_t *spi,
- unsigned char bits,
- unsigned char spi_mode);
-
-/*! \brief Sets up the SPI in a test mode where the transmitter is connected to
- * the receiver (local loopback).
- *
- * \param spi Base address of the SPI instance.
- *
- * \return Status.
- * \retval SPI_OK Success.
- */
-extern spi_status_t spi_initTest(volatile avr32_spi_t *spi);
-
-/*! \brief Initializes the SPI in master mode.
- *
- * \param spi Base address of the SPI instance.
- * \param options Pointer to a structure containing initialization options.
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_ARGUMENT Invalid argument(s) passed.
- */
-extern spi_status_t spi_initMaster(volatile avr32_spi_t *spi, const spi_options_t *options);
-
-/*! \brief Sets up how and when the slave chips are selected (master mode only).
- *
- * \param spi Base address of the SPI instance.
- * \param variable_ps Target slave is selected in transfer register for every
- * character to transmit.
- * \param pcs_decode The four chip select lines are decoded externally. Values
- * 0 to 14 can be given to \ref spi_selectChip.
- * \param delay Delay in PBA periods between chip selects.
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_ARGUMENT Invalid argument(s) passed.
- */
-extern spi_status_t spi_selectionMode(volatile avr32_spi_t *spi,
- unsigned char variable_ps,
- unsigned char pcs_decode,
- unsigned char delay);
-
-/*! \brief Selects slave chip.
- *
- * \param spi Base address of the SPI instance.
- * \param chip Slave chip number (normal: 0 to 3, extarnally decoded signal: 0
- * to 14).
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_ARGUMENT Invalid argument(s) passed.
- */
-extern spi_status_t spi_selectChip(volatile avr32_spi_t *spi, unsigned char chip);
-
-/*! \brief Unselects slave chip.
- *
- * \param spi Base address of the SPI instance.
- * \param chip Slave chip number (normal: 0 to 3, extarnally decoded signal: 0
- * to 14).
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_TIMEOUT Time-out.
- *
- * \note Will block program execution until time-out occurs if last transmission
- * is not complete. Invoke \ref spi_writeEndCheck beforehand if needed.
- */
-extern spi_status_t spi_unselectChip(volatile avr32_spi_t *spi, unsigned char chip);
-
-/*! \brief Sets options for a specific slave chip.
- *
- * The baudrate field has to be written before transfer in master mode. Four
- * similar registers exist, one for each slave. When using encoded slave
- * addressing, reg=0 sets options for slaves 0 to 3, reg=1 for slaves 4 to 7 and
- * so on.
- *
- * \param spi Base address of the SPI instance.
- * \param options Pointer to a structure containing initialization options for
- * an SPI channel.
- * \param pba_hz SPI module input clock frequency (PBA clock, Hz).
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_ARGUMENT Invalid argument(s) passed.
- */
-extern spi_status_t spi_setupChipReg(volatile avr32_spi_t *spi,
- const spi_options_t *options,
- unsigned int pba_hz);
-
-/*! \brief Enables the SPI.
- *
- * \param spi Base address of the SPI instance.
- */
-extern void spi_enable(volatile avr32_spi_t *spi);
-
-/*! \brief Disables the SPI.
- *
- * Ensures that nothing is transferred while setting up buffers.
- *
- * \param spi Base address of the SPI instance.
- *
- * \warning This may cause data loss if used on a slave SPI.
- */
-extern void spi_disable(volatile avr32_spi_t *spi);
-
-/*! \brief Tests if the SPI is enabled.
- *
- * \param spi Base address of the SPI instance.
- *
- * \return \c 1 if the SPI is enabled, otherwise \c 0.
- */
-extern int spi_is_enabled(volatile avr32_spi_t *spi);
-
-/*! \brief Checks if there is no data in the transmit register.
- *
- * \param spi Base address of the SPI instance.
- *
- * \return Status.
- * \retval 1 No data in TDR.
- * \retval 0 Some data in TDR.
- */
-extern unsigned char spi_writeRegisterEmptyCheck(volatile avr32_spi_t *spi);
-
-/*! \brief Writes one data word in master fixed peripheral select mode or in
- * slave mode.
- *
- * \param spi Base address of the SPI instance.
- * \param data The data word to write.
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_TIMEOUT Time-out.
- *
- * \note Will block program execution until time-out occurs if transmitter is
- * busy and transmit buffer is full. Invoke
- * \ref spi_writeRegisterEmptyCheck beforehand if needed.
- *
- * \note Once the data has been written to the transmit buffer, the end of
- * transmission is not waited for. Invoke \ref spi_writeEndCheck if
- * needed.
- */
-extern spi_status_t spi_write(volatile avr32_spi_t *spi, unsigned short data);
-
-/*! \brief Selects a slave in master variable peripheral select mode and writes
- * one data word to it.
- *
- * \param spi Base address of the SPI instance.
- * \param data The data word to write.
- * \param pcs Slave selector (bit 0 -> nCS line 0, bit 1 -> nCS line 1,
- * etc.).
- * \param lastxfer Boolean indicating whether this is the last data word
- * transfer.
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_TIMEOUT Time-out.
- * \retval SPI_ERROR_ARGUMENT Invalid argument(s) passed.
- *
- * \note Will block program execution until time-out occurs if transmitter is
- * busy and transmit buffer is full. Invoke
- * \ref spi_writeRegisterEmptyCheck beforehand if needed.
- *
- * \note Once the data has been written to the transmit buffer, the end of
- * transmission is not waited for. Invoke \ref spi_writeEndCheck if
- * needed.
- */
-extern spi_status_t spi_variableSlaveWrite(volatile avr32_spi_t *spi,
- unsigned short data,
- unsigned char pcs,
- unsigned char lastxfer);
-
-/*! \brief Checks if all transmissions are complete.
- *
- * \param spi Base address of the SPI instance.
- *
- * \return Status.
- * \retval 1 All transmissions complete.
- * \retval 0 Transmissions not complete.
- */
-extern unsigned char spi_writeEndCheck(volatile avr32_spi_t *spi);
-
-/*! \brief Checks if there is data in the receive register.
- *
- * \param spi Base address of the SPI instance.
- *
- * \return Status.
- * \retval 1 Some data in RDR.
- * \retval 0 No data in RDR.
- */
-extern unsigned char spi_readRegisterFullCheck(volatile avr32_spi_t *spi);
-
-/*! \brief Reads one data word in master mode or in slave mode.
- *
- * \param spi Base address of the SPI instance.
- * \param data Pointer to the location where to store the received data word.
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_TIMEOUT Time-out.
- *
- * \note Will block program execution until time-out occurs if no data is
- * received or last transmission is not complete. Invoke
- * \ref spi_writeEndCheck or \ref spi_readRegisterFullCheck beforehand if
- * needed.
- */
-extern spi_status_t spi_read(volatile avr32_spi_t *spi, unsigned short *data);
-
-/*! \brief Gets status information from the SPI.
- *
- * \param spi Base address of the SPI instance.
- *
- * \return Status.
- * \retval SPI_OK Success.
- * \retval SPI_ERROR_OVERRUN Overrun error.
- * \retval SPI_ERROR_MODE_FAULT Mode fault (SPI addressed as slave
- * while in master mode).
- * \retval SPI_ERROR_OVERRUN_AND_MODE_FAULT Overrun error and mode fault.
- */
-extern unsigned char spi_getStatus(volatile avr32_spi_t *spi);
-
-
-#endif // _SPI_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.c
deleted file mode 100644
index 225642e..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.c
+++ /dev/null
@@ -1,314 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief TC driver for AVR32 UC3.
- *
- * AVR32 Timer/Counter driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a TC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-#include "compiler.h"
-#include "tc.h"
-
-
-int tc_get_interrupt_settings(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- return tc->channel[channel].imr;
-}
-
-
-int tc_configure_interrupts(volatile avr32_tc_t *tc, unsigned int channel, const tc_interrupt_t *bitfield)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // Enable the appropriate interrupts.
- tc->channel[channel].ier = bitfield->etrgs << AVR32_TC_ETRGS_OFFSET |
- bitfield->ldrbs << AVR32_TC_LDRBS_OFFSET |
- bitfield->ldras << AVR32_TC_LDRAS_OFFSET |
- bitfield->cpcs << AVR32_TC_CPCS_OFFSET |
- bitfield->cpbs << AVR32_TC_CPBS_OFFSET |
- bitfield->cpas << AVR32_TC_CPAS_OFFSET |
- bitfield->lovrs << AVR32_TC_LOVRS_OFFSET |
- bitfield->covfs << AVR32_TC_COVFS_OFFSET;
-
- // Disable the appropriate interrupts.
- if (global_interrupt_enabled) Disable_global_interrupt();
- tc->channel[channel].idr = (~bitfield->etrgs & 1) << AVR32_TC_ETRGS_OFFSET |
- (~bitfield->ldrbs & 1) << AVR32_TC_LDRBS_OFFSET |
- (~bitfield->ldras & 1) << AVR32_TC_LDRAS_OFFSET |
- (~bitfield->cpcs & 1) << AVR32_TC_CPCS_OFFSET |
- (~bitfield->cpbs & 1) << AVR32_TC_CPBS_OFFSET |
- (~bitfield->cpas & 1) << AVR32_TC_CPAS_OFFSET |
- (~bitfield->lovrs & 1) << AVR32_TC_LOVRS_OFFSET |
- (~bitfield->covfs & 1) << AVR32_TC_COVFS_OFFSET;
- tc->channel[channel].sr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-
- return 0;
-}
-
-
-int tc_select_external_clock(volatile avr32_tc_t *tc, unsigned int channel, unsigned int ext_clk_sig_src)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS || ext_clk_sig_src >= 1 << AVR32_TC_BMR_TC0XC0S_SIZE)
- return TC_INVALID_ARGUMENT;
-
- // Clear bit-field and set the correct behavior.
- tc->bmr = (tc->bmr & ~(AVR32_TC_BMR_TC0XC0S_MASK << (channel * AVR32_TC_BMR_TC0XC0S_SIZE))) |
- (ext_clk_sig_src << (channel * AVR32_TC_BMR_TC0XC0S_SIZE));
-
- return 0;
-}
-
-
-int tc_init_capture(volatile avr32_tc_t *tc, const tc_capture_opt_t *opt)
-{
- // Check for valid input.
- if (opt->channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // MEASURE SIGNALS: Capture operating mode.
- tc->channel[opt->channel].cmr = opt->ldrb << AVR32_TC_LDRB_OFFSET |
- opt->ldra << AVR32_TC_LDRA_OFFSET |
- 0 << AVR32_TC_WAVE_OFFSET |
- opt->cpctrg << AVR32_TC_CPCTRG_OFFSET |
- opt->abetrg << AVR32_TC_ABETRG_OFFSET |
- opt->etrgedg << AVR32_TC_ETRGEDG_OFFSET|
- opt->ldbdis << AVR32_TC_LDBDIS_OFFSET |
- opt->ldbstop << AVR32_TC_LDBSTOP_OFFSET |
- opt->burst << AVR32_TC_BURST_OFFSET |
- opt->clki << AVR32_TC_CLKI_OFFSET |
- opt->tcclks << AVR32_TC_TCCLKS_OFFSET;
-
- return 0;
-}
-
-
-int tc_init_waveform(volatile avr32_tc_t *tc, const tc_waveform_opt_t *opt)
-{
- // Check for valid input.
- if (opt->channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // GENERATE SIGNALS: Waveform operating mode.
- tc->channel[opt->channel].cmr = opt->bswtrg << AVR32_TC_BSWTRG_OFFSET |
- opt->beevt << AVR32_TC_BEEVT_OFFSET |
- opt->bcpc << AVR32_TC_BCPC_OFFSET |
- opt->bcpb << AVR32_TC_BCPB_OFFSET |
- opt->aswtrg << AVR32_TC_ASWTRG_OFFSET |
- opt->aeevt << AVR32_TC_AEEVT_OFFSET |
- opt->acpc << AVR32_TC_ACPC_OFFSET |
- opt->acpa << AVR32_TC_ACPA_OFFSET |
- 1 << AVR32_TC_WAVE_OFFSET |
- opt->wavsel << AVR32_TC_WAVSEL_OFFSET |
- opt->enetrg << AVR32_TC_ENETRG_OFFSET |
- opt->eevt << AVR32_TC_EEVT_OFFSET |
- opt->eevtedg << AVR32_TC_EEVTEDG_OFFSET |
- opt->cpcdis << AVR32_TC_CPCDIS_OFFSET |
- opt->cpcstop << AVR32_TC_CPCSTOP_OFFSET |
- opt->burst << AVR32_TC_BURST_OFFSET |
- opt->clki << AVR32_TC_CLKI_OFFSET |
- opt->tcclks << AVR32_TC_TCCLKS_OFFSET;
-
- return 0;
-}
-
-
-int tc_start(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // Enable, reset and start the selected timer/counter channel.
- tc->channel[channel].ccr = AVR32_TC_SWTRG_MASK | AVR32_TC_CLKEN_MASK;
-
- return 0;
-}
-
-
-int tc_stop(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // Disable the selected timer/counter channel.
- tc->channel[channel].ccr = AVR32_TC_CLKDIS_MASK;
-
- return 0;
-}
-
-
-int tc_software_trigger(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // Reset the selected timer/counter channel.
- tc->channel[channel].ccr = AVR32_TC_SWTRG_MASK;
-
- return 0;
-}
-
-
-void tc_sync_trigger(volatile avr32_tc_t *tc)
-{
- // Reset all channels of the selected timer/counter.
- tc->bcr = AVR32_TC_BCR_SYNC_MASK;
-}
-
-
-void tc_sync_start(volatile avr32_tc_t *tc)
-{
- unsigned int i;
- // Enable the clock for each channel.
- for(i=0; i<TC_NUMBER_OF_CHANNELS;i++)
- tc->channel[i].ccr = AVR32_TC_CLKEN_MASK;
-
- // Reset all channels of the selected timer/counter.
- tc->bcr = AVR32_TC_BCR_SYNC_MASK;
-}
-
-
-int tc_read_sr(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- return tc->channel[channel].sr;
-}
-
-
-int tc_read_tc(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- return Rd_bitfield(tc->channel[channel].cv, AVR32_TC_CV_MASK);
-}
-
-
-int tc_read_ra(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- return Rd_bitfield(tc->channel[channel].ra, AVR32_TC_RA_MASK);
-}
-
-
-int tc_read_rb(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- return Rd_bitfield(tc->channel[channel].rb, AVR32_TC_RB_MASK);
-}
-
-
-int tc_read_rc(volatile avr32_tc_t *tc, unsigned int channel)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- return Rd_bitfield(tc->channel[channel].rc, AVR32_TC_RC_MASK);
-}
-
-
-int tc_write_ra(volatile avr32_tc_t *tc, unsigned int channel, unsigned short value)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // This function is only available in WAVEFORM mode.
- if (Tst_bits(tc->channel[channel].cmr, AVR32_TC_WAVE_MASK))
- Wr_bitfield(tc->channel[channel].ra, AVR32_TC_RA_MASK, value);
-
- return value;
-}
-
-
-int tc_write_rb(volatile avr32_tc_t *tc, unsigned int channel, unsigned short value)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // This function is only available in WAVEFORM mode.
- if (Tst_bits(tc->channel[channel].cmr, AVR32_TC_WAVE_MASK))
- Wr_bitfield(tc->channel[channel].rb, AVR32_TC_RB_MASK, value);
-
- return value;
-}
-
-
-int tc_write_rc(volatile avr32_tc_t *tc, unsigned int channel, unsigned short value)
-{
- // Check for valid input.
- if (channel >= TC_NUMBER_OF_CHANNELS)
- return TC_INVALID_ARGUMENT;
-
- // This function is only available in WAVEFORM mode.
- if (Tst_bits(tc->channel[channel].cmr, AVR32_TC_WAVE_MASK))
- Wr_bitfield(tc->channel[channel].rc, AVR32_TC_RC_MASK, value);
-
- return value;
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.h
deleted file mode 100644
index 45ef4f2..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.h
+++ /dev/null
@@ -1,591 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Timer/Counter driver for AVR32 UC3.
- *
- * AVR32 Timer/Counter driver module.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a TC module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _TC_H_
-#define _TC_H_
-
-#include <avr32/io.h>
-
-
-//! TC driver functions return value in case of invalid argument(s).
-#define TC_INVALID_ARGUMENT (-1)
-
-//! Number of timer/counter channels.
-#define TC_NUMBER_OF_CHANNELS (sizeof(((avr32_tc_t *)0)->channel) / sizeof(avr32_tc_channel_t))
-
-/*! \name External Clock Signal 0 Selection
- */
-//! @{
-#define TC_CH0_EXT_CLK0_SRC_TCLK0 AVR32_TC_TC0XC0S_TCLK0
-#define TC_CH0_EXT_CLK0_SRC_NO_CLK AVR32_TC_TC0XC0S_NO_CLK
-#define TC_CH0_EXT_CLK0_SRC_TIOA1 AVR32_TC_TC0XC0S_TIOA1
-#define TC_CH0_EXT_CLK0_SRC_TIOA2 AVR32_TC_TC0XC0S_TIOA2
-//! @}
-
-/*! \name External Clock Signal 1 Selection
- */
-//! @{
-#define TC_CH1_EXT_CLK1_SRC_TCLK1 AVR32_TC_TC1XC1S_TCLK1
-#define TC_CH1_EXT_CLK1_SRC_NO_CLK AVR32_TC_TC1XC1S_NO_CLK
-#define TC_CH1_EXT_CLK1_SRC_TIOA0 AVR32_TC_TC1XC1S_TIOA0
-#define TC_CH1_EXT_CLK1_SRC_TIOA2 AVR32_TC_TC1XC1S_TIOA2
-//! @}
-
-/*! \name External Clock Signal 2 Selection
- */
-//! @{
-#define TC_CH2_EXT_CLK2_SRC_TCLK2 AVR32_TC_TC2XC2S_TCLK2
-#define TC_CH2_EXT_CLK2_SRC_NO_CLK AVR32_TC_TC2XC2S_NO_CLK
-#define TC_CH2_EXT_CLK2_SRC_TIOA0 AVR32_TC_TC2XC2S_TIOA0
-#define TC_CH2_EXT_CLK2_SRC_TIOA1 AVR32_TC_TC2XC2S_TIOA1
-//! @}
-
-/*! \name Event/Trigger Actions on Output
- */
-//! @{
-#define TC_EVT_EFFECT_NOOP AVR32_TC_NONE
-#define TC_EVT_EFFECT_SET AVR32_TC_SET
-#define TC_EVT_EFFECT_CLEAR AVR32_TC_CLEAR
-#define TC_EVT_EFFECT_TOGGLE AVR32_TC_TOGGLE
-//! @}
-
-/*! \name RC Compare Trigger Enable
- */
-//! @{
-#define TC_NO_TRIGGER_COMPARE_RC 0
-#define TC_TRIGGER_COMPARE_RC 1
-//! @}
-
-/*! \name Waveform Selection
- */
-//! @{
-#define TC_WAVEFORM_SEL_UP_MODE AVR32_TC_WAVSEL_UP_NO_AUTO
-#define TC_WAVEFORM_SEL_UP_MODE_RC_TRIGGER AVR32_TC_WAVSEL_UP_AUTO
-#define TC_WAVEFORM_SEL_UPDOWN_MODE AVR32_TC_WAVSEL_UPDOWN_NO_AUTO
-#define TC_WAVEFORM_SEL_UPDOWN_MODE_RC_TRIGGER AVR32_TC_WAVSEL_UPDOWN_AUTO
-//! @}
-
-/*! \name TIOA or TIOB External Trigger Selection
- */
-//! @{
-#define TC_EXT_TRIG_SEL_TIOA 1
-#define TC_EXT_TRIG_SEL_TIOB 0
-//! @}
-
-/*! \name External Event Selection
- */
-//! @{
-#define TC_EXT_EVENT_SEL_TIOB_INPUT AVR32_TC_EEVT_TIOB_INPUT
-#define TC_EXT_EVENT_SEL_XC0_OUTPUT AVR32_TC_EEVT_XC0_OUTPUT
-#define TC_EXT_EVENT_SEL_XC1_OUTPUT AVR32_TC_EEVT_XC1_OUTPUT
-#define TC_EXT_EVENT_SEL_XC2_OUTPUT AVR32_TC_EEVT_XC2_OUTPUT
-//! @}
-
-/*! \name Edge Selection
- */
-//! @{
-#define TC_SEL_NO_EDGE AVR32_TC_EEVTEDG_NO_EDGE
-#define TC_SEL_RISING_EDGE AVR32_TC_EEVTEDG_POS_EDGE
-#define TC_SEL_FALLING_EDGE AVR32_TC_EEVTEDG_NEG_EDGE
-#define TC_SEL_EACH_EDGE AVR32_TC_EEVTEDG_BOTH_EDGES
-//! @}
-
-/*! \name Burst Signal Selection
- */
-//! @{
-#define TC_BURST_NOT_GATED AVR32_TC_BURST_NOT_GATED
-#define TC_BURST_CLK_AND_XC0 AVR32_TC_BURST_CLK_AND_XC0
-#define TC_BURST_CLK_AND_XC1 AVR32_TC_BURST_CLK_AND_XC1
-#define TC_BURST_CLK_AND_XC2 AVR32_TC_BURST_CLK_AND_XC2
-//! @}
-
-/*! \name Clock Invert
- */
-//! @{
-#define TC_CLOCK_RISING_EDGE 0
-#define TC_CLOCK_FALLING_EDGE 1
-//! @}
-
-/*! \name Clock Selection
- */
-//! @{
-#define TC_CLOCK_SOURCE_TC1 AVR32_TC_TCCLKS_TIMER_CLOCK1
-#define TC_CLOCK_SOURCE_TC2 AVR32_TC_TCCLKS_TIMER_CLOCK2
-#define TC_CLOCK_SOURCE_TC3 AVR32_TC_TCCLKS_TIMER_CLOCK3
-#define TC_CLOCK_SOURCE_TC4 AVR32_TC_TCCLKS_TIMER_CLOCK4
-#define TC_CLOCK_SOURCE_TC5 AVR32_TC_TCCLKS_TIMER_CLOCK5
-#define TC_CLOCK_SOURCE_XC0 AVR32_TC_TCCLKS_XC0
-#define TC_CLOCK_SOURCE_XC1 AVR32_TC_TCCLKS_XC1
-#define TC_CLOCK_SOURCE_XC2 AVR32_TC_TCCLKS_XC2
-//! @}
-
-
-//! Timer/counter interrupts.
-typedef struct
-{
- unsigned int :24;
-
- //! External trigger interrupt.
- unsigned int etrgs : 1;
-
- //! RB load interrupt.
- unsigned int ldrbs : 1;
-
- //! RA load interrupt.
- unsigned int ldras : 1;
-
- //! RC compare interrupt.
- unsigned int cpcs : 1;
-
- //! RB compare interrupt.
- unsigned int cpbs : 1;
-
- //! RA compare interrupt.
- unsigned int cpas : 1;
-
- //! Load overrun interrupt.
- unsigned int lovrs : 1;
-
- //! Counter overflow interrupt.
- unsigned int covfs : 1;
-} tc_interrupt_t;
-
-//! Parameters when initializing a timer/counter in capture mode.
-typedef struct
-{
- //! Channel to initialize.
- unsigned int channel ;
-
- unsigned int :12;
-
- //! RB loading selection:\n
- //! - \ref TC_SEL_NO_EDGE;\n
- //! - \ref TC_SEL_RISING_EDGE;\n
- //! - \ref TC_SEL_FALLING_EDGE;\n
- //! - \ref TC_SEL_EACH_EDGE.
- unsigned int ldrb : 2;
-
- //! RA loading selection:\n
- //! - \ref TC_SEL_NO_EDGE;\n
- //! - \ref TC_SEL_RISING_EDGE;\n
- //! - \ref TC_SEL_FALLING_EDGE;\n
- //! - \ref TC_SEL_EACH_EDGE.
- unsigned int ldra : 2;
-
- unsigned int : 1;
-
- //! RC compare trigger enable:\n
- //! - \ref TC_NO_TRIGGER_COMPARE_RC;\n
- //! - \ref TC_TRIGGER_COMPARE_RC.
- unsigned int cpctrg : 1;
-
- unsigned int : 3;
-
- //! TIOA or TIOB external trigger selection:\n
- //! - \ref TC_EXT_TRIG_SEL_TIOA;\n
- //! - \ref TC_EXT_TRIG_SEL_TIOB.
- unsigned int abetrg : 1;
-
- //! External trigger edge selection:\n
- //! - \ref TC_SEL_NO_EDGE;\n
- //! - \ref TC_SEL_RISING_EDGE;\n
- //! - \ref TC_SEL_FALLING_EDGE;\n
- //! - \ref TC_SEL_EACH_EDGE.
- unsigned int etrgedg : 2;
-
- //! Counter clock disable with RB loading:\n
- //! - \c FALSE;\n
- //! - \c TRUE.
- unsigned int ldbdis : 1;
-
- //! Counter clock stopped with RB loading:\n
- //! - \c FALSE;\n
- //! - \c TRUE.
- unsigned int ldbstop : 1;
-
- //! Burst signal selection:\n
- //! - \ref TC_BURST_NOT_GATED;\n
- //! - \ref TC_BURST_CLK_AND_XC0;\n
- //! - \ref TC_BURST_CLK_AND_XC1;\n
- //! - \ref TC_BURST_CLK_AND_XC2.
- unsigned int burst : 2;
-
- //! Clock invert:\n
- //! - \ref TC_CLOCK_RISING_EDGE;\n
- //! - \ref TC_CLOCK_FALLING_EDGE.
- unsigned int clki : 1;
-
- //! Clock selection:\n
- //! - \ref TC_CLOCK_SOURCE_TC1;\n
- //! - \ref TC_CLOCK_SOURCE_TC2;\n
- //! - \ref TC_CLOCK_SOURCE_TC3;\n
- //! - \ref TC_CLOCK_SOURCE_TC4;\n
- //! - \ref TC_CLOCK_SOURCE_TC5;\n
- //! - \ref TC_CLOCK_SOURCE_XC0;\n
- //! - \ref TC_CLOCK_SOURCE_XC1;\n
- //! - \ref TC_CLOCK_SOURCE_XC2.
- unsigned int tcclks : 3;
-} tc_capture_opt_t;
-
-//! Parameters when initializing a timer/counter in waveform mode.
-typedef struct
-{
- //! Channel to initialize.
- unsigned int channel ;
-
- //! Software trigger effect on TIOB:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int bswtrg : 2;
-
- //! External event effect on TIOB:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int beevt : 2;
-
- //! RC compare effect on TIOB:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int bcpc : 2;
-
- //! RB compare effect on TIOB:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int bcpb : 2;
-
- //! Software trigger effect on TIOA:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int aswtrg : 2;
-
- //! External event effect on TIOA:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int aeevt : 2;
-
- //! RC compare effect on TIOA:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int acpc : 2;
-
- //! RA compare effect on TIOA:\n
- //! - \ref TC_EVT_EFFECT_NOOP;\n
- //! - \ref TC_EVT_EFFECT_SET;\n
- //! - \ref TC_EVT_EFFECT_CLEAR;\n
- //! - \ref TC_EVT_EFFECT_TOGGLE.
- unsigned int acpa : 2;
-
- unsigned int : 1;
-
- //! Waveform selection:\n
- //! - \ref TC_WAVEFORM_SEL_UP_MODE;\n
- //! - \ref TC_WAVEFORM_SEL_UP_MODE_RC_TRIGGER;\n
- //! - \ref TC_WAVEFORM_SEL_UPDOWN_MODE;\n
- //! - \ref TC_WAVEFORM_SEL_UPDOWN_MODE_RC_TRIGGER.
- unsigned int wavsel : 2;
-
- //! External event trigger enable:\n
- //! - \c FALSE;\n
- //! - \c TRUE.
- unsigned int enetrg : 1;
-
- //! External event selection:\n
- //! - \ref TC_EXT_EVENT_SEL_TIOB_INPUT;\n
- //! - \ref TC_EXT_EVENT_SEL_XC0_OUTPUT;\n
- //! - \ref TC_EXT_EVENT_SEL_XC1_OUTPUT;\n
- //! - \ref TC_EXT_EVENT_SEL_XC2_OUTPUT.
- unsigned int eevt : 2;
-
- //! External event edge selection:\n
- //! - \ref TC_SEL_NO_EDGE;\n
- //! - \ref TC_SEL_RISING_EDGE;\n
- //! - \ref TC_SEL_FALLING_EDGE;\n
- //! - \ref TC_SEL_EACH_EDGE.
- unsigned int eevtedg : 2;
-
- //! Counter clock disable with RC compare:\n
- //! - \c FALSE;\n
- //! - \c TRUE.
- unsigned int cpcdis : 1;
-
- //! Counter clock stopped with RC compare:\n
- //! - \c FALSE;\n
- //! - \c TRUE.
- unsigned int cpcstop : 1;
-
- //! Burst signal selection:\n
- //! - \ref TC_BURST_NOT_GATED;\n
- //! - \ref TC_BURST_CLK_AND_XC0;\n
- //! - \ref TC_BURST_CLK_AND_XC1;\n
- //! - \ref TC_BURST_CLK_AND_XC2.
- unsigned int burst : 2;
-
- //! Clock invert:\n
- //! - \ref TC_CLOCK_RISING_EDGE;\n
- //! - \ref TC_CLOCK_FALLING_EDGE.
- unsigned int clki : 1;
-
- //! Clock selection:\n
- //! - \ref TC_CLOCK_SOURCE_TC1;\n
- //! - \ref TC_CLOCK_SOURCE_TC2;\n
- //! - \ref TC_CLOCK_SOURCE_TC3;\n
- //! - \ref TC_CLOCK_SOURCE_TC4;\n
- //! - \ref TC_CLOCK_SOURCE_TC5;\n
- //! - \ref TC_CLOCK_SOURCE_XC0;\n
- //! - \ref TC_CLOCK_SOURCE_XC1;\n
- //! - \ref TC_CLOCK_SOURCE_XC2.
- unsigned int tcclks : 3;
-} tc_waveform_opt_t;
-
-
-/*! \brief Reads timer/counter interrupt settings.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval >=0 The interrupt enable configuration organized according to \ref tc_interrupt_t.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_get_interrupt_settings(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Enables various timer/counter interrupts.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- * \param bitfield The interrupt enable configuration.
- *
- * \retval 0 Success.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_configure_interrupts(volatile avr32_tc_t *tc, unsigned int channel, const tc_interrupt_t *bitfield);
-
-/*! \brief Selects which external clock to use and how to configure it.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- * \param ext_clk_sig_src External clock signal selection:
- * \arg \c TC_CH0_EXT_CLK0_SRC_TCLK0;
- * \arg \c TC_CH0_EXT_CLK0_SRC_NO_CLK;
- * \arg \c TC_CH0_EXT_CLK0_SRC_TIOA1;
- * \arg \c TC_CH0_EXT_CLK0_SRC_TIOA2;
- * \arg \c TC_CH1_EXT_CLK1_SRC_TCLK1;
- * \arg \c TC_CH1_EXT_CLK1_SRC_NO_CLK;
- * \arg \c TC_CH1_EXT_CLK1_SRC_TIOA0;
- * \arg \c TC_CH1_EXT_CLK1_SRC_TIOA2;
- * \arg \c TC_CH2_EXT_CLK2_SRC_TCLK2;
- * \arg \c TC_CH2_EXT_CLK2_SRC_NO_CLK;
- * \arg \c TC_CH2_EXT_CLK2_SRC_TIOA0;
- * \arg \c TC_CH2_EXT_CLK2_SRC_TIOA1.
- *
- * \retval 0 Success.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_select_external_clock(volatile avr32_tc_t *tc, unsigned int channel, unsigned int ext_clk_sig_src);
-
-/*! \brief Sets options for timer/counter capture initialization.
- *
- * \param tc Pointer to the TC instance to access.
- * \param opt Options for capture mode.
- *
- * \retval 0 Success.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_init_capture(volatile avr32_tc_t *tc, const tc_capture_opt_t *opt);
-
-/*! \brief Sets options for timer/counter waveform initialization.
- *
- * \param tc Pointer to the TC instance to access.
- * \param opt Options for waveform generation.
- *
- * \retval 0 Success.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_init_waveform(volatile avr32_tc_t *tc, const tc_waveform_opt_t *opt);
-
-/*! \brief Starts a timer/counter.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval 0 Success.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_start(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Stops a timer/counter.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval 0 Success.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_stop(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Performs a software trigger: the counter is reset and the clock is started.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval 0 Success.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_software_trigger(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Asserts a SYNC signal to generate a software trigger and reset all channels.
- *
- * \param tc Pointer to the TC instance to access.
- */
-extern void tc_sync_trigger(volatile avr32_tc_t *tc);
-
-/*! \brief Start all TC channels simultaneously.
- *
- * \param tc Pointer to the TC instance to access.
- */
-extern void tc_sync_start(volatile avr32_tc_t *tc);
-
-/*! \brief Reads the status register.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval >=0 Status register value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_read_sr(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Reads the channel's TC counter and returns the value.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval >=0 TC counter value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_read_tc(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Reads the channel's RA register and returns the value.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval >=0 RA register value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_read_ra(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Reads the channel's RB register and returns the value.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval >=0 RB register value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_read_rb(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Reads the channel's RC register and returns the value.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- *
- * \retval >=0 RC register value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_read_rc(volatile avr32_tc_t *tc, unsigned int channel);
-
-/*! \brief Writes a value to the channel's RA register.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- * \param value Value to write to the RA register.
- *
- * \retval >=0 Written value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_write_ra(volatile avr32_tc_t *tc, unsigned int channel, unsigned short value);
-
-/*! \brief Writes a value to the channel's RB register.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- * \param value Value to write to the RB register.
- *
- * \retval >=0 Written value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_write_rb(volatile avr32_tc_t *tc, unsigned int channel, unsigned short value);
-
-/*! \brief Writes a value to the channel's RC register.
- *
- * \param tc Pointer to the TC instance to access.
- * \param channel The TC instance channel to access.
- * \param value Value to write to the RC register.
- *
- * \retval >=0 Written value.
- * \retval TC_INVALID_ARGUMENT Invalid argument(s).
- */
-extern int tc_write_rc(volatile avr32_tc_t *tc, unsigned int channel, unsigned short value);
-
-
-#endif // _TC_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.c
deleted file mode 100644
index b95882a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.c
+++ /dev/null
@@ -1,914 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief USART driver for AVR32 UC3.
- *
- * This file contains basic functions for the AVR32 USART, with support for all
- * modes, settings and clock speeds.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a USART module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "compiler.h"
-#include "usart.h"
-
-
-//------------------------------------------------------------------------------
-/*! \name Private Functions
- */
-//! @{
-
-
-/*! \brief Checks if the USART is in multidrop mode.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if the USART is in multidrop mode, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-static __inline__ int usart_mode_is_multidrop(volatile avr32_usart_t *usart)
-{
- return ((usart->mr >> AVR32_USART_MR_PAR_OFFSET) & AVR32_USART_MR_PAR_MULTI) == AVR32_USART_MR_PAR_MULTI;
-}
-
-
-/*! \brief Calculates a clock divider (\e CD) and a fractional part (\e FP) for
- * the USART asynchronous modes to generate a baud rate as close as
- * possible to the baud rate set point.
- *
- * Baud rate calculation:
- * \f$ Baudrate = \frac{SelectedClock}{Over \times (CD + \frac{FP}{8})} \f$, \e Over being 16 or 8.
- * The maximal oversampling is selected if it allows to generate a baud rate close to the set point.
- *
- * \param usart Base address of the USART instance.
- * \param baudrate Baud rate set point.
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Baud rate successfully initialized.
- * \retval USART_INVALID_INPUT Baud rate set point is out of range for the given input clock frequency.
- */
-static int usart_set_async_baudrate(volatile avr32_usart_t *usart, unsigned int baudrate, unsigned long pba_hz)
-{
- unsigned int over = (pba_hz >= 16 * baudrate) ? 16 : 8;
- unsigned int cd_fp = ((1 << AVR32_USART_BRGR_FP_SIZE) * pba_hz + (over * baudrate) / 2) / (over * baudrate);
- unsigned int cd = cd_fp >> AVR32_USART_BRGR_FP_SIZE;
- unsigned int fp = cd_fp & ((1 << AVR32_USART_BRGR_FP_SIZE) - 1);
-
- if (cd < 1 || cd > (1 << AVR32_USART_BRGR_CD_SIZE) - 1)
- return USART_INVALID_INPUT;
-
- usart->mr = (usart->mr & ~(AVR32_USART_MR_USCLKS_MASK |
- AVR32_USART_MR_SYNC_MASK |
- AVR32_USART_MR_OVER_MASK)) |
- AVR32_USART_MR_USCLKS_MCK << AVR32_USART_MR_USCLKS_OFFSET |
- ((over == 16) ? AVR32_USART_MR_OVER_X16 : AVR32_USART_MR_OVER_X8) << AVR32_USART_MR_OVER_OFFSET;
-
- usart->brgr = cd << AVR32_USART_BRGR_CD_OFFSET |
- fp << AVR32_USART_BRGR_FP_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-/*! \brief Calculates a clock divider (\e CD) for the USART synchronous master
- * modes to generate a baud rate as close as possible to the baud rate
- * set point.
- *
- * Baud rate calculation:
- * \f$ Baudrate = \frac{SelectedClock}{CD} \f$.
- *
- * \param usart Base address of the USART instance.
- * \param baudrate Baud rate set point.
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Baud rate successfully initialized.
- * \retval USART_INVALID_INPUT Baud rate set point is out of range for the given input clock frequency.
- */
-static int usart_set_sync_master_baudrate(volatile avr32_usart_t *usart, unsigned int baudrate, unsigned long pba_hz)
-{
- unsigned int cd = (pba_hz + baudrate / 2) / baudrate;
-
- if (cd < 1 || cd > (1 << AVR32_USART_BRGR_CD_SIZE) - 1)
- return USART_INVALID_INPUT;
-
- usart->mr = (usart->mr & ~AVR32_USART_MR_USCLKS_MASK) |
- AVR32_USART_MR_USCLKS_MCK << AVR32_USART_MR_USCLKS_OFFSET |
- AVR32_USART_MR_SYNC_MASK;
-
- usart->brgr = cd << AVR32_USART_BRGR_CD_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-/*! \brief Selects the SCK pin as the source of baud rate for the USART
- * synchronous slave modes.
- *
- * \param usart Base address of the USART instance.
- *
- * \retval USART_SUCCESS Baud rate successfully initialized.
- */
-static int usart_set_sync_slave_baudrate(volatile avr32_usart_t *usart)
-{
- usart->mr = (usart->mr & ~AVR32_USART_MR_USCLKS_MASK) |
- AVR32_USART_MR_USCLKS_SCK << AVR32_USART_MR_USCLKS_OFFSET |
- AVR32_USART_MR_SYNC_MASK;
-
- return USART_SUCCESS;
-}
-
-
-/*! \brief Calculates a clock divider (\e CD) for the USART ISO7816 mode to
- * generate an ISO7816 clock as close as possible to the clock set point.
- *
- * ISO7816 clock calculation:
- * \f$ Clock = \frac{SelectedClock}{CD} \f$.
- *
- * \param usart Base address of the USART instance.
- * \param clock ISO7816 clock set point.
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS ISO7816 clock successfully initialized.
- * \retval USART_INVALID_INPUT ISO7816 clock set point is out of range for the given input clock frequency.
- */
-static int usart_set_iso7816_clock(volatile avr32_usart_t *usart, unsigned int clock, unsigned long pba_hz)
-{
- unsigned int cd = (pba_hz + clock / 2) / clock;
-
- if (cd < 1 || cd > (1 << AVR32_USART_BRGR_CD_SIZE) - 1)
- return USART_INVALID_INPUT;
-
- usart->mr = (usart->mr & ~(AVR32_USART_MR_USCLKS_MASK |
- AVR32_USART_MR_SYNC_MASK |
- AVR32_USART_MR_OVER_MASK)) |
- AVR32_USART_MR_USCLKS_MCK << AVR32_USART_MR_USCLKS_OFFSET |
- AVR32_USART_MR_OVER_X16 << AVR32_USART_MR_OVER_OFFSET;
-
- usart->brgr = cd << AVR32_USART_BRGR_CD_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-
-/*! \brief Calculates a clock divider (\e CD) for the USART SPI master mode to
- * generate a baud rate as close as possible to the baud rate set point.
- *
- * Baud rate calculation:
- * \f$ Baudrate = \frac{SelectedClock}{CD} \f$.
- *
- * \param usart Base address of the USART instance.
- * \param baudrate Baud rate set point.
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Baud rate successfully initialized.
- * \retval USART_INVALID_INPUT Baud rate set point is out of range for the given input clock frequency.
- */
-static int usart_set_spi_master_baudrate(volatile avr32_usart_t *usart, unsigned int baudrate, unsigned long pba_hz)
-{
- unsigned int cd = (pba_hz + baudrate / 2) / baudrate;
-
- if (cd < 4 || cd > (1 << AVR32_USART_BRGR_CD_SIZE) - 1)
- return USART_INVALID_INPUT;
-
- usart->mr = (usart->mr & ~AVR32_USART_MR_USCLKS_MASK) |
- AVR32_USART_MR_USCLKS_MCK << AVR32_USART_MR_USCLKS_OFFSET;
-
- usart->brgr = cd << AVR32_USART_BRGR_CD_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-/*! \brief Selects the SCK pin as the source of baud rate for the USART SPI
- * slave mode.
- *
- * \param usart Base address of the USART instance.
- *
- * \retval USART_SUCCESS Baud rate successfully initialized.
- */
-static int usart_set_spi_slave_baudrate(volatile avr32_usart_t *usart)
-{
- usart->mr = (usart->mr & ~AVR32_USART_MR_USCLKS_MASK) |
- AVR32_USART_MR_USCLKS_SCK << AVR32_USART_MR_USCLKS_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-#endif // USART rev. >= 4.0.0
-
-
-//! @}
-
-
-//------------------------------------------------------------------------------
-/*! \name Initialization Functions
- */
-//! @{
-
-
-void usart_reset(volatile avr32_usart_t *usart)
-{
- Bool global_interrupt_enabled = Is_global_interrupt_enabled();
-
- // Disable all USART interrupts.
- // Interrupts needed should be set explicitly on every reset.
- if (global_interrupt_enabled) Disable_global_interrupt();
- usart->idr = 0xFFFFFFFF;
- usart->csr;
- if (global_interrupt_enabled) Enable_global_interrupt();
-
- // Reset mode and other registers that could cause unpredictable behavior after reset.
- usart->mr = 0;
- usart->rtor = 0;
- usart->ttgr = 0;
-
- // Shutdown TX and RX (will be re-enabled when setup has successfully completed),
- // reset status bits and turn off DTR and RTS.
- usart->cr = AVR32_USART_CR_RSTRX_MASK |
- AVR32_USART_CR_RSTTX_MASK |
- AVR32_USART_CR_RSTSTA_MASK |
- AVR32_USART_CR_RSTIT_MASK |
- AVR32_USART_CR_RSTNACK_MASK |
-#ifndef AVR32_USART_440_H_INCLUDED
-// Note: Modem Signal Management DTR-DSR-DCD-RI are not included in USART rev.440.
- AVR32_USART_CR_DTRDIS_MASK |
-#endif
- AVR32_USART_CR_RTSDIS_MASK;
-}
-
-
-int usart_init_rs232(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (!opt || // Null pointer.
- opt->charlength < 5 || opt->charlength > 9 ||
- opt->paritytype > 7 ||
- opt->stopbits > 2 + 255 ||
- opt->channelmode > 3 ||
- usart_set_async_baudrate(usart, opt->baudrate, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- if (opt->charlength == 9)
- {
- // Character length set to 9 bits. MODE9 dominates CHRL.
- usart->mr |= AVR32_USART_MR_MODE9_MASK;
- }
- else
- {
- // CHRL gives the character length (- 5) when MODE9 = 0.
- usart->mr |= (opt->charlength - 5) << AVR32_USART_MR_CHRL_OFFSET;
- }
-
- usart->mr |= opt->paritytype << AVR32_USART_MR_PAR_OFFSET |
- opt->channelmode << AVR32_USART_MR_CHMODE_OFFSET;
-
- if (opt->stopbits > USART_2_STOPBITS)
- {
- // Set two stop bits
- usart->mr |= AVR32_USART_MR_NBSTOP_2 << AVR32_USART_MR_NBSTOP_OFFSET;
- // and a timeguard period gives the rest.
- usart->ttgr = opt->stopbits - USART_2_STOPBITS;
- }
- else
- // Insert 1, 1.5 or 2 stop bits.
- usart->mr |= opt->stopbits << AVR32_USART_MR_NBSTOP_OFFSET;
-
- // Set normal mode.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MR_MODE_NORMAL << AVR32_USART_MR_MODE_OFFSET;
-
- // Setup complete; enable communication.
- // Enable input and output.
- usart->cr = AVR32_USART_CR_RXEN_MASK |
- AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_rs232_tx_only(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (!opt || // Null pointer.
- opt->charlength < 5 || opt->charlength > 9 ||
- opt->paritytype > 7 ||
- opt->stopbits == 1 || opt->stopbits > 2 + 255 ||
- opt->channelmode > 3 ||
- usart_set_sync_master_baudrate(usart, opt->baudrate, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- if (opt->charlength == 9)
- {
- // Character length set to 9 bits. MODE9 dominates CHRL.
- usart->mr |= AVR32_USART_MR_MODE9_MASK;
- }
- else
- {
- // CHRL gives the character length (- 5) when MODE9 = 0.
- usart->mr |= (opt->charlength - 5) << AVR32_USART_MR_CHRL_OFFSET;
- }
-
- usart->mr |= opt->paritytype << AVR32_USART_MR_PAR_OFFSET |
- opt->channelmode << AVR32_USART_MR_CHMODE_OFFSET;
-
- if (opt->stopbits > USART_2_STOPBITS)
- {
- // Set two stop bits
- usart->mr |= AVR32_USART_MR_NBSTOP_2 << AVR32_USART_MR_NBSTOP_OFFSET;
- // and a timeguard period gives the rest.
- usart->ttgr = opt->stopbits - USART_2_STOPBITS;
- }
- else
- // Insert 1 or 2 stop bits.
- usart->mr |= opt->stopbits << AVR32_USART_MR_NBSTOP_OFFSET;
-
- // Set normal mode.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MR_MODE_NORMAL << AVR32_USART_MR_MODE_OFFSET;
-
- // Setup complete; enable communication.
- // Enable only output as input is not possible in synchronous mode without
- // transferring clock.
- usart->cr = AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_hw_handshaking(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz)
-{
- // First: Setup standard RS232.
- if (usart_init_rs232(usart, opt, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- // Set hardware handshaking mode.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MR_MODE_HARDWARE << AVR32_USART_MR_MODE_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_modem(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz)
-{
- // First: Setup standard RS232.
- if (usart_init_rs232(usart, opt, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- // Set modem mode.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MR_MODE_MODEM << AVR32_USART_MR_MODE_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_sync_master(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (!opt || // Null pointer.
- opt->charlength < 5 || opt->charlength > 9 ||
- opt->paritytype > 7 ||
- opt->stopbits == 1 || opt->stopbits > 2 + 255 ||
- opt->channelmode > 3 ||
- usart_set_sync_master_baudrate(usart, opt->baudrate, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- if (opt->charlength == 9)
- {
- // Character length set to 9 bits. MODE9 dominates CHRL.
- usart->mr |= AVR32_USART_MR_MODE9_MASK;
- }
- else
- {
- // CHRL gives the character length (- 5) when MODE9 = 0.
- usart->mr |= (opt->charlength - 5) << AVR32_USART_MR_CHRL_OFFSET;
- }
-
- usart->mr |= opt->paritytype << AVR32_USART_MR_PAR_OFFSET |
- opt->channelmode << AVR32_USART_MR_CHMODE_OFFSET;
-
- if (opt->stopbits > USART_2_STOPBITS)
- {
- // Set two stop bits
- usart->mr |= AVR32_USART_MR_NBSTOP_2 << AVR32_USART_MR_NBSTOP_OFFSET;
- // and a timeguard period gives the rest.
- usart->ttgr = opt->stopbits - USART_2_STOPBITS;
- }
- else
- // Insert 1 or 2 stop bits.
- usart->mr |= opt->stopbits << AVR32_USART_MR_NBSTOP_OFFSET;
-
- // Set normal mode.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MR_MODE_NORMAL << AVR32_USART_MR_MODE_OFFSET |
- AVR32_USART_MR_CLKO_MASK;
-
- // Setup complete; enable communication.
- // Enable input and output.
- usart->cr = AVR32_USART_CR_RXEN_MASK |
- AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_sync_slave(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (!opt || // Null pointer.
- opt->charlength < 5 || opt->charlength > 9 ||
- opt->paritytype > 7 ||
- opt->stopbits == 1 || opt->stopbits > 2 + 255 ||
- opt->channelmode > 3 ||
- usart_set_sync_slave_baudrate(usart) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- if (opt->charlength == 9)
- {
- // Character length set to 9 bits. MODE9 dominates CHRL.
- usart->mr |= AVR32_USART_MR_MODE9_MASK;
- }
- else
- {
- // CHRL gives the character length (- 5) when MODE9 = 0.
- usart->mr |= (opt->charlength - 5) << AVR32_USART_MR_CHRL_OFFSET;
- }
-
- usart->mr |= opt->paritytype << AVR32_USART_MR_PAR_OFFSET |
- opt->channelmode << AVR32_USART_MR_CHMODE_OFFSET;
-
- if (opt->stopbits > USART_2_STOPBITS)
- {
- // Set two stop bits
- usart->mr |= AVR32_USART_MR_NBSTOP_2 << AVR32_USART_MR_NBSTOP_OFFSET;
- // and a timeguard period gives the rest.
- usart->ttgr = opt->stopbits - USART_2_STOPBITS;
- }
- else
- // Insert 1 or 2 stop bits.
- usart->mr |= opt->stopbits << AVR32_USART_MR_NBSTOP_OFFSET;
-
- // Set normal mode.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MR_MODE_NORMAL << AVR32_USART_MR_MODE_OFFSET;
-
- // Setup complete; enable communication.
- // Enable input and output.
- usart->cr = AVR32_USART_CR_RXEN_MASK |
- AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_rs485(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz)
-{
- // First: Setup standard RS232.
- if (usart_init_rs232(usart, opt, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- // Set RS485 mode.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MR_MODE_RS485 << AVR32_USART_MR_MODE_OFFSET;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_IrDA(volatile avr32_usart_t *usart, const usart_options_t *opt,
- long pba_hz, unsigned char irda_filter)
-{
- // First: Setup standard RS232.
- if (usart_init_rs232(usart, opt, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- // Set IrDA filter.
- usart->ifr = irda_filter;
-
- // Set IrDA mode and activate filtering of input.
- usart->mr = (usart->mr & ~AVR32_USART_MR_MODE_MASK) |
- AVR32_USART_MODE_IRDA << AVR32_USART_MR_MODE_OFFSET |
- AVR32_USART_MR_FILTER_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_iso7816(volatile avr32_usart_t *usart, const usart_iso7816_options_t *opt, int t, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (!opt || // Null pointer.
- opt->paritytype > 1)
- return USART_INVALID_INPUT;
-
- if (t == 0)
- {
- // Set USART mode to ISO7816, T=0.
- // The T=0 protocol always uses 2 stop bits.
- usart->mr = AVR32_USART_MR_MODE_ISO7816_T0 << AVR32_USART_MR_MODE_OFFSET |
- AVR32_USART_MR_NBSTOP_2 << AVR32_USART_MR_NBSTOP_OFFSET |
- opt->bit_order << AVR32_USART_MR_MSBF_OFFSET; // Allow MSBF in T=0.
- }
- else if (t == 1)
- {
- // Only LSB first in the T=1 protocol.
- // max_iterations field is only used in T=0 mode.
- if (opt->bit_order != 0 ||
- opt->max_iterations != 0)
- return USART_INVALID_INPUT;
-
- // Set USART mode to ISO7816, T=1.
- // The T=1 protocol always uses 1 stop bit.
- usart->mr = AVR32_USART_MR_MODE_ISO7816_T1 << AVR32_USART_MR_MODE_OFFSET |
- AVR32_USART_MR_NBSTOP_1 << AVR32_USART_MR_NBSTOP_OFFSET;
- }
- else
- return USART_INVALID_INPUT;
-
- if (usart_set_iso7816_clock(usart, opt->iso7816_hz, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- // Set FIDI register: bit rate = selected clock/FI_DI_ratio/16.
- usart->fidi = opt->fidi_ratio;
-
- // Set ISO7816 spesific options in the MODE register.
- usart->mr |= opt->paritytype << AVR32_USART_MR_PAR_OFFSET |
- AVR32_USART_MR_CLKO_MASK | // Enable clock output.
- opt->inhibit_nack << AVR32_USART_MR_INACK_OFFSET |
- opt->dis_suc_nack << AVR32_USART_MR_DSNACK_OFFSET |
- opt->max_iterations << AVR32_USART_MR_MAX_ITERATION_OFFSET;
-
- // Setup complete; enable the receiver by default.
- usart_iso7816_enable_receiver(usart);
-
- return USART_SUCCESS;
-}
-
-
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-
-int usart_init_lin_master(volatile avr32_usart_t *usart, unsigned long baudrate, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (usart_set_async_baudrate(usart, baudrate, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- usart->mr |= AVR32_USART_MR_MODE_LIN_MASTER << AVR32_USART_MR_MODE_OFFSET; // LIN master mode.
-
- // Setup complete; enable communication.
- // Enable input and output.
- usart->cr = AVR32_USART_CR_RXEN_MASK |
- AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_lin_slave(volatile avr32_usart_t *usart, unsigned long baudrate, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (usart_set_async_baudrate(usart, baudrate, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- usart->mr |= AVR32_USART_MR_MODE_LIN_SLAVE << AVR32_USART_MR_MODE_OFFSET; // LIN slave mode.
-
- // Setup complete; enable communication.
- // Enable input and output.
- usart->cr = AVR32_USART_CR_RXEN_MASK |
- AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_spi_master(volatile avr32_usart_t *usart, const usart_spi_options_t *opt, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (!opt || // Null pointer.
- opt->charlength < 5 || opt->charlength > 9 ||
- opt->spimode > 3 ||
- opt->channelmode > 3 ||
- usart_set_spi_master_baudrate(usart, opt->baudrate, pba_hz) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- if (opt->charlength == 9)
- {
- // Character length set to 9 bits. MODE9 dominates CHRL.
- usart->mr |= AVR32_USART_MR_MODE9_MASK;
- }
- else
- {
- // CHRL gives the character length (- 5) when MODE9 = 0.
- usart->mr |= (opt->charlength - 5) << AVR32_USART_MR_CHRL_OFFSET;
- }
-
- usart->mr |= AVR32_USART_MR_MODE_SPI_MASTER << AVR32_USART_MR_MODE_OFFSET | // SPI master mode.
- ((opt->spimode & 0x1) ^ 0x1) << AVR32_USART_MR_SYNC_OFFSET | // SPI clock phase.
- opt->channelmode << AVR32_USART_MR_CHMODE_OFFSET | // Channel mode.
- (opt->spimode >> 1) << AVR32_USART_MR_MSBF_OFFSET | // SPI clock polarity.
- AVR32_USART_MR_CLKO_MASK; // Drive SCK pin.
-
- // Setup complete; enable communication.
- // Enable input and output.
- usart->cr = AVR32_USART_CR_RXEN_MASK |
- AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_init_spi_slave(volatile avr32_usart_t *usart, const usart_spi_options_t *opt, long pba_hz)
-{
- // Reset the USART and shutdown TX and RX.
- usart_reset(usart);
-
- // Check input values.
- if (!opt || // Null pointer.
- opt->charlength < 5 || opt->charlength > 9 ||
- opt->spimode > 3 ||
- opt->channelmode > 3 ||
- usart_set_spi_slave_baudrate(usart) == USART_INVALID_INPUT)
- return USART_INVALID_INPUT;
-
- if (opt->charlength == 9)
- {
- // Character length set to 9 bits. MODE9 dominates CHRL.
- usart->mr |= AVR32_USART_MR_MODE9_MASK;
- }
- else
- {
- // CHRL gives the character length (- 5) when MODE9 = 0.
- usart->mr |= (opt->charlength - 5) << AVR32_USART_MR_CHRL_OFFSET;
- }
-
- usart->mr |= AVR32_USART_MR_MODE_SPI_SLAVE << AVR32_USART_MR_MODE_OFFSET | // SPI slave mode.
- ((opt->spimode & 0x1) ^ 0x1) << AVR32_USART_MR_SYNC_OFFSET | // SPI clock phase.
- opt->channelmode << AVR32_USART_MR_CHMODE_OFFSET | // Channel mode.
- (opt->spimode >> 1) << AVR32_USART_MR_MSBF_OFFSET; // SPI clock polarity.
-
- // Setup complete; enable communication.
- // Enable input and output.
- usart->cr = AVR32_USART_CR_RXEN_MASK |
- AVR32_USART_CR_TXEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-#endif // USART rev. >= 4.0.0
-
-
-//! @}
-
-
-//------------------------------------------------------------------------------
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-
-/*! \name SPI Control Functions
- */
-//! @{
-
-
-int usart_spi_selectChip(volatile avr32_usart_t *usart)
-{
- // Force the SPI chip select.
- usart->cr = AVR32_USART_CR_RTSEN_MASK;
-
- return USART_SUCCESS;
-}
-
-
-int usart_spi_unselectChip(volatile avr32_usart_t *usart)
-{
- int timeout = USART_DEFAULT_TIMEOUT;
-
- do
- {
- if (!timeout--) return USART_FAILURE;
- } while (!usart_tx_empty(usart));
-
- // Release the SPI chip select.
- usart->cr = AVR32_USART_CR_RTSDIS_MASK;
-
- return USART_SUCCESS;
-}
-
-
-//! @}
-
-
-#endif // USART rev. >= 4.0.0
-
-
-//------------------------------------------------------------------------------
-/*! \name Transmit/Receive Functions
- */
-//! @{
-
-
-int usart_send_address(volatile avr32_usart_t *usart, int address)
-{
- // Check if USART is in multidrop / RS485 mode.
- if (!usart_mode_is_multidrop(usart)) return USART_MODE_FAULT;
-
- // Prepare to send an address.
- usart->cr = AVR32_USART_CR_SENDA_MASK;
-
- // Write the address to TX.
- usart_bw_write_char(usart, address);
-
- return USART_SUCCESS;
-}
-
-
-int usart_write_char(volatile avr32_usart_t *usart, int c)
-{
- if (usart_tx_ready(usart))
- {
- usart->thr = (c << AVR32_USART_THR_TXCHR_OFFSET) & AVR32_USART_THR_TXCHR_MASK;
- return USART_SUCCESS;
- }
- else
- return USART_TX_BUSY;
-}
-
-
-int usart_putchar(volatile avr32_usart_t *usart, int c)
-{
- int timeout = USART_DEFAULT_TIMEOUT;
-
- if (c == '\n')
- {
- do
- {
- if (!timeout--) return USART_FAILURE;
- } while (usart_write_char(usart, '\r') != USART_SUCCESS);
-
- timeout = USART_DEFAULT_TIMEOUT;
- }
-
- do
- {
- if (!timeout--) return USART_FAILURE;
- } while (usart_write_char(usart, c) != USART_SUCCESS);
-
- return USART_SUCCESS;
-}
-
-
-int usart_read_char(volatile avr32_usart_t *usart, int *c)
-{
- // Check for errors: frame, parity and overrun. In RS485 mode, a parity error
- // would mean that an address char has been received.
- if (usart->csr & (AVR32_USART_CSR_OVRE_MASK |
- AVR32_USART_CSR_FRAME_MASK |
- AVR32_USART_CSR_PARE_MASK))
- return USART_RX_ERROR;
-
- // No error; if we really did receive a char, read it and return SUCCESS.
- if (usart_test_hit(usart))
- {
- *c = (usart->rhr & AVR32_USART_RHR_RXCHR_MASK) >> AVR32_USART_RHR_RXCHR_OFFSET;
- return USART_SUCCESS;
- }
- else
- return USART_RX_EMPTY;
-}
-
-
-int usart_getchar(volatile avr32_usart_t *usart)
-{
- int c, ret;
-
- while ((ret = usart_read_char(usart, &c)) == USART_RX_EMPTY);
-
- if (ret == USART_RX_ERROR)
- return USART_FAILURE;
-
- return c;
-}
-
-
-void usart_write_line(volatile avr32_usart_t *usart, const char *string)
-{
- while (*string != '\0')
- usart_putchar(usart, *string++);
-}
-
-
-int usart_get_echo_line(volatile avr32_usart_t *usart)
-{
- int rx_char;
- int retval = USART_SUCCESS;
-
- while (1)
- {
- rx_char = usart_getchar(usart);
- if (rx_char == USART_FAILURE)
- {
- usart_write_line(usart, "Error!!!\n");
- retval = USART_FAILURE;
- break;
- }
- if (rx_char == '\x03')
- {
- retval = USART_FAILURE;
- break;
- }
- usart_putchar(usart, rx_char);
- if (rx_char == '\r')
- {
- usart_putchar(usart, '\n');
- break;
- }
- }
-
- return retval;
-}
-
-
-//! @}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.h
deleted file mode 100644
index bc1c100..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.h
+++ /dev/null
@@ -1,889 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief USART driver for AVR32 UC3.
- *
- * This file contains basic functions for the AVR32 USART, with support for all
- * modes, settings and clock speeds.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a USART module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _USART_H_
-#define _USART_H_
-
-#include <avr32/io.h>
-#include "compiler.h"
-
-
-/*! \name Return Values
- */
-//! @{
-#define USART_SUCCESS 0 //!< Successful completion.
-#define USART_FAILURE -1 //!< Failure because of some unspecified reason.
-#define USART_INVALID_INPUT 1 //!< Input value out of range.
-#define USART_INVALID_ARGUMENT -1 //!< Argument value out of range.
-#define USART_TX_BUSY 2 //!< Transmitter was busy.
-#define USART_RX_EMPTY 3 //!< Nothing was received.
-#define USART_RX_ERROR 4 //!< Transmission error occurred.
-#define USART_MODE_FAULT 5 //!< USART not in the appropriate mode.
-//! @}
-
-//! Default time-out value (number of attempts).
-#define USART_DEFAULT_TIMEOUT 10000
-
-/*! \name Parity Settings
- */
-//! @{
-#define USART_EVEN_PARITY AVR32_USART_MR_PAR_EVEN //!< Use even parity on character transmission.
-#define USART_ODD_PARITY AVR32_USART_MR_PAR_ODD //!< Use odd parity on character transmission.
-#define USART_SPACE_PARITY AVR32_USART_MR_PAR_SPACE //!< Use a space as parity bit.
-#define USART_MARK_PARITY AVR32_USART_MR_PAR_MARK //!< Use a mark as parity bit.
-#define USART_NO_PARITY AVR32_USART_MR_PAR_NONE //!< Don't use a parity bit.
-#define USART_MULTIDROP_PARITY AVR32_USART_MR_PAR_MULTI //!< Parity bit is used to flag address characters.
-//! @}
-
-/*! \name Stop Bits Settings
- */
-//! @{
-#define USART_1_STOPBIT AVR32_USART_MR_NBSTOP_1 //!< Use 1 stop bit.
-#define USART_1_5_STOPBITS AVR32_USART_MR_NBSTOP_1_5 //!< Use 1.5 stop bits.
-#define USART_2_STOPBITS AVR32_USART_MR_NBSTOP_2 //!< Use 2 stop bits (for more, just give the number of bits).
-//! @}
-
-/*! \name Channel Modes
- */
-//! @{
-#define USART_NORMAL_CHMODE AVR32_USART_MR_CHMODE_NORMAL //!< Normal communication.
-#define USART_AUTO_ECHO AVR32_USART_MR_CHMODE_ECHO //!< Echo data.
-#define USART_LOCAL_LOOPBACK AVR32_USART_MR_CHMODE_LOCAL_LOOP //!< Local loopback.
-#define USART_REMOTE_LOOPBACK AVR32_USART_MR_CHMODE_REMOTE_LOOP //!< Remote loopback.
-//! @}
-
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-/*! \name LIN Node Actions
- */
-//! @{
-#define USART_LIN_PUBLISH_ACTION AVR32_USART_LINMR_NACT_PUBLISH //!< The USART transmits the response.
-#define USART_LIN_SUBSCRIBE_ACTION AVR32_USART_LINMR_NACT_SUBSCRIBE //!< The USART receives the response.
-#define USART_LIN_IGNORE_ACTION AVR32_USART_LINMR_NACT_IGNORE //!< The USART does not transmit and does not receive the reponse.
-//! @}
-
-/*! \name LIN Checksum Types
- */
-//! @{
-#define USART_LIN_ENHANCED_CHECKSUM 0 //!< LIN 2.0 "enhanced" checksum.
-#define USART_LIN_CLASSIC_CHECKSUM 1 //!< LIN 1.3 "classic" checksum.
-//! @}
-
-#endif // USART rev. >= 4.0.0
-
-
-//! Input parameters when initializing RS232 and similar modes.
-typedef struct
-{
- //! Set baud rate of the USART (unused in slave modes).
- unsigned long baudrate;
-
- //! Number of bits to transmit as a character (5 to 9).
- unsigned char charlength;
-
- //! How to calculate the parity bit: \ref USART_EVEN_PARITY, \ref USART_ODD_PARITY,
- //! \ref USART_SPACE_PARITY, \ref USART_MARK_PARITY, \ref USART_NO_PARITY or
- //! \ref USART_MULTIDROP_PARITY.
- unsigned char paritytype;
-
- //! Number of stop bits between two characters: \ref USART_1_STOPBIT,
- //! \ref USART_1_5_STOPBITS, \ref USART_2_STOPBITS or any number from 3 to 257
- //! which will result in a time guard period of that length between characters.
- //! \note \ref USART_1_5_STOPBITS is supported in asynchronous modes only.
- unsigned short stopbits;
-
- //! Run the channel in testmode: \ref USART_NORMAL_CHMODE, \ref USART_AUTO_ECHO,
- //! \ref USART_LOCAL_LOOPBACK or \ref USART_REMOTE_LOOPBACK.
- unsigned char channelmode;
-} usart_options_t;
-
-//! Input parameters when initializing ISO7816 mode.
-typedef struct
-{
- //! Set the frequency of the ISO7816 clock.
- unsigned long iso7816_hz;
-
- //! The number of ISO7816 clock ticks in every bit period (1 to 2047, 0 = disable clock).
- //! Bit rate = \ref iso7816_hz / \ref fidi_ratio.
- unsigned short fidi_ratio;
-
- //! How to calculate the parity bit: \ref USART_EVEN_PARITY for normal mode or
- //! \ref USART_ODD_PARITY for inverse mode.
- unsigned char paritytype;
-
- //! Inhibit Non Acknowledge:\n
- //! - 0: the NACK is generated;\n
- //! - 1: the NACK is not generated.
- //!
- //! \note This bit will be used only in ISO7816 mode, protocol T = 0 receiver.
- int inhibit_nack;
-
- //! Disable successive NACKs.
- //! Successive parity errors are counted up to the value in the \ref max_iterations field.
- //! These parity errors generate a NACK on the ISO line. As soon as this value is reached,
- //! no addititional NACK is sent on the ISO line. The ITERATION flag is asserted.
- int dis_suc_nack;
-
- //! Max number of repetitions (0 to 7).
- unsigned char max_iterations;
-
- //! Bit order in transmitted characters:\n
- //! - 0: LSB first;\n
- //! - 1: MSB first.
- int bit_order;
-} usart_iso7816_options_t;
-
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-//! Input parameters when initializing SPI mode.
-typedef struct
-{
- //! Set the frequency of the SPI clock (unused in slave mode).
- unsigned long baudrate;
-
- //! Number of bits to transmit as a character (5 to 9).
- unsigned char charlength;
-
- //! Which SPI mode to use.
- unsigned char spimode;
-
- //! Run the channel in testmode: \ref USART_NORMAL_CHMODE, \ref USART_AUTO_ECHO,
- //! \ref USART_LOCAL_LOOPBACK or \ref USART_REMOTE_LOOPBACK.
- unsigned char channelmode;
-} usart_spi_options_t;
-
-#endif // USART rev. >= 4.0.0
-
-
-//------------------------------------------------------------------------------
-/*! \name Initialization Functions
- */
-//! @{
-
-/*! \brief Resets the USART and disables TX and RX.
- *
- * \param usart Base address of the USART instance.
- */
-extern void usart_reset(volatile avr32_usart_t *usart);
-
-/*! \brief Sets up the USART to use the standard RS232 protocol.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_rs232(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use the standard RS232 protocol in TX-only mode.
- *
- * Compared to \ref usart_init_rs232, this function allows very high baud rates
- * (up to \a pba_hz instead of \a pba_hz / \c 8) at the expense of full duplex.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- *
- * \note The \c 1.5 stop bit is not supported in this mode.
- */
-extern int usart_init_rs232_tx_only(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use hardware handshaking.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- *
- * \note \ref usart_init_rs232 does not need to be invoked before this function.
- */
-extern int usart_init_hw_handshaking(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use the modem protocol, activating dedicated inputs/outputs.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_modem(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use a synchronous RS232-like protocol in master mode.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_sync_master(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use a synchronous RS232-like protocol in slave mode.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_sync_slave(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use the RS485 protocol.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_rs485(volatile avr32_usart_t *usart, const usart_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use the IrDA protocol.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up RS232 communication (see \ref usart_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- * \param irda_filter Counter used to distinguish received ones from zeros.
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_IrDA(volatile avr32_usart_t *usart, const usart_options_t *opt,
- long pba_hz, unsigned char irda_filter);
-
-/*! \brief Sets up the USART to use the ISO7816 T=0 or T=1 smartcard protocols.
- *
- * The receiver is enabled by default. \ref usart_iso7816_enable_receiver and
- * \ref usart_iso7816_enable_transmitter can be called to change the half-duplex
- * communication direction.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up ISO7816 communication (see \ref usart_iso7816_options_t).
- * \param t ISO7816 mode to use (T=0 or T=1).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_iso7816(volatile avr32_usart_t *usart, const usart_iso7816_options_t *opt, int t, long pba_hz);
-
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-/*! \brief Sets up the USART to use the LIN master mode.
- *
- * \param usart Base address of the USART instance.
- * \param baudrate Baud rate.
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- */
-extern int usart_init_lin_master(volatile avr32_usart_t *usart, unsigned long baudrate, long pba_hz);
-
-/*! \brief Sets up the USART to use the LIN slave mode.
- *
- * \param usart Base address of the USART instance.
- * \param baudrate Baud rate.
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- */
-extern int usart_init_lin_slave(volatile avr32_usart_t *usart, unsigned long baudrate, long pba_hz);
-
-/*! \brief Sets up the USART to use the SPI master mode.
- *
- * \ref usart_spi_selectChip and \ref usart_spi_unselectChip can be called to
- * select or unselect the SPI slave chip.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up SPI mode (see \ref usart_spi_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_spi_master(volatile avr32_usart_t *usart, const usart_spi_options_t *opt, long pba_hz);
-
-/*! \brief Sets up the USART to use the SPI slave mode.
- *
- * \param usart Base address of the USART instance.
- * \param opt Options needed to set up SPI mode (see \ref usart_spi_options_t).
- * \param pba_hz USART module input clock frequency (PBA clock, Hz).
- *
- * \retval USART_SUCCESS Mode successfully initialized.
- * \retval USART_INVALID_INPUT One or more of the arguments is out of valid range.
- */
-extern int usart_init_spi_slave(volatile avr32_usart_t *usart, const usart_spi_options_t *opt, long pba_hz);
-
-#endif // USART rev. >= 4.0.0
-
-//! @}
-
-
-//------------------------------------------------------------------------------
-/*! \name Read and Reset Error Status Bits
- */
-//! @{
-
-/*! \brief Resets the error status.
- *
- * This function resets the status bits indicating that a parity error,
- * framing error or overrun has occurred. The RXBRK bit, indicating
- * a start/end of break condition on the RX line, is also reset.
- *
- * \param usart Base address of the USART instance.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_reset_status(volatile avr32_usart_t *usart)
-{
- usart->cr = AVR32_USART_CR_RSTSTA_MASK;
-}
-
-/*! \brief Checks if a parity error has occurred since last status reset.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if a parity error has been detected, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_parity_error(volatile avr32_usart_t *usart)
-{
- return (usart->csr & AVR32_USART_CSR_PARE_MASK) != 0;
-}
-
-/*! \brief Checks if a framing error has occurred since last status reset.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if a framing error has been detected, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_framing_error(volatile avr32_usart_t *usart)
-{
- return (usart->csr & AVR32_USART_CSR_FRAME_MASK) != 0;
-}
-
-/*! \brief Checks if an overrun error has occurred since last status reset.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if a overrun error has been detected, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_overrun_error(volatile avr32_usart_t *usart)
-{
- return (usart->csr & AVR32_USART_CSR_OVRE_MASK) != 0;
-}
-
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-/*! \brief Get LIN Error Status
- *
- * \param usart Base address of the USART instance.
- *
- * \retval The binary value of the error field.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_lin_get_error(volatile avr32_usart_t *usart)
-{
- return (usart->csr & (AVR32_USART_CSR_LINSNRE_MASK |
- AVR32_USART_CSR_LINCE_MASK |
- AVR32_USART_CSR_LINIPE_MASK |
- AVR32_USART_CSR_LINISFE_MASK |
- AVR32_USART_CSR_LINBE_MASK)) >> AVR32_USART_CSR_LINBE_OFFSET;
-}
-
-#endif // USART rev. >= 4.0.0
-
-//! @}
-
-
-//------------------------------------------------------------------------------
-/*! \name ISO7816 Control Functions
- */
-//! @{
-
-/*! \brief Enables the ISO7816 receiver.
- *
- * The ISO7816 transmitter is disabled.
- *
- * \param usart Base address of the USART instance.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_iso7816_enable_receiver(volatile avr32_usart_t *usart)
-{
- usart->cr = AVR32_USART_CR_TXDIS_MASK | AVR32_USART_CR_RXEN_MASK;
-}
-
-/*! \brief Enables the ISO7816 transmitter.
- *
- * The ISO7816 receiver is disabled.
- *
- * \param usart Base address of the USART instance.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_iso7816_enable_transmitter(volatile avr32_usart_t *usart)
-{
- usart->cr = AVR32_USART_CR_RXDIS_MASK | AVR32_USART_CR_TXEN_MASK;
-}
-
-//! @}
-
-
-//------------------------------------------------------------------------------
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-/*! \name LIN Control Functions
- */
-//! @{
-
-/*! \brief Sets the node action.
- *
- * \param usart Base address of the USART instance.
- * \param action The node action: \ref USART_LIN_PUBLISH_ACTION,
- * \ref USART_LIN_SUBSCRIBE_ACTION or
- * \ref USART_LIN_IGNORE_ACTION.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_set_node_action(volatile avr32_usart_t *usart, unsigned char action)
-{
- usart->linmr = (usart->linmr & ~AVR32_USART_LINMR_NACT_MASK) |
- action << AVR32_USART_LINMR_NACT_OFFSET;
-}
-
-/*! \brief Enables or disables the Identifier parity.
- *
- * \param usart Base address of the USART instance.
- * \param parity Whether to enable the Identifier parity: \c TRUE or \c FALSE.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_enable_parity(volatile avr32_usart_t *usart, unsigned char parity)
-{
- usart->linmr = (usart->linmr & ~AVR32_USART_LINMR_PARDIS_MASK) |
- !parity << AVR32_USART_LINMR_PARDIS_OFFSET;
-}
-
-/*! \brief Enables or disables the checksum.
- *
- * \param usart Base address of the USART instance.
- * \param parity Whether to enable the checksum: \c TRUE or \c FALSE.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_enable_checksum(volatile avr32_usart_t *usart, unsigned char checksum)
-{
- usart->linmr = (usart->linmr & ~AVR32_USART_LINMR_CHKDIS_MASK) |
- !checksum << AVR32_USART_LINMR_CHKDIS_OFFSET;
-}
-
-/*! \brief Sets the checksum type.
- *
- * \param usart Base address of the USART instance.
- * \param chktyp The checksum type: \ref USART_LIN_ENHANCED_CHEKSUM or
- * \ref USART_LIN_CLASSIC_CHECKSUM.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_set_checksum(volatile avr32_usart_t *usart, unsigned char chktyp)
-{
- usart->linmr = (usart->linmr & ~AVR32_USART_LINMR_CHKTYP_MASK) |
- chktyp << AVR32_USART_LINMR_CHKTYP_OFFSET;
-}
-
-/*! \brief Gets the response data length.
- *
- * \param usart Base address of the USART instance.
- *
- * \return The response data length.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ unsigned char usart_lin_get_data_length(volatile avr32_usart_t *usart)
-{
- if (usart->linmr & AVR32_USART_LINMR_DLM_MASK)
- {
- unsigned char data_length = 1 << ((usart->linir >> (AVR32_USART_LINIR_IDCHR_OFFSET + 4)) & 0x03);
- if (data_length == 1)
- data_length = 2;
- return data_length;
- }
- else
- return ((usart->linmr & AVR32_USART_LINMR_DLC_MASK) >> AVR32_USART_LINMR_DLC_OFFSET) + 1;
-}
-
-/*! \brief Sets the response data length for LIN 1.x.
- *
- * \param usart Base address of the USART instance.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_set_data_length_lin1x(volatile avr32_usart_t *usart)
-{
- usart->linmr |= AVR32_USART_LINMR_DLM_MASK;
-}
-
-/*! \brief Sets the response data length for LIN 2.x.
- *
- * \param usart Base address of the USART instance.
- * \param data_length The response data length.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_set_data_length_lin2x(volatile avr32_usart_t *usart, unsigned char data_length)
-{
- usart->linmr = (usart->linmr & ~(AVR32_USART_LINMR_DLC_MASK |
- AVR32_USART_LINMR_DLM_MASK)) |
- (data_length - 1) << AVR32_USART_LINMR_DLC_OFFSET;
-}
-
-/*! \brief Enables or disables the frame slot mode.
- *
- * \param usart Base address of the USART instance.
- * \param frameslot Whether to enable the frame slot mode: \c TRUE or
- * \c FALSE.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_enable_frameslot(volatile avr32_usart_t *usart, unsigned char frameslot)
-{
- usart->linmr = (usart->linmr & ~AVR32_USART_LINMR_FSDIS_MASK) |
- !frameslot << AVR32_USART_LINMR_FSDIS_OFFSET;
-}
-
-/*! \brief Gets the Identifier character.
- *
- * \param usart Base address of the USART instance.
- *
- * \return The Identifier character.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ unsigned char usart_lin_get_id_char(volatile avr32_usart_t *usart)
-{
- return (usart->linir & AVR32_USART_LINIR_IDCHR_MASK) >> AVR32_USART_LINIR_IDCHR_OFFSET;
-}
-
-/*! \brief Sets the Identifier character.
- *
- * \param usart Base address of the USART instance.
- * \param id_char The Identifier character.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_set_id_char(volatile avr32_usart_t *usart, unsigned char id_char)
-{
- usart->linir = (usart->linir & ~AVR32_USART_LINIR_IDCHR_MASK) |
- id_char << AVR32_USART_LINIR_IDCHR_OFFSET;
-}
-
-//! @}
-
-#endif // USART rev. >= 4.0.0
-
-
-//------------------------------------------------------------------------------
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-/*! \name SPI Control Functions
- */
-//! @{
-
-/*! \brief Selects SPI slave chip.
- *
- * \param usart Base address of the USART instance.
- *
- * \retval USART_SUCCESS Success.
- */
-extern int usart_spi_selectChip(volatile avr32_usart_t *usart);
-
-/*! \brief Unselects SPI slave chip.
- *
- * \param usart Base address of the USART instance.
- *
- * \retval USART_SUCCESS Success.
- * \retval USART_FAILURE Time-out.
- */
-extern int usart_spi_unselectChip(volatile avr32_usart_t *usart);
-
-//! @}
-
-#endif // USART rev. >= 4.0.0
-
-
-//------------------------------------------------------------------------------
-/*! \name Transmit/Receive Functions
- */
-//! @{
-
-/*! \brief Addresses a receiver.
- *
- * While in RS485 mode, receivers only accept data addressed to them.
- * A packet/char with the address tag set has to precede any data.
- * This function is used to address a receiver. This receiver should read
- * all the following data, until an address packet addresses another receiver.
- *
- * \param usart Base address of the USART instance.
- * \param address Address of the target device.
- *
- * \retval USART_SUCCESS Address successfully sent (if current mode is RS485).
- * \retval USART_MODE_FAULT Wrong operating mode.
- */
-extern int usart_send_address(volatile avr32_usart_t *usart, int address);
-
-/*! \brief Tests if the USART is ready to transmit a character.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if the USART Transmit Holding Register is free, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_tx_ready(volatile avr32_usart_t *usart)
-{
- return (usart->csr & AVR32_USART_CSR_TXRDY_MASK) != 0;
-}
-
-/*! \brief Writes the given character to the TX buffer if the transmitter is ready.
- *
- * \param usart Base address of the USART instance.
- * \param c The character (up to 9 bits) to transmit.
- *
- * \retval USART_SUCCESS The transmitter was ready.
- * \retval USART_TX_BUSY The transmitter was busy.
- */
-extern int usart_write_char(volatile avr32_usart_t *usart, int c);
-
-/*! \brief An active wait writing a character to the USART.
- *
- * \param usart Base address of the USART instance.
- * \param c The character (up to 9 bits) to transmit.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_bw_write_char(volatile avr32_usart_t *usart, int c)
-{
- while (usart_write_char(usart, c) != USART_SUCCESS);
-}
-
-/*! \brief Sends a character with the USART.
- *
- * \param usart Base address of the USART instance.
- * \param c Character to write.
- *
- * \retval USART_SUCCESS The character was written.
- * \retval USART_FAILURE The function timed out before the USART transmitter became ready to send.
- */
-extern int usart_putchar(volatile avr32_usart_t *usart, int c);
-
-/*! \brief Tests if all requested USART transmissions are over.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if the USART Transmit Shift Register and the USART Transmit
- * Holding Register are free, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_tx_empty(volatile avr32_usart_t *usart)
-{
- return (usart->csr & AVR32_USART_CSR_TXEMPTY_MASK) != 0;
-}
-
-/*! \brief Tests if the USART contains a received character.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if the USART Receive Holding Register is full, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_test_hit(volatile avr32_usart_t *usart)
-{
- return (usart->csr & AVR32_USART_CSR_RXRDY_MASK) != 0;
-}
-
-/*! \brief Checks the RX buffer for a received character, and stores it at the
- * given memory location.
- *
- * \param usart Base address of the USART instance.
- * \param c Pointer to the where the read character should be stored
- * (must be at least short in order to accept 9-bit characters).
- *
- * \retval USART_SUCCESS The character was read successfully.
- * \retval USART_RX_EMPTY The RX buffer was empty.
- * \retval USART_RX_ERROR An error was deteceted.
- */
-extern int usart_read_char(volatile avr32_usart_t *usart, int *c);
-
-/*! \brief Waits until a character is received, and returns it.
- *
- * \param usart Base address of the USART instance.
- *
- * \return The received character, or \ref USART_FAILURE upon error.
- */
-extern int usart_getchar(volatile avr32_usart_t *usart);
-
-/*! \brief Writes one character string to the USART.
- *
- * \param usart Base address of the USART instance.
- * \param string String to be written.
- */
-extern void usart_write_line(volatile avr32_usart_t *usart, const char *string);
-
-/*! \brief Gets and echoes characters until end of line.
- *
- * \param usart Base address of the USART instance.
- *
- * \retval USART_SUCCESS Success.
- * \retval USART_FAILURE Low-level error detected or ETX character received.
- */
-extern int usart_get_echo_line(volatile avr32_usart_t *usart);
-
-#if defined(AVR32_USART_400_H_INCLUDED) || \
- defined(AVR32_USART_410_H_INCLUDED) || \
- defined(AVR32_USART_420_H_INCLUDED) || \
- defined(AVR32_USART_440_H_INCLUDED) || \
- defined(AVR32_USART_602_H_INCLUDED)
-
-/*! \brief Abort LIN transmission.
- *
- * \param usart Base address of the USART instance.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ void usart_lin_abort(volatile avr32_usart_t *usart)
-{
- usart->cr = AVR32_USART_LINABT_MASK;
-}
-
-/*! \brief Tests if a LIN transfer has been completed.
- *
- * \param usart Base address of the USART instance.
- *
- * \return \c 1 if a LIN transfer has been completed, otherwise \c 0.
- */
-#if (defined __GNUC__)
-__attribute__((__always_inline__))
-#endif
-extern __inline__ int usart_lin_transfer_completed(volatile avr32_usart_t *usart)
-{
- return (usart->csr & AVR32_USART_CSR_LINTC_MASK) != 0;
-}
-
-#endif // USART rev. >= 4.0.0
-
-//! @}
-
-
-#endif // _USART_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.c
deleted file mode 100644
index ad5ecca..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file ******************************************************************
- *
- * \brief Management of the delays.
- *
- * This file manages the "delays", with or without an OS.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ***************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-//_____ I N C L U D E S ___________________________________________________
-
-#include "delay.h"
-
-
-//_____ M A C R O S ________________________________________________________
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-//! CPU frequency
-#ifndef FREERTOS_USED
-static unsigned long s_fcpu_hz;
-#endif
-#if (defined NUTOS_USED)
-extern void NutSleep(unsigned long ms);
-#endif
-
-//_____ D E C L A R A T I O N S ____________________________________________
-
-void delay_init(unsigned long fcpu_hz)
-{
-#ifndef FREERTOS_USED
- s_fcpu_hz = fcpu_hz;
-#endif
-}
-
-
-void delay_ms(unsigned long delay)
-{
-#if (defined FREERTOS_USED)
- vTaskDelay( (portTickType)TASK_DELAY_MS(delay) );
-#elif (defined NUTOS_USED)
- NutSleep(delay);
-#else
- cpu_delay_ms(delay, s_fcpu_hz);
-#endif
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.h
deleted file mode 100644
index 2811326..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AT32UC3 delay management header file.
- *
- * This file contains definitions and services to handle "delays".
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 AT32UC3 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _DELAY_H_
-#define _DELAY_H_
-
-#include "compiler.h"
-#ifdef FREERTOS_USED
-# include "FreeRTOS.h"
-# include "task.h"
-#else
-# include "cycle_counter.h"
-#endif
-
-
-/*!
- * \brief Initialize the delay driver.
- *
- * \param fcpu_hz: CPU frequency in Hz.
- */
-extern void delay_init(unsigned long fcpu_hz);
-
-
-/*!
- * \brief Waits during at least the specified delay (in millisecond) before returning.
- *
- * Note that in the case of FreeRTOS, the function will delay the current task for a given number of ms.
- *
- * \param delay: Number of millisecond to wait.
- */
-extern void delay_ms(unsigned long delay);
-
-
-#endif // _DELAY_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dhcp.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dhcp.c
deleted file mode 100644
index 8ef6c84..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dhcp.c
+++ /dev/null
@@ -1,1724 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Dynamic Host Configuration Protocol client
- *
- */
-
-/*
- *
- * Copyright (c) 2001-2004 Leon Woestenberg <leon.woestenberg@gmx.net>
- * Copyright (c) 2001-2004 Axon Digital Design B.V., The Netherlands.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is a contribution to the lwIP TCP/IP stack.
- * The Swedish Institute of Computer Science and Adam Dunkels
- * are specifically granted permission to redistribute this
- * source code.
- *
- * Author: Leon Woestenberg <leon.woestenberg@gmx.net>
- *
- * This is a DHCP client for the lwIP TCP/IP stack. It aims to conform
- * with RFC 2131 and RFC 2132.
- *
- * TODO:
- * - Proper parsing of DHCP messages exploiting file/sname field overloading.
- * - Add JavaDoc style documentation (API, internals).
- * - Support for interfaces other than Ethernet (SLIP, PPP, ...)
- *
- * Please coordinate changes and requests with Leon Woestenberg
- * <leon.woestenberg@gmx.net>
- *
- * Integration with your code:
- *
- * In lwip/dhcp.h
- * #define DHCP_COARSE_TIMER_SECS (recommended 60 which is a minute)
- * #define DHCP_FINE_TIMER_MSECS (recommended 500 which equals TCP coarse timer)
- *
- * Then have your application call dhcp_coarse_tmr() and
- * dhcp_fine_tmr() on the defined intervals.
- *
- * dhcp_start(struct netif *netif);
- * starts a DHCP client instance which configures the interface by
- * obtaining an IP address lease and maintaining it.
- *
- * Use dhcp_release(netif) to end the lease and use dhcp_stop(netif)
- * to remove the DHCP client.
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_DHCP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/stats.h"
-#include "lwip/mem.h"
-#include "lwip/udp.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/inet.h"
-#include "lwip/sys.h"
-#include "lwip/dhcp.h"
-#include "lwip/autoip.h"
-#include "lwip/dns.h"
-#include "netif/etharp.h"
-
-#include <string.h>
-
-/** Default for DHCP_GLOBAL_XID is 0xABCD0000
- * This can be changed by defining DHCP_GLOBAL_XID and DHCP_GLOBAL_XID_HEADER, e.g.
- * #define DHCP_GLOBAL_XID_HEADER "stdlib.h"
- * #define DHCP_GLOBAL_XID rand()
- */
-#ifdef DHCP_GLOBAL_XID_HEADER
-#include DHCP_GLOBAL_XID_HEADER /* include optional starting XID generation prototypes */
-#endif
-
-/** DHCP_OPTION_MAX_MSG_SIZE is set to the MTU
- * MTU is checked to be big enough in dhcp_start */
-#define DHCP_MAX_MSG_LEN(netif) (netif->mtu)
-#define DHCP_MAX_MSG_LEN_MIN_REQUIRED 576
-/** Minimum length for reply before packet is parsed */
-#define DHCP_MIN_REPLY_LEN 44
-
-#define REBOOT_TRIES 2
-
-/* DHCP client state machine functions */
-static void dhcp_handle_ack(struct netif *netif);
-static void dhcp_handle_nak(struct netif *netif);
-static void dhcp_handle_offer(struct netif *netif);
-
-static err_t dhcp_discover(struct netif *netif);
-static err_t dhcp_select(struct netif *netif);
-static void dhcp_bind(struct netif *netif);
-#if DHCP_DOES_ARP_CHECK
-static void dhcp_check(struct netif *netif);
-static err_t dhcp_decline(struct netif *netif);
-#endif /* DHCP_DOES_ARP_CHECK */
-static err_t dhcp_rebind(struct netif *netif);
-static err_t dhcp_reboot(struct netif *netif);
-static void dhcp_set_state(struct dhcp *dhcp, u8_t new_state);
-
-/* receive, unfold, parse and free incoming messages */
-static void dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port);
-static err_t dhcp_unfold_reply(struct dhcp *dhcp, struct pbuf *p);
-static u8_t *dhcp_get_option_ptr(struct dhcp *dhcp, u8_t option_type);
-static u8_t dhcp_get_option_byte(u8_t *ptr);
-#if 0
-static u16_t dhcp_get_option_short(u8_t *ptr);
-#endif
-static u32_t dhcp_get_option_long(u8_t *ptr);
-static void dhcp_free_reply(struct dhcp *dhcp);
-
-/* set the DHCP timers */
-static void dhcp_timeout(struct netif *netif);
-static void dhcp_t1_timeout(struct netif *netif);
-static void dhcp_t2_timeout(struct netif *netif);
-
-/* build outgoing messages */
-/* create a DHCP request, fill in common headers */
-static err_t dhcp_create_request(struct netif *netif);
-/* free a DHCP request */
-static void dhcp_delete_request(struct netif *netif);
-/* add a DHCP option (type, then length in bytes) */
-static void dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len);
-/* add option values */
-static void dhcp_option_byte(struct dhcp *dhcp, u8_t value);
-static void dhcp_option_short(struct dhcp *dhcp, u16_t value);
-static void dhcp_option_long(struct dhcp *dhcp, u32_t value);
-/* always add the DHCP options trailer to end and pad */
-static void dhcp_option_trailer(struct dhcp *dhcp);
-
-/**
- * Back-off the DHCP client (because of a received NAK response).
- *
- * Back-off the DHCP client because of a received NAK. Receiving a
- * NAK means the client asked for something non-sensible, for
- * example when it tries to renew a lease obtained on another network.
- *
- * We clear any existing set IP address and restart DHCP negotiation
- * afresh (as per RFC2131 3.2.3).
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_handle_nak(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_nak(netif=%p) %c%c%"U16_F"\n",
- (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
- /* Set the interface down since the address must no longer be used, as per RFC2131 */
- netif_set_down(netif);
- /* remove IP address from interface */
- netif_set_ipaddr(netif, IP_ADDR_ANY);
- netif_set_gw(netif, IP_ADDR_ANY);
- netif_set_netmask(netif, IP_ADDR_ANY);
- /* Change to a defined state */
- dhcp_set_state(dhcp, DHCP_BACKING_OFF);
- /* We can immediately restart discovery */
- dhcp_discover(netif);
-}
-
-#if DHCP_DOES_ARP_CHECK
-/**
- * Checks if the offered IP address is already in use.
- *
- * It does so by sending an ARP request for the offered address and
- * entering CHECKING state. If no ARP reply is received within a small
- * interval, the address is assumed to be free for use by us.
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_check(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result;
- u16_t msecs;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_check(netif=%p) %c%c\n", (void *)netif, (s16_t)netif->name[0],
- (s16_t)netif->name[1]));
- dhcp_set_state(dhcp, DHCP_CHECKING);
- /* create an ARP query for the offered IP address, expecting that no host
- responds, as the IP address should not be in use. */
- result = etharp_query(netif, &dhcp->offered_ip_addr, NULL);
- if (result != ERR_OK) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("dhcp_check: could not perform ARP query\n"));
- }
- dhcp->tries++;
- msecs = 500;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_check(): set request timeout %"U16_F" msecs\n", msecs));
-}
-#endif /* DHCP_DOES_ARP_CHECK */
-
-/**
- * Remember the configuration offered by a DHCP server.
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_handle_offer(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- /* obtain the server address */
- u8_t *option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_SERVER_ID);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_offer(netif=%p) %c%c%"U16_F"\n",
- (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
- if (option_ptr != NULL) {
- dhcp->server_ip_addr.addr = htonl(dhcp_get_option_long(&option_ptr[2]));
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): server 0x%08"X32_F"\n", dhcp->server_ip_addr.addr));
- /* remember offered address */
- ip_addr_set(&dhcp->offered_ip_addr, (struct ip_addr *)&dhcp->msg_in->yiaddr);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): offer for 0x%08"X32_F"\n", dhcp->offered_ip_addr.addr));
-
- dhcp_select(netif);
- }
-}
-
-/**
- * Select a DHCP server offer out of all offers.
- *
- * Simply select the first offer received.
- *
- * @param netif the netif under DHCP control
- * @return lwIP specific error (see error.h)
- */
-static err_t
-dhcp_select(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result;
- u16_t msecs;
-#if LWIP_NETIF_HOSTNAME
- const char *p;
-#endif /* LWIP_NETIF_HOSTNAME */
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_select(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
- dhcp_set_state(dhcp, DHCP_REQUESTING);
-
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_REQUEST);
-
- dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
- dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
-
- /* MUST request the offered IP address */
- dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr));
-
- dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->server_ip_addr.addr));
-
- dhcp_option(dhcp, DHCP_OPTION_PARAMETER_REQUEST_LIST, 4/*num options*/);
- dhcp_option_byte(dhcp, DHCP_OPTION_SUBNET_MASK);
- dhcp_option_byte(dhcp, DHCP_OPTION_ROUTER);
- dhcp_option_byte(dhcp, DHCP_OPTION_BROADCAST);
- dhcp_option_byte(dhcp, DHCP_OPTION_DNS_SERVER);
-
-#if LWIP_NETIF_HOSTNAME
- p = (const char*)netif->hostname;
- if (p != NULL) {
- dhcp_option(dhcp, DHCP_OPTION_HOSTNAME, strlen(p));
- while (*p) {
- dhcp_option_byte(dhcp, *p++);
- }
- }
-#endif /* LWIP_NETIF_HOSTNAME */
-
- dhcp_option_trailer(dhcp);
- /* shrink the pbuf to the actual content length */
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
- /* send broadcast to any DHCP server */
- udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
- dhcp_delete_request(netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_select: REQUESTING\n"));
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("dhcp_select: could not allocate DHCP request\n"));
- }
- dhcp->tries++;
- msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_select(): set request timeout %"U16_F" msecs\n", msecs));
- return result;
-}
-
-/**
- * The DHCP timer that checks for lease renewal/rebind timeouts.
- *
- */
-void
-dhcp_coarse_tmr()
-{
- struct netif *netif = netif_list;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_coarse_tmr()\n"));
- /* iterate through all network interfaces */
- while (netif != NULL) {
- /* only act on DHCP configured interfaces */
- if (netif->dhcp != NULL) {
- /* timer is active (non zero), and triggers (zeroes) now? */
- if (netif->dhcp->t2_timeout-- == 1) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t2 timeout\n"));
- /* this clients' rebind timeout triggered */
- dhcp_t2_timeout(netif);
- /* timer is active (non zero), and triggers (zeroes) now */
- } else if (netif->dhcp->t1_timeout-- == 1) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t1 timeout\n"));
- /* this clients' renewal timeout triggered */
- dhcp_t1_timeout(netif);
- }
- }
- /* proceed to next netif */
- netif = netif->next;
- }
-}
-
-/**
- * DHCP transaction timeout handling
- *
- * A DHCP server is expected to respond within a short period of time.
- * This timer checks whether an outstanding DHCP request is timed out.
- *
- */
-void
-dhcp_fine_tmr()
-{
- struct netif *netif = netif_list;
- /* loop through netif's */
- while (netif != NULL) {
- /* only act on DHCP configured interfaces */
- if (netif->dhcp != NULL) {
- /* timer is active (non zero), and is about to trigger now */
- if (netif->dhcp->request_timeout > 1) {
- netif->dhcp->request_timeout--;
- }
- else if (netif->dhcp->request_timeout == 1) {
- netif->dhcp->request_timeout--;
- /* { netif->dhcp->request_timeout == 0 } */
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_fine_tmr(): request timeout\n"));
- /* this clients' request timeout triggered */
- dhcp_timeout(netif);
- }
- }
- /* proceed to next network interface */
- netif = netif->next;
- }
-}
-
-/**
- * A DHCP negotiation transaction, or ARP request, has timed out.
- *
- * The timer that was started with the DHCP or ARP request has
- * timed out, indicating no response was received in time.
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_timeout(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout()\n"));
- /* back-off period has passed, or server selection timed out */
- if ((dhcp->state == DHCP_BACKING_OFF) || (dhcp->state == DHCP_SELECTING)) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout(): restarting discovery\n"));
- dhcp_discover(netif);
- /* receiving the requested lease timed out */
- } else if (dhcp->state == DHCP_REQUESTING) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, DHCP request timed out\n"));
- if (dhcp->tries <= 5) {
- dhcp_select(netif);
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, releasing, restarting\n"));
- dhcp_release(netif);
- dhcp_discover(netif);
- }
-#if DHCP_DOES_ARP_CHECK
- /* received no ARP reply for the offered address (which is good) */
- } else if (dhcp->state == DHCP_CHECKING) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): CHECKING, ARP request timed out\n"));
- if (dhcp->tries <= 1) {
- dhcp_check(netif);
- /* no ARP replies on the offered address,
- looks like the IP address is indeed free */
- } else {
- /* bind the interface to the offered address */
- dhcp_bind(netif);
- }
-#endif /* DHCP_DOES_ARP_CHECK */
- }
- /* did not get response to renew request? */
- else if (dhcp->state == DHCP_RENEWING) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): RENEWING, DHCP request timed out\n"));
- /* just retry renewal */
- /* note that the rebind timer will eventually time-out if renew does not work */
- dhcp_renew(netif);
- /* did not get response to rebind request? */
- } else if (dhcp->state == DHCP_REBINDING) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REBINDING, DHCP request timed out\n"));
- if (dhcp->tries <= 8) {
- dhcp_rebind(netif);
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): RELEASING, DISCOVERING\n"));
- dhcp_release(netif);
- dhcp_discover(netif);
- }
- } else if (dhcp->state == DHCP_REBOOTING) {
- if (dhcp->tries < REBOOT_TRIES) {
- dhcp_reboot(netif);
- } else {
- dhcp_discover(netif);
- }
- }
-}
-
-/**
- * The renewal period has timed out.
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_t1_timeout(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_t1_timeout()\n"));
- if ((dhcp->state == DHCP_REQUESTING) || (dhcp->state == DHCP_BOUND) || (dhcp->state == DHCP_RENEWING)) {
- /* just retry to renew - note that the rebind timer (t2) will
- * eventually time-out if renew tries fail. */
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_t1_timeout(): must renew\n"));
- dhcp_renew(netif);
- }
-}
-
-/**
- * The rebind period has timed out.
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_t2_timeout(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_t2_timeout()\n"));
- if ((dhcp->state == DHCP_REQUESTING) || (dhcp->state == DHCP_BOUND) || (dhcp->state == DHCP_RENEWING)) {
- /* just retry to rebind */
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_t2_timeout(): must rebind\n"));
- dhcp_rebind(netif);
- }
-}
-
-/**
- * Handle a DHCP ACK packet
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_handle_ack(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- u8_t *option_ptr;
- /* clear options we might not get from the ACK */
- dhcp->offered_sn_mask.addr = 0;
- dhcp->offered_gw_addr.addr = 0;
- dhcp->offered_bc_addr.addr = 0;
-
- /* lease time given? */
- option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_LEASE_TIME);
- if (option_ptr != NULL) {
- /* remember offered lease time */
- dhcp->offered_t0_lease = dhcp_get_option_long(option_ptr + 2);
- }
- /* renewal period given? */
- option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_T1);
- if (option_ptr != NULL) {
- /* remember given renewal period */
- dhcp->offered_t1_renew = dhcp_get_option_long(option_ptr + 2);
- } else {
- /* calculate safe periods for renewal */
- dhcp->offered_t1_renew = dhcp->offered_t0_lease / 2;
- }
-
- /* renewal period given? */
- option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_T2);
- if (option_ptr != NULL) {
- /* remember given rebind period */
- dhcp->offered_t2_rebind = dhcp_get_option_long(option_ptr + 2);
- } else {
- /* calculate safe periods for rebinding */
- dhcp->offered_t2_rebind = dhcp->offered_t0_lease;
- }
-
- /* (y)our internet address */
- ip_addr_set(&dhcp->offered_ip_addr, &dhcp->msg_in->yiaddr);
-
-/**
- * Patch #1308
- * TODO: we must check if the file field is not overloaded by DHCP options!
- */
-#if 0
- /* boot server address */
- ip_addr_set(&dhcp->offered_si_addr, &dhcp->msg_in->siaddr);
- /* boot file name */
- if (dhcp->msg_in->file[0]) {
- dhcp->boot_file_name = mem_malloc(strlen(dhcp->msg_in->file) + 1);
- strcpy(dhcp->boot_file_name, dhcp->msg_in->file);
- }
-#endif
-
- /* subnet mask */
- option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_SUBNET_MASK);
- /* subnet mask given? */
- if (option_ptr != NULL) {
- dhcp->offered_sn_mask.addr = htonl(dhcp_get_option_long(&option_ptr[2]));
- }
-
- /* gateway router */
- option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_ROUTER);
- if (option_ptr != NULL) {
- dhcp->offered_gw_addr.addr = htonl(dhcp_get_option_long(&option_ptr[2]));
- }
-
- /* broadcast address */
- option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_BROADCAST);
- if (option_ptr != NULL) {
- dhcp->offered_bc_addr.addr = htonl(dhcp_get_option_long(&option_ptr[2]));
- }
-
- /* DNS servers */
- option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_DNS_SERVER);
- if (option_ptr != NULL) {
- u8_t n;
- dhcp->dns_count = dhcp_get_option_byte(&option_ptr[1]) / (u32_t)sizeof(struct ip_addr);
- /* limit to at most DHCP_MAX_DNS DNS servers */
- if (dhcp->dns_count > DHCP_MAX_DNS)
- dhcp->dns_count = DHCP_MAX_DNS;
- for (n = 0; n < dhcp->dns_count; n++) {
- dhcp->offered_dns_addr[n].addr = htonl(dhcp_get_option_long(&option_ptr[2 + n * 4]));
-#if LWIP_DNS
- dns_setserver( n, (struct ip_addr *)(&(dhcp->offered_dns_addr[n].addr)));
-#endif /* LWIP_DNS */
- }
-#if LWIP_DNS
- dns_setserver( n, (struct ip_addr *)(&ip_addr_any));
-#endif /* LWIP_DNS */
- }
-}
-
-/**
- * Start DHCP negotiation for a network interface.
- *
- * If no DHCP client instance was attached to this interface,
- * a new client is created first. If a DHCP client instance
- * was already present, it restarts negotiation.
- *
- * @param netif The lwIP network interface
- * @return lwIP error code
- * - ERR_OK - No error
- * - ERR_MEM - Out of memory
- */
-err_t
-dhcp_start(struct netif *netif)
-{
- struct dhcp *dhcp;
- err_t result = ERR_OK;
-
- LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG;);
- dhcp = netif->dhcp;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
- /* Remove the flag that says this netif is handled by DHCP,
- it is set when we succeeded starting. */
- netif->flags &= ~NETIF_FLAG_DHCP;
-
- /* check MTU of the netif */
- if (netif->mtu < DHCP_MAX_MSG_LEN_MIN_REQUIRED) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): Cannot use this netif with DHCP: MTU is too small\n"));
- return ERR_MEM;
- }
-
- /* no DHCP client attached yet? */
- if (dhcp == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting new DHCP client\n"));
- dhcp = mem_malloc(sizeof(struct dhcp));
- if (dhcp == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): could not allocate dhcp\n"));
- return ERR_MEM;
- }
- /* store this dhcp client in the netif */
- netif->dhcp = dhcp;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): allocated dhcp"));
- /* already has DHCP client attached */
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(): restarting DHCP configuration\n"));
- if (dhcp->pcb != NULL) {
- udp_remove(dhcp->pcb);
- }
- LWIP_ASSERT("pbuf p_out wasn't freed", dhcp->p_out == NULL);
- LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL &&
- dhcp->options_in == NULL && dhcp->options_in_len == 0);
- }
-
- /* clear data structure */
- memset(dhcp, 0, sizeof(struct dhcp));
- /* allocate UDP PCB */
- dhcp->pcb = udp_new();
- if (dhcp->pcb == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): could not obtain pcb\n"));
- mem_free((void *)dhcp);
- netif->dhcp = dhcp = NULL;
- return ERR_MEM;
- }
-#if IP_SOF_BROADCAST
- dhcp->pcb->so_options|=SOF_BROADCAST;
-#endif /* IP_SOF_BROADCAST */
- /* set up local and remote port for the pcb */
- udp_bind(dhcp->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT);
- udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT);
- /* set up the recv callback and argument */
- udp_recv(dhcp->pcb, dhcp_recv, netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting DHCP configuration\n"));
- /* (re)start the DHCP negotiation */
- result = dhcp_discover(netif);
- if (result != ERR_OK) {
- /* free resources allocated above */
- dhcp_stop(netif);
- return ERR_MEM;
- }
- /* Set the flag that says this netif is handled by DHCP. */
- netif->flags |= NETIF_FLAG_DHCP;
- return result;
-}
-
-/**
- * Inform a DHCP server of our manual configuration.
- *
- * This informs DHCP servers of our fixed IP address configuration
- * by sending an INFORM message. It does not involve DHCP address
- * configuration, it is just here to be nice to the network.
- *
- * @param netif The lwIP network interface
- */
-void
-dhcp_inform(struct netif *netif)
-{
- struct dhcp *dhcp, *old_dhcp;
- err_t result = ERR_OK;
- dhcp = mem_malloc(sizeof(struct dhcp));
- if (dhcp == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_inform(): could not allocate dhcp\n"));
- return;
- }
- memset(dhcp, 0, sizeof(struct dhcp));
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_inform(): allocated dhcp\n"));
- dhcp->pcb = udp_new();
- if (dhcp->pcb == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_inform(): could not obtain pcb"));
- goto free_dhcp_and_return;
- }
- old_dhcp = netif->dhcp;
- netif->dhcp = dhcp;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_inform(): created new udp pcb\n"));
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
-
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_INFORM);
-
- dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
- dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
-
- dhcp_option_trailer(dhcp);
-
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
-#if IP_SOF_BROADCAST
- dhcp->pcb->so_options|=SOF_BROADCAST;
-#endif /* IP_SOF_BROADCAST */
- udp_bind(dhcp->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_inform: INFORMING\n"));
- udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
- dhcp_delete_request(netif);
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_inform: could not allocate DHCP request\n"));
- }
-
- udp_remove(dhcp->pcb);
- dhcp->pcb = NULL;
- netif->dhcp = old_dhcp;
-free_dhcp_and_return:
- mem_free((void *)dhcp);
-}
-
-/** Handle a possible change in the network configuration.
- *
- * This enters the REBOOTING state to verify that the currently bound
- * address is still valid.
- */
-void
-dhcp_network_changed(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- if (!dhcp)
- return;
- switch (dhcp->state) {
- case DHCP_REBINDING:
- case DHCP_RENEWING:
- case DHCP_BOUND:
- case DHCP_REBOOTING:
- netif_set_down(netif);
- dhcp->tries = 0;
- dhcp_reboot(netif);
- break;
- case DHCP_OFF:
- /* stay off */
- break;
- default:
- dhcp->tries = 0;
- dhcp_discover(netif);
- break;
- }
-}
-
-#if DHCP_DOES_ARP_CHECK
-/**
- * Match an ARP reply with the offered IP address.
- *
- * @param netif the network interface on which the reply was received
- * @param addr The IP address we received a reply from
- */
-void dhcp_arp_reply(struct netif *netif, struct ip_addr *addr)
-{
- LWIP_ERROR("netif != NULL", (netif != NULL), return;);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_arp_reply()\n"));
- /* is a DHCP client doing an ARP check? */
- if ((netif->dhcp != NULL) && (netif->dhcp->state == DHCP_CHECKING)) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_arp_reply(): CHECKING, arp reply for 0x%08"X32_F"\n", addr->addr));
- /* did a host respond with the address we
- were offered by the DHCP server? */
- if (ip_addr_cmp(addr, &netif->dhcp->offered_ip_addr)) {
- /* we will not accept the offered address */
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | LWIP_DBG_LEVEL_WARNING,
- ("dhcp_arp_reply(): arp reply matched with offered address, declining\n"));
- dhcp_decline(netif);
- }
- }
-}
-
-/**
- * Decline an offered lease.
- *
- * Tell the DHCP server we do not accept the offered address.
- * One reason to decline the lease is when we find out the address
- * is already in use by another host (through ARP).
- *
- * @param netif the netif under DHCP control
- */
-static err_t
-dhcp_decline(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result = ERR_OK;
- u16_t msecs;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_decline()\n"));
- dhcp_set_state(dhcp, DHCP_BACKING_OFF);
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_DECLINE);
-
- dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr));
-
- dhcp_option_trailer(dhcp);
- /* resize pbuf to reflect true size of options */
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
- /* per section 4.4.4, broadcast DECLINE messages */
- udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
- dhcp_delete_request(netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_decline: BACKING OFF\n"));
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
- ("dhcp_decline: could not allocate DHCP request\n"));
- }
- dhcp->tries++;
- msecs = 10*1000;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_decline(): set request timeout %"U16_F" msecs\n", msecs));
- return result;
-}
-#endif
-
-
-/**
- * Start the DHCP process, discover a DHCP server.
- *
- * @param netif the netif under DHCP control
- */
-static err_t
-dhcp_discover(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result = ERR_OK;
- u16_t msecs;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover()\n"));
- ip_addr_set(&dhcp->offered_ip_addr, IP_ADDR_ANY);
- dhcp_set_state(dhcp, DHCP_SELECTING);
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: making request\n"));
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_DISCOVER);
-
- dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
- dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
-
- dhcp_option(dhcp, DHCP_OPTION_PARAMETER_REQUEST_LIST, 4/*num options*/);
- dhcp_option_byte(dhcp, DHCP_OPTION_SUBNET_MASK);
- dhcp_option_byte(dhcp, DHCP_OPTION_ROUTER);
- dhcp_option_byte(dhcp, DHCP_OPTION_BROADCAST);
- dhcp_option_byte(dhcp, DHCP_OPTION_DNS_SERVER);
-
- dhcp_option_trailer(dhcp);
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: realloc()ing\n"));
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: sendto(DISCOVER, IP_ADDR_BROADCAST, DHCP_SERVER_PORT)\n"));
- udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: deleting()ing\n"));
- dhcp_delete_request(netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover: SELECTING\n"));
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_discover: could not allocate DHCP request\n"));
- }
- dhcp->tries++;
-#if LWIP_DHCP_AUTOIP_COOP
- if(dhcp->tries >= LWIP_DHCP_AUTOIP_COOP_TRIES && dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_OFF) {
- dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_ON;
- autoip_start(netif);
- }
-#endif /* LWIP_DHCP_AUTOIP_COOP */
- msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover(): set request timeout %"U16_F" msecs\n", msecs));
- return result;
-}
-
-
-/**
- * Bind the interface to the offered IP address.
- *
- * @param netif network interface to bind to the offered address
- */
-static void
-dhcp_bind(struct netif *netif)
-{
- u32_t timeout;
- struct dhcp *dhcp;
- struct ip_addr sn_mask, gw_addr;
- LWIP_ERROR("dhcp_bind: netif != NULL", (netif != NULL), return;);
- dhcp = netif->dhcp;
- LWIP_ERROR("dhcp_bind: dhcp != NULL", (dhcp != NULL), return;);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
-
- /* temporary DHCP lease? */
- if (dhcp->offered_t1_renew != 0xffffffffUL) {
- /* set renewal period timer */
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t1 renewal timer %"U32_F" secs\n", dhcp->offered_t1_renew));
- timeout = (dhcp->offered_t1_renew + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS;
- if(timeout > 0xffff) {
- timeout = 0xffff;
- }
- dhcp->t1_timeout = (u16_t)timeout;
- if (dhcp->t1_timeout == 0) {
- dhcp->t1_timeout = 1;
- }
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t1_renew*1000));
- }
- /* set renewal period timer */
- if (dhcp->offered_t2_rebind != 0xffffffffUL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t2 rebind timer %"U32_F" secs\n", dhcp->offered_t2_rebind));
- timeout = (dhcp->offered_t2_rebind + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS;
- if(timeout > 0xffff) {
- timeout = 0xffff;
- }
- dhcp->t2_timeout = (u16_t)timeout;
- if (dhcp->t2_timeout == 0) {
- dhcp->t2_timeout = 1;
- }
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t2_rebind*1000));
- }
- /* copy offered network mask */
- ip_addr_set(&sn_mask, &dhcp->offered_sn_mask);
-
- /* subnet mask not given? */
- /* TODO: this is not a valid check. what if the network mask is 0? */
- if (sn_mask.addr == 0) {
- /* choose a safe subnet mask given the network class */
- u8_t first_octet = ip4_addr1(&sn_mask);
- if (first_octet <= 127) {
- sn_mask.addr = htonl(0xff000000);
- } else if (first_octet >= 192) {
- sn_mask.addr = htonl(0xffffff00);
- } else {
- sn_mask.addr = htonl(0xffff0000);
- }
- }
-
- ip_addr_set(&gw_addr, &dhcp->offered_gw_addr);
- /* gateway address not given? */
- if (gw_addr.addr == 0) {
- /* copy network address */
- gw_addr.addr = (dhcp->offered_ip_addr.addr & sn_mask.addr);
- /* use first host address on network as gateway */
- gw_addr.addr |= htonl(0x00000001);
- }
-
-#if LWIP_DHCP_AUTOIP_COOP
- if(dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_ON) {
- autoip_stop(netif);
- dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF;
- }
-#endif /* LWIP_DHCP_AUTOIP_COOP */
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): IP: 0x%08"X32_F"\n", dhcp->offered_ip_addr.addr));
- netif_set_ipaddr(netif, &dhcp->offered_ip_addr);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): SN: 0x%08"X32_F"\n", sn_mask.addr));
- netif_set_netmask(netif, &sn_mask);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): GW: 0x%08"X32_F"\n", gw_addr.addr));
- netif_set_gw(netif, &gw_addr);
- /* bring the interface up */
- netif_set_up(netif);
- /* netif is now bound to DHCP leased address */
- dhcp_set_state(dhcp, DHCP_BOUND);
-}
-
-/**
- * Renew an existing DHCP lease at the involved DHCP server.
- *
- * @param netif network interface which must renew its lease
- */
-err_t
-dhcp_renew(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result;
- u16_t msecs;
-#if LWIP_NETIF_HOSTNAME
- const char *p;
-#endif /* LWIP_NETIF_HOSTNAME */
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_renew()\n"));
- dhcp_set_state(dhcp, DHCP_RENEWING);
-
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
-
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_REQUEST);
-
- dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
- dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
-
-#if LWIP_NETIF_HOSTNAME
- p = (const char*)netif->hostname;
- if (p != NULL) {
- dhcp_option(dhcp, DHCP_OPTION_HOSTNAME, strlen(p));
- while (*p) {
- dhcp_option_byte(dhcp, *p++);
- }
- }
-#endif /* LWIP_NETIF_HOSTNAME */
-
-#if 0
- dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr));
-#endif
-
-#if 0
- dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->server_ip_addr.addr));
-#endif
- /* append DHCP message trailer */
- dhcp_option_trailer(dhcp);
-
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
- udp_sendto_if(dhcp->pcb, dhcp->p_out, &dhcp->server_ip_addr, DHCP_SERVER_PORT, netif);
- dhcp_delete_request(netif);
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew: RENEWING\n"));
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_renew: could not allocate DHCP request\n"));
- }
- dhcp->tries++;
- /* back-off on retries, but to a maximum of 20 seconds */
- msecs = dhcp->tries < 10 ? dhcp->tries * 2000 : 20 * 1000;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew(): set request timeout %"U16_F" msecs\n", msecs));
- return result;
-}
-
-/**
- * Rebind with a DHCP server for an existing DHCP lease.
- *
- * @param netif network interface which must rebind with a DHCP server
- */
-static err_t
-dhcp_rebind(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result;
- u16_t msecs;
-#if LWIP_NETIF_HOSTNAME
- const char *p;
-#endif /* LWIP_NETIF_HOSTNAME */
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind()\n"));
- dhcp_set_state(dhcp, DHCP_REBINDING);
-
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
-
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_REQUEST);
-
- dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
- dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
-
-#if LWIP_NETIF_HOSTNAME
- p = (const char*)netif->hostname;
- if (p != NULL) {
- dhcp_option(dhcp, DHCP_OPTION_HOSTNAME, strlen(p));
- while (*p) {
- dhcp_option_byte(dhcp, *p++);
- }
- }
-#endif /* LWIP_NETIF_HOSTNAME */
-
-#if 0
- dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr));
-
- dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->server_ip_addr.addr));
-#endif
-
- dhcp_option_trailer(dhcp);
-
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
- /* broadcast to server */
- udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
- dhcp_delete_request(netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind: REBINDING\n"));
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_rebind: could not allocate DHCP request\n"));
- }
- dhcp->tries++;
- msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind(): set request timeout %"U16_F" msecs\n", msecs));
- return result;
-}
-
-/**
- * Enter REBOOTING state to verify an existing lease
- *
- * @param netif network interface which must reboot
- */
-static err_t
-dhcp_reboot(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result;
- u16_t msecs;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot()\n"));
- dhcp_set_state(dhcp, DHCP_REBOOTING);
-
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
-
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_REQUEST);
-
- dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
- dhcp_option_short(dhcp, 576);
-
- dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
- dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr));
-
- dhcp_option_trailer(dhcp);
-
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
- /* broadcast to server */
- udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
- dhcp_delete_request(netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot: REBOOTING\n"));
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_reboot: could not allocate DHCP request\n"));
- }
- dhcp->tries++;
- msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot(): set request timeout %"U16_F" msecs\n", msecs));
- return result;
-}
-
-
-/**
- * Release a DHCP lease.
- *
- * @param netif network interface which must release its lease
- */
-err_t
-dhcp_release(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- err_t result;
- u16_t msecs;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_release()\n"));
-
- /* idle DHCP client */
- dhcp_set_state(dhcp, DHCP_OFF);
- /* clean old DHCP offer */
- dhcp->server_ip_addr.addr = 0;
- dhcp->offered_ip_addr.addr = dhcp->offered_sn_mask.addr = 0;
- dhcp->offered_gw_addr.addr = dhcp->offered_bc_addr.addr = 0;
- dhcp->offered_t0_lease = dhcp->offered_t1_renew = dhcp->offered_t2_rebind = 0;
- dhcp->dns_count = 0;
-
- /* create and initialize the DHCP message header */
- result = dhcp_create_request(netif);
- if (result == ERR_OK) {
- dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
- dhcp_option_byte(dhcp, DHCP_RELEASE);
-
- dhcp_option_trailer(dhcp);
-
- pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
-
- udp_sendto_if(dhcp->pcb, dhcp->p_out, &dhcp->server_ip_addr, DHCP_SERVER_PORT, netif);
- dhcp_delete_request(netif);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release: RELEASED, DHCP_OFF\n"));
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_release: could not allocate DHCP request\n"));
- }
- dhcp->tries++;
- msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
- dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release(): set request timeout %"U16_F" msecs\n", msecs));
- /* bring the interface down */
- netif_set_down(netif);
- /* remove IP address from interface */
- netif_set_ipaddr(netif, IP_ADDR_ANY);
- netif_set_gw(netif, IP_ADDR_ANY);
- netif_set_netmask(netif, IP_ADDR_ANY);
-
- /* TODO: netif_down(netif); */
- return result;
-}
-
-/**
- * Remove the DHCP client from the interface.
- *
- * @param netif The network interface to stop DHCP on
- */
-void
-dhcp_stop(struct netif *netif)
-{
- struct dhcp *dhcp = netif->dhcp;
- LWIP_ERROR("dhcp_stop: netif != NULL", (netif != NULL), return;);
- /* Remove the flag that says this netif is handled by DHCP. */
- netif->flags &= ~NETIF_FLAG_DHCP;
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_stop()\n"));
- /* netif is DHCP configured? */
- if (dhcp != NULL) {
-#if LWIP_DHCP_AUTOIP_COOP
- if(dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_ON) {
- autoip_stop(netif);
- dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF;
- }
-#endif /* LWIP_DHCP_AUTOIP_COOP */
-
- if (dhcp->pcb != NULL) {
- udp_remove(dhcp->pcb);
- dhcp->pcb = NULL;
- }
- LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL &&
- dhcp->options_in == NULL && dhcp->options_in_len == 0);
- mem_free((void *)dhcp);
- netif->dhcp = NULL;
- }
-}
-
-/*
- * Set the DHCP state of a DHCP client.
- *
- * If the state changed, reset the number of tries.
- *
- * TODO: we might also want to reset the timeout here?
- */
-static void
-dhcp_set_state(struct dhcp *dhcp, u8_t new_state)
-{
- if (new_state != dhcp->state) {
- dhcp->state = new_state;
- dhcp->tries = 0;
- }
-}
-
-/*
- * Concatenate an option type and length field to the outgoing
- * DHCP message.
- *
- */
-static void
-dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len)
-{
- LWIP_ASSERT("dhcp_option: dhcp->options_out_len + 2 + option_len <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U + option_len <= DHCP_OPTIONS_LEN);
- dhcp->msg_out->options[dhcp->options_out_len++] = option_type;
- dhcp->msg_out->options[dhcp->options_out_len++] = option_len;
-}
-/*
- * Concatenate a single byte to the outgoing DHCP message.
- *
- */
-static void
-dhcp_option_byte(struct dhcp *dhcp, u8_t value)
-{
- LWIP_ASSERT("dhcp_option_byte: dhcp->options_out_len < DHCP_OPTIONS_LEN", dhcp->options_out_len < DHCP_OPTIONS_LEN);
- dhcp->msg_out->options[dhcp->options_out_len++] = value;
-}
-
-static void
-dhcp_option_short(struct dhcp *dhcp, u16_t value)
-{
- LWIP_ASSERT("dhcp_option_short: dhcp->options_out_len + 2 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U <= DHCP_OPTIONS_LEN);
- dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff00U) >> 8);
- dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t) (value & 0x00ffU);
-}
-
-static void
-dhcp_option_long(struct dhcp *dhcp, u32_t value)
-{
- LWIP_ASSERT("dhcp_option_long: dhcp->options_out_len + 4 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 4U <= DHCP_OPTIONS_LEN);
- dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24);
- dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x00ff0000UL) >> 16);
- dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x0000ff00UL) >> 8);
- dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x000000ffUL));
-}
-
-/**
- * Extract the DHCP message and the DHCP options.
- *
- * Extract the DHCP message and the DHCP options, each into a contiguous
- * piece of memory. As a DHCP message is variable sized by its options,
- * and also allows overriding some fields for options, the easy approach
- * is to first unfold the options into a conitguous piece of memory, and
- * use that further on.
- *
- */
-static err_t
-dhcp_unfold_reply(struct dhcp *dhcp, struct pbuf *p)
-{
- u16_t ret;
- LWIP_ERROR("dhcp != NULL", (dhcp != NULL), return ERR_ARG;);
- /* free any left-overs from previous unfolds */
- dhcp_free_reply(dhcp);
- /* options present? */
- if (p->tot_len > (sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN)) {
- dhcp->options_in_len = p->tot_len - (sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN);
- dhcp->options_in = mem_malloc(dhcp->options_in_len);
- if (dhcp->options_in == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
- ("dhcp_unfold_reply(): could not allocate dhcp->options\n"));
- dhcp->options_in_len = 0;
- return ERR_MEM;
- }
- }
- dhcp->msg_in = mem_malloc(sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN);
- if (dhcp->msg_in == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
- ("dhcp_unfold_reply(): could not allocate dhcp->msg_in\n"));
- if (dhcp->options_in != NULL) {
- mem_free(dhcp->options_in);
- dhcp->options_in = NULL;
- dhcp->options_in_len = 0;
- }
- return ERR_MEM;
- }
-
- /** copy the DHCP message without options */
- ret = pbuf_copy_partial(p, dhcp->msg_in, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN, 0);
- LWIP_ASSERT("ret == sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN", ret == sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_unfold_reply(): copied %"U16_F" bytes into dhcp->msg_in[]\n",
- sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN));
-
- if (dhcp->options_in != NULL) {
- /** copy the DHCP options */
- ret = pbuf_copy_partial(p, dhcp->options_in, dhcp->options_in_len, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN);
- LWIP_ASSERT("ret == dhcp->options_in_len", ret == dhcp->options_in_len);
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_unfold_reply(): copied %"U16_F" bytes to dhcp->options_in[]\n",
- dhcp->options_in_len));
- }
- LWIP_UNUSED_ARG(ret);
- return ERR_OK;
-}
-
-/**
- * Free the incoming DHCP message including contiguous copy of
- * its DHCP options.
- */
-static void dhcp_free_reply(struct dhcp *dhcp)
-{
- if (dhcp->msg_in != NULL) {
- mem_free((void *)dhcp->msg_in);
- dhcp->msg_in = NULL;
- }
- if (dhcp->options_in) {
- mem_free(dhcp->options_in);
- dhcp->options_in = NULL;
- dhcp->options_in_len = 0;
- }
- LWIP_DEBUGF(DHCP_DEBUG, ("dhcp_free_reply(): free'd\n"));
-}
-
-/**
- * If an incoming DHCP message is in response to us, then trigger the state machine
- */
-static void dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port)
-{
- struct netif *netif = (struct netif *)arg;
- struct dhcp *dhcp = netif->dhcp;
- struct dhcp_msg *reply_msg = (struct dhcp_msg *)p->payload;
- u8_t *options_ptr;
- u8_t msg_type;
- u8_t i;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_recv(pbuf = %p) from DHCP server %"U16_F".%"U16_F".%"U16_F".%"U16_F" port %"U16_F"\n", (void*)p,
- (u16_t)(ntohl(addr->addr) >> 24 & 0xff), (u16_t)(ntohl(addr->addr) >> 16 & 0xff),
- (u16_t)(ntohl(addr->addr) >> 8 & 0xff), (u16_t)(ntohl(addr->addr) & 0xff), port));
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("pbuf->len = %"U16_F"\n", p->len));
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("pbuf->tot_len = %"U16_F"\n", p->tot_len));
- /* prevent warnings about unused arguments */
- LWIP_UNUSED_ARG(pcb);
- LWIP_UNUSED_ARG(addr);
- LWIP_UNUSED_ARG(port);
-
- LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL &&
- dhcp->options_in == NULL && dhcp->options_in_len == 0);
-
- if (p->len < DHCP_MIN_REPLY_LEN) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("DHCP reply message too short\n"));
- goto free_pbuf_and_return;
- }
-
- if (reply_msg->op != DHCP_BOOTREPLY) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("not a DHCP reply message, but type %"U16_F"\n", (u16_t)reply_msg->op));
- goto free_pbuf_and_return;
- }
- /* iterate through hardware address and match against DHCP message */
- for (i = 0; i < netif->hwaddr_len; i++) {
- if (netif->hwaddr[i] != reply_msg->chaddr[i]) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING,
- ("netif->hwaddr[%"U16_F"]==%02"X16_F" != reply_msg->chaddr[%"U16_F"]==%02"X16_F"\n",
- (u16_t)i, (u16_t)netif->hwaddr[i], (u16_t)i, (u16_t)reply_msg->chaddr[i]));
- goto free_pbuf_and_return;
- }
- }
- /* match transaction ID against what we expected */
- if (ntohl(reply_msg->xid) != dhcp->xid) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING,
- ("transaction id mismatch reply_msg->xid(%"X32_F")!=dhcp->xid(%"X32_F")\n",ntohl(reply_msg->xid),dhcp->xid));
- goto free_pbuf_and_return;
- }
- /* option fields could be unfold? */
- if (dhcp_unfold_reply(dhcp, p) != ERR_OK) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
- ("problem unfolding DHCP message - too short on memory?\n"));
- goto free_pbuf_and_return;
- }
-
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("searching DHCP_OPTION_MESSAGE_TYPE\n"));
- /* obtain pointer to DHCP message type */
- options_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_MESSAGE_TYPE);
- if (options_ptr == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("DHCP_OPTION_MESSAGE_TYPE option not found\n"));
- goto free_pbuf_and_return;
- }
-
- /* read DHCP message type */
- msg_type = dhcp_get_option_byte(options_ptr + 2);
- /* message type is DHCP ACK? */
- if (msg_type == DHCP_ACK) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_ACK received\n"));
- /* in requesting state? */
- if (dhcp->state == DHCP_REQUESTING) {
- dhcp_handle_ack(netif);
- dhcp->request_timeout = 0;
-#if DHCP_DOES_ARP_CHECK
- /* check if the acknowledged lease address is already in use */
- dhcp_check(netif);
-#else
- /* bind interface to the acknowledged lease address */
- dhcp_bind(netif);
-#endif
- }
- /* already bound to the given lease address? */
- else if ((dhcp->state == DHCP_REBOOTING) || (dhcp->state == DHCP_REBINDING) || (dhcp->state == DHCP_RENEWING)) {
- dhcp->request_timeout = 0;
- dhcp_bind(netif);
- }
- }
- /* received a DHCP_NAK in appropriate state? */
- else if ((msg_type == DHCP_NAK) &&
- ((dhcp->state == DHCP_REBOOTING) || (dhcp->state == DHCP_REQUESTING) ||
- (dhcp->state == DHCP_REBINDING) || (dhcp->state == DHCP_RENEWING ))) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_NAK received\n"));
- dhcp->request_timeout = 0;
- dhcp_handle_nak(netif);
- }
- /* received a DHCP_OFFER in DHCP_SELECTING state? */
- else if ((msg_type == DHCP_OFFER) && (dhcp->state == DHCP_SELECTING)) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_OFFER received in DHCP_SELECTING state\n"));
- dhcp->request_timeout = 0;
- /* remember offered lease */
- dhcp_handle_offer(netif);
- }
-free_pbuf_and_return:
- dhcp_free_reply(dhcp);
- pbuf_free(p);
-}
-
-/**
- * Create a DHCP request, fill in common headers
- *
- * @param netif the netif under DHCP control
- */
-static err_t
-dhcp_create_request(struct netif *netif)
-{
- struct dhcp *dhcp;
- u16_t i;
-#ifndef DHCP_GLOBAL_XID
- /** default global transaction identifier starting value (easy to match
- * with a packet analyser). We simply increment for each new request.
- * Predefine DHCP_GLOBAL_XID to a better value or a function call to generate one
- * at runtime, any supporting function prototypes can be defined in DHCP_GLOBAL_XID_HEADER */
- static u32_t xid = 0xABCD0000;
-#else
- static u32_t xid;
- static u8_t xid_initialised = 0;
- if (!xid_initialised) {
- xid = DHCP_GLOBAL_XID;
- xid_initialised = !xid_initialised;
- }
-#endif
- LWIP_ERROR("dhcp_create_request: netif != NULL", (netif != NULL), return ERR_ARG;);
- dhcp = netif->dhcp;
- LWIP_ERROR("dhcp_create_request: dhcp != NULL", (dhcp != NULL), return ERR_VAL;);
- LWIP_ASSERT("dhcp_create_request: dhcp->p_out == NULL", dhcp->p_out == NULL);
- LWIP_ASSERT("dhcp_create_request: dhcp->msg_out == NULL", dhcp->msg_out == NULL);
- dhcp->p_out = pbuf_alloc(PBUF_TRANSPORT, sizeof(struct dhcp_msg), PBUF_RAM);
- if (dhcp->p_out == NULL) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
- ("dhcp_create_request(): could not allocate pbuf\n"));
- return ERR_MEM;
- }
- LWIP_ASSERT("dhcp_create_request: check that first pbuf can hold struct dhcp_msg",
- (dhcp->p_out->len >= sizeof(struct dhcp_msg)));
-
- /* reuse transaction identifier in retransmissions */
- if (dhcp->tries==0)
- xid++;
- dhcp->xid = xid;
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE,
- ("transaction id xid(%"X32_F")\n", xid));
-
- dhcp->msg_out = (struct dhcp_msg *)dhcp->p_out->payload;
-
- dhcp->msg_out->op = DHCP_BOOTREQUEST;
- /* TODO: make link layer independent */
- dhcp->msg_out->htype = DHCP_HTYPE_ETH;
- /* TODO: make link layer independent */
- dhcp->msg_out->hlen = DHCP_HLEN_ETH;
- dhcp->msg_out->hops = 0;
- dhcp->msg_out->xid = htonl(dhcp->xid);
- dhcp->msg_out->secs = 0;
- dhcp->msg_out->flags = 0;
- dhcp->msg_out->ciaddr.addr = 0;
- if (dhcp->state==DHCP_BOUND || dhcp->state==DHCP_RENEWING || dhcp->state==DHCP_REBINDING) {
- dhcp->msg_out->ciaddr.addr = netif->ip_addr.addr;
- }
- dhcp->msg_out->yiaddr.addr = 0;
- dhcp->msg_out->siaddr.addr = 0;
- dhcp->msg_out->giaddr.addr = 0;
- for (i = 0; i < DHCP_CHADDR_LEN; i++) {
- /* copy netif hardware address, pad with zeroes */
- dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
- }
- for (i = 0; i < DHCP_SNAME_LEN; i++) {
- dhcp->msg_out->sname[i] = 0;
- }
- for (i = 0; i < DHCP_FILE_LEN; i++) {
- dhcp->msg_out->file[i] = 0;
- }
- dhcp->msg_out->cookie = htonl(0x63825363UL);
- dhcp->options_out_len = 0;
- /* fill options field with an incrementing array (for debugging purposes) */
- for (i = 0; i < DHCP_OPTIONS_LEN; i++) {
- dhcp->msg_out->options[i] = (u8_t)i; /* for debugging only, no matter if truncated */
- }
- return ERR_OK;
-}
-
-/**
- * Free previously allocated memory used to send a DHCP request.
- *
- * @param netif the netif under DHCP control
- */
-static void
-dhcp_delete_request(struct netif *netif)
-{
- struct dhcp *dhcp;
- LWIP_ERROR("dhcp_delete_request: netif != NULL", (netif != NULL), return;);
- dhcp = netif->dhcp;
- LWIP_ERROR("dhcp_delete_request: dhcp != NULL", (dhcp != NULL), return;);
- LWIP_ASSERT("dhcp_delete_request: dhcp->p_out != NULL", dhcp->p_out != NULL);
- LWIP_ASSERT("dhcp_delete_request: dhcp->msg_out != NULL", dhcp->msg_out != NULL);
- if (dhcp->p_out != NULL) {
- pbuf_free(dhcp->p_out);
- }
- dhcp->p_out = NULL;
- dhcp->msg_out = NULL;
-}
-
-/**
- * Add a DHCP message trailer
- *
- * Adds the END option to the DHCP message, and if
- * necessary, up to three padding bytes.
- *
- * @param dhcp DHCP state structure
- */
-static void
-dhcp_option_trailer(struct dhcp *dhcp)
-{
- LWIP_ERROR("dhcp_option_trailer: dhcp != NULL", (dhcp != NULL), return;);
- LWIP_ASSERT("dhcp_option_trailer: dhcp->msg_out != NULL\n", dhcp->msg_out != NULL);
- LWIP_ASSERT("dhcp_option_trailer: dhcp->options_out_len < DHCP_OPTIONS_LEN\n", dhcp->options_out_len < DHCP_OPTIONS_LEN);
- dhcp->msg_out->options[dhcp->options_out_len++] = DHCP_OPTION_END;
- /* packet is too small, or not 4 byte aligned? */
- while ((dhcp->options_out_len < DHCP_MIN_OPTIONS_LEN) || (dhcp->options_out_len & 3)) {
- /* LWIP_DEBUGF(DHCP_DEBUG,("dhcp_option_trailer:dhcp->options_out_len=%"U16_F", DHCP_OPTIONS_LEN=%"U16_F, dhcp->options_out_len, DHCP_OPTIONS_LEN)); */
- LWIP_ASSERT("dhcp_option_trailer: dhcp->options_out_len < DHCP_OPTIONS_LEN\n", dhcp->options_out_len < DHCP_OPTIONS_LEN);
- /* add a fill/padding byte */
- dhcp->msg_out->options[dhcp->options_out_len++] = 0;
- }
-}
-
-/**
- * Find the offset of a DHCP option inside the DHCP message.
- *
- * @param dhcp DHCP client
- * @param option_type
- *
- * @return a byte offset into the UDP message where the option was found, or
- * zero if the given option was not found.
- */
-static u8_t *dhcp_get_option_ptr(struct dhcp *dhcp, u8_t option_type)
-{
- u8_t overload = DHCP_OVERLOAD_NONE;
-
- /* options available? */
- if ((dhcp->options_in != NULL) && (dhcp->options_in_len > 0)) {
- /* start with options field */
- u8_t *options = (u8_t *)dhcp->options_in;
- u16_t offset = 0;
- /* at least 1 byte to read and no end marker, then at least 3 bytes to read? */
- while ((offset < dhcp->options_in_len) && (options[offset] != DHCP_OPTION_END)) {
- /* LWIP_DEBUGF(DHCP_DEBUG, ("msg_offset=%"U16_F", q->len=%"U16_F, msg_offset, q->len)); */
- /* are the sname and/or file field overloaded with options? */
- if (options[offset] == DHCP_OPTION_OVERLOAD) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded message detected\n"));
- /* skip option type and length */
- offset += 2;
- overload = options[offset++];
- }
- /* requested option found */
- else if (options[offset] == option_type) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("option found at offset %"U16_F" in options\n", offset));
- return &options[offset];
- /* skip option */
- } else {
- LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", options[offset]));
- /* skip option type */
- offset++;
- /* skip option length, and then length bytes */
- offset += 1 + options[offset];
- }
- }
- /* is this an overloaded message? */
- if (overload != DHCP_OVERLOAD_NONE) {
- u16_t field_len;
- if (overload == DHCP_OVERLOAD_FILE) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded file field\n"));
- options = (u8_t *)&dhcp->msg_in->file;
- field_len = DHCP_FILE_LEN;
- } else if (overload == DHCP_OVERLOAD_SNAME) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded sname field\n"));
- options = (u8_t *)&dhcp->msg_in->sname;
- field_len = DHCP_SNAME_LEN;
- /* TODO: check if else if () is necessary */
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded sname and file field\n"));
- options = (u8_t *)&dhcp->msg_in->sname;
- field_len = DHCP_FILE_LEN + DHCP_SNAME_LEN;
- }
- offset = 0;
-
- /* at least 1 byte to read and no end marker */
- while ((offset < field_len) && (options[offset] != DHCP_OPTION_END)) {
- if (options[offset] == option_type) {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("option found at offset=%"U16_F"\n", offset));
- return &options[offset];
- /* skip option */
- } else {
- LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("skipping option %"U16_F"\n", options[offset]));
- /* skip option type */
- offset++;
- offset += 1 + options[offset];
- }
- }
- }
- }
- return NULL;
-}
-
-/**
- * Return the byte of DHCP option data.
- *
- * @param client DHCP client.
- * @param ptr pointer obtained by dhcp_get_option_ptr().
- *
- * @return byte value at the given address.
- */
-static u8_t
-dhcp_get_option_byte(u8_t *ptr)
-{
- LWIP_DEBUGF(DHCP_DEBUG, ("option byte value=%"U16_F"\n", (u16_t)(*ptr)));
- return *ptr;
-}
-
-#if 0 /* currently unused */
-/**
- * Return the 16-bit value of DHCP option data.
- *
- * @param client DHCP client.
- * @param ptr pointer obtained by dhcp_get_option_ptr().
- *
- * @return byte value at the given address.
- */
-static u16_t
-dhcp_get_option_short(u8_t *ptr)
-{
- u16_t value;
- value = *ptr++ << 8;
- value |= *ptr;
- LWIP_DEBUGF(DHCP_DEBUG, ("option short value=%"U16_F"\n", value));
- return value;
-}
-#endif
-
-/**
- * Return the 32-bit value of DHCP option data.
- *
- * @param client DHCP client.
- * @param ptr pointer obtained by dhcp_get_option_ptr().
- *
- * @return byte value at the given address.
- */
-static u32_t dhcp_get_option_long(u8_t *ptr)
-{
- u32_t value;
- value = (u32_t)(*ptr++) << 24;
- value |= (u32_t)(*ptr++) << 16;
- value |= (u32_t)(*ptr++) << 8;
- value |= (u32_t)(*ptr++);
- LWIP_DEBUGF(DHCP_DEBUG, ("option long value=%"U32_F"\n", value));
- return value;
-}
-
-#endif /* LWIP_DHCP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dns.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dns.c
deleted file mode 100644
index 62ccf63..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dns.c
+++ /dev/null
@@ -1,982 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * DNS - host name to IP address resolver.
- *
- */
-
-/**
-
- * This file implements a DNS host name to IP address resolver.
-
- * Port to lwIP from uIP
- * by Jim Pettinato April 2007
-
- * uIP version Copyright (c) 2002-2003, Adam Dunkels.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote
- * products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * DNS.C
- *
- * The lwIP DNS resolver functions are used to lookup a host name and
- * map it to a numerical IP address. It maintains a list of resolved
- * hostnames that can be queried with the dns_lookup() function.
- * New hostnames can be resolved using the dns_query() function.
- *
- * The lwIP version of the resolver also adds a non-blocking version of
- * gethostbyname() that will work with a raw API application. This function
- * checks for an IP address string first and converts it if it is valid.
- * gethostbyname() then does a dns_lookup() to see if the name is
- * already in the table. If so, the IP is returned. If not, a query is
- * issued and the function returns with a ERR_INPROGRESS status. The app
- * using the dns client must then go into a waiting state.
- *
- * Once a hostname has been resolved (or found to be non-existent),
- * the resolver code calls a specified callback function (which
- * must be implemented by the module that uses the resolver).
- */
-
-/*-----------------------------------------------------------------------------
- * RFC 1035 - Domain names - implementation and specification
- * RFC 2181 - Clarifications to the DNS Specification
- *----------------------------------------------------------------------------*/
-
-/** @todo: define good default values (rfc compliance) */
-/** @todo: improve answer parsing, more checkings... */
-/** @todo: check RFC1035 - 7.3. Processing responses */
-
-/*-----------------------------------------------------------------------------
- * Includes
- *----------------------------------------------------------------------------*/
-
-#include "lwip/opt.h"
-
-#if LWIP_DNS /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/udp.h"
-#include "lwip/mem.h"
-#include "lwip/dns.h"
-
-#include <string.h>
-
-/** DNS server IP address */
-#ifndef DNS_SERVER_ADDRESS
-#define DNS_SERVER_ADDRESS inet_addr("208.67.222.222") /* resolver1.opendns.com */
-#endif
-
-/** DNS server port address */
-#ifndef DNS_SERVER_PORT
-#define DNS_SERVER_PORT 53
-#endif
-
-/** DNS maximum number of retries when asking for a name, before "timeout". */
-#ifndef DNS_MAX_RETRIES
-#define DNS_MAX_RETRIES 4
-#endif
-
-/** DNS resource record max. TTL (one week as default) */
-#ifndef DNS_MAX_TTL
-#define DNS_MAX_TTL 604800
-#endif
-
-/* DNS protocol flags */
-#define DNS_FLAG1_RESPONSE 0x80
-#define DNS_FLAG1_OPCODE_STATUS 0x10
-#define DNS_FLAG1_OPCODE_INVERSE 0x08
-#define DNS_FLAG1_OPCODE_STANDARD 0x00
-#define DNS_FLAG1_AUTHORATIVE 0x04
-#define DNS_FLAG1_TRUNC 0x02
-#define DNS_FLAG1_RD 0x01
-#define DNS_FLAG2_RA 0x80
-#define DNS_FLAG2_ERR_MASK 0x0f
-#define DNS_FLAG2_ERR_NONE 0x00
-#define DNS_FLAG2_ERR_NAME 0x03
-
-/* DNS protocol states */
-#define DNS_STATE_UNUSED 0
-#define DNS_STATE_NEW 1
-#define DNS_STATE_ASKING 2
-#define DNS_STATE_DONE 3
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-/** DNS message header */
-struct dns_hdr {
- PACK_STRUCT_FIELD(u16_t id);
- PACK_STRUCT_FIELD(u8_t flags1);
- PACK_STRUCT_FIELD(u8_t flags2);
- PACK_STRUCT_FIELD(u16_t numquestions);
- PACK_STRUCT_FIELD(u16_t numanswers);
- PACK_STRUCT_FIELD(u16_t numauthrr);
- PACK_STRUCT_FIELD(u16_t numextrarr);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-#define SIZEOF_DNS_HDR 12
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-/** DNS query message structure */
-struct dns_query {
- /* DNS query record starts with either a domain name or a pointer
- to a name already present somewhere in the packet. */
- PACK_STRUCT_FIELD(u16_t type);
- PACK_STRUCT_FIELD(u16_t class);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-#define SIZEOF_DNS_QUERY 4
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-/** DNS answer message structure */
-struct dns_answer {
- /* DNS answer record starts with either a domain name or a pointer
- to a name already present somewhere in the packet. */
- PACK_STRUCT_FIELD(u16_t type);
- PACK_STRUCT_FIELD(u16_t class);
- PACK_STRUCT_FIELD(u32_t ttl);
- PACK_STRUCT_FIELD(u16_t len);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-#define SIZEOF_DNS_ANSWER 10
-
-/** DNS table entry */
-struct dns_table_entry {
- u8_t state;
- u8_t numdns;
- u8_t tmr;
- u8_t retries;
- u8_t seqno;
- u8_t err;
- u32_t ttl;
- char name[DNS_MAX_NAME_LENGTH];
- struct ip_addr ipaddr;
- /* pointer to callback on DNS query done */
- dns_found_callback found;
- void *arg;
-};
-
-#if DNS_LOCAL_HOSTLIST
-/** struct used for local host-list */
-struct local_hostlist_entry {
- /** static hostname */
- const char *name;
- /** static host address in network byteorder */
- u32_t addr;
- struct local_hostlist_entry *next;
-};
-
-#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC
-/** Local host-list. For hostnames in this list, no
- * external name resolution is performed */
-static struct local_hostlist_entry *local_hostlist_dynamic;
-#else /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
-
-/** Defining this allows the local_hostlist_static to be placed in a different
- * linker section (e.g. FLASH) */
-#ifndef DNS_LOCAL_HOSTLIST_STORAGE_PRE
-#define DNS_LOCAL_HOSTLIST_STORAGE_PRE static
-#endif /* DNS_LOCAL_HOSTLIST_STORAGE_PRE */
-/** Defining this allows the local_hostlist_static to be placed in a different
- * linker section (e.g. FLASH) */
-#ifndef DNS_LOCAL_HOSTLIST_STORAGE_POST
-#define DNS_LOCAL_HOSTLIST_STORAGE_POST
-#endif /* DNS_LOCAL_HOSTLIST_STORAGE_POST */
-DNS_LOCAL_HOSTLIST_STORAGE_PRE struct local_hostlist_entry local_hostlist_static[]
- DNS_LOCAL_HOSTLIST_STORAGE_POST = DNS_LOCAL_HOSTLIST_INIT;
-
-#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
-
-static void dns_init_local();
-#endif /* DNS_LOCAL_HOSTLIST */
-
-
-/* forward declarations */
-static void dns_recv(void *s, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port);
-static void dns_check_entries(void);
-
-/*-----------------------------------------------------------------------------
- * Globales
- *----------------------------------------------------------------------------*/
-
-/* DNS variables */
-static struct udp_pcb *dns_pcb;
-static u8_t dns_seqno;
-static struct dns_table_entry dns_table[DNS_TABLE_SIZE];
-static struct ip_addr dns_servers[DNS_MAX_SERVERS];
-
-#if (DNS_USES_STATIC_BUF == 1)
-static u8_t dns_payload[DNS_MSG_SIZE];
-#endif /* (DNS_USES_STATIC_BUF == 1) */
-
-/**
- * Initialize the resolver: set up the UDP pcb and configure the default server
- * (DNS_SERVER_ADDRESS).
- */
-void
-dns_init()
-{
- struct ip_addr dnsserver;
-
- /* initialize default DNS server address */
- dnsserver.addr = DNS_SERVER_ADDRESS;
-
- LWIP_DEBUGF(DNS_DEBUG, ("dns_init: initializing\n"));
-
- /* if dns client not yet initialized... */
- if (dns_pcb == NULL) {
- dns_pcb = udp_new();
-
- if (dns_pcb != NULL) {
- /* initialize DNS table not needed (initialized to zero since it is a
- * global variable) */
- LWIP_ASSERT("For implicit initialization to work, DNS_STATE_UNUSED needs to be 0",
- DNS_STATE_UNUSED == 0);
-
- /* initialize DNS client */
- udp_bind(dns_pcb, IP_ADDR_ANY, 0);
- udp_recv(dns_pcb, dns_recv, NULL);
-
- /* initialize default DNS primary server */
- dns_setserver(0, &dnsserver);
- }
- }
-#if DNS_LOCAL_HOSTLIST
- dns_init_local();
-#endif
-}
-
-/**
- * Initialize one of the DNS servers.
- *
- * @param numdns the index of the DNS server to set must be < DNS_MAX_SERVERS
- * @param dnsserver IP address of the DNS server to set
- */
-void
-dns_setserver(u8_t numdns, struct ip_addr *dnsserver)
-{
- if ((numdns < DNS_MAX_SERVERS) && (dns_pcb != NULL) &&
- (dnsserver != NULL) && (dnsserver->addr !=0 )) {
- dns_servers[numdns] = (*dnsserver);
- }
-}
-
-/**
- * Obtain one of the currently configured DNS server.
- *
- * @param numdns the index of the DNS server
- * @return IP address of the indexed DNS server or "ip_addr_any" if the DNS
- * server has not been configured.
- */
-struct ip_addr
-dns_getserver(u8_t numdns)
-{
- if (numdns < DNS_MAX_SERVERS) {
- return dns_servers[numdns];
- } else {
- return *IP_ADDR_ANY;
- }
-}
-
-/**
- * The DNS resolver client timer - handle retries and timeouts and should
- * be called every DNS_TMR_INTERVAL milliseconds (every second by default).
- */
-void
-dns_tmr(void)
-{
- if (dns_pcb != NULL) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_tmr: dns_check_entries\n"));
- dns_check_entries();
- }
-}
-
-#if DNS_LOCAL_HOSTLIST
-static void
-dns_init_local()
-{
-#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC && defined(DNS_LOCAL_HOSTLIST_INIT)
- int i;
- struct local_hostlist_entry *entry;
- /* Dynamic: copy entries from DNS_LOCAL_HOSTLIST_INIT to list */
- struct local_hostlist_entry local_hostlist_init[] = DNS_LOCAL_HOSTLIST_INIT;
- for (i = 0; i < sizeof(local_hostlist_init) / sizeof(struct local_hostlist_entry); i++) {
- entry = mem_malloc(sizeof(struct local_hostlist_entry));
- LWIP_ASSERT("mem-error in dns_init_local", entry != NULL);
- if (entry != NULL) {
- struct local_hostlist_entry *init_entry = &local_hostlist_init[i];
- entry->name = init_entry->name;
- entry->addr = init_entry->addr;
- entry->next = local_hostlist_dynamic;
- local_hostlist_dynamic = entry;
- }
- }
-#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC && defined(DNS_LOCAL_HOSTLIST_INIT) */
-}
-
-/**
- * Scans the local host-list for a hostname.
- *
- * @param hostname Hostname to look for in the local host-list
- * @return The first IP address for the hostname in the local host-list or
- * INADDR_NONE if not found.
- */
-static u32_t
-dns_lookup_local(const char *hostname)
-{
-#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC
- struct local_hostlist_entry *entry = local_hostlist_dynamic;
- while(entry != NULL) {
- if(strcmp(entry->name, hostname) == 0) {
- return entry->addr;
- }
- entry = entry->next;
- }
-#else /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
- int i;
- for (i = 0; i < sizeof(local_hostlist_static) / sizeof(struct local_hostlist_entry); i++) {
- if(strcmp(local_hostlist_static[i].name, hostname) == 0) {
- return local_hostlist_static[i].addr;
- }
- }
-#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
- return INADDR_NONE;
-}
-
-#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC
-/** Remove all entries from the local host-list for a specific hostname
- * and/or IP addess
- *
- * @param hostname hostname for which entries shall be removed from the local
- * host-list
- * @param addr address for which entries shall be removed from the local host-list
- * @return the number of removed entries
- */
-int
-dns_local_removehost(const char *hostname, const struct ip_addr *addr)
-{
- int removed = 0;
- struct local_hostlist_entry *entry = local_hostlist_dynamic;
- struct local_hostlist_entry *last_entry = NULL;
- while (entry != NULL) {
- if (((hostname == NULL) || !strcmp(entry->name, hostname)) &&
- ((addr == NULL) || (entry->addr == addr->addr))) {
- struct local_hostlist_entry *free_entry;
- if (last_entry != NULL) {
- last_entry->next = entry->next;
- } else {
- local_hostlist_dynamic = entry->next;
- }
- free_entry = entry;
- entry = entry->next;
- mem_free(free_entry);
- removed++;
- } else {
- last_entry = entry;
- entry = entry->next;
- }
- }
- return removed;
-}
-
-/**
- * Add a hostname/IP address pair to the local host-list.
- * Duplicates are not checked.
- *
- * @param hostname hostname of the new entry
- * @param addr IP address of the new entry
- * @return ERR_OK if succeeded or ERR_MEM on memory error
- */
-err_t
-dns_local_addhost(const char *hostname, const struct ip_addr *addr)
-{
- struct local_hostlist_entry *entry;
- entry = mem_malloc(sizeof(struct local_hostlist_entry));
- if (entry == NULL) {
- return ERR_MEM;
- }
- entry->name = hostname;
- entry->addr = addr->addr;
- entry->next = local_hostlist_dynamic;
- local_hostlist_dynamic = entry;
- return ERR_OK;
-}
-#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC*/
-#endif /* DNS_LOCAL_HOSTLIST */
-
-/**
- * Look up a hostname in the array of known hostnames.
- *
- * @note This function only looks in the internal array of known
- * hostnames, it does not send out a query for the hostname if none
- * was found. The function dns_enqueue() can be used to send a query
- * for a hostname.
- *
- * @param name the hostname to look up
- * @return the hostname's IP address, as u32_t (instead of struct ip_addr to
- * better check for failure: != INADDR_NONE) or INADDR_NONE if the hostname
- * was not found in the cached dns_table.
- */
-static u32_t
-dns_lookup(const char *name)
-{
- u8_t i;
-#if DNS_LOCAL_HOSTLIST || defined(DNS_LOOKUP_LOCAL_EXTERN)
- u32_t addr;
-#endif /* DNS_LOCAL_HOSTLIST || defined(DNS_LOOKUP_LOCAL_EXTERN) */
-#if DNS_LOCAL_HOSTLIST
- if ((addr = dns_lookup_local(name)) != INADDR_NONE) {
- return addr;
- }
-#endif /* DNS_LOCAL_HOSTLIST */
-#ifdef DNS_LOOKUP_LOCAL_EXTERN
- if((addr = DNS_LOOKUP_LOCAL_EXTERN(name)) != INADDR_NONE) {
- return addr;
- }
-#endif /* DNS_LOOKUP_LOCAL_EXTERN */
-
- /* Walk through name list, return entry if found. If not, return NULL. */
- for (i = 0; i < DNS_TABLE_SIZE; ++i) {
- if ((dns_table[i].state == DNS_STATE_DONE) &&
- (strcmp(name, dns_table[i].name) == 0)) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_lookup: \"%s\": found = ", name));
- ip_addr_debug_print(DNS_DEBUG, &(dns_table[i].ipaddr));
- LWIP_DEBUGF(DNS_DEBUG, ("\n"));
- return dns_table[i].ipaddr.addr;
- }
- }
-
- return INADDR_NONE;
-}
-
-#if DNS_DOES_NAME_CHECK
-/**
- * Compare the "dotted" name "query" with the encoded name "response"
- * to make sure an answer from the DNS server matches the current dns_table
- * entry (otherwise, answers might arrive late for hostname not on the list
- * any more).
- *
- * @param query hostname (not encoded) from the dns_table
- * @param response encoded hostname in the DNS response
- * @return 0: names equal; 1: names differ
- */
-static u8_t
-dns_compare_name(unsigned char *query, unsigned char *response)
-{
- unsigned char n;
-
- do {
- n = *response++;
- /** @see RFC 1035 - 4.1.4. Message compression */
- if ((n & 0xc0) == 0xc0) {
- /* Compressed name */
- break;
- } else {
- /* Not compressed name */
- while (n > 0) {
- if ((*query) != (*response)) {
- return 1;
- }
- ++response;
- ++query;
- --n;
- };
- ++query;
- }
- } while (*response != 0);
-
- return 0;
-}
-#endif /* DNS_DOES_NAME_CHECK */
-
-/**
- * Walk through a compact encoded DNS name and return the end of the name.
- *
- * @param query encoded DNS name in the DNS server response
- * @return end of the name
- */
-static unsigned char *
-dns_parse_name(unsigned char *query)
-{
- unsigned char n;
-
- do {
- n = *query++;
- /** @see RFC 1035 - 4.1.4. Message compression */
- if ((n & 0xc0) == 0xc0) {
- /* Compressed name */
- break;
- } else {
- /* Not compressed name */
- while (n > 0) {
- ++query;
- --n;
- };
- }
- } while (*query != 0);
-
- return query + 1;
-}
-
-/**
- * Send a DNS query packet.
- *
- * @param numdns index of the DNS server in the dns_servers table
- * @param name hostname to query
- * @param id index of the hostname in dns_table, used as transaction ID in the
- * DNS query packet
- * @return ERR_OK if packet is sent; an err_t indicating the problem otherwise
- */
-static err_t
-dns_send(u8_t numdns, const char* name, u8_t id)
-{
- err_t err;
- struct dns_hdr *hdr;
- struct dns_query qry;
- struct pbuf *p;
- char *query, *nptr;
- const char *pHostname;
- u8_t n;
-
- LWIP_DEBUGF(DNS_DEBUG, ("dns_send: dns_servers[%"U16_F"] \"%s\": request\n",
- (u16_t)(numdns), name));
- LWIP_ASSERT("dns server out of array", numdns < DNS_MAX_SERVERS);
- LWIP_ASSERT("dns server has no IP address set", dns_servers[numdns].addr != 0);
-
- /* if here, we have either a new query or a retry on a previous query to process */
- p = pbuf_alloc(PBUF_TRANSPORT, SIZEOF_DNS_HDR + DNS_MAX_NAME_LENGTH +
- SIZEOF_DNS_QUERY, PBUF_RAM);
- if (p != NULL) {
- LWIP_ASSERT("pbuf must be in one piece", p->next == NULL);
- /* fill dns header */
- hdr = (struct dns_hdr*)p->payload;
- memset(hdr, 0, SIZEOF_DNS_HDR);
- hdr->id = htons(id);
- hdr->flags1 = DNS_FLAG1_RD;
- hdr->numquestions = htons(1);
- query = (char*)hdr + SIZEOF_DNS_HDR;
- pHostname = name;
- --pHostname;
-
- /* convert hostname into suitable query format. */
- do {
- ++pHostname;
- nptr = query;
- ++query;
- for(n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) {
- *query = *pHostname;
- ++query;
- ++n;
- }
- *nptr = n;
- } while(*pHostname != 0);
- *query++='\0';
-
- /* fill dns query */
- qry.type = htons(DNS_RRTYPE_A);
- qry.class = htons(DNS_RRCLASS_IN);
- MEMCPY( query, &qry, SIZEOF_DNS_QUERY);
-
- /* resize pbuf to the exact dns query */
- pbuf_realloc(p, (query + SIZEOF_DNS_QUERY) - ((char*)(p->payload)));
-
- /* connect to the server for faster receiving */
- udp_connect(dns_pcb, &dns_servers[numdns], DNS_SERVER_PORT);
- /* send dns packet */
- err = udp_sendto(dns_pcb, p, &dns_servers[numdns], DNS_SERVER_PORT);
-
- /* free pbuf */
- pbuf_free(p);
- } else {
- err = ERR_MEM;
- }
-
- return err;
-}
-
-/**
- * dns_check_entry() - see if pEntry has not yet been queried and, if so, sends out a query.
- * Check an entry in the dns_table:
- * - send out query for new entries
- * - retry old pending entries on timeout (also with different servers)
- * - remove completed entries from the table if their TTL has expired
- *
- * @param i index of the dns_table entry to check
- */
-static void
-dns_check_entry(u8_t i)
-{
- struct dns_table_entry *pEntry = &dns_table[i];
-
- LWIP_ASSERT("array index out of bounds", i < DNS_TABLE_SIZE);
-
- switch(pEntry->state) {
-
- case DNS_STATE_NEW: {
- /* initialize new entry */
- pEntry->state = DNS_STATE_ASKING;
- pEntry->numdns = 0;
- pEntry->tmr = 1;
- pEntry->retries = 0;
-
- /* send DNS packet for this entry */
- dns_send(pEntry->numdns, pEntry->name, i);
- break;
- }
-
- case DNS_STATE_ASKING: {
- if (--pEntry->tmr == 0) {
- if (++pEntry->retries == DNS_MAX_RETRIES) {
- if ((pEntry->numdns+1<DNS_MAX_SERVERS) && (dns_servers[pEntry->numdns+1].addr!=0)) {
- /* change of server */
- pEntry->numdns++;
- pEntry->tmr = 1;
- pEntry->retries = 0;
- break;
- } else {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_check_entry: \"%s\": timeout\n", pEntry->name));
- /* call specified callback function if provided */
- if (pEntry->found)
- (*pEntry->found)(pEntry->name, NULL, pEntry->arg);
- /* flush this entry */
- pEntry->state = DNS_STATE_UNUSED;
- pEntry->found = NULL;
- break;
- }
- }
-
- /* wait longer for the next retry */
- pEntry->tmr = pEntry->retries;
-
- /* send DNS packet for this entry */
- dns_send(pEntry->numdns, pEntry->name, i);
- }
- break;
- }
-
- case DNS_STATE_DONE: {
- /* if the time to live is nul */
- if (--pEntry->ttl == 0) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_check_entry: \"%s\": flush\n", pEntry->name));
- /* flush this entry */
- pEntry->state = DNS_STATE_UNUSED;
- pEntry->found = NULL;
- }
- break;
- }
- case DNS_STATE_UNUSED:
- /* nothing to do */
- break;
- default:
- LWIP_ASSERT("unknown dns_table entry state:", 0);
- break;
- }
-}
-
-/**
- * Call dns_check_entry for each entry in dns_table - check all entries.
- */
-static void
-dns_check_entries(void)
-{
- u8_t i;
-
- for (i = 0; i < DNS_TABLE_SIZE; ++i) {
- dns_check_entry(i);
- }
-}
-
-/**
- * Receive input function for DNS response packets arriving for the dns UDP pcb.
- *
- * @params see udp.h
- */
-static void
-dns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port)
-{
- u8_t i;
- char *pHostname;
- struct dns_hdr *hdr;
- struct dns_answer ans;
- struct dns_table_entry *pEntry;
- u8_t nquestions, nanswers;
-#if (DNS_USES_STATIC_BUF == 0)
- u8_t dns_payload[DNS_MSG_SIZE];
-#endif /* (DNS_USES_STATIC_BUF == 0) */
-#if (DNS_USES_STATIC_BUF == 2)
- u8_t* dns_payload;
-#endif /* (DNS_USES_STATIC_BUF == 2) */
-
- LWIP_UNUSED_ARG(arg);
- LWIP_UNUSED_ARG(pcb);
- LWIP_UNUSED_ARG(addr);
- LWIP_UNUSED_ARG(port);
-
- /* is the dns message too big ? */
- if (p->tot_len > DNS_MSG_SIZE) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too big\n"));
- /* free pbuf and return */
- goto memerr1;
- }
-
- /* is the dns message big enough ? */
- if (p->tot_len < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + SIZEOF_DNS_ANSWER)) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too small\n"));
- /* free pbuf and return */
- goto memerr1;
- }
-
-#if (DNS_USES_STATIC_BUF == 2)
- dns_payload = mem_malloc(p->tot_len);
- if (dns_payload == NULL) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: mem_malloc error\n"));
- /* free pbuf and return */
- goto memerr1;
- }
-#endif /* (DNS_USES_STATIC_BUF == 2) */
-
- /* copy dns payload inside static buffer for processing */
- if (pbuf_copy_partial(p, dns_payload, p->tot_len, 0) == p->tot_len) {
- /* The ID in the DNS header should be our entry into the name table. */
- hdr = (struct dns_hdr*)dns_payload;
- i = htons(hdr->id);
- if (i < DNS_TABLE_SIZE) {
- pEntry = &dns_table[i];
- if(pEntry->state == DNS_STATE_ASKING) {
- /* This entry is now completed. */
- pEntry->state = DNS_STATE_DONE;
- pEntry->err = hdr->flags2 & DNS_FLAG2_ERR_MASK;
-
- /* We only care about the question(s) and the answers. The authrr
- and the extrarr are simply discarded. */
- nquestions = htons(hdr->numquestions);
- nanswers = htons(hdr->numanswers);
-
- /* Check for error. If so, call callback to inform. */
- if (((hdr->flags1 & DNS_FLAG1_RESPONSE) == 0) || (pEntry->err != 0) || (nquestions != 1)) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": error in flags\n", pEntry->name));
- /* call callback to indicate error, clean up memory and return */
- goto responseerr;
- }
-
-#if DNS_DOES_NAME_CHECK
- /* Check if the name in the "question" part match with the name in the entry. */
- if (dns_compare_name((unsigned char *)(pEntry->name), (unsigned char *)dns_payload + SIZEOF_DNS_HDR) != 0) {
- LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": response not match to query\n", pEntry->name));
- /* call callback to indicate error, clean up memory and return */
- goto responseerr;
- }
-#endif /* DNS_DOES_NAME_CHECK */
-
- /* Skip the name in the "question" part */
- pHostname = (char *) dns_parse_name((unsigned char *)dns_payload + SIZEOF_DNS_HDR) + SIZEOF_DNS_QUERY;
-
- while(nanswers > 0) {
- /* skip answer resource record's host name */
- pHostname = (char *) dns_parse_name((unsigned char *)pHostname);
-
- /* Check for IP address type and Internet class. Others are discarded. */
- MEMCPY(&ans, pHostname, SIZEOF_DNS_ANSWER);
- if((ntohs(ans.type) == DNS_RRTYPE_A) && (ntohs(ans.class) == DNS_RRCLASS_IN) && (ntohs(ans.len) == sizeof(struct ip_addr)) ) {
- /* read the answer resource record's TTL, and maximize it if needed */
- pEntry->ttl = ntohl(ans.ttl);
- if (pEntry->ttl > DNS_MAX_TTL) {
- pEntry->ttl = DNS_MAX_TTL;
- }
- /* read the IP address after answer resource record's header */
- MEMCPY( &(pEntry->ipaddr), (pHostname+SIZEOF_DNS_ANSWER), sizeof(struct ip_addr));
- LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": response = ", pEntry->name));
- ip_addr_debug_print(DNS_DEBUG, (&(pEntry->ipaddr)));
- LWIP_DEBUGF(DNS_DEBUG, ("\n"));
- /* call specified callback function if provided */
- if (pEntry->found) {
- (*pEntry->found)(pEntry->name, &pEntry->ipaddr, pEntry->arg);
- }
- /* deallocate memory and return */
- goto memerr2;
- } else {
- pHostname = pHostname + SIZEOF_DNS_ANSWER + htons(ans.len);
- }
- --nanswers;
- }
- LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": error in response\n", pEntry->name));
- /* call callback to indicate error, clean up memory and return */
- goto responseerr;
- }
- }
- }
-
- /* deallocate memory and return */
- goto memerr2;
-
-responseerr:
- /* ERROR: call specified callback function with NULL as name to indicate an error */
- if (pEntry->found) {
- (*pEntry->found)(pEntry->name, NULL, pEntry->arg);
- }
- /* flush this entry */
- pEntry->state = DNS_STATE_UNUSED;
- pEntry->found = NULL;
-
-memerr2:
-#if (DNS_USES_STATIC_BUF == 2)
- /* free dns buffer */
- mem_free(dns_payload);
-#endif /* (DNS_USES_STATIC_BUF == 2) */
-
-memerr1:
- /* free pbuf */
- pbuf_free(p);
- return;
-}
-
-/**
- * Queues a new hostname to resolve and sends out a DNS query for that hostname
- *
- * @param name the hostname that is to be queried
- * @param found a callback founction to be called on success, failure or timeout
- * @param callback_arg argument to pass to the callback function
- * @return @return a err_t return code.
- */
-static err_t
-dns_enqueue(const char *name, dns_found_callback found, void *callback_arg)
-{
- u8_t i;
- u8_t lseq, lseqi;
- struct dns_table_entry *pEntry = NULL;
-
- /* search an unused entry, or the oldest one */
- lseq = lseqi = 0;
- for (i = 0; i < DNS_TABLE_SIZE; ++i) {
- pEntry = &dns_table[i];
- /* is it an unused entry ? */
- if (pEntry->state == DNS_STATE_UNUSED)
- break;
-
- /* check if this is the oldest completed entry */
- if (pEntry->state == DNS_STATE_DONE) {
- if ((dns_seqno - pEntry->seqno) > lseq) {
- lseq = dns_seqno - pEntry->seqno;
- lseqi = i;
- }
- }
- }
-
- /* if we don't have found an unused entry, use the oldest completed one */
- if (i == DNS_TABLE_SIZE) {
- if ((lseqi >= DNS_TABLE_SIZE) || (dns_table[lseqi].state != DNS_STATE_DONE)) {
- /* no entry can't be used now, table is full */
- LWIP_DEBUGF(DNS_DEBUG, ("dns_enqueue: \"%s\": DNS entries table is full\n", name));
- return ERR_MEM;
- } else {
- /* use the oldest completed one */
- i = lseqi;
- pEntry = &dns_table[i];
- }
- }
-
- /* use this entry */
- LWIP_DEBUGF(DNS_DEBUG, ("dns_enqueue: \"%s\": use DNS entry %"U16_F"\n", name, (u16_t)(i)));
-
- /* fill the entry */
- pEntry->state = DNS_STATE_NEW;
- pEntry->seqno = dns_seqno++;
- pEntry->found = found;
- pEntry->arg = callback_arg;
- strcpy(pEntry->name, name);
-
- /* force to send query without waiting timer */
- dns_check_entry(i);
-
- /* dns query is enqueued */
- return ERR_INPROGRESS;
-}
-
-/**
- * Resolve a hostname (string) into an IP address.
- * NON-BLOCKING callback version for use with raw API!!!
- *
- * Returns immediately with one of err_t return codes:
- * - ERR_OK if hostname is a valid IP address string or the host
- * name is already in the local names table.
- * - ERR_INPROGRESS enqueue a request to be sent to the DNS server
- * for resolution if no errors are present.
- *
- * @param hostname the hostname that is to be queried
- * @param addr pointer to a struct ip_addr where to store the address if it is already
- * cached in the dns_table (only valid if ERR_OK is returned!)
- * @param found a callback function to be called on success, failure or timeout (only if
- * ERR_INPROGRESS is returned!)
- * @param callback_arg argument to pass to the callback function
- * @return a err_t return code.
- */
-err_t
-dns_gethostbyname(const char *hostname, struct ip_addr *addr, dns_found_callback found,
- void *callback_arg)
-{
- /* not initialized or no valid server yet, or invalid addr pointer
- * or invalid hostname or invalid hostname length */
- if ((dns_pcb == NULL) || (addr == NULL) ||
- (!hostname) || (!hostname[0]) ||
- (strlen(hostname) >= DNS_MAX_NAME_LENGTH)) {
- return ERR_VAL;
- }
-
-#if LWIP_HAVE_LOOPIF
- if (strcmp(hostname,"localhost")==0) {
- addr->addr = htonl(INADDR_LOOPBACK);
- return ERR_OK;
- }
-#endif /* LWIP_HAVE_LOOPIF */
-
- /* host name already in octet notation? set ip addr and return ERR_OK
- * already have this address cached? */
- if (((addr->addr = inet_addr(hostname)) != INADDR_NONE) ||
- ((addr->addr = dns_lookup(hostname)) != INADDR_NONE)) {
- return ERR_OK;
- }
-
- /* queue query with specified callback */
- return dns_enqueue(hostname, found, callback_arg);
-}
-
-#endif /* LWIP_DNS */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/init.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/init.c
deleted file mode 100644
index b799527..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/init.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Modules initialization
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#include "lwip/init.h"
-#include "lwip/stats.h"
-#include "lwip/sys.h"
-#include "lwip/mem.h"
-#include "lwip/memp.h"
-#include "lwip/pbuf.h"
-#include "lwip/netif.h"
-#include "lwip/sockets.h"
-#include "lwip/ip.h"
-#include "lwip/raw.h"
-#include "lwip/udp.h"
-#include "lwip/tcp.h"
-#include "lwip/snmp_msg.h"
-#include "lwip/autoip.h"
-#include "lwip/igmp.h"
-#include "lwip/dns.h"
-#include "netif/etharp.h"
-
-/* Compile-time sanity checks for configuration errors.
- * These can be done independently of LWIP_DEBUG, without penalty.
- */
-#ifndef BYTE_ORDER
- #error "BYTE_ORDER is not defined, you have to define it in your cc.h"
-#endif
-#if (!IP_SOF_BROADCAST && IP_SOF_BROADCAST_RECV)
- #error "If you want to use broadcast filter per pcb on recv operations, you have to define IP_SOF_BROADCAST=1 in your lwipopts.h"
-#endif
-#if (!LWIP_ARP && ARP_QUEUEING)
- #error "If you want to use ARP Queueing, you have to define LWIP_ARP=1 in your lwipopts.h"
-#endif
-#if (!LWIP_UDP && LWIP_UDPLITE)
- #error "If you want to use UDP Lite, you have to define LWIP_UDP=1 in your lwipopts.h"
-#endif
-#if (!LWIP_UDP && LWIP_SNMP)
- #error "If you want to use SNMP, you have to define LWIP_UDP=1 in your lwipopts.h"
-#endif
-#if (!LWIP_UDP && LWIP_DHCP)
- #error "If you want to use DHCP, you have to define LWIP_UDP=1 in your lwipopts.h"
-#endif
-#if (!LWIP_UDP && LWIP_IGMP)
- #error "If you want to use IGMP, you have to define LWIP_UDP=1 in your lwipopts.h"
-#endif
-#if (!LWIP_UDP && LWIP_DNS)
- #error "If you want to use DNS, you have to define LWIP_UDP=1 in your lwipopts.h"
-#endif
-#if (LWIP_ARP && (ARP_TABLE_SIZE > 0x7f))
- #error "If you want to use ARP, ARP_TABLE_SIZE must fit in an s8_t, so, you have to reduce it in your lwipopts.h"
-#endif
-#if (LWIP_ARP && ARP_QUEUEING && (MEMP_NUM_ARP_QUEUE<=0))
- #error "If you want to use ARP Queueing, you have to define MEMP_NUM_ARP_QUEUE>=1 in your lwipopts.h"
-#endif
-#if (LWIP_RAW && (MEMP_NUM_RAW_PCB<=0))
- #error "If you want to use RAW, you have to define MEMP_NUM_RAW_PCB>=1 in your lwipopts.h"
-#endif
-#if (LWIP_UDP && (MEMP_NUM_UDP_PCB<=0))
- #error "If you want to use UDP, you have to define MEMP_NUM_UDP_PCB>=1 in your lwipopts.h"
-#endif
-#if (LWIP_TCP && (MEMP_NUM_TCP_PCB<=0))
- #error "If you want to use TCP, you have to define MEMP_NUM_TCP_PCB>=1 in your lwipopts.h"
-#endif
-#if (LWIP_TCP && (TCP_WND > 0xffff))
- #error "If you want to use TCP, TCP_WND must fit in an u16_t, so, you have to reduce it in your lwipopts.h"
-#endif
-#if (LWIP_TCP && (TCP_SND_QUEUELEN > 0xffff))
- #error "If you want to use TCP, TCP_SND_QUEUELEN must fit in an u16_t, so, you have to reduce it in your lwipopts.h"
-#endif
-#if (LWIP_TCP && ((TCP_MAXRTX > 12) || (TCP_SYNMAXRTX > 12)))
- #error "If you want to use TCP, TCP_MAXRTX and TCP_SYNMAXRTX must less or equal to 12 (due to tcp_backoff table), so, you have to reduce them in your lwipopts.h"
-#endif
-#if (LWIP_TCP && TCP_LISTEN_BACKLOG && (TCP_DEFAULT_LISTEN_BACKLOG < 0) || (TCP_DEFAULT_LISTEN_BACKLOG > 0xff))
- #error "If you want to use TCP backlog, TCP_DEFAULT_LISTEN_BACKLOG must fit into an u8_t"
-#endif
-#if (LWIP_IGMP && (MEMP_NUM_IGMP_GROUP<=1))
- #error "If you want to use IGMP, you have to define MEMP_NUM_IGMP_GROUP>1 in your lwipopts.h"
-#endif
-#if (PPP_SUPPORT && (NO_SYS==1))
- #error "If you want to use PPP, you have to define NO_SYS=0 in your lwipopts.h"
-#endif
-#if (LWIP_NETIF_API && (NO_SYS==1))
- #error "If you want to use NETIF API, you have to define NO_SYS=0 in your lwipopts.h"
-#endif
-#if ((LWIP_SOCKET || LWIP_NETCONN) && (NO_SYS==1))
- #error "If you want to use Sequential API, you have to define NO_SYS=0 in your lwipopts.h"
-#endif
-#if ((LWIP_NETCONN || LWIP_SOCKET) && (MEMP_NUM_TCPIP_MSG_API<=0))
- #error "If you want to use Sequential API, you have to define MEMP_NUM_TCPIP_MSG_API>=1 in your lwipopts.h"
-#endif
-#if (!LWIP_NETCONN && LWIP_SOCKET)
- #error "If you want to use Socket API, you have to define LWIP_NETCONN=1 in your lwipopts.h"
-#endif
-#if (((!LWIP_DHCP) || (!LWIP_AUTOIP)) && LWIP_DHCP_AUTOIP_COOP)
- #error "If you want to use DHCP/AUTOIP cooperation mode, you have to define LWIP_DHCP=1 and LWIP_AUTOIP=1 in your lwipopts.h"
-#endif
-#if (((!LWIP_DHCP) || (!LWIP_ARP)) && DHCP_DOES_ARP_CHECK)
- #error "If you want to use DHCP ARP checking, you have to define LWIP_DHCP=1 and LWIP_ARP=1 in your lwipopts.h"
-#endif
-#if (!LWIP_ARP && LWIP_AUTOIP)
- #error "If you want to use AUTOIP, you have to define LWIP_ARP=1 in your lwipopts.h"
-#endif
-#if (LWIP_SNMP && (SNMP_CONCURRENT_REQUESTS<=0))
- #error "If you want to use SNMP, you have to define SNMP_CONCURRENT_REQUESTS>=1 in your lwipopts.h"
-#endif
-#if (LWIP_SNMP && (SNMP_TRAP_DESTINATIONS<=0))
- #error "If you want to use SNMP, you have to define SNMP_TRAP_DESTINATIONS>=1 in your lwipopts.h"
-#endif
-#if (LWIP_TCP && ((LWIP_EVENT_API && LWIP_CALLBACK_API) || (!LWIP_EVENT_API && !LWIP_CALLBACK_API)))
- #error "One and exactly one of LWIP_EVENT_API and LWIP_CALLBACK_API has to be enabled in your lwipopts.h"
-#endif
-/* There must be sufficient timeouts, taking into account requirements of the subsystems. */
-#if ((NO_SYS==0) && (MEMP_NUM_SYS_TIMEOUT < (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT)))
- #error "MEMP_NUM_SYS_TIMEOUT is too low to accomodate all required timeouts"
-#endif
-#if (IP_REASSEMBLY && (MEMP_NUM_REASSDATA > IP_REASS_MAX_PBUFS))
- #error "MEMP_NUM_REASSDATA > IP_REASS_MAX_PBUFS doesn't make sense since each struct ip_reassdata must hold 2 pbufs at least!"
-#endif
-#if (MEM_LIBC_MALLOC && MEM_USE_POOLS)
- #error "MEM_LIBC_MALLOC and MEM_USE_POOLS may not both be simultaneously enabled in your lwipopts.h"
-#endif
-#if (MEM_USE_POOLS && !MEMP_USE_CUSTOM_POOLS)
- #error "MEM_USE_POOLS requires custom pools (MEMP_USE_CUSTOM_POOLS) to be enabled in your lwipopts.h"
-#endif
-#if (PBUF_POOL_BUFSIZE <= MEM_ALIGNMENT)
- #error "PBUF_POOL_BUFSIZE must be greater than MEM_ALIGNMENT or the offset may take the full first pbuf"
-#endif
-#if (TCP_QUEUE_OOSEQ && !LWIP_TCP)
- #error "TCP_QUEUE_OOSEQ requires LWIP_TCP"
-#endif
-#if (DNS_LOCAL_HOSTLIST && !DNS_LOCAL_HOSTLIST_IS_DYNAMIC && !(defined(DNS_LOCAL_HOSTLIST_INIT)))
- #error "you have to define define DNS_LOCAL_HOSTLIST_INIT {{'host1', 0x123}, {'host2', 0x234}} to initialize DNS_LOCAL_HOSTLIST"
-#endif
-#if PPP_SUPPORT && !PPPOS_SUPPORT & !PPPOE_SUPPORT
- #error "PPP_SUPPORT needs either PPPOS_SUPPORT or PPPOE_SUPPORT turned on"
-#endif
-
-
-/* Compile-time checks for deprecated options.
- */
-#ifdef MEMP_NUM_TCPIP_MSG
- #error "MEMP_NUM_TCPIP_MSG option is deprecated. Remove it from your lwipopts.h."
-#endif
-#ifdef MEMP_NUM_API_MSG
- #error "MEMP_NUM_API_MSG option is deprecated. Remove it from your lwipopts.h."
-#endif
-#ifdef TCP_REXMIT_DEBUG
- #error "TCP_REXMIT_DEBUG option is deprecated. Remove it from your lwipopts.h."
-#endif
-#ifdef RAW_STATS
- #error "RAW_STATS option is deprecated. Remove it from your lwipopts.h."
-#endif
-#ifdef ETHARP_QUEUE_FIRST
- #error "ETHARP_QUEUE_FIRST option is deprecated. Remove it from your lwipopts.h."
-#endif
-#ifdef ETHARP_ALWAYS_INSERT
- #error "ETHARP_ALWAYS_INSERT option is deprecated. Remove it from your lwipopts.h."
-#endif
-#if SO_REUSE
-/* I removed the lot since this was an ugly hack. It broke the raw-API.
- It also came with many ugly goto's, Christiaan Simons. */
- #error "SO_REUSE currently unavailable, this was a hack"
-#endif
-
-#ifdef LWIP_DEBUG
-static void
-lwip_sanity_check(void)
-{
- /* Warnings */
-#if LWIP_NETCONN
- if (MEMP_NUM_NETCONN > (MEMP_NUM_TCP_PCB+MEMP_NUM_TCP_PCB_LISTEN+MEMP_NUM_UDP_PCB+MEMP_NUM_RAW_PCB))
- LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: MEMP_NUM_NETCONN should be less than the sum of MEMP_NUM_{TCP,RAW,UDP}_PCB+MEMP_NUM_TCP_PCB_LISTEN\n"));
-#endif /* LWIP_NETCONN */
-#if LWIP_TCP
- if (MEMP_NUM_TCP_SEG < TCP_SND_QUEUELEN)
- LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: MEMP_NUM_TCP_SEG should be at least as big as TCP_SND_QUEUELEN\n"));
- if (TCP_SND_BUF < 2 * TCP_MSS)
- LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_SND_BUF must be at least as much as (2 * TCP_MSS) for things to work smoothly\n"));
- if (TCP_SND_QUEUELEN < (2 * (TCP_SND_BUF/TCP_MSS)))
- LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_SND_QUEUELEN must be at least as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work\n"));
- if (TCP_SNDLOWAT > TCP_SND_BUF)
- LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_SNDLOWAT must be less than or equal to TCP_SND_BUF.\n"));
- if (TCP_WND > (PBUF_POOL_SIZE*PBUF_POOL_BUFSIZE))
- LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_WND is larger than space provided by PBUF_POOL_SIZE*PBUF_POOL_BUFSIZE\n"));
- if (TCP_WND < TCP_MSS)
- LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_WND is smaller than MSS\n"));
-#endif /* LWIP_TCP */
-}
-#else /* LWIP_DEBUG */
-#define lwip_sanity_check()
-#endif /* LWIP_DEBUG */
-
-/**
- * Perform Sanity check of user-configurable values, and initialize all modules.
- */
-void
-lwip_init(void)
-{
- /* Sanity check user-configurable values */
- lwip_sanity_check();
-
- /* Modules initialization */
- stats_init();
- sys_init();
- mem_init();
- memp_init();
- pbuf_init();
- netif_init();
-#if LWIP_SOCKET
- lwip_socket_init();
-#endif /* LWIP_SOCKET */
- ip_init();
-#if LWIP_ARP
- etharp_init();
-#endif /* LWIP_ARP */
-#if LWIP_RAW
- raw_init();
-#endif /* LWIP_RAW */
-#if LWIP_UDP
- udp_init();
-#endif /* LWIP_UDP */
-#if LWIP_TCP
- tcp_init();
-#endif /* LWIP_TCP */
-#if LWIP_SNMP
- snmp_init();
-#endif /* LWIP_SNMP */
-#if LWIP_AUTOIP
- autoip_init();
-#endif /* LWIP_AUTOIP */
-#if LWIP_IGMP
- igmp_init();
-#endif /* LWIP_IGMP */
-#if LWIP_DNS
- dns_init();
-#endif /* LWIP_DNS */
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/autoip.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/autoip.c
deleted file mode 100644
index dde6b6d..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/autoip.c
+++ /dev/null
@@ -1,499 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * AutoIP Automatic LinkLocal IP Configuration
- *
- */
-
-/*
- *
- * Copyright (c) 2007 Dominik Spies <kontakt@dspies.de>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * Author: Dominik Spies <kontakt@dspies.de>
- *
- * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform
- * with RFC 3927.
- *
- *
- * Please coordinate changes and requests with Dominik Spies
- * <kontakt@dspies.de>
- */
-
-/*******************************************************************************
- * USAGE:
- *
- * define LWIP_AUTOIP 1 in your lwipopts.h
- *
- * If you don't use tcpip.c (so, don't call, you don't call tcpip_init):
- * - First, call autoip_init().
- * - call autoip_tmr() all AUTOIP_TMR_INTERVAL msces,
- * that should be defined in autoip.h.
- * I recommend a value of 100. The value must divide 1000 with a remainder almost 0.
- * Possible values are 1000, 500, 333, 250, 200, 166, 142, 125, 111, 100 ....
- *
- * Without DHCP:
- * - Call autoip_start() after netif_add().
- *
- * With DHCP:
- * - define LWIP_DHCP_AUTOIP_COOP 1 in your lwipopts.h.
- * - Configure your DHCP Client.
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_AUTOIP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/mem.h"
-#include "lwip/udp.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/autoip.h"
-#include "netif/etharp.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-/* 169.254.0.0 */
-#define AUTOIP_NET 0xA9FE0000
-/* 169.254.1.0 */
-#define AUTOIP_RANGE_START (AUTOIP_NET | 0x0100)
-/* 169.254.254.255 */
-#define AUTOIP_RANGE_END (AUTOIP_NET | 0xFEFF)
-
-
-/** Pseudo random macro based on netif informations.
- * You could use "rand()" from the C Library if you define LWIP_AUTOIP_RAND in lwipopts.h */
-#ifndef LWIP_AUTOIP_RAND
-#define LWIP_AUTOIP_RAND(netif) ( (((u32_t)((netif->hwaddr[5]) & 0xff) << 24) | \
- ((u32_t)((netif->hwaddr[3]) & 0xff) << 16) | \
- ((u32_t)((netif->hwaddr[2]) & 0xff) << 8) | \
- ((u32_t)((netif->hwaddr[4]) & 0xff))) + \
- (netif->autoip?netif->autoip->tried_llipaddr:0))
-#endif /* LWIP_AUTOIP_RAND */
-
-/**
- * Macro that generates the initial IP address to be tried by AUTOIP.
- * If you want to override this, define it to something else in lwipopts.h.
- */
-#ifndef LWIP_AUTOIP_CREATE_SEED_ADDR
-#define LWIP_AUTOIP_CREATE_SEED_ADDR(netif) \
- htonl(AUTOIP_RANGE_START + ((u32_t)(((u8_t)(netif->hwaddr[4])) | \
- ((u32_t)((u8_t)(netif->hwaddr[5]))) << 8)))
-#endif /* LWIP_AUTOIP_CREATE_SEED_ADDR */
-
-/* static functions */
-static void autoip_handle_arp_conflict(struct netif *netif);
-
-/* creates a pseudo random LL IP-Address for a network interface */
-static void autoip_create_addr(struct netif *netif, struct ip_addr *ipaddr);
-
-/* sends an ARP probe */
-static err_t autoip_arp_probe(struct netif *netif);
-
-/* sends an ARP announce */
-static err_t autoip_arp_announce(struct netif *netif);
-
-/* configure interface for use with current LL IP-Address */
-static err_t autoip_bind(struct netif *netif);
-
-/* start sending probes for llipaddr */
-static void autoip_start_probing(struct netif *netif);
-
-/**
- * Initialize this module
- */
-void
-autoip_init(void)
-{
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_init()\n"));
-}
-
-/**
- * Handle a IP address conflict after an ARP conflict detection
- */
-static void
-autoip_handle_arp_conflict(struct netif *netif)
-{
- /* Somehow detect if we are defending or retreating */
- unsigned char defend = 1; /* tbd */
-
- if(defend) {
- if(netif->autoip->lastconflict > 0) {
- /* retreat, there was a conflicting ARP in the last
- * DEFEND_INTERVAL seconds
- */
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
- ("autoip_handle_arp_conflict(): we are defending, but in DEFEND_INTERVAL, retreating\n"));
-
- /* TODO: close all TCP sessions */
- autoip_start(netif);
- } else {
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
- ("autoip_handle_arp_conflict(): we are defend, send ARP Announce\n"));
- autoip_arp_announce(netif);
- netif->autoip->lastconflict = DEFEND_INTERVAL * AUTOIP_TICKS_PER_SECOND;
- }
- } else {
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
- ("autoip_handle_arp_conflict(): we do not defend, retreating\n"));
- /* TODO: close all TCP sessions */
- autoip_start(netif);
- }
-}
-
-/**
- * Create an IP-Address out of range 169.254.1.0 to 169.254.254.255
- *
- * @param netif network interface on which create the IP-Address
- * @param ipaddr ip address to initialize
- */
-static void
-autoip_create_addr(struct netif *netif, struct ip_addr *ipaddr)
-{
- /* Here we create an IP-Address out of range 169.254.1.0 to 169.254.254.255
- * compliant to RFC 3927 Section 2.1
- * We have 254 * 256 possibilities */
-
- u32_t addr = ntohl(LWIP_AUTOIP_CREATE_SEED_ADDR(netif));
- addr += netif->autoip->tried_llipaddr;
- addr = AUTOIP_NET | (addr & 0xffff);
- /* Now, 169.254.0.0 <= addr <= 169.254.255.255 */
-
- if (addr < AUTOIP_RANGE_START) {
- addr += AUTOIP_RANGE_END - AUTOIP_RANGE_START + 1;
- }
- if (addr > AUTOIP_RANGE_END) {
- addr -= AUTOIP_RANGE_END - AUTOIP_RANGE_START + 1;
- }
- LWIP_ASSERT("AUTOIP address not in range", (addr >= AUTOIP_RANGE_START) &&
- (addr <= AUTOIP_RANGE_END));
- ipaddr->addr = htonl(addr);
-
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
- ("autoip_create_addr(): tried_llipaddr=%"U16_F", 0x%08"X32_F"\n",
- (u16_t)(netif->autoip->tried_llipaddr), (u32_t)(ipaddr->addr)));
-}
-
-/**
- * Sends an ARP probe from a network interface
- *
- * @param netif network interface used to send the probe
- */
-static err_t
-autoip_arp_probe(struct netif *netif)
-{
- return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, &ethbroadcast,
- (struct eth_addr *)netif->hwaddr, IP_ADDR_ANY, &ethzero,
- &netif->autoip->llipaddr, ARP_REQUEST);
-}
-
-/**
- * Sends an ARP announce from a network interface
- *
- * @param netif network interface used to send the announce
- */
-static err_t
-autoip_arp_announce(struct netif *netif)
-{
- return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, &ethbroadcast,
- (struct eth_addr *)netif->hwaddr, &netif->autoip->llipaddr, &ethzero,
- &netif->autoip->llipaddr, ARP_REQUEST);
-}
-
-/**
- * Configure interface for use with current LL IP-Address
- *
- * @param netif network interface to configure with current LL IP-Address
- */
-static err_t
-autoip_bind(struct netif *netif)
-{
- struct autoip *autoip = netif->autoip;
- struct ip_addr sn_mask, gw_addr;
-
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE,
- ("autoip_bind(netif=%p) %c%c%"U16_F" 0x%08"X32_F"\n",
- (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num, autoip->llipaddr.addr));
-
- IP4_ADDR(&sn_mask, 255, 255, 0, 0);
- IP4_ADDR(&gw_addr, 0, 0, 0, 0);
-
- netif_set_ipaddr(netif, &autoip->llipaddr);
- netif_set_netmask(netif, &sn_mask);
- netif_set_gw(netif, &gw_addr);
-
- /* bring the interface up */
- netif_set_up(netif);
-
- return ERR_OK;
-}
-
-/**
- * Start AutoIP client
- *
- * @param netif network interface on which start the AutoIP client
- */
-err_t
-autoip_start(struct netif *netif)
-{
- struct autoip *autoip = netif->autoip;
- err_t result = ERR_OK;
-
- if(netif_is_up(netif)) {
- netif_set_down(netif);
- }
-
- /* Set IP-Address, Netmask and Gateway to 0 to make sure that
- * ARP Packets are formed correctly
- */
- netif->ip_addr.addr = 0;
- netif->netmask.addr = 0;
- netif->gw.addr = 0;
-
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
- ("autoip_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0],
- netif->name[1], (u16_t)netif->num));
- if(autoip == NULL) {
- /* no AutoIP client attached yet? */
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE,
- ("autoip_start(): starting new AUTOIP client\n"));
- autoip = mem_malloc(sizeof(struct autoip));
- if(autoip == NULL) {
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE,
- ("autoip_start(): could not allocate autoip\n"));
- return ERR_MEM;
- }
- memset( autoip, 0, sizeof(struct autoip));
- /* store this AutoIP client in the netif */
- netif->autoip = autoip;
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_start(): allocated autoip"));
- } else {
- autoip->state = AUTOIP_STATE_OFF;
- autoip->ttw = 0;
- autoip->sent_num = 0;
- memset(&autoip->llipaddr, 0, sizeof(struct ip_addr));
- autoip->lastconflict = 0;
- }
-
- autoip_create_addr(netif, &(autoip->llipaddr));
- autoip->tried_llipaddr++;
- autoip_start_probing(netif);
-
- return result;
-}
-
-static void
-autoip_start_probing(struct netif *netif)
-{
- struct autoip *autoip = netif->autoip;
-
- autoip->state = AUTOIP_STATE_PROBING;
- autoip->sent_num = 0;
-
- /* time to wait to first probe, this is randomly
- * choosen out of 0 to PROBE_WAIT seconds.
- * compliant to RFC 3927 Section 2.2.1
- */
- autoip->ttw = (u16_t)(LWIP_AUTOIP_RAND(netif) % (PROBE_WAIT * AUTOIP_TICKS_PER_SECOND));
-
- /*
- * if we tried more then MAX_CONFLICTS we must limit our rate for
- * accquiring and probing address
- * compliant to RFC 3927 Section 2.2.1
- */
- if(autoip->tried_llipaddr > MAX_CONFLICTS) {
- autoip->ttw = RATE_LIMIT_INTERVAL * AUTOIP_TICKS_PER_SECOND;
- }
-}
-
-/**
- * Handle a possible change in the network configuration.
- *
- * If there is an AutoIP address configured, take the interface down
- * and begin probing with the same address.
- */
-void
-autoip_network_changed(struct netif *netif)
-{
- if (netif->autoip && netif->autoip->state != AUTOIP_STATE_OFF) {
- netif_set_down(netif);
- autoip_start_probing(netif);
- }
-}
-
-/**
- * Stop AutoIP client
- *
- * @param netif network interface on which stop the AutoIP client
- */
-err_t
-autoip_stop(struct netif *netif)
-{
- netif->autoip->state = AUTOIP_STATE_OFF;
- netif_set_down(netif);
- return ERR_OK;
-}
-
-/**
- * Has to be called in loop every AUTOIP_TMR_INTERVAL milliseconds
- */
-void
-autoip_tmr()
-{
- struct netif *netif = netif_list;
- /* loop through netif's */
- while (netif != NULL) {
- /* only act on AutoIP configured interfaces */
- if (netif->autoip != NULL) {
- if(netif->autoip->lastconflict > 0) {
- netif->autoip->lastconflict--;
- }
-
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE,
- ("autoip_tmr() AutoIP-State: %"U16_F", ttw=%"U16_F"\n",
- (u16_t)(netif->autoip->state), netif->autoip->ttw));
-
- switch(netif->autoip->state) {
- case AUTOIP_STATE_PROBING:
- if(netif->autoip->ttw > 0) {
- netif->autoip->ttw--;
- } else {
- if(netif->autoip->sent_num >= PROBE_NUM) {
- netif->autoip->state = AUTOIP_STATE_ANNOUNCING;
- netif->autoip->sent_num = 0;
- netif->autoip->ttw = ANNOUNCE_WAIT * AUTOIP_TICKS_PER_SECOND;
- } else {
- autoip_arp_probe(netif);
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE,
- ("autoip_tmr() PROBING Sent Probe\n"));
- netif->autoip->sent_num++;
- /* calculate time to wait to next probe */
- netif->autoip->ttw = (u16_t)((LWIP_AUTOIP_RAND(netif) %
- ((PROBE_MAX - PROBE_MIN) * AUTOIP_TICKS_PER_SECOND) ) +
- PROBE_MIN * AUTOIP_TICKS_PER_SECOND);
- }
- }
- break;
-
- case AUTOIP_STATE_ANNOUNCING:
- if(netif->autoip->ttw > 0) {
- netif->autoip->ttw--;
- } else {
- if(netif->autoip->sent_num == 0) {
- /* We are here the first time, so we waited ANNOUNCE_WAIT seconds
- * Now we can bind to an IP address and use it.
- *
- * autoip_bind calls netif_set_up. This triggers a gratuitous ARP
- * which counts as an announcement.
- */
- autoip_bind(netif);
- } else {
- autoip_arp_announce(netif);
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE,
- ("autoip_tmr() ANNOUNCING Sent Announce\n"));
- }
- netif->autoip->ttw = ANNOUNCE_INTERVAL * AUTOIP_TICKS_PER_SECOND;
- netif->autoip->sent_num++;
-
- if(netif->autoip->sent_num >= ANNOUNCE_NUM) {
- netif->autoip->state = AUTOIP_STATE_BOUND;
- netif->autoip->sent_num = 0;
- netif->autoip->ttw = 0;
- }
- }
- break;
- }
- }
- /* proceed to next network interface */
- netif = netif->next;
- }
-}
-
-/**
- * Handles every incoming ARP Packet, called by etharp_arp_input.
- *
- * @param netif network interface to use for autoip processing
- * @param hdr Incoming ARP packet
- */
-void
-autoip_arp_reply(struct netif *netif, struct etharp_hdr *hdr)
-{
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_arp_reply()\n"));
- if ((netif->autoip != NULL) && (netif->autoip->state != AUTOIP_STATE_OFF)) {
- /* when ip.src == llipaddr && hw.src != netif->hwaddr
- *
- * when probing ip.dst == llipaddr && hw.src != netif->hwaddr
- * we have a conflict and must solve it
- */
- struct ip_addr sipaddr, dipaddr;
- struct eth_addr netifaddr;
- netifaddr.addr[0] = netif->hwaddr[0];
- netifaddr.addr[1] = netif->hwaddr[1];
- netifaddr.addr[2] = netif->hwaddr[2];
- netifaddr.addr[3] = netif->hwaddr[3];
- netifaddr.addr[4] = netif->hwaddr[4];
- netifaddr.addr[5] = netif->hwaddr[5];
-
- /* Copy struct ip_addr2 to aligned ip_addr, to support compilers without
- * structure packing (not using structure copy which breaks strict-aliasing rules).
- */
- SMEMCPY(&sipaddr, &hdr->sipaddr, sizeof(sipaddr));
- SMEMCPY(&dipaddr, &hdr->dipaddr, sizeof(dipaddr));
-
- if ((netif->autoip->state == AUTOIP_STATE_PROBING) ||
- ((netif->autoip->state == AUTOIP_STATE_ANNOUNCING) &&
- (netif->autoip->sent_num == 0))) {
- /* RFC 3927 Section 2.2.1:
- * from beginning to after ANNOUNCE_WAIT
- * seconds we have a conflict if
- * ip.src == llipaddr OR
- * ip.dst == llipaddr && hw.src != own hwaddr
- */
- if ((ip_addr_cmp(&sipaddr, &netif->autoip->llipaddr)) ||
- (ip_addr_cmp(&dipaddr, &netif->autoip->llipaddr) &&
- !eth_addr_cmp(&netifaddr, &hdr->shwaddr))) {
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | LWIP_DBG_LEVEL_WARNING,
- ("autoip_arp_reply(): Probe Conflict detected\n"));
- autoip_start(netif);
- }
- } else {
- /* RFC 3927 Section 2.5:
- * in any state we have a conflict if
- * ip.src == llipaddr && hw.src != own hwaddr
- */
- if (ip_addr_cmp(&sipaddr, &netif->autoip->llipaddr) &&
- !eth_addr_cmp(&netifaddr, &hdr->shwaddr)) {
- LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | LWIP_DBG_LEVEL_WARNING,
- ("autoip_arp_reply(): Conflicting ARP-Packet detected\n"));
- autoip_handle_arp_conflict(netif);
- }
- }
- }
-}
-
-#endif /* LWIP_AUTOIP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/icmp.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/icmp.c
deleted file mode 100644
index 3ee17ae..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/icmp.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * ICMP - Internet Control Message Protocol
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-/* Some ICMP messages should be passed to the transport protocols. This
- is not implemented. */
-
-#include "lwip/opt.h"
-
-#if LWIP_ICMP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/icmp.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/ip.h"
-#include "lwip/def.h"
-#include "lwip/stats.h"
-#include "lwip/snmp.h"
-
-#include <string.h>
-
-/** Small optimization: set to 0 if incoming PBUF_POOL pbuf always can be
- * used to modify and send a response packet (and to 1 if this is not the case,
- * e.g. when link header is stripped of when receiving) */
-#ifndef LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
-#define LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN 1
-#endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */
-
-/* The amount of data from the original packet to return in a dest-unreachable */
-#define ICMP_DEST_UNREACH_DATASIZE 8
-
-static void icmp_send_response(struct pbuf *p, u8_t type, u8_t code);
-
-/**
- * Processes ICMP input packets, called from ip_input().
- *
- * Currently only processes icmp echo requests and sends
- * out the echo response.
- *
- * @param p the icmp echo request packet, p->payload pointing to the ip header
- * @param inp the netif on which this packet was received
- */
-void
-icmp_input(struct pbuf *p, struct netif *inp)
-{
- u8_t type;
-#ifdef LWIP_DEBUG
- u8_t code;
-#endif /* LWIP_DEBUG */
- struct icmp_echo_hdr *iecho;
- struct ip_hdr *iphdr;
- struct ip_addr tmpaddr;
- s16_t hlen;
-
- ICMP_STATS_INC(icmp.recv);
- snmp_inc_icmpinmsgs();
-
-
- iphdr = p->payload;
- hlen = IPH_HL(iphdr) * 4;
- if (pbuf_header(p, -hlen) || (p->tot_len < sizeof(u16_t)*2)) {
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: short ICMP (%"U16_F" bytes) received\n", p->tot_len));
- goto lenerr;
- }
-
- type = *((u8_t *)p->payload);
-#ifdef LWIP_DEBUG
- code = *(((u8_t *)p->payload)+1);
-#endif /* LWIP_DEBUG */
- switch (type) {
- case ICMP_ECHO:
-#if !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING
- {
- int accepted = 1;
-#if !LWIP_MULTICAST_PING
- /* multicast destination address? */
- if (ip_addr_ismulticast(&iphdr->dest)) {
- accepted = 0;
- }
-#endif /* LWIP_MULTICAST_PING */
-#if !LWIP_BROADCAST_PING
- /* broadcast destination address? */
- if (ip_addr_isbroadcast(&iphdr->dest, inp)) {
- accepted = 0;
- }
-#endif /* LWIP_BROADCAST_PING */
- /* broadcast or multicast destination address not acceptd? */
- if (!accepted) {
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: Not echoing to multicast or broadcast pings\n"));
- ICMP_STATS_INC(icmp.err);
- pbuf_free(p);
- return;
- }
- }
-#endif /* !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING */
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ping\n"));
- if (p->tot_len < sizeof(struct icmp_echo_hdr)) {
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: bad ICMP echo received\n"));
- goto lenerr;
- }
- if (inet_chksum_pbuf(p) != 0) {
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: checksum failed for received ICMP echo\n"));
- pbuf_free(p);
- ICMP_STATS_INC(icmp.chkerr);
- snmp_inc_icmpinerrors();
- return;
- }
-#if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
- if (pbuf_header(p, (PBUF_IP_HLEN + PBUF_LINK_HLEN))) {
- /* p is not big enough to contain link headers
- * allocate a new one and copy p into it
- */
- struct pbuf *r;
- /* switch p->payload to ip header */
- if (pbuf_header(p, hlen)) {
- LWIP_ASSERT("icmp_input: moving p->payload to ip header failed\n", 0);
- goto memerr;
- }
- /* allocate new packet buffer with space for link headers */
- r = pbuf_alloc(PBUF_LINK, p->tot_len, PBUF_RAM);
- if (r == NULL) {
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: allocating new pbuf failed\n"));
- goto memerr;
- }
- LWIP_ASSERT("check that first pbuf can hold struct the ICMP header",
- (r->len >= hlen + sizeof(struct icmp_echo_hdr)));
- /* copy the whole packet including ip header */
- if (pbuf_copy(r, p) != ERR_OK) {
- LWIP_ASSERT("icmp_input: copying to new pbuf failed\n", 0);
- goto memerr;
- }
- iphdr = r->payload;
- /* switch r->payload back to icmp header */
- if (pbuf_header(r, -hlen)) {
- LWIP_ASSERT("icmp_input: restoring original p->payload failed\n", 0);
- goto memerr;
- }
- /* free the original p */
- pbuf_free(p);
- /* we now have an identical copy of p that has room for link headers */
- p = r;
- } else {
- /* restore p->payload to point to icmp header */
- if (pbuf_header(p, -(s16_t)(PBUF_IP_HLEN + PBUF_LINK_HLEN))) {
- LWIP_ASSERT("icmp_input: restoring original p->payload failed\n", 0);
- goto memerr;
- }
- }
-#endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */
- /* At this point, all checks are OK. */
- /* We generate an answer by switching the dest and src ip addresses,
- * setting the icmp type to ECHO_RESPONSE and updating the checksum. */
- iecho = p->payload;
- tmpaddr.addr = iphdr->src.addr;
- iphdr->src.addr = iphdr->dest.addr;
- iphdr->dest.addr = tmpaddr.addr;
- ICMPH_TYPE_SET(iecho, ICMP_ER);
- /* adjust the checksum */
- if (iecho->chksum >= htons(0xffff - (ICMP_ECHO << 8))) {
- iecho->chksum += htons(ICMP_ECHO << 8) + 1;
- } else {
- iecho->chksum += htons(ICMP_ECHO << 8);
- }
-
- /* Set the correct TTL and recalculate the header checksum. */
- IPH_TTL_SET(iphdr, ICMP_TTL);
- IPH_CHKSUM_SET(iphdr, 0);
-#if CHECKSUM_GEN_IP
- IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, IP_HLEN));
-#endif /* CHECKSUM_GEN_IP */
-
- ICMP_STATS_INC(icmp.xmit);
- /* increase number of messages attempted to send */
- snmp_inc_icmpoutmsgs();
- /* increase number of echo replies attempted to send */
- snmp_inc_icmpoutechoreps();
-
- if(pbuf_header(p, hlen)) {
- LWIP_ASSERT("Can't move over header in packet", 0);
- } else {
- err_t ret;
- ret = ip_output_if(p, &(iphdr->src), IP_HDRINCL,
- ICMP_TTL, 0, IP_PROTO_ICMP, inp);
- if (ret != ERR_OK) {
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ip_output_if returned an error: %c.\n", ret));
- }
- }
- break;
- default:
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\n",
- (s16_t)type, (s16_t)code));
- ICMP_STATS_INC(icmp.proterr);
- ICMP_STATS_INC(icmp.drop);
- }
- pbuf_free(p);
- return;
-lenerr:
- pbuf_free(p);
- ICMP_STATS_INC(icmp.lenerr);
- snmp_inc_icmpinerrors();
- return;
-#if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
-memerr:
- pbuf_free(p);
- ICMP_STATS_INC(icmp.err);
- snmp_inc_icmpinerrors();
- return;
-#endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */
-}
-
-/**
- * Send an icmp 'destination unreachable' packet, called from ip_input() if
- * the transport layer protocol is unknown and from udp_input() if the local
- * port is not bound.
- *
- * @param p the input packet for which the 'unreachable' should be sent,
- * p->payload pointing to the IP header
- * @param t type of the 'unreachable' packet
- */
-void
-icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t)
-{
- icmp_send_response(p, ICMP_DUR, t);
-}
-
-#if IP_FORWARD || IP_REASSEMBLY
-/**
- * Send a 'time exceeded' packet, called from ip_forward() if TTL is 0.
- *
- * @param p the input packet for which the 'time exceeded' should be sent,
- * p->payload pointing to the IP header
- * @param t type of the 'time exceeded' packet
- */
-void
-icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t)
-{
- icmp_send_response(p, ICMP_TE, t);
-}
-
-#endif /* IP_FORWARD || IP_REASSEMBLY */
-
-/**
- * Send an icmp packet in response to an incoming packet.
- *
- * @param p the input packet for which the 'unreachable' should be sent,
- * p->payload pointing to the IP header
- * @param type Type of the ICMP header
- * @param code Code of the ICMP header
- */
-static void
-icmp_send_response(struct pbuf *p, u8_t type, u8_t code)
-{
- struct pbuf *q;
- struct ip_hdr *iphdr;
- /* we can use the echo header here */
- struct icmp_echo_hdr *icmphdr;
-
- /* ICMP header + IP header + 8 bytes of data */
- q = pbuf_alloc(PBUF_IP, sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE,
- PBUF_RAM);
- if (q == NULL) {
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded: failed to allocate pbuf for ICMP packet.\n"));
- return;
- }
- LWIP_ASSERT("check that first pbuf can hold icmp message",
- (q->len >= (sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE)));
-
- iphdr = p->payload;
- LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded from "));
- ip_addr_debug_print(ICMP_DEBUG, &(iphdr->src));
- LWIP_DEBUGF(ICMP_DEBUG, (" to "));
- ip_addr_debug_print(ICMP_DEBUG, &(iphdr->dest));
- LWIP_DEBUGF(ICMP_DEBUG, ("\n"));
-
- icmphdr = q->payload;
- icmphdr->type = type;
- icmphdr->code = code;
- icmphdr->id = 0;
- icmphdr->seqno = 0;
-
- /* copy fields from original packet */
- SMEMCPY((u8_t *)q->payload + sizeof(struct icmp_echo_hdr), (u8_t *)p->payload,
- IP_HLEN + ICMP_DEST_UNREACH_DATASIZE);
-
- /* calculate checksum */
- icmphdr->chksum = 0;
- icmphdr->chksum = inet_chksum(icmphdr, q->len);
- ICMP_STATS_INC(icmp.xmit);
- /* increase number of messages attempted to send */
- snmp_inc_icmpoutmsgs();
- /* increase number of destination unreachable messages attempted to send */
- snmp_inc_icmpouttimeexcds();
- ip_output(q, NULL, &(iphdr->src), ICMP_TTL, 0, IP_PROTO_ICMP);
- pbuf_free(q);
-}
-
-#endif /* LWIP_ICMP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/igmp.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/igmp.c
deleted file mode 100644
index b302ef4..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/igmp.c
+++ /dev/null
@@ -1,759 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * IGMP - Internet Group Management Protocol
- *
- */
-
-/*
- * Copyright (c) 2002 CITEL Technologies Ltd.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of CITEL Technologies Ltd nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY CITEL TECHNOLOGIES AND CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL CITEL TECHNOLOGIES OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * This file is a contribution to the lwIP TCP/IP stack.
- * The Swedish Institute of Computer Science and Adam Dunkels
- * are specifically granted permission to redistribute this
- * source code.
-*/
-
-/*-------------------------------------------------------------
-Note 1)
-Although the rfc requires V1 AND V2 capability
-we will only support v2 since now V1 is very old (August 1989)
-V1 can be added if required
-
-a debug print and statistic have been implemented to
-show this up.
--------------------------------------------------------------
--------------------------------------------------------------
-Note 2)
-A query for a specific group address (as opposed to ALLHOSTS)
-has now been implemented as I am unsure if it is required
-
-a debug print and statistic have been implemented to
-show this up.
--------------------------------------------------------------
--------------------------------------------------------------
-Note 3)
-The router alert rfc 2113 is implemented in outgoing packets
-but not checked rigorously incoming
--------------------------------------------------------------
-Steve Reynolds
-------------------------------------------------------------*/
-
-/*-----------------------------------------------------------------------------
- * RFC 988 - Host extensions for IP multicasting - V0
- * RFC 1054 - Host extensions for IP multicasting -
- * RFC 1112 - Host extensions for IP multicasting - V1
- * RFC 2236 - Internet Group Management Protocol, Version 2 - V2 <- this code is based on this RFC (it's the "de facto" standard)
- * RFC 3376 - Internet Group Management Protocol, Version 3 - V3
- * RFC 4604 - Using Internet Group Management Protocol Version 3... - V3+
- * RFC 2113 - IP Router Alert Option -
- *----------------------------------------------------------------------------*/
-
-/*-----------------------------------------------------------------------------
- * Includes
- *----------------------------------------------------------------------------*/
-
-#include "lwip/opt.h"
-
-#if LWIP_IGMP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/igmp.h"
-#include "lwip/debug.h"
-#include "lwip/def.h"
-#include "lwip/mem.h"
-#include "lwip/ip.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/netif.h"
-#include "lwip/icmp.h"
-#include "lwip/udp.h"
-#include "lwip/tcp.h"
-#include "lwip/stats.h"
-
-#include "string.h"
-
-/*-----------------------------------------------------------------------------
- * Globales
- *----------------------------------------------------------------------------*/
-
-static struct igmp_group* igmp_group_list;
-static struct ip_addr allsystems;
-static struct ip_addr allrouters;
-
-/**
- * Initialize the IGMP module
- */
-void
-igmp_init(void)
-{
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_init: initializing\n"));
-
- IP4_ADDR(&allsystems, 224, 0, 0, 1);
- IP4_ADDR(&allrouters, 224, 0, 0, 2);
-}
-
-#ifdef LWIP_DEBUG
-/**
- * Dump global IGMP groups list
- */
-void
-igmp_dump_group_list()
-{
- struct igmp_group *group = igmp_group_list;
-
- while (group != NULL) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_dump_group_list: [%"U32_F"] ", (u32_t)(group->group_state)));
- ip_addr_debug_print(IGMP_DEBUG, &group->group_address);
- LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", group->interface));
- group = group->next;
- }
- LWIP_DEBUGF(IGMP_DEBUG, ("\n"));
-}
-#else
-#define igmp_dump_group_list()
-#endif /* LWIP_DEBUG */
-
-/**
- * Start IGMP processing on interface
- *
- * @param netif network interface on which start IGMP processing
- */
-err_t
-igmp_start(struct netif *netif)
-{
- struct igmp_group* group;
-
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_start: starting IGMP processing on if %p\n", netif));
-
- group = igmp_lookup_group(netif, &allsystems);
-
- if (group != NULL) {
- group->group_state = IGMP_GROUP_IDLE_MEMBER;
- group->use++;
-
- /* Allow the igmp messages at the MAC level */
- if (netif->igmp_mac_filter != NULL) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_start: igmp_mac_filter(ADD "));
- ip_addr_debug_print(IGMP_DEBUG, &allsystems);
- LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif));
- netif->igmp_mac_filter( netif, &allsystems, IGMP_ADD_MAC_FILTER);
- }
-
- return ERR_OK;
- }
-
- return ERR_MEM;
-}
-
-/**
- * Stop IGMP processing on interface
- *
- * @param netif network interface on which stop IGMP processing
- */
-err_t
-igmp_stop(struct netif *netif)
-{
- struct igmp_group *group = igmp_group_list;
- struct igmp_group *prev = NULL;
- struct igmp_group *next;
-
- /* look for groups joined on this interface further down the list */
- while (group != NULL) {
- next = group->next;
- /* is it a group joined on this interface? */
- if (group->interface == netif) {
- /* is it the first group of the list? */
- if (group == igmp_group_list) {
- igmp_group_list = next;
- }
- /* is there a "previous" group defined? */
- if (prev != NULL) {
- prev->next = next;
- }
- /* disable the group at the MAC level */
- if (netif->igmp_mac_filter != NULL) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_stop: igmp_mac_filter(DEL "));
- ip_addr_debug_print(IGMP_DEBUG, &group->group_address);
- LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif));
- netif->igmp_mac_filter(netif, &(group->group_address), IGMP_DEL_MAC_FILTER);
- }
- /* free group */
- memp_free(MEMP_IGMP_GROUP, group);
- } else {
- /* change the "previous" */
- prev = group;
- }
- /* move to "next" */
- group = next;
- }
- return ERR_OK;
-}
-
-/**
- * Report IGMP memberships for this interface
- *
- * @param netif network interface on which report IGMP memberships
- */
-void
-igmp_report_groups( struct netif *netif)
-{
- struct igmp_group *group = igmp_group_list;
-
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_report_groups: sending IGMP reports on if %p\n", netif));
-
- while (group != NULL) {
- if (group->interface == netif) {
- igmp_delaying_member( group, IGMP_JOIN_DELAYING_MEMBER_TMR);
- }
- group = group->next;
- }
-}
-
-/**
- * Search for a group in the global igmp_group_list
- *
- * @param ifp the network interface for which to look
- * @param addr the group ip address to search for
- * @return a struct igmp_group* if the group has been found,
- * NULL if the group wasn't found.
- */
-struct igmp_group *
-igmp_lookfor_group(struct netif *ifp, struct ip_addr *addr)
-{
- struct igmp_group *group = igmp_group_list;
-
- while (group != NULL) {
- if ((group->interface == ifp) && (ip_addr_cmp(&(group->group_address), addr))) {
- return group;
- }
- group = group->next;
- }
-
- /* to be clearer, we return NULL here instead of
- * 'group' (which is also NULL at this point).
- */
- return NULL;
-}
-
-/**
- * Search for a specific igmp group and create a new one if not found-
- *
- * @param ifp the network interface for which to look
- * @param addr the group ip address to search
- * @return a struct igmp_group*,
- * NULL on memory error.
- */
-struct igmp_group *
-igmp_lookup_group(struct netif *ifp, struct ip_addr *addr)
-{
- struct igmp_group *group = igmp_group_list;
-
- /* Search if the group already exists */
- group = igmp_lookfor_group(ifp, addr);
- if (group != NULL) {
- /* Group already exists. */
- return group;
- }
-
- /* Group doesn't exist yet, create a new one */
- group = memp_malloc(MEMP_IGMP_GROUP);
- if (group != NULL) {
- group->interface = ifp;
- ip_addr_set(&(group->group_address), addr);
- group->timer = 0; /* Not running */
- group->group_state = IGMP_GROUP_NON_MEMBER;
- group->last_reporter_flag = 0;
- group->use = 0;
- group->next = igmp_group_list;
-
- igmp_group_list = group;
- }
-
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_lookup_group: %sallocated a new group with address ", (group?"":"impossible to ")));
- ip_addr_debug_print(IGMP_DEBUG, addr);
- LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", ifp));
-
- return group;
-}
-
-/**
- * Remove a group in the global igmp_group_list
- *
- * @param group the group to remove from the global igmp_group_list
- * @return ERR_OK if group was removed from the list, an err_t otherwise
- */
-err_t
-igmp_remove_group(struct igmp_group *group)
-{
- err_t err = ERR_OK;
-
- /* Is it the first group? */
- if (igmp_group_list == group) {
- igmp_group_list = group->next;
- } else {
- /* look for group further down the list */
- struct igmp_group *tmpGroup;
- for (tmpGroup = igmp_group_list; tmpGroup != NULL; tmpGroup = tmpGroup->next) {
- if (tmpGroup->next == group) {
- tmpGroup->next = group->next;
- break;
- }
- }
- /* Group not found in the global igmp_group_list */
- if (tmpGroup == NULL)
- err = ERR_ARG;
- }
- /* free group */
- memp_free(MEMP_IGMP_GROUP, group);
-
- return err;
-}
-
-/**
- * Called from ip_input() if a new IGMP packet is received.
- *
- * @param p received igmp packet, p->payload pointing to the ip header
- * @param inp network interface on which the packet was received
- * @param dest destination ip address of the igmp packet
- */
-void
-igmp_input(struct pbuf *p, struct netif *inp, struct ip_addr *dest)
-{
- struct ip_hdr * iphdr;
- struct igmp_msg* igmp;
- struct igmp_group* group;
- struct igmp_group* groupref;
-
- /* Note that the length CAN be greater than 8 but only 8 are used - All are included in the checksum */
- iphdr = p->payload;
- if (pbuf_header(p, -(s16_t)(IPH_HL(iphdr) * 4)) || (p->len < IGMP_MINLEN)) {
- pbuf_free(p);
- IGMP_STATS_INC(igmp.lenerr);
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: length error\n"));
- return;
- }
-
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: message from "));
- ip_addr_debug_print(IGMP_DEBUG, &(iphdr->src));
- LWIP_DEBUGF(IGMP_DEBUG, (" to address "));
- ip_addr_debug_print(IGMP_DEBUG, &(iphdr->dest));
- LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", inp));
-
- /* Now calculate and check the checksum */
- igmp = (struct igmp_msg *)p->payload;
- if (inet_chksum(igmp, p->len)) {
- pbuf_free(p);
- IGMP_STATS_INC(igmp.chkerr);
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: checksum error\n"));
- return;
- }
-
- /* Packet is ok so find an existing group */
- group = igmp_lookfor_group(inp, dest); /* use the incoming IP address! */
-
- /* If group can be found or create... */
- if (!group) {
- pbuf_free(p);
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP frame not for us\n"));
- return;
- }
-
- /* NOW ACT ON THE INCOMING MESSAGE TYPE... */
- switch (igmp->igmp_msgtype) {
- case IGMP_MEMB_QUERY: {
- /* IGMP_MEMB_QUERY to the "all systems" address ? */
- if ((ip_addr_cmp(dest, &allsystems)) && (igmp->igmp_group_address.addr == 0)) {
- /* THIS IS THE GENERAL QUERY */
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: General IGMP_MEMB_QUERY on \"ALL SYSTEMS\" address (224.0.0.1) [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp)));
-
- if (igmp->igmp_maxresp == 0) {
- IGMP_STATS_INC(igmp.v1_rxed);
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: got an all hosts query with time== 0 - this is V1 and not implemented - treat as v2\n"));
- igmp->igmp_maxresp = IGMP_V1_DELAYING_MEMBER_TMR;
- }
-
- IGMP_STATS_INC(igmp.group_query_rxed);
- groupref = igmp_group_list;
- while (groupref) {
- /* Do not send messages on the all systems group address! */
- if ((groupref->interface == inp) && (!(ip_addr_cmp(&(groupref->group_address), &allsystems)))) {
- igmp_delaying_member( groupref, igmp->igmp_maxresp);
- }
- groupref = groupref->next;
- }
- } else {
- /* IGMP_MEMB_QUERY to a specific group ? */
- if (group->group_address.addr != 0) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP_MEMB_QUERY to a specific group "));
- ip_addr_debug_print(IGMP_DEBUG, &group->group_address);
- if (ip_addr_cmp (dest, &allsystems)) {
- LWIP_DEBUGF(IGMP_DEBUG, (" using \"ALL SYSTEMS\" address (224.0.0.1) [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp)));
- /* we first need to re-lookfor the group since we used dest last time */
- group = igmp_lookfor_group(inp, &igmp->igmp_group_address);
- } else {
- LWIP_DEBUGF(IGMP_DEBUG, (" with the group address as destination [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp)));
- }
-
- if (group != NULL) {
- IGMP_STATS_INC(igmp.unicast_query);
- igmp_delaying_member( group, igmp->igmp_maxresp);
- }
- }
- }
- break;
- }
- case IGMP_V2_MEMB_REPORT: {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP_V2_MEMB_REPORT\n"));
-
- IGMP_STATS_INC(igmp.report_rxed);
- if (group->group_state == IGMP_GROUP_DELAYING_MEMBER) {
- /* This is on a specific group we have already looked up */
- group->timer = 0; /* stopped */
- group->group_state = IGMP_GROUP_IDLE_MEMBER;
- group->last_reporter_flag = 0;
- }
- break;
- }
- default: {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: unexpected msg %d in state %d on group %p on if %p\n",
- igmp->igmp_msgtype, group->group_state, &group, group->interface));
- break;
- }
- }
-
- pbuf_free(p);
- return;
-}
-
-/**
- * Join a group on one network interface.
- *
- * @param ifaddr ip address of the network interface which should join a new group
- * @param groupaddr the ip address of the group which to join
- * @return ERR_OK if group was joined on the netif(s), an err_t otherwise
- */
-err_t
-igmp_joingroup(struct ip_addr *ifaddr, struct ip_addr *groupaddr)
-{
- err_t err = ERR_VAL; /* no matching interface */
- struct igmp_group *group;
- struct netif *netif;
-
- /* make sure it is multicast address */
- LWIP_ERROR("igmp_joingroup: attempt to join non-multicast address", ip_addr_ismulticast(groupaddr), return ERR_VAL;);
- LWIP_ERROR("igmp_joingroup: attempt to join allsystems address", (!ip_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;);
-
- /* loop through netif's */
- netif = netif_list;
- while (netif != NULL) {
- /* Should we join this interface ? */
- if ((netif->flags & NETIF_FLAG_IGMP) && ((ip_addr_isany(ifaddr) || ip_addr_cmp(&(netif->ip_addr), ifaddr)))) {
- /* find group or create a new one if not found */
- group = igmp_lookup_group(netif, groupaddr);
-
- if (group != NULL) {
- /* This should create a new group, check the state to make sure */
- if (group->group_state != IGMP_GROUP_NON_MEMBER) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: join to group not in state IGMP_GROUP_NON_MEMBER\n"));
- } else {
- /* OK - it was new group */
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: join to new group: "));
- ip_addr_debug_print(IGMP_DEBUG, groupaddr);
- LWIP_DEBUGF(IGMP_DEBUG, ("\n"));
-
- /* If first use of the group, allow the group at the MAC level */
- if ((group->use==0) && (netif->igmp_mac_filter != NULL)) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: igmp_mac_filter(ADD "));
- ip_addr_debug_print(IGMP_DEBUG, groupaddr);
- LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif));
- netif->igmp_mac_filter(netif, groupaddr, IGMP_ADD_MAC_FILTER);
- }
-
- IGMP_STATS_INC(igmp.join_sent);
- igmp_send(group, IGMP_V2_MEMB_REPORT);
-
- igmp_start_timer(group, IGMP_JOIN_DELAYING_MEMBER_TMR);
-
- /* Need to work out where this timer comes from */
- group->group_state = IGMP_GROUP_DELAYING_MEMBER;
- }
- /* Increment group use */
- group->use++;
- /* Join on this interface */
- err = ERR_OK;
- } else {
- /* Return an error even if some network interfaces are joined */
- /** @todo undo any other netif already joined */
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: Not enought memory to join to group\n"));
- return ERR_MEM;
- }
- }
- /* proceed to next network interface */
- netif = netif->next;
- }
-
- return err;
-}
-
-/**
- * Leave a group on one network interface.
- *
- * @param ifaddr ip address of the network interface which should leave a group
- * @param groupaddr the ip address of the group which to leave
- * @return ERR_OK if group was left on the netif(s), an err_t otherwise
- */
-err_t
-igmp_leavegroup(struct ip_addr *ifaddr, struct ip_addr *groupaddr)
-{
- err_t err = ERR_VAL; /* no matching interface */
- struct igmp_group *group;
- struct netif *netif;
-
- /* make sure it is multicast address */
- LWIP_ERROR("igmp_leavegroup: attempt to leave non-multicast address", ip_addr_ismulticast(groupaddr), return ERR_VAL;);
- LWIP_ERROR("igmp_leavegroup: attempt to leave allsystems address", (!ip_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;);
-
- /* loop through netif's */
- netif = netif_list;
- while (netif != NULL) {
- /* Should we leave this interface ? */
- if ((netif->flags & NETIF_FLAG_IGMP) && ((ip_addr_isany(ifaddr) || ip_addr_cmp(&(netif->ip_addr), ifaddr)))) {
- /* find group */
- group = igmp_lookfor_group(netif, groupaddr);
-
- if (group != NULL) {
- /* Only send a leave if the flag is set according to the state diagram */
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: Leaving group: "));
- ip_addr_debug_print(IGMP_DEBUG, groupaddr);
- LWIP_DEBUGF(IGMP_DEBUG, ("\n"));
-
- /* If there is no other use of the group */
- if (group->use <= 1) {
- /* If we are the last reporter for this group */
- if (group->last_reporter_flag) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: sending leaving group\n"));
- IGMP_STATS_INC(igmp.leave_sent);
- igmp_send(group, IGMP_LEAVE_GROUP);
- }
-
- /* Disable the group at the MAC level */
- if (netif->igmp_mac_filter != NULL) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: igmp_mac_filter(DEL "));
- ip_addr_debug_print(IGMP_DEBUG, groupaddr);
- LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif));
- netif->igmp_mac_filter(netif, groupaddr, IGMP_DEL_MAC_FILTER);
- }
-
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: remove group: "));
- ip_addr_debug_print(IGMP_DEBUG, groupaddr);
- LWIP_DEBUGF(IGMP_DEBUG, ("\n"));
-
- /* Free the group */
- igmp_remove_group(group);
- } else {
- /* Decrement group use */
- group->use--;
- }
- /* Leave on this interface */
- err = ERR_OK;
- } else {
- /* It's not a fatal error on "leavegroup" */
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: not member of group\n"));
- }
- }
- /* proceed to next network interface */
- netif = netif->next;
- }
-
- return err;
-}
-
-/**
- * The igmp timer function (both for NO_SYS=1 and =0)
- * Should be called every IGMP_TMR_INTERVAL milliseconds (100 ms is default).
- */
-void
-igmp_tmr(void)
-{
- struct igmp_group *group = igmp_group_list;
-
- while (group != NULL) {
- if (group->timer != 0) {
- group->timer -= 1;
- if (group->timer == 0) {
- igmp_timeout(group);
- }
- }
- group = group->next;
- }
-}
-
-/**
- * Called if a timeout for one group is reached.
- * Sends a report for this group.
- *
- * @param group an igmp_group for which a timeout is reached
- */
-void
-igmp_timeout(struct igmp_group *group)
-{
- /* If the state is IGMP_GROUP_DELAYING_MEMBER then we send a report for this group */
- if (group->group_state == IGMP_GROUP_DELAYING_MEMBER) {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_timeout: report membership for group with address "));
- ip_addr_debug_print(IGMP_DEBUG, &(group->group_address));
- LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", group->interface));
-
- igmp_send(group, IGMP_V2_MEMB_REPORT);
- }
-}
-
-/**
- * Start a timer for an igmp group
- *
- * @param group the igmp_group for which to start a timer
- * @param max_time the time in multiples of IGMP_TMR_INTERVAL (decrease with
- * every call to igmp_tmr())
- */
-void
-igmp_start_timer(struct igmp_group *group, u8_t max_time)
-{
- /**
- * @todo Important !! this should be random 0 -> max_time. Find out how to do this
- */
- group->timer = max_time;
-}
-
-/**
- * Stop a timer for an igmp_group
- *
- * @param group the igmp_group for which to stop the timer
- */
-void
-igmp_stop_timer(struct igmp_group *group)
-{
- group->timer = 0;
-}
-
-/**
- * Delaying membership report for a group if necessary
- *
- * @param group the igmp_group for which "delaying" membership report
- * @param maxresp query delay
- */
-void
-igmp_delaying_member( struct igmp_group *group, u8_t maxresp)
-{
- if ((group->group_state == IGMP_GROUP_IDLE_MEMBER) ||
- ((group->group_state == IGMP_GROUP_DELAYING_MEMBER) && (maxresp > group->timer))) {
- igmp_start_timer(group, (maxresp)/2);
- group->group_state = IGMP_GROUP_DELAYING_MEMBER;
- }
-}
-
-
-/**
- * Sends an IP packet on a network interface. This function constructs the IP header
- * and calculates the IP header checksum. If the source IP address is NULL,
- * the IP address of the outgoing network interface is filled in as source address.
- *
- * @param p the packet to send (p->payload points to the data, e.g. next
- protocol header; if dest == IP_HDRINCL, p already includes an IP
- header and p->payload points to that IP header)
- * @param src the source IP address to send from (if src == IP_ADDR_ANY, the
- * IP address of the netif used to send is used as source address)
- * @param dest the destination IP address to send the packet to
- * @param ttl the TTL value to be set in the IP header
- * @param proto the PROTOCOL to be set in the IP header
- * @param netif the netif on which to send this packet
- * @return ERR_OK if the packet was sent OK
- * ERR_BUF if p doesn't have enough space for IP/LINK headers
- * returns errors returned by netif->output
- */
-err_t
-igmp_ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t proto, struct netif *netif)
-{
- /* This is the "router alert" option */
- u16_t ra[2];
- ra[0] = htons (ROUTER_ALERT);
- ra[1] = 0x0000; /* Router shall examine packet */
- return ip_output_if_opt(p, src, dest, ttl, 0, proto, netif, ra, ROUTER_ALERTLEN);
-}
-
-/**
- * Send an igmp packet to a specific group.
- *
- * @param group the group to which to send the packet
- * @param type the type of igmp packet to send
- */
-void
-igmp_send(struct igmp_group *group, u8_t type)
-{
- struct pbuf* p = NULL;
- struct igmp_msg* igmp = NULL;
- struct ip_addr src = {0};
- struct ip_addr* dest = NULL;
-
- /* IP header + "router alert" option + IGMP header */
- p = pbuf_alloc(PBUF_TRANSPORT, IGMP_MINLEN, PBUF_RAM);
-
- if (p) {
- igmp = p->payload;
- LWIP_ASSERT("igmp_send: check that first pbuf can hold struct igmp_msg",
- (p->len >= sizeof(struct igmp_msg)));
- ip_addr_set(&src, &((group->interface)->ip_addr));
-
- if (type == IGMP_V2_MEMB_REPORT) {
- dest = &(group->group_address);
- IGMP_STATS_INC(igmp.report_sent);
- ip_addr_set(&(igmp->igmp_group_address), &(group->group_address));
- group->last_reporter_flag = 1; /* Remember we were the last to report */
- } else {
- if (type == IGMP_LEAVE_GROUP) {
- dest = &allrouters;
- ip_addr_set(&(igmp->igmp_group_address), &(group->group_address));
- }
- }
-
- if ((type == IGMP_V2_MEMB_REPORT) || (type == IGMP_LEAVE_GROUP)) {
- igmp->igmp_msgtype = type;
- igmp->igmp_maxresp = 0;
- igmp->igmp_checksum = 0;
- igmp->igmp_checksum = inet_chksum( igmp, IGMP_MINLEN);
-
- igmp_ip_output_if(p, &src, dest, IGMP_TTL, IP_PROTO_IGMP, group->interface);
- }
-
- pbuf_free(p);
- } else {
- LWIP_DEBUGF(IGMP_DEBUG, ("igmp_send: not enough memory for igmp_send\n"));
- }
-}
-
-#endif /* LWIP_IGMP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet.c
deleted file mode 100644
index 0d4f922..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Functions common to all TCP/IPv4 modules, such as the byte order functions.
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#include "lwip/inet.h"
-
-/* Here for now until needed in other places in lwIP */
-#ifndef isprint
-#define in_range(c, lo, up) ((u8_t)c >= lo && (u8_t)c <= up)
-#define isprint(c) in_range(c, 0x20, 0x7f)
-#define isdigit(c) in_range(c, '0', '9')
-#define isxdigit(c) (isdigit(c) || in_range(c, 'a', 'f') || in_range(c, 'A', 'F'))
-#define islower(c) in_range(c, 'a', 'z')
-#define isspace(c) (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v')
-#endif
-
-/**
- * Ascii internet address interpretation routine.
- * The value returned is in network order.
- *
- * @param cp IP address in ascii represenation (e.g. "127.0.0.1")
- * @return ip address in network order
- */
-u32_t
-inet_addr(const char *cp)
-{
- struct in_addr val;
-
- if (inet_aton(cp, &val)) {
- return (val.s_addr);
- }
- return (INADDR_NONE);
-}
-
-/**
- * Check whether "cp" is a valid ascii representation
- * of an Internet address and convert to a binary address.
- * Returns 1 if the address is valid, 0 if not.
- * This replaces inet_addr, the return value from which
- * cannot distinguish between failure and a local broadcast address.
- *
- * @param cp IP address in ascii represenation (e.g. "127.0.0.1")
- * @param addr pointer to which to save the ip address in network order
- * @return 1 if cp could be converted to addr, 0 on failure
- */
-int
-inet_aton(const char *cp, struct in_addr *addr)
-{
- u32_t val;
- u8_t base;
- char c;
- u32_t parts[4];
- u32_t *pp = parts;
-
- c = *cp;
- for (;;) {
- /*
- * Collect number up to ``.''.
- * Values are specified as for C:
- * 0x=hex, 0=octal, 1-9=decimal.
- */
- if (!isdigit(c))
- return (0);
- val = 0;
- base = 10;
- if (c == '0') {
- c = *++cp;
- if (c == 'x' || c == 'X') {
- base = 16;
- c = *++cp;
- } else
- base = 8;
- }
- for (;;) {
- if (isdigit(c)) {
- val = (val * base) + (int)(c - '0');
- c = *++cp;
- } else if (base == 16 && isxdigit(c)) {
- val = (val << 4) | (int)(c + 10 - (islower(c) ? 'a' : 'A'));
- c = *++cp;
- } else
- break;
- }
- if (c == '.') {
- /*
- * Internet format:
- * a.b.c.d
- * a.b.c (with c treated as 16 bits)
- * a.b (with b treated as 24 bits)
- */
- if (pp >= parts + 3)
- return (0);
- *pp++ = val;
- c = *++cp;
- } else
- break;
- }
- /*
- * Check for trailing characters.
- */
- if (c != '\0' && !isspace(c))
- return (0);
- /*
- * Concoct the address according to
- * the number of parts specified.
- */
- switch (pp - parts + 1) {
-
- case 0:
- return (0); /* initial nondigit */
-
- case 1: /* a -- 32 bits */
- break;
-
- case 2: /* a.b -- 8.24 bits */
- if (val > 0xffffffUL)
- return (0);
- val |= parts[0] << 24;
- break;
-
- case 3: /* a.b.c -- 8.8.16 bits */
- if (val > 0xffff)
- return (0);
- val |= (parts[0] << 24) | (parts[1] << 16);
- break;
-
- case 4: /* a.b.c.d -- 8.8.8.8 bits */
- if (val > 0xff)
- return (0);
- val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
- break;
- }
- if (addr)
- addr->s_addr = htonl(val);
- return (1);
-}
-
-/**
- * Convert numeric IP address into decimal dotted ASCII representation.
- * returns ptr to static buffer; not reentrant!
- *
- * @param addr ip address in network order to convert
- * @return pointer to a global static (!) buffer that holds the ASCII
- * represenation of addr
- */
-char *
-inet_ntoa(struct in_addr addr)
-{
- static char str[16];
- u32_t s_addr = addr.s_addr;
- char inv[3];
- char *rp;
- u8_t *ap;
- u8_t rem;
- u8_t n;
- u8_t i;
-
- rp = str;
- ap = (u8_t *)&s_addr;
- for(n = 0; n < 4; n++) {
- i = 0;
- do {
- rem = *ap % (u8_t)10;
- *ap /= (u8_t)10;
- inv[i++] = '0' + rem;
- } while(*ap);
- while(i--)
- *rp++ = inv[i];
- *rp++ = '.';
- ap++;
- }
- *--rp = 0;
- return str;
-}
-
-/**
- * These are reference implementations of the byte swapping functions.
- * Again with the aim of being simple, correct and fully portable.
- * Byte swapping is the second thing you would want to optimize. You will
- * need to port it to your architecture and in your cc.h:
- *
- * #define LWIP_PLATFORM_BYTESWAP 1
- * #define LWIP_PLATFORM_HTONS(x) <your_htons>
- * #define LWIP_PLATFORM_HTONL(x) <your_htonl>
- *
- * Note ntohs() and ntohl() are merely references to the htonx counterparts.
- */
-
-#if (LWIP_PLATFORM_BYTESWAP == 0) && (BYTE_ORDER == LITTLE_ENDIAN)
-
-/**
- * Convert an u16_t from host- to network byte order.
- *
- * @param n u16_t in host byte order
- * @return n in network byte order
- */
-u16_t
-htons(u16_t n)
-{
- return ((n & 0xff) << 8) | ((n & 0xff00) >> 8);
-}
-
-/**
- * Convert an u16_t from network- to host byte order.
- *
- * @param n u16_t in network byte order
- * @return n in host byte order
- */
-u16_t
-ntohs(u16_t n)
-{
- return htons(n);
-}
-
-/**
- * Convert an u32_t from host- to network byte order.
- *
- * @param n u32_t in host byte order
- * @return n in network byte order
- */
-u32_t
-htonl(u32_t n)
-{
- return ((n & 0xff) << 24) |
- ((n & 0xff00) << 8) |
- ((n & 0xff0000UL) >> 8) |
- ((n & 0xff000000UL) >> 24);
-}
-
-/**
- * Convert an u32_t from network- to host byte order.
- *
- * @param n u32_t in network byte order
- * @return n in host byte order
- */
-u32_t
-ntohl(u32_t n)
-{
- return htonl(n);
-}
-
-#endif /* (LWIP_PLATFORM_BYTESWAP == 0) && (BYTE_ORDER == LITTLE_ENDIAN) */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet_chksum.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet_chksum.c
deleted file mode 100644
index 47a11d4..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet_chksum.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Incluse internet checksum functions.
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#include "lwip/inet_chksum.h"
-#include "lwip/inet.h"
-
-#include <stddef.h>
-
-/* These are some reference implementations of the checksum algorithm, with the
- * aim of being simple, correct and fully portable. Checksumming is the
- * first thing you would want to optimize for your platform. If you create
- * your own version, link it in and in your cc.h put:
- *
- * #define LWIP_CHKSUM <your_checksum_routine>
- *
- * Or you can select from the implementations below by defining
- * LWIP_CHKSUM_ALGORITHM to 1, 2 or 3.
- */
-
-#ifndef LWIP_CHKSUM
-# define LWIP_CHKSUM lwip_standard_chksum
-# ifndef LWIP_CHKSUM_ALGORITHM
-# define LWIP_CHKSUM_ALGORITHM 1
-# endif
-#endif
-/* If none set: */
-#ifndef LWIP_CHKSUM_ALGORITHM
-# define LWIP_CHKSUM_ALGORITHM 0
-#endif
-
-/** Like the name says... */
-#if LWIP_PLATFORM_BYTESWAP && (BYTE_ORDER == LITTLE_ENDIAN)
-/* little endian and PLATFORM_BYTESWAP defined */
-#define SWAP_BYTES_IN_WORD(w) LWIP_PLATFORM_HTONS(w)
-#else
-/* can't use htons on big endian (or PLATFORM_BYTESWAP not defined)... */
-#define SWAP_BYTES_IN_WORD(w) ((w & 0xff) << 8) | ((w & 0xff00) >> 8)
-#endif
-
-/** Split an u32_t in two u16_ts and add them up */
-#define FOLD_U32T(u) ((u >> 16) + (u & 0x0000ffffUL))
-
-#if (LWIP_CHKSUM_ALGORITHM == 1) /* Version #1 */
-/**
- * lwip checksum
- *
- * @param dataptr points to start of data to be summed at any boundary
- * @param len length of data to be summed
- * @return host order (!) lwip checksum (non-inverted Internet sum)
- *
- * @note accumulator size limits summable length to 64k
- * @note host endianess is irrelevant (p3 RFC1071)
- */
-static u16_t
-lwip_standard_chksum(void *dataptr, u16_t len)
-{
- u32_t acc;
- u16_t src;
- u8_t *octetptr;
-
- acc = 0;
- /* dataptr may be at odd or even addresses */
- octetptr = (u8_t*)dataptr;
- while (len > 1) {
- /* declare first octet as most significant
- thus assume network order, ignoring host order */
- src = (*octetptr) << 8;
- octetptr++;
- /* declare second octet as least significant */
- src |= (*octetptr);
- octetptr++;
- acc += src;
- len -= 2;
- }
- if (len > 0) {
- /* accumulate remaining octet */
- src = (*octetptr) << 8;
- acc += src;
- }
- /* add deferred carry bits */
- acc = (acc >> 16) + (acc & 0x0000ffffUL);
- if ((acc & 0xffff0000UL) != 0) {
- acc = (acc >> 16) + (acc & 0x0000ffffUL);
- }
- /* This maybe a little confusing: reorder sum using htons()
- instead of ntohs() since it has a little less call overhead.
- The caller must invert bits for Internet sum ! */
- return htons((u16_t)acc);
-}
-#endif
-
-#if (LWIP_CHKSUM_ALGORITHM == 2) /* Alternative version #2 */
-/*
- * Curt McDowell
- * Broadcom Corp.
- * csm@broadcom.com
- *
- * IP checksum two bytes at a time with support for
- * unaligned buffer.
- * Works for len up to and including 0x20000.
- * by Curt McDowell, Broadcom Corp. 12/08/2005
- *
- * @param dataptr points to start of data to be summed at any boundary
- * @param len length of data to be summed
- * @return host order (!) lwip checksum (non-inverted Internet sum)
- */
-
-static u16_t
-lwip_standard_chksum(void *dataptr, int len)
-{
- u8_t *pb = dataptr;
- u16_t *ps, t = 0;
- u32_t sum = 0;
- int odd = ((u32_t)pb & 1);
-
- /* Get aligned to u16_t */
- if (odd && len > 0) {
- ((u8_t *)&t)[1] = *pb++;
- len--;
- }
-
- /* Add the bulk of the data */
- ps = (u16_t *)pb;
- while (len > 1) {
- sum += *ps++;
- len -= 2;
- }
-
- /* Consume left-over byte, if any */
- if (len > 0) {
- ((u8_t *)&t)[0] = *(u8_t *)ps;;
- }
-
- /* Add end bytes */
- sum += t;
-
- /* Fold 32-bit sum to 16 bits
- calling this twice is propably faster than if statements... */
- sum = FOLD_U32T(sum);
- sum = FOLD_U32T(sum);
-
- /* Swap if alignment was odd */
- if (odd) {
- sum = SWAP_BYTES_IN_WORD(sum);
- }
-
- return sum;
-}
-#endif
-
-#if (LWIP_CHKSUM_ALGORITHM == 3) /* Alternative version #3 */
-/**
- * An optimized checksum routine. Basically, it uses loop-unrolling on
- * the checksum loop, treating the head and tail bytes specially, whereas
- * the inner loop acts on 8 bytes at a time.
- *
- * @arg start of buffer to be checksummed. May be an odd byte address.
- * @len number of bytes in the buffer to be checksummed.
- * @return host order (!) lwip checksum (non-inverted Internet sum)
- *
- * by Curt McDowell, Broadcom Corp. December 8th, 2005
- */
-
-static u16_t
-lwip_standard_chksum(void *dataptr, int len)
-{
- u8_t *pb = dataptr;
- u16_t *ps, t = 0;
- u32_t *pl;
- u32_t sum = 0, tmp;
- /* starts at odd byte address? */
- int odd = ((u32_t)pb & 1);
-
- if (odd && len > 0) {
- ((u8_t *)&t)[1] = *pb++;
- len--;
- }
-
- ps = (u16_t *)pb;
-
- if (((u32_t)ps & 3) && len > 1) {
- sum += *ps++;
- len -= 2;
- }
-
- pl = (u32_t *)ps;
-
- while (len > 7) {
- tmp = sum + *pl++; /* ping */
- if (tmp < sum) {
- tmp++; /* add back carry */
- }
-
- sum = tmp + *pl++; /* pong */
- if (sum < tmp) {
- sum++; /* add back carry */
- }
-
- len -= 8;
- }
-
- /* make room in upper bits */
- sum = FOLD_U32T(sum);
-
- ps = (u16_t *)pl;
-
- /* 16-bit aligned word remaining? */
- while (len > 1) {
- sum += *ps++;
- len -= 2;
- }
-
- /* dangling tail byte remaining? */
- if (len > 0) { /* include odd byte */
- ((u8_t *)&t)[0] = *(u8_t *)ps;
- }
-
- sum += t; /* add end bytes */
-
- /* Fold 32-bit sum to 16 bits
- calling this twice is propably faster than if statements... */
- sum = FOLD_U32T(sum);
- sum = FOLD_U32T(sum);
-
- if (odd) {
- sum = SWAP_BYTES_IN_WORD(sum);
- }
-
- return sum;
-}
-#endif
-
-/* inet_chksum_pseudo:
- *
- * Calculates the pseudo Internet checksum used by TCP and UDP for a pbuf chain.
- * IP addresses are expected to be in network byte order.
- *
- * @param p chain of pbufs over that a checksum should be calculated (ip data part)
- * @param src source ip address (used for checksum of pseudo header)
- * @param dst destination ip address (used for checksum of pseudo header)
- * @param proto ip protocol (used for checksum of pseudo header)
- * @param proto_len length of the ip data part (used for checksum of pseudo header)
- * @return checksum (as u16_t) to be saved directly in the protocol header
- */
-u16_t
-inet_chksum_pseudo(struct pbuf *p,
- struct ip_addr *src, struct ip_addr *dest,
- u8_t proto, u16_t proto_len)
-{
- u32_t acc;
- struct pbuf *q;
- u8_t swapped;
-
- acc = 0;
- swapped = 0;
- /* iterate through all pbuf in chain */
- for(q = p; q != NULL; q = q->next) {
- LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): checksumming pbuf %p (has next %p) \n",
- (void *)q, (void *)q->next));
- acc += LWIP_CHKSUM(q->payload, q->len);
- /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/
- /* just executing this next line is probably faster that the if statement needed
- to check whether we really need to execute it, and does no harm */
- acc = FOLD_U32T(acc);
- if (q->len % 2 != 0) {
- swapped = 1 - swapped;
- acc = SWAP_BYTES_IN_WORD(acc);
- }
- /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/
- }
-
- if (swapped) {
- acc = SWAP_BYTES_IN_WORD(acc);
- }
- acc += (src->addr & 0xffffUL);
- acc += ((src->addr >> 16) & 0xffffUL);
- acc += (dest->addr & 0xffffUL);
- acc += ((dest->addr >> 16) & 0xffffUL);
- acc += (u32_t)htons((u16_t)proto);
- acc += (u32_t)htons(proto_len);
-
- /* Fold 32-bit sum to 16 bits
- calling this twice is propably faster than if statements... */
- acc = FOLD_U32T(acc);
- acc = FOLD_U32T(acc);
- LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc));
- return (u16_t)~(acc & 0xffffUL);
-}
-
-/* inet_chksum_pseudo:
- *
- * Calculates the pseudo Internet checksum used by TCP and UDP for a pbuf chain.
- * IP addresses are expected to be in network byte order.
- *
- * @param p chain of pbufs over that a checksum should be calculated (ip data part)
- * @param src source ip address (used for checksum of pseudo header)
- * @param dst destination ip address (used for checksum of pseudo header)
- * @param proto ip protocol (used for checksum of pseudo header)
- * @param proto_len length of the ip data part (used for checksum of pseudo header)
- * @return checksum (as u16_t) to be saved directly in the protocol header
- */
-/* Currently only used by UDPLITE, although this could change in the future. */
-#if LWIP_UDPLITE
-u16_t
-inet_chksum_pseudo_partial(struct pbuf *p,
- struct ip_addr *src, struct ip_addr *dest,
- u8_t proto, u16_t proto_len, u16_t chksum_len)
-{
- u32_t acc;
- struct pbuf *q;
- u8_t swapped;
- u16_t chklen;
-
- acc = 0;
- swapped = 0;
- /* iterate through all pbuf in chain */
- for(q = p; (q != NULL) && (chksum_len > 0); q = q->next) {
- LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): checksumming pbuf %p (has next %p) \n",
- (void *)q, (void *)q->next));
- chklen = q->len;
- if (chklen > chksum_len) {
- chklen = chksum_len;
- }
- acc += LWIP_CHKSUM(q->payload, chklen);
- chksum_len -= chklen;
- LWIP_ASSERT("delete me", chksum_len < 0x7fff);
- /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/
- /* fold the upper bit down */
- acc = FOLD_U32T(acc);
- if (q->len % 2 != 0) {
- swapped = 1 - swapped;
- acc = SWAP_BYTES_IN_WORD(acc);
- }
- /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/
- }
-
- if (swapped) {
- acc = SWAP_BYTES_IN_WORD(acc);
- }
- acc += (src->addr & 0xffffUL);
- acc += ((src->addr >> 16) & 0xffffUL);
- acc += (dest->addr & 0xffffUL);
- acc += ((dest->addr >> 16) & 0xffffUL);
- acc += (u32_t)htons((u16_t)proto);
- acc += (u32_t)htons(proto_len);
-
- /* Fold 32-bit sum to 16 bits
- calling this twice is propably faster than if statements... */
- acc = FOLD_U32T(acc);
- acc = FOLD_U32T(acc);
- LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc));
- return (u16_t)~(acc & 0xffffUL);
-}
-#endif /* LWIP_UDPLITE */
-
-/* inet_chksum:
- *
- * Calculates the Internet checksum over a portion of memory. Used primarily for IP
- * and ICMP.
- *
- * @param dataptr start of the buffer to calculate the checksum (no alignment needed)
- * @param len length of the buffer to calculate the checksum
- * @return checksum (as u16_t) to be saved directly in the protocol header
- */
-
-u16_t
-inet_chksum(void *dataptr, u16_t len)
-{
- return ~LWIP_CHKSUM(dataptr, len);
-}
-
-/**
- * Calculate a checksum over a chain of pbufs (without pseudo-header, much like
- * inet_chksum only pbufs are used).
- *
- * @param p pbuf chain over that the checksum should be calculated
- * @return checksum (as u16_t) to be saved directly in the protocol header
- */
-u16_t
-inet_chksum_pbuf(struct pbuf *p)
-{
- u32_t acc;
- struct pbuf *q;
- u8_t swapped;
-
- acc = 0;
- swapped = 0;
- for(q = p; q != NULL; q = q->next) {
- acc += LWIP_CHKSUM(q->payload, q->len);
- acc = FOLD_U32T(acc);
- if (q->len % 2 != 0) {
- swapped = 1 - swapped;
- acc = SWAP_BYTES_IN_WORD(acc);
- }
- }
-
- if (swapped) {
- acc = SWAP_BYTES_IN_WORD(acc);
- }
- return (u16_t)~(acc & 0xffffUL);
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip.c
deleted file mode 100644
index a958242..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip.c
+++ /dev/null
@@ -1,725 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * This is the IPv4 layer implementation for incoming and outgoing IP traffic.
- *
- * @see ip_frag.c
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-#include "lwip/ip.h"
-#include "lwip/def.h"
-#include "lwip/mem.h"
-#include "lwip/ip_frag.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/netif.h"
-#include "lwip/icmp.h"
-#include "lwip/igmp.h"
-#include "lwip/raw.h"
-#include "lwip/udp.h"
-#include "lwip/tcp.h"
-#include "lwip/snmp.h"
-#include "lwip/dhcp.h"
-#include "lwip/stats.h"
-#include "arch/perf.h"
-
-#include <string.h>
-
-/**
- * The interface that provided the packet for the current callback
- * invocation.
- */
-struct netif *current_netif;
-
-/**
- * Header of the input packet currently being processed.
- */
-const struct ip_hdr *current_header;
-
-/**
- * Finds the appropriate network interface for a given IP address. It
- * searches the list of network interfaces linearly. A match is found
- * if the masked IP address of the network interface equals the masked
- * IP address given to the function.
- *
- * @param dest the destination IP address for which to find the route
- * @return the netif on which to send to reach dest
- */
-struct netif *
-ip_route(struct ip_addr *dest)
-{
- struct netif *netif;
-
- /* iterate through netifs */
- for(netif = netif_list; netif != NULL; netif = netif->next) {
- /* network mask matches? */
- if (netif_is_up(netif)) {
- if (ip_addr_netcmp(dest, &(netif->ip_addr), &(netif->netmask))) {
- /* return netif on which to forward IP packet */
- return netif;
- }
- }
- }
- if ((netif_default == NULL) || (!netif_is_up(netif_default))) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip_route: No route to 0x%"X32_F"\n", dest->addr));
- IP_STATS_INC(ip.rterr);
- snmp_inc_ipoutnoroutes();
- return NULL;
- }
- /* no matching netif found, use default netif */
- return netif_default;
-}
-
-#if IP_FORWARD
-/**
- * Forwards an IP packet. It finds an appropriate route for the
- * packet, decrements the TTL value of the packet, adjusts the
- * checksum and outputs the packet on the appropriate interface.
- *
- * @param p the packet to forward (p->payload points to IP header)
- * @param iphdr the IP header of the input packet
- * @param inp the netif on which this packet was received
- * @return the netif on which the packet was sent (NULL if it wasn't sent)
- */
-static struct netif *
-ip_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp)
-{
- struct netif *netif;
-
- PERF_START;
- /* Find network interface where to forward this IP packet to. */
- netif = ip_route((struct ip_addr *)&(iphdr->dest));
- if (netif == NULL) {
- LWIP_DEBUGF(IP_DEBUG, ("ip_forward: no forwarding route for 0x%"X32_F" found\n",
- iphdr->dest.addr));
- snmp_inc_ipoutnoroutes();
- return (struct netif *)NULL;
- }
- /* Do not forward packets onto the same network interface on which
- * they arrived. */
- if (netif == inp) {
- LWIP_DEBUGF(IP_DEBUG, ("ip_forward: not bouncing packets back on incoming interface.\n"));
- snmp_inc_ipoutnoroutes();
- return (struct netif *)NULL;
- }
-
- /* decrement TTL */
- IPH_TTL_SET(iphdr, IPH_TTL(iphdr) - 1);
- /* send ICMP if TTL == 0 */
- if (IPH_TTL(iphdr) == 0) {
- snmp_inc_ipinhdrerrors();
-#if LWIP_ICMP
- /* Don't send ICMP messages in response to ICMP messages */
- if (IPH_PROTO(iphdr) != IP_PROTO_ICMP) {
- icmp_time_exceeded(p, ICMP_TE_TTL);
- }
-#endif /* LWIP_ICMP */
- return (struct netif *)NULL;
- }
-
- /* Incrementally update the IP checksum. */
- if (IPH_CHKSUM(iphdr) >= htons(0xffff - 0x100)) {
- IPH_CHKSUM_SET(iphdr, IPH_CHKSUM(iphdr) + htons(0x100) + 1);
- } else {
- IPH_CHKSUM_SET(iphdr, IPH_CHKSUM(iphdr) + htons(0x100));
- }
-
- LWIP_DEBUGF(IP_DEBUG, ("ip_forward: forwarding packet to 0x%"X32_F"\n",
- iphdr->dest.addr));
-
- IP_STATS_INC(ip.fw);
- IP_STATS_INC(ip.xmit);
- snmp_inc_ipforwdatagrams();
-
- PERF_STOP("ip_forward");
- /* transmit pbuf on chosen interface */
- netif->output(netif, p, (struct ip_addr *)&(iphdr->dest));
- return netif;
-}
-#endif /* IP_FORWARD */
-
-/**
- * This function is called by the network interface device driver when
- * an IP packet is received. The function does the basic checks of the
- * IP header such as packet size being at least larger than the header
- * size etc. If the packet was not destined for us, the packet is
- * forwarded (using ip_forward). The IP checksum is always checked.
- *
- * Finally, the packet is sent to the upper layer protocol input function.
- *
- * @param p the received IP packet (p->payload points to IP header)
- * @param inp the netif on which this packet was received
- * @return ERR_OK if the packet was processed (could return ERR_* if it wasn't
- * processed, but currently always returns ERR_OK)
- */
-err_t
-ip_input(struct pbuf *p, struct netif *inp)
-{
- struct ip_hdr *iphdr;
- struct netif *netif;
- u16_t iphdr_hlen;
- u16_t iphdr_len;
-#if LWIP_DHCP
- int check_ip_src=1;
-#endif /* LWIP_DHCP */
-
- IP_STATS_INC(ip.recv);
- snmp_inc_ipinreceives();
-
- /* identify the IP header */
- iphdr = p->payload;
- if (IPH_V(iphdr) != 4) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_WARNING, ("IP packet dropped due to bad version number %"U16_F"\n", IPH_V(iphdr)));
- ip_debug_print(p);
- pbuf_free(p);
- IP_STATS_INC(ip.err);
- IP_STATS_INC(ip.drop);
- snmp_inc_ipinhdrerrors();
- return ERR_OK;
- }
-
- /* obtain IP header length in number of 32-bit words */
- iphdr_hlen = IPH_HL(iphdr);
- /* calculate IP header length in bytes */
- iphdr_hlen *= 4;
- /* obtain ip length in bytes */
- iphdr_len = ntohs(IPH_LEN(iphdr));
-
- /* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */
- if ((iphdr_hlen > p->len) || (iphdr_len > p->tot_len)) {
- if (iphdr_hlen > p->len) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("IP header (len %"U16_F") does not fit in first pbuf (len %"U16_F"), IP packet dropped.\n",
- iphdr_hlen, p->len));
- }
- if (iphdr_len > p->tot_len) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("IP (len %"U16_F") is longer than pbuf (len %"U16_F"), IP packet dropped.\n",
- iphdr_len, p->tot_len));
- }
- /* free (drop) packet pbufs */
- pbuf_free(p);
- IP_STATS_INC(ip.lenerr);
- IP_STATS_INC(ip.drop);
- snmp_inc_ipindiscards();
- return ERR_OK;
- }
-
- /* verify checksum */
-#if CHECKSUM_CHECK_IP
- if (inet_chksum(iphdr, iphdr_hlen) != 0) {
-
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("Checksum (0x%"X16_F") failed, IP packet dropped.\n", inet_chksum(iphdr, iphdr_hlen)));
- ip_debug_print(p);
- pbuf_free(p);
- IP_STATS_INC(ip.chkerr);
- IP_STATS_INC(ip.drop);
- snmp_inc_ipinhdrerrors();
- return ERR_OK;
- }
-#endif
-
- /* Trim pbuf. This should have been done at the netif layer,
- * but we'll do it anyway just to be sure that its done. */
- pbuf_realloc(p, iphdr_len);
-
- /* match packet against an interface, i.e. is this packet for us? */
-#if LWIP_IGMP
- if (ip_addr_ismulticast(&(iphdr->dest))) {
- if ((inp->flags & NETIF_FLAG_IGMP) && (igmp_lookfor_group(inp, &(iphdr->dest)))) {
- netif = inp;
- } else {
- netif = NULL;
- }
- } else
-#endif /* LWIP_IGMP */
- {
- /* start trying with inp. if that's not acceptable, start walking the
- list of configured netifs.
- 'first' is used as a boolean to mark whether we started walking the list */
- int first = 1;
- netif = inp;
- do {
- LWIP_DEBUGF(IP_DEBUG, ("ip_input: iphdr->dest 0x%"X32_F" netif->ip_addr 0x%"X32_F" (0x%"X32_F", 0x%"X32_F", 0x%"X32_F")\n",
- iphdr->dest.addr, netif->ip_addr.addr,
- iphdr->dest.addr & netif->netmask.addr,
- netif->ip_addr.addr & netif->netmask.addr,
- iphdr->dest.addr & ~(netif->netmask.addr)));
-
- /* interface is up and configured? */
- if ((netif_is_up(netif)) && (!ip_addr_isany(&(netif->ip_addr)))) {
- /* unicast to this interface address? */
- if (ip_addr_cmp(&(iphdr->dest), &(netif->ip_addr)) ||
- /* or broadcast on this interface network address? */
- ip_addr_isbroadcast(&(iphdr->dest), netif)) {
- LWIP_DEBUGF(IP_DEBUG, ("ip_input: packet accepted on interface %c%c\n",
- netif->name[0], netif->name[1]));
- /* break out of for loop */
- break;
- }
- }
- if (first) {
- first = 0;
- netif = netif_list;
- } else {
- netif = netif->next;
- }
- if (netif == inp) {
- netif = netif->next;
- }
- } while(netif != NULL);
- }
-
-#if LWIP_DHCP
- /* Pass DHCP messages regardless of destination address. DHCP traffic is addressed
- * using link layer addressing (such as Ethernet MAC) so we must not filter on IP.
- * According to RFC 1542 section 3.1.1, referred by RFC 2131).
- */
- if (netif == NULL) {
- /* remote port is DHCP server? */
- if (IPH_PROTO(iphdr) == IP_PROTO_UDP) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip_input: UDP packet to DHCP client port %"U16_F"\n",
- ntohs(((struct udp_hdr *)((u8_t *)iphdr + iphdr_hlen))->dest)));
- if (ntohs(((struct udp_hdr *)((u8_t *)iphdr + iphdr_hlen))->dest) == DHCP_CLIENT_PORT) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip_input: DHCP packet accepted.\n"));
- netif = inp;
- check_ip_src = 0;
- }
- }
- }
-#endif /* LWIP_DHCP */
-
- /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */
-#if LWIP_DHCP
- /* DHCP servers need 0.0.0.0 to be allowed as source address (RFC 1.1.2.2: 3.2.1.3/a) */
- if (check_ip_src && (iphdr->src.addr != 0))
-#endif /* LWIP_DHCP */
- { if ((ip_addr_isbroadcast(&(iphdr->src), inp)) ||
- (ip_addr_ismulticast(&(iphdr->src)))) {
- /* packet source is not valid */
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("ip_input: packet source is not valid.\n"));
- /* free (drop) packet pbufs */
- pbuf_free(p);
- IP_STATS_INC(ip.drop);
- snmp_inc_ipinaddrerrors();
- snmp_inc_ipindiscards();
- return ERR_OK;
- }
- }
-
- /* packet not for us? */
- if (netif == NULL) {
- /* packet not for us, route or discard */
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip_input: packet not for us.\n"));
-#if IP_FORWARD
- /* non-broadcast packet? */
- if (!ip_addr_isbroadcast(&(iphdr->dest), inp)) {
- /* try to forward IP packet on (other) interfaces */
- ip_forward(p, iphdr, inp);
- } else
-#endif /* IP_FORWARD */
- {
- snmp_inc_ipinaddrerrors();
- snmp_inc_ipindiscards();
- }
- pbuf_free(p);
- return ERR_OK;
- }
- /* packet consists of multiple fragments? */
- if ((IPH_OFFSET(iphdr) & htons(IP_OFFMASK | IP_MF)) != 0) {
-#if IP_REASSEMBLY /* packet fragment reassembly code present? */
- LWIP_DEBUGF(IP_DEBUG, ("IP packet is a fragment (id=0x%04"X16_F" tot_len=%"U16_F" len=%"U16_F" MF=%"U16_F" offset=%"U16_F"), calling ip_reass()\n",
- ntohs(IPH_ID(iphdr)), p->tot_len, ntohs(IPH_LEN(iphdr)), !!(IPH_OFFSET(iphdr) & htons(IP_MF)), (ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK)*8));
- /* reassemble the packet*/
- p = ip_reass(p);
- /* packet not fully reassembled yet? */
- if (p == NULL) {
- return ERR_OK;
- }
- iphdr = p->payload;
-#else /* IP_REASSEMBLY == 0, no packet fragment reassembly code present */
- pbuf_free(p);
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("IP packet dropped since it was fragmented (0x%"X16_F") (while IP_REASSEMBLY == 0).\n",
- ntohs(IPH_OFFSET(iphdr))));
- IP_STATS_INC(ip.opterr);
- IP_STATS_INC(ip.drop);
- /* unsupported protocol feature */
- snmp_inc_ipinunknownprotos();
- return ERR_OK;
-#endif /* IP_REASSEMBLY */
- }
-
-#if IP_OPTIONS_ALLOWED == 0 /* no support for IP options in the IP header? */
-
-#if LWIP_IGMP
- /* there is an extra "router alert" option in IGMP messages which we allow for but do not police */
- if((iphdr_hlen > IP_HLEN && (IPH_PROTO(iphdr) != IP_PROTO_IGMP)) {
-#else
- if (iphdr_hlen > IP_HLEN) {
-#endif /* LWIP_IGMP */
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("IP packet dropped since there were IP options (while IP_OPTIONS_ALLOWED == 0).\n"));
- pbuf_free(p);
- IP_STATS_INC(ip.opterr);
- IP_STATS_INC(ip.drop);
- /* unsupported protocol feature */
- snmp_inc_ipinunknownprotos();
- return ERR_OK;
- }
-#endif /* IP_OPTIONS_ALLOWED == 0 */
-
- /* send to upper layers */
- LWIP_DEBUGF(IP_DEBUG, ("ip_input: \n"));
- ip_debug_print(p);
- LWIP_DEBUGF(IP_DEBUG, ("ip_input: p->len %"U16_F" p->tot_len %"U16_F"\n", p->len, p->tot_len));
-
- current_netif = inp;
- current_header = iphdr;
-
-#if LWIP_RAW
- /* raw input did not eat the packet? */
- if (raw_input(p, inp) == 0)
-#endif /* LWIP_RAW */
- {
-
- switch (IPH_PROTO(iphdr)) {
-#if LWIP_UDP
- case IP_PROTO_UDP:
-#if LWIP_UDPLITE
- case IP_PROTO_UDPLITE:
-#endif /* LWIP_UDPLITE */
- snmp_inc_ipindelivers();
- udp_input(p, inp);
- break;
-#endif /* LWIP_UDP */
-#if LWIP_TCP
- case IP_PROTO_TCP:
- snmp_inc_ipindelivers();
- tcp_input(p, inp);
- break;
-#endif /* LWIP_TCP */
-#if LWIP_ICMP
- case IP_PROTO_ICMP:
- snmp_inc_ipindelivers();
- icmp_input(p, inp);
- break;
-#endif /* LWIP_ICMP */
-#if LWIP_IGMP
- case IP_PROTO_IGMP:
- igmp_input(p,inp,&(iphdr->dest));
- break;
-#endif /* LWIP_IGMP */
- default:
-#if LWIP_ICMP
- /* send ICMP destination protocol unreachable unless is was a broadcast */
- if (!ip_addr_isbroadcast(&(iphdr->dest), inp) &&
- !ip_addr_ismulticast(&(iphdr->dest))) {
- p->payload = iphdr;
- icmp_dest_unreach(p, ICMP_DUR_PROTO);
- }
-#endif /* LWIP_ICMP */
- pbuf_free(p);
-
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("Unsupported transport protocol %"U16_F"\n", IPH_PROTO(iphdr)));
-
- IP_STATS_INC(ip.proterr);
- IP_STATS_INC(ip.drop);
- snmp_inc_ipinunknownprotos();
- }
- }
-
- current_netif = NULL;
- current_header = NULL;
-
- return ERR_OK;
-}
-
-/**
- * Sends an IP packet on a network interface. This function constructs
- * the IP header and calculates the IP header checksum. If the source
- * IP address is NULL, the IP address of the outgoing network
- * interface is filled in as source address.
- * If the destination IP address is IP_HDRINCL, p is assumed to already
- * include an IP header and p->payload points to it instead of the data.
- *
- * @param p the packet to send (p->payload points to the data, e.g. next
- protocol header; if dest == IP_HDRINCL, p already includes an IP
- header and p->payload points to that IP header)
- * @param src the source IP address to send from (if src == IP_ADDR_ANY, the
- * IP address of the netif used to send is used as source address)
- * @param dest the destination IP address to send the packet to
- * @param ttl the TTL value to be set in the IP header
- * @param tos the TOS value to be set in the IP header
- * @param proto the PROTOCOL to be set in the IP header
- * @param netif the netif on which to send this packet
- * @return ERR_OK if the packet was sent OK
- * ERR_BUF if p doesn't have enough space for IP/LINK headers
- * returns errors returned by netif->output
- *
- * @note ip_id: RFC791 "some host may be able to simply use
- * unique identifiers independent of destination"
- */
-err_t
-ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos,
- u8_t proto, struct netif *netif)
-{
-#if IP_OPTIONS_SEND
- return ip_output_if_opt(p, src, dest, ttl, tos, proto, netif, NULL, 0);
-}
-
-/**
- * Same as ip_output_if() but with the possibility to include IP options:
- *
- * @ param ip_options pointer to the IP options, copied into the IP header
- * @ param optlen length of ip_options
- */
-err_t ip_output_if_opt(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options,
- u16_t optlen)
-{
-#endif /* IP_OPTIONS_SEND */
- struct ip_hdr *iphdr;
- static u16_t ip_id = 0;
-
- snmp_inc_ipoutrequests();
-
- /* Should the IP header be generated or is it already included in p? */
- if (dest != IP_HDRINCL) {
- u16_t ip_hlen = IP_HLEN;
-#if IP_OPTIONS_SEND
- u16_t optlen_aligned = 0;
- if (optlen != 0) {
- /* round up to a multiple of 4 */
- optlen_aligned = ((optlen + 3) & ~3);
- ip_hlen += optlen_aligned;
- /* First write in the IP options */
- if (pbuf_header(p, optlen_aligned)) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip_output_if_opt: not enough room for IP options in pbuf\n"));
- IP_STATS_INC(ip.err);
- snmp_inc_ipoutdiscards();
- return ERR_BUF;
- }
- MEMCPY(p->payload, ip_options, optlen);
- if (optlen < optlen_aligned) {
- /* zero the remaining bytes */
- memset(((char*)p->payload) + optlen, 0, optlen_aligned - optlen);
- }
- }
-#endif /* IP_OPTIONS_SEND */
- /* generate IP header */
- if (pbuf_header(p, IP_HLEN)) {
- LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip_output: not enough room for IP header in pbuf\n"));
-
- IP_STATS_INC(ip.err);
- snmp_inc_ipoutdiscards();
- return ERR_BUF;
- }
-
- iphdr = p->payload;
- LWIP_ASSERT("check that first pbuf can hold struct ip_hdr",
- (p->len >= sizeof(struct ip_hdr)));
-
- IPH_TTL_SET(iphdr, ttl);
- IPH_PROTO_SET(iphdr, proto);
-
- ip_addr_set(&(iphdr->dest), dest);
-
- IPH_VHLTOS_SET(iphdr, 4, ip_hlen / 4, tos);
- IPH_LEN_SET(iphdr, htons(p->tot_len));
- IPH_OFFSET_SET(iphdr, 0);
- IPH_ID_SET(iphdr, htons(ip_id));
- ++ip_id;
-
- if (ip_addr_isany(src)) {
- ip_addr_set(&(iphdr->src), &(netif->ip_addr));
- } else {
- ip_addr_set(&(iphdr->src), src);
- }
-
- IPH_CHKSUM_SET(iphdr, 0);
-#if CHECKSUM_GEN_IP
- IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, ip_hlen));
-#endif
- } else {
- /* IP header already included in p */
- iphdr = p->payload;
- dest = &(iphdr->dest);
- }
-
- IP_STATS_INC(ip.xmit);
-
- LWIP_DEBUGF(IP_DEBUG, ("ip_output_if: %c%c%"U16_F"\n", netif->name[0], netif->name[1], netif->num));
- ip_debug_print(p);
-
-#if ENABLE_LOOPBACK
- if (ip_addr_cmp(dest, &netif->ip_addr)) {
- /* Packet to self, enqueue it for loopback */
- LWIP_DEBUGF(IP_DEBUG, ("netif_loop_output()"));
- return netif_loop_output(netif, p, dest);
- }
-#endif /* ENABLE_LOOPBACK */
-#if IP_FRAG
- /* don't fragment if interface has mtu set to 0 [loopif] */
- if (netif->mtu && (p->tot_len > netif->mtu)) {
- return ip_frag(p,netif,dest);
- }
-#endif
-
- LWIP_DEBUGF(IP_DEBUG, ("netif->output()"));
- return netif->output(netif, p, dest);
-}
-
-/**
- * Simple interface to ip_output_if. It finds the outgoing network
- * interface and calls upon ip_output_if to do the actual work.
- *
- * @param p the packet to send (p->payload points to the data, e.g. next
- protocol header; if dest == IP_HDRINCL, p already includes an IP
- header and p->payload points to that IP header)
- * @param src the source IP address to send from (if src == IP_ADDR_ANY, the
- * IP address of the netif used to send is used as source address)
- * @param dest the destination IP address to send the packet to
- * @param ttl the TTL value to be set in the IP header
- * @param tos the TOS value to be set in the IP header
- * @param proto the PROTOCOL to be set in the IP header
- *
- * @return ERR_RTE if no route is found
- * see ip_output_if() for more return values
- */
-err_t
-ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos, u8_t proto)
-{
- struct netif *netif;
-
- if ((netif = ip_route(dest)) == NULL) {
- LWIP_DEBUGF(IP_DEBUG, ("ip_output: No route to 0x%"X32_F"\n", dest->addr));
- IP_STATS_INC(ip.rterr);
- return ERR_RTE;
- }
-
- return ip_output_if(p, src, dest, ttl, tos, proto, netif);
-}
-
-#if LWIP_NETIF_HWADDRHINT
-/** Like ip_output, but takes and addr_hint pointer that is passed on to netif->addr_hint
- * before calling ip_output_if.
- *
- * @param p the packet to send (p->payload points to the data, e.g. next
- protocol header; if dest == IP_HDRINCL, p already includes an IP
- header and p->payload points to that IP header)
- * @param src the source IP address to send from (if src == IP_ADDR_ANY, the
- * IP address of the netif used to send is used as source address)
- * @param dest the destination IP address to send the packet to
- * @param ttl the TTL value to be set in the IP header
- * @param tos the TOS value to be set in the IP header
- * @param proto the PROTOCOL to be set in the IP header
- * @param addr_hint address hint pointer set to netif->addr_hint before
- * calling ip_output_if()
- *
- * @return ERR_RTE if no route is found
- * see ip_output_if() for more return values
- */
-err_t
-ip_output_hinted(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos, u8_t proto, u8_t *addr_hint)
-{
- struct netif *netif;
- err_t err;
-
- if ((netif = ip_route(dest)) == NULL) {
- LWIP_DEBUGF(IP_DEBUG, ("ip_output: No route to 0x%"X32_F"\n", dest->addr));
- IP_STATS_INC(ip.rterr);
- return ERR_RTE;
- }
-
- netif->addr_hint = addr_hint;
- err = ip_output_if(p, src, dest, ttl, tos, proto, netif);
- netif->addr_hint = NULL;
-
- return err;
-}
-#endif /* LWIP_NETIF_HWADDRHINT*/
-
-#if IP_DEBUG
-/* Print an IP header by using LWIP_DEBUGF
- * @param p an IP packet, p->payload pointing to the IP header
- */
-void
-ip_debug_print(struct pbuf *p)
-{
- struct ip_hdr *iphdr = p->payload;
- u8_t *payload;
-
- payload = (u8_t *)iphdr + IP_HLEN;
-
- LWIP_DEBUGF(IP_DEBUG, ("IP header:\n"));
- LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(IP_DEBUG, ("|%2"S16_F" |%2"S16_F" | 0x%02"X16_F" | %5"U16_F" | (v, hl, tos, len)\n",
- IPH_V(iphdr),
- IPH_HL(iphdr),
- IPH_TOS(iphdr),
- ntohs(IPH_LEN(iphdr))));
- LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(IP_DEBUG, ("| %5"U16_F" |%"U16_F"%"U16_F"%"U16_F"| %4"U16_F" | (id, flags, offset)\n",
- ntohs(IPH_ID(iphdr)),
- ntohs(IPH_OFFSET(iphdr)) >> 15 & 1,
- ntohs(IPH_OFFSET(iphdr)) >> 14 & 1,
- ntohs(IPH_OFFSET(iphdr)) >> 13 & 1,
- ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK));
- LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | 0x%04"X16_F" | (ttl, proto, chksum)\n",
- IPH_TTL(iphdr),
- IPH_PROTO(iphdr),
- ntohs(IPH_CHKSUM(iphdr))));
- LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | %3"U16_F" | %3"U16_F" | (src)\n",
- ip4_addr1(&iphdr->src),
- ip4_addr2(&iphdr->src),
- ip4_addr3(&iphdr->src),
- ip4_addr4(&iphdr->src)));
- LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | %3"U16_F" | %3"U16_F" | (dest)\n",
- ip4_addr1(&iphdr->dest),
- ip4_addr2(&iphdr->dest),
- ip4_addr3(&iphdr->dest),
- ip4_addr4(&iphdr->dest)));
- LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
-}
-#endif /* IP_DEBUG */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_addr.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_addr.c
deleted file mode 100644
index 33e0aad..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_addr.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * This is the IPv4 address tools implementation.
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-#include "lwip/ip_addr.h"
-#include "lwip/inet.h"
-#include "lwip/netif.h"
-
-#define IP_ADDR_ANY_VALUE 0x00000000UL
-#define IP_ADDR_BROADCAST_VALUE 0xffffffffUL
-
-/* used by IP_ADDR_ANY and IP_ADDR_BROADCAST in ip_addr.h */
-const struct ip_addr ip_addr_any = { IP_ADDR_ANY_VALUE };
-const struct ip_addr ip_addr_broadcast = { IP_ADDR_BROADCAST_VALUE };
-
-/**
- * Determine if an address is a broadcast address on a network interface
- *
- * @param addr address to be checked
- * @param netif the network interface against which the address is checked
- * @return returns non-zero if the address is a broadcast address
- */
-u8_t ip_addr_isbroadcast(struct ip_addr *addr, struct netif *netif)
-{
- u32_t addr2test;
-
- addr2test = addr->addr;
- /* all ones (broadcast) or all zeroes (old skool broadcast) */
- if ((~addr2test == IP_ADDR_ANY_VALUE) ||
- (addr2test == IP_ADDR_ANY_VALUE))
- return 1;
- /* no broadcast support on this network interface? */
- else if ((netif->flags & NETIF_FLAG_BROADCAST) == 0)
- /* the given address cannot be a broadcast address
- * nor can we check against any broadcast addresses */
- return 0;
- /* address matches network interface address exactly? => no broadcast */
- else if (addr2test == netif->ip_addr.addr)
- return 0;
- /* on the same (sub) network... */
- else if (ip_addr_netcmp(addr, &(netif->ip_addr), &(netif->netmask))
- /* ...and host identifier bits are all ones? =>... */
- && ((addr2test & ~netif->netmask.addr) ==
- (IP_ADDR_BROADCAST_VALUE & ~netif->netmask.addr)))
- /* => network broadcast address */
- return 1;
- else
- return 0;
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_frag.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_frag.c
deleted file mode 100644
index ab35572..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_frag.c
+++ /dev/null
@@ -1,794 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * This is the IPv4 packet segmentation and reassembly implementation.
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Jani Monoses <jani@iv.ro>
- * Simon Goldschmidt
- * original reassembly code by Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-#include "lwip/ip_frag.h"
-#include "lwip/ip.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/netif.h"
-#include "lwip/snmp.h"
-#include "lwip/stats.h"
-#include "lwip/icmp.h"
-
-#include <string.h>
-
-#if IP_REASSEMBLY
-/**
- * The IP reassembly code currently has the following limitations:
- * - IP header options are not supported
- * - fragments must not overlap (e.g. due to different routes),
- * currently, overlapping or duplicate fragments are thrown away
- * if IP_REASS_CHECK_OVERLAP=1 (the default)!
- *
- * @todo: work with IP header options
- */
-
-/** Setting this to 0, you can turn off checking the fragments for overlapping
- * regions. The code gets a little smaller. Only use this if you know that
- * overlapping won't occur on your network! */
-#ifndef IP_REASS_CHECK_OVERLAP
-#define IP_REASS_CHECK_OVERLAP 1
-#endif /* IP_REASS_CHECK_OVERLAP */
-
-/** Set to 0 to prevent freeing the oldest datagram when the reassembly buffer is
- * full (IP_REASS_MAX_PBUFS pbufs are enqueued). The code gets a little smaller.
- * Datagrams will be freed by timeout only. Especially useful when MEMP_NUM_REASSDATA
- * is set to 1, so one datagram can be reassembled at a time, only. */
-#ifndef IP_REASS_FREE_OLDEST
-#define IP_REASS_FREE_OLDEST 1
-#endif /* IP_REASS_FREE_OLDEST */
-
-#define IP_REASS_FLAG_LASTFRAG 0x01
-
-/** This is a helper struct which holds the starting
- * offset and the ending offset of this fragment to
- * easily chain the fragments.
- * It has to be packed since it has to fit inside the IP header.
- */
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct ip_reass_helper {
- PACK_STRUCT_FIELD(struct pbuf *next_pbuf);
- PACK_STRUCT_FIELD(u16_t start);
- PACK_STRUCT_FIELD(u16_t end);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define IP_ADDRESSES_AND_ID_MATCH(iphdrA, iphdrB) \
- (ip_addr_cmp(&(iphdrA)->src, &(iphdrB)->src) && \
- ip_addr_cmp(&(iphdrA)->dest, &(iphdrB)->dest) && \
- IPH_ID(iphdrA) == IPH_ID(iphdrB)) ? 1 : 0
-
-/* global variables */
-static struct ip_reassdata *reassdatagrams;
-static u16_t ip_reass_pbufcount;
-
-/* function prototypes */
-static void ip_reass_dequeue_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev);
-static int ip_reass_free_complete_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev);
-
-/**
- * Reassembly timer base function
- * for both NO_SYS == 0 and 1 (!).
- *
- * Should be called every 1000 msec (defined by IP_TMR_INTERVAL).
- */
-void
-ip_reass_tmr(void)
-{
- struct ip_reassdata *r, *prev = NULL;
-
- r = reassdatagrams;
- while (r != NULL) {
- /* Decrement the timer. Once it reaches 0,
- * clean up the incomplete fragment assembly */
- if (r->timer > 0) {
- r->timer--;
- LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass_tmr: timer dec %"U16_F"\n",(u16_t)r->timer));
- prev = r;
- r = r->next;
- } else {
- /* reassembly timed out */
- struct ip_reassdata *tmp;
- LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass_tmr: timer timed out\n"));
- tmp = r;
- /* get the next pointer before freeing */
- r = r->next;
- /* free the helper struct and all enqueued pbufs */
- ip_reass_free_complete_datagram(tmp, prev);
- }
- }
-}
-
-/**
- * Free a datagram (struct ip_reassdata) and all its pbufs.
- * Updates the total count of enqueued pbufs (ip_reass_pbufcount),
- * SNMP counters and sends an ICMP time exceeded packet.
- *
- * @param ipr datagram to free
- * @param prev the previous datagram in the linked list
- * @return the number of pbufs freed
- */
-static int
-ip_reass_free_complete_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev)
-{
- int pbufs_freed = 0;
- struct pbuf *p;
- struct ip_reass_helper *iprh;
-
- LWIP_ASSERT("prev != ipr", prev != ipr);
- if (prev != NULL) {
- LWIP_ASSERT("prev->next == ipr", prev->next == ipr);
- }
-
- snmp_inc_ipreasmfails();
-#if LWIP_ICMP
- iprh = (struct ip_reass_helper *)ipr->p->payload;
- if (iprh->start == 0) {
- /* The first fragment was received, send ICMP time exceeded. */
- /* First, de-queue the first pbuf from r->p. */
- p = ipr->p;
- ipr->p = iprh->next_pbuf;
- /* Then, copy the original header into it. */
- SMEMCPY(p->payload, &ipr->iphdr, IP_HLEN);
- icmp_time_exceeded(p, ICMP_TE_FRAG);
- pbufs_freed += pbuf_clen(p);
- pbuf_free(p);
- }
-#endif /* LWIP_ICMP */
-
- /* First, free all received pbufs. The individual pbufs need to be released
- separately as they have not yet been chained */
- p = ipr->p;
- while (p != NULL) {
- struct pbuf *pcur;
- iprh = (struct ip_reass_helper *)p->payload;
- pcur = p;
- /* get the next pointer before freeing */
- p = iprh->next_pbuf;
- pbufs_freed += pbuf_clen(pcur);
- pbuf_free(pcur);
- }
- /* Then, unchain the struct ip_reassdata from the list and free it. */
- ip_reass_dequeue_datagram(ipr, prev);
- LWIP_ASSERT("ip_reass_pbufcount >= clen", ip_reass_pbufcount >= pbufs_freed);
- ip_reass_pbufcount -= pbufs_freed;
-
- return pbufs_freed;
-}
-
-#if IP_REASS_FREE_OLDEST
-/**
- * Free the oldest datagram to make room for enqueueing new fragments.
- * The datagram 'fraghdr' belongs to is not freed!
- *
- * @param fraghdr IP header of the current fragment
- * @param pbufs_needed number of pbufs needed to enqueue
- * (used for freeing other datagrams if not enough space)
- * @return the number of pbufs freed
- */
-static int
-ip_reass_remove_oldest_datagram(struct ip_hdr *fraghdr, int pbufs_needed)
-{
- /* @todo Can't we simply remove the last datagram in the
- * linked list behind reassdatagrams?
- */
- struct ip_reassdata *r, *oldest, *prev;
- int pbufs_freed = 0, pbufs_freed_current;
- int other_datagrams;
-
- /* Free datagrams until being allowed to enqueue 'pbufs_needed' pbufs,
- * but don't free the datagram that 'fraghdr' belongs to! */
- do {
- oldest = NULL;
- prev = NULL;
- other_datagrams = 0;
- r = reassdatagrams;
- while (r != NULL) {
- if (!IP_ADDRESSES_AND_ID_MATCH(&r->iphdr, fraghdr)) {
- /* Not the same datagram as fraghdr */
- other_datagrams++;
- if (oldest == NULL) {
- oldest = r;
- } else if (r->timer <= oldest->timer) {
- /* older than the previous oldest */
- oldest = r;
- }
- }
- if (r->next != NULL) {
- prev = r;
- }
- r = r->next;
- }
- if (oldest != NULL) {
- pbufs_freed_current = ip_reass_free_complete_datagram(oldest, prev);
- pbufs_freed += pbufs_freed_current;
- }
- } while ((pbufs_freed < pbufs_needed) && (other_datagrams > 1));
- return pbufs_freed;
-}
-#endif /* IP_REASS_FREE_OLDEST */
-
-/**
- * Enqueues a new fragment into the fragment queue
- * @param fraghdr points to the new fragments IP hdr
- * @param clen number of pbufs needed to enqueue (used for freeing other datagrams if not enough space)
- * @return A pointer to the queue location into which the fragment was enqueued
- */
-static struct ip_reassdata*
-ip_reass_enqueue_new_datagram(struct ip_hdr *fraghdr, int clen)
-{
- struct ip_reassdata* ipr;
- /* No matching previous fragment found, allocate a new reassdata struct */
- ipr = memp_malloc(MEMP_REASSDATA);
- if (ipr == NULL) {
-#if IP_REASS_FREE_OLDEST
- if (ip_reass_remove_oldest_datagram(fraghdr, clen) >= clen) {
- ipr = memp_malloc(MEMP_REASSDATA);
- }
- if (ipr == NULL)
-#endif /* IP_REASS_FREE_OLDEST */
- {
- IPFRAG_STATS_INC(ip_frag.memerr);
- LWIP_DEBUGF(IP_REASS_DEBUG,("Failed to alloc reassdata struct\n"));
- return NULL;
- }
- }
- memset(ipr, 0, sizeof(struct ip_reassdata));
- ipr->timer = IP_REASS_MAXAGE;
-
- /* enqueue the new structure to the front of the list */
- ipr->next = reassdatagrams;
- reassdatagrams = ipr;
- /* copy the ip header for later tests and input */
- /* @todo: no ip options supported? */
- SMEMCPY(&(ipr->iphdr), fraghdr, IP_HLEN);
- return ipr;
-}
-
-/**
- * Dequeues a datagram from the datagram queue. Doesn't deallocate the pbufs.
- * @param ipr points to the queue entry to dequeue
- */
-static void
-ip_reass_dequeue_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev)
-{
-
- /* dequeue the reass struct */
- if (reassdatagrams == ipr) {
- /* it was the first in the list */
- reassdatagrams = ipr->next;
- } else {
- /* it wasn't the first, so it must have a valid 'prev' */
- LWIP_ASSERT("sanity check linked list", prev != NULL);
- prev->next = ipr->next;
- }
-
- /* now we can free the ip_reass struct */
- memp_free(MEMP_REASSDATA, ipr);
-}
-
-/**
- * Chain a new pbuf into the pbuf list that composes the datagram. The pbuf list
- * will grow over time as new pbufs are rx.
- * Also checks that the datagram passes basic continuity checks (if the last
- * fragment was received at least once).
- * @param root_p points to the 'root' pbuf for the current datagram being assembled.
- * @param new_p points to the pbuf for the current fragment
- * @return 0 if invalid, >0 otherwise
- */
-static int
-ip_reass_chain_frag_into_datagram_and_validate(struct ip_reassdata *ipr, struct pbuf *new_p)
-{
- struct ip_reass_helper *iprh, *iprh_tmp, *iprh_prev=NULL;
- struct pbuf *q;
- u16_t offset,len;
- struct ip_hdr *fraghdr;
- int valid = 1;
-
- /* Extract length and fragment offset from current fragment */
- fraghdr = (struct ip_hdr*)new_p->payload;
- len = ntohs(IPH_LEN(fraghdr)) - IPH_HL(fraghdr) * 4;
- offset = (ntohs(IPH_OFFSET(fraghdr)) & IP_OFFMASK) * 8;
-
- /* overwrite the fragment's ip header from the pbuf with our helper struct,
- * and setup the embedded helper structure. */
- /* make sure the struct ip_reass_helper fits into the IP header */
- LWIP_ASSERT("sizeof(struct ip_reass_helper) <= IP_HLEN",
- sizeof(struct ip_reass_helper) <= IP_HLEN);
- iprh = (struct ip_reass_helper*)new_p->payload;
- iprh->next_pbuf = NULL;
- iprh->start = offset;
- iprh->end = offset + len;
-
- /* Iterate through until we either get to the end of the list (append),
- * or we find on with a larger offset (insert). */
- for (q = ipr->p; q != NULL;) {
- iprh_tmp = (struct ip_reass_helper*)q->payload;
- if (iprh->start < iprh_tmp->start) {
- /* the new pbuf should be inserted before this */
- iprh->next_pbuf = q;
- if (iprh_prev != NULL) {
- /* not the fragment with the lowest offset */
-#if IP_REASS_CHECK_OVERLAP
- if ((iprh->start < iprh_prev->end) || (iprh->end > iprh_tmp->start)) {
- /* fragment overlaps with previous or following, throw away */
- goto freepbuf;
- }
-#endif /* IP_REASS_CHECK_OVERLAP */
- iprh_prev->next_pbuf = new_p;
- } else {
- /* fragment with the lowest offset */
- ipr->p = new_p;
- }
- break;
- } else if(iprh->start == iprh_tmp->start) {
- /* received the same datagram twice: no need to keep the datagram */
- goto freepbuf;
-#if IP_REASS_CHECK_OVERLAP
- } else if(iprh->start < iprh_tmp->end) {
- /* overlap: no need to keep the new datagram */
- goto freepbuf;
-#endif /* IP_REASS_CHECK_OVERLAP */
- } else {
- /* Check if the fragments received so far have no wholes. */
- if (iprh_prev != NULL) {
- if (iprh_prev->end != iprh_tmp->start) {
- /* There is a fragment missing between the current
- * and the previous fragment */
- valid = 0;
- }
- }
- }
- q = iprh_tmp->next_pbuf;
- iprh_prev = iprh_tmp;
- }
-
- /* If q is NULL, then we made it to the end of the list. Determine what to do now */
- if (q == NULL) {
- if (iprh_prev != NULL) {
- /* this is (for now), the fragment with the highest offset:
- * chain it to the last fragment */
-#if IP_REASS_CHECK_OVERLAP
- LWIP_ASSERT("check fragments don't overlap", iprh_prev->end <= iprh->start);
-#endif /* IP_REASS_CHECK_OVERLAP */
- iprh_prev->next_pbuf = new_p;
- if (iprh_prev->end != iprh->start) {
- valid = 0;
- }
- } else {
-#if IP_REASS_CHECK_OVERLAP
- LWIP_ASSERT("no previous fragment, this must be the first fragment!",
- ipr->p == NULL);
-#endif /* IP_REASS_CHECK_OVERLAP */
- /* this is the first fragment we ever received for this ip datagram */
- ipr->p = new_p;
- }
- }
-
- /* At this point, the validation part begins: */
- /* If we already received the last fragment */
- if ((ipr->flags & IP_REASS_FLAG_LASTFRAG) != 0) {
- /* and had no wholes so far */
- if (valid) {
- /* then check if the rest of the fragments is here */
- /* Check if the queue starts with the first datagram */
- if (((struct ip_reass_helper*)ipr->p->payload)->start != 0) {
- valid = 0;
- } else {
- /* and check that there are no wholes after this datagram */
- iprh_prev = iprh;
- q = iprh->next_pbuf;
- while (q != NULL) {
- iprh = (struct ip_reass_helper*)q->payload;
- if (iprh_prev->end != iprh->start) {
- valid = 0;
- break;
- }
- iprh_prev = iprh;
- q = iprh->next_pbuf;
- }
- /* if still valid, all fragments are received
- * (because to the MF==0 already arrived */
- if (valid) {
- LWIP_ASSERT("sanity check", ipr->p != NULL);
- LWIP_ASSERT("sanity check",
- ((struct ip_reass_helper*)ipr->p->payload) != iprh);
- LWIP_ASSERT("validate_datagram:next_pbuf!=NULL",
- iprh->next_pbuf == NULL);
- LWIP_ASSERT("validate_datagram:datagram end!=datagram len",
- iprh->end == ipr->datagram_len);
- }
- }
- }
- /* If valid is 0 here, there are some fragments missing in the middle
- * (since MF == 0 has already arrived). Such datagrams simply time out if
- * no more fragments are received... */
- return valid;
- }
- /* If we come here, not all fragments were received, yet! */
- return 0; /* not yet valid! */
-#if IP_REASS_CHECK_OVERLAP
-freepbuf:
- ip_reass_pbufcount -= pbuf_clen(new_p);
- pbuf_free(new_p);
- return 0;
-#endif /* IP_REASS_CHECK_OVERLAP */
-}
-
-/**
- * Reassembles incoming IP fragments into an IP datagram.
- *
- * @param p points to a pbuf chain of the fragment
- * @return NULL if reassembly is incomplete, ? otherwise
- */
-struct pbuf *
-ip_reass(struct pbuf *p)
-{
- struct pbuf *r;
- struct ip_hdr *fraghdr;
- struct ip_reassdata *ipr;
- struct ip_reass_helper *iprh;
- u16_t offset, len;
- u8_t clen;
- struct ip_reassdata *ipr_prev = NULL;
-
- IPFRAG_STATS_INC(ip_frag.recv);
- snmp_inc_ipreasmreqds();
-
- fraghdr = (struct ip_hdr*)p->payload;
-
- if ((IPH_HL(fraghdr) * 4) != IP_HLEN) {
- LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass: IP options currently not supported!\n"));
- IPFRAG_STATS_INC(ip_frag.err);
- goto nullreturn;
- }
-
- offset = (ntohs(IPH_OFFSET(fraghdr)) & IP_OFFMASK) * 8;
- len = ntohs(IPH_LEN(fraghdr)) - IPH_HL(fraghdr) * 4;
-
- /* Check if we are allowed to enqueue more datagrams. */
- clen = pbuf_clen(p);
- if ((ip_reass_pbufcount + clen) > IP_REASS_MAX_PBUFS) {
-#if IP_REASS_FREE_OLDEST
- if (!ip_reass_remove_oldest_datagram(fraghdr, clen) ||
- ((ip_reass_pbufcount + clen) > IP_REASS_MAX_PBUFS))
-#endif /* IP_REASS_FREE_OLDEST */
- {
- /* No datagram could be freed and still too many pbufs enqueued */
- LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass: Overflow condition: pbufct=%d, clen=%d, MAX=%d\n",
- ip_reass_pbufcount, clen, IP_REASS_MAX_PBUFS));
- IPFRAG_STATS_INC(ip_frag.memerr);
- /* @todo: send ICMP time exceeded here? */
- /* drop this pbuf */
- goto nullreturn;
- }
- }
-
- /* Look for the datagram the fragment belongs to in the current datagram queue,
- * remembering the previous in the queue for later dequeueing. */
- for (ipr = reassdatagrams; ipr != NULL; ipr = ipr->next) {
- /* Check if the incoming fragment matches the one currently present
- in the reassembly buffer. If so, we proceed with copying the
- fragment into the buffer. */
- if (IP_ADDRESSES_AND_ID_MATCH(&ipr->iphdr, fraghdr)) {
- LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass: matching previous fragment ID=%"X16_F"\n",
- ntohs(IPH_ID(fraghdr))));
- IPFRAG_STATS_INC(ip_frag.cachehit);
- break;
- }
- ipr_prev = ipr;
- }
-
- if (ipr == NULL) {
- /* Enqueue a new datagram into the datagram queue */
- ipr = ip_reass_enqueue_new_datagram(fraghdr, clen);
- /* Bail if unable to enqueue */
- if(ipr == NULL) {
- goto nullreturn;
- }
- } else {
- if (((ntohs(IPH_OFFSET(fraghdr)) & IP_OFFMASK) == 0) &&
- ((ntohs(IPH_OFFSET(&ipr->iphdr)) & IP_OFFMASK) != 0)) {
- /* ipr->iphdr is not the header from the first fragment, but fraghdr is
- * -> copy fraghdr into ipr->iphdr since we want to have the header
- * of the first fragment (for ICMP time exceeded and later, for copying
- * all options, if supported)*/
- SMEMCPY(&ipr->iphdr, fraghdr, IP_HLEN);
- }
- }
- /* Track the current number of pbufs current 'in-flight', in order to limit
- the number of fragments that may be enqueued at any one time */
- ip_reass_pbufcount += clen;
-
- /* At this point, we have either created a new entry or pointing
- * to an existing one */
-
- /* check for 'no more fragments', and update queue entry*/
- if ((ntohs(IPH_OFFSET(fraghdr)) & IP_MF) == 0) {
- ipr->flags |= IP_REASS_FLAG_LASTFRAG;
- ipr->datagram_len = offset + len;
- LWIP_DEBUGF(IP_REASS_DEBUG,
- ("ip_reass: last fragment seen, total len %"S16_F"\n",
- ipr->datagram_len));
- }
- /* find the right place to insert this pbuf */
- /* @todo: trim pbufs if fragments are overlapping */
- if (ip_reass_chain_frag_into_datagram_and_validate(ipr, p)) {
- /* the totally last fragment (flag more fragments = 0) was received at least
- * once AND all fragments are received */
- ipr->datagram_len += IP_HLEN;
-
- /* save the second pbuf before copying the header over the pointer */
- r = ((struct ip_reass_helper*)ipr->p->payload)->next_pbuf;
-
- /* copy the original ip header back to the first pbuf */
- fraghdr = (struct ip_hdr*)(ipr->p->payload);
- SMEMCPY(fraghdr, &ipr->iphdr, IP_HLEN);
- IPH_LEN_SET(fraghdr, htons(ipr->datagram_len));
- IPH_OFFSET_SET(fraghdr, 0);
- IPH_CHKSUM_SET(fraghdr, 0);
- /* @todo: do we need to set calculate the correct checksum? */
- IPH_CHKSUM_SET(fraghdr, inet_chksum(fraghdr, IP_HLEN));
-
- p = ipr->p;
-
- /* chain together the pbufs contained within the reass_data list. */
- while(r != NULL) {
- iprh = (struct ip_reass_helper*)r->payload;
-
- /* hide the ip header for every succeding fragment */
- pbuf_header(r, -IP_HLEN);
- pbuf_cat(p, r);
- r = iprh->next_pbuf;
- }
- /* release the sources allocate for the fragment queue entry */
- ip_reass_dequeue_datagram(ipr, ipr_prev);
-
- /* and adjust the number of pbufs currently queued for reassembly. */
- ip_reass_pbufcount -= pbuf_clen(p);
-
- /* Return the pbuf chain */
- return p;
- }
- /* the datagram is not (yet?) reassembled completely */
- LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass_pbufcount: %d out\n", ip_reass_pbufcount));
- return NULL;
-
-nullreturn:
- LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass: nullreturn\n"));
- IPFRAG_STATS_INC(ip_frag.drop);
- pbuf_free(p);
- return NULL;
-}
-#endif /* IP_REASSEMBLY */
-
-#if IP_FRAG
-#if IP_FRAG_USES_STATIC_BUF
-static u8_t buf[LWIP_MEM_ALIGN_SIZE(IP_FRAG_MAX_MTU + MEM_ALIGNMENT - 1)];
-#endif /* IP_FRAG_USES_STATIC_BUF */
-
-/**
- * Fragment an IP datagram if too large for the netif.
- *
- * Chop the datagram in MTU sized chunks and send them in order
- * by using a fixed size static memory buffer (PBUF_REF) or
- * point PBUF_REFs into p (depending on IP_FRAG_USES_STATIC_BUF).
- *
- * @param p ip packet to send
- * @param netif the netif on which to send
- * @param dest destination ip address to which to send
- *
- * @return ERR_OK if sent successfully, err_t otherwise
- */
-err_t
-ip_frag(struct pbuf *p, struct netif *netif, struct ip_addr *dest)
-{
- struct pbuf *rambuf;
-#if IP_FRAG_USES_STATIC_BUF
- struct pbuf *header;
-#else
- struct pbuf *newpbuf;
- struct ip_hdr *original_iphdr;
-#endif
- struct ip_hdr *iphdr;
- u16_t nfb;
- u16_t left, cop;
- u16_t mtu = netif->mtu;
- u16_t ofo, omf;
- u16_t last;
- u16_t poff = IP_HLEN;
- u16_t tmp;
-#if !IP_FRAG_USES_STATIC_BUF
- u16_t newpbuflen = 0;
- u16_t left_to_copy;
-#endif
-
- /* Get a RAM based MTU sized pbuf */
-#if IP_FRAG_USES_STATIC_BUF
- /* When using a static buffer, we use a PBUF_REF, which we will
- * use to reference the packet (without link header).
- * Layer and length is irrelevant.
- */
- rambuf = pbuf_alloc(PBUF_LINK, 0, PBUF_REF);
- if (rambuf == NULL) {
- LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_frag: pbuf_alloc(PBUF_LINK, 0, PBUF_REF) failed\n"));
- return ERR_MEM;
- }
- rambuf->tot_len = rambuf->len = mtu;
- rambuf->payload = LWIP_MEM_ALIGN((void *)buf);
-
- /* Copy the IP header in it */
- iphdr = rambuf->payload;
- SMEMCPY(iphdr, p->payload, IP_HLEN);
-#else /* IP_FRAG_USES_STATIC_BUF */
- original_iphdr = p->payload;
- iphdr = original_iphdr;
-#endif /* IP_FRAG_USES_STATIC_BUF */
-
- /* Save original offset */
- tmp = ntohs(IPH_OFFSET(iphdr));
- ofo = tmp & IP_OFFMASK;
- omf = tmp & IP_MF;
-
- left = p->tot_len - IP_HLEN;
-
- nfb = (mtu - IP_HLEN) / 8;
-
- while (left) {
- last = (left <= mtu - IP_HLEN);
-
- /* Set new offset and MF flag */
- tmp = omf | (IP_OFFMASK & (ofo));
- if (!last)
- tmp = tmp | IP_MF;
-
- /* Fill this fragment */
- cop = last ? left : nfb * 8;
-
-#if IP_FRAG_USES_STATIC_BUF
- poff += pbuf_copy_partial(p, (u8_t*)iphdr + IP_HLEN, cop, poff);
-#else /* IP_FRAG_USES_STATIC_BUF */
- /* When not using a static buffer, create a chain of pbufs.
- * The first will be a PBUF_RAM holding the link and IP header.
- * The rest will be PBUF_REFs mirroring the pbuf chain to be fragged,
- * but limited to the size of an mtu.
- */
- rambuf = pbuf_alloc(PBUF_LINK, IP_HLEN, PBUF_RAM);
- if (rambuf == NULL) {
- return ERR_MEM;
- }
- LWIP_ASSERT("this needs a pbuf in one piece!",
- (p->len >= (IP_HLEN)));
- SMEMCPY(rambuf->payload, original_iphdr, IP_HLEN);
- iphdr = rambuf->payload;
-
- /* Can just adjust p directly for needed offset. */
- p->payload = (u8_t *)p->payload + poff;
- p->len -= poff;
-
- left_to_copy = cop;
- while (left_to_copy) {
- newpbuflen = (left_to_copy < p->len) ? left_to_copy : p->len;
- /* Is this pbuf already empty? */
- if (!newpbuflen) {
- p = p->next;
- continue;
- }
- newpbuf = pbuf_alloc(PBUF_RAW, 0, PBUF_REF);
- if (newpbuf == NULL) {
- pbuf_free(rambuf);
- return ERR_MEM;
- }
- /* Mirror this pbuf, although we might not need all of it. */
- newpbuf->payload = p->payload;
- newpbuf->len = newpbuf->tot_len = newpbuflen;
- /* Add it to end of rambuf's chain, but using pbuf_cat, not pbuf_chain
- * so that it is removed when pbuf_dechain is later called on rambuf.
- */
- pbuf_cat(rambuf, newpbuf);
- left_to_copy -= newpbuflen;
- if (left_to_copy)
- p = p->next;
- }
- poff = newpbuflen;
-#endif /* IP_FRAG_USES_STATIC_BUF */
-
- /* Correct header */
- IPH_OFFSET_SET(iphdr, htons(tmp));
- IPH_LEN_SET(iphdr, htons(cop + IP_HLEN));
- IPH_CHKSUM_SET(iphdr, 0);
- IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, IP_HLEN));
-
-#if IP_FRAG_USES_STATIC_BUF
- if (last)
- pbuf_realloc(rambuf, left + IP_HLEN);
-
- /* This part is ugly: we alloc a RAM based pbuf for
- * the link level header for each chunk and then
- * free it.A PBUF_ROM style pbuf for which pbuf_header
- * worked would make things simpler.
- */
- header = pbuf_alloc(PBUF_LINK, 0, PBUF_RAM);
- if (header != NULL) {
- pbuf_chain(header, rambuf);
- netif->output(netif, header, dest);
- IPFRAG_STATS_INC(ip_frag.xmit);
- snmp_inc_ipfragcreates();
- pbuf_free(header);
- } else {
- LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_frag: pbuf_alloc() for header failed\n"));
- pbuf_free(rambuf);
- return ERR_MEM;
- }
-#else /* IP_FRAG_USES_STATIC_BUF */
- /* No need for separate header pbuf - we allowed room for it in rambuf
- * when allocated.
- */
- netif->output(netif, rambuf, dest);
- IPFRAG_STATS_INC(ip_frag.xmit);
-
- /* Unfortunately we can't reuse rambuf - the hardware may still be
- * using the buffer. Instead we free it (and the ensuing chain) and
- * recreate it next time round the loop. If we're lucky the hardware
- * will have already sent the packet, the free will really free, and
- * there will be zero memory penalty.
- */
-
- pbuf_free(rambuf);
-#endif /* IP_FRAG_USES_STATIC_BUF */
- left -= cop;
- ofo += nfb;
- }
-#if IP_FRAG_USES_STATIC_BUF
- pbuf_free(rambuf);
-#endif /* IP_FRAG_USES_STATIC_BUF */
- snmp_inc_ipfragoks();
- return ERR_OK;
-}
-#endif /* IP_FRAG */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/mem.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/mem.c
deleted file mode 100644
index ea3f4a6..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/mem.c
+++ /dev/null
@@ -1,635 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Dynamic memory manager
- *
- * This is a lightweight replacement for the standard C library malloc().
- *
- * If you want to use the standard C library malloc() instead, define
- * MEM_LIBC_MALLOC to 1 in your lwipopts.h
- *
- * To let mem_malloc() use pools (prevents fragmentation and is much faster than
- * a heap but might waste some memory), define MEM_USE_POOLS to 1, define
- * MEM_USE_CUSTOM_POOLS to 1 and create a file "lwippools.h" that includes a list
- * of pools like this (more pools can be added between _START and _END):
- *
- * Define three pools with sizes 256, 512, and 1512 bytes
- * LWIP_MALLOC_MEMPOOL_START
- * LWIP_MALLOC_MEMPOOL(20, 256)
- * LWIP_MALLOC_MEMPOOL(10, 512)
- * LWIP_MALLOC_MEMPOOL(5, 1512)
- * LWIP_MALLOC_MEMPOOL_END
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- * Simon Goldschmidt
- *
- */
-
-#include "lwip/opt.h"
-
-#if !MEM_LIBC_MALLOC /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/def.h"
-#include "lwip/mem.h"
-#include "lwip/sys.h"
-#include "lwip/stats.h"
-
-#include <string.h>
-
-#if MEM_USE_POOLS
-/* lwIP head implemented with different sized pools */
-
-/**
- * Allocate memory: determine the smallest pool that is big enough
- * to contain an element of 'size' and get an element from that pool.
- *
- * @param size the size in bytes of the memory needed
- * @return a pointer to the allocated memory or NULL if the pool is empty
- */
-void *
-mem_malloc(mem_size_t size)
-{
- struct memp_malloc_helper *element;
- memp_t poolnr;
- mem_size_t required_size = size + sizeof(struct memp_malloc_helper);
-
- for (poolnr = MEMP_POOL_FIRST; poolnr <= MEMP_POOL_LAST; poolnr++) {
-#if MEM_USE_POOLS_TRY_BIGGER_POOL
-again:
-#endif /* MEM_USE_POOLS_TRY_BIGGER_POOL */
- /* is this pool big enough to hold an element of the required size
- plus a struct memp_malloc_helper that saves the pool this element came from? */
- if (required_size <= memp_sizes[poolnr]) {
- break;
- }
- }
- if (poolnr > MEMP_POOL_LAST) {
- LWIP_ASSERT("mem_malloc(): no pool is that big!", 0);
- return NULL;
- }
- element = (struct memp_malloc_helper*)memp_malloc(poolnr);
- if (element == NULL) {
- /* No need to DEBUGF or ASSERT: This error is already
- taken care of in memp.c */
-#if MEM_USE_POOLS_TRY_BIGGER_POOL
- /** Try a bigger pool if this one is empty! */
- if (poolnr < MEMP_POOL_LAST) {
- poolnr++;
- goto again;
- }
-#endif /* MEM_USE_POOLS_TRY_BIGGER_POOL */
- return NULL;
- }
-
- /* save the pool number this element came from */
- element->poolnr = poolnr;
- /* and return a pointer to the memory directly after the struct memp_malloc_helper */
- element++;
-
- return element;
-}
-
-/**
- * Free memory previously allocated by mem_malloc. Loads the pool number
- * and calls memp_free with that pool number to put the element back into
- * its pool
- *
- * @param rmem the memory element to free
- */
-void
-mem_free(void *rmem)
-{
- struct memp_malloc_helper *hmem = (struct memp_malloc_helper*)rmem;
-
- LWIP_ASSERT("rmem != NULL", (rmem != NULL));
- LWIP_ASSERT("rmem == MEM_ALIGN(rmem)", (rmem == LWIP_MEM_ALIGN(rmem)));
-
- /* get the original struct memp_malloc_helper */
- hmem--;
-
- LWIP_ASSERT("hmem != NULL", (hmem != NULL));
- LWIP_ASSERT("hmem == MEM_ALIGN(hmem)", (hmem == LWIP_MEM_ALIGN(hmem)));
- LWIP_ASSERT("hmem->poolnr < MEMP_MAX", (hmem->poolnr < MEMP_MAX));
-
- /* and put it in the pool we saved earlier */
- memp_free(hmem->poolnr, hmem);
-}
-
-#else /* MEM_USE_POOLS */
-/* lwIP replacement for your libc malloc() */
-
-/**
- * The heap is made up as a list of structs of this type.
- * This does not have to be aligned since for getting its size,
- * we only use the macro SIZEOF_STRUCT_MEM, which automatically alignes.
- */
-struct mem {
- /** index (-> ram[next]) of the next struct */
- mem_size_t next;
- /** index (-> ram[next]) of the next struct */
- mem_size_t prev;
- /** 1: this area is used; 0: this area is unused */
- u8_t used;
-};
-
-/** All allocated blocks will be MIN_SIZE bytes big, at least!
- * MIN_SIZE can be overridden to suit your needs. Smaller values save space,
- * larger values could prevent too small blocks to fragment the RAM too much. */
-#ifndef MIN_SIZE
-#define MIN_SIZE 12
-#endif /* MIN_SIZE */
-/* some alignment macros: we define them here for better source code layout */
-#define MIN_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MIN_SIZE)
-#define SIZEOF_STRUCT_MEM LWIP_MEM_ALIGN_SIZE(sizeof(struct mem))
-#define MEM_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MEM_SIZE)
-
-/** the heap. we need one struct mem at the end and some room for alignment */
-static u8_t ram_heap[MEM_SIZE_ALIGNED + (2*SIZEOF_STRUCT_MEM) + MEM_ALIGNMENT];
-/** pointer to the heap (ram_heap): for alignment, ram is now a pointer instead of an array */
-static u8_t *ram;
-/** the last entry, always unused! */
-static struct mem *ram_end;
-/** pointer to the lowest free block, this is used for faster search */
-static struct mem *lfree;
-
-/** concurrent access protection */
-static sys_sem_t mem_sem;
-
-#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
-
-static volatile u8_t mem_free_count;
-
-/* Allow mem_free from other (e.g. interrupt) context */
-#define LWIP_MEM_FREE_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_free)
-#define LWIP_MEM_FREE_PROTECT() SYS_ARCH_PROTECT(lev_free)
-#define LWIP_MEM_FREE_UNPROTECT() SYS_ARCH_UNPROTECT(lev_free)
-#define LWIP_MEM_ALLOC_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_alloc)
-#define LWIP_MEM_ALLOC_PROTECT() SYS_ARCH_PROTECT(lev_alloc)
-#define LWIP_MEM_ALLOC_UNPROTECT() SYS_ARCH_UNPROTECT(lev_alloc)
-
-#else /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
-
-/* Protect the heap only by using a semaphore */
-#define LWIP_MEM_FREE_DECL_PROTECT()
-#define LWIP_MEM_FREE_PROTECT() sys_arch_sem_wait(mem_sem, 0)
-#define LWIP_MEM_FREE_UNPROTECT() sys_sem_signal(mem_sem)
-/* mem_malloc is protected using semaphore AND LWIP_MEM_ALLOC_PROTECT */
-#define LWIP_MEM_ALLOC_DECL_PROTECT()
-#define LWIP_MEM_ALLOC_PROTECT()
-#define LWIP_MEM_ALLOC_UNPROTECT()
-
-#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
-
-
-/**
- * "Plug holes" by combining adjacent empty struct mems.
- * After this function is through, there should not exist
- * one empty struct mem pointing to another empty struct mem.
- *
- * @param mem this points to a struct mem which just has been freed
- * @internal this function is only called by mem_free() and mem_realloc()
- *
- * This assumes access to the heap is protected by the calling function
- * already.
- */
-static void
-plug_holes(struct mem *mem)
-{
- struct mem *nmem;
- struct mem *pmem;
-
- LWIP_ASSERT("plug_holes: mem >= ram", (u8_t *)mem >= ram);
- LWIP_ASSERT("plug_holes: mem < ram_end", (u8_t *)mem < (u8_t *)ram_end);
- LWIP_ASSERT("plug_holes: mem->used == 0", mem->used == 0);
-
- /* plug hole forward */
- LWIP_ASSERT("plug_holes: mem->next <= MEM_SIZE_ALIGNED", mem->next <= MEM_SIZE_ALIGNED);
-
- nmem = (struct mem *)&ram[mem->next];
- if (mem != nmem && nmem->used == 0 && (u8_t *)nmem != (u8_t *)ram_end) {
- /* if mem->next is unused and not end of ram, combine mem and mem->next */
- if (lfree == nmem) {
- lfree = mem;
- }
- mem->next = nmem->next;
- ((struct mem *)&ram[nmem->next])->prev = (u8_t *)mem - ram;
- }
-
- /* plug hole backward */
- pmem = (struct mem *)&ram[mem->prev];
- if (pmem != mem && pmem->used == 0) {
- /* if mem->prev is unused, combine mem and mem->prev */
- if (lfree == mem) {
- lfree = pmem;
- }
- pmem->next = mem->next;
- ((struct mem *)&ram[mem->next])->prev = (u8_t *)pmem - ram;
- }
-}
-
-/**
- * Zero the heap and initialize start, end and lowest-free
- */
-void
-mem_init(void)
-{
- struct mem *mem;
-
- LWIP_ASSERT("Sanity check alignment",
- (SIZEOF_STRUCT_MEM & (MEM_ALIGNMENT-1)) == 0);
-
- /* align the heap */
- ram = LWIP_MEM_ALIGN(ram_heap);
- /* initialize the start of the heap */
- mem = (struct mem *)ram;
- mem->next = MEM_SIZE_ALIGNED;
- mem->prev = 0;
- mem->used = 0;
- /* initialize the end of the heap */
- ram_end = (struct mem *)&ram[MEM_SIZE_ALIGNED];
- ram_end->used = 1;
- ram_end->next = MEM_SIZE_ALIGNED;
- ram_end->prev = MEM_SIZE_ALIGNED;
-
- mem_sem = sys_sem_new(1);
-
- /* initialize the lowest-free pointer to the start of the heap */
- lfree = (struct mem *)ram;
-
- MEM_STATS_AVAIL(avail, MEM_SIZE_ALIGNED);
-}
-
-/**
- * Put a struct mem back on the heap
- *
- * @param rmem is the data portion of a struct mem as returned by a previous
- * call to mem_malloc()
- */
-void
-mem_free(void *rmem)
-{
- struct mem *mem;
- LWIP_MEM_FREE_DECL_PROTECT();
-
- if (rmem == NULL) {
- LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("mem_free(p == NULL) was called.\n"));
- return;
- }
- LWIP_ASSERT("mem_free: sanity check alignment", (((mem_ptr_t)rmem) & (MEM_ALIGNMENT-1)) == 0);
-
- LWIP_ASSERT("mem_free: legal memory", (u8_t *)rmem >= (u8_t *)ram &&
- (u8_t *)rmem < (u8_t *)ram_end);
-
- if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) {
- SYS_ARCH_DECL_PROTECT(lev);
- LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_free: illegal memory\n"));
- /* protect mem stats from concurrent access */
- SYS_ARCH_PROTECT(lev);
- MEM_STATS_INC(illegal);
- SYS_ARCH_UNPROTECT(lev);
- return;
- }
- /* protect the heap from concurrent access */
- LWIP_MEM_FREE_PROTECT();
- /* Get the corresponding struct mem ... */
- mem = (struct mem *)((u8_t *)rmem - SIZEOF_STRUCT_MEM);
- /* ... which has to be in a used state ... */
- LWIP_ASSERT("mem_free: mem->used", mem->used);
- /* ... and is now unused. */
- mem->used = 0;
-
- if (mem < lfree) {
- /* the newly freed struct is now the lowest */
- lfree = mem;
- }
-
- MEM_STATS_DEC_USED(used, mem->next - ((u8_t *)mem - ram));
-
- /* finally, see if prev or next are free also */
- plug_holes(mem);
-#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
- mem_free_count = 1;
-#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
- LWIP_MEM_FREE_UNPROTECT();
-}
-
-/**
- * In contrast to its name, mem_realloc can only shrink memory, not expand it.
- * Since the only use (for now) is in pbuf_realloc (which also can only shrink),
- * this shouldn't be a problem!
- *
- * @param rmem pointer to memory allocated by mem_malloc the is to be shrinked
- * @param newsize required size after shrinking (needs to be smaller than or
- * equal to the previous size)
- * @return for compatibility reasons: is always == rmem, at the moment
- * or NULL if newsize is > old size, in which case rmem is NOT touched
- * or freed!
- */
-void *
-mem_realloc(void *rmem, mem_size_t newsize)
-{
- mem_size_t size;
- mem_size_t ptr, ptr2;
- struct mem *mem, *mem2;
- /* use the FREE_PROTECT here: it protects with sem OR SYS_ARCH_PROTECT */
- LWIP_MEM_FREE_DECL_PROTECT();
-
- /* Expand the size of the allocated memory region so that we can
- adjust for alignment. */
- newsize = LWIP_MEM_ALIGN_SIZE(newsize);
-
- if(newsize < MIN_SIZE_ALIGNED) {
- /* every data block must be at least MIN_SIZE_ALIGNED long */
- newsize = MIN_SIZE_ALIGNED;
- }
-
- if (newsize > MEM_SIZE_ALIGNED) {
- return NULL;
- }
-
- LWIP_ASSERT("mem_realloc: legal memory", (u8_t *)rmem >= (u8_t *)ram &&
- (u8_t *)rmem < (u8_t *)ram_end);
-
- if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) {
- SYS_ARCH_DECL_PROTECT(lev);
- LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_realloc: illegal memory\n"));
- /* protect mem stats from concurrent access */
- SYS_ARCH_PROTECT(lev);
- MEM_STATS_INC(illegal);
- SYS_ARCH_UNPROTECT(lev);
- return rmem;
- }
- /* Get the corresponding struct mem ... */
- mem = (struct mem *)((u8_t *)rmem - SIZEOF_STRUCT_MEM);
- /* ... and its offset pointer */
- ptr = (u8_t *)mem - ram;
-
- size = mem->next - ptr - SIZEOF_STRUCT_MEM;
- LWIP_ASSERT("mem_realloc can only shrink memory", newsize <= size);
- if (newsize > size) {
- /* not supported */
- return NULL;
- }
- if (newsize == size) {
- /* No change in size, simply return */
- return rmem;
- }
-
- /* protect the heap from concurrent access */
- LWIP_MEM_FREE_PROTECT();
-
- MEM_STATS_DEC_USED(used, (size - newsize));
-
- mem2 = (struct mem *)&ram[mem->next];
- if(mem2->used == 0) {
- /* The next struct is unused, we can simply move it at little */
- mem_size_t next;
- /* remember the old next pointer */
- next = mem2->next;
- /* create new struct mem which is moved directly after the shrinked mem */
- ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
- if (lfree == mem2) {
- lfree = (struct mem *)&ram[ptr2];
- }
- mem2 = (struct mem *)&ram[ptr2];
- mem2->used = 0;
- /* restore the next pointer */
- mem2->next = next;
- /* link it back to mem */
- mem2->prev = ptr;
- /* link mem to it */
- mem->next = ptr2;
- /* last thing to restore linked list: as we have moved mem2,
- * let 'mem2->next->prev' point to mem2 again. but only if mem2->next is not
- * the end of the heap */
- if (mem2->next != MEM_SIZE_ALIGNED) {
- ((struct mem *)&ram[mem2->next])->prev = ptr2;
- }
- /* no need to plug holes, we've already done that */
- } else if (newsize + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED <= size) {
- /* Next struct is used but there's room for another struct mem with
- * at least MIN_SIZE_ALIGNED of data.
- * Old size ('size') must be big enough to contain at least 'newsize' plus a struct mem
- * ('SIZEOF_STRUCT_MEM') with some data ('MIN_SIZE_ALIGNED').
- * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty
- * region that couldn't hold data, but when mem->next gets freed,
- * the 2 regions would be combined, resulting in more free memory */
- ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
- mem2 = (struct mem *)&ram[ptr2];
- if (mem2 < lfree) {
- lfree = mem2;
- }
- mem2->used = 0;
- mem2->next = mem->next;
- mem2->prev = ptr;
- mem->next = ptr2;
- if (mem2->next != MEM_SIZE_ALIGNED) {
- ((struct mem *)&ram[mem2->next])->prev = ptr2;
- }
- /* the original mem->next is used, so no need to plug holes! */
- }
- /* else {
- next struct mem is used but size between mem and mem2 is not big enough
- to create another struct mem
- -> don't do anyhting.
- -> the remaining space stays unused since it is too small
- } */
-#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
- mem_free_count = 1;
-#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
- LWIP_MEM_FREE_UNPROTECT();
- return rmem;
-}
-
-/**
- * Adam's mem_malloc() plus solution for bug #17922
- * Allocate a block of memory with a minimum of 'size' bytes.
- *
- * @param size is the minimum size of the requested block in bytes.
- * @return pointer to allocated memory or NULL if no free memory was found.
- *
- * Note that the returned value will always be aligned (as defined by MEM_ALIGNMENT).
- */
-void *
-mem_malloc(mem_size_t size)
-{
- mem_size_t ptr, ptr2;
- struct mem *mem, *mem2;
-#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
- u8_t local_mem_free_count = 0;
-#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
- LWIP_MEM_ALLOC_DECL_PROTECT();
-
- if (size == 0) {
- return NULL;
- }
-
- /* Expand the size of the allocated memory region so that we can
- adjust for alignment. */
- size = LWIP_MEM_ALIGN_SIZE(size);
-
- if(size < MIN_SIZE_ALIGNED) {
- /* every data block must be at least MIN_SIZE_ALIGNED long */
- size = MIN_SIZE_ALIGNED;
- }
-
- if (size > MEM_SIZE_ALIGNED) {
- return NULL;
- }
-
- /* protect the heap from concurrent access */
- sys_arch_sem_wait(mem_sem, 0);
- LWIP_MEM_ALLOC_PROTECT();
-#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
- /* run as long as a mem_free disturbed mem_malloc */
- do {
- local_mem_free_count = 0;
-#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
-
- /* Scan through the heap searching for a free block that is big enough,
- * beginning with the lowest free block.
- */
- for (ptr = (u8_t *)lfree - ram; ptr < MEM_SIZE_ALIGNED - size;
- ptr = ((struct mem *)&ram[ptr])->next) {
- mem = (struct mem *)&ram[ptr];
-#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
- mem_free_count = 0;
- LWIP_MEM_ALLOC_UNPROTECT();
- /* allow mem_free to run */
- LWIP_MEM_ALLOC_PROTECT();
- if (mem_free_count != 0) {
- local_mem_free_count = mem_free_count;
- }
- mem_free_count = 0;
-#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
-
- if ((!mem->used) &&
- (mem->next - (ptr + SIZEOF_STRUCT_MEM)) >= size) {
- /* mem is not used and at least perfect fit is possible:
- * mem->next - (ptr + SIZEOF_STRUCT_MEM) gives us the 'user data size' of mem */
-
- if (mem->next - (ptr + SIZEOF_STRUCT_MEM) >= (size + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED)) {
- /* (in addition to the above, we test if another struct mem (SIZEOF_STRUCT_MEM) containing
- * at least MIN_SIZE_ALIGNED of data also fits in the 'user data space' of 'mem')
- * -> split large block, create empty remainder,
- * remainder must be large enough to contain MIN_SIZE_ALIGNED data: if
- * mem->next - (ptr + (2*SIZEOF_STRUCT_MEM)) == size,
- * struct mem would fit in but no data between mem2 and mem2->next
- * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty
- * region that couldn't hold data, but when mem->next gets freed,
- * the 2 regions would be combined, resulting in more free memory
- */
- ptr2 = ptr + SIZEOF_STRUCT_MEM + size;
- /* create mem2 struct */
- mem2 = (struct mem *)&ram[ptr2];
- mem2->used = 0;
- mem2->next = mem->next;
- mem2->prev = ptr;
- /* and insert it between mem and mem->next */
- mem->next = ptr2;
- mem->used = 1;
-
- if (mem2->next != MEM_SIZE_ALIGNED) {
- ((struct mem *)&ram[mem2->next])->prev = ptr2;
- }
- MEM_STATS_INC_USED(used, (size + SIZEOF_STRUCT_MEM));
- } else {
- /* (a mem2 struct does no fit into the user data space of mem and mem->next will always
- * be used at this point: if not we have 2 unused structs in a row, plug_holes should have
- * take care of this).
- * -> near fit or excact fit: do not split, no mem2 creation
- * also can't move mem->next directly behind mem, since mem->next
- * will always be used at this point!
- */
- mem->used = 1;
- MEM_STATS_INC_USED(used, mem->next - ((u8_t *)mem - ram));
- }
-
- if (mem == lfree) {
- /* Find next free block after mem and update lowest free pointer */
- while (lfree->used && lfree != ram_end) {
- LWIP_MEM_ALLOC_UNPROTECT();
- /* prevent high interrupt latency... */
- LWIP_MEM_ALLOC_PROTECT();
- lfree = (struct mem *)&ram[lfree->next];
- }
- LWIP_ASSERT("mem_malloc: !lfree->used", ((lfree == ram_end) || (!lfree->used)));
- }
- LWIP_MEM_ALLOC_UNPROTECT();
- sys_sem_signal(mem_sem);
- LWIP_ASSERT("mem_malloc: allocated memory not above ram_end.",
- (mem_ptr_t)mem + SIZEOF_STRUCT_MEM + size <= (mem_ptr_t)ram_end);
- LWIP_ASSERT("mem_malloc: allocated memory properly aligned.",
- ((mem_ptr_t)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0);
- LWIP_ASSERT("mem_malloc: sanity check alignment",
- (((mem_ptr_t)mem) & (MEM_ALIGNMENT-1)) == 0);
-
- return (u8_t *)mem + SIZEOF_STRUCT_MEM;
- }
- }
-#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
- /* if we got interrupted by a mem_free, try again */
- } while(local_mem_free_count != 0);
-#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
- LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mem_malloc: could not allocate %"S16_F" bytes\n", (s16_t)size));
- MEM_STATS_INC(err);
- LWIP_MEM_ALLOC_UNPROTECT();
- sys_sem_signal(mem_sem);
- return NULL;
-}
-
-#endif /* MEM_USE_POOLS */
-/**
- * Contiguously allocates enough space for count objects that are size bytes
- * of memory each and returns a pointer to the allocated memory.
- *
- * The allocated memory is filled with bytes of value zero.
- *
- * @param count number of objects to allocate
- * @param size size of the objects to allocate
- * @return pointer to allocated memory / NULL pointer if there is an error
- */
-void *mem_calloc(mem_size_t count, mem_size_t size)
-{
- void *p;
-
- /* allocate 'count' objects of size 'size' */
- p = mem_malloc(count * size);
- if (p) {
- /* zero the memory */
- memset(p, 0, count * size);
- }
- return p;
-}
-
-#endif /* !MEM_LIBC_MALLOC */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/memp.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/memp.c
deleted file mode 100644
index bd2fd26..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/memp.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Dynamic pool memory manager
- *
- * lwIP has dedicated pools for many structures (netconn, protocol control blocks,
- * packet buffers, ...). All these pools are managed here.
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#include "lwip/memp.h"
-#include "lwip/pbuf.h"
-#include "lwip/udp.h"
-#include "lwip/raw.h"
-#include "lwip/tcp.h"
-#include "lwip/igmp.h"
-#include "lwip/api.h"
-#include "lwip/api_msg.h"
-#include "lwip/tcpip.h"
-#include "lwip/sys.h"
-#include "lwip/stats.h"
-#include "netif/etharp.h"
-#include "lwip/ip_frag.h"
-
-#include <string.h>
-
-#if !MEMP_MEM_MALLOC /* don't build if not configured for use in lwipopts.h */
-
-struct memp {
- struct memp *next;
-#if MEMP_OVERFLOW_CHECK
- const char *file;
- int line;
-#endif /* MEMP_OVERFLOW_CHECK */
-};
-
-#if MEMP_OVERFLOW_CHECK
-/* if MEMP_OVERFLOW_CHECK is turned on, we reserve some bytes at the beginning
- * and at the end of each element, initialize them as 0xcd and check
- * them later. */
-/* If MEMP_OVERFLOW_CHECK is >= 2, on every call to memp_malloc or memp_free,
- * every single element in each pool is checked!
- * This is VERY SLOW but also very helpful. */
-/* MEMP_SANITY_REGION_BEFORE and MEMP_SANITY_REGION_AFTER can be overridden in
- * lwipopts.h to change the amount reserved for checking. */
-#ifndef MEMP_SANITY_REGION_BEFORE
-#define MEMP_SANITY_REGION_BEFORE 16
-#endif /* MEMP_SANITY_REGION_BEFORE*/
-#if MEMP_SANITY_REGION_BEFORE > 0
-#define MEMP_SANITY_REGION_BEFORE_ALIGNED LWIP_MEM_ALIGN_SIZE(MEMP_SANITY_REGION_BEFORE)
-#else
-#define MEMP_SANITY_REGION_BEFORE_ALIGNED 0
-#endif /* MEMP_SANITY_REGION_BEFORE*/
-#ifndef MEMP_SANITY_REGION_AFTER
-#define MEMP_SANITY_REGION_AFTER 16
-#endif /* MEMP_SANITY_REGION_AFTER*/
-#if MEMP_SANITY_REGION_AFTER > 0
-#define MEMP_SANITY_REGION_AFTER_ALIGNED LWIP_MEM_ALIGN_SIZE(MEMP_SANITY_REGION_AFTER)
-#else
-#define MEMP_SANITY_REGION_AFTER_ALIGNED 0
-#endif /* MEMP_SANITY_REGION_AFTER*/
-
-/* MEMP_SIZE: save space for struct memp and for sanity check */
-#define MEMP_SIZE (LWIP_MEM_ALIGN_SIZE(sizeof(struct memp)) + MEMP_SANITY_REGION_BEFORE_ALIGNED)
-#define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x) + MEMP_SANITY_REGION_AFTER_ALIGNED)
-
-#else /* MEMP_OVERFLOW_CHECK */
-
-/* No sanity checks
- * We don't need to preserve the struct memp while not allocated, so we
- * can save a little space and set MEMP_SIZE to 0.
- */
-#define MEMP_SIZE 0
-#define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x))
-
-#endif /* MEMP_OVERFLOW_CHECK */
-
-/** This array holds the first free element of each pool.
- * Elements form a linked list. */
-static struct memp *memp_tab[MEMP_MAX];
-
-#else /* MEMP_MEM_MALLOC */
-
-#define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x))
-
-#endif /* MEMP_MEM_MALLOC */
-
-/** This array holds the element sizes of each pool. */
-#if !MEM_USE_POOLS && !MEMP_MEM_MALLOC
-static
-#endif
-const u16_t memp_sizes[MEMP_MAX] = {
-#define LWIP_MEMPOOL(name,num,size,desc) LWIP_MEM_ALIGN_SIZE(size),
-#include "lwip/memp_std.h"
-};
-
-#if !MEMP_MEM_MALLOC /* don't build if not configured for use in lwipopts.h */
-
-/** This array holds the number of elements in each pool. */
-static const u16_t memp_num[MEMP_MAX] = {
-#define LWIP_MEMPOOL(name,num,size,desc) (num),
-#include "lwip/memp_std.h"
-};
-
-/** This array holds a textual description of each pool. */
-#ifdef LWIP_DEBUG
-static const char *memp_desc[MEMP_MAX] = {
-#define LWIP_MEMPOOL(name,num,size,desc) (desc),
-#include "lwip/memp_std.h"
-};
-#endif /* LWIP_DEBUG */
-
-/** This is the actual memory used by the pools. */
-static u8_t memp_memory[MEM_ALIGNMENT - 1
-#define LWIP_MEMPOOL(name,num,size,desc) + ( (num) * (MEMP_SIZE + MEMP_ALIGN_SIZE(size) ) )
-#include "lwip/memp_std.h"
-];
-
-#if MEMP_SANITY_CHECK
-/**
- * Check that memp-lists don't form a circle
- */
-static int
-memp_sanity(void)
-{
- s16_t i, c;
- struct memp *m, *n;
-
- for (i = 0; i < MEMP_MAX; i++) {
- for (m = memp_tab[i]; m != NULL; m = m->next) {
- c = 1;
- for (n = memp_tab[i]; n != NULL; n = n->next) {
- if (n == m && --c < 0) {
- return 0;
- }
- }
- }
- }
- return 1;
-}
-#endif /* MEMP_SANITY_CHECK*/
-#if MEMP_OVERFLOW_CHECK
-/**
- * Check if a memp element was victim of an overflow
- * (e.g. the restricted area after it has been altered)
- *
- * @param p the memp element to check
- * @param memp_size the element size of the pool p comes from
- */
-static void
-memp_overflow_check_element(struct memp *p, u16_t memp_size)
-{
- u16_t k;
- u8_t *m;
-#if MEMP_SANITY_REGION_BEFORE_ALIGNED > 0
- m = (u8_t*)p + MEMP_SIZE - MEMP_SANITY_REGION_BEFORE_ALIGNED;
- for (k = 0; k < MEMP_SANITY_REGION_BEFORE_ALIGNED; k++) {
- if (m[k] != 0xcd) {
- LWIP_ASSERT("detected memp underflow!", 0);
- }
- }
-#endif
-#if MEMP_SANITY_REGION_AFTER_ALIGNED > 0
- m = (u8_t*)p + MEMP_SIZE + memp_size;
- for (k = 0; k < MEMP_SANITY_REGION_AFTER_ALIGNED; k++) {
- if (m[k] != 0xcd) {
- LWIP_ASSERT("detected memp overflow!", 0);
- }
- }
-#endif
-}
-
-/**
- * Do an overflow check for all elements in every pool.
- *
- * @see memp_overflow_check_element for a description of the check
- */
-static void
-memp_overflow_check_all(void)
-{
- u16_t i, j;
- struct memp *p;
-
- p = LWIP_MEM_ALIGN(memp_memory);
- for (i = 0; i < MEMP_MAX; ++i) {
- p = p;
- for (j = 0; j < memp_num[i]; ++j) {
- memp_overflow_check_element(p, memp_sizes[i]);
- p = (struct memp*)((u8_t*)p + MEMP_SIZE + memp_sizes[i] + MEMP_SANITY_REGION_AFTER_ALIGNED);
- }
- }
-}
-
-/**
- * Initialize the restricted areas of all memp elements in every pool.
- */
-static void
-memp_overflow_init(void)
-{
- u16_t i, j;
- struct memp *p;
- u8_t *m;
-
- p = LWIP_MEM_ALIGN(memp_memory);
- for (i = 0; i < MEMP_MAX; ++i) {
- p = p;
- for (j = 0; j < memp_num[i]; ++j) {
-#if MEMP_SANITY_REGION_BEFORE_ALIGNED > 0
- m = (u8_t*)p + MEMP_SIZE - MEMP_SANITY_REGION_BEFORE_ALIGNED;
- memset(m, 0xcd, MEMP_SANITY_REGION_BEFORE_ALIGNED);
-#endif
-#if MEMP_SANITY_REGION_AFTER_ALIGNED > 0
- m = (u8_t*)p + MEMP_SIZE + memp_sizes[i];
- memset(m, 0xcd, MEMP_SANITY_REGION_AFTER_ALIGNED);
-#endif
- p = (struct memp*)((u8_t*)p + MEMP_SIZE + memp_sizes[i] + MEMP_SANITY_REGION_AFTER_ALIGNED);
- }
- }
-}
-#endif /* MEMP_OVERFLOW_CHECK */
-
-/**
- * Initialize this module.
- *
- * Carves out memp_memory into linked lists for each pool-type.
- */
-void
-memp_init(void)
-{
- struct memp *memp;
- u16_t i, j;
-
- for (i = 0; i < MEMP_MAX; ++i) {
- MEMP_STATS_AVAIL(used, i, 0);
- MEMP_STATS_AVAIL(max, i, 0);
- MEMP_STATS_AVAIL(err, i, 0);
- MEMP_STATS_AVAIL(avail, i, memp_num[i]);
- }
-
- memp = LWIP_MEM_ALIGN(memp_memory);
- /* for every pool: */
- for (i = 0; i < MEMP_MAX; ++i) {
- memp_tab[i] = NULL;
- /* create a linked list of memp elements */
- for (j = 0; j < memp_num[i]; ++j) {
- memp->next = memp_tab[i];
- memp_tab[i] = memp;
- memp = (struct memp *)((u8_t *)memp + MEMP_SIZE + memp_sizes[i]
-#if MEMP_OVERFLOW_CHECK
- + MEMP_SANITY_REGION_AFTER_ALIGNED
-#endif
- );
- }
- }
-#if MEMP_OVERFLOW_CHECK
- memp_overflow_init();
- /* check everything a first time to see if it worked */
- memp_overflow_check_all();
-#endif /* MEMP_OVERFLOW_CHECK */
-}
-
-/**
- * Get an element from a specific pool.
- *
- * @param type the pool to get an element from
- *
- * the debug version has two more parameters:
- * @param file file name calling this function
- * @param line number of line where this function is called
- *
- * @return a pointer to the allocated memory or a NULL pointer on error
- */
-void *
-#if !MEMP_OVERFLOW_CHECK
-memp_malloc(memp_t type)
-#else
-memp_malloc_fn(memp_t type, const char* file, const int line)
-#endif
-{
- struct memp *memp;
- SYS_ARCH_DECL_PROTECT(old_level);
-
- LWIP_ERROR("memp_malloc: type < MEMP_MAX", (type < MEMP_MAX), return NULL;);
-
- SYS_ARCH_PROTECT(old_level);
-#if MEMP_OVERFLOW_CHECK >= 2
- memp_overflow_check_all();
-#endif /* MEMP_OVERFLOW_CHECK >= 2 */
-
- memp = memp_tab[type];
-
- if (memp != NULL) {
- memp_tab[type] = memp->next;
-#if MEMP_OVERFLOW_CHECK
- memp->next = NULL;
- memp->file = file;
- memp->line = line;
-#endif /* MEMP_OVERFLOW_CHECK */
- MEMP_STATS_INC_USED(used, type);
- LWIP_ASSERT("memp_malloc: memp properly aligned",
- ((mem_ptr_t)memp % MEM_ALIGNMENT) == 0);
- memp = (struct memp*)((u8_t*)memp + MEMP_SIZE);
- } else {
- LWIP_DEBUGF(MEMP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("memp_malloc: out of memory in pool %s\n", memp_desc[type]));
- MEMP_STATS_INC(err, type);
- }
-
- SYS_ARCH_UNPROTECT(old_level);
-
- return memp;
-}
-
-/**
- * Put an element back into its pool.
- *
- * @param type the pool where to put mem
- * @param mem the memp element to free
- */
-void
-memp_free(memp_t type, void *mem)
-{
- struct memp *memp;
- SYS_ARCH_DECL_PROTECT(old_level);
-
- if (mem == NULL) {
- return;
- }
- LWIP_ASSERT("memp_free: mem properly aligned",
- ((mem_ptr_t)mem % MEM_ALIGNMENT) == 0);
-
- memp = (struct memp *)((u8_t*)mem - MEMP_SIZE);
-
- SYS_ARCH_PROTECT(old_level);
-#if MEMP_OVERFLOW_CHECK
-#if MEMP_OVERFLOW_CHECK >= 2
- memp_overflow_check_all();
-#else
- memp_overflow_check_element(memp, memp_sizes[type]);
-#endif /* MEMP_OVERFLOW_CHECK >= 2 */
-#endif /* MEMP_OVERFLOW_CHECK */
-
- MEMP_STATS_DEC(used, type);
-
- memp->next = memp_tab[type];
- memp_tab[type] = memp;
-
-#if MEMP_SANITY_CHECK
- LWIP_ASSERT("memp sanity", memp_sanity());
-#endif /* MEMP_SANITY_CHECK */
-
- SYS_ARCH_UNPROTECT(old_level);
-}
-
-#endif /* MEMP_MEM_MALLOC */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/netif.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/netif.c
deleted file mode 100644
index cf3815c..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/netif.c
+++ /dev/null
@@ -1,683 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * lwIP network interface abstraction
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#include "lwip/def.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/tcp.h"
-#include "lwip/snmp.h"
-#include "lwip/igmp.h"
-#include "netif/etharp.h"
-#if ENABLE_LOOPBACK
-#include "lwip/sys.h"
-#if LWIP_NETIF_LOOPBACK_MULTITHREADING
-#include "lwip/tcpip.h"
-#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */
-#endif /* ENABLE_LOOPBACK */
-
-#if LWIP_AUTOIP
-#include "lwip/autoip.h"
-#endif /* LWIP_AUTOIP */
-#if LWIP_DHCP
-#include "lwip/dhcp.h"
-#endif /* LWIP_DHCP */
-
-#if LWIP_NETIF_STATUS_CALLBACK
-#define NETIF_STATUS_CALLBACK(n) { if (n->status_callback) (n->status_callback)(n); }
-#else
-#define NETIF_STATUS_CALLBACK(n) { /* NOP */ }
-#endif /* LWIP_NETIF_STATUS_CALLBACK */
-
-#if LWIP_NETIF_LINK_CALLBACK
-#define NETIF_LINK_CALLBACK(n) { if (n->link_callback) (n->link_callback)(n); }
-#else
-#define NETIF_LINK_CALLBACK(n) { /* NOP */ }
-#endif /* LWIP_NETIF_LINK_CALLBACK */
-
-struct netif *netif_list;
-struct netif *netif_default;
-
-/**
- * Add a network interface to the list of lwIP netifs.
- *
- * @param netif a pre-allocated netif structure
- * @param ipaddr IP address for the new netif
- * @param netmask network mask for the new netif
- * @param gw default gateway IP address for the new netif
- * @param state opaque data passed to the new netif
- * @param init callback function that initializes the interface
- * @param input callback function that is called to pass
- * ingress packets up in the protocol layer stack.
- *
- * @return netif, or NULL if failed.
- */
-struct netif *
-netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask,
- struct ip_addr *gw,
- void *state,
- err_t (* init)(struct netif *netif),
- err_t (* input)(struct pbuf *p, struct netif *netif))
-{
- static u8_t netifnum = 0;
-
- /* reset new interface configuration state */
- netif->ip_addr.addr = 0;
- netif->netmask.addr = 0;
- netif->gw.addr = 0;
- netif->flags = 0;
-#if LWIP_DHCP
- /* netif not under DHCP control by default */
- netif->dhcp = NULL;
-#endif /* LWIP_DHCP */
-#if LWIP_AUTOIP
- /* netif not under AutoIP control by default */
- netif->autoip = NULL;
-#endif /* LWIP_AUTOIP */
-#if LWIP_NETIF_STATUS_CALLBACK
- netif->status_callback = NULL;
-#endif /* LWIP_NETIF_STATUS_CALLBACK */
-#if LWIP_NETIF_LINK_CALLBACK
- netif->link_callback = NULL;
-#endif /* LWIP_NETIF_LINK_CALLBACK */
-#if LWIP_IGMP
- netif->igmp_mac_filter = NULL;
-#endif /* LWIP_IGMP */
-#if ENABLE_LOOPBACK
- netif->loop_first = NULL;
- netif->loop_last = NULL;
-#endif /* ENABLE_LOOPBACK */
-
- /* remember netif specific state information data */
- netif->state = state;
- netif->num = netifnum++;
- netif->input = input;
-#if LWIP_NETIF_HWADDRHINT
- netif->addr_hint = NULL;
-#endif /* LWIP_NETIF_HWADDRHINT*/
-#if ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS
- netif->loop_cnt_current = 0;
-#endif /* ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS */
-
- netif_set_addr(netif, ipaddr, netmask, gw);
-
- /* call user specified initialization function for netif */
- if (init(netif) != ERR_OK) {
- return NULL;
- }
-
- /* add this netif to the list */
- netif->next = netif_list;
- netif_list = netif;
- snmp_inc_iflist();
-
-#if LWIP_IGMP
- /* start IGMP processing */
- if (netif->flags & NETIF_FLAG_IGMP) {
- igmp_start( netif);
- }
-#endif /* LWIP_IGMP */
-
- LWIP_DEBUGF(NETIF_DEBUG, ("netif: added interface %c%c IP addr ",
- netif->name[0], netif->name[1]));
- ip_addr_debug_print(NETIF_DEBUG, ipaddr);
- LWIP_DEBUGF(NETIF_DEBUG, (" netmask "));
- ip_addr_debug_print(NETIF_DEBUG, netmask);
- LWIP_DEBUGF(NETIF_DEBUG, (" gw "));
- ip_addr_debug_print(NETIF_DEBUG, gw);
- LWIP_DEBUGF(NETIF_DEBUG, ("\n"));
- return netif;
-}
-
-/**
- * Change IP address configuration for a network interface (including netmask
- * and default gateway).
- *
- * @param netif the network interface to change
- * @param ipaddr the new IP address
- * @param netmask the new netmask
- * @param gw the new default gateway
- */
-void
-netif_set_addr(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask,
- struct ip_addr *gw)
-{
- netif_set_ipaddr(netif, ipaddr);
- netif_set_netmask(netif, netmask);
- netif_set_gw(netif, gw);
-}
-
-/**
- * Remove a network interface from the list of lwIP netifs.
- *
- * @param netif the network interface to remove
- */
-void netif_remove(struct netif * netif)
-{
- if ( netif == NULL ) return;
-
-#if LWIP_IGMP
- /* stop IGMP processing */
- if (netif->flags & NETIF_FLAG_IGMP) {
- igmp_stop( netif);
- }
-#endif /* LWIP_IGMP */
-
- snmp_delete_ipaddridx_tree(netif);
-
- /* is it the first netif? */
- if (netif_list == netif) {
- netif_list = netif->next;
- snmp_dec_iflist();
- }
- else {
- /* look for netif further down the list */
- struct netif * tmpNetif;
- for (tmpNetif = netif_list; tmpNetif != NULL; tmpNetif = tmpNetif->next) {
- if (tmpNetif->next == netif) {
- tmpNetif->next = netif->next;
- snmp_dec_iflist();
- break;
- }
- }
- if (tmpNetif == NULL)
- return; /* we didn't find any netif today */
- }
- /* this netif is default? */
- if (netif_default == netif)
- /* reset default netif */
- netif_set_default(NULL);
- LWIP_DEBUGF( NETIF_DEBUG, ("netif_remove: removed netif\n") );
-}
-
-/**
- * Find a network interface by searching for its name
- *
- * @param name the name of the netif (like netif->name) plus concatenated number
- * in ascii representation (e.g. 'en0')
- */
-struct netif *
-netif_find(char *name)
-{
- struct netif *netif;
- u8_t num;
-
- if (name == NULL) {
- return NULL;
- }
-
- num = name[2] - '0';
-
- for(netif = netif_list; netif != NULL; netif = netif->next) {
- if (num == netif->num &&
- name[0] == netif->name[0] &&
- name[1] == netif->name[1]) {
- LWIP_DEBUGF(NETIF_DEBUG, ("netif_find: found %c%c\n", name[0], name[1]));
- return netif;
- }
- }
- LWIP_DEBUGF(NETIF_DEBUG, ("netif_find: didn't find %c%c\n", name[0], name[1]));
- return NULL;
-}
-
-/**
- * Change the IP address of a network interface
- *
- * @param netif the network interface to change
- * @param ipaddr the new IP address
- *
- * @note call netif_set_addr() if you also want to change netmask and
- * default gateway
- */
-void
-netif_set_ipaddr(struct netif *netif, struct ip_addr *ipaddr)
-{
- /* TODO: Handling of obsolete pcbs */
- /* See: http://mail.gnu.org/archive/html/lwip-users/2003-03/msg00118.html */
-#if LWIP_TCP
- struct tcp_pcb *pcb;
- struct tcp_pcb_listen *lpcb;
-
- /* address is actually being changed? */
- if ((ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)
- {
- /* extern struct tcp_pcb *tcp_active_pcbs; defined by tcp.h */
- LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: netif address being changed\n"));
- pcb = tcp_active_pcbs;
- while (pcb != NULL) {
- /* PCB bound to current local interface address? */
- if (ip_addr_cmp(&(pcb->local_ip), &(netif->ip_addr))) {
- /* this connection must be aborted */
- struct tcp_pcb *next = pcb->next;
- LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: aborting TCP pcb %p\n", (void *)pcb));
- tcp_abort(pcb);
- pcb = next;
- } else {
- pcb = pcb->next;
- }
- }
- for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
- /* PCB bound to current local interface address? */
- if ((!(ip_addr_isany(&(lpcb->local_ip)))) &&
- (ip_addr_cmp(&(lpcb->local_ip), &(netif->ip_addr)))) {
- /* The PCB is listening to the old ipaddr and
- * is set to listen to the new one instead */
- ip_addr_set(&(lpcb->local_ip), ipaddr);
- }
- }
- }
-#endif
- snmp_delete_ipaddridx_tree(netif);
- snmp_delete_iprteidx_tree(0,netif);
- /* set new IP address to netif */
- ip_addr_set(&(netif->ip_addr), ipaddr);
- snmp_insert_ipaddridx_tree(netif);
- snmp_insert_iprteidx_tree(0,netif);
-
- LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("netif: IP address of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
- netif->name[0], netif->name[1],
- ip4_addr1(&netif->ip_addr),
- ip4_addr2(&netif->ip_addr),
- ip4_addr3(&netif->ip_addr),
- ip4_addr4(&netif->ip_addr)));
-}
-
-/**
- * Change the default gateway for a network interface
- *
- * @param netif the network interface to change
- * @param gw the new default gateway
- *
- * @note call netif_set_addr() if you also want to change ip address and netmask
- */
-void
-netif_set_gw(struct netif *netif, struct ip_addr *gw)
-{
- ip_addr_set(&(netif->gw), gw);
- LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("netif: GW address of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
- netif->name[0], netif->name[1],
- ip4_addr1(&netif->gw),
- ip4_addr2(&netif->gw),
- ip4_addr3(&netif->gw),
- ip4_addr4(&netif->gw)));
-}
-
-/**
- * Change the netmask of a network interface
- *
- * @param netif the network interface to change
- * @param netmask the new netmask
- *
- * @note call netif_set_addr() if you also want to change ip address and
- * default gateway
- */
-void
-netif_set_netmask(struct netif *netif, struct ip_addr *netmask)
-{
- snmp_delete_iprteidx_tree(0, netif);
- /* set new netmask to netif */
- ip_addr_set(&(netif->netmask), netmask);
- snmp_insert_iprteidx_tree(0, netif);
- LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("netif: netmask of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
- netif->name[0], netif->name[1],
- ip4_addr1(&netif->netmask),
- ip4_addr2(&netif->netmask),
- ip4_addr3(&netif->netmask),
- ip4_addr4(&netif->netmask)));
-}
-
-/**
- * Set a network interface as the default network interface
- * (used to output all packets for which no specific route is found)
- *
- * @param netif the default network interface
- */
-void
-netif_set_default(struct netif *netif)
-{
- if (netif == NULL)
- {
- /* remove default route */
- snmp_delete_iprteidx_tree(1, netif);
- }
- else
- {
- /* install default route */
- snmp_insert_iprteidx_tree(1, netif);
- }
- netif_default = netif;
- LWIP_DEBUGF(NETIF_DEBUG, ("netif: setting default interface %c%c\n",
- netif ? netif->name[0] : '\'', netif ? netif->name[1] : '\''));
-}
-
-/**
- * Bring an interface up, available for processing
- * traffic.
- *
- * @note: Enabling DHCP on a down interface will make it come
- * up once configured.
- *
- * @see dhcp_start()
- */
-void netif_set_up(struct netif *netif)
-{
- if ( !(netif->flags & NETIF_FLAG_UP )) {
- netif->flags |= NETIF_FLAG_UP;
-
-#if LWIP_SNMP
- snmp_get_sysuptime(&netif->ts);
-#endif /* LWIP_SNMP */
-
- NETIF_LINK_CALLBACK(netif);
- NETIF_STATUS_CALLBACK(netif);
-
-#if LWIP_ARP
- /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */
- if (netif->flags & NETIF_FLAG_ETHARP) {
- etharp_gratuitous(netif);
- }
-#endif /* LWIP_ARP */
-
-#if LWIP_IGMP
- /* resend IGMP memberships */
- if (netif->flags & NETIF_FLAG_IGMP) {
- igmp_report_groups( netif);
- }
-#endif /* LWIP_IGMP */
- }
-}
-
-/**
- * Bring an interface down, disabling any traffic processing.
- *
- * @note: Enabling DHCP on a down interface will make it come
- * up once configured.
- *
- * @see dhcp_start()
- */
-void netif_set_down(struct netif *netif)
-{
- if ( netif->flags & NETIF_FLAG_UP )
- {
- netif->flags &= ~NETIF_FLAG_UP;
-#if LWIP_SNMP
- snmp_get_sysuptime(&netif->ts);
-#endif
-
- NETIF_LINK_CALLBACK(netif);
- NETIF_STATUS_CALLBACK(netif);
- }
-}
-
-/**
- * Ask if an interface is up
- */
-u8_t netif_is_up(struct netif *netif)
-{
- return (netif->flags & NETIF_FLAG_UP)?1:0;
-}
-
-#if LWIP_NETIF_STATUS_CALLBACK
-/**
- * Set callback to be called when interface is brought up/down
- */
-void netif_set_status_callback(struct netif *netif, void (* status_callback)(struct netif *netif ))
-{
- if ( netif )
- netif->status_callback = status_callback;
-}
-#endif /* LWIP_NETIF_STATUS_CALLBACK */
-
-#if LWIP_NETIF_LINK_CALLBACK
-/**
- * Called by a driver when its link goes up
- */
-void netif_set_link_up(struct netif *netif )
-{
- netif->flags |= NETIF_FLAG_LINK_UP;
-
-#if LWIP_DHCP
- if (netif->dhcp) {
- dhcp_network_changed(netif);
- }
-#endif /* LWIP_DHCP */
-
-#if LWIP_AUTOIP
- if (netif->autoip) {
- autoip_network_changed(netif);
- }
-#endif /* LWIP_AUTOIP */
-
- if (netif->flags & NETIF_FLAG_UP) {
-#if LWIP_ARP
- /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */
- if (netif->flags & NETIF_FLAG_ETHARP) {
- etharp_gratuitous(netif);
- }
-#endif /* LWIP_ARP */
-
-#if LWIP_IGMP
- /* resend IGMP memberships */
- if (netif->flags & NETIF_FLAG_IGMP) {
- igmp_report_groups( netif);
- }
-#endif /* LWIP_IGMP */
- }
- NETIF_LINK_CALLBACK(netif);
-}
-
-/**
- * Called by a driver when its link goes down
- */
-void netif_set_link_down(struct netif *netif )
-{
- netif->flags &= ~NETIF_FLAG_LINK_UP;
- NETIF_LINK_CALLBACK(netif);
-}
-
-/**
- * Ask if a link is up
- */
-u8_t netif_is_link_up(struct netif *netif)
-{
- return (netif->flags & NETIF_FLAG_LINK_UP) ? 1 : 0;
-}
-
-/**
- * Set callback to be called when link is brought up/down
- */
-void netif_set_link_callback(struct netif *netif, void (* link_callback)(struct netif *netif ))
-{
- if (netif) {
- netif->link_callback = link_callback;
- }
-}
-#endif /* LWIP_NETIF_LINK_CALLBACK */
-
-#if ENABLE_LOOPBACK
-/**
- * Send an IP packet to be received on the same netif (loopif-like).
- * The pbuf is simply copied and handed back to netif->input.
- * In multithreaded mode, this is done directly since netif->input must put
- * the packet on a queue.
- * In callback mode, the packet is put on an internal queue and is fed to
- * netif->input by netif_poll().
- *
- * @param netif the lwip network interface structure
- * @param p the (IP) packet to 'send'
- * @param ipaddr the ip address to send the packet to (not used)
- * @return ERR_OK if the packet has been sent
- * ERR_MEM if the pbuf used to copy the packet couldn't be allocated
- */
-err_t
-netif_loop_output(struct netif *netif, struct pbuf *p,
- struct ip_addr *ipaddr)
-{
- struct pbuf *r;
- err_t err;
- struct pbuf *last;
-#if LWIP_LOOPBACK_MAX_PBUFS
- u8_t clen = 0;
-#endif /* LWIP_LOOPBACK_MAX_PBUFS */
- SYS_ARCH_DECL_PROTECT(lev);
- LWIP_UNUSED_ARG(ipaddr);
-
- /* Allocate a new pbuf */
- r = pbuf_alloc(PBUF_LINK, p->tot_len, PBUF_RAM);
- if (r == NULL) {
- return ERR_MEM;
- }
-#if LWIP_LOOPBACK_MAX_PBUFS
- clen = pbuf_clen(r);
- /* check for overflow or too many pbuf on queue */
- if(((netif->loop_cnt_current + clen) < netif->loop_cnt_current) ||
- ((netif->loop_cnt_current + clen) > LWIP_LOOPBACK_MAX_PBUFS)) {
- pbuf_free(r);
- r = NULL;
- return ERR_MEM;
- }
- netif->loop_cnt_current += clen;
-#endif /* LWIP_LOOPBACK_MAX_PBUFS */
-
- /* Copy the whole pbuf queue p into the single pbuf r */
- if ((err = pbuf_copy(r, p)) != ERR_OK) {
- pbuf_free(r);
- r = NULL;
- return err;
- }
-
- /* Put the packet on a linked list which gets emptied through calling
- netif_poll(). */
-
- /* let last point to the last pbuf in chain r */
- for (last = r; last->next != NULL; last = last->next);
-
- SYS_ARCH_PROTECT(lev);
- if(netif->loop_first != NULL) {
- LWIP_ASSERT("if first != NULL, last must also be != NULL", netif->loop_last != NULL);
- netif->loop_last->next = r;
- netif->loop_last = last;
- } else {
- netif->loop_first = r;
- netif->loop_last = last;
- }
- SYS_ARCH_UNPROTECT(lev);
-
-#if LWIP_NETIF_LOOPBACK_MULTITHREADING
- /* For multithreading environment, schedule a call to netif_poll */
- tcpip_callback((void (*)(void *))(netif_poll), netif);
-#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */
-
- return ERR_OK;
-}
-
-/**
- * Call netif_poll() in the main loop of your application. This is to prevent
- * reentering non-reentrant functions like tcp_input(). Packets passed to
- * netif_loop_output() are put on a list that is passed to netif->input() by
- * netif_poll().
- */
-void
-netif_poll(struct netif *netif)
-{
- struct pbuf *in;
- SYS_ARCH_DECL_PROTECT(lev);
-
- do {
- /* Get a packet from the list. With SYS_LIGHTWEIGHT_PROT=1, this is protected */
- SYS_ARCH_PROTECT(lev);
- in = netif->loop_first;
- if(in != NULL) {
- struct pbuf *in_end = in;
-#if LWIP_LOOPBACK_MAX_PBUFS
- u8_t clen = pbuf_clen(in);
- /* adjust the number of pbufs on queue */
- LWIP_ASSERT("netif->loop_cnt_current underflow",
- ((netif->loop_cnt_current - clen) < netif->loop_cnt_current));
- netif->loop_cnt_current -= clen;
-#endif /* LWIP_LOOPBACK_MAX_PBUFS */
- while(in_end->len != in_end->tot_len) {
- LWIP_ASSERT("bogus pbuf: len != tot_len but next == NULL!", in_end->next != NULL);
- in_end = in_end->next;
- }
- /* 'in_end' now points to the last pbuf from 'in' */
- if(in_end == netif->loop_last) {
- /* this was the last pbuf in the list */
- netif->loop_first = netif->loop_last = NULL;
- } else {
- /* pop the pbuf off the list */
- netif->loop_first = in_end->next;
- LWIP_ASSERT("should not be null since first != last!", netif->loop_first != NULL);
- }
- /* De-queue the pbuf from its successors on the 'loop_' list. */
- in_end->next = NULL;
- }
- SYS_ARCH_UNPROTECT(lev);
-
- if(in != NULL) {
- /* loopback packets are always IP packets! */
- if(ip_input(in, netif) != ERR_OK) {
- pbuf_free(in);
- }
- /* Don't reference the packet any more! */
- in = NULL;
- }
- /* go on while there is a packet on the list */
- } while(netif->loop_first != NULL);
-}
-
-#if !LWIP_NETIF_LOOPBACK_MULTITHREADING
-/**
- * Calls netif_poll() for every netif on the netif_list.
- */
-void
-netif_poll_all(void)
-{
- struct netif *netif = netif_list;
- /* loop through netifs */
- while (netif != NULL) {
- netif_poll(netif);
- /* proceed to next network interface */
- netif = netif->next;
- }
-}
-#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */
-#endif /* ENABLE_LOOPBACK */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/pbuf.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/pbuf.c
deleted file mode 100644
index 6284b9a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/pbuf.c
+++ /dev/null
@@ -1,931 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Packet buffer management
- *
- * Packets are built from the pbuf data structure. It supports dynamic
- * memory allocation for packet contents or can reference externally
- * managed packet contents both in RAM and ROM. Quick allocation for
- * incoming packets is provided through pools with fixed sized pbufs.
- *
- * A packet may span over multiple pbufs, chained as a singly linked
- * list. This is called a "pbuf chain".
- *
- * Multiple packets may be queued, also using this singly linked list.
- * This is called a "packet queue".
- *
- * So, a packet queue consists of one or more pbuf chains, each of
- * which consist of one or more pbufs. CURRENTLY, PACKET QUEUES ARE
- * NOT SUPPORTED!!! Use helper structs to queue multiple packets.
- *
- * The differences between a pbuf chain and a packet queue are very
- * precise but subtle.
- *
- * The last pbuf of a packet has a ->tot_len field that equals the
- * ->len field. It can be found by traversing the list. If the last
- * pbuf of a packet has a ->next field other than NULL, more packets
- * are on the queue.
- *
- * Therefore, looping through a pbuf of a single packet, has an
- * loop end condition (tot_len == p->len), NOT (next == NULL).
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#include "lwip/stats.h"
-#include "lwip/def.h"
-#include "lwip/mem.h"
-#include "lwip/memp.h"
-#include "lwip/pbuf.h"
-#include "lwip/sys.h"
-#include "arch/perf.h"
-#if TCP_QUEUE_OOSEQ
-#include "lwip/tcp.h"
-#endif
-
-#include <string.h>
-
-#define SIZEOF_STRUCT_PBUF LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf))
-/* Since the pool is created in memp, PBUF_POOL_BUFSIZE will be automatically
- aligned there. Therefore, PBUF_POOL_BUFSIZE_ALIGNED can be used here. */
-#define PBUF_POOL_BUFSIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(PBUF_POOL_BUFSIZE)
-
-#if !TCP_QUEUE_OOSEQ || NO_SYS
-#define PBUF_POOL_IS_EMPTY()
-#else /* !TCP_QUEUE_OOSEQ || NO_SYS */
-/** Define this to 0 to prevent freeing ooseq pbufs when the PBUF_POOL is empty */
-#ifndef PBUF_POOL_FREE_OOSEQ
-#define PBUF_POOL_FREE_OOSEQ 1
-#endif /* PBUF_POOL_FREE_OOSEQ */
-
-#if PBUF_POOL_FREE_OOSEQ
-#include "lwip/tcpip.h"
-#define PBUF_POOL_IS_EMPTY() pbuf_pool_is_empty()
-static u8_t pbuf_free_ooseq_queued;
-/**
- * Attempt to reclaim some memory from queued out-of-sequence TCP segments
- * if we run out of pool pbufs. It's better to give priority to new packets
- * if we're running out.
- *
- * This must be done in the correct thread context therefore this function
- * can only be used with NO_SYS=0 and through tcpip_callback.
- */
-static void
-pbuf_free_ooseq(void* arg)
-{
- struct tcp_pcb* pcb;
- SYS_ARCH_DECL_PROTECT(old_level);
- LWIP_UNUSED_ARG(arg);
-
- SYS_ARCH_PROTECT(old_level);
- pbuf_free_ooseq_queued = 0;
- SYS_ARCH_UNPROTECT(old_level);
-
- for (pcb = tcp_active_pcbs; NULL != pcb; pcb = pcb->next) {
- if (NULL != pcb->ooseq) {
- /** Free the ooseq pbufs of one PCB only */
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free_ooseq: freeing out-of-sequence pbufs\n"));
- tcp_segs_free(pcb->ooseq);
- pcb->ooseq = NULL;
- return;
- }
- }
-}
-
-/** Queue a call to pbuf_free_ooseq if not already queued. */
-static void
-pbuf_pool_is_empty(void)
-{
- u8_t queued;
- SYS_ARCH_DECL_PROTECT(old_level);
-
- SYS_ARCH_PROTECT(old_level);
- queued = pbuf_free_ooseq_queued;
- pbuf_free_ooseq_queued = 1;
- SYS_ARCH_UNPROTECT(old_level);
-
- if(!queued) {
- /* queue a call to pbuf_free_ooseq if not already queued */
- if(tcpip_callback_with_block(pbuf_free_ooseq, NULL, 0) != ERR_OK) {
- SYS_ARCH_PROTECT(old_level);
- pbuf_free_ooseq_queued = 0;
- SYS_ARCH_UNPROTECT(old_level);
- }
- }
-}
-#endif /* PBUF_POOL_FREE_OOSEQ */
-#endif /* !TCP_QUEUE_OOSEQ || NO_SYS */
-
-/**
- * Allocates a pbuf of the given type (possibly a chain for PBUF_POOL type).
- *
- * The actual memory allocated for the pbuf is determined by the
- * layer at which the pbuf is allocated and the requested size
- * (from the size parameter).
- *
- * @param layer flag to define header size
- * @param length size of the pbuf's payload
- * @param type this parameter decides how and where the pbuf
- * should be allocated as follows:
- *
- * - PBUF_RAM: buffer memory for pbuf is allocated as one large
- * chunk. This includes protocol headers as well.
- * - PBUF_ROM: no buffer memory is allocated for the pbuf, even for
- * protocol headers. Additional headers must be prepended
- * by allocating another pbuf and chain in to the front of
- * the ROM pbuf. It is assumed that the memory used is really
- * similar to ROM in that it is immutable and will not be
- * changed. Memory which is dynamic should generally not
- * be attached to PBUF_ROM pbufs. Use PBUF_REF instead.
- * - PBUF_REF: no buffer memory is allocated for the pbuf, even for
- * protocol headers. It is assumed that the pbuf is only
- * being used in a single thread. If the pbuf gets queued,
- * then pbuf_take should be called to copy the buffer.
- * - PBUF_POOL: the pbuf is allocated as a pbuf chain, with pbufs from
- * the pbuf pool that is allocated during pbuf_init().
- *
- * @return the allocated pbuf. If multiple pbufs where allocated, this
- * is the first pbuf of a pbuf chain.
- */
-struct pbuf *
-pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type)
-{
- struct pbuf *p, *q, *r;
- u16_t offset;
- s32_t rem_len; /* remaining length */
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n", length));
-
- /* determine header offset */
- offset = 0;
- switch (layer) {
- case PBUF_TRANSPORT:
- /* add room for transport (often TCP) layer header */
- offset += PBUF_TRANSPORT_HLEN;
- /* FALLTHROUGH */
- case PBUF_IP:
- /* add room for IP layer header */
- offset += PBUF_IP_HLEN;
- /* FALLTHROUGH */
- case PBUF_LINK:
- /* add room for link layer header */
- offset += PBUF_LINK_HLEN;
- break;
- case PBUF_RAW:
- break;
- default:
- LWIP_ASSERT("pbuf_alloc: bad pbuf layer", 0);
- return NULL;
- }
-
- switch (type) {
- case PBUF_POOL:
- /* allocate head of pbuf chain into p */
- p = memp_malloc(MEMP_PBUF_POOL);
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc: allocated pbuf %p\n", (void *)p));
- if (p == NULL) {
- PBUF_POOL_IS_EMPTY();
- return NULL;
- }
- p->type = type;
- p->next = NULL;
-
- /* make the payload pointer point 'offset' bytes into pbuf data memory */
- p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset)));
- LWIP_ASSERT("pbuf_alloc: pbuf p->payload properly aligned",
- ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0);
- /* the total length of the pbuf chain is the requested size */
- p->tot_len = length;
- /* set the length of the first pbuf in the chain */
- p->len = LWIP_MIN(length, PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset));
- LWIP_ASSERT("check p->payload + p->len does not overflow pbuf",
- ((u8_t*)p->payload + p->len <=
- (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED));
- LWIP_ASSERT("PBUF_POOL_BUFSIZE must be bigger than MEM_ALIGNMENT",
- (PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset)) > 0 );
- /* set reference count (needed here in case we fail) */
- p->ref = 1;
-
- /* now allocate the tail of the pbuf chain */
-
- /* remember first pbuf for linkage in next iteration */
- r = p;
- /* remaining length to be allocated */
- rem_len = length - p->len;
- /* any remaining pbufs to be allocated? */
- while (rem_len > 0) {
- q = memp_malloc(MEMP_PBUF_POOL);
- if (q == NULL) {
- PBUF_POOL_IS_EMPTY();
- /* free chain so far allocated */
- pbuf_free(p);
- /* bail out unsuccesfully */
- return NULL;
- }
- q->type = type;
- q->flags = 0;
- q->next = NULL;
- /* make previous pbuf point to this pbuf */
- r->next = q;
- /* set total length of this pbuf and next in chain */
- LWIP_ASSERT("rem_len < max_u16_t", rem_len < 0xffff);
- q->tot_len = (u16_t)rem_len;
- /* this pbuf length is pool size, unless smaller sized tail */
- q->len = LWIP_MIN((u16_t)rem_len, PBUF_POOL_BUFSIZE_ALIGNED);
- q->payload = (void *)((u8_t *)q + SIZEOF_STRUCT_PBUF);
- LWIP_ASSERT("pbuf_alloc: pbuf q->payload properly aligned",
- ((mem_ptr_t)q->payload % MEM_ALIGNMENT) == 0);
- LWIP_ASSERT("check p->payload + p->len does not overflow pbuf",
- ((u8_t*)p->payload + p->len <=
- (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED));
- q->ref = 1;
- /* calculate remaining length to be allocated */
- rem_len -= q->len;
- /* remember this pbuf for linkage in next iteration */
- r = q;
- }
- /* end of chain */
- /*r->next = NULL;*/
-
- break;
- case PBUF_RAM:
- /* If pbuf is to be allocated in RAM, allocate memory for it. */
- p = (struct pbuf*)mem_malloc(LWIP_MEM_ALIGN_SIZE(SIZEOF_STRUCT_PBUF + offset) + LWIP_MEM_ALIGN_SIZE(length));
- if (p == NULL) {
- return NULL;
- }
- /* Set up internal structure of the pbuf. */
- p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + SIZEOF_STRUCT_PBUF + offset));
- p->len = p->tot_len = length;
- p->next = NULL;
- p->type = type;
-
- LWIP_ASSERT("pbuf_alloc: pbuf->payload properly aligned",
- ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0);
- break;
- /* pbuf references existing (non-volatile static constant) ROM payload? */
- case PBUF_ROM:
- /* pbuf references existing (externally allocated) RAM payload? */
- case PBUF_REF:
- /* only allocate memory for the pbuf structure */
- p = memp_malloc(MEMP_PBUF);
- if (p == NULL) {
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("pbuf_alloc: Could not allocate MEMP_PBUF for PBUF_%s.\n",
- (type == PBUF_ROM) ? "ROM" : "REF"));
- return NULL;
- }
- /* caller must set this field properly, afterwards */
- p->payload = NULL;
- p->len = p->tot_len = length;
- p->next = NULL;
- p->type = type;
- break;
- default:
- LWIP_ASSERT("pbuf_alloc: erroneous type", 0);
- return NULL;
- }
- /* set reference count */
- p->ref = 1;
- /* set flags */
- p->flags = 0;
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F") == %p\n", length, (void *)p));
- return p;
-}
-
-
-/**
- * Shrink a pbuf chain to a desired length.
- *
- * @param p pbuf to shrink.
- * @param new_len desired new length of pbuf chain
- *
- * Depending on the desired length, the first few pbufs in a chain might
- * be skipped and left unchanged. The new last pbuf in the chain will be
- * resized, and any remaining pbufs will be freed.
- *
- * @note If the pbuf is ROM/REF, only the ->tot_len and ->len fields are adjusted.
- * @note May not be called on a packet queue.
- *
- * @note Despite its name, pbuf_realloc cannot grow the size of a pbuf (chain).
- */
-void
-pbuf_realloc(struct pbuf *p, u16_t new_len)
-{
- struct pbuf *q;
- u16_t rem_len; /* remaining length */
- s32_t grow;
-
- LWIP_ASSERT("pbuf_realloc: p != NULL", p != NULL);
- LWIP_ASSERT("pbuf_realloc: sane p->type", p->type == PBUF_POOL ||
- p->type == PBUF_ROM ||
- p->type == PBUF_RAM ||
- p->type == PBUF_REF);
-
- /* desired length larger than current length? */
- if (new_len >= p->tot_len) {
- /* enlarging not yet supported */
- return;
- }
-
- /* the pbuf chain grows by (new_len - p->tot_len) bytes
- * (which may be negative in case of shrinking) */
- grow = new_len - p->tot_len;
-
- /* first, step over any pbufs that should remain in the chain */
- rem_len = new_len;
- q = p;
- /* should this pbuf be kept? */
- while (rem_len > q->len) {
- /* decrease remaining length by pbuf length */
- rem_len -= q->len;
- /* decrease total length indicator */
- LWIP_ASSERT("grow < max_u16_t", grow < 0xffff);
- q->tot_len += (u16_t)grow;
- /* proceed to next pbuf in chain */
- q = q->next;
- LWIP_ASSERT("pbuf_realloc: q != NULL", q != NULL);
- }
- /* we have now reached the new last pbuf (in q) */
- /* rem_len == desired length for pbuf q */
-
- /* shrink allocated memory for PBUF_RAM */
- /* (other types merely adjust their length fields */
- if ((q->type == PBUF_RAM) && (rem_len != q->len)) {
- /* reallocate and adjust the length of the pbuf that will be split */
- q = mem_realloc(q, (u8_t *)q->payload - (u8_t *)q + rem_len);
- LWIP_ASSERT("mem_realloc give q == NULL", q != NULL);
- }
- /* adjust length fields for new last pbuf */
- q->len = rem_len;
- q->tot_len = q->len;
-
- /* any remaining pbufs in chain? */
- if (q->next != NULL) {
- /* free remaining pbufs in chain */
- pbuf_free(q->next);
- }
- /* q is last packet in chain */
- q->next = NULL;
-
-}
-
-/**
- * Adjusts the payload pointer to hide or reveal headers in the payload.
- *
- * Adjusts the ->payload pointer so that space for a header
- * (dis)appears in the pbuf payload.
- *
- * The ->payload, ->tot_len and ->len fields are adjusted.
- *
- * @param p pbuf to change the header size.
- * @param header_size_increment Number of bytes to increment header size which
- * increases the size of the pbuf. New space is on the front.
- * (Using a negative value decreases the header size.)
- * If hdr_size_inc is 0, this function does nothing and returns succesful.
- *
- * PBUF_ROM and PBUF_REF type buffers cannot have their sizes increased, so
- * the call will fail. A check is made that the increase in header size does
- * not move the payload pointer in front of the start of the buffer.
- * @return non-zero on failure, zero on success.
- *
- */
-u8_t
-pbuf_header(struct pbuf *p, s16_t header_size_increment)
-{
- u16_t type;
- void *payload;
- u16_t increment_magnitude;
-
- LWIP_ASSERT("p != NULL", p != NULL);
- if ((header_size_increment == 0) || (p == NULL))
- return 0;
-
- if (header_size_increment < 0){
- increment_magnitude = -header_size_increment;
- /* Check that we aren't going to move off the end of the pbuf */
- LWIP_ERROR("increment_magnitude <= p->len", (increment_magnitude <= p->len), return 1;);
- } else {
- increment_magnitude = header_size_increment;
-#if 0
- /* Can't assert these as some callers speculatively call
- pbuf_header() to see if it's OK. Will return 1 below instead. */
- /* Check that we've got the correct type of pbuf to work with */
- LWIP_ASSERT("p->type == PBUF_RAM || p->type == PBUF_POOL",
- p->type == PBUF_RAM || p->type == PBUF_POOL);
- /* Check that we aren't going to move off the beginning of the pbuf */
- LWIP_ASSERT("p->payload - increment_magnitude >= p + SIZEOF_STRUCT_PBUF",
- (u8_t *)p->payload - increment_magnitude >= (u8_t *)p + SIZEOF_STRUCT_PBUF);
-#endif
- }
-
- type = p->type;
- /* remember current payload pointer */
- payload = p->payload;
-
- /* pbuf types containing payloads? */
- if (type == PBUF_RAM || type == PBUF_POOL) {
- /* set new payload pointer */
- p->payload = (u8_t *)p->payload - header_size_increment;
- /* boundary check fails? */
- if ((u8_t *)p->payload < (u8_t *)p + SIZEOF_STRUCT_PBUF) {
- LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("pbuf_header: failed as %p < %p (not enough space for new header size)\n",
- (void *)p->payload, (void *)(p + 1)));
- /* restore old payload pointer */
- p->payload = payload;
- /* bail out unsuccesfully */
- return 1;
- }
- /* pbuf types refering to external payloads? */
- } else if (type == PBUF_REF || type == PBUF_ROM) {
- /* hide a header in the payload? */
- if ((header_size_increment < 0) && (increment_magnitude <= p->len)) {
- /* increase payload pointer */
- p->payload = (u8_t *)p->payload - header_size_increment;
- } else {
- /* cannot expand payload to front (yet!)
- * bail out unsuccesfully */
- return 1;
- }
- }
- else {
- /* Unknown type */
- LWIP_ASSERT("bad pbuf type", 0);
- return 1;
- }
- /* modify pbuf length fields */
- p->len += header_size_increment;
- p->tot_len += header_size_increment;
-
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_header: old %p new %p (%"S16_F")\n",
- (void *)payload, (void *)p->payload, header_size_increment));
-
- return 0;
-}
-
-/**
- * Dereference a pbuf chain or queue and deallocate any no-longer-used
- * pbufs at the head of this chain or queue.
- *
- * Decrements the pbuf reference count. If it reaches zero, the pbuf is
- * deallocated.
- *
- * For a pbuf chain, this is repeated for each pbuf in the chain,
- * up to the first pbuf which has a non-zero reference count after
- * decrementing. So, when all reference counts are one, the whole
- * chain is free'd.
- *
- * @param p The pbuf (chain) to be dereferenced.
- *
- * @return the number of pbufs that were de-allocated
- * from the head of the chain.
- *
- * @note MUST NOT be called on a packet queue (Not verified to work yet).
- * @note the reference counter of a pbuf equals the number of pointers
- * that refer to the pbuf (or into the pbuf).
- *
- * @internal examples:
- *
- * Assuming existing chains a->b->c with the following reference
- * counts, calling pbuf_free(a) results in:
- *
- * 1->2->3 becomes ...1->3
- * 3->3->3 becomes 2->3->3
- * 1->1->2 becomes ......1
- * 2->1->1 becomes 1->1->1
- * 1->1->1 becomes .......
- *
- */
-u8_t
-pbuf_free(struct pbuf *p)
-{
- u16_t type;
- struct pbuf *q;
- u8_t count;
-
- if (p == NULL) {
- LWIP_ASSERT("p != NULL", p != NULL);
- /* if assertions are disabled, proceed with debug output */
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("pbuf_free(p == NULL) was called.\n"));
- return 0;
- }
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free(%p)\n", (void *)p));
-
- PERF_START;
-
- LWIP_ASSERT("pbuf_free: sane type",
- p->type == PBUF_RAM || p->type == PBUF_ROM ||
- p->type == PBUF_REF || p->type == PBUF_POOL);
-
- count = 0;
- /* de-allocate all consecutive pbufs from the head of the chain that
- * obtain a zero reference count after decrementing*/
- while (p != NULL) {
- u16_t ref;
- SYS_ARCH_DECL_PROTECT(old_level);
- /* Since decrementing ref cannot be guaranteed to be a single machine operation
- * we must protect it. We put the new ref into a local variable to prevent
- * further protection. */
- SYS_ARCH_PROTECT(old_level);
- /* all pbufs in a chain are referenced at least once */
- LWIP_ASSERT("pbuf_free: p->ref > 0", p->ref > 0);
- /* decrease reference count (number of pointers to pbuf) */
- ref = --(p->ref);
- SYS_ARCH_UNPROTECT(old_level);
- /* this pbuf is no longer referenced to? */
- if (ref == 0) {
- /* remember next pbuf in chain for next iteration */
- q = p->next;
- LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free: deallocating %p\n", (void *)p));
- type = p->type;
- /* is this a pbuf from the pool? */
- if (type == PBUF_POOL) {
- memp_free(MEMP_PBUF_POOL, p);
- /* is this a ROM or RAM referencing pbuf? */
- } else if (type == PBUF_ROM || type == PBUF_REF) {
- memp_free(MEMP_PBUF, p);
- /* type == PBUF_RAM */
- } else {
- mem_free(p);
- }
- count++;
- /* proceed to next pbuf */
- p = q;
- /* p->ref > 0, this pbuf is still referenced to */
- /* (and so the remaining pbufs in chain as well) */
- } else {
- LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free: %p has ref %"U16_F", ending here.\n", (void *)p, ref));
- /* stop walking through the chain */
- p = NULL;
- }
- }
- PERF_STOP("pbuf_free");
- /* return number of de-allocated pbufs */
- return count;
-}
-
-/**
- * Count number of pbufs in a chain
- *
- * @param p first pbuf of chain
- * @return the number of pbufs in a chain
- */
-
-u8_t
-pbuf_clen(struct pbuf *p)
-{
- u8_t len;
-
- len = 0;
- while (p != NULL) {
- ++len;
- p = p->next;
- }
- return len;
-}
-
-/**
- * Increment the reference count of the pbuf.
- *
- * @param p pbuf to increase reference counter of
- *
- */
-void
-pbuf_ref(struct pbuf *p)
-{
- SYS_ARCH_DECL_PROTECT(old_level);
- /* pbuf given? */
- if (p != NULL) {
- SYS_ARCH_PROTECT(old_level);
- ++(p->ref);
- SYS_ARCH_UNPROTECT(old_level);
- }
-}
-
-/**
- * Concatenate two pbufs (each may be a pbuf chain) and take over
- * the caller's reference of the tail pbuf.
- *
- * @note The caller MAY NOT reference the tail pbuf afterwards.
- * Use pbuf_chain() for that purpose.
- *
- * @see pbuf_chain()
- */
-
-void
-pbuf_cat(struct pbuf *h, struct pbuf *t)
-{
- struct pbuf *p;
-
- LWIP_ERROR("(h != NULL) && (t != NULL) (programmer violates API)",
- ((h != NULL) && (t != NULL)), return;);
-
- /* proceed to last pbuf of chain */
- for (p = h; p->next != NULL; p = p->next) {
- /* add total length of second chain to all totals of first chain */
- p->tot_len += t->tot_len;
- }
- /* { p is last pbuf of first h chain, p->next == NULL } */
- LWIP_ASSERT("p->tot_len == p->len (of last pbuf in chain)", p->tot_len == p->len);
- LWIP_ASSERT("p->next == NULL", p->next == NULL);
- /* add total length of second chain to last pbuf total of first chain */
- p->tot_len += t->tot_len;
- /* chain last pbuf of head (p) with first of tail (t) */
- p->next = t;
- /* p->next now references t, but the caller will drop its reference to t,
- * so netto there is no change to the reference count of t.
- */
-}
-
-/**
- * Chain two pbufs (or pbuf chains) together.
- *
- * The caller MUST call pbuf_free(t) once it has stopped
- * using it. Use pbuf_cat() instead if you no longer use t.
- *
- * @param h head pbuf (chain)
- * @param t tail pbuf (chain)
- * @note The pbufs MUST belong to the same packet.
- * @note MAY NOT be called on a packet queue.
- *
- * The ->tot_len fields of all pbufs of the head chain are adjusted.
- * The ->next field of the last pbuf of the head chain is adjusted.
- * The ->ref field of the first pbuf of the tail chain is adjusted.
- *
- */
-void
-pbuf_chain(struct pbuf *h, struct pbuf *t)
-{
- pbuf_cat(h, t);
- /* t is now referenced by h */
- pbuf_ref(t);
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_chain: %p references %p\n", (void *)h, (void *)t));
-}
-
-/**
- * Dechains the first pbuf from its succeeding pbufs in the chain.
- *
- * Makes p->tot_len field equal to p->len.
- * @param p pbuf to dechain
- * @return remainder of the pbuf chain, or NULL if it was de-allocated.
- * @note May not be called on a packet queue.
- */
-struct pbuf *
-pbuf_dechain(struct pbuf *p)
-{
- struct pbuf *q;
- u8_t tail_gone = 1;
- /* tail */
- q = p->next;
- /* pbuf has successor in chain? */
- if (q != NULL) {
- /* assert tot_len invariant: (p->tot_len == p->len + (p->next? p->next->tot_len: 0) */
- LWIP_ASSERT("p->tot_len == p->len + q->tot_len", q->tot_len == p->tot_len - p->len);
- /* enforce invariant if assertion is disabled */
- q->tot_len = p->tot_len - p->len;
- /* decouple pbuf from remainder */
- p->next = NULL;
- /* total length of pbuf p is its own length only */
- p->tot_len = p->len;
- /* q is no longer referenced by p, free it */
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_dechain: unreferencing %p\n", (void *)q));
- tail_gone = pbuf_free(q);
- if (tail_gone > 0) {
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE,
- ("pbuf_dechain: deallocated %p (as it is no longer referenced)\n", (void *)q));
- }
- /* return remaining tail or NULL if deallocated */
- }
- /* assert tot_len invariant: (p->tot_len == p->len + (p->next? p->next->tot_len: 0) */
- LWIP_ASSERT("p->tot_len == p->len", p->tot_len == p->len);
- return ((tail_gone > 0) ? NULL : q);
-}
-
-/**
- *
- * Create PBUF_RAM copies of pbufs.
- *
- * Used to queue packets on behalf of the lwIP stack, such as
- * ARP based queueing.
- *
- * @note You MUST explicitly use p = pbuf_take(p);
- *
- * @note Only one packet is copied, no packet queue!
- *
- * @param p_to pbuf destination of the copy
- * @param p_from pbuf source of the copy
- *
- * @return ERR_OK if pbuf was copied
- * ERR_ARG if one of the pbufs is NULL or p_to is not big
- * enough to hold p_from
- */
-err_t
-pbuf_copy(struct pbuf *p_to, struct pbuf *p_from)
-{
- u16_t offset_to=0, offset_from=0, len;
-
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_copy(%p, %p)\n",
- (void*)p_to, (void*)p_from));
-
- /* is the target big enough to hold the source? */
- LWIP_ERROR("pbuf_copy: target not big enough to hold source", ((p_to != NULL) &&
- (p_from != NULL) && (p_to->tot_len >= p_from->tot_len)), return ERR_ARG;);
-
- /* iterate through pbuf chain */
- do
- {
- LWIP_ASSERT("p_to != NULL", p_to != NULL);
- /* copy one part of the original chain */
- if ((p_to->len - offset_to) >= (p_from->len - offset_from)) {
- /* complete current p_from fits into current p_to */
- len = p_from->len - offset_from;
- } else {
- /* current p_from does not fit into current p_to */
- len = p_to->len - offset_to;
- }
- MEMCPY((u8_t*)p_to->payload + offset_to, (u8_t*)p_from->payload + offset_from, len);
- offset_to += len;
- offset_from += len;
- LWIP_ASSERT("offset_to <= p_to->len", offset_to <= p_to->len);
- if (offset_to == p_to->len) {
- /* on to next p_to (if any) */
- offset_to = 0;
- p_to = p_to->next;
- }
- LWIP_ASSERT("offset_from <= p_from->len", offset_from <= p_from->len);
- if (offset_from >= p_from->len) {
- /* on to next p_from (if any) */
- offset_from = 0;
- p_from = p_from->next;
- }
-
- if((p_from != NULL) && (p_from->len == p_from->tot_len)) {
- /* don't copy more than one packet! */
- LWIP_ERROR("pbuf_copy() does not allow packet queues!\n",
- (p_from->next == NULL), return ERR_VAL;);
- }
- if((p_to != NULL) && (p_to->len == p_to->tot_len)) {
- /* don't copy more than one packet! */
- LWIP_ERROR("pbuf_copy() does not allow packet queues!\n",
- (p_to->next == NULL), return ERR_VAL;);
- }
- } while (p_from);
- LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_copy: end of chain reached.\n"));
- return ERR_OK;
-}
-
-/**
- * Copy (part of) the contents of a packet buffer
- * to an application supplied buffer.
- *
- * @param buf the pbuf from which to copy data
- * @param dataptr the application supplied buffer
- * @param len length of data to copy (dataptr must be big enough). No more
- * than buf->tot_len will be copied, irrespective of len
- * @param offset offset into the packet buffer from where to begin copying len bytes
- * @return the number of bytes copied, or 0 on failure
- */
-u16_t
-pbuf_copy_partial(struct pbuf *buf, void *dataptr, u16_t len, u16_t offset)
-{
- struct pbuf *p;
- u16_t left;
- u16_t buf_copy_len;
- u16_t copied_total = 0;
-
- LWIP_ERROR("pbuf_copy_partial: invalid buf", (buf != NULL), return 0;);
- LWIP_ERROR("pbuf_copy_partial: invalid dataptr", (dataptr != NULL), return 0;);
-
- left = 0;
-
- if((buf == NULL) || (dataptr == NULL)) {
- return 0;
- }
-
- /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */
- for(p = buf; len != 0 && p != NULL; p = p->next) {
- if ((offset != 0) && (offset >= p->len)) {
- /* don't copy from this buffer -> on to the next */
- offset -= p->len;
- } else {
- /* copy from this buffer. maybe only partially. */
- buf_copy_len = p->len - offset;
- if (buf_copy_len > len)
- buf_copy_len = len;
- /* copy the necessary parts of the buffer */
- MEMCPY(&((char*)dataptr)[left], &((char*)p->payload)[offset], buf_copy_len);
- copied_total += buf_copy_len;
- left += buf_copy_len;
- len -= buf_copy_len;
- offset = 0;
- }
- }
- return copied_total;
-}
-
-/**
- * Copy application supplied data into a pbuf.
- * This function can only be used to copy the equivalent of buf->tot_len data.
- *
- * @param buf pbuf to fill with data
- * @param dataptr application supplied data buffer
- * @param len length of the application supplied data buffer
- *
- * @return ERR_OK if successful, ERR_MEM if the pbuf is not big enough
- */
-err_t
-pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len)
-{
- struct pbuf *p;
- u16_t buf_copy_len;
- u16_t total_copy_len = len;
- u16_t copied_total = 0;
-
- LWIP_ERROR("pbuf_take: invalid buf", (buf != NULL), return 0;);
- LWIP_ERROR("pbuf_take: invalid dataptr", (dataptr != NULL), return 0;);
-
- if ((buf == NULL) || (dataptr == NULL) || (buf->tot_len < len)) {
- return ERR_ARG;
- }
-
- /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */
- for(p = buf; total_copy_len != 0; p = p->next) {
- LWIP_ASSERT("pbuf_take: invalid pbuf", p != NULL);
- buf_copy_len = total_copy_len;
- if (buf_copy_len > p->len) {
- /* this pbuf cannot hold all remaining data */
- buf_copy_len = p->len;
- }
- /* copy the necessary parts of the buffer */
- MEMCPY(p->payload, &((char*)dataptr)[copied_total], buf_copy_len);
- total_copy_len -= buf_copy_len;
- copied_total += buf_copy_len;
- }
- LWIP_ASSERT("did not copy all data", total_copy_len == 0 && copied_total == len);
- return ERR_OK;
-}
-
-/**
- * Creates a single pbuf out of a queue of pbufs.
- *
- * @remark: The source pbuf 'p' is not freed by this function because that can
- * be illegal in some places!
- *
- * @param p the source pbuf
- * @param layer pbuf_layer of the new pbuf
- *
- * @return a new, single pbuf (p->next is NULL)
- * or the old pbuf if allocation fails
- */
-struct pbuf*
-pbuf_coalesce(struct pbuf *p, pbuf_layer layer)
-{
- struct pbuf *q;
- err_t err;
- if (p->next == NULL) {
- return p;
- }
- q = pbuf_alloc(layer, p->tot_len, PBUF_RAM);
- if (q == NULL) {
- /* @todo: what do we do now? */
- return p;
- }
- err = pbuf_copy(q, p);
- LWIP_ASSERT("pbuf_copy failed", err == ERR_OK);
- pbuf_free(p);
- return q;
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/raw.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/raw.c
deleted file mode 100644
index 6966bbc..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/raw.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Implementation of raw protocol PCBs for low-level handling of
- * different types of protocols besides (or overriding) those
- * already available in lwIP.
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_RAW /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/def.h"
-#include "lwip/memp.h"
-#include "lwip/inet.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/raw.h"
-#include "lwip/stats.h"
-#include "lwip/snmp.h"
-#include "arch/perf.h"
-
-#include <string.h>
-
-/** The list of RAW PCBs */
-static struct raw_pcb *raw_pcbs;
-
-/**
- * Determine if in incoming IP packet is covered by a RAW PCB
- * and if so, pass it to a user-provided receive callback function.
- *
- * Given an incoming IP datagram (as a chain of pbufs) this function
- * finds a corresponding RAW PCB and calls the corresponding receive
- * callback function.
- *
- * @param p pbuf to be demultiplexed to a RAW PCB.
- * @param inp network interface on which the datagram was received.
- * @return - 1 if the packet has been eaten by a RAW PCB receive
- * callback function. The caller MAY NOT not reference the
- * packet any longer, and MAY NOT call pbuf_free().
- * @return - 0 if packet is not eaten (pbuf is still referenced by the
- * caller).
- *
- */
-u8_t
-raw_input(struct pbuf *p, struct netif *inp)
-{
- struct raw_pcb *pcb, *prev;
- struct ip_hdr *iphdr;
- s16_t proto;
- u8_t eaten = 0;
-
- LWIP_UNUSED_ARG(inp);
-
- iphdr = p->payload;
- proto = IPH_PROTO(iphdr);
-
- prev = NULL;
- pcb = raw_pcbs;
- /* loop through all raw pcbs until the packet is eaten by one */
- /* this allows multiple pcbs to match against the packet by design */
- while ((eaten == 0) && (pcb != NULL)) {
- if (pcb->protocol == proto) {
-#if IP_SOF_BROADCAST_RECV
- /* broadcast filter? */
- if ((pcb->so_options & SOF_BROADCAST) || !ip_addr_isbroadcast(&(iphdr->dest), inp))
-#endif /* IP_SOF_BROADCAST_RECV */
- {
- /* receive callback function available? */
- if (pcb->recv != NULL) {
- /* the receive callback function did not eat the packet? */
- if (pcb->recv(pcb->recv_arg, pcb, p, &(iphdr->src)) != 0) {
- /* receive function ate the packet */
- p = NULL;
- eaten = 1;
- if (prev != NULL) {
- /* move the pcb to the front of raw_pcbs so that is
- found faster next time */
- prev->next = pcb->next;
- pcb->next = raw_pcbs;
- raw_pcbs = pcb;
- }
- }
- }
- /* no receive callback function was set for this raw PCB */
- }
- /* drop the packet */
- }
- prev = pcb;
- pcb = pcb->next;
- }
- return eaten;
-}
-
-/**
- * Bind a RAW PCB.
- *
- * @param pcb RAW PCB to be bound with a local address ipaddr.
- * @param ipaddr local IP address to bind with. Use IP_ADDR_ANY to
- * bind to all local interfaces.
- *
- * @return lwIP error code.
- * - ERR_OK. Successful. No error occured.
- * - ERR_USE. The specified IP address is already bound to by
- * another RAW PCB.
- *
- * @see raw_disconnect()
- */
-err_t
-raw_bind(struct raw_pcb *pcb, struct ip_addr *ipaddr)
-{
- ip_addr_set(&pcb->local_ip, ipaddr);
- return ERR_OK;
-}
-
-/**
- * Connect an RAW PCB. This function is required by upper layers
- * of lwip. Using the raw api you could use raw_sendto() instead
- *
- * This will associate the RAW PCB with the remote address.
- *
- * @param pcb RAW PCB to be connected with remote address ipaddr and port.
- * @param ipaddr remote IP address to connect with.
- *
- * @return lwIP error code
- *
- * @see raw_disconnect() and raw_sendto()
- */
-err_t
-raw_connect(struct raw_pcb *pcb, struct ip_addr *ipaddr)
-{
- ip_addr_set(&pcb->remote_ip, ipaddr);
- return ERR_OK;
-}
-
-
-/**
- * Set the callback function for received packets that match the
- * raw PCB's protocol and binding.
- *
- * The callback function MUST either
- * - eat the packet by calling pbuf_free() and returning non-zero. The
- * packet will not be passed to other raw PCBs or other protocol layers.
- * - not free the packet, and return zero. The packet will be matched
- * against further PCBs and/or forwarded to another protocol layers.
- *
- * @return non-zero if the packet was free()d, zero if the packet remains
- * available for others.
- */
-void
-raw_recv(struct raw_pcb *pcb,
- u8_t (* recv)(void *arg, struct raw_pcb *upcb, struct pbuf *p,
- struct ip_addr *addr),
- void *recv_arg)
-{
- /* remember recv() callback and user data */
- pcb->recv = recv;
- pcb->recv_arg = recv_arg;
-}
-
-/**
- * Send the raw IP packet to the given address. Note that actually you cannot
- * modify the IP headers (this is inconsistent with the receive callback where
- * you actually get the IP headers), you can only specify the IP payload here.
- * It requires some more changes in lwIP. (there will be a raw_send() function
- * then.)
- *
- * @param pcb the raw pcb which to send
- * @param p the IP payload to send
- * @param ipaddr the destination address of the IP packet
- *
- */
-err_t
-raw_sendto(struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *ipaddr)
-{
- err_t err;
- struct netif *netif;
- struct ip_addr *src_ip;
- struct pbuf *q; /* q will be sent down the stack */
-
- LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE, ("raw_sendto\n"));
-
- /* not enough space to add an IP header to first pbuf in given p chain? */
- if (pbuf_header(p, IP_HLEN)) {
- /* allocate header in new pbuf */
- q = pbuf_alloc(PBUF_IP, 0, PBUF_RAM);
- /* new header pbuf could not be allocated? */
- if (q == NULL) {
- LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("raw_sendto: could not allocate header\n"));
- return ERR_MEM;
- }
- /* chain header q in front of given pbuf p */
- pbuf_chain(q, p);
- /* { first pbuf q points to header pbuf } */
- LWIP_DEBUGF(RAW_DEBUG, ("raw_sendto: added header pbuf %p before given pbuf %p\n", (void *)q, (void *)p));
- } else {
- /* first pbuf q equals given pbuf */
- q = p;
- if(pbuf_header(q, -IP_HLEN)) {
- LWIP_ASSERT("Can't restore header we just removed!", 0);
- return ERR_MEM;
- }
- }
-
- if ((netif = ip_route(ipaddr)) == NULL) {
- LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_LEVEL_WARNING, ("raw_sendto: No route to 0x%"X32_F"\n", ipaddr->addr));
- /* free any temporary header pbuf allocated by pbuf_header() */
- if (q != p) {
- pbuf_free(q);
- }
- return ERR_RTE;
- }
-
-#if IP_SOF_BROADCAST
- /* broadcast filter? */
- if ( ((pcb->so_options & SOF_BROADCAST) == 0) && ip_addr_isbroadcast(ipaddr, netif) ) {
- LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_LEVEL_WARNING, ("raw_sendto: SOF_BROADCAST not enabled on pcb %p\n", (void *)pcb));
- /* free any temporary header pbuf allocated by pbuf_header() */
- if (q != p) {
- pbuf_free(q);
- }
- return ERR_VAL;
- }
-#endif /* IP_SOF_BROADCAST */
-
- if (ip_addr_isany(&pcb->local_ip)) {
- /* use outgoing network interface IP address as source address */
- src_ip = &(netif->ip_addr);
- } else {
- /* use RAW PCB local IP address as source address */
- src_ip = &(pcb->local_ip);
- }
-
-#if LWIP_NETIF_HWADDRHINT
- netif->addr_hint = &(pcb->addr_hint);
-#endif /* LWIP_NETIF_HWADDRHINT*/
- err = ip_output_if (q, src_ip, ipaddr, pcb->ttl, pcb->tos, pcb->protocol, netif);
-#if LWIP_NETIF_HWADDRHINT
- netif->addr_hint = NULL;
-#endif /* LWIP_NETIF_HWADDRHINT*/
-
- /* did we chain a header earlier? */
- if (q != p) {
- /* free the header */
- pbuf_free(q);
- }
- return err;
-}
-
-/**
- * Send the raw IP packet to the address given by raw_connect()
- *
- * @param pcb the raw pcb which to send
- * @param p the IP payload to send
- *
- */
-err_t
-raw_send(struct raw_pcb *pcb, struct pbuf *p)
-{
- return raw_sendto(pcb, p, &pcb->remote_ip);
-}
-
-/**
- * Remove an RAW PCB.
- *
- * @param pcb RAW PCB to be removed. The PCB is removed from the list of
- * RAW PCB's and the data structure is freed from memory.
- *
- * @see raw_new()
- */
-void
-raw_remove(struct raw_pcb *pcb)
-{
- struct raw_pcb *pcb2;
- /* pcb to be removed is first in list? */
- if (raw_pcbs == pcb) {
- /* make list start at 2nd pcb */
- raw_pcbs = raw_pcbs->next;
- /* pcb not 1st in list */
- } else {
- for(pcb2 = raw_pcbs; pcb2 != NULL; pcb2 = pcb2->next) {
- /* find pcb in raw_pcbs list */
- if (pcb2->next != NULL && pcb2->next == pcb) {
- /* remove pcb from list */
- pcb2->next = pcb->next;
- }
- }
- }
- memp_free(MEMP_RAW_PCB, pcb);
-}
-
-/**
- * Create a RAW PCB.
- *
- * @return The RAW PCB which was created. NULL if the PCB data structure
- * could not be allocated.
- *
- * @param proto the protocol number of the IPs payload (e.g. IP_PROTO_ICMP)
- *
- * @see raw_remove()
- */
-struct raw_pcb *
-raw_new(u8_t proto) {
- struct raw_pcb *pcb;
-
- LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE, ("raw_new\n"));
-
- pcb = memp_malloc(MEMP_RAW_PCB);
- /* could allocate RAW PCB? */
- if (pcb != NULL) {
- /* initialize PCB to all zeroes */
- memset(pcb, 0, sizeof(struct raw_pcb));
- pcb->protocol = proto;
- pcb->ttl = RAW_TTL;
- pcb->next = raw_pcbs;
- raw_pcbs = pcb;
- }
- return pcb;
-}
-
-#endif /* LWIP_RAW */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/stats.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/stats.c
deleted file mode 100644
index 4299a94..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/stats.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Statistics module
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_STATS /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/def.h"
-#include "lwip/stats.h"
-#include "lwip/mem.h"
-
-#include <string.h>
-
-struct stats_ lwip_stats;
-
-#if LWIP_STATS_DISPLAY
-void
-stats_display_proto(struct stats_proto *proto, char *name)
-{
- LWIP_PLATFORM_DIAG(("\n%s\n\t", name));
- LWIP_PLATFORM_DIAG(("xmit: %"STAT_COUNTER_F"\n\t", proto->xmit));
- LWIP_PLATFORM_DIAG(("recv: %"STAT_COUNTER_F"\n\t", proto->recv));
- LWIP_PLATFORM_DIAG(("fw: %"STAT_COUNTER_F"\n\t", proto->fw));
- LWIP_PLATFORM_DIAG(("drop: %"STAT_COUNTER_F"\n\t", proto->drop));
- LWIP_PLATFORM_DIAG(("chkerr: %"STAT_COUNTER_F"\n\t", proto->chkerr));
- LWIP_PLATFORM_DIAG(("lenerr: %"STAT_COUNTER_F"\n\t", proto->lenerr));
- LWIP_PLATFORM_DIAG(("memerr: %"STAT_COUNTER_F"\n\t", proto->memerr));
- LWIP_PLATFORM_DIAG(("rterr: %"STAT_COUNTER_F"\n\t", proto->rterr));
- LWIP_PLATFORM_DIAG(("proterr: %"STAT_COUNTER_F"\n\t", proto->proterr));
- LWIP_PLATFORM_DIAG(("opterr: %"STAT_COUNTER_F"\n\t", proto->opterr));
- LWIP_PLATFORM_DIAG(("err: %"STAT_COUNTER_F"\n\t", proto->err));
- LWIP_PLATFORM_DIAG(("cachehit: %"STAT_COUNTER_F"\n", proto->cachehit));
-}
-
-#if IGMP_STATS
-void
-stats_display_igmp(struct stats_igmp *igmp)
-{
- LWIP_PLATFORM_DIAG(("\nIGMP\n\t"));
- LWIP_PLATFORM_DIAG(("lenerr: %"STAT_COUNTER_F"\n\t", igmp->lenerr));
- LWIP_PLATFORM_DIAG(("chkerr: %"STAT_COUNTER_F"\n\t", igmp->chkerr));
- LWIP_PLATFORM_DIAG(("v1_rxed: %"STAT_COUNTER_F"\n\t", igmp->v1_rxed));
- LWIP_PLATFORM_DIAG(("join_sent: %"STAT_COUNTER_F"\n\t", igmp->join_sent));
- LWIP_PLATFORM_DIAG(("leave_sent: %"STAT_COUNTER_F"\n\t", igmp->leave_sent));
- LWIP_PLATFORM_DIAG(("unicast_query: %"STAT_COUNTER_F"\n\t", igmp->unicast_query));
- LWIP_PLATFORM_DIAG(("report_sent: %"STAT_COUNTER_F"\n\t", igmp->report_sent));
- LWIP_PLATFORM_DIAG(("report_rxed: %"STAT_COUNTER_F"\n\t", igmp->report_rxed));
- LWIP_PLATFORM_DIAG(("group_query_rxed: %"STAT_COUNTER_F"\n", igmp->group_query_rxed));
-}
-#endif /* IGMP_STATS */
-
-#if MEM_STATS || MEMP_STATS
-void
-stats_display_mem(struct stats_mem *mem, char *name)
-{
- LWIP_PLATFORM_DIAG(("\nMEM %s\n\t", name));
- LWIP_PLATFORM_DIAG(("avail: %"U32_F"\n\t", (u32_t)mem->avail));
- LWIP_PLATFORM_DIAG(("used: %"U32_F"\n\t", (u32_t)mem->used));
- LWIP_PLATFORM_DIAG(("max: %"U32_F"\n\t", (u32_t)mem->max));
- LWIP_PLATFORM_DIAG(("err: %"U32_F"\n", (u32_t)mem->err));
-}
-
-#if MEMP_STATS
-void
-stats_display_memp(struct stats_mem *mem, int index)
-{
- char * memp_names[] = {
-#define LWIP_MEMPOOL(name,num,size,desc) desc,
-#include "lwip/memp_std.h"
- };
- if(index < MEMP_MAX) {
- stats_display_mem(mem, memp_names[index]);
- }
-}
-#endif /* MEMP_STATS */
-#endif /* MEM_STATS || MEMP_STATS */
-
-#if SYS_STATS
-void
-stats_display_sys(struct stats_sys *sys)
-{
- LWIP_PLATFORM_DIAG(("\nSYS\n\t"));
- LWIP_PLATFORM_DIAG(("sem.used: %"U32_F"\n\t", (u32_t)sys->sem.used));
- LWIP_PLATFORM_DIAG(("sem.max: %"U32_F"\n\t", (u32_t)sys->sem.max));
- LWIP_PLATFORM_DIAG(("sem.err: %"U32_F"\n\t", (u32_t)sys->sem.err));
- LWIP_PLATFORM_DIAG(("mbox.used: %"U32_F"\n\t", (u32_t)sys->mbox.used));
- LWIP_PLATFORM_DIAG(("mbox.max: %"U32_F"\n\t", (u32_t)sys->mbox.max));
- LWIP_PLATFORM_DIAG(("mbox.err: %"U32_F"\n\t", (u32_t)sys->mbox.err));
-}
-#endif /* SYS_STATS */
-
-void
-stats_display(void)
-{
- s16_t i;
-
- LINK_STATS_DISPLAY();
- ETHARP_STATS_DISPLAY();
- IPFRAG_STATS_DISPLAY();
- IP_STATS_DISPLAY();
- IGMP_STATS_DISPLAY();
- ICMP_STATS_DISPLAY();
- UDP_STATS_DISPLAY();
- TCP_STATS_DISPLAY();
- MEM_STATS_DISPLAY();
- for (i = 0; i < MEMP_MAX; i++) {
- MEMP_STATS_DISPLAY(i);
- }
- SYS_STATS_DISPLAY();
-}
-#endif /* LWIP_STATS_DISPLAY */
-
-#endif /* LWIP_STATS */
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp.c
deleted file mode 100644
index c588d21..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp.c
+++ /dev/null
@@ -1,1463 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Transmission Control Protocol for IP
- *
- * This file contains common functions for the TCP implementation, such as functinos
- * for manipulating the data structures and the TCP timer functions. TCP functions
- * related to input and output is found in tcp_in.c and tcp_out.c respectively.
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/def.h"
-#include "lwip/mem.h"
-#include "lwip/memp.h"
-#include "lwip/snmp.h"
-#include "lwip/tcp.h"
-#include "lwip/debug.h"
-#include "lwip/stats.h"
-
-#include <string.h>
-
-const char *tcp_state_str[] = {
- "CLOSED",
- "LISTEN",
- "SYN_SENT",
- "SYN_RCVD",
- "ESTABLISHED",
- "FIN_WAIT_1",
- "FIN_WAIT_2",
- "CLOSE_WAIT",
- "CLOSING",
- "LAST_ACK",
- "TIME_WAIT"
-};
-
-/* Incremented every coarse grained timer shot (typically every 500 ms). */
-u32_t tcp_ticks;
-const u8_t tcp_backoff[13] =
- { 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7};
- /* Times per slowtmr hits */
-const u8_t tcp_persist_backoff[7] = { 3, 6, 12, 24, 48, 96, 120 };
-
-/* The TCP PCB lists. */
-
-/** List of all TCP PCBs bound but not yet (connected || listening) */
-struct tcp_pcb *tcp_bound_pcbs;
-/** List of all TCP PCBs in LISTEN state */
-union tcp_listen_pcbs_t tcp_listen_pcbs;
-/** List of all TCP PCBs that are in a state in which
- * they accept or send data. */
-struct tcp_pcb *tcp_active_pcbs;
-/** List of all TCP PCBs in TIME-WAIT state */
-struct tcp_pcb *tcp_tw_pcbs;
-
-struct tcp_pcb *tcp_tmp_pcb;
-
-static u8_t tcp_timer;
-static u16_t tcp_new_port(void);
-
-/**
- * Called periodically to dispatch TCP timers.
- *
- */
-void
-tcp_tmr(void)
-{
- /* Call tcp_fasttmr() every 250 ms */
- tcp_fasttmr();
-
- if (++tcp_timer & 1) {
- /* Call tcp_tmr() every 500 ms, i.e., every other timer
- tcp_tmr() is called. */
- tcp_slowtmr();
- }
-}
-
-/**
- * Closes the connection held by the PCB.
- *
- * Listening pcbs are freed and may not be referenced any more.
- * Connection pcbs are freed if not yet connected and may not be referenced
- * any more. If a connection is established (at least SYN received or in
- * a closing state), the connection is closed, and put in a closing state.
- * The pcb is then automatically freed in tcp_slowtmr(). It is therefore
- * unsafe to reference it.
- *
- * @param pcb the tcp_pcb to close
- * @return ERR_OK if connection has been closed
- * another err_t if closing failed and pcb is not freed
- */
-err_t
-tcp_close(struct tcp_pcb *pcb)
-{
- err_t err;
-
-#if TCP_DEBUG
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_close: closing in "));
- tcp_debug_print_state(pcb->state);
-#endif /* TCP_DEBUG */
-
- switch (pcb->state) {
- case CLOSED:
- /* Closing a pcb in the CLOSED state might seem erroneous,
- * however, it is in this state once allocated and as yet unused
- * and the user needs some way to free it should the need arise.
- * Calling tcp_close() with a pcb that has already been closed, (i.e. twice)
- * or for a pcb that has been used and then entered the CLOSED state
- * is erroneous, but this should never happen as the pcb has in those cases
- * been freed, and so any remaining handles are bogus. */
- err = ERR_OK;
- TCP_RMV(&tcp_bound_pcbs, pcb);
- memp_free(MEMP_TCP_PCB, pcb);
- pcb = NULL;
- break;
- case LISTEN:
- err = ERR_OK;
- tcp_pcb_remove((struct tcp_pcb **)&tcp_listen_pcbs.pcbs, pcb);
- memp_free(MEMP_TCP_PCB_LISTEN, pcb);
- pcb = NULL;
- break;
- case SYN_SENT:
- err = ERR_OK;
- tcp_pcb_remove(&tcp_active_pcbs, pcb);
- memp_free(MEMP_TCP_PCB, pcb);
- pcb = NULL;
- snmp_inc_tcpattemptfails();
- break;
- case SYN_RCVD:
- err = tcp_send_ctrl(pcb, TCP_FIN);
- if (err == ERR_OK) {
- snmp_inc_tcpattemptfails();
- pcb->state = FIN_WAIT_1;
- }
- break;
- case ESTABLISHED:
- err = tcp_send_ctrl(pcb, TCP_FIN);
- if (err == ERR_OK) {
- snmp_inc_tcpestabresets();
- pcb->state = FIN_WAIT_1;
- }
- break;
- case CLOSE_WAIT:
- err = tcp_send_ctrl(pcb, TCP_FIN);
- if (err == ERR_OK) {
- snmp_inc_tcpestabresets();
- pcb->state = LAST_ACK;
- }
- break;
- default:
- /* Has already been closed, do nothing. */
- err = ERR_OK;
- pcb = NULL;
- break;
- }
-
- if (pcb != NULL && err == ERR_OK) {
- /* To ensure all data has been sent when tcp_close returns, we have
- to make sure tcp_output doesn't fail.
- Since we don't really have to ensure all data has been sent when tcp_close
- returns (unsent data is sent from tcp timer functions, also), we don't care
- for the return value of tcp_output for now. */
- /* @todo: When implementing SO_LINGER, this must be changed somehow:
- If SOF_LINGER is set, the data should be sent when tcp_close returns. */
- tcp_output(pcb);
- }
- return err;
-}
-
-/**
- * Abandons a connection and optionally sends a RST to the remote
- * host. Deletes the local protocol control block. This is done when
- * a connection is killed because of shortage of memory.
- *
- * @param pcb the tcp_pcb to abort
- * @param reset boolean to indicate whether a reset should be sent
- */
-void
-tcp_abandon(struct tcp_pcb *pcb, int reset)
-{
- u32_t seqno, ackno;
- u16_t remote_port, local_port;
- struct ip_addr remote_ip, local_ip;
-#if LWIP_CALLBACK_API
- void (* errf)(void *arg, err_t err);
-#endif /* LWIP_CALLBACK_API */
- void *errf_arg;
-
-
- /* Figure out on which TCP PCB list we are, and remove us. If we
- are in an active state, call the receive function associated with
- the PCB with a NULL argument, and send an RST to the remote end. */
- if (pcb->state == TIME_WAIT) {
- tcp_pcb_remove(&tcp_tw_pcbs, pcb);
- memp_free(MEMP_TCP_PCB, pcb);
- } else {
- seqno = pcb->snd_nxt;
- ackno = pcb->rcv_nxt;
- ip_addr_set(&local_ip, &(pcb->local_ip));
- ip_addr_set(&remote_ip, &(pcb->remote_ip));
- local_port = pcb->local_port;
- remote_port = pcb->remote_port;
-#if LWIP_CALLBACK_API
- errf = pcb->errf;
-#endif /* LWIP_CALLBACK_API */
- errf_arg = pcb->callback_arg;
- tcp_pcb_remove(&tcp_active_pcbs, pcb);
- if (pcb->unacked != NULL) {
- tcp_segs_free(pcb->unacked);
- }
- if (pcb->unsent != NULL) {
- tcp_segs_free(pcb->unsent);
- }
-#if TCP_QUEUE_OOSEQ
- if (pcb->ooseq != NULL) {
- tcp_segs_free(pcb->ooseq);
- }
-#endif /* TCP_QUEUE_OOSEQ */
- memp_free(MEMP_TCP_PCB, pcb);
- TCP_EVENT_ERR(errf, errf_arg, ERR_ABRT);
- if (reset) {
- LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_abandon: sending RST\n"));
- tcp_rst(seqno, ackno, &local_ip, &remote_ip, local_port, remote_port);
- }
- }
-}
-
-/**
- * Binds the connection to a local portnumber and IP address. If the
- * IP address is not given (i.e., ipaddr == NULL), the IP address of
- * the outgoing network interface is used instead.
- *
- * @param pcb the tcp_pcb to bind (no check is done whether this pcb is
- * already bound!)
- * @param ipaddr the local ip address to bind to (use IP_ADDR_ANY to bind
- * to any local address
- * @param port the local port to bind to
- * @return ERR_USE if the port is already in use
- * ERR_OK if bound
- */
-err_t
-tcp_bind(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port)
-{
- struct tcp_pcb *cpcb;
-
- LWIP_ERROR("tcp_bind: can only bind in state CLOSED", pcb->state == CLOSED, return ERR_ISCONN);
-
- if (port == 0) {
- port = tcp_new_port();
- }
- /* Check if the address already is in use. */
- /* Check the listen pcbs. */
- for(cpcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs;
- cpcb != NULL; cpcb = cpcb->next) {
- if (cpcb->local_port == port) {
- if (ip_addr_isany(&(cpcb->local_ip)) ||
- ip_addr_isany(ipaddr) ||
- ip_addr_cmp(&(cpcb->local_ip), ipaddr)) {
- return ERR_USE;
- }
- }
- }
- /* Check the connected pcbs. */
- for(cpcb = tcp_active_pcbs;
- cpcb != NULL; cpcb = cpcb->next) {
- if (cpcb->local_port == port) {
- if (ip_addr_isany(&(cpcb->local_ip)) ||
- ip_addr_isany(ipaddr) ||
- ip_addr_cmp(&(cpcb->local_ip), ipaddr)) {
- return ERR_USE;
- }
- }
- }
- /* Check the bound, not yet connected pcbs. */
- for(cpcb = tcp_bound_pcbs; cpcb != NULL; cpcb = cpcb->next) {
- if (cpcb->local_port == port) {
- if (ip_addr_isany(&(cpcb->local_ip)) ||
- ip_addr_isany(ipaddr) ||
- ip_addr_cmp(&(cpcb->local_ip), ipaddr)) {
- return ERR_USE;
- }
- }
- }
- /* @todo: until SO_REUSEADDR is implemented (see task #6995 on savannah),
- * we have to check the pcbs in TIME-WAIT state, also: */
- for(cpcb = tcp_tw_pcbs; cpcb != NULL; cpcb = cpcb->next) {
- if (cpcb->local_port == port) {
- if (ip_addr_cmp(&(cpcb->local_ip), ipaddr)) {
- return ERR_USE;
- }
- }
- }
-
- if (!ip_addr_isany(ipaddr)) {
- pcb->local_ip = *ipaddr;
- }
- pcb->local_port = port;
- TCP_REG(&tcp_bound_pcbs, pcb);
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_bind: bind to port %"U16_F"\n", port));
- return ERR_OK;
-}
-#if LWIP_CALLBACK_API
-/**
- * Default accept callback if no accept callback is specified by the user.
- */
-static err_t
-tcp_accept_null(void *arg, struct tcp_pcb *pcb, err_t err)
-{
- LWIP_UNUSED_ARG(arg);
- LWIP_UNUSED_ARG(pcb);
- LWIP_UNUSED_ARG(err);
-
- return ERR_ABRT;
-}
-#endif /* LWIP_CALLBACK_API */
-
-/**
- * Set the state of the connection to be LISTEN, which means that it
- * is able to accept incoming connections. The protocol control block
- * is reallocated in order to consume less memory. Setting the
- * connection to LISTEN is an irreversible process.
- *
- * @param pcb the original tcp_pcb
- * @param backlog the incoming connections queue limit
- * @return tcp_pcb used for listening, consumes less memory.
- *
- * @note The original tcp_pcb is freed. This function therefore has to be
- * called like this:
- * tpcb = tcp_listen(tpcb);
- */
-struct tcp_pcb *
-tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog)
-{
- struct tcp_pcb_listen *lpcb;
-
- LWIP_UNUSED_ARG(backlog);
- LWIP_ERROR("tcp_listen: pcb already connected", pcb->state == CLOSED, return NULL);
-
- /* already listening? */
- if (pcb->state == LISTEN) {
- return pcb;
- }
- lpcb = memp_malloc(MEMP_TCP_PCB_LISTEN);
- if (lpcb == NULL) {
- return NULL;
- }
- lpcb->callback_arg = pcb->callback_arg;
- lpcb->local_port = pcb->local_port;
- lpcb->state = LISTEN;
- lpcb->so_options = pcb->so_options;
- lpcb->so_options |= SOF_ACCEPTCONN;
- lpcb->ttl = pcb->ttl;
- lpcb->tos = pcb->tos;
- ip_addr_set(&lpcb->local_ip, &pcb->local_ip);
- TCP_RMV(&tcp_bound_pcbs, pcb);
- memp_free(MEMP_TCP_PCB, pcb);
-#if LWIP_CALLBACK_API
- lpcb->accept = tcp_accept_null;
-#endif /* LWIP_CALLBACK_API */
-#if TCP_LISTEN_BACKLOG
- lpcb->accepts_pending = 0;
- lpcb->backlog = (backlog ? backlog : 1);
-#endif /* TCP_LISTEN_BACKLOG */
- TCP_REG(&tcp_listen_pcbs.listen_pcbs, lpcb);
- return (struct tcp_pcb *)lpcb;
-}
-
-/**
- * Update the state that tracks the available window space to advertise.
- *
- * Returns how much extra window would be advertised if we sent an
- * update now.
- */
-u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
-{
- u32_t new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd;
-
- if (TCP_SEQ_GEQ(new_right_edge, pcb->rcv_ann_right_edge + LWIP_MIN((TCP_WND / 2), pcb->mss))) {
- /* we can advertise more window */
- pcb->rcv_ann_wnd = pcb->rcv_wnd;
- return new_right_edge - pcb->rcv_ann_right_edge;
- } else {
- if (TCP_SEQ_GT(pcb->rcv_nxt, pcb->rcv_ann_right_edge)) {
- /* Can happen due to other end sending out of advertised window,
- * but within actual available (but not yet advertised) window */
- pcb->rcv_ann_wnd = 0;
- } else {
- /* keep the right edge of window constant */
- pcb->rcv_ann_wnd = pcb->rcv_ann_right_edge - pcb->rcv_nxt;
- }
- return 0;
- }
-}
-
-/**
- * This function should be called by the application when it has
- * processed the data. The purpose is to advertise a larger window
- * when the data has been processed.
- *
- * @param pcb the tcp_pcb for which data is read
- * @param len the amount of bytes that have been read by the application
- */
-void
-tcp_recved(struct tcp_pcb *pcb, u16_t len)
-{
- int wnd_inflation;
-
- LWIP_ASSERT("tcp_recved: len would wrap rcv_wnd\n",
- len <= 0xffff - pcb->rcv_wnd );
-
- pcb->rcv_wnd += len;
- if (pcb->rcv_wnd > TCP_WND)
- pcb->rcv_wnd = TCP_WND;
-
- wnd_inflation = tcp_update_rcv_ann_wnd(pcb);
-
- /* If the change in the right edge of window is significant (default
- * watermark is TCP_WND/2), then send an explicit update now.
- * Otherwise wait for a packet to be sent in the normal course of
- * events (or more window to be available later) */
- if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD)
- tcp_ack_now(pcb);
-
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_recved: recveived %"U16_F" bytes, wnd %"U16_F" (%"U16_F").\n",
- len, pcb->rcv_wnd, TCP_WND - pcb->rcv_wnd));
-}
-
-/**
- * A nastly hack featuring 'goto' statements that allocates a
- * new TCP local port.
- *
- * @return a new (free) local TCP port number
- */
-static u16_t
-tcp_new_port(void)
-{
- struct tcp_pcb *pcb;
-#ifndef TCP_LOCAL_PORT_RANGE_START
-#define TCP_LOCAL_PORT_RANGE_START 4096
-#define TCP_LOCAL_PORT_RANGE_END 0x7fff
-#endif
- static u16_t port = TCP_LOCAL_PORT_RANGE_START;
-
- again:
- if (++port > TCP_LOCAL_PORT_RANGE_END) {
- port = TCP_LOCAL_PORT_RANGE_START;
- }
-
- for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
- if (pcb->local_port == port) {
- goto again;
- }
- }
- for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
- if (pcb->local_port == port) {
- goto again;
- }
- }
- for(pcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs; pcb != NULL; pcb = pcb->next) {
- if (pcb->local_port == port) {
- goto again;
- }
- }
- return port;
-}
-
-/**
- * Connects to another host. The function given as the "connected"
- * argument will be called when the connection has been established.
- *
- * @param pcb the tcp_pcb used to establish the connection
- * @param ipaddr the remote ip address to connect to
- * @param port the remote tcp port to connect to
- * @param connected callback function to call when connected (or on error)
- * @return ERR_VAL if invalid arguments are given
- * ERR_OK if connect request has been sent
- * other err_t values if connect request couldn't be sent
- */
-err_t
-tcp_connect(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port,
- err_t (* connected)(void *arg, struct tcp_pcb *tpcb, err_t err))
-{
- err_t ret;
- u32_t iss;
-
- LWIP_ERROR("tcp_connect: can only connected from state CLOSED", pcb->state == CLOSED, return ERR_ISCONN);
-
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_connect to port %"U16_F"\n", port));
- if (ipaddr != NULL) {
- pcb->remote_ip = *ipaddr;
- } else {
- return ERR_VAL;
- }
- pcb->remote_port = port;
- if (pcb->local_port == 0) {
- pcb->local_port = tcp_new_port();
- }
- iss = tcp_next_iss();
- pcb->rcv_nxt = 0;
- pcb->snd_nxt = iss;
- pcb->lastack = iss - 1;
- pcb->snd_lbb = iss - 1;
- pcb->rcv_wnd = TCP_WND;
- pcb->rcv_ann_wnd = TCP_WND;
- pcb->rcv_ann_right_edge = pcb->rcv_nxt;
- pcb->snd_wnd = TCP_WND;
- /* As initial send MSS, we use TCP_MSS but limit it to 536.
- The send MSS is updated when an MSS option is received. */
- pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
-#if TCP_CALCULATE_EFF_SEND_MSS
- pcb->mss = tcp_eff_send_mss(pcb->mss, ipaddr);
-#endif /* TCP_CALCULATE_EFF_SEND_MSS */
- pcb->cwnd = 1;
- pcb->ssthresh = pcb->mss * 10;
- pcb->state = SYN_SENT;
-#if LWIP_CALLBACK_API
- pcb->connected = connected;
-#endif /* LWIP_CALLBACK_API */
- TCP_RMV(&tcp_bound_pcbs, pcb);
- TCP_REG(&tcp_active_pcbs, pcb);
-
- snmp_inc_tcpactiveopens();
-
- ret = tcp_enqueue(pcb, NULL, 0, TCP_SYN, 0, TF_SEG_OPTS_MSS
-#if LWIP_TCP_TIMESTAMPS
- | TF_SEG_OPTS_TS
-#endif
- );
- if (ret == ERR_OK) {
- tcp_output(pcb);
- }
- return ret;
-}
-
-/**
- * Called every 500 ms and implements the retransmission timer and the timer that
- * removes PCBs that have been in TIME-WAIT for enough time. It also increments
- * various timers such as the inactivity timer in each PCB.
- *
- * Automatically called from tcp_tmr().
- */
-void
-tcp_slowtmr(void)
-{
- struct tcp_pcb *pcb, *pcb2, *prev;
- u16_t eff_wnd;
- u8_t pcb_remove; /* flag if a PCB should be removed */
- u8_t pcb_reset; /* flag if a RST should be sent when removing */
- err_t err;
-
- err = ERR_OK;
-
- ++tcp_ticks;
-
- /* Steps through all of the active PCBs. */
- prev = NULL;
- pcb = tcp_active_pcbs;
- if (pcb == NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n"));
- }
- while (pcb != NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n"));
- LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state != CLOSED);
- LWIP_ASSERT("tcp_slowtmr: active pcb->state != LISTEN\n", pcb->state != LISTEN);
- LWIP_ASSERT("tcp_slowtmr: active pcb->state != TIME-WAIT\n", pcb->state != TIME_WAIT);
-
- pcb_remove = 0;
- pcb_reset = 0;
-
- if (pcb->state == SYN_SENT && pcb->nrtx == TCP_SYNMAXRTX) {
- ++pcb_remove;
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max SYN retries reached\n"));
- }
- else if (pcb->nrtx == TCP_MAXRTX) {
- ++pcb_remove;
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n"));
- } else {
- if (pcb->persist_backoff > 0) {
- /* If snd_wnd is zero, use persist timer to send 1 byte probes
- * instead of using the standard retransmission mechanism. */
- pcb->persist_cnt++;
- if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) {
- pcb->persist_cnt = 0;
- if (pcb->persist_backoff < sizeof(tcp_persist_backoff)) {
- pcb->persist_backoff++;
- }
- tcp_zero_window_probe(pcb);
- }
- } else {
- /* Increase the retransmission timer if it is running */
- if(pcb->rtime >= 0)
- ++pcb->rtime;
-
- if (pcb->unacked != NULL && pcb->rtime >= pcb->rto) {
- /* Time for a retransmission. */
- LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_slowtmr: rtime %"S16_F
- " pcb->rto %"S16_F"\n",
- pcb->rtime, pcb->rto));
-
- /* Double retransmission time-out unless we are trying to
- * connect to somebody (i.e., we are in SYN_SENT). */
- if (pcb->state != SYN_SENT) {
- pcb->rto = ((pcb->sa >> 3) + pcb->sv) << tcp_backoff[pcb->nrtx];
- }
-
- /* Reset the retransmission timer. */
- pcb->rtime = 0;
-
- /* Reduce congestion window and ssthresh. */
- eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd);
- pcb->ssthresh = eff_wnd >> 1;
- if (pcb->ssthresh < pcb->mss) {
- pcb->ssthresh = pcb->mss * 2;
- }
- pcb->cwnd = pcb->mss;
- LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: cwnd %"U16_F
- " ssthresh %"U16_F"\n",
- pcb->cwnd, pcb->ssthresh));
-
- /* The following needs to be called AFTER cwnd is set to one
- mss - STJ */
- tcp_rexmit_rto(pcb);
- }
- }
- }
- /* Check if this PCB has stayed too long in FIN-WAIT-2 */
- if (pcb->state == FIN_WAIT_2) {
- if ((u32_t)(tcp_ticks - pcb->tmr) >
- TCP_FIN_WAIT_TIMEOUT / TCP_SLOW_INTERVAL) {
- ++pcb_remove;
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in FIN-WAIT-2\n"));
- }
- }
-
- /* Check if KEEPALIVE should be sent */
- if((pcb->so_options & SOF_KEEPALIVE) &&
- ((pcb->state == ESTABLISHED) ||
- (pcb->state == CLOSE_WAIT))) {
-#if LWIP_TCP_KEEPALIVE
- if((u32_t)(tcp_ticks - pcb->tmr) >
- (pcb->keep_idle + (pcb->keep_cnt*pcb->keep_intvl))
- / TCP_SLOW_INTERVAL)
-#else
- if((u32_t)(tcp_ticks - pcb->tmr) >
- (pcb->keep_idle + TCP_MAXIDLE) / TCP_SLOW_INTERVAL)
-#endif /* LWIP_TCP_KEEPALIVE */
- {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: KEEPALIVE timeout. Aborting connection to %"U16_F".%"U16_F".%"U16_F".%"U16_F".\n",
- ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip),
- ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip)));
-
- ++pcb_remove;
- ++pcb_reset;
- }
-#if LWIP_TCP_KEEPALIVE
- else if((u32_t)(tcp_ticks - pcb->tmr) >
- (pcb->keep_idle + pcb->keep_cnt_sent * pcb->keep_intvl)
- / TCP_SLOW_INTERVAL)
-#else
- else if((u32_t)(tcp_ticks - pcb->tmr) >
- (pcb->keep_idle + pcb->keep_cnt_sent * TCP_KEEPINTVL_DEFAULT)
- / TCP_SLOW_INTERVAL)
-#endif /* LWIP_TCP_KEEPALIVE */
- {
- tcp_keepalive(pcb);
- pcb->keep_cnt_sent++;
- }
- }
-
- /* If this PCB has queued out of sequence data, but has been
- inactive for too long, will drop the data (it will eventually
- be retransmitted). */
-#if TCP_QUEUE_OOSEQ
- if (pcb->ooseq != NULL &&
- (u32_t)tcp_ticks - pcb->tmr >= pcb->rto * TCP_OOSEQ_TIMEOUT) {
- tcp_segs_free(pcb->ooseq);
- pcb->ooseq = NULL;
- LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: dropping OOSEQ queued data\n"));
- }
-#endif /* TCP_QUEUE_OOSEQ */
-
- /* Check if this PCB has stayed too long in SYN-RCVD */
- if (pcb->state == SYN_RCVD) {
- if ((u32_t)(tcp_ticks - pcb->tmr) >
- TCP_SYN_RCVD_TIMEOUT / TCP_SLOW_INTERVAL) {
- ++pcb_remove;
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in SYN-RCVD\n"));
- }
- }
-
- /* Check if this PCB has stayed too long in LAST-ACK */
- if (pcb->state == LAST_ACK) {
- if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) {
- ++pcb_remove;
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in LAST-ACK\n"));
- }
- }
-
- /* If the PCB should be removed, do it. */
- if (pcb_remove) {
- tcp_pcb_purge(pcb);
- /* Remove PCB from tcp_active_pcbs list. */
- if (prev != NULL) {
- LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_active_pcbs", pcb != tcp_active_pcbs);
- prev->next = pcb->next;
- } else {
- /* This PCB was the first. */
- LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_active_pcbs", tcp_active_pcbs == pcb);
- tcp_active_pcbs = pcb->next;
- }
-
- TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_ABRT);
- if (pcb_reset) {
- tcp_rst(pcb->snd_nxt, pcb->rcv_nxt, &pcb->local_ip, &pcb->remote_ip,
- pcb->local_port, pcb->remote_port);
- }
-
- pcb2 = pcb->next;
- memp_free(MEMP_TCP_PCB, pcb);
- pcb = pcb2;
- } else {
-
- /* We check if we should poll the connection. */
- ++pcb->polltmr;
- if (pcb->polltmr >= pcb->pollinterval) {
- pcb->polltmr = 0;
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: polling application\n"));
- TCP_EVENT_POLL(pcb, err);
- if (err == ERR_OK) {
- tcp_output(pcb);
- }
- }
-
- prev = pcb;
- pcb = pcb->next;
- }
- }
-
-
- /* Steps through all of the TIME-WAIT PCBs. */
- prev = NULL;
- pcb = tcp_tw_pcbs;
- while (pcb != NULL) {
- LWIP_ASSERT("tcp_slowtmr: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
- pcb_remove = 0;
-
- /* Check if this PCB has stayed long enough in TIME-WAIT */
- if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) {
- ++pcb_remove;
- }
-
-
-
- /* If the PCB should be removed, do it. */
- if (pcb_remove) {
- tcp_pcb_purge(pcb);
- /* Remove PCB from tcp_tw_pcbs list. */
- if (prev != NULL) {
- LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_tw_pcbs", pcb != tcp_tw_pcbs);
- prev->next = pcb->next;
- } else {
- /* This PCB was the first. */
- LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb);
- tcp_tw_pcbs = pcb->next;
- }
- pcb2 = pcb->next;
- memp_free(MEMP_TCP_PCB, pcb);
- pcb = pcb2;
- } else {
- prev = pcb;
- pcb = pcb->next;
- }
- }
-}
-
-/**
- * Is called every TCP_FAST_INTERVAL (250 ms) and process data previously
- * "refused" by upper layer (application) and sends delayed ACKs.
- *
- * Automatically called from tcp_tmr().
- */
-void
-tcp_fasttmr(void)
-{
- struct tcp_pcb *pcb;
-
- for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
- /* If there is data which was previously "refused" by upper layer */
- if (pcb->refused_data != NULL) {
- /* Notify again application with data previously received. */
- err_t err;
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_fasttmr: notify kept packet\n"));
- TCP_EVENT_RECV(pcb, pcb->refused_data, ERR_OK, err);
- if (err == ERR_OK) {
- pcb->refused_data = NULL;
- }
- }
-
- /* send delayed ACKs */
- if (pcb->flags & TF_ACK_DELAY) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_fasttmr: delayed ACK\n"));
- tcp_ack_now(pcb);
- pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
- }
- }
-}
-
-/**
- * Deallocates a list of TCP segments (tcp_seg structures).
- *
- * @param seg tcp_seg list of TCP segments to free
- * @return the number of pbufs that were deallocated
- */
-u8_t
-tcp_segs_free(struct tcp_seg *seg)
-{
- u8_t count = 0;
- struct tcp_seg *next;
- while (seg != NULL) {
- next = seg->next;
- count += tcp_seg_free(seg);
- seg = next;
- }
- return count;
-}
-
-/**
- * Frees a TCP segment (tcp_seg structure).
- *
- * @param seg single tcp_seg to free
- * @return the number of pbufs that were deallocated
- */
-u8_t
-tcp_seg_free(struct tcp_seg *seg)
-{
- u8_t count = 0;
-
- if (seg != NULL) {
- if (seg->p != NULL) {
- count = pbuf_free(seg->p);
-#if TCP_DEBUG
- seg->p = NULL;
-#endif /* TCP_DEBUG */
- }
- memp_free(MEMP_TCP_SEG, seg);
- }
- return count;
-}
-
-/**
- * Sets the priority of a connection.
- *
- * @param pcb the tcp_pcb to manipulate
- * @param prio new priority
- */
-void
-tcp_setprio(struct tcp_pcb *pcb, u8_t prio)
-{
- pcb->prio = prio;
-}
-#if TCP_QUEUE_OOSEQ
-
-/**
- * Returns a copy of the given TCP segment.
- * The pbuf and data are not copied, only the pointers
- *
- * @param seg the old tcp_seg
- * @return a copy of seg
- */
-struct tcp_seg *
-tcp_seg_copy(struct tcp_seg *seg)
-{
- struct tcp_seg *cseg;
-
- cseg = memp_malloc(MEMP_TCP_SEG);
- if (cseg == NULL) {
- return NULL;
- }
- SMEMCPY((u8_t *)cseg, (const u8_t *)seg, sizeof(struct tcp_seg));
- pbuf_ref(cseg->p);
- return cseg;
-}
-#endif
-
-#if LWIP_CALLBACK_API
-/**
- * Default receive callback that is called if the user didn't register
- * a recv callback for the pcb.
- */
-err_t
-tcp_recv_null(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
-{
- LWIP_UNUSED_ARG(arg);
- if (p != NULL) {
- tcp_recved(pcb, p->tot_len);
- pbuf_free(p);
- } else if (err == ERR_OK) {
- return tcp_close(pcb);
- }
- return ERR_OK;
-}
-#endif /* LWIP_CALLBACK_API */
-
-/**
- * Kills the oldest active connection that has lower priority than prio.
- *
- * @param prio minimum priority
- */
-static void
-tcp_kill_prio(u8_t prio)
-{
- struct tcp_pcb *pcb, *inactive;
- u32_t inactivity;
- u8_t mprio;
-
-
- mprio = TCP_PRIO_MAX;
-
- /* We kill the oldest active connection that has lower priority than prio. */
- inactivity = 0;
- inactive = NULL;
- for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
- if (pcb->prio <= prio &&
- pcb->prio <= mprio &&
- (u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
- inactivity = tcp_ticks - pcb->tmr;
- inactive = pcb;
- mprio = pcb->prio;
- }
- }
- if (inactive != NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_prio: killing oldest PCB %p (%"S32_F")\n",
- (void *)inactive, inactivity));
- tcp_abort(inactive);
- }
-}
-
-/**
- * Kills the oldest connection that is in TIME_WAIT state.
- * Called from tcp_alloc() if no more connections are available.
- */
-static void
-tcp_kill_timewait(void)
-{
- struct tcp_pcb *pcb, *inactive;
- u32_t inactivity;
-
- inactivity = 0;
- inactive = NULL;
- /* Go through the list of TIME_WAIT pcbs and get the oldest pcb. */
- for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
- if ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
- inactivity = tcp_ticks - pcb->tmr;
- inactive = pcb;
- }
- }
- if (inactive != NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_timewait: killing oldest TIME-WAIT PCB %p (%"S32_F")\n",
- (void *)inactive, inactivity));
- tcp_abort(inactive);
- }
-}
-
-/**
- * Allocate a new tcp_pcb structure.
- *
- * @param prio priority for the new pcb
- * @return a new tcp_pcb that initially is in state CLOSED
- */
-struct tcp_pcb *
-tcp_alloc(u8_t prio)
-{
- struct tcp_pcb *pcb;
- u32_t iss;
-
- pcb = memp_malloc(MEMP_TCP_PCB);
- if (pcb == NULL) {
- /* Try killing oldest connection in TIME-WAIT. */
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing off oldest TIME-WAIT connection\n"));
- tcp_kill_timewait();
- /* Try to allocate a tcp_pcb again. */
- pcb = memp_malloc(MEMP_TCP_PCB);
- if (pcb == NULL) {
- /* Try killing active connections with lower priority than the new one. */
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing connection with prio lower than %d\n", prio));
- tcp_kill_prio(prio);
- /* Try to allocate a tcp_pcb again. */
- pcb = memp_malloc(MEMP_TCP_PCB);
- if (pcb != NULL) {
- /* adjust err stats: memp_malloc failed twice before */
- MEMP_STATS_DEC(err, MEMP_TCP_PCB);
- }
- }
- if (pcb != NULL) {
- /* adjust err stats: timewait PCB was freed above */
- MEMP_STATS_DEC(err, MEMP_TCP_PCB);
- }
- }
- if (pcb != NULL) {
- memset(pcb, 0, sizeof(struct tcp_pcb));
- pcb->prio = TCP_PRIO_NORMAL;
- pcb->snd_buf = TCP_SND_BUF;
- pcb->snd_queuelen = 0;
- pcb->rcv_wnd = TCP_WND;
- pcb->rcv_ann_wnd = TCP_WND;
- pcb->tos = 0;
- pcb->ttl = TCP_TTL;
- /* As initial send MSS, we use TCP_MSS but limit it to 536.
- The send MSS is updated when an MSS option is received. */
- pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
- pcb->rto = 3000 / TCP_SLOW_INTERVAL;
- pcb->sa = 0;
- pcb->sv = 3000 / TCP_SLOW_INTERVAL;
- pcb->rtime = -1;
- pcb->cwnd = 1;
- iss = tcp_next_iss();
- pcb->snd_wl2 = iss;
- pcb->snd_nxt = iss;
- pcb->lastack = iss;
- pcb->snd_lbb = iss;
- pcb->tmr = tcp_ticks;
-
- pcb->polltmr = 0;
-
-#if LWIP_CALLBACK_API
- pcb->recv = tcp_recv_null;
-#endif /* LWIP_CALLBACK_API */
-
- /* Init KEEPALIVE timer */
- pcb->keep_idle = TCP_KEEPIDLE_DEFAULT;
-
-#if LWIP_TCP_KEEPALIVE
- pcb->keep_intvl = TCP_KEEPINTVL_DEFAULT;
- pcb->keep_cnt = TCP_KEEPCNT_DEFAULT;
-#endif /* LWIP_TCP_KEEPALIVE */
-
- pcb->keep_cnt_sent = 0;
- }
- return pcb;
-}
-
-/**
- * Creates a new TCP protocol control block but doesn't place it on
- * any of the TCP PCB lists.
- * The pcb is not put on any list until binding using tcp_bind().
- *
- * @internal: Maybe there should be a idle TCP PCB list where these
- * PCBs are put on. Port reservation using tcp_bind() is implemented but
- * allocated pcbs that are not bound can't be killed automatically if wanting
- * to allocate a pcb with higher prio (@see tcp_kill_prio())
- *
- * @return a new tcp_pcb that initially is in state CLOSED
- */
-struct tcp_pcb *
-tcp_new(void)
-{
- return tcp_alloc(TCP_PRIO_NORMAL);
-}
-
-/**
- * Used to specify the argument that should be passed callback
- * functions.
- *
- * @param pcb tcp_pcb to set the callback argument
- * @param arg void pointer argument to pass to callback functions
- */
-void
-tcp_arg(struct tcp_pcb *pcb, void *arg)
-{
- pcb->callback_arg = arg;
-}
-#if LWIP_CALLBACK_API
-
-/**
- * Used to specify the function that should be called when a TCP
- * connection receives data.
- *
- * @param pcb tcp_pcb to set the recv callback
- * @param recv callback function to call for this pcb when data is received
- */
-void
-tcp_recv(struct tcp_pcb *pcb,
- err_t (* recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err))
-{
- pcb->recv = recv;
-}
-
-/**
- * Used to specify the function that should be called when TCP data
- * has been successfully delivered to the remote host.
- *
- * @param pcb tcp_pcb to set the sent callback
- * @param sent callback function to call for this pcb when data is successfully sent
- */
-void
-tcp_sent(struct tcp_pcb *pcb,
- err_t (* sent)(void *arg, struct tcp_pcb *tpcb, u16_t len))
-{
- pcb->sent = sent;
-}
-
-/**
- * Used to specify the function that should be called when a fatal error
- * has occured on the connection.
- *
- * @param pcb tcp_pcb to set the err callback
- * @param errf callback function to call for this pcb when a fatal error
- * has occured on the connection
- */
-void
-tcp_err(struct tcp_pcb *pcb,
- void (* errf)(void *arg, err_t err))
-{
- pcb->errf = errf;
-}
-
-/**
- * Used for specifying the function that should be called when a
- * LISTENing connection has been connected to another host.
- *
- * @param pcb tcp_pcb to set the accept callback
- * @param accept callback function to call for this pcb when LISTENing
- * connection has been connected to another host
- */
-void
-tcp_accept(struct tcp_pcb *pcb,
- err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err))
-{
- pcb->accept = accept;
-}
-#endif /* LWIP_CALLBACK_API */
-
-
-/**
- * Used to specify the function that should be called periodically
- * from TCP. The interval is specified in terms of the TCP coarse
- * timer interval, which is called twice a second.
- *
- */
-void
-tcp_poll(struct tcp_pcb *pcb,
- err_t (* poll)(void *arg, struct tcp_pcb *tpcb), u8_t interval)
-{
-#if LWIP_CALLBACK_API
- pcb->poll = poll;
-#endif /* LWIP_CALLBACK_API */
- pcb->pollinterval = interval;
-}
-
-/**
- * Purges a TCP PCB. Removes any buffered data and frees the buffer memory
- * (pcb->ooseq, pcb->unsent and pcb->unacked are freed).
- *
- * @param pcb tcp_pcb to purge. The pcb itself is not deallocated!
- */
-void
-tcp_pcb_purge(struct tcp_pcb *pcb)
-{
- if (pcb->state != CLOSED &&
- pcb->state != TIME_WAIT &&
- pcb->state != LISTEN) {
-
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge\n"));
-
-#if TCP_LISTEN_BACKLOG
- if (pcb->state == SYN_RCVD) {
- /* Need to find the corresponding listen_pcb and decrease its accepts_pending */
- struct tcp_pcb_listen *lpcb;
- LWIP_ASSERT("tcp_pcb_purge: pcb->state == SYN_RCVD but tcp_listen_pcbs is NULL",
- tcp_listen_pcbs.listen_pcbs != NULL);
- for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
- if ((lpcb->local_port == pcb->local_port) &&
- (ip_addr_isany(&lpcb->local_ip) ||
- ip_addr_cmp(&pcb->local_ip, &lpcb->local_ip))) {
- /* port and address of the listen pcb match the timed-out pcb */
- LWIP_ASSERT("tcp_pcb_purge: listen pcb does not have accepts pending",
- lpcb->accepts_pending > 0);
- lpcb->accepts_pending--;
- break;
- }
- }
- }
-#endif /* TCP_LISTEN_BACKLOG */
-
-
- if (pcb->refused_data != NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->refused_data\n"));
- pbuf_free(pcb->refused_data);
- pcb->refused_data = NULL;
- }
- if (pcb->unsent != NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: not all data sent\n"));
- }
- if (pcb->unacked != NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->unacked\n"));
- }
-#if TCP_QUEUE_OOSEQ /* LW */
- if (pcb->ooseq != NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->ooseq\n"));
- }
-
- /* Stop the retransmission timer as it will expect data on unacked
- queue if it fires */
- pcb->rtime = -1;
-
- tcp_segs_free(pcb->ooseq);
- pcb->ooseq = NULL;
-#endif /* TCP_QUEUE_OOSEQ */
- tcp_segs_free(pcb->unsent);
- tcp_segs_free(pcb->unacked);
- pcb->unacked = pcb->unsent = NULL;
- }
-}
-
-/**
- * Purges the PCB and removes it from a PCB list. Any delayed ACKs are sent first.
- *
- * @param pcblist PCB list to purge.
- * @param pcb tcp_pcb to purge. The pcb itself is NOT deallocated!
- */
-void
-tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb)
-{
- TCP_RMV(pcblist, pcb);
-
- tcp_pcb_purge(pcb);
-
- /* if there is an outstanding delayed ACKs, send it */
- if (pcb->state != TIME_WAIT &&
- pcb->state != LISTEN &&
- pcb->flags & TF_ACK_DELAY) {
- pcb->flags |= TF_ACK_NOW;
- tcp_output(pcb);
- }
-
- if (pcb->state != LISTEN) {
- LWIP_ASSERT("unsent segments leaking", pcb->unsent == NULL);
- LWIP_ASSERT("unacked segments leaking", pcb->unacked == NULL);
-#if TCP_QUEUE_OOSEQ
- LWIP_ASSERT("ooseq segments leaking", pcb->ooseq == NULL);
-#endif /* TCP_QUEUE_OOSEQ */
- }
-
- pcb->state = CLOSED;
-
- LWIP_ASSERT("tcp_pcb_remove: tcp_pcbs_sane()", tcp_pcbs_sane());
-}
-
-/**
- * Calculates a new initial sequence number for new connections.
- *
- * @return u32_t pseudo random sequence number
- */
-u32_t
-tcp_next_iss(void)
-{
- static u32_t iss = 6510;
-
- iss += tcp_ticks; /* XXX */
- return iss;
-}
-
-#if TCP_CALCULATE_EFF_SEND_MSS
-/**
- * Calcluates the effective send mss that can be used for a specific IP address
- * by using ip_route to determin the netif used to send to the address and
- * calculating the minimum of TCP_MSS and that netif's mtu (if set).
- */
-u16_t
-tcp_eff_send_mss(u16_t sendmss, struct ip_addr *addr)
-{
- u16_t mss_s;
- struct netif *outif;
-
- outif = ip_route(addr);
- if ((outif != NULL) && (outif->mtu != 0)) {
- mss_s = outif->mtu - IP_HLEN - TCP_HLEN;
- /* RFC 1122, chap 4.2.2.6:
- * Eff.snd.MSS = min(SendMSS+20, MMS_S) - TCPhdrsize - IPoptionsize
- * We correct for TCP options in tcp_enqueue(), and don't support
- * IP options
- */
- sendmss = LWIP_MIN(sendmss, mss_s);
- }
- return sendmss;
-}
-#endif /* TCP_CALCULATE_EFF_SEND_MSS */
-
-const char*
-tcp_debug_state_str(enum tcp_state s)
-{
- return tcp_state_str[s];
-}
-
-#if TCP_DEBUG || TCP_INPUT_DEBUG || TCP_OUTPUT_DEBUG
-/**
- * Print a tcp header for debugging purposes.
- *
- * @param tcphdr pointer to a struct tcp_hdr
- */
-void
-tcp_debug_print(struct tcp_hdr *tcphdr)
-{
- LWIP_DEBUGF(TCP_DEBUG, ("TCP header:\n"));
- LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(TCP_DEBUG, ("| %5"U16_F" | %5"U16_F" | (src port, dest port)\n",
- ntohs(tcphdr->src), ntohs(tcphdr->dest)));
- LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(TCP_DEBUG, ("| %010"U32_F" | (seq no)\n",
- ntohl(tcphdr->seqno)));
- LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(TCP_DEBUG, ("| %010"U32_F" | (ack no)\n",
- ntohl(tcphdr->ackno)));
- LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(TCP_DEBUG, ("| %2"U16_F" | |%"U16_F"%"U16_F"%"U16_F"%"U16_F"%"U16_F"%"U16_F"| %5"U16_F" | (hdrlen, flags (",
- TCPH_HDRLEN(tcphdr),
- TCPH_FLAGS(tcphdr) >> 5 & 1,
- TCPH_FLAGS(tcphdr) >> 4 & 1,
- TCPH_FLAGS(tcphdr) >> 3 & 1,
- TCPH_FLAGS(tcphdr) >> 2 & 1,
- TCPH_FLAGS(tcphdr) >> 1 & 1,
- TCPH_FLAGS(tcphdr) & 1,
- ntohs(tcphdr->wnd)));
- tcp_debug_print_flags(TCPH_FLAGS(tcphdr));
- LWIP_DEBUGF(TCP_DEBUG, ("), win)\n"));
- LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(TCP_DEBUG, ("| 0x%04"X16_F" | %5"U16_F" | (chksum, urgp)\n",
- ntohs(tcphdr->chksum), ntohs(tcphdr->urgp)));
- LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n"));
-}
-
-/**
- * Print a tcp state for debugging purposes.
- *
- * @param s enum tcp_state to print
- */
-void
-tcp_debug_print_state(enum tcp_state s)
-{
- LWIP_DEBUGF(TCP_DEBUG, ("State: %s\n", tcp_state_str[s]));
-}
-
-/**
- * Print tcp flags for debugging purposes.
- *
- * @param flags tcp flags, all active flags are printed
- */
-void
-tcp_debug_print_flags(u8_t flags)
-{
- if (flags & TCP_FIN) {
- LWIP_DEBUGF(TCP_DEBUG, ("FIN "));
- }
- if (flags & TCP_SYN) {
- LWIP_DEBUGF(TCP_DEBUG, ("SYN "));
- }
- if (flags & TCP_RST) {
- LWIP_DEBUGF(TCP_DEBUG, ("RST "));
- }
- if (flags & TCP_PSH) {
- LWIP_DEBUGF(TCP_DEBUG, ("PSH "));
- }
- if (flags & TCP_ACK) {
- LWIP_DEBUGF(TCP_DEBUG, ("ACK "));
- }
- if (flags & TCP_URG) {
- LWIP_DEBUGF(TCP_DEBUG, ("URG "));
- }
- if (flags & TCP_ECE) {
- LWIP_DEBUGF(TCP_DEBUG, ("ECE "));
- }
- if (flags & TCP_CWR) {
- LWIP_DEBUGF(TCP_DEBUG, ("CWR "));
- }
- LWIP_DEBUGF(TCP_DEBUG, ("\n"));
-}
-
-/**
- * Print all tcp_pcbs in every list for debugging purposes.
- */
-void
-tcp_debug_print_pcbs(void)
-{
- struct tcp_pcb *pcb;
- LWIP_DEBUGF(TCP_DEBUG, ("Active PCB states:\n"));
- for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
- LWIP_DEBUGF(TCP_DEBUG, ("[%p]Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ",
- pcb, pcb->local_port, pcb->remote_port,
- pcb->snd_nxt, pcb->rcv_nxt));
- tcp_debug_print_state(pcb->state);
- }
- LWIP_DEBUGF(TCP_DEBUG, ("Listen PCB states:\n"));
- for(pcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs; pcb != NULL; pcb = pcb->next) {
- LWIP_DEBUGF(TCP_DEBUG, ("[%p]Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ",
- pcb, pcb->local_port, pcb->remote_port,
- pcb->snd_nxt, pcb->rcv_nxt));
- tcp_debug_print_state(pcb->state);
- }
- LWIP_DEBUGF(TCP_DEBUG, ("TIME-WAIT PCB states:\n"));
- for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
- LWIP_DEBUGF(TCP_DEBUG, ("[%p]Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ",
- pcb, pcb->local_port, pcb->remote_port,
- pcb->snd_nxt, pcb->rcv_nxt));
- tcp_debug_print_state(pcb->state);
- }
-}
-
-/**
- * Check state consistency of the tcp_pcb lists.
- */
-s16_t
-tcp_pcbs_sane(void)
-{
- struct tcp_pcb *pcb;
- for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
- LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != CLOSED", pcb->state != CLOSED);
- LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != LISTEN", pcb->state != LISTEN);
- LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
- }
- for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
- LWIP_ASSERT("tcp_pcbs_sane: tw pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
- }
- return 1;
-}
-#endif /* TCP_DEBUG */
-
-#endif /* LWIP_TCP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_in.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_in.c
deleted file mode 100644
index 3930b40..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_in.c
+++ /dev/null
@@ -1,1508 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Transmission Control Protocol, incoming traffic
- *
- * The input processing functions of the TCP layer.
- *
- * These functions are generally called in the order (ip_input() ->)
- * tcp_input() -> * tcp_process() -> tcp_receive() (-> application).
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/tcp.h"
-#include "lwip/def.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/mem.h"
-#include "lwip/memp.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/stats.h"
-#include "lwip/snmp.h"
-#include "arch/perf.h"
-
-/* These variables are global to all functions involved in the input
- processing of TCP segments. They are set by the tcp_input()
- function. */
-static struct tcp_seg inseg;
-static struct tcp_hdr *tcphdr;
-static struct ip_hdr *iphdr;
-static u32_t seqno, ackno;
-static u8_t flags;
-static u16_t tcplen;
-
-static u8_t recv_flags;
-static struct pbuf *recv_data;
-
-struct tcp_pcb *tcp_input_pcb;
-
-/* Forward declarations. */
-static err_t tcp_process(struct tcp_pcb *pcb);
-static void tcp_receive(struct tcp_pcb *pcb);
-static void tcp_parseopt(struct tcp_pcb *pcb);
-
-static err_t tcp_listen_input(struct tcp_pcb_listen *pcb);
-static err_t tcp_timewait_input(struct tcp_pcb *pcb);
-
-/**
- * The initial input processing of TCP. It verifies the TCP header, demultiplexes
- * the segment between the PCBs and passes it on to tcp_process(), which implements
- * the TCP finite state machine. This function is called by the IP layer (in
- * ip_input()).
- *
- * @param p received TCP segment to process (p->payload pointing to the IP header)
- * @param inp network interface on which this segment was received
- */
-void
-tcp_input(struct pbuf *p, struct netif *inp)
-{
- struct tcp_pcb *pcb, *prev;
- struct tcp_pcb_listen *lpcb;
- u8_t hdrlen;
- err_t err;
-
- PERF_START;
-
- TCP_STATS_INC(tcp.recv);
- snmp_inc_tcpinsegs();
-
- iphdr = p->payload;
- tcphdr = (struct tcp_hdr *)((u8_t *)p->payload + IPH_HL(iphdr) * 4);
-
-#if TCP_INPUT_DEBUG
- tcp_debug_print(tcphdr);
-#endif
-
- /* remove header from payload */
- if (pbuf_header(p, -((s16_t)(IPH_HL(iphdr) * 4))) || (p->tot_len < sizeof(struct tcp_hdr))) {
- /* drop short packets */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: short packet (%"U16_F" bytes) discarded\n", p->tot_len));
- TCP_STATS_INC(tcp.lenerr);
- TCP_STATS_INC(tcp.drop);
- snmp_inc_tcpinerrs();
- pbuf_free(p);
- return;
- }
-
- /* Don't even process incoming broadcasts/multicasts. */
- if (ip_addr_isbroadcast(&(iphdr->dest), inp) ||
- ip_addr_ismulticast(&(iphdr->dest))) {
- TCP_STATS_INC(tcp.proterr);
- TCP_STATS_INC(tcp.drop);
- snmp_inc_tcpinerrs();
- pbuf_free(p);
- return;
- }
-
-#if CHECKSUM_CHECK_TCP
- /* Verify TCP checksum. */
- if (inet_chksum_pseudo(p, (struct ip_addr *)&(iphdr->src),
- (struct ip_addr *)&(iphdr->dest),
- IP_PROTO_TCP, p->tot_len) != 0) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packet discarded due to failing checksum 0x%04"X16_F"\n",
- inet_chksum_pseudo(p, (struct ip_addr *)&(iphdr->src), (struct ip_addr *)&(iphdr->dest),
- IP_PROTO_TCP, p->tot_len)));
-#if TCP_DEBUG
- tcp_debug_print(tcphdr);
-#endif /* TCP_DEBUG */
- TCP_STATS_INC(tcp.chkerr);
- TCP_STATS_INC(tcp.drop);
- snmp_inc_tcpinerrs();
- pbuf_free(p);
- return;
- }
-#endif
-
- /* Move the payload pointer in the pbuf so that it points to the
- TCP data instead of the TCP header. */
- hdrlen = TCPH_HDRLEN(tcphdr);
- if(pbuf_header(p, -(hdrlen * 4))){
- /* drop short packets */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: short packet\n"));
- TCP_STATS_INC(tcp.lenerr);
- TCP_STATS_INC(tcp.drop);
- snmp_inc_tcpinerrs();
- pbuf_free(p);
- return;
- }
-
- /* Convert fields in TCP header to host byte order. */
- tcphdr->src = ntohs(tcphdr->src);
- tcphdr->dest = ntohs(tcphdr->dest);
- seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
- ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
- tcphdr->wnd = ntohs(tcphdr->wnd);
-
- flags = TCPH_FLAGS(tcphdr);
- tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0);
-
- /* Demultiplex an incoming segment. First, we check if it is destined
- for an active connection. */
- prev = NULL;
-
-
- for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
- LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED);
- LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
- LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN);
- if (pcb->remote_port == tcphdr->src &&
- pcb->local_port == tcphdr->dest &&
- ip_addr_cmp(&(pcb->remote_ip), &(iphdr->src)) &&
- ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest))) {
-
- /* Move this PCB to the front of the list so that subsequent
- lookups will be faster (we exploit locality in TCP segment
- arrivals). */
- LWIP_ASSERT("tcp_input: pcb->next != pcb (before cache)", pcb->next != pcb);
- if (prev != NULL) {
- prev->next = pcb->next;
- pcb->next = tcp_active_pcbs;
- tcp_active_pcbs = pcb;
- }
- LWIP_ASSERT("tcp_input: pcb->next != pcb (after cache)", pcb->next != pcb);
- break;
- }
- prev = pcb;
- }
-
- if (pcb == NULL) {
- /* If it did not go to an active connection, we check the connections
- in the TIME-WAIT state. */
- for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
- LWIP_ASSERT("tcp_input: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
- if (pcb->remote_port == tcphdr->src &&
- pcb->local_port == tcphdr->dest &&
- ip_addr_cmp(&(pcb->remote_ip), &(iphdr->src)) &&
- ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest))) {
- /* We don't really care enough to move this PCB to the front
- of the list since we are not very likely to receive that
- many segments for connections in TIME-WAIT. */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packed for TIME_WAITing connection.\n"));
- tcp_timewait_input(pcb);
- pbuf_free(p);
- return;
- }
- }
-
- /* Finally, if we still did not get a match, we check all PCBs that
- are LISTENing for incoming connections. */
- prev = NULL;
- for(lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
- if ((ip_addr_isany(&(lpcb->local_ip)) ||
- ip_addr_cmp(&(lpcb->local_ip), &(iphdr->dest))) &&
- lpcb->local_port == tcphdr->dest) {
- /* Move this PCB to the front of the list so that subsequent
- lookups will be faster (we exploit locality in TCP segment
- arrivals). */
- if (prev != NULL) {
- ((struct tcp_pcb_listen *)prev)->next = lpcb->next;
- /* our successor is the remainder of the listening list */
- lpcb->next = tcp_listen_pcbs.listen_pcbs;
- /* put this listening pcb at the head of the listening list */
- tcp_listen_pcbs.listen_pcbs = lpcb;
- }
-
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packed for LISTENing connection.\n"));
- tcp_listen_input(lpcb);
- pbuf_free(p);
- return;
- }
- prev = (struct tcp_pcb *)lpcb;
- }
- }
-
-#if TCP_INPUT_DEBUG
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags "));
- tcp_debug_print_flags(TCPH_FLAGS(tcphdr));
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n"));
-#endif /* TCP_INPUT_DEBUG */
-
-
- if (pcb != NULL) {
- /* The incoming segment belongs to a connection. */
-#if TCP_INPUT_DEBUG
-#if TCP_DEBUG
- tcp_debug_print_state(pcb->state);
-#endif /* TCP_DEBUG */
-#endif /* TCP_INPUT_DEBUG */
-
- /* Set up a tcp_seg structure. */
- inseg.next = NULL;
- inseg.len = p->tot_len;
- inseg.dataptr = p->payload;
- inseg.p = p;
- inseg.tcphdr = tcphdr;
-
- recv_data = NULL;
- recv_flags = 0;
-
- /* If there is data which was previously "refused" by upper layer */
- if (pcb->refused_data != NULL) {
- /* Notify again application with data previously received. */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: notify kept packet\n"));
- TCP_EVENT_RECV(pcb, pcb->refused_data, ERR_OK, err);
- if (err == ERR_OK) {
- pcb->refused_data = NULL;
- } else {
- /* drop incoming packets, because pcb is "full" */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: drop incoming packets, because pcb is \"full\"\n"));
- TCP_STATS_INC(tcp.drop);
- snmp_inc_tcpinerrs();
- pbuf_free(p);
- return;
- }
- }
- tcp_input_pcb = pcb;
- err = tcp_process(pcb);
- /* A return value of ERR_ABRT means that tcp_abort() was called
- and that the pcb has been freed. If so, we don't do anything. */
- if (err != ERR_ABRT) {
- if (recv_flags & TF_RESET) {
- /* TF_RESET means that the connection was reset by the other
- end. We then call the error callback to inform the
- application that the connection is dead before we
- deallocate the PCB. */
- TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_RST);
- tcp_pcb_remove(&tcp_active_pcbs, pcb);
- memp_free(MEMP_TCP_PCB, pcb);
- } else if (recv_flags & TF_CLOSED) {
- /* The connection has been closed and we will deallocate the
- PCB. */
- tcp_pcb_remove(&tcp_active_pcbs, pcb);
- memp_free(MEMP_TCP_PCB, pcb);
- } else {
- err = ERR_OK;
- /* If the application has registered a "sent" function to be
- called when new send buffer space is available, we call it
- now. */
- if (pcb->acked > 0) {
- TCP_EVENT_SENT(pcb, pcb->acked, err);
- }
-
- if (recv_data != NULL) {
- if(flags & TCP_PSH) {
- recv_data->flags |= PBUF_FLAG_PUSH;
- }
-
- /* Notify application that data has been received. */
- TCP_EVENT_RECV(pcb, recv_data, ERR_OK, err);
-
- /* If the upper layer can't receive this data, store it */
- if (err != ERR_OK) {
- pcb->refused_data = recv_data;
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: keep incoming packet, because pcb is \"full\"\n"));
- }
- }
-
- /* If a FIN segment was received, we call the callback
- function with a NULL buffer to indicate EOF. */
- if (recv_flags & TF_GOT_FIN) {
- TCP_EVENT_RECV(pcb, NULL, ERR_OK, err);
- }
-
- tcp_input_pcb = NULL;
- /* Try to send something out. */
- tcp_output(pcb);
-#if TCP_INPUT_DEBUG
-#if TCP_DEBUG
- tcp_debug_print_state(pcb->state);
-#endif /* TCP_DEBUG */
-#endif /* TCP_INPUT_DEBUG */
- }
- }
- tcp_input_pcb = NULL;
-
-
- /* give up our reference to inseg.p */
- if (inseg.p != NULL)
- {
- pbuf_free(inseg.p);
- inseg.p = NULL;
- }
- } else {
-
- /* If no matching PCB was found, send a TCP RST (reset) to the
- sender. */
- LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_input: no PCB match found, resetting.\n"));
- if (!(TCPH_FLAGS(tcphdr) & TCP_RST)) {
- TCP_STATS_INC(tcp.proterr);
- TCP_STATS_INC(tcp.drop);
- tcp_rst(ackno, seqno + tcplen,
- &(iphdr->dest), &(iphdr->src),
- tcphdr->dest, tcphdr->src);
- }
- pbuf_free(p);
- }
-
- LWIP_ASSERT("tcp_input: tcp_pcbs_sane()", tcp_pcbs_sane());
- PERF_STOP("tcp_input");
-}
-
-/**
- * Called by tcp_input() when a segment arrives for a listening
- * connection (from tcp_input()).
- *
- * @param pcb the tcp_pcb_listen for which a segment arrived
- * @return ERR_OK if the segment was processed
- * another err_t on error
- *
- * @note the return value is not (yet?) used in tcp_input()
- * @note the segment which arrived is saved in global variables, therefore only the pcb
- * involved is passed as a parameter to this function
- */
-static err_t
-tcp_listen_input(struct tcp_pcb_listen *pcb)
-{
- struct tcp_pcb *npcb;
- err_t rc;
-
- /* In the LISTEN state, we check for incoming SYN segments,
- creates a new PCB, and responds with a SYN|ACK. */
- if (flags & TCP_ACK) {
- /* For incoming segments with the ACK flag set, respond with a
- RST. */
- LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_listen_input: ACK in LISTEN, sending reset\n"));
- tcp_rst(ackno + 1, seqno + tcplen,
- &(iphdr->dest), &(iphdr->src),
- tcphdr->dest, tcphdr->src);
- } else if (flags & TCP_SYN) {
- LWIP_DEBUGF(TCP_DEBUG, ("TCP connection request %"U16_F" -> %"U16_F".\n", tcphdr->src, tcphdr->dest));
-#if TCP_LISTEN_BACKLOG
- if (pcb->accepts_pending >= pcb->backlog) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_listen_input: listen backlog exceeded for port %"U16_F"\n", tcphdr->dest));
- return ERR_ABRT;
- }
-#endif /* TCP_LISTEN_BACKLOG */
- npcb = tcp_alloc(pcb->prio);
- /* If a new PCB could not be created (probably due to lack of memory),
- we don't do anything, but rely on the sender will retransmit the
- SYN at a time when we have more memory available. */
- if (npcb == NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_listen_input: could not allocate PCB\n"));
- TCP_STATS_INC(tcp.memerr);
- return ERR_MEM;
- }
-#if TCP_LISTEN_BACKLOG
- pcb->accepts_pending++;
-#endif /* TCP_LISTEN_BACKLOG */
- /* Set up the new PCB. */
- ip_addr_set(&(npcb->local_ip), &(iphdr->dest));
- npcb->local_port = pcb->local_port;
- ip_addr_set(&(npcb->remote_ip), &(iphdr->src));
- npcb->remote_port = tcphdr->src;
- npcb->state = SYN_RCVD;
- npcb->rcv_nxt = seqno + 1;
- npcb->rcv_ann_right_edge = npcb->rcv_nxt;
- npcb->snd_wnd = tcphdr->wnd;
- npcb->ssthresh = npcb->snd_wnd;
- npcb->snd_wl1 = seqno - 1;/* initialise to seqno-1 to force window update */
- npcb->callback_arg = pcb->callback_arg;
-#if LWIP_CALLBACK_API
- npcb->accept = pcb->accept;
-#endif /* LWIP_CALLBACK_API */
- /* inherit socket options */
- npcb->so_options = pcb->so_options & (SOF_DEBUG|SOF_DONTROUTE|SOF_KEEPALIVE|SOF_OOBINLINE|SOF_LINGER);
- /* Register the new PCB so that we can begin receiving segments
- for it. */
- TCP_REG(&tcp_active_pcbs, npcb);
-
- /* Parse any options in the SYN. */
- tcp_parseopt(npcb);
-#if TCP_CALCULATE_EFF_SEND_MSS
- npcb->mss = tcp_eff_send_mss(npcb->mss, &(npcb->remote_ip));
-#endif /* TCP_CALCULATE_EFF_SEND_MSS */
-
- snmp_inc_tcppassiveopens();
-
- /* Send a SYN|ACK together with the MSS option. */
- rc = tcp_enqueue(npcb, NULL, 0, TCP_SYN | TCP_ACK, 0, TF_SEG_OPTS_MSS
-#if LWIP_TCP_TIMESTAMPS
- /* and maybe include the TIMESTAMP option */
- | (npcb->flags & TF_TIMESTAMP ? TF_SEG_OPTS_TS : 0)
-#endif
- );
- if (rc != ERR_OK) {
- tcp_abandon(npcb, 0);
- return rc;
- }
- return tcp_output(npcb);
- }
- return ERR_OK;
-}
-
-/**
- * Called by tcp_input() when a segment arrives for a connection in
- * TIME_WAIT.
- *
- * @param pcb the tcp_pcb for which a segment arrived
- *
- * @note the segment which arrived is saved in global variables, therefore only the pcb
- * involved is passed as a parameter to this function
- */
-static err_t
-tcp_timewait_input(struct tcp_pcb *pcb)
-{
- /* RFC 1337: in TIME_WAIT, ignore RST and ACK FINs + any 'acceptable' segments */
- /* RFC 793 3.9 Event Processing - Segment Arrives:
- * - first check sequence number - we skip that one in TIME_WAIT (always
- * acceptable since we only send ACKs)
- * - second check the RST bit (... return) */
- if (flags & TCP_RST) {
- return ERR_OK;
- }
- /* - fourth, check the SYN bit, */
- if (flags & TCP_SYN) {
- /* If an incoming segment is not acceptable, an acknowledgment
- should be sent in reply */
- if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt+pcb->rcv_wnd)) {
- /* If the SYN is in the window it is an error, send a reset */
- tcp_rst(ackno, seqno + tcplen, &(iphdr->dest), &(iphdr->src),
- tcphdr->dest, tcphdr->src);
- return ERR_OK;
- }
- } else if (flags & TCP_FIN) {
- /* - eighth, check the FIN bit: Remain in the TIME-WAIT state.
- Restart the 2 MSL time-wait timeout.*/
- pcb->tmr = tcp_ticks;
- }
-
- if ((tcplen > 0)) {
- /* Acknowledge data, FIN or out-of-window SYN */
- pcb->flags |= TF_ACK_NOW;
- return tcp_output(pcb);
- }
- return ERR_OK;
-}
-
-/**
- * Implements the TCP state machine. Called by tcp_input. In some
- * states tcp_receive() is called to receive data. The tcp_seg
- * argument will be freed by the caller (tcp_input()) unless the
- * recv_data pointer in the pcb is set.
- *
- * @param pcb the tcp_pcb for which a segment arrived
- *
- * @note the segment which arrived is saved in global variables, therefore only the pcb
- * involved is passed as a parameter to this function
- */
-static err_t
-tcp_process(struct tcp_pcb *pcb)
-{
- struct tcp_seg *rseg;
- u8_t acceptable = 0;
- err_t err;
-
- err = ERR_OK;
-
- /* Process incoming RST segments. */
- if (flags & TCP_RST) {
- /* First, determine if the reset is acceptable. */
- if (pcb->state == SYN_SENT) {
- if (ackno == pcb->snd_nxt) {
- acceptable = 1;
- }
- } else {
- if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt,
- pcb->rcv_nxt+pcb->rcv_wnd)) {
- acceptable = 1;
- }
- }
-
- if (acceptable) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: Connection RESET\n"));
- LWIP_ASSERT("tcp_input: pcb->state != CLOSED", pcb->state != CLOSED);
- recv_flags |= TF_RESET;
- pcb->flags &= ~TF_ACK_DELAY;
- return ERR_RST;
- } else {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: unacceptable reset seqno %"U32_F" rcv_nxt %"U32_F"\n",
- seqno, pcb->rcv_nxt));
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_process: unacceptable reset seqno %"U32_F" rcv_nxt %"U32_F"\n",
- seqno, pcb->rcv_nxt));
- return ERR_OK;
- }
- }
-
- if ((flags & TCP_SYN) && (pcb->state != SYN_SENT && pcb->state != SYN_RCVD)) {
- /* Cope with new connection attempt after remote end crashed */
- tcp_ack_now(pcb);
- return ERR_OK;
- }
-
- /* Update the PCB (in)activity timer. */
- pcb->tmr = tcp_ticks;
- pcb->keep_cnt_sent = 0;
-
- tcp_parseopt(pcb);
-
- /* Do different things depending on the TCP state. */
- switch (pcb->state) {
- case SYN_SENT:
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("SYN-SENT: ackno %"U32_F" pcb->snd_nxt %"U32_F" unacked %"U32_F"\n", ackno,
- pcb->snd_nxt, ntohl(pcb->unacked->tcphdr->seqno)));
- /* received SYN ACK with expected sequence number? */
- if ((flags & TCP_ACK) && (flags & TCP_SYN)
- && ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) {
- pcb->snd_buf++;
- pcb->rcv_nxt = seqno + 1;
- pcb->rcv_ann_right_edge = pcb->rcv_nxt;
- pcb->lastack = ackno;
- pcb->snd_wnd = tcphdr->wnd;
- pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
- pcb->state = ESTABLISHED;
-
-#if TCP_CALCULATE_EFF_SEND_MSS
- pcb->mss = tcp_eff_send_mss(pcb->mss, &(pcb->remote_ip));
-#endif /* TCP_CALCULATE_EFF_SEND_MSS */
-
- /* Set ssthresh again after changing pcb->mss (already set in tcp_connect
- * but for the default value of pcb->mss) */
- pcb->ssthresh = pcb->mss * 10;
-
- pcb->cwnd = ((pcb->cwnd == 1) ? (pcb->mss * 2) : pcb->mss);
- LWIP_ASSERT("pcb->snd_queuelen > 0", (pcb->snd_queuelen > 0));
- --pcb->snd_queuelen;
- LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_process: SYN-SENT --queuelen %"U16_F"\n", (u16_t)pcb->snd_queuelen));
- rseg = pcb->unacked;
- pcb->unacked = rseg->next;
-
- /* If there's nothing left to acknowledge, stop the retransmit
- timer, otherwise reset it to start again */
- if(pcb->unacked == NULL)
- pcb->rtime = -1;
- else {
- pcb->rtime = 0;
- pcb->nrtx = 0;
- }
-
- tcp_seg_free(rseg);
-
- /* Call the user specified function to call when sucessfully
- * connected. */
- TCP_EVENT_CONNECTED(pcb, ERR_OK, err);
- tcp_ack_now(pcb);
- }
- /* received ACK? possibly a half-open connection */
- else if (flags & TCP_ACK) {
- /* send a RST to bring the other side in a non-synchronized state. */
- tcp_rst(ackno, seqno + tcplen, &(iphdr->dest), &(iphdr->src),
- tcphdr->dest, tcphdr->src);
- }
- break;
- case SYN_RCVD:
- if (flags & TCP_ACK) {
- /* expected ACK number? */
- if (TCP_SEQ_BETWEEN(ackno, pcb->lastack+1, pcb->snd_nxt)) {
- u16_t old_cwnd;
- pcb->state = ESTABLISHED;
- LWIP_DEBUGF(TCP_DEBUG, ("TCP connection established %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
-#if LWIP_CALLBACK_API
- LWIP_ASSERT("pcb->accept != NULL", pcb->accept != NULL);
-#endif
- /* Call the accept function. */
- TCP_EVENT_ACCEPT(pcb, ERR_OK, err);
- if (err != ERR_OK) {
- /* If the accept function returns with an error, we abort
- * the connection. */
- tcp_abort(pcb);
- return ERR_ABRT;
- }
- old_cwnd = pcb->cwnd;
- /* If there was any data contained within this ACK,
- * we'd better pass it on to the application as well. */
- tcp_receive(pcb);
-
- /* Prevent ACK for SYN to generate a sent event */
- if (pcb->acked != 0) {
- pcb->acked--;
- }
-
- pcb->cwnd = ((old_cwnd == 1) ? (pcb->mss * 2) : pcb->mss);
-
- if (recv_flags & TF_GOT_FIN) {
- tcp_ack_now(pcb);
- pcb->state = CLOSE_WAIT;
- }
- }
- /* incorrect ACK number */
- else {
- /* send RST */
- tcp_rst(ackno, seqno + tcplen, &(iphdr->dest), &(iphdr->src),
- tcphdr->dest, tcphdr->src);
- }
- } else if ((flags & TCP_SYN) && (seqno == pcb->rcv_nxt - 1)) {
- /* Looks like another copy of the SYN - retransmit our SYN-ACK */
- tcp_rexmit(pcb);
- }
- break;
- case CLOSE_WAIT:
- /* FALLTHROUGH */
- case ESTABLISHED:
- tcp_receive(pcb);
- if (recv_flags & TF_GOT_FIN) { /* passive close */
- tcp_ack_now(pcb);
- pcb->state = CLOSE_WAIT;
- }
- break;
- case FIN_WAIT_1:
- tcp_receive(pcb);
- if (recv_flags & TF_GOT_FIN) {
- if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) {
- LWIP_DEBUGF(TCP_DEBUG,
- ("TCP connection closed: FIN_WAIT_1 %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
- tcp_ack_now(pcb);
- tcp_pcb_purge(pcb);
- TCP_RMV(&tcp_active_pcbs, pcb);
- pcb->state = TIME_WAIT;
- TCP_REG(&tcp_tw_pcbs, pcb);
- } else {
- tcp_ack_now(pcb);
- pcb->state = CLOSING;
- }
- } else if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) {
- pcb->state = FIN_WAIT_2;
- }
- break;
- case FIN_WAIT_2:
- tcp_receive(pcb);
- if (recv_flags & TF_GOT_FIN) {
- LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: FIN_WAIT_2 %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
- tcp_ack_now(pcb);
- tcp_pcb_purge(pcb);
- TCP_RMV(&tcp_active_pcbs, pcb);
- pcb->state = TIME_WAIT;
- TCP_REG(&tcp_tw_pcbs, pcb);
- }
- break;
- case CLOSING:
- tcp_receive(pcb);
- if (flags & TCP_ACK && ackno == pcb->snd_nxt) {
- LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: CLOSING %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
- tcp_pcb_purge(pcb);
- TCP_RMV(&tcp_active_pcbs, pcb);
- pcb->state = TIME_WAIT;
- TCP_REG(&tcp_tw_pcbs, pcb);
- }
- break;
- case LAST_ACK:
- tcp_receive(pcb);
- if (flags & TCP_ACK && ackno == pcb->snd_nxt) {
- LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: LAST_ACK %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
- /* bugfix #21699: don't set pcb->state to CLOSED here or we risk leaking segments */
- recv_flags |= TF_CLOSED;
- }
- break;
- default:
- break;
- }
- return ERR_OK;
-}
-
-#if TCP_QUEUE_OOSEQ
-/**
- * Insert segment into the list (segments covered with new one will be deleted)
- *
- * Called from tcp_receive()
- */
-static void
-tcp_oos_insert_segment(struct tcp_seg *cseg, struct tcp_seg *next)
-{
- struct tcp_seg *old_seg;
-
- if (TCPH_FLAGS(cseg->tcphdr) & TCP_FIN) {
- /* received segment overlaps all following segments */
- tcp_segs_free(next);
- next = NULL;
- }
- else {
- /* delete some following segments
- oos queue may have segments with FIN flag */
- while (next &&
- TCP_SEQ_GEQ((seqno + cseg->len),
- (next->tcphdr->seqno + next->len))) {
- /* cseg with FIN already processed */
- if (TCPH_FLAGS(next->tcphdr) & TCP_FIN) {
- TCPH_FLAGS_SET(cseg->tcphdr, TCPH_FLAGS(cseg->tcphdr) | TCP_FIN);
- }
- old_seg = next;
- next = next->next;
- tcp_seg_free(old_seg);
- }
- if (next &&
- TCP_SEQ_GT(seqno + cseg->len, next->tcphdr->seqno)) {
- /* We need to trim the incoming segment. */
- cseg->len = (u16_t)(next->tcphdr->seqno - seqno);
- pbuf_realloc(cseg->p, cseg->len);
- }
- }
- cseg->next = next;
-}
-#endif
-
-/**
- * Called by tcp_process. Checks if the given segment is an ACK for outstanding
- * data, and if so frees the memory of the buffered data. Next, is places the
- * segment on any of the receive queues (pcb->recved or pcb->ooseq). If the segment
- * is buffered, the pbuf is referenced by pbuf_ref so that it will not be freed until
- * i it has been removed from the buffer.
- *
- * If the incoming segment constitutes an ACK for a segment that was used for RTT
- * estimation, the RTT is estimated here as well.
- *
- * Called from tcp_process().
- */
-static void
-tcp_receive(struct tcp_pcb *pcb)
-{
- struct tcp_seg *next;
-#if TCP_QUEUE_OOSEQ
- struct tcp_seg *prev, *cseg;
-#endif
- struct pbuf *p;
- s32_t off;
- s16_t m;
- u32_t right_wnd_edge;
- u16_t new_tot_len;
- int found_dupack = 0;
-
- if (flags & TCP_ACK) {
- right_wnd_edge = pcb->snd_wnd + pcb->snd_wl2;
-
- /* Update window. */
- if (TCP_SEQ_LT(pcb->snd_wl1, seqno) ||
- (pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) ||
- (pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) {
- pcb->snd_wnd = tcphdr->wnd;
- pcb->snd_wl1 = seqno;
- pcb->snd_wl2 = ackno;
- if (pcb->snd_wnd > 0 && pcb->persist_backoff > 0) {
- pcb->persist_backoff = 0;
- }
- LWIP_DEBUGF(TCP_WND_DEBUG, ("tcp_receive: window update %"U16_F"\n", pcb->snd_wnd));
-#if TCP_WND_DEBUG
- } else {
- if (pcb->snd_wnd != tcphdr->wnd) {
- LWIP_DEBUGF(TCP_WND_DEBUG,
- ("tcp_receive: no window update lastack %"U32_F" ackno %"
- U32_F" wl1 %"U32_F" seqno %"U32_F" wl2 %"U32_F"\n",
- pcb->lastack, ackno, pcb->snd_wl1, seqno, pcb->snd_wl2));
- }
-#endif /* TCP_WND_DEBUG */
- }
-
- /* (From Stevens TCP/IP Illustrated Vol II, p970.) Its only a
- * duplicate ack if:
- * 1) It doesn't ACK new data
- * 2) length of received packet is zero (i.e. no payload)
- * 3) the advertised window hasn't changed
- * 4) There is outstanding unacknowledged data (retransmission timer running)
- * 5) The ACK is == biggest ACK sequence number so far seen (snd_una)
- *
- * If it passes all five, should process as a dupack:
- * a) dupacks < 3: do nothing
- * b) dupacks == 3: fast retransmit
- * c) dupacks > 3: increase cwnd
- *
- * If it only passes 1-3, should reset dupack counter (and add to
- * stats, which we don't do in lwIP)
- *
- * If it only passes 1, should reset dupack counter
- *
- */
-
- /* Clause 1 */
- if (TCP_SEQ_LEQ(ackno, pcb->lastack)) {
- pcb->acked = 0;
- /* Clause 2 */
- if (tcplen == 0) {
- /* Clause 3 */
- if (pcb->snd_wl2 + pcb->snd_wnd == right_wnd_edge){
- /* Clause 4 */
- if (pcb->rtime >= 0) {
- /* Clause 5 */
- if (pcb->lastack == ackno) {
- found_dupack = 1;
- if (pcb->dupacks + 1 > pcb->dupacks)
- ++pcb->dupacks;
- if (pcb->dupacks > 3) {
- /* Inflate the congestion window, but not if it means that
- the value overflows. */
- if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) {
- pcb->cwnd += pcb->mss;
- }
- } else if (pcb->dupacks == 3) {
- /* Do fast retransmit */
- tcp_rexmit_fast(pcb);
- }
- }
- }
- }
- }
- /* If Clause (1) or more is true, but not a duplicate ack, reset
- * count of consecutive duplicate acks */
- if (!found_dupack) {
- pcb->dupacks = 0;
- }
- } else if (TCP_SEQ_BETWEEN(ackno, pcb->lastack+1, pcb->snd_nxt)){
- /* We come here when the ACK acknowledges new data. */
-
- /* Reset the "IN Fast Retransmit" flag, since we are no longer
- in fast retransmit. Also reset the congestion window to the
- slow start threshold. */
- if (pcb->flags & TF_INFR) {
- pcb->flags &= ~TF_INFR;
- pcb->cwnd = pcb->ssthresh;
- }
-
- /* Reset the number of retransmissions. */
- pcb->nrtx = 0;
-
- /* Reset the retransmission time-out. */
- pcb->rto = (pcb->sa >> 3) + pcb->sv;
-
- /* Update the send buffer space. Diff between the two can never exceed 64K? */
- pcb->acked = (u16_t)(ackno - pcb->lastack);
-
- pcb->snd_buf += pcb->acked;
-
- /* Reset the fast retransmit variables. */
- pcb->dupacks = 0;
- pcb->lastack = ackno;
-
- /* Update the congestion control variables (cwnd and
- ssthresh). */
- if (pcb->state >= ESTABLISHED) {
- if (pcb->cwnd < pcb->ssthresh) {
- if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) {
- pcb->cwnd += pcb->mss;
- }
- LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: slow start cwnd %"U16_F"\n", pcb->cwnd));
- } else {
- u16_t new_cwnd = (pcb->cwnd + pcb->mss * pcb->mss / pcb->cwnd);
- if (new_cwnd > pcb->cwnd) {
- pcb->cwnd = new_cwnd;
- }
- LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: congestion avoidance cwnd %"U16_F"\n", pcb->cwnd));
- }
- }
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: ACK for %"U32_F", unacked->seqno %"U32_F":%"U32_F"\n",
- ackno,
- pcb->unacked != NULL?
- ntohl(pcb->unacked->tcphdr->seqno): 0,
- pcb->unacked != NULL?
- ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked): 0));
-
- /* Remove segment from the unacknowledged list if the incoming
- ACK acknowlegdes them. */
- while (pcb->unacked != NULL &&
- TCP_SEQ_LEQ(ntohl(pcb->unacked->tcphdr->seqno) +
- TCP_TCPLEN(pcb->unacked), ackno)) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->unacked\n",
- ntohl(pcb->unacked->tcphdr->seqno),
- ntohl(pcb->unacked->tcphdr->seqno) +
- TCP_TCPLEN(pcb->unacked)));
-
- next = pcb->unacked;
- pcb->unacked = pcb->unacked->next;
-
- LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen));
- LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p)));
- /* Prevent ACK for FIN to generate a sent event */
- if ((pcb->acked != 0) && ((TCPH_FLAGS(next->tcphdr) & TCP_FIN) != 0)) {
- pcb->acked--;
- }
-
- pcb->snd_queuelen -= pbuf_clen(next->p);
- tcp_seg_free(next);
-
- LWIP_DEBUGF(TCP_QLEN_DEBUG, ("%"U16_F" (after freeing unacked)\n", (u16_t)pcb->snd_queuelen));
- if (pcb->snd_queuelen != 0) {
- LWIP_ASSERT("tcp_receive: valid queue length", pcb->unacked != NULL ||
- pcb->unsent != NULL);
- }
- }
-
- /* If there's nothing left to acknowledge, stop the retransmit
- timer, otherwise reset it to start again */
- if(pcb->unacked == NULL)
- pcb->rtime = -1;
- else
- pcb->rtime = 0;
-
- pcb->polltmr = 0;
- } else {
- /* Fix bug bug #21582: out of sequence ACK, didn't really ack anything */
- pcb->acked = 0;
- }
-
- /* We go through the ->unsent list to see if any of the segments
- on the list are acknowledged by the ACK. This may seem
- strange since an "unsent" segment shouldn't be acked. The
- rationale is that lwIP puts all outstanding segments on the
- ->unsent list after a retransmission, so these segments may
- in fact have been sent once. */
- while (pcb->unsent != NULL &&
- TCP_SEQ_BETWEEN(ackno, ntohl(pcb->unsent->tcphdr->seqno) +
- TCP_TCPLEN(pcb->unsent), pcb->snd_nxt)) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->unsent\n",
- ntohl(pcb->unsent->tcphdr->seqno), ntohl(pcb->unsent->tcphdr->seqno) +
- TCP_TCPLEN(pcb->unsent)));
-
- next = pcb->unsent;
- pcb->unsent = pcb->unsent->next;
- LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen));
- LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p)));
- /* Prevent ACK for FIN to generate a sent event */
- if ((pcb->acked != 0) && ((TCPH_FLAGS(next->tcphdr) & TCP_FIN) != 0)) {
- pcb->acked--;
- }
- pcb->snd_queuelen -= pbuf_clen(next->p);
- tcp_seg_free(next);
- LWIP_DEBUGF(TCP_QLEN_DEBUG, ("%"U16_F" (after freeing unsent)\n", (u16_t)pcb->snd_queuelen));
- if (pcb->snd_queuelen != 0) {
- LWIP_ASSERT("tcp_receive: valid queue length",
- pcb->unacked != NULL || pcb->unsent != NULL);
- }
- }
- /* End of ACK for new data processing. */
-
- LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: pcb->rttest %"U32_F" rtseq %"U32_F" ackno %"U32_F"\n",
- pcb->rttest, pcb->rtseq, ackno));
-
- /* RTT estimation calculations. This is done by checking if the
- incoming segment acknowledges the segment we use to take a
- round-trip time measurement. */
- if (pcb->rttest && TCP_SEQ_LT(pcb->rtseq, ackno)) {
- /* diff between this shouldn't exceed 32K since this are tcp timer ticks
- and a round-trip shouldn't be that long... */
- m = (s16_t)(tcp_ticks - pcb->rttest);
-
- LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: experienced rtt %"U16_F" ticks (%"U16_F" msec).\n",
- m, m * TCP_SLOW_INTERVAL));
-
- /* This is taken directly from VJs original code in his paper */
- m = m - (pcb->sa >> 3);
- pcb->sa += m;
- if (m < 0) {
- m = -m;
- }
- m = m - (pcb->sv >> 2);
- pcb->sv += m;
- pcb->rto = (pcb->sa >> 3) + pcb->sv;
-
- LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: RTO %"U16_F" (%"U16_F" milliseconds)\n",
- pcb->rto, pcb->rto * TCP_SLOW_INTERVAL));
-
- pcb->rttest = 0;
- }
- }
-
- /* If the incoming segment contains data, we must process it
- further. */
- if (tcplen > 0) {
- /* This code basically does three things:
-
- +) If the incoming segment contains data that is the next
- in-sequence data, this data is passed to the application. This
- might involve trimming the first edge of the data. The rcv_nxt
- variable and the advertised window are adjusted.
-
- +) If the incoming segment has data that is above the next
- sequence number expected (->rcv_nxt), the segment is placed on
- the ->ooseq queue. This is done by finding the appropriate
- place in the ->ooseq queue (which is ordered by sequence
- number) and trim the segment in both ends if needed. An
- immediate ACK is sent to indicate that we received an
- out-of-sequence segment.
-
- +) Finally, we check if the first segment on the ->ooseq queue
- now is in sequence (i.e., if rcv_nxt >= ooseq->seqno). If
- rcv_nxt > ooseq->seqno, we must trim the first edge of the
- segment on ->ooseq before we adjust rcv_nxt. The data in the
- segments that are now on sequence are chained onto the
- incoming segment so that we only need to call the application
- once.
- */
-
- /* First, we check if we must trim the first edge. We have to do
- this if the sequence number of the incoming segment is less
- than rcv_nxt, and the sequence number plus the length of the
- segment is larger than rcv_nxt. */
- /* if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)){
- if (TCP_SEQ_LT(pcb->rcv_nxt, seqno + tcplen)) {*/
- if (TCP_SEQ_BETWEEN(pcb->rcv_nxt, seqno + 1, seqno + tcplen - 1)){
- /* Trimming the first edge is done by pushing the payload
- pointer in the pbuf downwards. This is somewhat tricky since
- we do not want to discard the full contents of the pbuf up to
- the new starting point of the data since we have to keep the
- TCP header which is present in the first pbuf in the chain.
-
- What is done is really quite a nasty hack: the first pbuf in
- the pbuf chain is pointed to by inseg.p. Since we need to be
- able to deallocate the whole pbuf, we cannot change this
- inseg.p pointer to point to any of the later pbufs in the
- chain. Instead, we point the ->payload pointer in the first
- pbuf to data in one of the later pbufs. We also set the
- inseg.data pointer to point to the right place. This way, the
- ->p pointer will still point to the first pbuf, but the
- ->p->payload pointer will point to data in another pbuf.
-
- After we are done with adjusting the pbuf pointers we must
- adjust the ->data pointer in the seg and the segment
- length.*/
-
- off = pcb->rcv_nxt - seqno;
- p = inseg.p;
- LWIP_ASSERT("inseg.p != NULL", inseg.p);
- LWIP_ASSERT("insane offset!", (off < 0x7fff));
- if (inseg.p->len < off) {
- LWIP_ASSERT("pbuf too short!", (((s32_t)inseg.p->tot_len) >= off));
- new_tot_len = (u16_t)(inseg.p->tot_len - off);
- while (p->len < off) {
- off -= p->len;
- /* KJM following line changed (with addition of new_tot_len var)
- to fix bug #9076
- inseg.p->tot_len -= p->len; */
- p->tot_len = new_tot_len;
- p->len = 0;
- p = p->next;
- }
- if(pbuf_header(p, (s16_t)-off)) {
- /* Do we need to cope with this failing? Assert for now */
- LWIP_ASSERT("pbuf_header failed", 0);
- }
- } else {
- if(pbuf_header(inseg.p, (s16_t)-off)) {
- /* Do we need to cope with this failing? Assert for now */
- LWIP_ASSERT("pbuf_header failed", 0);
- }
- }
- /* KJM following line changed to use p->payload rather than inseg->p->payload
- to fix bug #9076 */
- inseg.dataptr = p->payload;
- inseg.len -= (u16_t)(pcb->rcv_nxt - seqno);
- inseg.tcphdr->seqno = seqno = pcb->rcv_nxt;
- }
- else {
- if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)){
- /* the whole segment is < rcv_nxt */
- /* must be a duplicate of a packet that has already been correctly handled */
-
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: duplicate seqno %"U32_F"\n", seqno));
- tcp_ack_now(pcb);
- }
- }
-
- /* The sequence number must be within the window (above rcv_nxt
- and below rcv_nxt + rcv_wnd) in order to be further
- processed. */
- if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt,
- pcb->rcv_nxt + pcb->rcv_wnd - 1)){
- if (pcb->rcv_nxt == seqno) {
- /* The incoming segment is the next in sequence. We check if
- we have to trim the end of the segment and update rcv_nxt
- and pass the data to the application. */
- tcplen = TCP_TCPLEN(&inseg);
-
- if (tcplen > pcb->rcv_wnd) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG,
- ("tcp_receive: other end overran receive window"
- "seqno %"U32_F" len %"U32_F" right edge %"U32_F"\n",
- seqno, tcplen, pcb->rcv_nxt + pcb->rcv_wnd));
- if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) {
- /* Must remove the FIN from the header as we're trimming
- * that byte of sequence-space from the packet */
- TCPH_FLAGS_SET(inseg.tcphdr, TCPH_FLAGS(inseg.tcphdr) &~ TCP_FIN);
- }
- /* Adjust length of segment to fit in the window. */
- inseg.len = pcb->rcv_wnd;
- if (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) {
- inseg.len -= 1;
- }
- pbuf_realloc(inseg.p, inseg.len);
- tcplen = TCP_TCPLEN(&inseg);
- LWIP_ASSERT("tcp_receive: segment not trimmed correctly to rcv_wnd\n",
- (seqno + tcplen) == (pcb->rcv_nxt + pcb->rcv_wnd));
- }
-#if TCP_QUEUE_OOSEQ
- if (pcb->ooseq != NULL) {
- if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG,
- ("tcp_receive: received in-order FIN, binning ooseq queue\n"));
- /* Received in-order FIN means anything that was received
- * out of order must now have been received in-order, so
- * bin the ooseq queue
- * rcv_nxt
- * . |--ooseq--|
- * .==seg============|FIN
- */
- while (pcb->ooseq != NULL) {
- struct tcp_seg *old_ooseq = pcb->ooseq;
- pcb->ooseq = pcb->ooseq->next;
- tcp_seg_free(old_ooseq);
- }
- }
- else {
- struct tcp_seg* next = pcb->ooseq;
- struct tcp_seg *old_seg;
- /* rcv_nxt
- * . |--ooseq--|
- * .==seg============|
- */
- while (next &&
- TCP_SEQ_GEQ(seqno + tcplen,
- next->tcphdr->seqno + next->len)) {
- /* inseg doesn't have FIN (already processed) */
- if (TCPH_FLAGS(next->tcphdr) & TCP_FIN &&
- (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) == 0) {
- TCPH_FLAGS_SET(inseg.tcphdr,
- TCPH_FLAGS(inseg.tcphdr) | TCP_FIN);
- tcplen = TCP_TCPLEN(&inseg);
- }
- old_seg = next;
- next = next->next;
- tcp_seg_free(old_seg);
- }
- /* rcv_nxt
- * . |--ooseq--|
- * .==seg============|
- */
- if (next &&
- TCP_SEQ_GT(seqno + tcplen,
- next->tcphdr->seqno)) {
- /* FIN in inseg already handled by dropping whole ooseq queue */
- inseg.len = (u16_t)(pcb->ooseq->tcphdr->seqno - seqno);
- if (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) {
- inseg.len -= 1;
- }
- pbuf_realloc(inseg.p, inseg.len);
- tcplen = TCP_TCPLEN(&inseg);
- LWIP_ASSERT("tcp_receive: segment not trimmed correctly to ooseq queue\n",
- (seqno + tcplen) == pcb->ooseq->tcphdr->seqno);
- }
- pcb->ooseq = next;
- }
- }
-#endif /* TCP_QUEUE_OOSEQ */
-
- pcb->rcv_nxt = seqno + tcplen;
-
- /* Update the receiver's (our) window. */
- LWIP_ASSERT("tcp_receive: tcplen > rcv_wnd\n", pcb->rcv_wnd >= tcplen);
- pcb->rcv_wnd -= tcplen;
-
- tcp_update_rcv_ann_wnd(pcb);
-
- /* If there is data in the segment, we make preparations to
- pass this up to the application. The ->recv_data variable
- is used for holding the pbuf that goes to the
- application. The code for reassembling out-of-sequence data
- chains its data on this pbuf as well.
-
- If the segment was a FIN, we set the TF_GOT_FIN flag that will
- be used to indicate to the application that the remote side has
- closed its end of the connection. */
- if (inseg.p->tot_len > 0) {
- recv_data = inseg.p;
- /* Since this pbuf now is the responsibility of the
- application, we delete our reference to it so that we won't
- (mistakingly) deallocate it. */
- inseg.p = NULL;
- }
- if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: received FIN.\n"));
- recv_flags |= TF_GOT_FIN;
- }
-
-#if TCP_QUEUE_OOSEQ
- /* We now check if we have segments on the ->ooseq queue that
- is now in sequence. */
- while (pcb->ooseq != NULL &&
- pcb->ooseq->tcphdr->seqno == pcb->rcv_nxt) {
-
- cseg = pcb->ooseq;
- seqno = pcb->ooseq->tcphdr->seqno;
-
- pcb->rcv_nxt += TCP_TCPLEN(cseg);
- LWIP_ASSERT("tcp_receive: ooseq tcplen > rcv_wnd\n",
- pcb->rcv_wnd >= TCP_TCPLEN(cseg));
- pcb->rcv_wnd -= TCP_TCPLEN(cseg);
-
- tcp_update_rcv_ann_wnd(pcb);
-
- if (cseg->p->tot_len > 0) {
- /* Chain this pbuf onto the pbuf that we will pass to
- the application. */
- if (recv_data) {
- pbuf_cat(recv_data, cseg->p);
- } else {
- recv_data = cseg->p;
- }
- cseg->p = NULL;
- }
- if (TCPH_FLAGS(cseg->tcphdr) & TCP_FIN) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: dequeued FIN.\n"));
- recv_flags |= TF_GOT_FIN;
- if (pcb->state == ESTABLISHED) { /* force passive close or we can move to active close */
- pcb->state = CLOSE_WAIT;
- }
- }
-
- pcb->ooseq = cseg->next;
- tcp_seg_free(cseg);
- }
-#endif /* TCP_QUEUE_OOSEQ */
-
-
- /* Acknowledge the segment(s). */
- tcp_ack(pcb);
-
- } else {
- /* We get here if the incoming segment is out-of-sequence. */
- tcp_send_empty_ack(pcb);
-#if TCP_QUEUE_OOSEQ
- /* We queue the segment on the ->ooseq queue. */
- if (pcb->ooseq == NULL) {
- pcb->ooseq = tcp_seg_copy(&inseg);
- } else {
- /* If the queue is not empty, we walk through the queue and
- try to find a place where the sequence number of the
- incoming segment is between the sequence numbers of the
- previous and the next segment on the ->ooseq queue. That is
- the place where we put the incoming segment. If needed, we
- trim the second edges of the previous and the incoming
- segment so that it will fit into the sequence.
-
- If the incoming segment has the same sequence number as a
- segment on the ->ooseq queue, we discard the segment that
- contains less data. */
-
- prev = NULL;
- for(next = pcb->ooseq; next != NULL; next = next->next) {
- if (seqno == next->tcphdr->seqno) {
- /* The sequence number of the incoming segment is the
- same as the sequence number of the segment on
- ->ooseq. We check the lengths to see which one to
- discard. */
- if (inseg.len > next->len) {
- /* The incoming segment is larger than the old
- segment. We replace some segments with the new
- one. */
- cseg = tcp_seg_copy(&inseg);
- if (cseg != NULL) {
- if (prev != NULL) {
- prev->next = cseg;
- } else {
- pcb->ooseq = cseg;
- }
- tcp_oos_insert_segment(cseg, next);
- }
- break;
- } else {
- /* Either the lenghts are the same or the incoming
- segment was smaller than the old one; in either
- case, we ditch the incoming segment. */
- break;
- }
- } else {
- if (prev == NULL) {
- if (TCP_SEQ_LT(seqno, next->tcphdr->seqno)) {
- /* The sequence number of the incoming segment is lower
- than the sequence number of the first segment on the
- queue. We put the incoming segment first on the
- queue. */
- cseg = tcp_seg_copy(&inseg);
- if (cseg != NULL) {
- pcb->ooseq = cseg;
- tcp_oos_insert_segment(cseg, next);
- }
- break;
- }
- } else {
- /*if (TCP_SEQ_LT(prev->tcphdr->seqno, seqno) &&
- TCP_SEQ_LT(seqno, next->tcphdr->seqno)) {*/
- if (TCP_SEQ_BETWEEN(seqno, prev->tcphdr->seqno+1, next->tcphdr->seqno-1)) {
- /* The sequence number of the incoming segment is in
- between the sequence numbers of the previous and
- the next segment on ->ooseq. We trim trim the previous
- segment, delete next segments that included in received segment
- and trim received, if needed. */
- cseg = tcp_seg_copy(&inseg);
- if (cseg != NULL) {
- if (TCP_SEQ_GT(prev->tcphdr->seqno + prev->len, seqno)) {
- /* We need to trim the prev segment. */
- prev->len = (u16_t)(seqno - prev->tcphdr->seqno);
- pbuf_realloc(prev->p, prev->len);
- }
- prev->next = cseg;
- tcp_oos_insert_segment(cseg, next);
- }
- break;
- }
- }
- /* If the "next" segment is the last segment on the
- ooseq queue, we add the incoming segment to the end
- of the list. */
- if (next->next == NULL &&
- TCP_SEQ_GT(seqno, next->tcphdr->seqno)) {
- if (TCPH_FLAGS(next->tcphdr) & TCP_FIN) {
- /* segment "next" already contains all data */
- break;
- }
- next->next = tcp_seg_copy(&inseg);
- if (next->next != NULL) {
- if (TCP_SEQ_GT(next->tcphdr->seqno + next->len, seqno)) {
- /* We need to trim the last segment. */
- next->len = (u16_t)(seqno - next->tcphdr->seqno);
- pbuf_realloc(next->p, next->len);
- }
- }
- break;
- }
- }
- prev = next;
- }
- }
-#endif /* TCP_QUEUE_OOSEQ */
-
- }
- } else {
- /* The incoming segment is not withing the window. */
- tcp_send_empty_ack(pcb);
- }
- } else {
- /* Segments with length 0 is taken care of here. Segments that
- fall out of the window are ACKed. */
- /*if (TCP_SEQ_GT(pcb->rcv_nxt, seqno) ||
- TCP_SEQ_GEQ(seqno, pcb->rcv_nxt + pcb->rcv_wnd)) {*/
- if(!TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd-1)){
- tcp_ack_now(pcb);
- }
- }
-}
-
-/**
- * Parses the options contained in the incoming segment.
- *
- * Called from tcp_listen_input() and tcp_process().
- * Currently, only the MSS option is supported!
- *
- * @param pcb the tcp_pcb for which a segment arrived
- */
-static void
-tcp_parseopt(struct tcp_pcb *pcb)
-{
- u16_t c, max_c;
- u16_t mss;
- u8_t *opts, opt;
-#if LWIP_TCP_TIMESTAMPS
- u32_t tsval;
-#endif
-
- opts = (u8_t *)tcphdr + TCP_HLEN;
-
- /* Parse the TCP MSS option, if present. */
- if(TCPH_HDRLEN(tcphdr) > 0x5) {
- max_c = (TCPH_HDRLEN(tcphdr) - 5) << 2;
- for (c = 0; c < max_c; ) {
- opt = opts[c];
- switch (opt) {
- case 0x00:
- /* End of options. */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: EOL\n"));
- return;
- case 0x01:
- /* NOP option. */
- ++c;
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: NOP\n"));
- break;
- case 0x02:
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: MSS\n"));
- if (opts[c + 1] != 0x04 || c + 0x04 > max_c) {
- /* Bad length */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n"));
- return;
- }
- /* An MSS option with the right option length. */
- mss = (opts[c + 2] << 8) | opts[c + 3];
- /* Limit the mss to the configured TCP_MSS and prevent division by zero */
- pcb->mss = ((mss > TCP_MSS) || (mss == 0)) ? TCP_MSS : mss;
- /* Advance to next option */
- c += 0x04;
- break;
-#if LWIP_TCP_TIMESTAMPS
- case 0x08:
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: TS\n"));
- if (opts[c + 1] != 0x0A || c + 0x0A > max_c) {
- /* Bad length */
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n"));
- return;
- }
- /* TCP timestamp option with valid length */
- tsval = (opts[c+2]) | (opts[c+3] << 8) |
- (opts[c+4] << 16) | (opts[c+5] << 24);
- if (flags & TCP_SYN) {
- pcb->ts_recent = ntohl(tsval);
- pcb->flags |= TF_TIMESTAMP;
- } else if (TCP_SEQ_BETWEEN(pcb->ts_lastacksent, seqno, seqno+tcplen)) {
- pcb->ts_recent = ntohl(tsval);
- }
- /* Advance to next option */
- c += 0x0A;
- break;
-#endif
- default:
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: other\n"));
- if (opts[c + 1] == 0) {
- LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n"));
- /* If the length field is zero, the options are malformed
- and we don't process them further. */
- return;
- }
- /* All other options have a length field, so that we easily
- can skip past them. */
- c += opts[c + 1];
- }
- }
- }
-}
-
-#endif /* LWIP_TCP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_out.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_out.c
deleted file mode 100644
index 9605beb..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_out.c
+++ /dev/null
@@ -1,1071 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Transmission Control Protocol, outgoing traffic
- *
- * The output functions of TCP.
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/tcp.h"
-#include "lwip/def.h"
-#include "lwip/mem.h"
-#include "lwip/memp.h"
-#include "lwip/sys.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/stats.h"
-#include "lwip/snmp.h"
-
-#include <string.h>
-#define _TEST_HD_
-/* Forward declarations.*/
-static void tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb);
-
-static struct tcp_hdr *
-tcp_output_set_header(struct tcp_pcb *pcb, struct pbuf *p, int optlen,
- u32_t seqno_be /* already in network byte order */)
-{
- struct tcp_hdr *tcphdr = p->payload;
- tcphdr->src = htons(pcb->local_port);
- tcphdr->dest = htons(pcb->remote_port);
- tcphdr->seqno = seqno_be;
- tcphdr->ackno = htonl(pcb->rcv_nxt);
- TCPH_FLAGS_SET(tcphdr, TCP_ACK);
- tcphdr->wnd = htons(pcb->rcv_ann_wnd);
- tcphdr->urgp = 0;
- TCPH_HDRLEN_SET(tcphdr, (5 + optlen / 4));
- tcphdr->chksum = 0;
-
- /* If we're sending a packet, update the announced right window edge */
- pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd;
-
- return tcphdr;
-}
-
-/**
- * Called by tcp_close() to send a segment including flags but not data.
- *
- * @param pcb the tcp_pcb over which to send a segment
- * @param flags the flags to set in the segment header
- * @return ERR_OK if sent, another err_t otherwise
- */
-err_t
-tcp_send_ctrl(struct tcp_pcb *pcb, u8_t flags)
-{
- /* no data, no length, flags, copy=1, no optdata */
- return tcp_enqueue(pcb, NULL, 0, flags, TCP_WRITE_FLAG_COPY, 0);
-}
-
-/**
- * Write data for sending (but does not send it immediately).
- *
- * It waits in the expectation of more data being sent soon (as
- * it can send them more efficiently by combining them together).
- * To prompt the system to send data now, call tcp_output() after
- * calling tcp_write().
- *
- * @param pcb Protocol control block of the TCP connection to enqueue data for.
- * @param data pointer to the data to send
- * @param len length (in bytes) of the data to send
- * @param apiflags combination of following flags :
- * - TCP_WRITE_FLAG_COPY (0x01) data will be copied into memory belonging to the stack
- * - TCP_WRITE_FLAG_MORE (0x02) for TCP connection, PSH flag will be set on last segment sent,
- * @return ERR_OK if enqueued, another err_t on error
- *
- * @see tcp_write()
- */
-err_t
-tcp_write(struct tcp_pcb *pcb, const void *data, u16_t len, u8_t apiflags)
-{
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")\n", (void *)pcb,
- data, len, (u16_t)apiflags));
- /* connection is in valid state for data transmission? */
- if (pcb->state == ESTABLISHED ||
- pcb->state == CLOSE_WAIT ||
- pcb->state == SYN_SENT ||
- pcb->state == SYN_RCVD) {
- if (len > 0) {
-#if LWIP_TCP_TIMESTAMPS
- return tcp_enqueue(pcb, (void *)data, len, 0, apiflags,
- pcb->flags & TF_TIMESTAMP ? TF_SEG_OPTS_TS : 0);
-#else
- return tcp_enqueue(pcb, (void *)data, len, 0, apiflags, 0);
-#endif
- }
- return ERR_OK;
- } else {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_STATE | LWIP_DBG_LEVEL_SEVERE, ("tcp_write() called in invalid state\n"));
- return ERR_CONN;
- }
-}
-
-/**
- * Enqueue data and/or TCP options for transmission
- *
- * Called by tcp_connect(), tcp_listen_input(), tcp_send_ctrl() and tcp_write().
- *
- * @param pcb Protocol control block for the TCP connection to enqueue data for.
- * @param arg Pointer to the data to be enqueued for sending.
- * @param len Data length in bytes
- * @param flags tcp header flags to set in the outgoing segment
- * @param apiflags combination of following flags :
- * - TCP_WRITE_FLAG_COPY (0x01) data will be copied into memory belonging to the stack
- * - TCP_WRITE_FLAG_MORE (0x02) for TCP connection, PSH flag will be set on last segment sent,
- * @param optflags options to include in segment later on (see definition of struct tcp_seg)
- */
-err_t
-tcp_enqueue(struct tcp_pcb *pcb, void *arg, u16_t len,
- u8_t flags, u8_t apiflags, u8_t optflags)
-{
- struct pbuf *p;
- struct tcp_seg *seg, *useg, *queue;
- u32_t seqno;
- u16_t left, seglen;
- void *ptr;
- u16_t queuelen;
- u8_t optlen;
-
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG,
- ("tcp_enqueue(pcb=%p, arg=%p, len=%"U16_F", flags=%"X16_F", apiflags=%"U16_F")\n",
- (void *)pcb, arg, len, (u16_t)flags, (u16_t)apiflags));
- LWIP_ERROR("tcp_enqueue: packet needs payload, options, or SYN/FIN (programmer violates API)",
- ((len != 0) || (optflags != 0) || ((flags & (TCP_SYN | TCP_FIN)) != 0)),
- return ERR_ARG;);
- LWIP_ERROR("tcp_enqueue: len != 0 || arg == NULL (programmer violates API)",
- ((len != 0) || (arg == NULL)), return ERR_ARG;);
-
- /* fail on too much data */
- if (len > pcb->snd_buf) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_WARNING,
- ("tcp_enqueue: too much data (len=%"U16_F" > snd_buf=%"U16_F")\n", len, pcb->snd_buf));
- pcb->flags |= TF_NAGLEMEMERR;
- return ERR_MEM;
- }
- left = len;
- ptr = arg;
-
- optlen = LWIP_TCP_OPT_LENGTH(optflags);
-
- /* seqno will be the sequence number of the first segment enqueued
- * by the call to this function. */
- seqno = pcb->snd_lbb;
-
- LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_enqueue: queuelen: %"U16_F"\n", (u16_t)pcb->snd_queuelen));
-
- /* If total number of pbufs on the unsent/unacked queues exceeds the
- * configured maximum, return an error */
- queuelen = pcb->snd_queuelen;
- /* check for configured max queuelen and possible overflow */
- if ((queuelen >= TCP_SND_QUEUELEN) || (queuelen > TCP_SNDQUEUELEN_OVERFLOW)) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_WARNING,
- ("tcp_enqueue: too long queue %"U16_F" (max %"U16_F")\n", queuelen, TCP_SND_QUEUELEN));
- TCP_STATS_INC(tcp.memerr);
- pcb->flags |= TF_NAGLEMEMERR;
- return ERR_MEM;
- }
- if (queuelen != 0) {
- LWIP_ASSERT("tcp_enqueue: pbufs on queue => at least one queue non-empty",
- pcb->unacked != NULL || pcb->unsent != NULL);
- } else {
- LWIP_ASSERT("tcp_enqueue: no pbufs on queue => both queues empty",
- pcb->unacked == NULL && pcb->unsent == NULL);
- }
-
- /* First, break up the data into segments and tuck them together in
- * the local "queue" variable. */
- useg = queue = seg = NULL;
- seglen = 0;
- while (queue == NULL || left > 0) {
- /* The segment length (including options) should be at most the MSS */
- seglen = left > (pcb->mss - optlen) ? (pcb->mss - optlen) : left;
-
- /* Allocate memory for tcp_seg, and fill in fields. */
- seg = memp_malloc(MEMP_TCP_SEG);
- if (seg == NULL) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("tcp_enqueue: could not allocate memory for tcp_seg\n"));
- goto memerr;
- }
- seg->next = NULL;
- seg->p = NULL;
-
- /* first segment of to-be-queued data? */
- if (queue == NULL) {
- queue = seg;
- }
- /* subsequent segments of to-be-queued data */
- else {
- /* Attach the segment to the end of the queued segments */
- LWIP_ASSERT("useg != NULL", useg != NULL);
- useg->next = seg;
- }
- /* remember last segment of to-be-queued data for next iteration */
- useg = seg;
-
- /* If copy is set, memory should be allocated
- * and data copied into pbuf, otherwise data comes from
- * ROM or other static memory, and need not be copied. */
- if (apiflags & TCP_WRITE_FLAG_COPY) {
- if ((seg->p = pbuf_alloc(PBUF_TRANSPORT, seglen + optlen, PBUF_RAM)) == NULL) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("tcp_enqueue : could not allocate memory for pbuf copy size %"U16_F"\n", seglen));
- goto memerr;
- }
- LWIP_ASSERT("check that first pbuf can hold the complete seglen",
- (seg->p->len >= seglen + optlen));
- queuelen += pbuf_clen(seg->p);
- if (arg != NULL) {
- MEMCPY((char *)seg->p->payload + optlen, ptr, seglen);
- }
- seg->dataptr = seg->p->payload;
- }
- /* do not copy data */
- else {
- /* First, allocate a pbuf for the headers. */
- if ((seg->p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("tcp_enqueue: could not allocate memory for header pbuf\n"));
- goto memerr;
- }
- queuelen += pbuf_clen(seg->p);
-
- /* Second, allocate a pbuf for holding the data.
- * since the referenced data is available at least until it is sent out on the
- * link (as it has to be ACKed by the remote party) we can safely use PBUF_ROM
- * instead of PBUF_REF here.
- */
- if (left > 0) {
- if ((p = pbuf_alloc(PBUF_RAW, seglen, PBUF_ROM)) == NULL) {
- /* If allocation fails, we have to deallocate the header pbuf as well. */
- pbuf_free(seg->p);
- seg->p = NULL;
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("tcp_enqueue: could not allocate memory for zero-copy pbuf\n"));
- goto memerr;
- }
- ++queuelen;
- /* reference the non-volatile payload data */
- p->payload = ptr;
- seg->dataptr = ptr;
-
- /* Concatenate the headers and data pbufs together. */
- pbuf_cat(seg->p/*header*/, p/*data*/);
- p = NULL;
- }
- }
-
- /* Now that there are more segments queued, we check again if the
- length of the queue exceeds the configured maximum or overflows. */
- if ((queuelen > TCP_SND_QUEUELEN) || (queuelen > TCP_SNDQUEUELEN_OVERFLOW)) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("tcp_enqueue: queue too long %"U16_F" (%"U16_F")\n", queuelen, TCP_SND_QUEUELEN));
- goto memerr;
- }
-
- seg->len = seglen;
-
- /* build TCP header */
- if (pbuf_header(seg->p, TCP_HLEN)) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("tcp_enqueue: no room for TCP header in pbuf.\n"));
- TCP_STATS_INC(tcp.err);
- goto memerr;
- }
- seg->tcphdr = seg->p->payload;
- seg->tcphdr->src = htons(pcb->local_port);
- seg->tcphdr->dest = htons(pcb->remote_port);
- seg->tcphdr->seqno = htonl(seqno);
- seg->tcphdr->urgp = 0;
- TCPH_FLAGS_SET(seg->tcphdr, flags);
- /* don't fill in tcphdr->ackno and tcphdr->wnd until later */
-
- seg->flags = optflags;
-
- /* Set the length of the header */
- TCPH_HDRLEN_SET(seg->tcphdr, (5 + optlen / 4));
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_TRACE, ("tcp_enqueue: queueing %"U32_F":%"U32_F" (0x%"X16_F")\n",
- ntohl(seg->tcphdr->seqno),
- ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg),
- (u16_t)flags));
-
- left -= seglen;
- seqno += seglen;
- ptr = (void *)((u8_t *)ptr + seglen);
- }
-
- /* Now that the data to be enqueued has been broken up into TCP
- segments in the queue variable, we add them to the end of the
- pcb->unsent queue. */
- if (pcb->unsent == NULL) {
- useg = NULL;
- }
- else {
- for (useg = pcb->unsent; useg->next != NULL; useg = useg->next);
- }
- /* { useg is last segment on the unsent queue, NULL if list is empty } */
-
- /* If there is room in the last pbuf on the unsent queue,
- chain the first pbuf on the queue together with that. */
- if (useg != NULL &&
- TCP_TCPLEN(useg) != 0 &&
- !(TCPH_FLAGS(useg->tcphdr) & (TCP_SYN | TCP_FIN)) &&
- (!(flags & (TCP_SYN | TCP_FIN)) || (flags == TCP_FIN)) &&
- /* fit within max seg size */
- (useg->len + queue->len <= pcb->mss) &&
- /* only concatenate segments with the same options */
- (useg->flags == queue->flags) &&
- /* segments are consecutive */
- (ntohl(useg->tcphdr->seqno) + useg->len == ntohl(queue->tcphdr->seqno)) ) {
- /* Remove TCP header from first segment of our to-be-queued list */
- if(pbuf_header(queue->p, -(TCP_HLEN + optlen))) {
- /* Can we cope with this failing? Just assert for now */
- LWIP_ASSERT("pbuf_header failed\n", 0);
- TCP_STATS_INC(tcp.err);
- goto memerr;
- }
- if (queue->p->len == 0) {
- /* free the first (header-only) pbuf if it is now empty (contained only headers) */
- struct pbuf *old_q = queue->p;
- queue->p = queue->p->next;
- old_q->next = NULL;
- queuelen--;
- pbuf_free(old_q);
- }
- if (flags & TCP_FIN) {
- /* the new segment contains only FIN, no data -> put the FIN into the last segment */
- LWIP_ASSERT("FIN enqueued together with data", queue->p == NULL && queue->len == 0);
- TCPH_SET_FLAG(useg->tcphdr, TCP_FIN);
- } else {
- LWIP_ASSERT("zero-length pbuf", (queue->p != NULL) && (queue->p->len > 0));
- pbuf_cat(useg->p, queue->p);
- useg->len += queue->len;
- useg->next = queue->next;
- }
-
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("tcp_enqueue: chaining segments, new len %"U16_F"\n", useg->len));
- if (seg == queue) {
- seg = useg;
- seglen = useg->len;
- }
- memp_free(MEMP_TCP_SEG, queue);
- }
- else {
- /* empty list */
- if (useg == NULL) {
- /* initialize list with this segment */
- pcb->unsent = queue;
- }
- /* enqueue segment */
- else {
- useg->next = queue;
- }
- }
- if ((flags & TCP_SYN) || (flags & TCP_FIN)) {
- ++len;
- }
- if (flags & TCP_FIN) {
- pcb->flags |= TF_FIN;
- }
- pcb->snd_lbb += len;
-
- pcb->snd_buf -= len;
-
- /* update number of segments on the queues */
- pcb->snd_queuelen = queuelen;
- LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_enqueue: %"S16_F" (after enqueued)\n", pcb->snd_queuelen));
- if (pcb->snd_queuelen != 0) {
- LWIP_ASSERT("tcp_enqueue: valid queue length",
- pcb->unacked != NULL || pcb->unsent != NULL);
- }
-
- /* Set the PSH flag in the last segment that we enqueued, but only
- if the segment has data (indicated by seglen > 0). */
- if (seg != NULL && seglen > 0 && seg->tcphdr != NULL && ((apiflags & TCP_WRITE_FLAG_MORE)==0)) {
- TCPH_SET_FLAG(seg->tcphdr, TCP_PSH);
- }
-
- return ERR_OK;
-memerr:
- pcb->flags |= TF_NAGLEMEMERR;
- TCP_STATS_INC(tcp.memerr);
-
- if (queue != NULL) {
- tcp_segs_free(queue);
- }
- if (pcb->snd_queuelen != 0) {
- LWIP_ASSERT("tcp_enqueue: valid queue length", pcb->unacked != NULL ||
- pcb->unsent != NULL);
- }
- LWIP_DEBUGF(TCP_QLEN_DEBUG | LWIP_DBG_STATE, ("tcp_enqueue: %"S16_F" (with mem err)\n", pcb->snd_queuelen));
- return ERR_MEM;
-}
-
-
-#if LWIP_TCP_TIMESTAMPS
-/* Build a timestamp option (12 bytes long) at the specified options pointer)
- *
- * @param pcb tcp_pcb
- * @param opts option pointer where to store the timestamp option
- */
-static void
-tcp_build_timestamp_option(struct tcp_pcb *pcb, u32_t *opts)
-{
- /* Pad with two NOP options to make everything nicely aligned */
- opts[0] = htonl(0x0101080A);
- opts[1] = htonl(sys_now());
- opts[2] = htonl(pcb->ts_recent);
-}
-#endif
-
-/** Send an ACK without data.
- *
- * @param pcb Protocol control block for the TCP connection to send the ACK
- */
-err_t
-tcp_send_empty_ack(struct tcp_pcb *pcb)
-{
- struct pbuf *p;
- struct tcp_hdr *tcphdr;
- u8_t optlen = 0;
-
-#if LWIP_TCP_TIMESTAMPS
- if (pcb->flags & TF_TIMESTAMP) {
- optlen = LWIP_TCP_OPT_LENGTH(TF_SEG_OPTS_TS);
- }
-#endif
- p = pbuf_alloc(PBUF_IP, TCP_HLEN + optlen, PBUF_RAM);
- if (p == NULL) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: (ACK) could not allocate pbuf\n"));
- return ERR_BUF;
- }
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG,
- ("tcp_output: sending ACK for %"U32_F"\n", pcb->rcv_nxt));
- /* remove ACK flags from the PCB, as we send an empty ACK now */
- pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
-
- tcphdr = tcp_output_set_header(pcb, p, optlen, htonl(pcb->snd_nxt));
-
- /* NB. MSS option is only sent on SYNs, so ignore it here */
-#if LWIP_TCP_TIMESTAMPS
- pcb->ts_lastacksent = pcb->rcv_nxt;
-
- if (pcb->flags & TF_TIMESTAMP) {
- tcp_build_timestamp_option(pcb, (u32_t *)(tcphdr + 1));
- }
-#endif
-
-#if CHECKSUM_GEN_TCP
- tcphdr->chksum = inet_chksum_pseudo(p, &(pcb->local_ip), &(pcb->remote_ip),
- IP_PROTO_TCP, p->tot_len);
-#endif
-#if LWIP_NETIF_HWADDRHINT
- ip_output_hinted(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
- IP_PROTO_TCP, &(pcb->addr_hint));
-#else /* LWIP_NETIF_HWADDRHINT*/
- ip_output(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
- IP_PROTO_TCP);
-#endif /* LWIP_NETIF_HWADDRHINT*/
- pbuf_free(p);
-
- return ERR_OK;
-}
-
-/**
- * Find out what we can send and send it
- *
- * @param pcb Protocol control block for the TCP connection to send data
- * @return ERR_OK if data has been sent or nothing to send
- * another err_t on error
- */
-err_t
-tcp_output(struct tcp_pcb *pcb)
-{
- struct tcp_seg *seg, *useg;
- u32_t wnd, snd_nxt;
-#if TCP_CWND_DEBUG
- s16_t i = 0;
-#endif /* TCP_CWND_DEBUG */
-
- /* First, check if we are invoked by the TCP input processing
- code. If so, we do not output anything. Instead, we rely on the
- input processing code to call us when input processing is done
- with. */
- if (tcp_input_pcb == pcb) {
- return ERR_OK;
- }
-
- wnd = LWIP_MIN(pcb->snd_wnd, pcb->cwnd);
-
- seg = pcb->unsent;
-
- /* If the TF_ACK_NOW flag is set and no data will be sent (either
- * because the ->unsent queue is empty or because the window does
- * not allow it), construct an empty ACK segment and send it.
- *
- * If data is to be sent, we will just piggyback the ACK (see below).
- */
- if (pcb->flags & TF_ACK_NOW &&
- (seg == NULL ||
- ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > wnd)) {
- return tcp_send_empty_ack(pcb);
- }
-
- /* useg should point to last segment on unacked queue */
- useg = pcb->unacked;
- if (useg != NULL) {
- for (; useg->next != NULL; useg = useg->next);
- }
-
-#if TCP_OUTPUT_DEBUG
- if (seg == NULL) {
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: nothing to send (%p)\n",
- (void*)pcb->unsent));
- }
-#endif /* TCP_OUTPUT_DEBUG */
-#if TCP_CWND_DEBUG
- if (seg == NULL) {
- LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"U16_F
- ", cwnd %"U16_F", wnd %"U32_F
- ", seg == NULL, ack %"U32_F"\n",
- pcb->snd_wnd, pcb->cwnd, wnd, pcb->lastack));
- } else {
- LWIP_DEBUGF(TCP_CWND_DEBUG,
- ("tcp_output: snd_wnd %"U16_F", cwnd %"U16_F", wnd %"U32_F
- ", effwnd %"U32_F", seq %"U32_F", ack %"U32_F"\n",
- pcb->snd_wnd, pcb->cwnd, wnd,
- ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len,
- ntohl(seg->tcphdr->seqno), pcb->lastack));
- }
-#endif /* TCP_CWND_DEBUG */
- /* data available and window allows it to be sent? */
- while (seg != NULL &&
- ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) {
- LWIP_ASSERT("RST not expected here!",
- (TCPH_FLAGS(seg->tcphdr) & TCP_RST) == 0);
- /* Stop sending if the nagle algorithm would prevent it
- * Don't stop:
- * - if tcp_enqueue had a memory error before (prevent delayed ACK timeout) or
- * - if FIN was already enqueued for this PCB (SYN is always alone in a segment -
- * either seg->next != NULL or pcb->unacked == NULL;
- * RST is no sent using tcp_enqueue/tcp_output.
- */
- if((tcp_do_output_nagle(pcb) == 0) &&
- ((pcb->flags & (TF_NAGLEMEMERR | TF_FIN)) == 0)){
- break;
- }
-#if TCP_CWND_DEBUG
- LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"U16_F", cwnd %"U16_F", wnd %"U32_F", effwnd %"U32_F", seq %"U32_F", ack %"U32_F", i %"S16_F"\n",
- pcb->snd_wnd, pcb->cwnd, wnd,
- ntohl(seg->tcphdr->seqno) + seg->len -
- pcb->lastack,
- ntohl(seg->tcphdr->seqno), pcb->lastack, i));
- ++i;
-#endif /* TCP_CWND_DEBUG */
-
- pcb->unsent = seg->next;
-
- if (pcb->state != SYN_SENT) {
- TCPH_SET_FLAG(seg->tcphdr, TCP_ACK);
- pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
- }
-
- tcp_output_segment(seg, pcb);
- snd_nxt = ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg);
- if (TCP_SEQ_LT(pcb->snd_nxt, snd_nxt)) {
- pcb->snd_nxt = snd_nxt;
- }
- /* put segment on unacknowledged list if length > 0 */
- if (TCP_TCPLEN(seg) > 0) {
- seg->next = NULL;
- /* unacked list is empty? */
- if (pcb->unacked == NULL) {
- pcb->unacked = seg;
- useg = seg;
- /* unacked list is not empty? */
- } else {
- /* In the case of fast retransmit, the packet should not go to the tail
- * of the unacked queue, but rather somewhere before it. We need to check for
- * this case. -STJ Jul 27, 2004 */
- if (TCP_SEQ_LT(ntohl(seg->tcphdr->seqno), ntohl(useg->tcphdr->seqno))){
- /* add segment to before tail of unacked list, keeping the list sorted */
- struct tcp_seg **cur_seg = &(pcb->unacked);
- while (*cur_seg &&
- TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
- cur_seg = &((*cur_seg)->next );
- }
- seg->next = (*cur_seg);
- (*cur_seg) = seg;
- } else {
- /* add segment to tail of unacked list */
- useg->next = seg;
- useg = useg->next;
- }
- }
- /* do not queue empty segments on the unacked list */
- } else {
- tcp_seg_free(seg);
- }
- seg = pcb->unsent;
- }
-
- if (seg != NULL && pcb->persist_backoff == 0 &&
- ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > pcb->snd_wnd) {
- /* prepare for persist timer */
- pcb->persist_cnt = 0;
- pcb->persist_backoff = 1;
- }
-
- pcb->flags &= ~TF_NAGLEMEMERR;
- return ERR_OK;
-}
-
-/**
- * Called by tcp_output() to actually send a TCP segment over IP.
- *
- * @param seg the tcp_seg to send
- * @param pcb the tcp_pcb for the TCP connection used to send the segment
- */
-static void
-tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb)
-{
- u16_t len;
- struct netif *netif;
- u32_t *opts;
-
- /** @bug Exclude retransmitted segments from this count. */
- snmp_inc_tcpoutsegs();
-
- /* The TCP header has already been constructed, but the ackno and
- wnd fields remain. */
- seg->tcphdr->ackno = htonl(pcb->rcv_nxt);
-
- /* advertise our receive window size in this TCP segment */
- seg->tcphdr->wnd = htons(pcb->rcv_ann_wnd);
-
- pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd;
-
- /* Add any requested options. NB MSS option is only set on SYN
- packets, so ignore it here */
- opts = (u32_t *)(seg->tcphdr + 1);
- if (seg->flags & TF_SEG_OPTS_MSS) {
- TCP_BUILD_MSS_OPTION(*opts);
- opts += 1;
- }
-#if LWIP_TCP_TIMESTAMPS
- pcb->ts_lastacksent = pcb->rcv_nxt;
-
- if (seg->flags & TF_SEG_OPTS_TS) {
- tcp_build_timestamp_option(pcb, opts);
- opts += 3;
- }
-#endif
-
-#ifdef _TEST_HD_
- /* ANGR: set rtime this _before_ checking ip_route(). Otherwise TCP_SYN will
- * not be retransmitted in case the interface was down and tcp_connect()
- * will not return any error. Since we still want the err_cb() (or maybe
- * the wifi link comes up), make sure that we fulfill the retransmissions in
- * tcp_slowtmr()
- */
-
- /* Set retransmission timer running if it is not currently enabled */
- if(pcb->rtime == -1)
- pcb->rtime = 0;
-#endif
-
- /* If we don't have a local IP address, we get one by
- calling ip_route(). */
- if (ip_addr_isany(&(pcb->local_ip))) {
- netif = ip_route(&(pcb->remote_ip));
- if (netif == NULL) {
- return;
- }
- ip_addr_set(&(pcb->local_ip), &(netif->ip_addr));
- }
-
-#ifndef _TEST_HD_
- //Set retransmission timer running if it is not currently enabled
- if(pcb->rtime == -1)
- pcb->rtime = 0;
-#endif
-
- if (pcb->rttest == 0) {
- pcb->rttest = tcp_ticks;
- pcb->rtseq = ntohl(seg->tcphdr->seqno);
-
- LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_output_segment: rtseq %"U32_F"\n", pcb->rtseq));
- }
- LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output_segment: %"U32_F":%"U32_F"\n",
- htonl(seg->tcphdr->seqno), htonl(seg->tcphdr->seqno) +
- seg->len));
-
- len = (u16_t)((u8_t *)seg->tcphdr - (u8_t *)seg->p->payload);
-
- seg->p->len -= len;
- seg->p->tot_len -= len;
-
- seg->p->payload = seg->tcphdr;
-
- seg->tcphdr->chksum = 0;
-#if CHECKSUM_GEN_TCP
- seg->tcphdr->chksum = inet_chksum_pseudo(seg->p,
- &(pcb->local_ip),
- &(pcb->remote_ip),
- IP_PROTO_TCP, seg->p->tot_len);
-#endif
- TCP_STATS_INC(tcp.xmit);
-
-#if LWIP_NETIF_HWADDRHINT
- ip_output_hinted(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
- IP_PROTO_TCP, &(pcb->addr_hint));
-#else /* LWIP_NETIF_HWADDRHINT*/
- ip_output(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
- IP_PROTO_TCP);
-#endif /* LWIP_NETIF_HWADDRHINT*/
-}
-
-/**
- * Send a TCP RESET packet (empty segment with RST flag set) either to
- * abort a connection or to show that there is no matching local connection
- * for a received segment.
- *
- * Called by tcp_abort() (to abort a local connection), tcp_input() (if no
- * matching local pcb was found), tcp_listen_input() (if incoming segment
- * has ACK flag set) and tcp_process() (received segment in the wrong state)
- *
- * Since a RST segment is in most cases not sent for an active connection,
- * tcp_rst() has a number of arguments that are taken from a tcp_pcb for
- * most other segment output functions.
- *
- * @param seqno the sequence number to use for the outgoing segment
- * @param ackno the acknowledge number to use for the outgoing segment
- * @param local_ip the local IP address to send the segment from
- * @param remote_ip the remote IP address to send the segment to
- * @param local_port the local TCP port to send the segment from
- * @param remote_port the remote TCP port to send the segment to
- */
-void
-tcp_rst(u32_t seqno, u32_t ackno,
- struct ip_addr *local_ip, struct ip_addr *remote_ip,
- u16_t local_port, u16_t remote_port)
-{
- struct pbuf *p;
- struct tcp_hdr *tcphdr;
- p = pbuf_alloc(PBUF_IP, TCP_HLEN, PBUF_RAM);
- if (p == NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_rst: could not allocate memory for pbuf\n"));
- return;
- }
- LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr",
- (p->len >= sizeof(struct tcp_hdr)));
-
- tcphdr = p->payload;
- tcphdr->src = htons(local_port);
- tcphdr->dest = htons(remote_port);
- tcphdr->seqno = htonl(seqno);
- tcphdr->ackno = htonl(ackno);
- TCPH_FLAGS_SET(tcphdr, TCP_RST | TCP_ACK);
- tcphdr->wnd = htons(TCP_WND);
- tcphdr->urgp = 0;
- TCPH_HDRLEN_SET(tcphdr, 5);
-
- tcphdr->chksum = 0;
-#if CHECKSUM_GEN_TCP
- tcphdr->chksum = inet_chksum_pseudo(p, local_ip, remote_ip,
- IP_PROTO_TCP, p->tot_len);
-#endif
- TCP_STATS_INC(tcp.xmit);
- snmp_inc_tcpoutrsts();
- /* Send output with hardcoded TTL since we have no access to the pcb */
- ip_output(p, local_ip, remote_ip, TCP_TTL, 0, IP_PROTO_TCP);
- pbuf_free(p);
- LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_rst: seqno %"U32_F" ackno %"U32_F".\n", seqno, ackno));
-}
-
-/**
- * Requeue all unacked segments for retransmission
- *
- * Called by tcp_slowtmr() for slow retransmission.
- *
- * @param pcb the tcp_pcb for which to re-enqueue all unacked segments
- */
-void
-tcp_rexmit_rto(struct tcp_pcb *pcb)
-{
- struct tcp_seg *seg;
-
- if (pcb->unacked == NULL) {
- return;
- }
-
- /* Move all unacked segments to the head of the unsent queue */
- for (seg = pcb->unacked; seg->next != NULL; seg = seg->next);
- /* concatenate unsent queue after unacked queue */
- seg->next = pcb->unsent;
- /* unsent queue is the concatenated queue (of unacked, unsent) */
- pcb->unsent = pcb->unacked;
- /* unacked queue is now empty */
- pcb->unacked = NULL;
-
- /* increment number of retransmissions */
- ++pcb->nrtx;
-
- /* Don't take any RTT measurements after retransmitting. */
- pcb->rttest = 0;
-
- /* Do the actual retransmission */
- tcp_output(pcb);
-}
-
-/**
- * Requeue the first unacked segment for retransmission
- *
- * Called by tcp_receive() for fast retramsmit.
- *
- * @param pcb the tcp_pcb for which to retransmit the first unacked segment
- */
-void
-tcp_rexmit(struct tcp_pcb *pcb)
-{
- struct tcp_seg *seg;
- struct tcp_seg **cur_seg;
-
- if (pcb->unacked == NULL) {
- return;
- }
-
- /* Move the first unacked segment to the unsent queue */
- /* Keep the unsent queue sorted. */
- seg = pcb->unacked;
- pcb->unacked = seg->next;
-
- cur_seg = &(pcb->unsent);
- while (*cur_seg &&
- TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
- cur_seg = &((*cur_seg)->next );
- }
- seg->next = *cur_seg;
- *cur_seg = seg;
-
- ++pcb->nrtx;
-
- /* Don't take any rtt measurements after retransmitting. */
- pcb->rttest = 0;
-
- /* Do the actual retransmission. */
- snmp_inc_tcpretranssegs();
- /* No need to call tcp_output: we are always called from tcp_input()
- and thus tcp_output directly returns. */
-}
-
-
-/**
- * Handle retransmission after three dupacks received
- *
- * @param pcb the tcp_pcb for which to retransmit the first unacked segment
- */
-void
-tcp_rexmit_fast(struct tcp_pcb *pcb)
-{
- if (pcb->unacked != NULL && !(pcb->flags & TF_INFR)) {
- /* This is fast retransmit. Retransmit the first unacked segment. */
- LWIP_DEBUGF(TCP_FR_DEBUG,
- ("tcp_receive: dupacks %"U16_F" (%"U32_F
- "), fast retransmit %"U32_F"\n",
- (u16_t)pcb->dupacks, pcb->lastack,
- ntohl(pcb->unacked->tcphdr->seqno)));
- tcp_rexmit(pcb);
-
- /* Set ssthresh to half of the minimum of the current
- * cwnd and the advertised window */
- if (pcb->cwnd > pcb->snd_wnd)
- pcb->ssthresh = pcb->snd_wnd / 2;
- else
- pcb->ssthresh = pcb->cwnd / 2;
-
- /* The minimum value for ssthresh should be 2 MSS */
- if (pcb->ssthresh < 2*pcb->mss) {
- LWIP_DEBUGF(TCP_FR_DEBUG,
- ("tcp_receive: The minimum value for ssthresh %"U16_F
- " should be min 2 mss %"U16_F"...\n",
- pcb->ssthresh, 2*pcb->mss));
- pcb->ssthresh = 2*pcb->mss;
- }
-
- pcb->cwnd = pcb->ssthresh + 3 * pcb->mss;
- pcb->flags |= TF_INFR;
- }
-}
-
-
-/**
- * Send keepalive packets to keep a connection active although
- * no data is sent over it.
- *
- * Called by tcp_slowtmr()
- *
- * @param pcb the tcp_pcb for which to send a keepalive packet
- */
-void
-tcp_keepalive(struct tcp_pcb *pcb)
-{
- struct pbuf *p;
- struct tcp_hdr *tcphdr;
-
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: sending KEEPALIVE probe to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
- ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip),
- ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip)));
-
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: tcp_ticks %"U32_F" pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n",
- tcp_ticks, pcb->tmr, pcb->keep_cnt_sent));
-
- p = pbuf_alloc(PBUF_IP, TCP_HLEN, PBUF_RAM);
-
- if(p == NULL) {
- LWIP_DEBUGF(TCP_DEBUG,
- ("tcp_keepalive: could not allocate memory for pbuf\n"));
- return;
- }
- LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr",
- (p->len >= sizeof(struct tcp_hdr)));
-
- tcphdr = tcp_output_set_header(pcb, p, 0, htonl(pcb->snd_nxt - 1));
-
-#if CHECKSUM_GEN_TCP
- tcphdr->chksum = inet_chksum_pseudo(p, &pcb->local_ip, &pcb->remote_ip,
- IP_PROTO_TCP, p->tot_len);
-#endif
- TCP_STATS_INC(tcp.xmit);
-
- /* Send output to IP */
-#if LWIP_NETIF_HWADDRHINT
- ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP,
- &(pcb->addr_hint));
-#else /* LWIP_NETIF_HWADDRHINT*/
- ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
-#endif /* LWIP_NETIF_HWADDRHINT*/
-
- pbuf_free(p);
-
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: seqno %"U32_F" ackno %"U32_F".\n",
- pcb->snd_nxt - 1, pcb->rcv_nxt));
-}
-
-
-/**
- * Send persist timer zero-window probes to keep a connection active
- * when a window update is lost.
- *
- * Called by tcp_slowtmr()
- *
- * @param pcb the tcp_pcb for which to send a zero-window probe packet
- */
-void
-tcp_zero_window_probe(struct tcp_pcb *pcb)
-{
- struct pbuf *p;
- struct tcp_hdr *tcphdr;
- struct tcp_seg *seg;
- u16_t len;
- u8_t is_fin;
-
- LWIP_DEBUGF(TCP_DEBUG,
- ("tcp_zero_window_probe: sending ZERO WINDOW probe to %"
- U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
- ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip),
- ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip)));
-
- LWIP_DEBUGF(TCP_DEBUG,
- ("tcp_zero_window_probe: tcp_ticks %"U32_F
- " pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n",
- tcp_ticks, pcb->tmr, pcb->keep_cnt_sent));
-
- seg = pcb->unacked;
-
- if(seg == NULL)
- seg = pcb->unsent;
-
- if(seg == NULL)
- return;
-
- is_fin = ((TCPH_FLAGS(seg->tcphdr) & TCP_FIN) != 0) && (seg->len == 0);
- len = is_fin ? TCP_HLEN : TCP_HLEN + 1;
-
- p = pbuf_alloc(PBUF_IP, len, PBUF_RAM);
- if(p == NULL) {
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: no memory for pbuf\n"));
- return;
- }
- LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr",
- (p->len >= sizeof(struct tcp_hdr)));
-
- tcphdr = tcp_output_set_header(pcb, p, 0, seg->tcphdr->seqno);
-
- if (is_fin) {
- /* FIN segment, no data */
- TCPH_FLAGS_SET(tcphdr, TCP_ACK | TCP_FIN);
- } else {
- /* Data segment, copy in one byte from the head of the unacked queue */
- *((char *)p->payload + sizeof(struct tcp_hdr)) = *(char *)seg->dataptr;
- }
-
-#if CHECKSUM_GEN_TCP
- tcphdr->chksum = inet_chksum_pseudo(p, &pcb->local_ip, &pcb->remote_ip,
- IP_PROTO_TCP, p->tot_len);
-#endif
- TCP_STATS_INC(tcp.xmit);
-
- /* Send output to IP */
-#if LWIP_NETIF_HWADDRHINT
- ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP,
- &(pcb->addr_hint));
-#else /* LWIP_NETIF_HWADDRHINT*/
- ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
-#endif /* LWIP_NETIF_HWADDRHINT*/
-
- pbuf_free(p);
-
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: seqno %"U32_F
- " ackno %"U32_F".\n",
- pcb->snd_nxt - 1, pcb->rcv_nxt));
-}
-#endif /* LWIP_TCP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/udp.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/udp.c
deleted file mode 100644
index 697ca7c..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/udp.c
+++ /dev/null
@@ -1,843 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * User Datagram Protocol module
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-
-/* udp.c
- *
- * The code for the User Datagram Protocol UDP & UDPLite (RFC 3828).
- *
- */
-
-/* @todo Check the use of '(struct udp_pcb).chksum_len_rx'!
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_UDP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/udp.h"
-#include "lwip/def.h"
-#include "lwip/memp.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/icmp.h"
-#include "lwip/stats.h"
-#include "lwip/snmp.h"
-#include "arch/perf.h"
-#include "lwip/dhcp.h"
-
-#include <string.h>
-
-/* The list of UDP PCBs */
-/* exported in udp.h (was static) */
-struct udp_pcb *udp_pcbs;
-
-/**
- * Process an incoming UDP datagram.
- *
- * Given an incoming UDP datagram (as a chain of pbufs) this function
- * finds a corresponding UDP PCB and hands over the pbuf to the pcbs
- * recv function. If no pcb is found or the datagram is incorrect, the
- * pbuf is freed.
- *
- * @param p pbuf to be demultiplexed to a UDP PCB.
- * @param inp network interface on which the datagram was received.
- *
- */
-void
-udp_input(struct pbuf *p, struct netif *inp)
-{
- struct udp_hdr *udphdr;
- struct udp_pcb *pcb, *prev;
- struct udp_pcb *uncon_pcb;
- struct ip_hdr *iphdr;
- u16_t src, dest;
- u8_t local_match;
- u8_t broadcast;
-
- PERF_START;
-
- UDP_STATS_INC(udp.recv);
-
- iphdr = p->payload;
-
- /* Check minimum length (IP header + UDP header)
- * and move payload pointer to UDP header */
- if (p->tot_len < (IPH_HL(iphdr) * 4 + UDP_HLEN) || pbuf_header(p, -(s16_t)(IPH_HL(iphdr) * 4))) {
- /* drop short packets */
- LWIP_DEBUGF(UDP_DEBUG,
- ("udp_input: short UDP datagram (%"U16_F" bytes) discarded\n", p->tot_len));
- UDP_STATS_INC(udp.lenerr);
- UDP_STATS_INC(udp.drop);
- snmp_inc_udpinerrors();
- pbuf_free(p);
- goto end;
- }
-
- udphdr = (struct udp_hdr *)p->payload;
-
- /* is broadcast packet ? */
- broadcast = ip_addr_isbroadcast(&(iphdr->dest), inp);
-
- LWIP_DEBUGF(UDP_DEBUG, ("udp_input: received datagram of length %"U16_F"\n", p->tot_len));
-
- /* convert src and dest ports to host byte order */
- src = ntohs(udphdr->src);
- dest = ntohs(udphdr->dest);
-
- udp_debug_print(udphdr);
-
- /* print the UDP source and destination */
- LWIP_DEBUGF(UDP_DEBUG,
- ("udp (%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F") <-- "
- "(%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F")\n",
- ip4_addr1(&iphdr->dest), ip4_addr2(&iphdr->dest),
- ip4_addr3(&iphdr->dest), ip4_addr4(&iphdr->dest), ntohs(udphdr->dest),
- ip4_addr1(&iphdr->src), ip4_addr2(&iphdr->src),
- ip4_addr3(&iphdr->src), ip4_addr4(&iphdr->src), ntohs(udphdr->src)));
-
-#if LWIP_DHCP
- pcb = NULL;
- /* when LWIP_DHCP is active, packets to DHCP_CLIENT_PORT may only be processed by
- the dhcp module, no other UDP pcb may use the local UDP port DHCP_CLIENT_PORT */
- if (dest == DHCP_CLIENT_PORT) {
- /* all packets for DHCP_CLIENT_PORT not coming from DHCP_SERVER_PORT are dropped! */
- if (src == DHCP_SERVER_PORT) {
- if ((inp->dhcp != NULL) && (inp->dhcp->pcb != NULL)) {
- /* accept the packe if
- (- broadcast or directed to us) -> DHCP is link-layer-addressed, local ip is always ANY!
- - inp->dhcp->pcb->remote == ANY or iphdr->src */
- if ((ip_addr_isany(&inp->dhcp->pcb->remote_ip) ||
- ip_addr_cmp(&(inp->dhcp->pcb->remote_ip), &(iphdr->src)))) {
- pcb = inp->dhcp->pcb;
- }
- }
- }
- } else
-#endif /* LWIP_DHCP */
- {
- prev = NULL;
- local_match = 0;
- uncon_pcb = NULL;
- /* Iterate through the UDP pcb list for a matching pcb.
- * 'Perfect match' pcbs (connected to the remote port & ip address) are
- * preferred. If no perfect match is found, the first unconnected pcb that
- * matches the local port and ip address gets the datagram. */
- for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
- local_match = 0;
- /* print the PCB local and remote address */
- LWIP_DEBUGF(UDP_DEBUG,
- ("pcb (%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F") --- "
- "(%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F")\n",
- ip4_addr1(&pcb->local_ip), ip4_addr2(&pcb->local_ip),
- ip4_addr3(&pcb->local_ip), ip4_addr4(&pcb->local_ip), pcb->local_port,
- ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip),
- ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip), pcb->remote_port));
-
- /* compare PCB local addr+port to UDP destination addr+port */
- if ((pcb->local_port == dest) &&
- ((!broadcast && ip_addr_isany(&pcb->local_ip)) ||
- ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest)) ||
-#if LWIP_IGMP
- ip_addr_ismulticast(&(iphdr->dest)) ||
-#endif /* LWIP_IGMP */
-#if IP_SOF_BROADCAST_RECV
- (broadcast && (pcb->so_options & SOF_BROADCAST)))) {
-#else /* IP_SOF_BROADCAST_RECV */
- (broadcast))) {
-#endif /* IP_SOF_BROADCAST_RECV */
- local_match = 1;
- if ((uncon_pcb == NULL) &&
- ((pcb->flags & UDP_FLAGS_CONNECTED) == 0)) {
- /* the first unconnected matching PCB */
- uncon_pcb = pcb;
- }
- }
- /* compare PCB remote addr+port to UDP source addr+port */
- if ((local_match != 0) &&
- (pcb->remote_port == src) &&
- (ip_addr_isany(&pcb->remote_ip) ||
- ip_addr_cmp(&(pcb->remote_ip), &(iphdr->src)))) {
- /* the first fully matching PCB */
- if (prev != NULL) {
- /* move the pcb to the front of udp_pcbs so that is
- found faster next time */
- prev->next = pcb->next;
- pcb->next = udp_pcbs;
- udp_pcbs = pcb;
- } else {
- UDP_STATS_INC(udp.cachehit);
- }
- break;
- }
- prev = pcb;
- }
- /* no fully matching pcb found? then look for an unconnected pcb */
- if (pcb == NULL) {
- pcb = uncon_pcb;
- }
- }
-
- /* Check checksum if this is a match or if it was directed at us. */
- if (pcb != NULL || ip_addr_cmp(&inp->ip_addr, &iphdr->dest)) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: calculating checksum\n"));
-#if LWIP_UDPLITE
- if (IPH_PROTO(iphdr) == IP_PROTO_UDPLITE) {
- /* Do the UDP Lite checksum */
-#if CHECKSUM_CHECK_UDP
- u16_t chklen = ntohs(udphdr->len);
- if (chklen < sizeof(struct udp_hdr)) {
- if (chklen == 0) {
- /* For UDP-Lite, checksum length of 0 means checksum
- over the complete packet (See RFC 3828 chap. 3.1) */
- chklen = p->tot_len;
- } else {
- /* At least the UDP-Lite header must be covered by the
- checksum! (Again, see RFC 3828 chap. 3.1) */
- UDP_STATS_INC(udp.chkerr);
- UDP_STATS_INC(udp.drop);
- snmp_inc_udpinerrors();
- pbuf_free(p);
- goto end;
- }
- }
- if (inet_chksum_pseudo_partial(p, (struct ip_addr *)&(iphdr->src),
- (struct ip_addr *)&(iphdr->dest),
- IP_PROTO_UDPLITE, p->tot_len, chklen) != 0) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("udp_input: UDP Lite datagram discarded due to failing checksum\n"));
- UDP_STATS_INC(udp.chkerr);
- UDP_STATS_INC(udp.drop);
- snmp_inc_udpinerrors();
- pbuf_free(p);
- goto end;
- }
-#endif /* CHECKSUM_CHECK_UDP */
- } else
-#endif /* LWIP_UDPLITE */
- {
-#if CHECKSUM_CHECK_UDP
- if (udphdr->chksum != 0) {
- if (inet_chksum_pseudo(p, (struct ip_addr *)&(iphdr->src),
- (struct ip_addr *)&(iphdr->dest),
- IP_PROTO_UDP, p->tot_len) != 0) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("udp_input: UDP datagram discarded due to failing checksum\n"));
- UDP_STATS_INC(udp.chkerr);
- UDP_STATS_INC(udp.drop);
- snmp_inc_udpinerrors();
- pbuf_free(p);
- goto end;
- }
- }
-#endif /* CHECKSUM_CHECK_UDP */
- }
- if(pbuf_header(p, -UDP_HLEN)) {
- /* Can we cope with this failing? Just assert for now */
- LWIP_ASSERT("pbuf_header failed\n", 0);
- UDP_STATS_INC(udp.drop);
- snmp_inc_udpinerrors();
- pbuf_free(p);
- goto end;
- }
- if (pcb != NULL) {
- snmp_inc_udpindatagrams();
- /* callback */
- if (pcb->recv != NULL) {
- /* now the recv function is responsible for freeing p */
- pcb->recv(pcb->recv_arg, pcb, p, &iphdr->src, src);
- } else {
- /* no recv function registered? then we have to free the pbuf! */
- pbuf_free(p);
- goto end;
- }
- } else {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: not for us.\n"));
-
-#if LWIP_ICMP
- /* No match was found, send ICMP destination port unreachable unless
- destination address was broadcast/multicast. */
- if (!broadcast &&
- !ip_addr_ismulticast(&iphdr->dest)) {
- /* move payload pointer back to ip header */
- pbuf_header(p, (IPH_HL(iphdr) * 4) + UDP_HLEN);
- LWIP_ASSERT("p->payload == iphdr", (p->payload == iphdr));
- icmp_dest_unreach(p, ICMP_DUR_PORT);
- }
-#endif /* LWIP_ICMP */
- UDP_STATS_INC(udp.proterr);
- UDP_STATS_INC(udp.drop);
- snmp_inc_udpnoports();
- pbuf_free(p);
- }
- } else {
- pbuf_free(p);
- }
-end:
- PERF_STOP("udp_input");
-}
-
-/**
- * Send data using UDP.
- *
- * @param pcb UDP PCB used to send the data.
- * @param p chain of pbuf's to be sent.
- *
- * The datagram will be sent to the current remote_ip & remote_port
- * stored in pcb. If the pcb is not bound to a port, it will
- * automatically be bound to a random port.
- *
- * @return lwIP error code.
- * - ERR_OK. Successful. No error occured.
- * - ERR_MEM. Out of memory.
- * - ERR_RTE. Could not find route to destination address.
- * - More errors could be returned by lower protocol layers.
- *
- * @see udp_disconnect() udp_sendto()
- */
-err_t
-udp_send(struct udp_pcb *pcb, struct pbuf *p)
-{
- /* send to the packet using remote ip and port stored in the pcb */
- return udp_sendto(pcb, p, &pcb->remote_ip, pcb->remote_port);
-}
-
-/**
- * Send data to a specified address using UDP.
- *
- * @param pcb UDP PCB used to send the data.
- * @param p chain of pbuf's to be sent.
- * @param dst_ip Destination IP address.
- * @param dst_port Destination UDP port.
- *
- * dst_ip & dst_port are expected to be in the same byte order as in the pcb.
- *
- * If the PCB already has a remote address association, it will
- * be restored after the data is sent.
- *
- * @return lwIP error code (@see udp_send for possible error codes)
- *
- * @see udp_disconnect() udp_send()
- */
-err_t
-udp_sendto(struct udp_pcb *pcb, struct pbuf *p,
- struct ip_addr *dst_ip, u16_t dst_port)
-{
- struct netif *netif;
-
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_send\n"));
-
- /* find the outgoing network interface for this packet */
-#if LWIP_IGMP
- netif = ip_route((ip_addr_ismulticast(dst_ip))?(&(pcb->multicast_ip)):(dst_ip));
-#else
- netif = ip_route(dst_ip);
-#endif /* LWIP_IGMP */
-
- /* no outgoing network interface could be found? */
- if (netif == NULL) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: No route to 0x%"X32_F"\n", dst_ip->addr));
- UDP_STATS_INC(udp.rterr);
- return ERR_RTE;
- }
- return udp_sendto_if(pcb, p, dst_ip, dst_port, netif);
-}
-
-/**
- * Send data to a specified address using UDP.
- * The netif used for sending can be specified.
- *
- * This function exists mainly for DHCP, to be able to send UDP packets
- * on a netif that is still down.
- *
- * @param pcb UDP PCB used to send the data.
- * @param p chain of pbuf's to be sent.
- * @param dst_ip Destination IP address.
- * @param dst_port Destination UDP port.
- * @param netif the netif used for sending.
- *
- * dst_ip & dst_port are expected to be in the same byte order as in the pcb.
- *
- * @return lwIP error code (@see udp_send for possible error codes)
- *
- * @see udp_disconnect() udp_send()
- */
-err_t
-udp_sendto_if(struct udp_pcb *pcb, struct pbuf *p,
- struct ip_addr *dst_ip, u16_t dst_port, struct netif *netif)
-{
- struct udp_hdr *udphdr;
- struct ip_addr *src_ip;
- err_t err;
- struct pbuf *q; /* q will be sent down the stack */
-
-#if IP_SOF_BROADCAST
- /* broadcast filter? */
- if ( ((pcb->so_options & SOF_BROADCAST) == 0) && ip_addr_isbroadcast(dst_ip, netif) ) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
- ("udp_sendto_if: SOF_BROADCAST not enabled on pcb %p\n", (void *)pcb));
- return ERR_VAL;
- }
-#endif /* IP_SOF_BROADCAST */
-
- /* if the PCB is not yet bound to a port, bind it here */
- if (pcb->local_port == 0) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_send: not yet bound to a port, binding now\n"));
- err = udp_bind(pcb, &pcb->local_ip, pcb->local_port);
- if (err != ERR_OK) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: forced port bind failed\n"));
- return err;
- }
- }
-
- /* not enough space to add an UDP header to first pbuf in given p chain? */
- if (pbuf_header(p, UDP_HLEN)) {
- /* allocate header in a separate new pbuf */
- q = pbuf_alloc(PBUF_IP, UDP_HLEN, PBUF_RAM);
- /* new header pbuf could not be allocated? */
- if (q == NULL) {
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: could not allocate header\n"));
- return ERR_MEM;
- }
- /* chain header q in front of given pbuf p */
- pbuf_chain(q, p);
- /* first pbuf q points to header pbuf */
- LWIP_DEBUGF(UDP_DEBUG,
- ("udp_send: added header pbuf %p before given pbuf %p\n", (void *)q, (void *)p));
- } else {
- /* adding space for header within p succeeded */
- /* first pbuf q equals given pbuf */
- q = p;
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: added header in given pbuf %p\n", (void *)p));
- }
- LWIP_ASSERT("check that first pbuf can hold struct udp_hdr",
- (q->len >= sizeof(struct udp_hdr)));
- /* q now represents the packet to be sent */
- udphdr = q->payload;
- udphdr->src = htons(pcb->local_port);
- udphdr->dest = htons(dst_port);
- /* in UDP, 0 checksum means 'no checksum' */
- udphdr->chksum = 0x0000;
-
- /* PCB local address is IP_ANY_ADDR? */
- if (ip_addr_isany(&pcb->local_ip)) {
- /* use outgoing network interface IP address as source address */
- src_ip = &(netif->ip_addr);
- } else {
- /* check if UDP PCB local IP address is correct
- * this could be an old address if netif->ip_addr has changed */
- if (!ip_addr_cmp(&(pcb->local_ip), &(netif->ip_addr))) {
- /* local_ip doesn't match, drop the packet */
- if (q != p) {
- /* free the header pbuf */
- pbuf_free(q);
- q = NULL;
- /* p is still referenced by the caller, and will live on */
- }
- return ERR_VAL;
- }
- /* use UDP PCB local IP address as source address */
- src_ip = &(pcb->local_ip);
- }
-
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: sending datagram of length %"U16_F"\n", q->tot_len));
-
-#if LWIP_UDPLITE
- /* UDP Lite protocol? */
- if (pcb->flags & UDP_FLAGS_UDPLITE) {
- u16_t chklen, chklen_hdr;
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP LITE packet length %"U16_F"\n", q->tot_len));
- /* set UDP message length in UDP header */
- chklen_hdr = chklen = pcb->chksum_len_tx;
- if ((chklen < sizeof(struct udp_hdr)) || (chklen > q->tot_len)) {
- if (chklen != 0) {
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP LITE pcb->chksum_len is illegal: %"U16_F"\n", chklen));
- }
- /* For UDP-Lite, checksum length of 0 means checksum
- over the complete packet. (See RFC 3828 chap. 3.1)
- At least the UDP-Lite header must be covered by the
- checksum, therefore, if chksum_len has an illegal
- value, we generate the checksum over the complete
- packet to be safe. */
- chklen_hdr = 0;
- chklen = q->tot_len;
- }
- udphdr->len = htons(chklen_hdr);
- /* calculate checksum */
-#if CHECKSUM_GEN_UDP
- udphdr->chksum = inet_chksum_pseudo_partial(q, src_ip, dst_ip,
- IP_PROTO_UDPLITE, q->tot_len, chklen);
- /* chksum zero must become 0xffff, as zero means 'no checksum' */
- if (udphdr->chksum == 0x0000)
- udphdr->chksum = 0xffff;
-#endif /* CHECKSUM_CHECK_UDP */
- /* output to IP */
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,IP_PROTO_UDPLITE,)\n"));
-#if LWIP_NETIF_HWADDRHINT
- netif->addr_hint = &(pcb->addr_hint);
-#endif /* LWIP_NETIF_HWADDRHINT*/
- err = ip_output_if(q, src_ip, dst_ip, pcb->ttl, pcb->tos, IP_PROTO_UDPLITE, netif);
-#if LWIP_NETIF_HWADDRHINT
- netif->addr_hint = NULL;
-#endif /* LWIP_NETIF_HWADDRHINT*/
- } else
-#endif /* LWIP_UDPLITE */
- { /* UDP */
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP packet length %"U16_F"\n", q->tot_len));
- udphdr->len = htons(q->tot_len);
- /* calculate checksum */
-#if CHECKSUM_GEN_UDP
- if ((pcb->flags & UDP_FLAGS_NOCHKSUM) == 0) {
- udphdr->chksum = inet_chksum_pseudo(q, src_ip, dst_ip, IP_PROTO_UDP, q->tot_len);
- /* chksum zero must become 0xffff, as zero means 'no checksum' */
- if (udphdr->chksum == 0x0000) udphdr->chksum = 0xffff;
- }
-#endif /* CHECKSUM_CHECK_UDP */
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP checksum 0x%04"X16_F"\n", udphdr->chksum));
- LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,IP_PROTO_UDP,)\n"));
- /* output to IP */
-#if LWIP_NETIF_HWADDRHINT
- netif->addr_hint = &(pcb->addr_hint);
-#endif /* LWIP_NETIF_HWADDRHINT*/
- err = ip_output_if(q, src_ip, dst_ip, pcb->ttl, pcb->tos, IP_PROTO_UDP, netif);
-#if LWIP_NETIF_HWADDRHINT
- netif->addr_hint = NULL;
-#endif /* LWIP_NETIF_HWADDRHINT*/
- }
- /* TODO: must this be increased even if error occured? */
- snmp_inc_udpoutdatagrams();
-
- /* did we chain a separate header pbuf earlier? */
- if (q != p) {
- /* free the header pbuf */
- pbuf_free(q);
- q = NULL;
- /* p is still referenced by the caller, and will live on */
- }
-
- UDP_STATS_INC(udp.xmit);
- return err;
-}
-
-/**
- * Bind an UDP PCB.
- *
- * @param pcb UDP PCB to be bound with a local address ipaddr and port.
- * @param ipaddr local IP address to bind with. Use IP_ADDR_ANY to
- * bind to all local interfaces.
- * @param port local UDP port to bind with. Use 0 to automatically bind
- * to a random port between UDP_LOCAL_PORT_RANGE_START and
- * UDP_LOCAL_PORT_RANGE_END.
- *
- * ipaddr & port are expected to be in the same byte order as in the pcb.
- *
- * @return lwIP error code.
- * - ERR_OK. Successful. No error occured.
- * - ERR_USE. The specified ipaddr and port are already bound to by
- * another UDP PCB.
- *
- * @see udp_disconnect()
- */
-err_t
-udp_bind(struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port)
-{
- struct udp_pcb *ipcb;
- u8_t rebind;
-
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_bind(ipaddr = "));
- ip_addr_debug_print(UDP_DEBUG, ipaddr);
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, (", port = %"U16_F")\n", port));
-
- rebind = 0;
- /* Check for double bind and rebind of the same pcb */
- for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
- /* is this UDP PCB already on active list? */
- if (pcb == ipcb) {
- /* pcb may occur at most once in active list */
- LWIP_ASSERT("rebind == 0", rebind == 0);
- /* pcb already in list, just rebind */
- rebind = 1;
- }
-
- /* this code does not allow upper layer to share a UDP port for
- listening to broadcast or multicast traffic (See SO_REUSE_ADDR and
- SO_REUSE_PORT under *BSD). TODO: See where it fits instead, OR
- combine with implementation of UDP PCB flags. Leon Woestenberg. */
-#ifdef LWIP_UDP_TODO
- /* port matches that of PCB in list? */
- else
- if ((ipcb->local_port == port) &&
- /* IP address matches, or one is IP_ADDR_ANY? */
- (ip_addr_isany(&(ipcb->local_ip)) ||
- ip_addr_isany(ipaddr) ||
- ip_addr_cmp(&(ipcb->local_ip), ipaddr))) {
- /* other PCB already binds to this local IP and port */
- LWIP_DEBUGF(UDP_DEBUG,
- ("udp_bind: local port %"U16_F" already bound by another pcb\n", port));
- return ERR_USE;
- }
-#endif
- }
-
- ip_addr_set(&pcb->local_ip, ipaddr);
-
- /* no port specified? */
- if (port == 0) {
-#ifndef UDP_LOCAL_PORT_RANGE_START
-#define UDP_LOCAL_PORT_RANGE_START 4096
-#define UDP_LOCAL_PORT_RANGE_END 0x7fff
-#endif
- port = UDP_LOCAL_PORT_RANGE_START;
- ipcb = udp_pcbs;
- while ((ipcb != NULL) && (port != UDP_LOCAL_PORT_RANGE_END)) {
- if (ipcb->local_port == port) {
- /* port is already used by another udp_pcb */
- port++;
- /* restart scanning all udp pcbs */
- ipcb = udp_pcbs;
- } else
- /* go on with next udp pcb */
- ipcb = ipcb->next;
- }
- if (ipcb != NULL) {
- /* no more ports available in local range */
- LWIP_DEBUGF(UDP_DEBUG, ("udp_bind: out of free UDP ports\n"));
- return ERR_USE;
- }
- }
- pcb->local_port = port;
- snmp_insert_udpidx_tree(pcb);
- /* pcb not active yet? */
- if (rebind == 0) {
- /* place the PCB on the active list if not already there */
- pcb->next = udp_pcbs;
- udp_pcbs = pcb;
- }
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
- ("udp_bind: bound to %"U16_F".%"U16_F".%"U16_F".%"U16_F", port %"U16_F"\n",
- (u16_t)((ntohl(pcb->local_ip.addr) >> 24) & 0xff),
- (u16_t)((ntohl(pcb->local_ip.addr) >> 16) & 0xff),
- (u16_t)((ntohl(pcb->local_ip.addr) >> 8) & 0xff),
- (u16_t)(ntohl(pcb->local_ip.addr) & 0xff), pcb->local_port));
- return ERR_OK;
-}
-/**
- * Connect an UDP PCB.
- *
- * This will associate the UDP PCB with the remote address.
- *
- * @param pcb UDP PCB to be connected with remote address ipaddr and port.
- * @param ipaddr remote IP address to connect with.
- * @param port remote UDP port to connect with.
- *
- * @return lwIP error code
- *
- * ipaddr & port are expected to be in the same byte order as in the pcb.
- *
- * The udp pcb is bound to a random local port if not already bound.
- *
- * @see udp_disconnect()
- */
-err_t
-udp_connect(struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port)
-{
- struct udp_pcb *ipcb;
-
- if (pcb->local_port == 0) {
- err_t err = udp_bind(pcb, &pcb->local_ip, pcb->local_port);
- if (err != ERR_OK)
- return err;
- }
-
- ip_addr_set(&pcb->remote_ip, ipaddr);
- pcb->remote_port = port;
- pcb->flags |= UDP_FLAGS_CONNECTED;
-/** TODO: this functionality belongs in upper layers */
-#ifdef LWIP_UDP_TODO
- /* Nail down local IP for netconn_addr()/getsockname() */
- if (ip_addr_isany(&pcb->local_ip) && !ip_addr_isany(&pcb->remote_ip)) {
- struct netif *netif;
-
- if ((netif = ip_route(&(pcb->remote_ip))) == NULL) {
- LWIP_DEBUGF(UDP_DEBUG, ("udp_connect: No route to 0x%lx\n", pcb->remote_ip.addr));
- UDP_STATS_INC(udp.rterr);
- return ERR_RTE;
- }
- /** TODO: this will bind the udp pcb locally, to the interface which
- is used to route output packets to the remote address. However, we
- might want to accept incoming packets on any interface! */
- pcb->local_ip = netif->ip_addr;
- } else if (ip_addr_isany(&pcb->remote_ip)) {
- pcb->local_ip.addr = 0;
- }
-#endif
- LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
- ("udp_connect: connected to %"U16_F".%"U16_F".%"U16_F".%"U16_F",port %"U16_F"\n",
- (u16_t)((ntohl(pcb->remote_ip.addr) >> 24) & 0xff),
- (u16_t)((ntohl(pcb->remote_ip.addr) >> 16) & 0xff),
- (u16_t)((ntohl(pcb->remote_ip.addr) >> 8) & 0xff),
- (u16_t)(ntohl(pcb->remote_ip.addr) & 0xff), pcb->remote_port));
-
- /* Insert UDP PCB into the list of active UDP PCBs. */
- for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
- if (pcb == ipcb) {
- /* already on the list, just return */
- return ERR_OK;
- }
- }
- /* PCB not yet on the list, add PCB now */
- pcb->next = udp_pcbs;
- udp_pcbs = pcb;
- return ERR_OK;
-}
-
-/**
- * Disconnect a UDP PCB
- *
- * @param pcb the udp pcb to disconnect.
- */
-void
-udp_disconnect(struct udp_pcb *pcb)
-{
- /* reset remote address association */
- ip_addr_set(&pcb->remote_ip, IP_ADDR_ANY);
- pcb->remote_port = 0;
- /* mark PCB as unconnected */
- pcb->flags &= ~UDP_FLAGS_CONNECTED;
-}
-
-/**
- * Set a receive callback for a UDP PCB
- *
- * This callback will be called when receiving a datagram for the pcb.
- *
- * @param pcb the pcb for wich to set the recv callback
- * @param recv function pointer of the callback function
- * @param recv_arg additional argument to pass to the callback function
- */
-void
-udp_recv(struct udp_pcb *pcb,
- void (* recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p,
- struct ip_addr *addr, u16_t port),
- void *recv_arg)
-{
- /* remember recv() callback and user data */
- pcb->recv = recv;
- pcb->recv_arg = recv_arg;
-}
-
-/**
- * Remove an UDP PCB.
- *
- * @param pcb UDP PCB to be removed. The PCB is removed from the list of
- * UDP PCB's and the data structure is freed from memory.
- *
- * @see udp_new()
- */
-void
-udp_remove(struct udp_pcb *pcb)
-{
- struct udp_pcb *pcb2;
-
- snmp_delete_udpidx_tree(pcb);
- /* pcb to be removed is first in list? */
- if (udp_pcbs == pcb) {
- /* make list start at 2nd pcb */
- udp_pcbs = udp_pcbs->next;
- /* pcb not 1st in list */
- } else
- for (pcb2 = udp_pcbs; pcb2 != NULL; pcb2 = pcb2->next) {
- /* find pcb in udp_pcbs list */
- if (pcb2->next != NULL && pcb2->next == pcb) {
- /* remove pcb from list */
- pcb2->next = pcb->next;
- }
- }
- memp_free(MEMP_UDP_PCB, pcb);
-}
-
-/**
- * Create a UDP PCB.
- *
- * @return The UDP PCB which was created. NULL if the PCB data structure
- * could not be allocated.
- *
- * @see udp_remove()
- */
-struct udp_pcb *
-udp_new(void)
-{
- struct udp_pcb *pcb;
- pcb = memp_malloc(MEMP_UDP_PCB);
- /* could allocate UDP PCB? */
- if (pcb != NULL) {
- /* UDP Lite: by initializing to all zeroes, chksum_len is set to 0
- * which means checksum is generated over the whole datagram per default
- * (recommended as default by RFC 3828). */
- /* initialize PCB to all zeroes */
- memset(pcb, 0, sizeof(struct udp_pcb));
- pcb->ttl = UDP_TTL;
- }
- return pcb;
-}
-
-#if UDP_DEBUG
-/**
- * Print UDP header information for debug purposes.
- *
- * @param udphdr pointer to the udp header in memory.
- */
-void
-udp_debug_print(struct udp_hdr *udphdr)
-{
- LWIP_DEBUGF(UDP_DEBUG, ("UDP header:\n"));
- LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(UDP_DEBUG, ("| %5"U16_F" | %5"U16_F" | (src port, dest port)\n",
- ntohs(udphdr->src), ntohs(udphdr->dest)));
- LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n"));
- LWIP_DEBUGF(UDP_DEBUG, ("| %5"U16_F" | 0x%04"X16_F" | (len, chksum)\n",
- ntohs(udphdr->len), ntohs(udphdr->chksum)));
- LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n"));
-}
-#endif /* UDP_DEBUG */
-
-#endif /* LWIP_UDP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/autoip.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/autoip.h
deleted file mode 100644
index d5464b7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/autoip.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- *
- * AutoIP Automatic LinkLocal IP Configuration
- */
-
-/*
- *
- * Copyright (c) 2007 Dominik Spies <kontakt@dspies.de>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * Author: Dominik Spies <kontakt@dspies.de>
- *
- * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform
- * with RFC 3927.
- *
- *
- * Please coordinate changes and requests with Dominik Spies
- * <kontakt@dspies.de>
- */
-
-#ifndef __LWIP_AUTOIP_H__
-#define __LWIP_AUTOIP_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_AUTOIP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/netif.h"
-#include "lwip/udp.h"
-#include "netif/etharp.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* AutoIP Timing */
-#define AUTOIP_TMR_INTERVAL 100
-#define AUTOIP_TICKS_PER_SECOND (1000 / AUTOIP_TMR_INTERVAL)
-
-/* RFC 3927 Constants */
-#define PROBE_WAIT 1 /* second (initial random delay) */
-#define PROBE_MIN 1 /* second (minimum delay till repeated probe) */
-#define PROBE_MAX 2 /* seconds (maximum delay till repeated probe) */
-#define PROBE_NUM 3 /* (number of probe packets) */
-#define ANNOUNCE_NUM 2 /* (number of announcement packets) */
-#define ANNOUNCE_INTERVAL 2 /* seconds (time between announcement packets) */
-#define ANNOUNCE_WAIT 2 /* seconds (delay before announcing) */
-#define MAX_CONFLICTS 10 /* (max conflicts before rate limiting) */
-#define RATE_LIMIT_INTERVAL 60 /* seconds (delay between successive attempts) */
-#define DEFEND_INTERVAL 10 /* seconds (min. wait between defensive ARPs) */
-
-/* AutoIP client states */
-#define AUTOIP_STATE_OFF 0
-#define AUTOIP_STATE_PROBING 1
-#define AUTOIP_STATE_ANNOUNCING 2
-#define AUTOIP_STATE_BOUND 3
-
-struct autoip
-{
- struct ip_addr llipaddr; /* the currently selected, probed, announced or used LL IP-Address */
- u8_t state; /* current AutoIP state machine state */
- u8_t sent_num; /* sent number of probes or announces, dependent on state */
- u16_t ttw; /* ticks to wait, tick is AUTOIP_TMR_INTERVAL long */
- u8_t lastconflict; /* ticks until a conflict can be solved by defending */
- u8_t tried_llipaddr; /* total number of probed/used Link Local IP-Addresses */
-};
-
-
-/** Init srand, has to be called before entering mainloop */
-void autoip_init(void);
-
-/** Start AutoIP client */
-err_t autoip_start(struct netif *netif);
-
-/** Stop AutoIP client */
-err_t autoip_stop(struct netif *netif);
-
-/** Handles every incoming ARP Packet, called by etharp_arp_input */
-void autoip_arp_reply(struct netif *netif, struct etharp_hdr *hdr);
-
-/** Has to be called in loop every AUTOIP_TMR_INTERVAL milliseconds */
-void autoip_tmr(void);
-
-/** Handle a possible change in the network configuration */
-void autoip_network_changed(struct netif *netif);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_AUTOIP */
-
-#endif /* __LWIP_AUTOIP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/icmp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/icmp.h
deleted file mode 100644
index 3f917ba..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/icmp.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_ICMP_H__
-#define __LWIP_ICMP_H__
-
-#include "lwip/opt.h"
-#include "lwip/pbuf.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ICMP_ER 0 /* echo reply */
-#define ICMP_DUR 3 /* destination unreachable */
-#define ICMP_SQ 4 /* source quench */
-#define ICMP_RD 5 /* redirect */
-#define ICMP_ECHO 8 /* echo */
-#define ICMP_TE 11 /* time exceeded */
-#define ICMP_PP 12 /* parameter problem */
-#define ICMP_TS 13 /* timestamp */
-#define ICMP_TSR 14 /* timestamp reply */
-#define ICMP_IRQ 15 /* information request */
-#define ICMP_IR 16 /* information reply */
-
-enum icmp_dur_type {
- ICMP_DUR_NET = 0, /* net unreachable */
- ICMP_DUR_HOST = 1, /* host unreachable */
- ICMP_DUR_PROTO = 2, /* protocol unreachable */
- ICMP_DUR_PORT = 3, /* port unreachable */
- ICMP_DUR_FRAG = 4, /* fragmentation needed and DF set */
- ICMP_DUR_SR = 5 /* source route failed */
-};
-
-enum icmp_te_type {
- ICMP_TE_TTL = 0, /* time to live exceeded in transit */
- ICMP_TE_FRAG = 1 /* fragment reassembly time exceeded */
-};
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-/** This is the standard ICMP header only that the u32_t data
- * is splitted to two u16_t like ICMP echo needs it.
- * This header is also used for other ICMP types that do not
- * use the data part.
- */
-PACK_STRUCT_BEGIN
-struct icmp_echo_hdr {
- PACK_STRUCT_FIELD(u8_t type);
- PACK_STRUCT_FIELD(u8_t code);
- PACK_STRUCT_FIELD(u16_t chksum);
- PACK_STRUCT_FIELD(u16_t id);
- PACK_STRUCT_FIELD(u16_t seqno);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define ICMPH_TYPE(hdr) ((hdr)->type)
-#define ICMPH_CODE(hdr) ((hdr)->code)
-
-/** Combines type and code to an u16_t */
-#define ICMPH_TYPE_SET(hdr, t) ((hdr)->type = (t))
-#define ICMPH_CODE_SET(hdr, c) ((hdr)->code = (c))
-
-
-#if LWIP_ICMP /* don't build if not configured for use in lwipopts.h */
-
-void icmp_input(struct pbuf *p, struct netif *inp);
-void icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t);
-void icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t);
-
-#endif /* LWIP_ICMP */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_ICMP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/igmp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/igmp.h
deleted file mode 100644
index da67e75..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/igmp.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2002 CITEL Technologies Ltd.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of CITEL Technologies Ltd nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY CITEL TECHNOLOGIES AND CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL CITEL TECHNOLOGIES OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * This file is a contribution to the lwIP TCP/IP stack.
- * The Swedish Institute of Computer Science and Adam Dunkels
- * are specifically granted permission to redistribute this
- * source code.
-*/
-
-#ifndef __LWIP_IGMP_H__
-#define __LWIP_IGMP_H__
-
-#include "lwip/opt.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/pbuf.h"
-
-#if LWIP_IGMP /* don't build if not configured for use in lwipopts.h */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * IGMP constants
- */
-#define IP_PROTO_IGMP 2
-#define IGMP_TTL 1
-#define IGMP_MINLEN 8
-#define ROUTER_ALERT 0x9404
-#define ROUTER_ALERTLEN 4
-
-/*
- * IGMP message types, including version number.
- */
-#define IGMP_MEMB_QUERY 0x11 /* Membership query */
-#define IGMP_V1_MEMB_REPORT 0x12 /* Ver. 1 membership report */
-#define IGMP_V2_MEMB_REPORT 0x16 /* Ver. 2 membership report */
-#define IGMP_LEAVE_GROUP 0x17 /* Leave-group message */
-
-/* IGMP timer */
-#define IGMP_TMR_INTERVAL 100 /* Milliseconds */
-#define IGMP_V1_DELAYING_MEMBER_TMR (1000/IGMP_TMR_INTERVAL)
-#define IGMP_JOIN_DELAYING_MEMBER_TMR (500 /IGMP_TMR_INTERVAL)
-
-/* MAC Filter Actions */
-#define IGMP_DEL_MAC_FILTER 0
-#define IGMP_ADD_MAC_FILTER 1
-
-/* Group membership states */
-#define IGMP_GROUP_NON_MEMBER 0
-#define IGMP_GROUP_DELAYING_MEMBER 1
-#define IGMP_GROUP_IDLE_MEMBER 2
-
-/*
- * IGMP packet format.
- */
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct igmp_msg {
- PACK_STRUCT_FIELD(u8_t igmp_msgtype);
- PACK_STRUCT_FIELD(u8_t igmp_maxresp);
- PACK_STRUCT_FIELD(u16_t igmp_checksum);
- PACK_STRUCT_FIELD(struct ip_addr igmp_group_address);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-/*
- * now a group structure - there is
- * a list of groups for each interface
- * these should really be linked from the interface, but
- * if we keep them separate we will not affect the lwip original code
- * too much
- *
- * There will be a group for the all systems group address but this
- * will not run the state machine as it is used to kick off reports
- * from all the other groups
- */
-
-struct igmp_group {
- struct igmp_group *next;
- struct netif *interface;
- struct ip_addr group_address;
- u8_t last_reporter_flag; /* signifies we were the last person to report */
- u8_t group_state;
- u16_t timer;
- u8_t use; /* counter of simultaneous uses */
-};
-
-
-/* Prototypes */
-void igmp_init(void);
-
-err_t igmp_start( struct netif *netif);
-
-err_t igmp_stop( struct netif *netif);
-
-void igmp_report_groups( struct netif *netif);
-
-struct igmp_group *igmp_lookfor_group( struct netif *ifp, struct ip_addr *addr);
-
-struct igmp_group *igmp_lookup_group( struct netif *ifp, struct ip_addr *addr);
-
-err_t igmp_remove_group( struct igmp_group *group);
-
-void igmp_input( struct pbuf *p, struct netif *inp, struct ip_addr *dest);
-
-err_t igmp_joingroup( struct ip_addr *ifaddr, struct ip_addr *groupaddr);
-
-err_t igmp_leavegroup( struct ip_addr *ifaddr, struct ip_addr *groupaddr);
-
-void igmp_tmr(void);
-
-void igmp_timeout( struct igmp_group *group);
-
-void igmp_start_timer( struct igmp_group *group, u8_t max_time);
-
-void igmp_stop_timer( struct igmp_group *group);
-
-void igmp_delaying_member( struct igmp_group *group, u8_t maxresp);
-
-err_t igmp_ip_output_if( struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t proto, struct netif *netif);
-
-void igmp_send( struct igmp_group *group, u8_t type);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_IGMP */
-
-#endif /* __LWIP_IGMP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet.h
deleted file mode 100644
index 903afdf..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_INET_H__
-#define __LWIP_INET_H__
-
-#include "lwip/opt.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For compatibility with BSD code */
-struct in_addr {
- u32_t s_addr;
-};
-
-#define INADDR_NONE ((u32_t)0xffffffffUL) /* 255.255.255.255 */
-#define INADDR_LOOPBACK ((u32_t)0x7f000001UL) /* 127.0.0.1 */
-#define INADDR_ANY ((u32_t)0x00000000UL) /* 0.0.0.0 */
-#define INADDR_BROADCAST ((u32_t)0xffffffffUL) /* 255.255.255.255 */
-
-u32_t inet_addr(const char *cp);
-int inet_aton(const char *cp, struct in_addr *addr);
-char *inet_ntoa(struct in_addr addr); /* returns ptr to static buffer; not reentrant! */
-
-#ifdef htons
-#undef htons
-#endif /* htons */
-#ifdef htonl
-#undef htonl
-#endif /* htonl */
-#ifdef ntohs
-#undef ntohs
-#endif /* ntohs */
-#ifdef ntohl
-#undef ntohl
-#endif /* ntohl */
-
-#ifndef LWIP_PLATFORM_BYTESWAP
-#define LWIP_PLATFORM_BYTESWAP 0
-#endif
-
-#if BYTE_ORDER == BIG_ENDIAN
-#define htons(x) (x)
-#define ntohs(x) (x)
-#define htonl(x) (x)
-#define ntohl(x) (x)
-#else /* BYTE_ORDER != BIG_ENDIAN */
-#ifdef LWIP_PREFIX_BYTEORDER_FUNCS
-/* workaround for naming collisions on some platforms */
-#define htons lwip_htons
-#define ntohs lwip_ntohs
-#define htonl lwip_htonl
-#define ntohl lwip_ntohl
-#endif /* LWIP_PREFIX_BYTEORDER_FUNCS */
-#if LWIP_PLATFORM_BYTESWAP
-#define htons(x) LWIP_PLATFORM_HTONS(x)
-#define ntohs(x) LWIP_PLATFORM_HTONS(x)
-#define htonl(x) LWIP_PLATFORM_HTONL(x)
-#define ntohl(x) LWIP_PLATFORM_HTONL(x)
-#else /* LWIP_PLATFORM_BYTESWAP */
-u16_t htons(u16_t x);
-u16_t ntohs(u16_t x);
-u32_t htonl(u32_t x);
-u32_t ntohl(u32_t x);
-#endif /* LWIP_PLATFORM_BYTESWAP */
-
-#endif /* BYTE_ORDER == BIG_ENDIAN */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_INET_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet_chksum.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet_chksum.h
deleted file mode 100644
index 6f5b1b6..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet_chksum.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_INET_CHKSUM_H__
-#define __LWIP_INET_CHKSUM_H__
-
-#include "lwip/opt.h"
-
-#include "lwip/pbuf.h"
-#include "lwip/ip_addr.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-u16_t inet_chksum(void *dataptr, u16_t len);
-u16_t inet_chksum_pbuf(struct pbuf *p);
-u16_t inet_chksum_pseudo(struct pbuf *p,
- struct ip_addr *src, struct ip_addr *dest,
- u8_t proto, u16_t proto_len);
-#if LWIP_UDPLITE
-u16_t inet_chksum_pseudo_partial(struct pbuf *p,
- struct ip_addr *src, struct ip_addr *dest,
- u8_t proto, u16_t proto_len, u16_t chksum_len);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_INET_H__ */
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip.h
deleted file mode 100644
index 6b2cdee..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_IP_H__
-#define __LWIP_IP_H__
-
-#include "lwip/opt.h"
-
-#include "lwip/def.h"
-#include "lwip/pbuf.h"
-#include "lwip/ip_addr.h"
-#include "lwip/err.h"
-#include "lwip/netif.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Currently, the function ip_output_if_opt() is only used with IGMP */
-#define IP_OPTIONS_SEND LWIP_IGMP
-
-#define IP_HLEN 20
-
-#define IP_PROTO_ICMP 1
-#define IP_PROTO_UDP 17
-#define IP_PROTO_UDPLITE 136
-#define IP_PROTO_TCP 6
-
-/* This is passed as the destination address to ip_output_if (not
- to ip_output), meaning that an IP header already is constructed
- in the pbuf. This is used when TCP retransmits. */
-#ifdef IP_HDRINCL
-#undef IP_HDRINCL
-#endif /* IP_HDRINCL */
-#define IP_HDRINCL NULL
-
-#if LWIP_NETIF_HWADDRHINT
-#define IP_PCB_ADDRHINT ;u8_t addr_hint
-#else
-#define IP_PCB_ADDRHINT
-#endif /* LWIP_NETIF_HWADDRHINT */
-
-/* This is the common part of all PCB types. It needs to be at the
- beginning of a PCB type definition. It is located here so that
- changes to this common part are made in one location instead of
- having to change all PCB structs. */
-#define IP_PCB \
- /* ip addresses in network byte order */ \
- struct ip_addr local_ip; \
- struct ip_addr remote_ip; \
- /* Socket options */ \
- u16_t so_options; \
- /* Type Of Service */ \
- u8_t tos; \
- /* Time To Live */ \
- u8_t ttl \
- /* link layer address resolution hint */ \
- IP_PCB_ADDRHINT
-
-struct ip_pcb {
-/* Common members of all PCB types */
- IP_PCB;
-};
-
-/*
- * Option flags per-socket. These are the same like SO_XXX.
- */
-#define SOF_DEBUG (u16_t)0x0001U /* turn on debugging info recording */
-#define SOF_ACCEPTCONN (u16_t)0x0002U /* socket has had listen() */
-#define SOF_REUSEADDR (u16_t)0x0004U /* allow local address reuse */
-#define SOF_KEEPALIVE (u16_t)0x0008U /* keep connections alive */
-#define SOF_DONTROUTE (u16_t)0x0010U /* just use interface addresses */
-#define SOF_BROADCAST (u16_t)0x0020U /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */
-#define SOF_USELOOPBACK (u16_t)0x0040U /* bypass hardware when possible */
-#define SOF_LINGER (u16_t)0x0080U /* linger on close if data present */
-#define SOF_OOBINLINE (u16_t)0x0100U /* leave received OOB data in line */
-#define SOF_REUSEPORT (u16_t)0x0200U /* allow local address & port reuse */
-
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct ip_hdr {
- /* version / header length / type of service */
- PACK_STRUCT_FIELD(u16_t _v_hl_tos);
- /* total length */
- PACK_STRUCT_FIELD(u16_t _len);
- /* identification */
- PACK_STRUCT_FIELD(u16_t _id);
- /* fragment offset field */
- PACK_STRUCT_FIELD(u16_t _offset);
-#define IP_RF 0x8000 /* reserved fragment flag */
-#define IP_DF 0x4000 /* dont fragment flag */
-#define IP_MF 0x2000 /* more fragments flag */
-#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
- /* time to live / protocol*/
- PACK_STRUCT_FIELD(u16_t _ttl_proto);
- /* checksum */
- PACK_STRUCT_FIELD(u16_t _chksum);
- /* source and destination IP addresses */
- PACK_STRUCT_FIELD(struct ip_addr src);
- PACK_STRUCT_FIELD(struct ip_addr dest);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define IPH_V(hdr) (ntohs((hdr)->_v_hl_tos) >> 12)
-#define IPH_HL(hdr) ((ntohs((hdr)->_v_hl_tos) >> 8) & 0x0f)
-#define IPH_TOS(hdr) (ntohs((hdr)->_v_hl_tos) & 0xff)
-#define IPH_LEN(hdr) ((hdr)->_len)
-#define IPH_ID(hdr) ((hdr)->_id)
-#define IPH_OFFSET(hdr) ((hdr)->_offset)
-#define IPH_TTL(hdr) (ntohs((hdr)->_ttl_proto) >> 8)
-#define IPH_PROTO(hdr) (ntohs((hdr)->_ttl_proto) & 0xff)
-#define IPH_CHKSUM(hdr) ((hdr)->_chksum)
-
-#define IPH_VHLTOS_SET(hdr, v, hl, tos) (hdr)->_v_hl_tos = (htons(((v) << 12) | ((hl) << 8) | (tos)))
-#define IPH_LEN_SET(hdr, len) (hdr)->_len = (len)
-#define IPH_ID_SET(hdr, id) (hdr)->_id = (id)
-#define IPH_OFFSET_SET(hdr, off) (hdr)->_offset = (off)
-#define IPH_TTL_SET(hdr, ttl) (hdr)->_ttl_proto = (htons(IPH_PROTO(hdr) | ((u16_t)(ttl) << 8)))
-#define IPH_PROTO_SET(hdr, proto) (hdr)->_ttl_proto = (htons((proto) | (IPH_TTL(hdr) << 8)))
-#define IPH_CHKSUM_SET(hdr, chksum) (hdr)->_chksum = (chksum)
-
-/** The interface that provided the packet for the current callback invocation. */
-extern struct netif *current_netif;
-/** Header of the input packet currently being processed. */
-extern const struct ip_hdr *current_header;
-
-#define ip_init() /* Compatibility define, not init needed. */
-struct netif *ip_route(struct ip_addr *dest);
-err_t ip_input(struct pbuf *p, struct netif *inp);
-err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos, u8_t proto);
-err_t ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos, u8_t proto,
- struct netif *netif);
-#if LWIP_NETIF_HWADDRHINT
-err_t ip_output_hinted(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos, u8_t proto, u8_t *addr_hint);
-#endif /* LWIP_NETIF_HWADDRHINT */
-#if IP_OPTIONS_SEND
-err_t ip_output_if_opt(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
- u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options,
- u16_t optlen);
-#endif /* IP_OPTIONS_SEND */
-/** Get the interface that received the current packet.
- * This function must only be called from a receive callback (udp_recv,
- * raw_recv, tcp_accept). It will return NULL otherwise. */
-#define ip_current_netif() (current_netif)
-/** Get the IP header of the current packet.
- * This function must only be called from a receive callback (udp_recv,
- * raw_recv, tcp_accept). It will return NULL otherwise. */
-#define ip_current_header() (current_header)
-#if IP_DEBUG
-void ip_debug_print(struct pbuf *p);
-#else
-#define ip_debug_print(p)
-#endif /* IP_DEBUG */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_IP_H__ */
-
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_addr.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_addr.h
deleted file mode 100644
index 5fbc44d..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_addr.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_IP_ADDR_H__
-#define __LWIP_IP_ADDR_H__
-
-#include "lwip/opt.h"
-
-#include "lwip/inet.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct ip_addr {
- PACK_STRUCT_FIELD(u32_t addr);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-/*
- * struct ipaddr2 is used in the definition of the ARP packet format in
- * order to support compilers that don't have structure packing.
- */
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct ip_addr2 {
- PACK_STRUCT_FIELD(u16_t addrw[2]);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-struct netif;
-
-extern const struct ip_addr ip_addr_any;
-extern const struct ip_addr ip_addr_broadcast;
-
-/** IP_ADDR_ can be used as a fixed IP address
- * for the wildcard and the broadcast address
- */
-#define IP_ADDR_ANY ((struct ip_addr *)&ip_addr_any)
-#define IP_ADDR_BROADCAST ((struct ip_addr *)&ip_addr_broadcast)
-
-/* Definitions of the bits in an Internet address integer.
-
- On subnets, host and network parts are found according to
- the subnet mask, not these masks. */
-
-#define IN_CLASSA(a) ((((u32_t)(a)) & 0x80000000UL) == 0)
-#define IN_CLASSA_NET 0xff000000
-#define IN_CLASSA_NSHIFT 24
-#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
-#define IN_CLASSA_MAX 128
-
-#define IN_CLASSB(a) ((((u32_t)(a)) & 0xc0000000UL) == 0x80000000UL)
-#define IN_CLASSB_NET 0xffff0000
-#define IN_CLASSB_NSHIFT 16
-#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
-#define IN_CLASSB_MAX 65536
-
-#define IN_CLASSC(a) ((((u32_t)(a)) & 0xe0000000UL) == 0xc0000000UL)
-#define IN_CLASSC_NET 0xffffff00
-#define IN_CLASSC_NSHIFT 8
-#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
-
-#define IN_CLASSD(a) (((u32_t)(a) & 0xf0000000UL) == 0xe0000000UL)
-#define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */
-#define IN_CLASSD_NSHIFT 28 /* net and host fields, but */
-#define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */
-#define IN_MULTICAST(a) IN_CLASSD(a)
-
-#define IN_EXPERIMENTAL(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL)
-#define IN_BADCLASS(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL)
-
-#define IN_LOOPBACKNET 127 /* official! */
-
-#define IP4_ADDR(ipaddr, a,b,c,d) \
- (ipaddr)->addr = htonl(((u32_t)((a) & 0xff) << 24) | \
- ((u32_t)((b) & 0xff) << 16) | \
- ((u32_t)((c) & 0xff) << 8) | \
- (u32_t)((d) & 0xff))
-
-#define ip_addr_set(dest, src) (dest)->addr = \
- ((src) == NULL? 0:\
- (src)->addr)
-/**
- * Determine if two address are on the same network.
- *
- * @arg addr1 IP address 1
- * @arg addr2 IP address 2
- * @arg mask network identifier mask
- * @return !0 if the network identifiers of both address match
- */
-#define ip_addr_netcmp(addr1, addr2, mask) (((addr1)->addr & \
- (mask)->addr) == \
- ((addr2)->addr & \
- (mask)->addr))
-#define ip_addr_cmp(addr1, addr2) ((addr1)->addr == (addr2)->addr)
-
-#define ip_addr_isany(addr1) ((addr1) == NULL || (addr1)->addr == 0)
-
-u8_t ip_addr_isbroadcast(struct ip_addr *, struct netif *);
-
-#define ip_addr_ismulticast(addr1) (((addr1)->addr & ntohl(0xf0000000UL)) == ntohl(0xe0000000UL))
-
-#define ip_addr_islinklocal(addr1) (((addr1)->addr & ntohl(0xffff0000UL)) == ntohl(0xa9fe0000UL))
-
-#define ip_addr_debug_print(debug, ipaddr) \
- LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F, \
- ipaddr != NULL ? \
- (u16_t)(ntohl((ipaddr)->addr) >> 24) & 0xff : 0, \
- ipaddr != NULL ? \
- (u16_t)(ntohl((ipaddr)->addr) >> 16) & 0xff : 0, \
- ipaddr != NULL ? \
- (u16_t)(ntohl((ipaddr)->addr) >> 8) & 0xff : 0, \
- ipaddr != NULL ? \
- (u16_t)ntohl((ipaddr)->addr) & 0xff : 0))
-
-/* These are cast to u16_t, with the intent that they are often arguments
- * to printf using the U16_F format from cc.h. */
-#define ip4_addr1(ipaddr) ((u16_t)(ntohl((ipaddr)->addr) >> 24) & 0xff)
-#define ip4_addr2(ipaddr) ((u16_t)(ntohl((ipaddr)->addr) >> 16) & 0xff)
-#define ip4_addr3(ipaddr) ((u16_t)(ntohl((ipaddr)->addr) >> 8) & 0xff)
-#define ip4_addr4(ipaddr) ((u16_t)(ntohl((ipaddr)->addr)) & 0xff)
-
-/**
- * Same as inet_ntoa() but takes a struct ip_addr*
- */
-#define ip_ntoa(addr) ((addr != NULL) ? inet_ntoa(*((struct in_addr*)(addr))) : "NULL")
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_IP_ADDR_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_frag.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_frag.h
deleted file mode 100644
index adc6e91..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_frag.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Jani Monoses <jani@iv.ro>
- *
- */
-
-#ifndef __LWIP_IP_FRAG_H__
-#define __LWIP_IP_FRAG_H__
-
-#include "lwip/opt.h"
-#include "lwip/err.h"
-#include "lwip/pbuf.h"
-#include "lwip/netif.h"
-#include "lwip/ip_addr.h"
-#include "lwip/ip.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if IP_REASSEMBLY
-/* The IP reassembly timer interval in milliseconds. */
-#define IP_TMR_INTERVAL 1000
-
-/* IP reassembly helper struct.
- * This is exported because memp needs to know the size.
- */
-struct ip_reassdata {
- struct ip_reassdata *next;
- struct pbuf *p;
- struct ip_hdr iphdr;
- u16_t datagram_len;
- u8_t flags;
- u8_t timer;
-};
-
-void ip_reass_init(void);
-void ip_reass_tmr(void);
-struct pbuf * ip_reass(struct pbuf *p);
-#endif /* IP_REASSEMBLY */
-
-#if IP_FRAG
-err_t ip_frag(struct pbuf *p, struct netif *netif, struct ip_addr *dest);
-#endif /* IP_FRAG */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_IP_FRAG_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api.h
deleted file mode 100644
index 7d2c9e6..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_API_H__
-#define __LWIP_API_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */
-
-#include <stddef.h> /* for size_t */
-
-#include "lwip/netbuf.h"
-#include "lwip/sys.h"
-#include "lwip/ip_addr.h"
-#include "lwip/err.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Throughout this file, IP addresses and port numbers are expected to be in
- * the same byte order as in the corresponding pcb.
- */
-
-/* Flags for netconn_write */
-#define NETCONN_NOFLAG 0x00
-#define NETCONN_NOCOPY 0x00 /* Only for source code compatibility */
-#define NETCONN_COPY 0x01
-#define NETCONN_MORE 0x02
-
-/* Helpers to process several netconn_types by the same code */
-#define NETCONNTYPE_GROUP(t) (t&0xF0)
-#define NETCONNTYPE_DATAGRAM(t) (t&0xE0)
-
-enum netconn_type {
- NETCONN_INVALID = 0,
- /* NETCONN_TCP Group */
- NETCONN_TCP = 0x10,
- /* NETCONN_UDP Group */
- NETCONN_UDP = 0x20,
- NETCONN_UDPLITE = 0x21,
- NETCONN_UDPNOCHKSUM= 0x22,
- /* NETCONN_RAW Group */
- NETCONN_RAW = 0x40
-};
-
-enum netconn_state {
- NETCONN_NONE,
- NETCONN_WRITE,
- NETCONN_LISTEN,
- NETCONN_CONNECT,
- NETCONN_CLOSE
-};
-
-enum netconn_evt {
- NETCONN_EVT_RCVPLUS,
- NETCONN_EVT_RCVMINUS,
- NETCONN_EVT_SENDPLUS,
- NETCONN_EVT_SENDMINUS
-};
-
-#if LWIP_IGMP
-enum netconn_igmp {
- NETCONN_JOIN,
- NETCONN_LEAVE
-};
-#endif /* LWIP_IGMP */
-
-/* forward-declare some structs to avoid to include their headers */
-struct ip_pcb;
-struct tcp_pcb;
-struct udp_pcb;
-struct raw_pcb;
-struct netconn;
-
-/** A callback prototype to inform about events for a netconn */
-typedef void (* netconn_callback)(struct netconn *, enum netconn_evt, u16_t len);
-
-/** A netconn descriptor */
-struct netconn {
- /** type of the netconn (TCP, UDP or RAW) */
- enum netconn_type type;
- /** current state of the netconn */
- enum netconn_state state;
- /** the lwIP internal protocol control block */
- union {
- struct ip_pcb *ip;
- struct tcp_pcb *tcp;
- struct udp_pcb *udp;
- struct raw_pcb *raw;
- } pcb;
- /** the last error this netconn had */
- err_t err;
- /** sem that is used to synchroneously execute functions in the core context */
- sys_sem_t op_completed;
- /** mbox where received packets are stored until they are fetched
- by the netconn application thread (can grow quite big) */
- sys_mbox_t recvmbox;
- /** mbox where new connections are stored until processed
- by the application thread */
- sys_mbox_t acceptmbox;
- /** only used for socket layer */
- int socket;
-#if LWIP_SO_RCVTIMEO
- /** timeout to wait for new data to be received
- (or connections to arrive for listening netconns) */
- int recv_timeout;
-#endif /* LWIP_SO_RCVTIMEO */
-#if LWIP_SO_RCVBUF
- /** maximum amount of bytes queued in recvmbox */
- int recv_bufsize;
-#endif /* LWIP_SO_RCVBUF */
- s16_t recv_avail;
-#if LWIP_TCP
- /** TCP: when data passed to netconn_write doesn't fit into the send buffer,
- this temporarily stores the message. */
- struct api_msg_msg *write_msg;
- /** TCP: when data passed to netconn_write doesn't fit into the send buffer,
- this temporarily stores how much is already sent. */
- size_t write_offset;
-#if LWIP_TCPIP_CORE_LOCKING
- /** TCP: when data passed to netconn_write doesn't fit into the send buffer,
- this temporarily stores whether to wake up the original application task
- if data couldn't be sent in the first try. */
- u8_t write_delayed;
-#endif /* LWIP_TCPIP_CORE_LOCKING */
-#endif /* LWIP_TCP */
- /** A callback function that is informed about events for this netconn */
- netconn_callback callback;
-};
-
-/* Register an Network connection event */
-#define API_EVENT(c,e,l) if (c->callback) { \
- (*c->callback)(c, e, l); \
- }
-
-/* Network connection functions: */
-#define netconn_new(t) netconn_new_with_proto_and_callback(t, 0, NULL)
-#define netconn_new_with_callback(t, c) netconn_new_with_proto_and_callback(t, 0, c)
-struct
-netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto,
- netconn_callback callback);
-err_t netconn_delete (struct netconn *conn);
-/** Get the type of a netconn (as enum netconn_type). */
-#define netconn_type(conn) (conn->type)
-
-err_t netconn_getaddr (struct netconn *conn,
- struct ip_addr *addr,
- u16_t *port,
- u8_t local);
-#define netconn_peer(c,i,p) netconn_getaddr(c,i,p,0)
-#define netconn_addr(c,i,p) netconn_getaddr(c,i,p,1)
-
-err_t netconn_bind (struct netconn *conn,
- struct ip_addr *addr,
- u16_t port);
-err_t netconn_connect (struct netconn *conn,
- struct ip_addr *addr,
- u16_t port);
-err_t netconn_disconnect (struct netconn *conn);
-err_t netconn_listen_with_backlog(struct netconn *conn, u8_t backlog);
-#define netconn_listen(conn) netconn_listen_with_backlog(conn, TCP_DEFAULT_LISTEN_BACKLOG)
-struct netconn * netconn_accept (struct netconn *conn);
-struct netbuf * netconn_recv (struct netconn *conn);
-err_t netconn_sendto (struct netconn *conn,
- struct netbuf *buf, struct ip_addr *addr, u16_t port);
-err_t netconn_send (struct netconn *conn,
- struct netbuf *buf);
-err_t netconn_write (struct netconn *conn,
- const void *dataptr, size_t size,
- u8_t apiflags);
-err_t netconn_close (struct netconn *conn);
-
-#if LWIP_IGMP
-err_t netconn_join_leave_group (struct netconn *conn,
- struct ip_addr *multiaddr,
- struct ip_addr *interface,
- enum netconn_igmp join_or_leave);
-#endif /* LWIP_IGMP */
-#if LWIP_DNS
-err_t netconn_gethostbyname(const char *name, struct ip_addr *addr);
-#endif /* LWIP_DNS */
-
-#define netconn_err(conn) ((conn)->err)
-#define netconn_recv_bufsize(conn) ((conn)->recv_bufsize)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_NETCONN */
-
-#endif /* __LWIP_API_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api_msg.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api_msg.h
deleted file mode 100644
index 7718d90..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api_msg.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_API_MSG_H__
-#define __LWIP_API_MSG_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */
-
-#include <stddef.h> /* for size_t */
-
-#include "lwip/ip_addr.h"
-#include "lwip/err.h"
-#include "lwip/sys.h"
-#include "lwip/igmp.h"
-#include "lwip/api.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* IP addresses and port numbers are expected to be in
- * the same byte order as in the corresponding pcb.
- */
-/** This struct includes everything that is necessary to execute a function
- for a netconn in another thread context (mainly used to process netconns
- in the tcpip_thread context to be thread safe). */
-struct api_msg_msg {
- /** The netconn which to process - always needed: it includes the semaphore
- which is used to block the application thread until the function finished. */
- struct netconn *conn;
- /** Depending on the executed function, one of these union members is used */
- union {
- /** used for do_send */
- struct netbuf *b;
- /** used for do_newconn */
- struct {
- u8_t proto;
- } n;
- /** used for do_bind and do_connect */
- struct {
- struct ip_addr *ipaddr;
- u16_t port;
- } bc;
- /** used for do_getaddr */
- struct {
- struct ip_addr *ipaddr;
- u16_t *port;
- u8_t local;
- } ad;
- /** used for do_write */
- struct {
- const void *dataptr;
- size_t len;
- u8_t apiflags;
- } w;
- /** used for do_recv */
- struct {
- u16_t len;
- } r;
-#if LWIP_IGMP
- /** used for do_join_leave_group */
- struct {
- struct ip_addr *multiaddr;
- struct ip_addr *interface;
- enum netconn_igmp join_or_leave;
- } jl;
-#endif /* LWIP_IGMP */
-#if TCP_LISTEN_BACKLOG
- struct {
- u8_t backlog;
- } lb;
-#endif /* TCP_LISTEN_BACKLOG */
- } msg;
-};
-
-/** This struct contains a function to execute in another thread context and
- a struct api_msg_msg that serves as an argument for this function.
- This is passed to tcpip_apimsg to execute functions in tcpip_thread context. */
-struct api_msg {
- /** function to execute in tcpip_thread context */
- void (* function)(struct api_msg_msg *msg);
- /** arguments for this function */
- struct api_msg_msg msg;
-};
-
-#if LWIP_DNS
-/** As do_gethostbyname requires more arguments but doesn't require a netconn,
- it has its own struct (to avoid struct api_msg getting bigger than necessary).
- do_gethostbyname must be called using tcpip_callback instead of tcpip_apimsg
- (see netconn_gethostbyname). */
-struct dns_api_msg {
- /** Hostname to query or dotted IP address string */
- const char *name;
- /** Rhe resolved address is stored here */
- struct ip_addr *addr;
- /** This semaphore is posted when the name is resolved, the application thread
- should wait on it. */
- sys_sem_t sem;
- /** Errors are given back here */
- err_t *err;
-};
-#endif /* LWIP_DNS */
-
-void do_newconn ( struct api_msg_msg *msg);
-void do_delconn ( struct api_msg_msg *msg);
-void do_bind ( struct api_msg_msg *msg);
-void do_connect ( struct api_msg_msg *msg);
-void do_disconnect ( struct api_msg_msg *msg);
-void do_listen ( struct api_msg_msg *msg);
-void do_send ( struct api_msg_msg *msg);
-void do_recv ( struct api_msg_msg *msg);
-void do_write ( struct api_msg_msg *msg);
-void do_getaddr ( struct api_msg_msg *msg);
-void do_close ( struct api_msg_msg *msg);
-#if LWIP_IGMP
-void do_join_leave_group( struct api_msg_msg *msg);
-#endif /* LWIP_IGMP */
-
-#if LWIP_DNS
-void do_gethostbyname(void *arg);
-#endif /* LWIP_DNS */
-
-struct netconn* netconn_alloc(enum netconn_type t, netconn_callback callback);
-void netconn_free(struct netconn *conn);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_NETCONN */
-
-#endif /* __LWIP_API_MSG_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/arch.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/arch.h
deleted file mode 100644
index 5ab190a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/arch.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_ARCH_H__
-#define __LWIP_ARCH_H__
-
-#ifndef LITTLE_ENDIAN
-#define LITTLE_ENDIAN 1234
-#endif
-
-#ifndef BIG_ENDIAN
-#define BIG_ENDIAN 4321
-#endif
-
-#include "arch/cc.h"
-
-/** Temporary: define format string for size_t if not defined in cc.h */
-#ifndef SZT_F
-#define SZT_F U32_F
-#endif /* SZT_F */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef PACK_STRUCT_BEGIN
-#define PACK_STRUCT_BEGIN
-#endif /* PACK_STRUCT_BEGIN */
-
-#ifndef PACK_STRUCT_END
-#define PACK_STRUCT_END
-#endif /* PACK_STRUCT_END */
-
-#ifndef PACK_STRUCT_FIELD
-#define PACK_STRUCT_FIELD(x) x
-#endif /* PACK_STRUCT_FIELD */
-
-
-#ifndef LWIP_UNUSED_ARG
-#define LWIP_UNUSED_ARG(x) (void)x
-#endif /* LWIP_UNUSED_ARG */
-
-
-#ifdef LWIP_PROVIDE_ERRNO
-
-#define EPERM 1 /* Operation not permitted */
-#define ENOENT 2 /* No such file or directory */
-#define ESRCH 3 /* No such process */
-#define EINTR 4 /* Interrupted system call */
-#define EIO 5 /* I/O error */
-#define ENXIO 6 /* No such device or address */
-#define E2BIG 7 /* Arg list too long */
-#define ENOEXEC 8 /* Exec format error */
-#define EBADF 9 /* Bad file number */
-#define ECHILD 10 /* No child processes */
-#define EAGAIN 11 /* Try again */
-#define ENOMEM 12 /* Out of memory */
-#define EACCES 13 /* Permission denied */
-#define EFAULT 14 /* Bad address */
-#define ENOTBLK 15 /* Block device required */
-#define EBUSY 16 /* Device or resource busy */
-#define EEXIST 17 /* File exists */
-#define EXDEV 18 /* Cross-device link */
-#define ENODEV 19 /* No such device */
-#define ENOTDIR 20 /* Not a directory */
-#define EISDIR 21 /* Is a directory */
-#define EINVAL 22 /* Invalid argument */
-#define ENFILE 23 /* File table overflow */
-#define EMFILE 24 /* Too many open files */
-#define ENOTTY 25 /* Not a typewriter */
-#define ETXTBSY 26 /* Text file busy */
-#define EFBIG 27 /* File too large */
-#define ENOSPC 28 /* No space left on device */
-#define ESPIPE 29 /* Illegal seek */
-#define EROFS 30 /* Read-only file system */
-#define EMLINK 31 /* Too many links */
-#define EPIPE 32 /* Broken pipe */
-#define EDOM 33 /* Math argument out of domain of func */
-#define ERANGE 34 /* Math result not representable */
-#define EDEADLK 35 /* Resource deadlock would occur */
-#define ENAMETOOLONG 36 /* File name too long */
-#define ENOLCK 37 /* No record locks available */
-#define ENOSYS 38 /* Function not implemented */
-#define ENOTEMPTY 39 /* Directory not empty */
-#define ELOOP 40 /* Too many symbolic links encountered */
-#define EWOULDBLOCK EAGAIN /* Operation would block */
-#define ENOMSG 42 /* No message of desired type */
-#define EIDRM 43 /* Identifier removed */
-#define ECHRNG 44 /* Channel number out of range */
-#define EL2NSYNC 45 /* Level 2 not synchronized */
-#define EL3HLT 46 /* Level 3 halted */
-#define EL3RST 47 /* Level 3 reset */
-#define ELNRNG 48 /* Link number out of range */
-#define EUNATCH 49 /* Protocol driver not attached */
-#define ENOCSI 50 /* No CSI structure available */
-#define EL2HLT 51 /* Level 2 halted */
-#define EBADE 52 /* Invalid exchange */
-#define EBADR 53 /* Invalid request descriptor */
-#define EXFULL 54 /* Exchange full */
-#define ENOANO 55 /* No anode */
-#define EBADRQC 56 /* Invalid request code */
-#define EBADSLT 57 /* Invalid slot */
-
-#define EDEADLOCK EDEADLK
-
-#define EBFONT 59 /* Bad font file format */
-#define ENOSTR 60 /* Device not a stream */
-#define ENODATA 61 /* No data available */
-#define ETIME 62 /* Timer expired */
-#define ENOSR 63 /* Out of streams resources */
-#define ENONET 64 /* Machine is not on the network */
-#define ENOPKG 65 /* Package not installed */
-#define EREMOTE 66 /* Object is remote */
-#define ENOLINK 67 /* Link has been severed */
-#define EADV 68 /* Advertise error */
-#define ESRMNT 69 /* Srmount error */
-#define ECOMM 70 /* Communication error on send */
-#define EPROTO 71 /* Protocol error */
-#define EMULTIHOP 72 /* Multihop attempted */
-#define EDOTDOT 73 /* RFS specific error */
-#define EBADMSG 74 /* Not a data message */
-#define EOVERFLOW 75 /* Value too large for defined data type */
-#define ENOTUNIQ 76 /* Name not unique on network */
-#define EBADFD 77 /* File descriptor in bad state */
-#define EREMCHG 78 /* Remote address changed */
-#define ELIBACC 79 /* Can not access a needed shared library */
-#define ELIBBAD 80 /* Accessing a corrupted shared library */
-#define ELIBSCN 81 /* .lib section in a.out corrupted */
-#define ELIBMAX 82 /* Attempting to link in too many shared libraries */
-#define ELIBEXEC 83 /* Cannot exec a shared library directly */
-#define EILSEQ 84 /* Illegal byte sequence */
-#define ERESTART 85 /* Interrupted system call should be restarted */
-#define ESTRPIPE 86 /* Streams pipe error */
-#define EUSERS 87 /* Too many users */
-#define ENOTSOCK 88 /* Socket operation on non-socket */
-#define EDESTADDRREQ 89 /* Destination address required */
-#define EMSGSIZE 90 /* Message too long */
-#define EPROTOTYPE 91 /* Protocol wrong type for socket */
-#define ENOPROTOOPT 92 /* Protocol not available */
-#define EPROTONOSUPPORT 93 /* Protocol not supported */
-#define ESOCKTNOSUPPORT 94 /* Socket type not supported */
-#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
-#define EPFNOSUPPORT 96 /* Protocol family not supported */
-#define EAFNOSUPPORT 97 /* Address family not supported by protocol */
-#define EADDRINUSE 98 /* Address already in use */
-#define EADDRNOTAVAIL 99 /* Cannot assign requested address */
-#define ENETDOWN 100 /* Network is down */
-#define ENETUNREACH 101 /* Network is unreachable */
-#define ENETRESET 102 /* Network dropped connection because of reset */
-#define ECONNABORTED 103 /* Software caused connection abort */
-#define ECONNRESET 104 /* Connection reset by peer */
-#define ENOBUFS 105 /* No buffer space available */
-#define EISCONN 106 /* Transport endpoint is already connected */
-#define ENOTCONN 107 /* Transport endpoint is not connected */
-#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */
-#define ETOOMANYREFS 109 /* Too many references: cannot splice */
-#define ETIMEDOUT 110 /* Connection timed out */
-#define ECONNREFUSED 111 /* Connection refused */
-#define EHOSTDOWN 112 /* Host is down */
-#define EHOSTUNREACH 113 /* No route to host */
-#define EALREADY 114 /* Operation already in progress */
-#define EINPROGRESS 115 /* Operation now in progress */
-#define ESTALE 116 /* Stale NFS file handle */
-#define EUCLEAN 117 /* Structure needs cleaning */
-#define ENOTNAM 118 /* Not a XENIX named type file */
-#define ENAVAIL 119 /* No XENIX semaphores available */
-#define EISNAM 120 /* Is a named type file */
-#define EREMOTEIO 121 /* Remote I/O error */
-#define EDQUOT 122 /* Quota exceeded */
-
-#define ENOMEDIUM 123 /* No medium found */
-#define EMEDIUMTYPE 124 /* Wrong medium type */
-
-
-#define ENSROK 0 /* DNS server returned answer with no data */
-#define ENSRNODATA 160 /* DNS server returned answer with no data */
-#define ENSRFORMERR 161 /* DNS server claims query was misformatted */
-#define ENSRSERVFAIL 162 /* DNS server returned general failure */
-#define ENSRNOTFOUND 163 /* Domain name not found */
-#define ENSRNOTIMP 164 /* DNS server does not implement requested operation */
-#define ENSRREFUSED 165 /* DNS server refused query */
-#define ENSRBADQUERY 166 /* Misformatted DNS query */
-#define ENSRBADNAME 167 /* Misformatted domain name */
-#define ENSRBADFAMILY 168 /* Unsupported address family */
-#define ENSRBADRESP 169 /* Misformatted DNS reply */
-#define ENSRCONNREFUSED 170 /* Could not contact DNS servers */
-#define ENSRTIMEOUT 171 /* Timeout while contacting DNS servers */
-#define ENSROF 172 /* End of file */
-#define ENSRFILE 173 /* Error reading file */
-#define ENSRNOMEM 174 /* Out of memory */
-#define ENSRDESTRUCTION 175 /* Application terminated lookup */
-#define ENSRQUERYDOMAINTOOLONG 176 /* Domain name is too long */
-#define ENSRCNAMELOOP 177 /* Domain name is too long */
-
-#ifndef errno
-extern int errno;
-#endif
-
-#endif /* LWIP_PROVIDE_ERRNO */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_ARCH_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/debug.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/debug.h
deleted file mode 100644
index fb07607..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/debug.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_DEBUG_H__
-#define __LWIP_DEBUG_H__
-
-#include "lwip/arch.h"
-
-/** lower two bits indicate debug level
- * - 0 all
- * - 1 warning
- * - 2 serious
- * - 3 severe
- */
-#define LWIP_DBG_LEVEL_ALL 0x00
-#define LWIP_DBG_LEVEL_OFF LWIP_DBG_LEVEL_ALL /* compatibility define only */
-#define LWIP_DBG_LEVEL_WARNING 0x01 /* bad checksums, dropped packets, ... */
-#define LWIP_DBG_LEVEL_SERIOUS 0x02 /* memory allocation failures, ... */
-#define LWIP_DBG_LEVEL_SEVERE 0x03
-#define LWIP_DBG_MASK_LEVEL 0x03
-
-/** flag for LWIP_DEBUGF to enable that debug message */
-#define LWIP_DBG_ON 0x80U
-/** flag for LWIP_DEBUGF to disable that debug message */
-#define LWIP_DBG_OFF 0x00U
-
-/** flag for LWIP_DEBUGF indicating a tracing message (to follow program flow) */
-#define LWIP_DBG_TRACE 0x40U
-/** flag for LWIP_DEBUGF indicating a state debug message (to follow module states) */
-#define LWIP_DBG_STATE 0x20U
-/** flag for LWIP_DEBUGF indicating newly added code, not thoroughly tested yet */
-#define LWIP_DBG_FRESH 0x10U
-/** flag for LWIP_DEBUGF to halt after printing this debug message */
-#define LWIP_DBG_HALT 0x08U
-
-#ifndef LWIP_NOASSERT
-#define LWIP_ASSERT(message, assertion) do { if(!(assertion)) \
- LWIP_PLATFORM_ASSERT(message); } while(0)
-#else /* LWIP_NOASSERT */
-#define LWIP_ASSERT(message, assertion)
-#endif /* LWIP_NOASSERT */
-
-/** if "expression" isn't true, then print "message" and execute "handler" expression */
-#ifndef LWIP_ERROR
-#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \
- LWIP_PLATFORM_ASSERT(message); handler;}} while(0)
-#endif /* LWIP_ERROR */
-
-#ifdef LWIP_DEBUG
-/** print debug message only if debug message type is enabled...
- * AND is of correct type AND is at least LWIP_DBG_LEVEL
- */
-#define LWIP_DEBUGF(debug, message) do { \
- if ( \
- ((debug) & LWIP_DBG_ON) && \
- ((debug) & LWIP_DBG_TYPES_ON) && \
- ((s16_t)((debug) & LWIP_DBG_MASK_LEVEL) >= LWIP_DBG_MIN_LEVEL)) { \
- LWIP_PLATFORM_DIAG(message); \
- if ((debug) & LWIP_DBG_HALT) { \
- while(1); \
- } \
- } \
- } while(0)
-
-#else /* LWIP_DEBUG */
-#define LWIP_DEBUGF(debug, message)
-#endif /* LWIP_DEBUG */
-
-#endif /* __LWIP_DEBUG_H__ */
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/def.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/def.h
deleted file mode 100644
index c3681ac..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/def.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_DEF_H__
-#define __LWIP_DEF_H__
-
-/* this might define NULL already */
-#include "lwip/arch.h"
-
-#define LWIP_MAX(x , y) (((x) > (y)) ? (x) : (y))
-#define LWIP_MIN(x , y) (((x) < (y)) ? (x) : (y))
-
-#ifndef NULL
-#define NULL ((void *)0)
-#endif
-
-
-#endif /* __LWIP_DEF_H__ */
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dhcp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dhcp.h
deleted file mode 100644
index 27a0ade..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dhcp.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/** @file
- */
-
-#ifndef __LWIP_DHCP_H__
-#define __LWIP_DHCP_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_DHCP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/netif.h"
-#include "lwip/udp.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** period (in seconds) of the application calling dhcp_coarse_tmr() */
-#define DHCP_COARSE_TIMER_SECS 60
-/** period (in milliseconds) of the application calling dhcp_coarse_tmr() */
-#define DHCP_COARSE_TIMER_MSECS (DHCP_COARSE_TIMER_SECS * 1000UL)
-/** period (in milliseconds) of the application calling dhcp_fine_tmr() */
-#define DHCP_FINE_TIMER_MSECS 500
-
-struct dhcp
-{
- /** transaction identifier of last sent request */
- u32_t xid;
- /** our connection to the DHCP server */
- struct udp_pcb *pcb;
- /** incoming msg */
- struct dhcp_msg *msg_in;
- /** incoming msg options */
- void *options_in;
- /** ingoing msg options length */
- u16_t options_in_len;
- /** current DHCP state machine state */
- u8_t state;
- /** retries of current request */
- u8_t tries;
-
- struct pbuf *p_out; /* pbuf of outcoming msg */
- struct dhcp_msg *msg_out; /* outgoing msg */
- u16_t options_out_len; /* outgoing msg options length */
- u16_t request_timeout; /* #ticks with period DHCP_FINE_TIMER_SECS for request timeout */
- u16_t t1_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for renewal time */
- u16_t t2_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for rebind time */
- struct ip_addr server_ip_addr; /* dhcp server address that offered this lease */
- struct ip_addr offered_ip_addr;
- struct ip_addr offered_sn_mask;
- struct ip_addr offered_gw_addr;
- struct ip_addr offered_bc_addr;
-#define DHCP_MAX_DNS 2
- u32_t dns_count; /* actual number of DNS servers obtained */
- struct ip_addr offered_dns_addr[DHCP_MAX_DNS]; /* DNS server addresses */
-
- u32_t offered_t0_lease; /* lease period (in seconds) */
- u32_t offered_t1_renew; /* recommended renew time (usually 50% of lease period) */
- u32_t offered_t2_rebind; /* recommended rebind time (usually 66% of lease period) */
-#if LWIP_DHCP_AUTOIP_COOP
- u8_t autoip_coop_state;
-#endif
-/** Patch #1308
- * TODO: See dhcp.c "TODO"s
- */
-#if 0
- struct ip_addr offered_si_addr;
- u8_t *boot_file_name;
-#endif
-};
-
-/* MUST be compiled with "pack structs" or equivalent! */
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-/** minimum set of fields of any DHCP message */
-struct dhcp_msg
-{
- PACK_STRUCT_FIELD(u8_t op);
- PACK_STRUCT_FIELD(u8_t htype);
- PACK_STRUCT_FIELD(u8_t hlen);
- PACK_STRUCT_FIELD(u8_t hops);
- PACK_STRUCT_FIELD(u32_t xid);
- PACK_STRUCT_FIELD(u16_t secs);
- PACK_STRUCT_FIELD(u16_t flags);
- PACK_STRUCT_FIELD(struct ip_addr ciaddr);
- PACK_STRUCT_FIELD(struct ip_addr yiaddr);
- PACK_STRUCT_FIELD(struct ip_addr siaddr);
- PACK_STRUCT_FIELD(struct ip_addr giaddr);
-#define DHCP_CHADDR_LEN 16U
- PACK_STRUCT_FIELD(u8_t chaddr[DHCP_CHADDR_LEN]);
-#define DHCP_SNAME_LEN 64U
- PACK_STRUCT_FIELD(u8_t sname[DHCP_SNAME_LEN]);
-#define DHCP_FILE_LEN 128U
- PACK_STRUCT_FIELD(u8_t file[DHCP_FILE_LEN]);
- PACK_STRUCT_FIELD(u32_t cookie);
-#define DHCP_MIN_OPTIONS_LEN 68U
-/** make sure user does not configure this too small */
-#if ((defined(DHCP_OPTIONS_LEN)) && (DHCP_OPTIONS_LEN < DHCP_MIN_OPTIONS_LEN))
-# undef DHCP_OPTIONS_LEN
-#endif
-/** allow this to be configured in lwipopts.h, but not too small */
-#if (!defined(DHCP_OPTIONS_LEN))
-/** set this to be sufficient for your options in outgoing DHCP msgs */
-# define DHCP_OPTIONS_LEN DHCP_MIN_OPTIONS_LEN
-#endif
- PACK_STRUCT_FIELD(u8_t options[DHCP_OPTIONS_LEN]);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-/** start DHCP configuration */
-err_t dhcp_start(struct netif *netif);
-/** enforce early lease renewal (not needed normally)*/
-err_t dhcp_renew(struct netif *netif);
-/** release the DHCP lease, usually called before dhcp_stop()*/
-err_t dhcp_release(struct netif *netif);
-/** stop DHCP configuration */
-void dhcp_stop(struct netif *netif);
-/** inform server of our manual IP address */
-void dhcp_inform(struct netif *netif);
-/** Handle a possible change in the network configuration */
-void dhcp_network_changed(struct netif *netif);
-
-/** if enabled, check whether the offered IP address is not in use, using ARP */
-#if DHCP_DOES_ARP_CHECK
-void dhcp_arp_reply(struct netif *netif, struct ip_addr *addr);
-#endif
-
-/** to be called every minute */
-void dhcp_coarse_tmr(void);
-/** to be called every half second */
-void dhcp_fine_tmr(void);
-
-/** DHCP message item offsets and length */
-#define DHCP_MSG_OFS (UDP_DATA_OFS)
- #define DHCP_OP_OFS (DHCP_MSG_OFS + 0)
- #define DHCP_HTYPE_OFS (DHCP_MSG_OFS + 1)
- #define DHCP_HLEN_OFS (DHCP_MSG_OFS + 2)
- #define DHCP_HOPS_OFS (DHCP_MSG_OFS + 3)
- #define DHCP_XID_OFS (DHCP_MSG_OFS + 4)
- #define DHCP_SECS_OFS (DHCP_MSG_OFS + 8)
- #define DHCP_FLAGS_OFS (DHCP_MSG_OFS + 10)
- #define DHCP_CIADDR_OFS (DHCP_MSG_OFS + 12)
- #define DHCP_YIADDR_OFS (DHCP_MSG_OFS + 16)
- #define DHCP_SIADDR_OFS (DHCP_MSG_OFS + 20)
- #define DHCP_GIADDR_OFS (DHCP_MSG_OFS + 24)
- #define DHCP_CHADDR_OFS (DHCP_MSG_OFS + 28)
- #define DHCP_SNAME_OFS (DHCP_MSG_OFS + 44)
- #define DHCP_FILE_OFS (DHCP_MSG_OFS + 108)
-#define DHCP_MSG_LEN 236
-
-#define DHCP_COOKIE_OFS (DHCP_MSG_OFS + DHCP_MSG_LEN)
-#define DHCP_OPTIONS_OFS (DHCP_MSG_OFS + DHCP_MSG_LEN + 4)
-
-#define DHCP_CLIENT_PORT 68
-#define DHCP_SERVER_PORT 67
-
-/** DHCP client states */
-#define DHCP_REQUESTING 1
-#define DHCP_INIT 2
-#define DHCP_REBOOTING 3
-#define DHCP_REBINDING 4
-#define DHCP_RENEWING 5
-#define DHCP_SELECTING 6
-#define DHCP_INFORMING 7
-#define DHCP_CHECKING 8
-#define DHCP_PERMANENT 9
-#define DHCP_BOUND 10
-/** not yet implemented #define DHCP_RELEASING 11 */
-#define DHCP_BACKING_OFF 12
-#define DHCP_OFF 13
-
-/** AUTOIP cooperatation flags */
-#define DHCP_AUTOIP_COOP_STATE_OFF 0
-#define DHCP_AUTOIP_COOP_STATE_ON 1
-
-#define DHCP_BOOTREQUEST 1
-#define DHCP_BOOTREPLY 2
-
-#define DHCP_DISCOVER 1
-#define DHCP_OFFER 2
-#define DHCP_REQUEST 3
-#define DHCP_DECLINE 4
-#define DHCP_ACK 5
-#define DHCP_NAK 6
-#define DHCP_RELEASE 7
-#define DHCP_INFORM 8
-
-#define DHCP_HTYPE_ETH 1
-
-#define DHCP_HLEN_ETH 6
-
-#define DHCP_BROADCAST_FLAG 15
-#define DHCP_BROADCAST_MASK (1 << DHCP_FLAG_BROADCAST)
-
-/** BootP options */
-#define DHCP_OPTION_PAD 0
-#define DHCP_OPTION_SUBNET_MASK 1 /* RFC 2132 3.3 */
-#define DHCP_OPTION_ROUTER 3
-#define DHCP_OPTION_DNS_SERVER 6
-#define DHCP_OPTION_HOSTNAME 12
-#define DHCP_OPTION_IP_TTL 23
-#define DHCP_OPTION_MTU 26
-#define DHCP_OPTION_BROADCAST 28
-#define DHCP_OPTION_TCP_TTL 37
-#define DHCP_OPTION_END 255
-
-/** DHCP options */
-#define DHCP_OPTION_REQUESTED_IP 50 /* RFC 2132 9.1, requested IP address */
-#define DHCP_OPTION_LEASE_TIME 51 /* RFC 2132 9.2, time in seconds, in 4 bytes */
-#define DHCP_OPTION_OVERLOAD 52 /* RFC2132 9.3, use file and/or sname field for options */
-
-#define DHCP_OPTION_MESSAGE_TYPE 53 /* RFC 2132 9.6, important for DHCP */
-#define DHCP_OPTION_MESSAGE_TYPE_LEN 1
-
-
-#define DHCP_OPTION_SERVER_ID 54 /* RFC 2132 9.7, server IP address */
-#define DHCP_OPTION_PARAMETER_REQUEST_LIST 55 /* RFC 2132 9.8, requested option types */
-
-#define DHCP_OPTION_MAX_MSG_SIZE 57 /* RFC 2132 9.10, message size accepted >= 576 */
-#define DHCP_OPTION_MAX_MSG_SIZE_LEN 2
-
-#define DHCP_OPTION_T1 58 /* T1 renewal time */
-#define DHCP_OPTION_T2 59 /* T2 rebinding time */
-#define DHCP_OPTION_US 60
-#define DHCP_OPTION_CLIENT_ID 61
-#define DHCP_OPTION_TFTP_SERVERNAME 66
-#define DHCP_OPTION_BOOTFILE 67
-
-/** possible combinations of overloading the file and sname fields with options */
-#define DHCP_OVERLOAD_NONE 0
-#define DHCP_OVERLOAD_FILE 1
-#define DHCP_OVERLOAD_SNAME 2
-#define DHCP_OVERLOAD_SNAME_FILE 3
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_DHCP */
-
-#endif /*__LWIP_DHCP_H__*/
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dns.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dns.h
deleted file mode 100644
index c1b8ae0..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dns.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * lwip DNS resolver header file.
-
- * Author: Jim Pettinato
- * April 2007
-
- * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote
- * products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __LWIP_DNS_H__
-#define __LWIP_DNS_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_DNS /* don't build if not configured for use in lwipopts.h */
-
-/** DNS timer period */
-#define DNS_TMR_INTERVAL 1000
-
-/** DNS field TYPE used for "Resource Records" */
-#define DNS_RRTYPE_A 1 /* a host address */
-#define DNS_RRTYPE_NS 2 /* an authoritative name server */
-#define DNS_RRTYPE_MD 3 /* a mail destination (Obsolete - use MX) */
-#define DNS_RRTYPE_MF 4 /* a mail forwarder (Obsolete - use MX) */
-#define DNS_RRTYPE_CNAME 5 /* the canonical name for an alias */
-#define DNS_RRTYPE_SOA 6 /* marks the start of a zone of authority */
-#define DNS_RRTYPE_MB 7 /* a mailbox domain name (EXPERIMENTAL) */
-#define DNS_RRTYPE_MG 8 /* a mail group member (EXPERIMENTAL) */
-#define DNS_RRTYPE_MR 9 /* a mail rename domain name (EXPERIMENTAL) */
-#define DNS_RRTYPE_NULL 10 /* a null RR (EXPERIMENTAL) */
-#define DNS_RRTYPE_WKS 11 /* a well known service description */
-#define DNS_RRTYPE_PTR 12 /* a domain name pointer */
-#define DNS_RRTYPE_HINFO 13 /* host information */
-#define DNS_RRTYPE_MINFO 14 /* mailbox or mail list information */
-#define DNS_RRTYPE_MX 15 /* mail exchange */
-#define DNS_RRTYPE_TXT 16 /* text strings */
-
-/** DNS field CLASS used for "Resource Records" */
-#define DNS_RRCLASS_IN 1 /* the Internet */
-#define DNS_RRCLASS_CS 2 /* the CSNET class (Obsolete - used only for examples in some obsolete RFCs) */
-#define DNS_RRCLASS_CH 3 /* the CHAOS class */
-#define DNS_RRCLASS_HS 4 /* Hesiod [Dyer 87] */
-#define DNS_RRCLASS_FLUSH 0x800 /* Flush bit */
-
-/** Callback which is invoked when a hostname is found.
- * A function of this type must be implemented by the application using the DNS resolver.
- * @param name pointer to the name that was looked up.
- * @param ipaddr pointer to a struct ip_addr containing the IP address of the hostname,
- * or NULL if the name could not be found (or on any other error).
- * @param callback_arg a user-specified callback argument passed to dns_gethostbyname
-*/
-typedef void (*dns_found_callback)(const char *name, struct ip_addr *ipaddr, void *callback_arg);
-
-
-void dns_init(void);
-
-void dns_tmr(void);
-
-void dns_setserver(u8_t numdns, struct ip_addr *dnsserver);
-
-struct ip_addr dns_getserver(u8_t numdns);
-
-err_t dns_gethostbyname(const char *hostname, struct ip_addr *addr,
- dns_found_callback found, void *callback_arg);
-
-#if DNS_LOCAL_HOSTLIST && DNS_LOCAL_HOSTLIST_IS_DYNAMIC
-int dns_local_removehost(const char *hostname, const struct ip_addr *addr);
-err_t dns_local_addhost(const char *hostname, const struct ip_addr *addr);
-#endif /* DNS_LOCAL_HOSTLIST && DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
-
-#endif /* LWIP_DNS */
-
-#endif /* __LWIP_DNS_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/err.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/err.h
deleted file mode 100644
index 792f276..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/err.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_ERR_H__
-#define __LWIP_ERR_H__
-
-#include "lwip/opt.h"
-#include "lwip/arch.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Define LWIP_ERR_T in cc.h if you want to use
- * a different type for your platform (must be signed). */
-#ifdef LWIP_ERR_T
-typedef LWIP_ERR_T err_t;
-#else /* LWIP_ERR_T */
- typedef s8_t err_t;
-#endif /* LWIP_ERR_T*/
-
-/* Definitions for error constants. */
-
-#define ERR_OK 0 /* No error, everything OK. */
-#define ERR_MEM -1 /* Out of memory error. */
-#define ERR_BUF -2 /* Buffer error. */
-#define ERR_TIMEOUT -3 /* Timeout. */
-#define ERR_RTE -4 /* Routing problem. */
-
-#define ERR_IS_FATAL(e) ((e) < ERR_RTE)
-
-#define ERR_ABRT -5 /* Connection aborted. */
-#define ERR_RST -6 /* Connection reset. */
-#define ERR_CLSD -7 /* Connection closed. */
-#define ERR_CONN -8 /* Not connected. */
-
-#define ERR_VAL -9 /* Illegal value. */
-
-#define ERR_ARG -10 /* Illegal argument. */
-
-#define ERR_USE -11 /* Address in use. */
-
-#define ERR_IF -12 /* Low-level netif error */
-#define ERR_ISCONN -13 /* Already connected. */
-
-#define ERR_INPROGRESS -14 /* Operation in progress */
-
-
-#ifdef LWIP_DEBUG
-extern const char *lwip_strerr(err_t err);
-#else
-#define lwip_strerr(x) ""
-#endif /* LWIP_DEBUG */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_ERR_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/init.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/init.h
deleted file mode 100644
index a86e0d9..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/init.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_INIT_H__
-#define __LWIP_INIT_H__
-
-#include "lwip/opt.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** X.x.x: Major version of the stack */
-#define LWIP_VERSION_MAJOR 1U
-/** x.X.x: Minor version of the stack */
-#define LWIP_VERSION_MINOR 3U
-/** x.x.X: Revision of the stack */
-#define LWIP_VERSION_REVISION 2U
-/** For release candidates, this is set to 1..254
- * For official releases, this is set to 255 (LWIP_RC_RELEASE)
- * For development versions (CVS), this is set to 0 (LWIP_RC_DEVELOPMENT) */
-#define LWIP_VERSION_RC 255U
-
-/** LWIP_VERSION_RC is set to LWIP_RC_RELEASE for official releases */
-#define LWIP_RC_RELEASE 255U
-/** LWIP_VERSION_RC is set to LWIP_RC_DEVELOPMENT for CVS versions */
-#define LWIP_RC_DEVELOPMENT 0U
-
-#define LWIP_VERSION_IS_RELEASE (LWIP_VERSION_RC == LWIP_RC_RELEASE)
-#define LWIP_VERSION_IS_DEVELOPMENT (LWIP_VERSION_RC == LWIP_RC_DEVELOPMENT)
-#define LWIP_VERSION_IS_RC ((LWIP_VERSION_RC != LWIP_RC_RELEASE) && (LWIP_VERSION_RC != LWIP_RC_DEVELOPMENT))
-
-/** Provides the version of the stack */
-#define LWIP_VERSION (LWIP_VERSION_MAJOR << 24 | LWIP_VERSION_MINOR << 16 | \
- LWIP_VERSION_REVISION << 8 | LWIP_VERSION_RC)
-
-/* Modules initialization */
-void lwip_init(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_INIT_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/mem.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/mem.h
deleted file mode 100644
index 327229e..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/mem.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_MEM_H__
-#define __LWIP_MEM_H__
-
-#include "lwip/opt.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if MEM_LIBC_MALLOC
-
-#include <stddef.h> /* for size_t */
-
-typedef size_t mem_size_t;
-
-/* aliases for C library malloc() */
-#define mem_init()
-/* in case C library malloc() needs extra protection,
- * allow these defines to be overridden.
- */
-#ifndef mem_free
-#define mem_free free
-#endif
-#ifndef mem_malloc
-#define mem_malloc malloc
-#endif
-#ifndef mem_calloc
-#define mem_calloc calloc
-#endif
-#ifndef mem_realloc
-static void *mem_realloc(void *mem, mem_size_t size)
-{
- LWIP_UNUSED_ARG(size);
- return mem;
-}
-#endif
-#else /* MEM_LIBC_MALLOC */
-
-/* MEM_SIZE would have to be aligned, but using 64000 here instead of
- * 65535 leaves some room for alignment...
- */
-#if MEM_SIZE > 64000l
-typedef u32_t mem_size_t;
-#else
-typedef u16_t mem_size_t;
-#endif /* MEM_SIZE > 64000 */
-
-#if MEM_USE_POOLS
-/** mem_init is not used when using pools instead of a heap */
-#define mem_init()
-/** mem_realloc is not used when using pools instead of a heap:
- we can't free part of a pool element and don't want to copy the rest */
-#define mem_realloc(mem, size) (mem)
-#else /* MEM_USE_POOLS */
-/* lwIP alternative malloc */
-void mem_init(void);
-void *mem_realloc(void *mem, mem_size_t size);
-#endif /* MEM_USE_POOLS */
-void *mem_malloc(mem_size_t size);
-void *mem_calloc(mem_size_t count, mem_size_t size);
-void mem_free(void *mem);
-#endif /* MEM_LIBC_MALLOC */
-
-#ifndef LWIP_MEM_ALIGN_SIZE
-#define LWIP_MEM_ALIGN_SIZE(size) (((size) + MEM_ALIGNMENT - 1) & ~(MEM_ALIGNMENT-1))
-#endif
-
-#ifndef LWIP_MEM_ALIGN
-#define LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1)))
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_MEM_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp.h
deleted file mode 100644
index 3de7bf9..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#ifndef __LWIP_MEMP_H__
-#define __LWIP_MEMP_H__
-
-#include "lwip/opt.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Create the list of all memory pools managed by memp. MEMP_MAX represents a NULL pool at the end */
-typedef enum {
-#define LWIP_MEMPOOL(name,num,size,desc) MEMP_##name,
-#include "lwip/memp_std.h"
- MEMP_MAX
-} memp_t;
-
-#if MEM_USE_POOLS
-/* Use a helper type to get the start and end of the user "memory pools" for mem_malloc */
-typedef enum {
- /* Get the first (via:
- MEMP_POOL_HELPER_START = ((u8_t) 1*MEMP_POOL_A + 0*MEMP_POOL_B + 0*MEMP_POOL_C + 0)*/
- MEMP_POOL_HELPER_FIRST = ((u8_t)
-#define LWIP_MEMPOOL(name,num,size,desc)
-#define LWIP_MALLOC_MEMPOOL_START 1
-#define LWIP_MALLOC_MEMPOOL(num, size) * MEMP_POOL_##size + 0
-#define LWIP_MALLOC_MEMPOOL_END
-#include "lwip/memp_std.h"
- ) ,
- /* Get the last (via:
- MEMP_POOL_HELPER_END = ((u8_t) 0 + MEMP_POOL_A*0 + MEMP_POOL_B*0 + MEMP_POOL_C*1) */
- MEMP_POOL_HELPER_LAST = ((u8_t)
-#define LWIP_MEMPOOL(name,num,size,desc)
-#define LWIP_MALLOC_MEMPOOL_START
-#define LWIP_MALLOC_MEMPOOL(num, size) 0 + MEMP_POOL_##size *
-#define LWIP_MALLOC_MEMPOOL_END 1
-#include "lwip/memp_std.h"
- )
-} memp_pool_helper_t;
-
-/* The actual start and stop values are here (cast them over)
- We use this helper type and these defines so we can avoid using const memp_t values */
-#define MEMP_POOL_FIRST ((memp_t) MEMP_POOL_HELPER_FIRST)
-#define MEMP_POOL_LAST ((memp_t) MEMP_POOL_HELPER_LAST)
-#endif /* MEM_USE_POOLS */
-
-#if MEMP_MEM_MALLOC || MEM_USE_POOLS
-extern const u16_t memp_sizes[MEMP_MAX];
-#endif /* MEMP_MEM_MALLOC || MEM_USE_POOLS */
-
-#if MEMP_MEM_MALLOC
-
-#include "mem.h"
-
-#define memp_init()
-#define memp_malloc(type) mem_malloc(memp_sizes[type])
-#define memp_free(type, mem) mem_free(mem)
-
-#else /* MEMP_MEM_MALLOC */
-
-#if MEM_USE_POOLS
-/** This structure is used to save the pool one element came from. */
-struct memp_malloc_helper
-{
- memp_t poolnr;
-};
-#endif /* MEM_USE_POOLS */
-
-void memp_init(void);
-
-#if MEMP_OVERFLOW_CHECK
-void *memp_malloc_fn(memp_t type, const char* file, const int line);
-#define memp_malloc(t) memp_malloc_fn((t), __FILE__, __LINE__)
-#else
-void *memp_malloc(memp_t type);
-#endif
-void memp_free(memp_t type, void *mem);
-
-#endif /* MEMP_MEM_MALLOC */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_MEMP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp_std.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp_std.h
deleted file mode 100644
index d8d4945..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp_std.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * SETUP: Make sure we define everything we will need.
- *
- * We have create three types of pools:
- * 1) MEMPOOL - standard pools
- * 2) MALLOC_MEMPOOL - to be used by mem_malloc in mem.c
- * 3) PBUF_MEMPOOL - a mempool of pbuf's, so include space for the pbuf struct
- *
- * If the include'r doesn't require any special treatment of each of the types
- * above, then will declare #2 & #3 to be just standard mempools.
- */
-#ifndef LWIP_MALLOC_MEMPOOL
-/* This treats "malloc pools" just like any other pool.
- The pools are a little bigger to provide 'size' as the amount of user data. */
-#define LWIP_MALLOC_MEMPOOL(num, size) LWIP_MEMPOOL(POOL_##size, num, (size + sizeof(struct memp_malloc_helper)), "MALLOC_"#size)
-#define LWIP_MALLOC_MEMPOOL_START
-#define LWIP_MALLOC_MEMPOOL_END
-#endif /* LWIP_MALLOC_MEMPOOL */
-
-#ifndef LWIP_PBUF_MEMPOOL
-/* This treats "pbuf pools" just like any other pool.
- * Allocates buffers for a pbuf struct AND a payload size */
-#define LWIP_PBUF_MEMPOOL(name, num, payload, desc) LWIP_MEMPOOL(name, num, (MEMP_ALIGN_SIZE(sizeof(struct pbuf)) + MEMP_ALIGN_SIZE(payload)), desc)
-#endif /* LWIP_PBUF_MEMPOOL */
-
-
-/*
- * A list of internal pools used by LWIP.
- *
- * LWIP_MEMPOOL(pool_name, number_elements, element_size, pool_description)
- * creates a pool name MEMP_pool_name. description is used in stats.c
- */
-#if LWIP_RAW
-LWIP_MEMPOOL(RAW_PCB, MEMP_NUM_RAW_PCB, sizeof(struct raw_pcb), "RAW_PCB")
-#endif /* LWIP_RAW */
-
-#if LWIP_UDP
-LWIP_MEMPOOL(UDP_PCB, MEMP_NUM_UDP_PCB, sizeof(struct udp_pcb), "UDP_PCB")
-#endif /* LWIP_UDP */
-
-#if LWIP_TCP
-LWIP_MEMPOOL(TCP_PCB, MEMP_NUM_TCP_PCB, sizeof(struct tcp_pcb), "TCP_PCB")
-LWIP_MEMPOOL(TCP_PCB_LISTEN, MEMP_NUM_TCP_PCB_LISTEN, sizeof(struct tcp_pcb_listen), "TCP_PCB_LISTEN")
-LWIP_MEMPOOL(TCP_SEG, MEMP_NUM_TCP_SEG, sizeof(struct tcp_seg), "TCP_SEG")
-#endif /* LWIP_TCP */
-
-#if IP_REASSEMBLY
-LWIP_MEMPOOL(REASSDATA, MEMP_NUM_REASSDATA, sizeof(struct ip_reassdata), "REASSDATA")
-#endif /* IP_REASSEMBLY */
-
-#if LWIP_NETCONN
-LWIP_MEMPOOL(NETBUF, MEMP_NUM_NETBUF, sizeof(struct netbuf), "NETBUF")
-LWIP_MEMPOOL(NETCONN, MEMP_NUM_NETCONN, sizeof(struct netconn), "NETCONN")
-#endif /* LWIP_NETCONN */
-
-#if NO_SYS==0
-LWIP_MEMPOOL(TCPIP_MSG_API, MEMP_NUM_TCPIP_MSG_API, sizeof(struct tcpip_msg), "TCPIP_MSG_API")
-LWIP_MEMPOOL(TCPIP_MSG_INPKT,MEMP_NUM_TCPIP_MSG_INPKT, sizeof(struct tcpip_msg), "TCPIP_MSG_INPKT")
-#endif /* NO_SYS==0 */
-
-#if ARP_QUEUEING
-LWIP_MEMPOOL(ARP_QUEUE, MEMP_NUM_ARP_QUEUE, sizeof(struct etharp_q_entry), "ARP_QUEUE")
-#endif /* ARP_QUEUEING */
-
-#if LWIP_IGMP
-LWIP_MEMPOOL(IGMP_GROUP, MEMP_NUM_IGMP_GROUP, sizeof(struct igmp_group), "IGMP_GROUP")
-#endif /* LWIP_IGMP */
-
-#if NO_SYS==0
-LWIP_MEMPOOL(SYS_TIMEOUT, MEMP_NUM_SYS_TIMEOUT, sizeof(struct sys_timeo), "SYS_TIMEOUT")
-#endif /* NO_SYS==0 */
-
-
-/*
- * A list of pools of pbuf's used by LWIP.
- *
- * LWIP_PBUF_MEMPOOL(pool_name, number_elements, pbuf_payload_size, pool_description)
- * creates a pool name MEMP_pool_name. description is used in stats.c
- * This allocates enough space for the pbuf struct and a payload.
- * (Example: pbuf_payload_size=0 allocates only size for the struct)
- */
-LWIP_PBUF_MEMPOOL(PBUF, MEMP_NUM_PBUF, 0, "PBUF_REF/ROM")
-LWIP_PBUF_MEMPOOL(PBUF_POOL, PBUF_POOL_SIZE, PBUF_POOL_BUFSIZE, "PBUF_POOL")
-
-
-/*
- * Allow for user-defined pools; this must be explicitly set in lwipopts.h
- * since the default is to NOT look for lwippools.h
- */
-#if MEMP_USE_CUSTOM_POOLS
-#include "lwippools.h"
-#endif /* MEMP_USE_CUSTOM_POOLS */
-
-/*
- * REQUIRED CLEANUP: Clear up so we don't get "multiply defined" error later
- * (#undef is ignored for something that is not defined)
- */
-#undef LWIP_MEMPOOL
-#undef LWIP_MALLOC_MEMPOOL
-#undef LWIP_MALLOC_MEMPOOL_START
-#undef LWIP_MALLOC_MEMPOOL_END
-#undef LWIP_PBUF_MEMPOOL
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netbuf.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netbuf.h
deleted file mode 100644
index ab9ea33..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netbuf.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_NETBUF_H__
-#define __LWIP_NETBUF_H__
-
-#include "lwip/opt.h"
-#include "lwip/pbuf.h"
-#include "lwip/ip_addr.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct netbuf {
- struct pbuf *p, *ptr;
- struct ip_addr *addr;
- u16_t port;
-#if LWIP_NETBUF_RECVINFO
- struct ip_addr *toaddr;
- u16_t toport;
-#endif /* LWIP_NETBUF_RECVINFO */
-};
-
-/* Network buffer functions: */
-struct netbuf * netbuf_new (void);
-void netbuf_delete (struct netbuf *buf);
-void * netbuf_alloc (struct netbuf *buf, u16_t size);
-void netbuf_free (struct netbuf *buf);
-err_t netbuf_ref (struct netbuf *buf,
- const void *dataptr, u16_t size);
-void netbuf_chain (struct netbuf *head,
- struct netbuf *tail);
-
-u16_t netbuf_len (struct netbuf *buf);
-err_t netbuf_data (struct netbuf *buf,
- void **dataptr, u16_t *len);
-s8_t netbuf_next (struct netbuf *buf);
-void netbuf_first (struct netbuf *buf);
-
-
-#define netbuf_copy_partial(buf, dataptr, len, offset) \
- pbuf_copy_partial((buf)->p, (dataptr), (len), (offset))
-#define netbuf_copy(buf,dataptr,len) netbuf_copy_partial(buf, dataptr, len, 0)
-#define netbuf_take(buf, dataptr, len) pbuf_take((buf)->p, dataptr, len)
-#define netbuf_len(buf) ((buf)->p->tot_len)
-#define netbuf_fromaddr(buf) ((buf)->addr)
-#define netbuf_fromport(buf) ((buf)->port)
-#if LWIP_NETBUF_RECVINFO
-#define netbuf_destaddr(buf) ((buf)->toaddr)
-#define netbuf_destport(buf) ((buf)->toport)
-#endif /* LWIP_NETBUF_RECVINFO */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_NETBUF_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netdb.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netdb.h
deleted file mode 100644
index c59c3a4..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netdb.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Simon Goldschmidt
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_DNS && LWIP_SOCKET
-
-#include <stddef.h> /* for size_t */
-
-#include "lwip/sockets.h"
-
-/* some rarely used options */
-#ifndef LWIP_DNS_API_DECLARE_H_ERRNO
-#define LWIP_DNS_API_DECLARE_H_ERRNO 1
-#endif
-
-#ifndef LWIP_DNS_API_DEFINE_ERRORS
-#define LWIP_DNS_API_DEFINE_ERRORS 1
-#endif
-
-#ifndef LWIP_DNS_API_DECLARE_STRUCTS
-#define LWIP_DNS_API_DECLARE_STRUCTS 1
-#endif
-
-#if LWIP_DNS_API_DEFINE_ERRORS
-/** Errors used by the DNS API functions, h_errno can be one of them */
-#define EAI_NONAME 200
-#define EAI_SERVICE 201
-#define EAI_FAIL 202
-#define EAI_MEMORY 203
-
-#define HOST_NOT_FOUND 210
-#define NO_DATA 211
-#define NO_RECOVERY 212
-#define TRY_AGAIN 213
-#endif /* LWIP_DNS_API_DEFINE_ERRORS */
-
-#if LWIP_DNS_API_DECLARE_STRUCTS
-struct hostent {
- char *h_name; /* Official name of the host. */
- char **h_aliases; /* A pointer to an array of pointers to alternative host names,
- terminated by a null pointer. */
- int h_addrtype; /* Address type. */
- int h_length; /* The length, in bytes, of the address. */
- char **h_addr_list; /* A pointer to an array of pointers to network addresses (in
- network byte order) for the host, terminated by a null pointer. */
-#define h_addr h_addr_list[0] /* for backward compatibility */
-};
-
-struct addrinfo {
- int ai_flags; /* Input flags. */
- int ai_family; /* Address family of socket. */
- int ai_socktype; /* Socket type. */
- int ai_protocol; /* Protocol of socket. */
- socklen_t ai_addrlen; /* Length of socket address. */
- struct sockaddr *ai_addr; /* Socket address of socket. */
- char *ai_canonname; /* Canonical name of service location. */
- struct addrinfo *ai_next; /* Pointer to next in list. */
-};
-#endif /* LWIP_DNS_API_DECLARE_STRUCTS */
-
-#if LWIP_DNS_API_DECLARE_H_ERRNO
-/* application accessable error code set by the DNS API functions */
-extern int h_errno;
-#endif /* LWIP_DNS_API_DECLARE_H_ERRNO*/
-
-struct hostent *lwip_gethostbyname(const char *name);
-int lwip_gethostbyname_r(const char *name, struct hostent *ret, char *buf,
- size_t buflen, struct hostent **result, int *h_errnop);
-void lwip_freeaddrinfo(struct addrinfo *ai);
-int lwip_getaddrinfo(const char *nodename,
- const char *servname,
- const struct addrinfo *hints,
- struct addrinfo **res);
-
-#if LWIP_COMPAT_SOCKETS
-#define gethostbyname(name) lwip_gethostbyname(name)
-#define gethostbyname_r(name, ret, buf, buflen, result, h_errnop) \
- lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop)
-#define freeaddrinfo(addrinfo) lwip_freeaddrinfo(addrinfo)
-#define getaddrinfo(nodname, servname, hints, res) \
- lwip_getaddrinfo(nodname, servname, hints, res)
-#endif /* LWIP_COMPAT_SOCKETS */
-
-#endif /* LWIP_DNS && LWIP_SOCKET */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netif.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netif.h
deleted file mode 100644
index 8e650d7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netif.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_NETIF_H__
-#define __LWIP_NETIF_H__
-
-#include "lwip/opt.h"
-
-#define ENABLE_LOOPBACK (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF)
-
-#include "lwip/err.h"
-
-#include "lwip/ip_addr.h"
-
-#include "lwip/inet.h"
-#include "lwip/pbuf.h"
-#if LWIP_DHCP
-struct dhcp;
-#endif
-#if LWIP_AUTOIP
-struct autoip;
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Throughout this file, IP addresses are expected to be in
- * the same byte order as in IP_PCB. */
-
-/** must be the maximum of all used hardware address lengths
- across all types of interfaces in use */
-#define NETIF_MAX_HWADDR_LEN 6U
-
-/** TODO: define the use (where, when, whom) of netif flags */
-
-/** whether the network interface is 'up'. this is
- * a software flag used to control whether this network
- * interface is enabled and processes traffic.
- */
-#define NETIF_FLAG_UP 0x01U
-/** if set, the netif has broadcast capability */
-#define NETIF_FLAG_BROADCAST 0x02U
-/** if set, the netif is one end of a point-to-point connection */
-#define NETIF_FLAG_POINTTOPOINT 0x04U
-/** if set, the interface is configured using DHCP */
-#define NETIF_FLAG_DHCP 0x08U
-/** if set, the interface has an active link
- * (set by the network interface driver) */
-#define NETIF_FLAG_LINK_UP 0x10U
-/** if set, the netif is an device using ARP */
-#define NETIF_FLAG_ETHARP 0x20U
-/** if set, the netif has IGMP capability */
-#define NETIF_FLAG_IGMP 0x40U
-
-/** Generic data structure used for all lwIP network interfaces.
- * The following fields should be filled in by the initialization
- * function for the device driver: hwaddr_len, hwaddr[], mtu, flags */
-
-struct netif {
- /** pointer to next in linked list */
- struct netif *next;
-
- /** IP address configuration in network byte order */
- struct ip_addr ip_addr;
- struct ip_addr netmask;
- struct ip_addr gw;
-
- /** This function is called by the network device driver
- * to pass a packet up the TCP/IP stack. */
- err_t (* input)(struct pbuf *p, struct netif *inp);
- /** This function is called by the IP module when it wants
- * to send a packet on the interface. This function typically
- * first resolves the hardware address, then sends the packet. */
- err_t (* output)(struct netif *netif, struct pbuf *p,
- struct ip_addr *ipaddr);
- /** This function is called by the ARP module when it wants
- * to send a packet on the interface. This function outputs
- * the pbuf as-is on the link medium. */
- err_t (* linkoutput)(struct netif *netif, struct pbuf *p);
-#if LWIP_NETIF_STATUS_CALLBACK
- /** This function is called when the netif state is set to up or down
- */
- void (* status_callback)(struct netif *netif);
-#endif /* LWIP_NETIF_STATUS_CALLBACK */
-#if LWIP_NETIF_LINK_CALLBACK
- /** This function is called when the netif link is set to up or down
- */
- void (* link_callback)(struct netif *netif);
-#endif /* LWIP_NETIF_LINK_CALLBACK */
- /** This field can be set by the device driver and could point
- * to state information for the device. */
- void *state;
-#if LWIP_DHCP
- /** the DHCP client state information for this netif */
- struct dhcp *dhcp;
-#endif /* LWIP_DHCP */
-#if LWIP_AUTOIP
- /** the AutoIP client state information for this netif */
- struct autoip *autoip;
-#endif
-#if LWIP_NETIF_HOSTNAME
- /* the hostname for this netif, NULL is a valid value */
- char* hostname;
-#endif /* LWIP_NETIF_HOSTNAME */
- /** maximum transfer unit (in bytes) */
- u16_t mtu;
- /** number of bytes used in hwaddr */
- u8_t hwaddr_len;
- /** link level hardware address of this interface */
- u8_t hwaddr[NETIF_MAX_HWADDR_LEN];
- /** flags (see NETIF_FLAG_ above) */
- u8_t flags;
- /** descriptive abbreviation */
- char name[2];
- /** number of this interface */
- u8_t num;
-#if LWIP_SNMP
- /** link type (from "snmp_ifType" enum from snmp.h) */
- u8_t link_type;
- /** (estimate) link speed */
- u32_t link_speed;
- /** timestamp at last change made (up/down) */
- u32_t ts;
- /** counters */
- u32_t ifinoctets;
- u32_t ifinucastpkts;
- u32_t ifinnucastpkts;
- u32_t ifindiscards;
- u32_t ifoutoctets;
- u32_t ifoutucastpkts;
- u32_t ifoutnucastpkts;
- u32_t ifoutdiscards;
-#endif /* LWIP_SNMP */
-#if LWIP_IGMP
- /* This function could be called to add or delete a entry in the multicast filter table of the ethernet MAC.*/
- err_t (*igmp_mac_filter)( struct netif *netif, struct ip_addr *group, u8_t action);
-#endif /* LWIP_IGMP */
-#if LWIP_NETIF_HWADDRHINT
- u8_t *addr_hint;
-#endif /* LWIP_NETIF_HWADDRHINT */
-#if ENABLE_LOOPBACK
- /* List of packets to be queued for ourselves. */
- struct pbuf *loop_first;
- struct pbuf *loop_last;
-#if LWIP_LOOPBACK_MAX_PBUFS
- u16_t loop_cnt_current;
-#endif /* LWIP_LOOPBACK_MAX_PBUFS */
-#endif /* ENABLE_LOOPBACK */
-};
-
-#if LWIP_SNMP
-#define NETIF_INIT_SNMP(netif, type, speed) \
- /* use "snmp_ifType" enum from snmp.h for "type", snmp_ifType_ethernet_csmacd by example */ \
- netif->link_type = type; \
- /* your link speed here (units: bits per second) */ \
- netif->link_speed = speed; \
- netif->ts = 0; \
- netif->ifinoctets = 0; \
- netif->ifinucastpkts = 0; \
- netif->ifinnucastpkts = 0; \
- netif->ifindiscards = 0; \
- netif->ifoutoctets = 0; \
- netif->ifoutucastpkts = 0; \
- netif->ifoutnucastpkts = 0; \
- netif->ifoutdiscards = 0
-#else /* LWIP_SNMP */
-#define NETIF_INIT_SNMP(netif, type, speed)
-#endif /* LWIP_SNMP */
-
-
-/** The list of network interfaces. */
-extern struct netif *netif_list;
-/** The default network interface. */
-extern struct netif *netif_default;
-
-#define netif_init() /* Compatibility define, not init needed. */
-
-struct netif *netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask,
- struct ip_addr *gw,
- void *state,
- err_t (* init)(struct netif *netif),
- err_t (* input)(struct pbuf *p, struct netif *netif));
-
-void
-netif_set_addr(struct netif *netif,struct ip_addr *ipaddr, struct ip_addr *netmask,
- struct ip_addr *gw);
-void netif_remove(struct netif * netif);
-
-/* Returns a network interface given its name. The name is of the form
- "et0", where the first two letters are the "name" field in the
- netif structure, and the digit is in the num field in the same
- structure. */
-struct netif *netif_find(char *name);
-
-void netif_set_default(struct netif *netif);
-
-void netif_set_ipaddr(struct netif *netif, struct ip_addr *ipaddr);
-void netif_set_netmask(struct netif *netif, struct ip_addr *netmask);
-void netif_set_gw(struct netif *netif, struct ip_addr *gw);
-
-void netif_set_up(struct netif *netif);
-void netif_set_down(struct netif *netif);
-u8_t netif_is_up(struct netif *netif);
-
-#if LWIP_NETIF_STATUS_CALLBACK
-/*
- * Set callback to be called when interface is brought up/down
- */
-void netif_set_status_callback(struct netif *netif, void (* status_callback)(struct netif *netif));
-#endif /* LWIP_NETIF_STATUS_CALLBACK */
-
-#if LWIP_NETIF_LINK_CALLBACK
-void netif_set_link_up(struct netif *netif);
-void netif_set_link_down(struct netif *netif);
-u8_t netif_is_link_up(struct netif *netif);
-/*
- * Set callback to be called when link is brought up/down
- */
-void netif_set_link_callback(struct netif *netif, void (* link_callback)(struct netif *netif));
-#endif /* LWIP_NETIF_LINK_CALLBACK */
-
-#ifdef __cplusplus
-}
-#endif
-
-#if ENABLE_LOOPBACK
-err_t netif_loop_output(struct netif *netif, struct pbuf *p, struct ip_addr *dest_ip);
-void netif_poll(struct netif *netif);
-#if !LWIP_NETIF_LOOPBACK_MULTITHREADING
-void netif_poll_all(void);
-#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */
-#endif /* ENABLE_LOOPBACK */
-
-#endif /* __LWIP_NETIF_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netifapi.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netifapi.h
deleted file mode 100644
index 22d8690..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netifapi.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- */
-
-#ifndef __LWIP_NETIFAPI_H__
-#define __LWIP_NETIFAPI_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_NETIF_API /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/sys.h"
-#include "lwip/netif.h"
-#include "lwip/dhcp.h"
-#include "lwip/autoip.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct netifapi_msg_msg {
-#if !LWIP_TCPIP_CORE_LOCKING
- sys_sem_t sem;
-#endif /* !LWIP_TCPIP_CORE_LOCKING */
- err_t err;
- struct netif *netif;
- union {
- struct {
- struct ip_addr *ipaddr;
- struct ip_addr *netmask;
- struct ip_addr *gw;
- void *state;
- err_t (* init) (struct netif *netif);
- err_t (* input)(struct pbuf *p, struct netif *netif);
- } add;
- struct {
- void (* voidfunc)(struct netif *netif);
- err_t (* errtfunc)(struct netif *netif);
- } common;
- } msg;
-};
-
-struct netifapi_msg {
- void (* function)(struct netifapi_msg_msg *msg);
- struct netifapi_msg_msg msg;
-};
-
-
-/* API for application */
-err_t netifapi_netif_add ( struct netif *netif,
- struct ip_addr *ipaddr,
- struct ip_addr *netmask,
- struct ip_addr *gw,
- void *state,
- err_t (* init)(struct netif *netif),
- err_t (* input)(struct pbuf *p, struct netif *netif) );
-
-err_t netifapi_netif_set_addr ( struct netif *netif,
- struct ip_addr *ipaddr,
- struct ip_addr *netmask,
- struct ip_addr *gw );
-
-err_t netifapi_netif_common ( struct netif *netif,
- void (* voidfunc)(struct netif *netif),
- err_t (* errtfunc)(struct netif *netif) );
-
-#define netifapi_netif_remove(n) netifapi_netif_common(n, netif_remove, NULL)
-#define netifapi_netif_set_up(n) netifapi_netif_common(n, netif_set_up, NULL)
-#define netifapi_netif_set_down(n) netifapi_netif_common(n, netif_set_down, NULL)
-#define netifapi_netif_set_default(n) netifapi_netif_common(n, netif_set_default, NULL)
-#define netifapi_dhcp_start(n) netifapi_netif_common(n, NULL, dhcp_start)
-#define netifapi_dhcp_stop(n) netifapi_netif_common(n, dhcp_stop, NULL)
-#define netifapi_autoip_start(n) netifapi_netif_common(n, NULL, autoip_start)
-#define netifapi_autoip_stop(n) netifapi_netif_common(n, NULL, autoip_stop)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_NETIF_API */
-
-#endif /* __LWIP_NETIFAPI_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/opt.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/opt.h
deleted file mode 100644
index a7cdbd8..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/opt.h
+++ /dev/null
@@ -1,1842 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- *
- * lwIP Options Configuration
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_OPT_H__
-#define __LWIP_OPT_H__
-
-/*
- * Include user defined options first. Anything not defined in these files
- * will be set to standard values. Override anything you dont like!
- */
-#include "lwipopts.h"
-#include "lwip/debug.h"
-
-/*
- -----------------------------------------------
- ---------- Platform specific locking ----------
- -----------------------------------------------
-*/
-
-/**
- * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain
- * critical regions during buffer allocation, deallocation and memory
- * allocation and deallocation.
- */
-#ifndef SYS_LIGHTWEIGHT_PROT
-#define SYS_LIGHTWEIGHT_PROT 0
-#endif
-
-/**
- * NO_SYS==1: Provides VERY minimal functionality. Otherwise,
- * use lwIP facilities.
- */
-#ifndef NO_SYS
-#define NO_SYS 0
-#endif
-
-/**
- * MEMCPY: override this if you have a faster implementation at hand than the
- * one included in your C library
- */
-#ifndef MEMCPY
-#define MEMCPY(dst,src,len) memcpy(dst,src,len)
-#endif
-
-/**
- * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a
- * call to memcpy() if the length is known at compile time and is small.
- */
-#ifndef SMEMCPY
-#define SMEMCPY(dst,src,len) memcpy(dst,src,len)
-#endif
-
-/*
- ------------------------------------
- ---------- Memory options ----------
- ------------------------------------
-*/
-/**
- * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library
- * instead of the lwip internal allocator. Can save code size if you
- * already use it.
- */
-#ifndef MEM_LIBC_MALLOC
-#define MEM_LIBC_MALLOC 0
-#endif
-
-/**
-* MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator.
-* Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution
-* speed and usage from interrupts!
-*/
-#ifndef MEMP_MEM_MALLOC
-#define MEMP_MEM_MALLOC 0
-#endif
-
-/**
- * MEM_ALIGNMENT: should be set to the alignment of the CPU
- * 4 byte alignment -> #define MEM_ALIGNMENT 4
- * 2 byte alignment -> #define MEM_ALIGNMENT 2
- */
-#ifndef MEM_ALIGNMENT
-#define MEM_ALIGNMENT 1
-#endif
-
-/**
- * MEM_SIZE: the size of the heap memory. If the application will send
- * a lot of data that needs to be copied, this should be set high.
- */
-#ifndef MEM_SIZE
-#define MEM_SIZE 1600
-#endif
-
-/**
- * MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable
- * amount of bytes before and after each memp element in every pool and fills
- * it with a prominent default value.
- * MEMP_OVERFLOW_CHECK == 0 no checking
- * MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed
- * MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time
- * memp_malloc() or memp_free() is called (useful but slow!)
- */
-#ifndef MEMP_OVERFLOW_CHECK
-#define MEMP_OVERFLOW_CHECK 0
-#endif
-
-/**
- * MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make
- * sure that there are no cycles in the linked lists.
- */
-#ifndef MEMP_SANITY_CHECK
-#define MEMP_SANITY_CHECK 0
-#endif
-
-/**
- * MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set
- * of memory pools of various sizes. When mem_malloc is called, an element of
- * the smallest pool that can provide the length needed is returned.
- * To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled.
- */
-#ifndef MEM_USE_POOLS
-#define MEM_USE_POOLS 0
-#endif
-
-/**
- * MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next
- * bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more
- * reliable. */
-#ifndef MEM_USE_POOLS_TRY_BIGGER_POOL
-#define MEM_USE_POOLS_TRY_BIGGER_POOL 0
-#endif
-
-/**
- * MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h
- * that defines additional pools beyond the "standard" ones required
- * by lwIP. If you set this to 1, you must have lwippools.h in your
- * inlude path somewhere.
- */
-#ifndef MEMP_USE_CUSTOM_POOLS
-#define MEMP_USE_CUSTOM_POOLS 0
-#endif
-
-/**
- * Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from
- * interrupt context (or another context that doesn't allow waiting for a
- * semaphore).
- * If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT,
- * while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs
- * with each loop so that mem_free can run.
- *
- * ATTENTION: As you can see from the above description, this leads to dis-/
- * enabling interrupts often, which can be slow! Also, on low memory, mem_malloc
- * can need longer.
- *
- * If you don't want that, at least for NO_SYS=0, you can still use the following
- * functions to enqueue a deallocation call which then runs in the tcpip_thread
- * context:
- * - pbuf_free_callback(p);
- * - mem_free_callback(m);
- */
-#ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
-#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
-#endif
-
-/*
- ------------------------------------------------
- ---------- Internal Memory Pool Sizes ----------
- ------------------------------------------------
-*/
-/**
- * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF).
- * If the application sends a lot of data out of ROM (or other static memory),
- * this should be set high.
- */
-#ifndef MEMP_NUM_PBUF
-#define MEMP_NUM_PBUF 16
-#endif
-
-/**
- * MEMP_NUM_RAW_PCB: Number of raw connection PCBs
- * (requires the LWIP_RAW option)
- */
-#ifndef MEMP_NUM_RAW_PCB
-#define MEMP_NUM_RAW_PCB 4
-#endif
-
-/**
- * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One
- * per active UDP "connection".
- * (requires the LWIP_UDP option)
- */
-#ifndef MEMP_NUM_UDP_PCB
-#define MEMP_NUM_UDP_PCB 4
-#endif
-
-/**
- * MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections.
- * (requires the LWIP_TCP option)
- */
-#ifndef MEMP_NUM_TCP_PCB
-#define MEMP_NUM_TCP_PCB 5
-#endif
-
-/**
- * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections.
- * (requires the LWIP_TCP option)
- */
-#ifndef MEMP_NUM_TCP_PCB_LISTEN
-#define MEMP_NUM_TCP_PCB_LISTEN 8
-#endif
-
-/**
- * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments.
- * (requires the LWIP_TCP option)
- */
-#ifndef MEMP_NUM_TCP_SEG
-#define MEMP_NUM_TCP_SEG 16
-#endif
-
-/**
- * MEMP_NUM_REASSDATA: the number of simultaneously IP packets queued for
- * reassembly (whole packets, not fragments!)
- */
-#ifndef MEMP_NUM_REASSDATA
-#define MEMP_NUM_REASSDATA 5
-#endif
-
-/**
- * MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing
- * packets (pbufs) that are waiting for an ARP request (to resolve
- * their destination address) to finish.
- * (requires the ARP_QUEUEING option)
- */
-#ifndef MEMP_NUM_ARP_QUEUE
-#define MEMP_NUM_ARP_QUEUE 30
-#endif
-
-/**
- * MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces
- * can be members et the same time (one per netif - allsystems group -, plus one
- * per netif membership).
- * (requires the LWIP_IGMP option)
- */
-#ifndef MEMP_NUM_IGMP_GROUP
-#define MEMP_NUM_IGMP_GROUP 8
-#endif
-
-/**
- * MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts.
- * (requires NO_SYS==0)
- */
-#ifndef MEMP_NUM_SYS_TIMEOUT
-#define MEMP_NUM_SYS_TIMEOUT 3
-#endif
-
-/**
- * MEMP_NUM_NETBUF: the number of struct netbufs.
- * (only needed if you use the sequential API, like api_lib.c)
- */
-#ifndef MEMP_NUM_NETBUF
-#define MEMP_NUM_NETBUF 2
-#endif
-
-/**
- * MEMP_NUM_NETCONN: the number of struct netconns.
- * (only needed if you use the sequential API, like api_lib.c)
- */
-#ifndef MEMP_NUM_NETCONN
-#define MEMP_NUM_NETCONN 4
-#endif
-
-/**
- * MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used
- * for callback/timeout API communication.
- * (only needed if you use tcpip.c)
- */
-#ifndef MEMP_NUM_TCPIP_MSG_API
-#define MEMP_NUM_TCPIP_MSG_API 8
-#endif
-
-/**
- * MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used
- * for incoming packets.
- * (only needed if you use tcpip.c)
- */
-#ifndef MEMP_NUM_TCPIP_MSG_INPKT
-#define MEMP_NUM_TCPIP_MSG_INPKT 8
-#endif
-
-/**
- * PBUF_POOL_SIZE: the number of buffers in the pbuf pool.
- */
-#ifndef PBUF_POOL_SIZE
-#define PBUF_POOL_SIZE 16
-#endif
-
-/*
- ---------------------------------
- ---------- ARP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_ARP==1: Enable ARP functionality.
- */
-#ifndef LWIP_ARP
-#define LWIP_ARP 1
-#endif
-
-/**
- * ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached.
- */
-#ifndef ARP_TABLE_SIZE
-#define ARP_TABLE_SIZE 10
-#endif
-
-/**
- * ARP_QUEUEING==1: Outgoing packets are queued during hardware address
- * resolution.
- */
-#ifndef ARP_QUEUEING
-#define ARP_QUEUEING 1
-#endif
-
-/**
- * ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be
- * updated with the source MAC and IP addresses supplied in the packet.
- * You may want to disable this if you do not trust LAN peers to have the
- * correct addresses, or as a limited approach to attempt to handle
- * spoofing. If disabled, lwIP will need to make a new ARP request if
- * the peer is not already in the ARP table, adding a little latency.
- */
-#ifndef ETHARP_TRUST_IP_MAC
-#define ETHARP_TRUST_IP_MAC 1
-#endif
-
-/**
- * ETHARP_SUPPORT_VLAN==1: support receiving ethernet packets with VLAN header.
- * Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check.
- * If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted.
- * If ETHARP_VLAN_CHECK is not defined, all traffic is accepted.
- */
-#ifndef ETHARP_SUPPORT_VLAN
-#define ETHARP_SUPPORT_VLAN 0
-#endif
-
-/*
- --------------------------------
- ---------- IP options ----------
- --------------------------------
-*/
-/**
- * IP_FORWARD==1: Enables the ability to forward IP packets across network
- * interfaces. If you are going to run lwIP on a device with only one network
- * interface, define this to 0.
- */
-#ifndef IP_FORWARD
-#define IP_FORWARD 0
-#endif
-
-/**
- * IP_OPTIONS_ALLOWED: Defines the behavior for IP options.
- * IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped.
- * IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed).
- */
-#ifndef IP_OPTIONS_ALLOWED
-#define IP_OPTIONS_ALLOWED 1
-#endif
-
-/**
- * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that
- * this option does not affect outgoing packet sizes, which can be controlled
- * via IP_FRAG.
- */
-#ifndef IP_REASSEMBLY
-#define IP_REASSEMBLY 1
-#endif
-
-/**
- * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
- * that this option does not affect incoming packet sizes, which can be
- * controlled via IP_REASSEMBLY.
- */
-#ifndef IP_FRAG
-#define IP_FRAG 1
-#endif
-
-/**
- * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
- * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived
- * in this time, the whole packet is discarded.
- */
-#ifndef IP_REASS_MAXAGE
-#define IP_REASS_MAXAGE 3
-#endif
-
-/**
- * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.
- * Since the received pbufs are enqueued, be sure to configure
- * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive
- * packets even if the maximum amount of fragments is enqueued for reassembly!
- */
-#ifndef IP_REASS_MAX_PBUFS
-#define IP_REASS_MAX_PBUFS 10
-#endif
-
-/**
- * IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP
- * fragmentation. Otherwise pbufs are allocated and reference the original
- * packet data to be fragmented.
- */
-#ifndef IP_FRAG_USES_STATIC_BUF
-#define IP_FRAG_USES_STATIC_BUF 1
-#endif
-
-/**
- * IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer
- * (requires IP_FRAG_USES_STATIC_BUF==1)
- */
-#if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU)
-#define IP_FRAG_MAX_MTU 1500
-#endif
-
-/**
- * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers.
- */
-#ifndef IP_DEFAULT_TTL
-#define IP_DEFAULT_TTL 255
-#endif
-
-/**
- * IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast
- * filter per pcb on udp and raw send operations. To enable broadcast filter
- * on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1.
- */
-#ifndef IP_SOF_BROADCAST
-#define IP_SOF_BROADCAST 0
-#endif
-
-/**
- * IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast
- * filter on recv operations.
- */
-#ifndef IP_SOF_BROADCAST_RECV
-#define IP_SOF_BROADCAST_RECV 0
-#endif
-
-/*
- ----------------------------------
- ---------- ICMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_ICMP==1: Enable ICMP module inside the IP stack.
- * Be careful, disable that make your product non-compliant to RFC1122
- */
-#ifndef LWIP_ICMP
-#define LWIP_ICMP 1
-#endif
-
-/**
- * ICMP_TTL: Default value for Time-To-Live used by ICMP packets.
- */
-#ifndef ICMP_TTL
-#define ICMP_TTL (IP_DEFAULT_TTL)
-#endif
-
-/**
- * LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only)
- */
-#ifndef LWIP_BROADCAST_PING
-#define LWIP_BROADCAST_PING 0
-#endif
-
-/**
- * LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only)
- */
-#ifndef LWIP_MULTICAST_PING
-#define LWIP_MULTICAST_PING 0
-#endif
-
-/*
- ---------------------------------
- ---------- RAW options ----------
- ---------------------------------
-*/
-/**
- * LWIP_RAW==1: Enable application layer to hook into the IP layer itself.
- */
-#ifndef LWIP_RAW
-#define LWIP_RAW 1
-#endif
-
-/**
- * LWIP_RAW==1: Enable application layer to hook into the IP layer itself.
- */
-#ifndef RAW_TTL
-#define RAW_TTL (IP_DEFAULT_TTL)
-#endif
-
-/*
- ----------------------------------
- ---------- DHCP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_DHCP==1: Enable DHCP module.
- */
-#ifndef LWIP_DHCP
-#define LWIP_DHCP 0
-#endif
-
-/**
- * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address.
- */
-#ifndef DHCP_DOES_ARP_CHECK
-#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
-#endif
-
-/*
- ------------------------------------
- ---------- AUTOIP options ----------
- ------------------------------------
-*/
-/**
- * LWIP_AUTOIP==1: Enable AUTOIP module.
- */
-#ifndef LWIP_AUTOIP
-#define LWIP_AUTOIP 0
-#endif
-
-/**
- * LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on
- * the same interface at the same time.
- */
-#ifndef LWIP_DHCP_AUTOIP_COOP
-#define LWIP_DHCP_AUTOIP_COOP 0
-#endif
-
-/**
- * LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes
- * that should be sent before falling back on AUTOIP. This can be set
- * as low as 1 to get an AutoIP address very quickly, but you should
- * be prepared to handle a changing IP address when DHCP overrides
- * AutoIP.
- */
-#ifndef LWIP_DHCP_AUTOIP_COOP_TRIES
-#define LWIP_DHCP_AUTOIP_COOP_TRIES 9
-#endif
-
-/*
- ----------------------------------
- ---------- SNMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP
- * transport.
- */
-#ifndef LWIP_SNMP
-#define LWIP_SNMP 0
-#endif
-
-/**
- * SNMP_CONCURRENT_REQUESTS: Number of concurrent requests the module will
- * allow. At least one request buffer is required.
- */
-#ifndef SNMP_CONCURRENT_REQUESTS
-#define SNMP_CONCURRENT_REQUESTS 1
-#endif
-
-/**
- * SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap
- * destination is required
- */
-#ifndef SNMP_TRAP_DESTINATIONS
-#define SNMP_TRAP_DESTINATIONS 1
-#endif
-
-/**
- * SNMP_PRIVATE_MIB:
- */
-#ifndef SNMP_PRIVATE_MIB
-#define SNMP_PRIVATE_MIB 0
-#endif
-
-/**
- * Only allow SNMP write actions that are 'safe' (e.g. disabeling netifs is not
- * a safe action and disabled when SNMP_SAFE_REQUESTS = 1).
- * Unsafe requests are disabled by default!
- */
-#ifndef SNMP_SAFE_REQUESTS
-#define SNMP_SAFE_REQUESTS 1
-#endif
-
-/*
- ----------------------------------
- ---------- IGMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_IGMP==1: Turn on IGMP module.
- */
-#ifndef LWIP_IGMP
-#define LWIP_IGMP 0
-#endif
-
-/*
- ----------------------------------
- ---------- DNS options -----------
- ----------------------------------
-*/
-/**
- * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS
- * transport.
- */
-#ifndef LWIP_DNS
-#define LWIP_DNS 0
-#endif
-
-/** DNS maximum number of entries to maintain locally. */
-#ifndef DNS_TABLE_SIZE
-#define DNS_TABLE_SIZE 4
-#endif
-
-/** DNS maximum host name length supported in the name table. */
-#ifndef DNS_MAX_NAME_LENGTH
-#define DNS_MAX_NAME_LENGTH 256
-#endif
-
-/** The maximum of DNS servers */
-#ifndef DNS_MAX_SERVERS
-#define DNS_MAX_SERVERS 2
-#endif
-
-/** DNS do a name checking between the query and the response. */
-#ifndef DNS_DOES_NAME_CHECK
-#define DNS_DOES_NAME_CHECK 1
-#endif
-
-/** DNS use a local buffer if DNS_USES_STATIC_BUF=0, a static one if
- DNS_USES_STATIC_BUF=1, or a dynamic one if DNS_USES_STATIC_BUF=2.
- The buffer will be of size DNS_MSG_SIZE */
-#ifndef DNS_USES_STATIC_BUF
-#define DNS_USES_STATIC_BUF 1
-#endif
-
-/** DNS message max. size. Default value is RFC compliant. */
-#ifndef DNS_MSG_SIZE
-#define DNS_MSG_SIZE 512
-#endif
-
-/** DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. If enabled,
- * you have to define
- * #define DNS_LOCAL_HOSTLIST_INIT {{"host1", 0x123}, {"host2", 0x234}}
- * (an array of structs name/address, where address is an u32_t in network
- * byte order).
- *
- * Instead, you can also use an external function:
- * #define DNS_LOOKUP_LOCAL_EXTERN(x) extern u32_t my_lookup_function(const char *name)
- * that returns the IP address or INADDR_NONE if not found.
- */
-#ifndef DNS_LOCAL_HOSTLIST
-#define DNS_LOCAL_HOSTLIST 0
-#endif /* DNS_LOCAL_HOSTLIST */
-
-/** If this is turned on, the local host-list can be dynamically changed
- * at runtime. */
-#ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC
-#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
-#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
-
-/*
- ---------------------------------
- ---------- UDP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_UDP==1: Turn on UDP.
- */
-#ifndef LWIP_UDP
-#define LWIP_UDP 1
-#endif
-
-/**
- * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP)
- */
-#ifndef LWIP_UDPLITE
-#define LWIP_UDPLITE 0
-#endif
-
-/**
- * UDP_TTL: Default Time-To-Live value.
- */
-#ifndef UDP_TTL
-#define UDP_TTL (IP_DEFAULT_TTL)
-#endif
-
-/**
- * LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf.
- */
-#ifndef LWIP_NETBUF_RECVINFO
-#define LWIP_NETBUF_RECVINFO 0
-#endif
-
-/*
- ---------------------------------
- ---------- TCP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_TCP==1: Turn on TCP.
- */
-#ifndef LWIP_TCP
-#define LWIP_TCP 1
-#endif
-
-/**
- * TCP_TTL: Default Time-To-Live value.
- */
-#ifndef TCP_TTL
-#define TCP_TTL (IP_DEFAULT_TTL)
-#endif
-
-/**
- * TCP_WND: The size of a TCP window. This must be at least
- * (2 * TCP_MSS) for things to work well
- */
-#ifndef TCP_WND
-#define TCP_WND (4 * TCP_MSS)
-#endif
-
-/**
- * TCP_MAXRTX: Maximum number of retransmissions of data segments.
- */
-#ifndef TCP_MAXRTX
-#define TCP_MAXRTX 12
-#endif
-
-/**
- * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments.
- */
-#ifndef TCP_SYNMAXRTX
-#define TCP_SYNMAXRTX 6
-#endif
-
-/**
- * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order.
- * Define to 0 if your device is low on memory.
- */
-#ifndef TCP_QUEUE_OOSEQ
-#define TCP_QUEUE_OOSEQ (LWIP_TCP)
-#endif
-
-/**
- * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default,
- * you might want to increase this.)
- * For the receive side, this MSS is advertised to the remote side
- * when opening a connection. For the transmit size, this MSS sets
- * an upper limit on the MSS advertised by the remote host.
- */
-#ifndef TCP_MSS
-#define TCP_MSS 536
-#endif
-
-/**
- * TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really
- * sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which
- * reflects the available reassembly buffer size at the remote host) and the
- * largest size permitted by the IP layer" (RFC 1122)
- * Setting this to 1 enables code that checks TCP_MSS against the MTU of the
- * netif used for a connection and limits the MSS if it would be too big otherwise.
- */
-#ifndef TCP_CALCULATE_EFF_SEND_MSS
-#define TCP_CALCULATE_EFF_SEND_MSS 1
-#endif
-
-
-/**
- * TCP_SND_BUF: TCP sender buffer space (bytes).
- */
-#ifndef TCP_SND_BUF
-#define TCP_SND_BUF 256
-#endif
-
-/**
- * TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least
- * as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work.
- */
-#ifndef TCP_SND_QUEUELEN
-#define TCP_SND_QUEUELEN (4 * (TCP_SND_BUF)/(TCP_MSS))
-#endif
-
-/**
- * TCP_SNDLOWAT: TCP writable space (bytes). This must be less than or equal
- * to TCP_SND_BUF. It is the amount of space which must be available in the
- * TCP snd_buf for select to return writable.
- */
-#ifndef TCP_SNDLOWAT
-#define TCP_SNDLOWAT ((TCP_SND_BUF)/2)
-#endif
-
-/**
- * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb.
- */
-#ifndef TCP_LISTEN_BACKLOG
-#define TCP_LISTEN_BACKLOG 0
-#endif
-
-/**
- * The maximum allowed backlog for TCP listen netconns.
- * This backlog is used unless another is explicitly specified.
- * 0xff is the maximum (u8_t).
- */
-#ifndef TCP_DEFAULT_LISTEN_BACKLOG
-#define TCP_DEFAULT_LISTEN_BACKLOG 0xff
-#endif
-
-/**
- * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option.
- */
-#ifndef LWIP_TCP_TIMESTAMPS
-#define LWIP_TCP_TIMESTAMPS 0
-#endif
-
-/**
- * TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an
- * explicit window update
- */
-#ifndef TCP_WND_UPDATE_THRESHOLD
-#define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4)
-#endif
-
-/**
- * LWIP_EVENT_API and LWIP_CALLBACK_API: Only one of these should be set to 1.
- * LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all
- * events (accept, sent, etc) that happen in the system.
- * LWIP_CALLBACK_API==1: The PCB callback function is called directly
- * for the event.
- */
-#ifndef LWIP_EVENT_API
-#define LWIP_EVENT_API 0
-#define LWIP_CALLBACK_API 1
-#else
-#define LWIP_EVENT_API 1
-#define LWIP_CALLBACK_API 0
-#endif
-
-
-/*
- ----------------------------------
- ---------- Pbuf options ----------
- ----------------------------------
-*/
-/**
- * PBUF_LINK_HLEN: the number of bytes that should be allocated for a
- * link level header. The default is 14, the standard value for
- * Ethernet.
- */
-#ifndef PBUF_LINK_HLEN
-#define PBUF_LINK_HLEN 14
-#endif
-
-/**
- * PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. The default is
- * designed to accomodate single full size TCP frame in one pbuf, including
- * TCP_MSS, IP header, and link header.
- */
-#ifndef PBUF_POOL_BUFSIZE
-#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
-#endif
-
-/*
- ------------------------------------------------
- ---------- Network Interfaces options ----------
- ------------------------------------------------
-*/
-/**
- * LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname
- * field.
- */
-#ifndef LWIP_NETIF_HOSTNAME
-#define LWIP_NETIF_HOSTNAME 0
-#endif
-
-/**
- * LWIP_NETIF_API==1: Support netif api (in netifapi.c)
- */
-#ifndef LWIP_NETIF_API
-#define LWIP_NETIF_API 0
-#endif
-
-/**
- * LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface
- * changes its up/down status (i.e., due to DHCP IP acquistion)
- */
-#ifndef LWIP_NETIF_STATUS_CALLBACK
-#define LWIP_NETIF_STATUS_CALLBACK 0
-#endif
-
-/**
- * LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface
- * whenever the link changes (i.e., link down)
- */
-#ifndef LWIP_NETIF_LINK_CALLBACK
-#define LWIP_NETIF_LINK_CALLBACK 0
-#endif
-
-/**
- * LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table
- * indices) in struct netif. TCP and UDP can make use of this to prevent
- * scanning the ARP table for every sent packet. While this is faster for big
- * ARP tables or many concurrent connections, it might be counterproductive
- * if you have a tiny ARP table or if there never are concurrent connections.
- */
-#ifndef LWIP_NETIF_HWADDRHINT
-#define LWIP_NETIF_HWADDRHINT 0
-#endif
-
-/**
- * LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP
- * address equal to the netif IP address, looping them back up the stack.
- */
-#ifndef LWIP_NETIF_LOOPBACK
-#define LWIP_NETIF_LOOPBACK 0
-#endif
-
-/**
- * LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback
- * sending for each netif (0 = disabled)
- */
-#ifndef LWIP_LOOPBACK_MAX_PBUFS
-#define LWIP_LOOPBACK_MAX_PBUFS 0
-#endif
-
-/**
- * LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in
- * the system, as netifs must change how they behave depending on this setting
- * for the LWIP_NETIF_LOOPBACK option to work.
- * Setting this is needed to avoid reentering non-reentrant functions like
- * tcp_input().
- * LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a
- * multithreaded environment like tcpip.c. In this case, netif->input()
- * is called directly.
- * LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup.
- * The packets are put on a list and netif_poll() must be called in
- * the main application loop.
- */
-#ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING
-#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
-#endif
-
-/**
- * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data
- * to be sent into one single pbuf. This is for compatibility with DMA-enabled
- * MACs that do not support scatter-gather.
- * Beware that this might involve CPU-memcpy before transmitting that would not
- * be needed without this flag! Use this only if you need to!
- *
- * @todo: TCP and IP-frag do not work with this, yet:
- */
-#ifndef LWIP_NETIF_TX_SINGLE_PBUF
-#define LWIP_NETIF_TX_SINGLE_PBUF 0
-#endif /* LWIP_NETIF_TX_SINGLE_PBUF */
-
-/*
- ------------------------------------
- ---------- LOOPIF options ----------
- ------------------------------------
-*/
-/**
- * LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1) and loopif.c
- */
-#ifndef LWIP_HAVE_LOOPIF
-#define LWIP_HAVE_LOOPIF 0
-#endif
-
-/*
- ------------------------------------
- ---------- SLIPIF options ----------
- ------------------------------------
-*/
-/**
- * LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c
- */
-#ifndef LWIP_HAVE_SLIPIF
-#define LWIP_HAVE_SLIPIF 0
-#endif
-
-/*
- ------------------------------------
- ---------- Thread options ----------
- ------------------------------------
-*/
-/**
- * TCPIP_THREAD_NAME: The name assigned to the main tcpip thread.
- */
-#ifndef TCPIP_THREAD_NAME
-#define TCPIP_THREAD_NAME "tcpip_thread"
-#endif
-
-/**
- * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread.
- * The stack size value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef TCPIP_THREAD_STACKSIZE
-#define TCPIP_THREAD_STACKSIZE 0
-#endif
-
-/**
- * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread.
- * The priority value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef TCPIP_THREAD_PRIO
-#define TCPIP_THREAD_PRIO 1
-#endif
-
-/**
- * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages
- * The queue size value itself is platform-dependent, but is passed to
- * sys_mbox_new() when tcpip_init is called.
- */
-#ifndef TCPIP_MBOX_SIZE
-#define TCPIP_MBOX_SIZE 0
-#endif
-
-/**
- * SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread.
- */
-#ifndef SLIPIF_THREAD_NAME
-#define SLIPIF_THREAD_NAME "slipif_loop"
-#endif
-
-/**
- * SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread.
- * The stack size value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef SLIPIF_THREAD_STACKSIZE
-#define SLIPIF_THREAD_STACKSIZE 0
-#endif
-
-/**
- * SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread.
- * The priority value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef SLIPIF_THREAD_PRIO
-#define SLIPIF_THREAD_PRIO 1
-#endif
-
-/**
- * PPP_THREAD_NAME: The name assigned to the pppMain thread.
- */
-#ifndef PPP_THREAD_NAME
-#define PPP_THREAD_NAME "pppMain"
-#endif
-
-/**
- * PPP_THREAD_STACKSIZE: The stack size used by the pppMain thread.
- * The stack size value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef PPP_THREAD_STACKSIZE
-#define PPP_THREAD_STACKSIZE 0
-#endif
-
-/**
- * PPP_THREAD_PRIO: The priority assigned to the pppMain thread.
- * The priority value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef PPP_THREAD_PRIO
-#define PPP_THREAD_PRIO 1
-#endif
-
-/**
- * DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread.
- */
-#ifndef DEFAULT_THREAD_NAME
-#define DEFAULT_THREAD_NAME "lwIP"
-#endif
-
-/**
- * DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread.
- * The stack size value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef DEFAULT_THREAD_STACKSIZE
-#define DEFAULT_THREAD_STACKSIZE 0
-#endif
-
-/**
- * DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread.
- * The priority value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#ifndef DEFAULT_THREAD_PRIO
-#define DEFAULT_THREAD_PRIO 1
-#endif
-
-/**
- * DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
- * NETCONN_RAW. The queue size value itself is platform-dependent, but is passed
- * to sys_mbox_new() when the recvmbox is created.
- */
-#ifndef DEFAULT_RAW_RECVMBOX_SIZE
-#define DEFAULT_RAW_RECVMBOX_SIZE 0
-#endif
-
-/**
- * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
- * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed
- * to sys_mbox_new() when the recvmbox is created.
- */
-#ifndef DEFAULT_UDP_RECVMBOX_SIZE
-#define DEFAULT_UDP_RECVMBOX_SIZE 0
-#endif
-
-/**
- * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
- * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed
- * to sys_mbox_new() when the recvmbox is created.
- */
-#ifndef DEFAULT_TCP_RECVMBOX_SIZE
-#define DEFAULT_TCP_RECVMBOX_SIZE 0
-#endif
-
-/**
- * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections.
- * The queue size value itself is platform-dependent, but is passed to
- * sys_mbox_new() when the acceptmbox is created.
- */
-#ifndef DEFAULT_ACCEPTMBOX_SIZE
-#define DEFAULT_ACCEPTMBOX_SIZE 0
-#endif
-
-/*
- ----------------------------------------------
- ---------- Sequential layer options ----------
- ----------------------------------------------
-*/
-/**
- * LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!)
- * Don't use it if you're not an active lwIP project member
- */
-#ifndef LWIP_TCPIP_CORE_LOCKING
-#define LWIP_TCPIP_CORE_LOCKING 0
-#endif
-
-/**
- * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c)
- */
-#ifndef LWIP_NETCONN
-#define LWIP_NETCONN 1
-#endif
-
-/*
- ------------------------------------
- ---------- Socket options ----------
- ------------------------------------
-*/
-/**
- * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)
- */
-#ifndef LWIP_SOCKET
-#define LWIP_SOCKET 1
-#endif
-
-/**
- * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
- * (only used if you use sockets.c)
- */
-#ifndef LWIP_COMPAT_SOCKETS
-#define LWIP_COMPAT_SOCKETS 1
-#endif
-
-/**
- * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names.
- * Disable this option if you use a POSIX operating system that uses the same
- * names (read, write & close). (only used if you use sockets.c)
- */
-#ifndef LWIP_POSIX_SOCKETS_IO_NAMES
-#define LWIP_POSIX_SOCKETS_IO_NAMES 1
-#endif
-
-/**
- * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT
- * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set
- * in seconds. (does not require sockets.c, and will affect tcp.c)
- */
-#ifndef LWIP_TCP_KEEPALIVE
-#define LWIP_TCP_KEEPALIVE 1
-#endif
-
-/**
- * LWIP_SO_RCVTIMEO==1: Enable SO_RCVTIMEO processing.
- */
-#ifndef LWIP_SO_RCVTIMEO
-#define LWIP_SO_RCVTIMEO 0
-#endif
-
-/**
- * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
- */
-#ifndef LWIP_SO_RCVBUF
-#define LWIP_SO_RCVBUF 0
-#endif
-
-/**
- * If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.
- */
-#ifndef RECV_BUFSIZE_DEFAULT
-#define RECV_BUFSIZE_DEFAULT INT_MAX
-#endif
-
-/**
- * SO_REUSE==1: Enable SO_REUSEADDR and SO_REUSEPORT options. DO NOT USE!
- */
-#ifndef SO_REUSE
-#define SO_REUSE 0
-#endif
-
-/*
- ----------------------------------------
- ---------- Statistics options ----------
- ----------------------------------------
-*/
-/**
- * LWIP_STATS==1: Enable statistics collection in lwip_stats.
- */
-#ifndef LWIP_STATS
-#define LWIP_STATS 1
-#endif
-
-#if LWIP_STATS
-
-/**
- * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions.
- */
-#ifndef LWIP_STATS_DISPLAY
-#define LWIP_STATS_DISPLAY 0
-#endif
-
-/**
- * LINK_STATS==1: Enable link stats.
- */
-#ifndef LINK_STATS
-#define LINK_STATS 1
-#endif
-
-/**
- * ETHARP_STATS==1: Enable etharp stats.
- */
-#ifndef ETHARP_STATS
-#define ETHARP_STATS (LWIP_ARP)
-#endif
-
-/**
- * IP_STATS==1: Enable IP stats.
- */
-#ifndef IP_STATS
-#define IP_STATS 1
-#endif
-
-/**
- * IPFRAG_STATS==1: Enable IP fragmentation stats. Default is
- * on if using either frag or reass.
- */
-#ifndef IPFRAG_STATS
-#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
-#endif
-
-/**
- * ICMP_STATS==1: Enable ICMP stats.
- */
-#ifndef ICMP_STATS
-#define ICMP_STATS 1
-#endif
-
-/**
- * IGMP_STATS==1: Enable IGMP stats.
- */
-#ifndef IGMP_STATS
-#define IGMP_STATS (LWIP_IGMP)
-#endif
-
-/**
- * UDP_STATS==1: Enable UDP stats. Default is on if
- * UDP enabled, otherwise off.
- */
-#ifndef UDP_STATS
-#define UDP_STATS (LWIP_UDP)
-#endif
-
-/**
- * TCP_STATS==1: Enable TCP stats. Default is on if TCP
- * enabled, otherwise off.
- */
-#ifndef TCP_STATS
-#define TCP_STATS (LWIP_TCP)
-#endif
-
-/**
- * MEM_STATS==1: Enable mem.c stats.
- */
-#ifndef MEM_STATS
-#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
-#endif
-
-/**
- * MEMP_STATS==1: Enable memp.c pool stats.
- */
-#ifndef MEMP_STATS
-#define MEMP_STATS (MEMP_MEM_MALLOC == 0)
-#endif
-
-/**
- * SYS_STATS==1: Enable system stats (sem and mbox counts, etc).
- */
-#ifndef SYS_STATS
-#define SYS_STATS (NO_SYS == 0)
-#endif
-
-#else
-
-#define LINK_STATS 0
-#define IP_STATS 0
-#define IPFRAG_STATS 0
-#define ICMP_STATS 0
-#define IGMP_STATS 0
-#define UDP_STATS 0
-#define TCP_STATS 0
-#define MEM_STATS 0
-#define MEMP_STATS 0
-#define SYS_STATS 0
-#define LWIP_STATS_DISPLAY 0
-
-#endif /* LWIP_STATS */
-
-/*
- ---------------------------------
- ---------- PPP options ----------
- ---------------------------------
-*/
-/**
- * PPP_SUPPORT==1: Enable PPP.
- */
-#ifndef PPP_SUPPORT
-#define PPP_SUPPORT 0
-#endif
-
-/**
- * PPPOE_SUPPORT==1: Enable PPP Over Ethernet
- */
-#ifndef PPPOE_SUPPORT
-#define PPPOE_SUPPORT 0
-#endif
-
-/**
- * PPPOS_SUPPORT==1: Enable PPP Over Serial
- */
-#ifndef PPPOS_SUPPORT
-#define PPPOS_SUPPORT PPP_SUPPORT
-#endif
-
-#if PPP_SUPPORT
-
-/**
- * NUM_PPP: Max PPP sessions.
- */
-#ifndef NUM_PPP
-#define NUM_PPP 1
-#endif
-
-/**
- * PAP_SUPPORT==1: Support PAP.
- */
-#ifndef PAP_SUPPORT
-#define PAP_SUPPORT 0
-#endif
-
-/**
- * CHAP_SUPPORT==1: Support CHAP.
- */
-#ifndef CHAP_SUPPORT
-#define CHAP_SUPPORT 0
-#endif
-
-/**
- * MSCHAP_SUPPORT==1: Support MSCHAP. CURRENTLY NOT SUPPORTED! DO NOT SET!
- */
-#ifndef MSCHAP_SUPPORT
-#define MSCHAP_SUPPORT 0
-#endif
-
-/**
- * CBCP_SUPPORT==1: Support CBCP. CURRENTLY NOT SUPPORTED! DO NOT SET!
- */
-#ifndef CBCP_SUPPORT
-#define CBCP_SUPPORT 0
-#endif
-
-/**
- * CCP_SUPPORT==1: Support CCP. CURRENTLY NOT SUPPORTED! DO NOT SET!
- */
-#ifndef CCP_SUPPORT
-#define CCP_SUPPORT 0
-#endif
-
-/**
- * VJ_SUPPORT==1: Support VJ header compression.
- */
-#ifndef VJ_SUPPORT
-#define VJ_SUPPORT 0
-#endif
-
-/**
- * MD5_SUPPORT==1: Support MD5 (see also CHAP).
- */
-#ifndef MD5_SUPPORT
-#define MD5_SUPPORT 0
-#endif
-
-/*
- * Timeouts
- */
-#ifndef FSM_DEFTIMEOUT
-#define FSM_DEFTIMEOUT 6 /* Timeout time in seconds */
-#endif
-
-#ifndef FSM_DEFMAXTERMREQS
-#define FSM_DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */
-#endif
-
-#ifndef FSM_DEFMAXCONFREQS
-#define FSM_DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */
-#endif
-
-#ifndef FSM_DEFMAXNAKLOOPS
-#define FSM_DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */
-#endif
-
-#ifndef UPAP_DEFTIMEOUT
-#define UPAP_DEFTIMEOUT 6 /* Timeout (seconds) for retransmitting req */
-#endif
-
-#ifndef UPAP_DEFREQTIME
-#define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */
-#endif
-
-#ifndef CHAP_DEFTIMEOUT
-#define CHAP_DEFTIMEOUT 6 /* Timeout time in seconds */
-#endif
-
-#ifndef CHAP_DEFTRANSMITS
-#define CHAP_DEFTRANSMITS 10 /* max # times to send challenge */
-#endif
-
-/* Interval in seconds between keepalive echo requests, 0 to disable. */
-#ifndef LCP_ECHOINTERVAL
-#define LCP_ECHOINTERVAL 0
-#endif
-
-/* Number of unanswered echo requests before failure. */
-#ifndef LCP_MAXECHOFAILS
-#define LCP_MAXECHOFAILS 3
-#endif
-
-/* Max Xmit idle time (in jiffies) before resend flag char. */
-#ifndef PPP_MAXIDLEFLAG
-#define PPP_MAXIDLEFLAG 100
-#endif
-
-/*
- * Packet sizes
- *
- * Note - lcp shouldn't be allowed to negotiate stuff outside these
- * limits. See lcp.h in the pppd directory.
- * (XXX - these constants should simply be shared by lcp.c instead
- * of living in lcp.h)
- */
-#define PPP_MTU 1500 /* Default MTU (size of Info field) */
-#ifndef PPP_MAXMTU
-/* #define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) */
-#define PPP_MAXMTU 1500 /* Largest MTU we allow */
-#endif
-#define PPP_MINMTU 64
-#define PPP_MRU 1500 /* default MRU = max length of info field */
-#define PPP_MAXMRU 1500 /* Largest MRU we allow */
-#ifndef PPP_DEFMRU
-#define PPP_DEFMRU 296 /* Try for this */
-#endif
-#define PPP_MINMRU 128 /* No MRUs below this */
-
-#ifndef MAXNAMELEN
-#define MAXNAMELEN 256 /* max length of hostname or name for auth */
-#endif
-#ifndef MAXSECRETLEN
-#define MAXSECRETLEN 256 /* max length of password or secret */
-#endif
-
-#endif /* PPP_SUPPORT */
-
-/*
- --------------------------------------
- ---------- Checksum options ----------
- --------------------------------------
-*/
-/**
- * CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.
- */
-#ifndef CHECKSUM_GEN_IP
-#define CHECKSUM_GEN_IP 1
-#endif
-
-/**
- * CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.
- */
-#ifndef CHECKSUM_GEN_UDP
-#define CHECKSUM_GEN_UDP 1
-#endif
-
-/**
- * CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.
- */
-#ifndef CHECKSUM_GEN_TCP
-#define CHECKSUM_GEN_TCP 1
-#endif
-
-/**
- * CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.
- */
-#ifndef CHECKSUM_CHECK_IP
-#define CHECKSUM_CHECK_IP 1
-#endif
-
-/**
- * CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.
- */
-#ifndef CHECKSUM_CHECK_UDP
-#define CHECKSUM_CHECK_UDP 1
-#endif
-
-/**
- * CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.
- */
-#ifndef CHECKSUM_CHECK_TCP
-#define CHECKSUM_CHECK_TCP 1
-#endif
-
-/*
- ---------------------------------------
- ---------- Debugging options ----------
- ---------------------------------------
-*/
-/**
- * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is
- * compared against this value. If it is smaller, then debugging
- * messages are written.
- */
-#ifndef LWIP_DBG_MIN_LEVEL
-#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
-#endif
-
-/**
- * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable
- * debug messages of certain types.
- */
-#ifndef LWIP_DBG_TYPES_ON
-#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
-#endif
-
-/**
- * ETHARP_DEBUG: Enable debugging in etharp.c.
- */
-#ifndef ETHARP_DEBUG
-#define ETHARP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * NETIF_DEBUG: Enable debugging in netif.c.
- */
-#ifndef NETIF_DEBUG
-#define NETIF_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * PBUF_DEBUG: Enable debugging in pbuf.c.
- */
-#ifndef PBUF_DEBUG
-#define PBUF_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * API_LIB_DEBUG: Enable debugging in api_lib.c.
- */
-#ifndef API_LIB_DEBUG
-#define API_LIB_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * API_MSG_DEBUG: Enable debugging in api_msg.c.
- */
-#ifndef API_MSG_DEBUG
-#define API_MSG_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * SOCKETS_DEBUG: Enable debugging in sockets.c.
- */
-#ifndef SOCKETS_DEBUG
-#define SOCKETS_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * ICMP_DEBUG: Enable debugging in icmp.c.
- */
-#ifndef ICMP_DEBUG
-#define ICMP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * IGMP_DEBUG: Enable debugging in igmp.c.
- */
-#ifndef IGMP_DEBUG
-#define IGMP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * INET_DEBUG: Enable debugging in inet.c.
- */
-#ifndef INET_DEBUG
-#define INET_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * IP_DEBUG: Enable debugging for IP.
- */
-#ifndef IP_DEBUG
-#define IP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass.
- */
-#ifndef IP_REASS_DEBUG
-#define IP_REASS_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * RAW_DEBUG: Enable debugging in raw.c.
- */
-#ifndef RAW_DEBUG
-#define RAW_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * MEM_DEBUG: Enable debugging in mem.c.
- */
-#ifndef MEM_DEBUG
-#define MEM_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * MEMP_DEBUG: Enable debugging in memp.c.
- */
-#ifndef MEMP_DEBUG
-#define MEMP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * SYS_DEBUG: Enable debugging in sys.c.
- */
-#ifndef SYS_DEBUG
-#define SYS_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_DEBUG: Enable debugging for TCP.
- */
-#ifndef TCP_DEBUG
-#define TCP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug.
- */
-#ifndef TCP_INPUT_DEBUG
-#define TCP_INPUT_DEBUG LWIP_DBG_ON
-#endif
-
-/**
- * TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit.
- */
-#ifndef TCP_FR_DEBUG
-#define TCP_FR_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_RTO_DEBUG: Enable debugging in TCP for retransmit
- * timeout.
- */
-#ifndef TCP_RTO_DEBUG
-#define TCP_RTO_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_CWND_DEBUG: Enable debugging for TCP congestion window.
- */
-#ifndef TCP_CWND_DEBUG
-#define TCP_CWND_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating.
- */
-#ifndef TCP_WND_DEBUG
-#define TCP_WND_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions.
- */
-#ifndef TCP_OUTPUT_DEBUG
-#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_RST_DEBUG: Enable debugging for TCP with the RST message.
- */
-#ifndef TCP_RST_DEBUG
-#define TCP_RST_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths.
- */
-#ifndef TCP_QLEN_DEBUG
-#define TCP_QLEN_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * UDP_DEBUG: Enable debugging in UDP.
- */
-#ifndef UDP_DEBUG
-#define UDP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * TCPIP_DEBUG: Enable debugging in tcpip.c.
- */
-#ifndef TCPIP_DEBUG
-#define TCPIP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * PPP_DEBUG: Enable debugging for PPP.
- */
-#ifndef PPP_DEBUG
-#define PPP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * SLIP_DEBUG: Enable debugging in slipif.c.
- */
-#ifndef SLIP_DEBUG
-#define SLIP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * DHCP_DEBUG: Enable debugging in dhcp.c.
- */
-#ifndef DHCP_DEBUG
-#define DHCP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * AUTOIP_DEBUG: Enable debugging in autoip.c.
- */
-#ifndef AUTOIP_DEBUG
-#define AUTOIP_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * SNMP_MSG_DEBUG: Enable debugging for SNMP messages.
- */
-#ifndef SNMP_MSG_DEBUG
-#define SNMP_MSG_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs.
- */
-#ifndef SNMP_MIB_DEBUG
-#define SNMP_MIB_DEBUG LWIP_DBG_OFF
-#endif
-
-/**
- * DNS_DEBUG: Enable debugging for DNS.
- */
-#ifndef DNS_DEBUG
-#define DNS_DEBUG LWIP_DBG_OFF
-#endif
-
-#endif /* __LWIP_OPT_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/pbuf.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/pbuf.h
deleted file mode 100644
index 8ca61b1..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/pbuf.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#ifndef __LWIP_PBUF_H__
-#define __LWIP_PBUF_H__
-
-#include "lwip/opt.h"
-#include "lwip/err.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define PBUF_TRANSPORT_HLEN 20
-#define PBUF_IP_HLEN 20
-
-typedef enum {
- PBUF_TRANSPORT,
- PBUF_IP,
- PBUF_LINK,
- PBUF_RAW
-} pbuf_layer;
-
-typedef enum {
- PBUF_RAM, /* pbuf data is stored in RAM */
- PBUF_ROM, /* pbuf data is stored in ROM */
- PBUF_REF, /* pbuf comes from the pbuf pool */
- PBUF_POOL /* pbuf payload refers to RAM */
-} pbuf_type;
-
-
-/** indicates this packet's data should be immediately passed to the application */
-#define PBUF_FLAG_PUSH 0x01U
-
-struct pbuf {
- /** next pbuf in singly linked pbuf chain */
- struct pbuf *next;
-
- /** pointer to the actual data in the buffer */
- void *payload;
-
- /**
- * total length of this buffer and all next buffers in chain
- * belonging to the same packet.
- *
- * For non-queue packet chains this is the invariant:
- * p->tot_len == p->len + (p->next? p->next->tot_len: 0)
- */
- u16_t tot_len;
-
- /** length of this buffer */
- u16_t len;
-
- /** pbuf_type as u8_t instead of enum to save space */
- u8_t /*pbuf_type*/ type;
-
- /** misc flags */
- u8_t flags;
-
- /**
- * the reference count always equals the number of pointers
- * that refer to this pbuf. This can be pointers from an application,
- * the stack itself, or pbuf->next pointers from a chain.
- */
- u16_t ref;
-
-};
-
-/* Initializes the pbuf module. This call is empty for now, but may not be in future. */
-#define pbuf_init()
-
-struct pbuf *pbuf_alloc(pbuf_layer l, u16_t size, pbuf_type type);
-void pbuf_realloc(struct pbuf *p, u16_t size);
-u8_t pbuf_header(struct pbuf *p, s16_t header_size);
-void pbuf_ref(struct pbuf *p);
-void pbuf_ref_chain(struct pbuf *p);
-u8_t pbuf_free(struct pbuf *p);
-u8_t pbuf_clen(struct pbuf *p);
-void pbuf_cat(struct pbuf *head, struct pbuf *tail);
-void pbuf_chain(struct pbuf *head, struct pbuf *tail);
-struct pbuf *pbuf_dechain(struct pbuf *p);
-err_t pbuf_copy(struct pbuf *p_to, struct pbuf *p_from);
-u16_t pbuf_copy_partial(struct pbuf *p, void *dataptr, u16_t len, u16_t offset);
-err_t pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len);
-struct pbuf *pbuf_coalesce(struct pbuf *p, pbuf_layer layer);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_PBUF_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/raw.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/raw.h
deleted file mode 100644
index 545c433..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/raw.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_RAW_H__
-#define __LWIP_RAW_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_RAW /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/pbuf.h"
-#include "lwip/inet.h"
-#include "lwip/ip.h"
-#include "lwip/ip_addr.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct raw_pcb {
-/* Common members of all PCB types */
- IP_PCB;
-
- struct raw_pcb *next;
-
- u8_t protocol;
-
- /* receive callback function
- * @param arg user supplied argument (raw_pcb.recv_arg)
- * @param pcb the raw_pcb which received data
- * @param p the packet buffer that was received
- * @param addr the remote IP address from which the packet was received
- * @return 1 if the packet was 'eaten' (aka. deleted),
- * 0 if the packet lives on
- * If returning 1, the callback is responsible for freeing the pbuf
- * if it's not used any more.
- */
- u8_t (* recv)(void *arg, struct raw_pcb *pcb, struct pbuf *p,
- struct ip_addr *addr);
- /* user-supplied argument for the recv callback */
- void *recv_arg;
-};
-
-/* The following functions is the application layer interface to the
- RAW code. */
-struct raw_pcb * raw_new (u8_t proto);
-void raw_remove (struct raw_pcb *pcb);
-err_t raw_bind (struct raw_pcb *pcb, struct ip_addr *ipaddr);
-err_t raw_connect (struct raw_pcb *pcb, struct ip_addr *ipaddr);
-
-void raw_recv (struct raw_pcb *pcb,
- u8_t (* recv)(void *arg, struct raw_pcb *pcb,
- struct pbuf *p,
- struct ip_addr *addr),
- void *recv_arg);
-err_t raw_sendto (struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *ipaddr);
-err_t raw_send (struct raw_pcb *pcb, struct pbuf *p);
-
-/* The following functions are the lower layer interface to RAW. */
-u8_t raw_input (struct pbuf *p, struct netif *inp);
-#define raw_init() /* Compatibility define, not init needed. */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_RAW */
-
-#endif /* __LWIP_RAW_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sio.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sio.h
deleted file mode 100644
index 10eabcf..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sio.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- */
-
-/*
- * This is the interface to the platform specific serial IO module
- * It needs to be implemented by those platforms which need SLIP or PPP
- */
-
-#ifndef __SIO_H__
-#define __SIO_H__
-
-#include "lwip/arch.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* If you want to define sio_fd_t elsewhere or differently,
- define this in your cc.h file. */
-#ifndef __sio_fd_t_defined
-typedef void * sio_fd_t;
-#endif
-
-/* The following functions can be defined to something else in your cc.h file
- or be implemented in your custom sio.c file. */
-
-#ifndef sio_open
-/**
- * Opens a serial device for communication.
- *
- * @param devnum device number
- * @return handle to serial device if successful, NULL otherwise
- */
-sio_fd_t sio_open(u8_t devnum);
-#endif
-
-#ifndef sio_send
-/**
- * Sends a single character to the serial device.
- *
- * @param c character to send
- * @param fd serial device handle
- *
- * @note This function will block until the character can be sent.
- */
-void sio_send(u8_t c, sio_fd_t fd);
-#endif
-
-#ifndef sio_recv
-/**
- * Receives a single character from the serial device.
- *
- * @param fd serial device handle
- *
- * @note This function will block until a character is received.
- */
-u8_t sio_recv(sio_fd_t fd);
-#endif
-
-#ifndef sio_read
-/**
- * Reads from the serial device.
- *
- * @param fd serial device handle
- * @param data pointer to data buffer for receiving
- * @param len maximum length (in bytes) of data to receive
- * @return number of bytes actually received - may be 0 if aborted by sio_read_abort
- *
- * @note This function will block until data can be received. The blocking
- * can be cancelled by calling sio_read_abort().
- */
-u32_t sio_read(sio_fd_t fd, u8_t *data, u32_t len);
-#endif
-
-#ifndef sio_tryread
-/**
- * Tries to read from the serial device. Same as sio_read but returns
- * immediately if no data is available and never blocks.
- *
- * @param fd serial device handle
- * @param data pointer to data buffer for receiving
- * @param len maximum length (in bytes) of data to receive
- * @return number of bytes actually received
- */
-u32_t sio_tryread(sio_fd_t fd, u8_t *data, u32_t len);
-#endif
-
-#ifndef sio_write
-/**
- * Writes to the serial device.
- *
- * @param fd serial device handle
- * @param data pointer to data to send
- * @param len length (in bytes) of data to send
- * @return number of bytes actually sent
- *
- * @note This function will block until all data can be sent.
- */
-u32_t sio_write(sio_fd_t fd, u8_t *data, u32_t len);
-#endif
-
-#ifndef sio_read_abort
-/**
- * Aborts a blocking sio_read() call.
- *
- * @param fd serial device handle
- */
-void sio_read_abort(sio_fd_t fd);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __SIO_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp.h
deleted file mode 100644
index b87717f..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp.h
+++ /dev/null
@@ -1,366 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001, 2002 Leon Woestenberg <leon.woestenberg@axon.tv>
- * Copyright (c) 2001, 2002 Axon Digital Design B.V., The Netherlands.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Leon Woestenberg <leon.woestenberg@axon.tv>
- *
- */
-#ifndef __LWIP_SNMP_H__
-#define __LWIP_SNMP_H__
-
-#include "lwip/opt.h"
-#include "lwip/netif.h"
-#include "lwip/udp.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @see RFC1213, "MIB-II, 6. Definitions"
- */
-enum snmp_ifType {
- snmp_ifType_other=1, /* none of the following */
- snmp_ifType_regular1822,
- snmp_ifType_hdh1822,
- snmp_ifType_ddn_x25,
- snmp_ifType_rfc877_x25,
- snmp_ifType_ethernet_csmacd,
- snmp_ifType_iso88023_csmacd,
- snmp_ifType_iso88024_tokenBus,
- snmp_ifType_iso88025_tokenRing,
- snmp_ifType_iso88026_man,
- snmp_ifType_starLan,
- snmp_ifType_proteon_10Mbit,
- snmp_ifType_proteon_80Mbit,
- snmp_ifType_hyperchannel,
- snmp_ifType_fddi,
- snmp_ifType_lapb,
- snmp_ifType_sdlc,
- snmp_ifType_ds1, /* T-1 */
- snmp_ifType_e1, /* european equiv. of T-1 */
- snmp_ifType_basicISDN,
- snmp_ifType_primaryISDN, /* proprietary serial */
- snmp_ifType_propPointToPointSerial,
- snmp_ifType_ppp,
- snmp_ifType_softwareLoopback,
- snmp_ifType_eon, /* CLNP over IP [11] */
- snmp_ifType_ethernet_3Mbit,
- snmp_ifType_nsip, /* XNS over IP */
- snmp_ifType_slip, /* generic SLIP */
- snmp_ifType_ultra, /* ULTRA technologies */
- snmp_ifType_ds3, /* T-3 */
- snmp_ifType_sip, /* SMDS */
- snmp_ifType_frame_relay
-};
-
-#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */
-
-/** SNMP "sysuptime" Interval */
-#define SNMP_SYSUPTIME_INTERVAL 10
-
-/** fixed maximum length for object identifier type */
-#define LWIP_SNMP_OBJ_ID_LEN 32
-
-/** internal object identifier representation */
-struct snmp_obj_id
-{
- u8_t len;
- s32_t id[LWIP_SNMP_OBJ_ID_LEN];
-};
-
-/* system */
-void snmp_set_sysdesr(u8_t* str, u8_t* len);
-void snmp_set_sysobjid(struct snmp_obj_id *oid);
-void snmp_get_sysobjid_ptr(struct snmp_obj_id **oid);
-void snmp_inc_sysuptime(void);
-void snmp_add_sysuptime(u32_t value);
-void snmp_get_sysuptime(u32_t *value);
-void snmp_set_syscontact(u8_t *ocstr, u8_t *ocstrlen);
-void snmp_set_sysname(u8_t *ocstr, u8_t *ocstrlen);
-void snmp_set_syslocation(u8_t *ocstr, u8_t *ocstrlen);
-
-/* network interface */
-void snmp_add_ifinoctets(struct netif *ni, u32_t value);
-void snmp_inc_ifinucastpkts(struct netif *ni);
-void snmp_inc_ifinnucastpkts(struct netif *ni);
-void snmp_inc_ifindiscards(struct netif *ni);
-void snmp_add_ifoutoctets(struct netif *ni, u32_t value);
-void snmp_inc_ifoutucastpkts(struct netif *ni);
-void snmp_inc_ifoutnucastpkts(struct netif *ni);
-void snmp_inc_ifoutdiscards(struct netif *ni);
-void snmp_inc_iflist(void);
-void snmp_dec_iflist(void);
-
-/* ARP (for atTable and ipNetToMediaTable) */
-void snmp_insert_arpidx_tree(struct netif *ni, struct ip_addr *ip);
-void snmp_delete_arpidx_tree(struct netif *ni, struct ip_addr *ip);
-
-/* IP */
-void snmp_inc_ipinreceives(void);
-void snmp_inc_ipinhdrerrors(void);
-void snmp_inc_ipinaddrerrors(void);
-void snmp_inc_ipforwdatagrams(void);
-void snmp_inc_ipinunknownprotos(void);
-void snmp_inc_ipindiscards(void);
-void snmp_inc_ipindelivers(void);
-void snmp_inc_ipoutrequests(void);
-void snmp_inc_ipoutdiscards(void);
-void snmp_inc_ipoutnoroutes(void);
-void snmp_inc_ipreasmreqds(void);
-void snmp_inc_ipreasmoks(void);
-void snmp_inc_ipreasmfails(void);
-void snmp_inc_ipfragoks(void);
-void snmp_inc_ipfragfails(void);
-void snmp_inc_ipfragcreates(void);
-void snmp_inc_iproutingdiscards(void);
-void snmp_insert_ipaddridx_tree(struct netif *ni);
-void snmp_delete_ipaddridx_tree(struct netif *ni);
-void snmp_insert_iprteidx_tree(u8_t dflt, struct netif *ni);
-void snmp_delete_iprteidx_tree(u8_t dflt, struct netif *ni);
-
-/* ICMP */
-void snmp_inc_icmpinmsgs(void);
-void snmp_inc_icmpinerrors(void);
-void snmp_inc_icmpindestunreachs(void);
-void snmp_inc_icmpintimeexcds(void);
-void snmp_inc_icmpinparmprobs(void);
-void snmp_inc_icmpinsrcquenchs(void);
-void snmp_inc_icmpinredirects(void);
-void snmp_inc_icmpinechos(void);
-void snmp_inc_icmpinechoreps(void);
-void snmp_inc_icmpintimestamps(void);
-void snmp_inc_icmpintimestampreps(void);
-void snmp_inc_icmpinaddrmasks(void);
-void snmp_inc_icmpinaddrmaskreps(void);
-void snmp_inc_icmpoutmsgs(void);
-void snmp_inc_icmpouterrors(void);
-void snmp_inc_icmpoutdestunreachs(void);
-void snmp_inc_icmpouttimeexcds(void);
-void snmp_inc_icmpoutparmprobs(void);
-void snmp_inc_icmpoutsrcquenchs(void);
-void snmp_inc_icmpoutredirects(void);
-void snmp_inc_icmpoutechos(void);
-void snmp_inc_icmpoutechoreps(void);
-void snmp_inc_icmpouttimestamps(void);
-void snmp_inc_icmpouttimestampreps(void);
-void snmp_inc_icmpoutaddrmasks(void);
-void snmp_inc_icmpoutaddrmaskreps(void);
-
-/* TCP */
-void snmp_inc_tcpactiveopens(void);
-void snmp_inc_tcppassiveopens(void);
-void snmp_inc_tcpattemptfails(void);
-void snmp_inc_tcpestabresets(void);
-void snmp_inc_tcpinsegs(void);
-void snmp_inc_tcpoutsegs(void);
-void snmp_inc_tcpretranssegs(void);
-void snmp_inc_tcpinerrs(void);
-void snmp_inc_tcpoutrsts(void);
-
-/* UDP */
-void snmp_inc_udpindatagrams(void);
-void snmp_inc_udpnoports(void);
-void snmp_inc_udpinerrors(void);
-void snmp_inc_udpoutdatagrams(void);
-void snmp_insert_udpidx_tree(struct udp_pcb *pcb);
-void snmp_delete_udpidx_tree(struct udp_pcb *pcb);
-
-/* SNMP */
-void snmp_inc_snmpinpkts(void);
-void snmp_inc_snmpoutpkts(void);
-void snmp_inc_snmpinbadversions(void);
-void snmp_inc_snmpinbadcommunitynames(void);
-void snmp_inc_snmpinbadcommunityuses(void);
-void snmp_inc_snmpinasnparseerrs(void);
-void snmp_inc_snmpintoobigs(void);
-void snmp_inc_snmpinnosuchnames(void);
-void snmp_inc_snmpinbadvalues(void);
-void snmp_inc_snmpinreadonlys(void);
-void snmp_inc_snmpingenerrs(void);
-void snmp_add_snmpintotalreqvars(u8_t value);
-void snmp_add_snmpintotalsetvars(u8_t value);
-void snmp_inc_snmpingetrequests(void);
-void snmp_inc_snmpingetnexts(void);
-void snmp_inc_snmpinsetrequests(void);
-void snmp_inc_snmpingetresponses(void);
-void snmp_inc_snmpintraps(void);
-void snmp_inc_snmpouttoobigs(void);
-void snmp_inc_snmpoutnosuchnames(void);
-void snmp_inc_snmpoutbadvalues(void);
-void snmp_inc_snmpoutgenerrs(void);
-void snmp_inc_snmpoutgetrequests(void);
-void snmp_inc_snmpoutgetnexts(void);
-void snmp_inc_snmpoutsetrequests(void);
-void snmp_inc_snmpoutgetresponses(void);
-void snmp_inc_snmpouttraps(void);
-void snmp_get_snmpgrpid_ptr(struct snmp_obj_id **oid);
-void snmp_set_snmpenableauthentraps(u8_t *value);
-void snmp_get_snmpenableauthentraps(u8_t *value);
-
-/* LWIP_SNMP support not available */
-/* define everything to be empty */
-#else
-
-/* system */
-#define snmp_set_sysdesr(str, len)
-#define snmp_set_sysobjid(oid);
-#define snmp_get_sysobjid_ptr(oid)
-#define snmp_inc_sysuptime()
-#define snmp_add_sysuptime(value)
-#define snmp_get_sysuptime(value)
-#define snmp_set_syscontact(ocstr, ocstrlen);
-#define snmp_set_sysname(ocstr, ocstrlen);
-#define snmp_set_syslocation(ocstr, ocstrlen);
-
-/* network interface */
-#define snmp_add_ifinoctets(ni,value)
-#define snmp_inc_ifinucastpkts(ni)
-#define snmp_inc_ifinnucastpkts(ni)
-#define snmp_inc_ifindiscards(ni)
-#define snmp_add_ifoutoctets(ni,value)
-#define snmp_inc_ifoutucastpkts(ni)
-#define snmp_inc_ifoutnucastpkts(ni)
-#define snmp_inc_ifoutdiscards(ni)
-#define snmp_inc_iflist()
-#define snmp_dec_iflist()
-
-/* ARP */
-#define snmp_insert_arpidx_tree(ni,ip)
-#define snmp_delete_arpidx_tree(ni,ip)
-
-/* IP */
-#define snmp_inc_ipinreceives()
-#define snmp_inc_ipinhdrerrors()
-#define snmp_inc_ipinaddrerrors()
-#define snmp_inc_ipforwdatagrams()
-#define snmp_inc_ipinunknownprotos()
-#define snmp_inc_ipindiscards()
-#define snmp_inc_ipindelivers()
-#define snmp_inc_ipoutrequests()
-#define snmp_inc_ipoutdiscards()
-#define snmp_inc_ipoutnoroutes()
-#define snmp_inc_ipreasmreqds()
-#define snmp_inc_ipreasmoks()
-#define snmp_inc_ipreasmfails()
-#define snmp_inc_ipfragoks()
-#define snmp_inc_ipfragfails()
-#define snmp_inc_ipfragcreates()
-#define snmp_inc_iproutingdiscards()
-#define snmp_insert_ipaddridx_tree(ni)
-#define snmp_delete_ipaddridx_tree(ni)
-#define snmp_insert_iprteidx_tree(dflt, ni)
-#define snmp_delete_iprteidx_tree(dflt, ni)
-
-/* ICMP */
-#define snmp_inc_icmpinmsgs()
-#define snmp_inc_icmpinerrors()
-#define snmp_inc_icmpindestunreachs()
-#define snmp_inc_icmpintimeexcds()
-#define snmp_inc_icmpinparmprobs()
-#define snmp_inc_icmpinsrcquenchs()
-#define snmp_inc_icmpinredirects()
-#define snmp_inc_icmpinechos()
-#define snmp_inc_icmpinechoreps()
-#define snmp_inc_icmpintimestamps()
-#define snmp_inc_icmpintimestampreps()
-#define snmp_inc_icmpinaddrmasks()
-#define snmp_inc_icmpinaddrmaskreps()
-#define snmp_inc_icmpoutmsgs()
-#define snmp_inc_icmpouterrors()
-#define snmp_inc_icmpoutdestunreachs()
-#define snmp_inc_icmpouttimeexcds()
-#define snmp_inc_icmpoutparmprobs()
-#define snmp_inc_icmpoutsrcquenchs()
-#define snmp_inc_icmpoutredirects()
-#define snmp_inc_icmpoutechos()
-#define snmp_inc_icmpoutechoreps()
-#define snmp_inc_icmpouttimestamps()
-#define snmp_inc_icmpouttimestampreps()
-#define snmp_inc_icmpoutaddrmasks()
-#define snmp_inc_icmpoutaddrmaskreps()
-/* TCP */
-#define snmp_inc_tcpactiveopens()
-#define snmp_inc_tcppassiveopens()
-#define snmp_inc_tcpattemptfails()
-#define snmp_inc_tcpestabresets()
-#define snmp_inc_tcpinsegs()
-#define snmp_inc_tcpoutsegs()
-#define snmp_inc_tcpretranssegs()
-#define snmp_inc_tcpinerrs()
-#define snmp_inc_tcpoutrsts()
-
-/* UDP */
-#define snmp_inc_udpindatagrams()
-#define snmp_inc_udpnoports()
-#define snmp_inc_udpinerrors()
-#define snmp_inc_udpoutdatagrams()
-#define snmp_insert_udpidx_tree(pcb)
-#define snmp_delete_udpidx_tree(pcb)
-
-/* SNMP */
-#define snmp_inc_snmpinpkts()
-#define snmp_inc_snmpoutpkts()
-#define snmp_inc_snmpinbadversions()
-#define snmp_inc_snmpinbadcommunitynames()
-#define snmp_inc_snmpinbadcommunityuses()
-#define snmp_inc_snmpinasnparseerrs()
-#define snmp_inc_snmpintoobigs()
-#define snmp_inc_snmpinnosuchnames()
-#define snmp_inc_snmpinbadvalues()
-#define snmp_inc_snmpinreadonlys()
-#define snmp_inc_snmpingenerrs()
-#define snmp_add_snmpintotalreqvars(value)
-#define snmp_add_snmpintotalsetvars(value)
-#define snmp_inc_snmpingetrequests()
-#define snmp_inc_snmpingetnexts()
-#define snmp_inc_snmpinsetrequests()
-#define snmp_inc_snmpingetresponses()
-#define snmp_inc_snmpintraps()
-#define snmp_inc_snmpouttoobigs()
-#define snmp_inc_snmpoutnosuchnames()
-#define snmp_inc_snmpoutbadvalues()
-#define snmp_inc_snmpoutgenerrs()
-#define snmp_inc_snmpoutgetrequests()
-#define snmp_inc_snmpoutgetnexts()
-#define snmp_inc_snmpoutsetrequests()
-#define snmp_inc_snmpoutgetresponses()
-#define snmp_inc_snmpouttraps()
-#define snmp_get_snmpgrpid_ptr(oid)
-#define snmp_set_snmpenableauthentraps(value)
-#define snmp_get_snmpenableauthentraps(value)
-
-#endif /* LWIP_SNMP */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_SNMP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_asn1.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_asn1.h
deleted file mode 100644
index a40d5ef..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_asn1.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Abstract Syntax Notation One (ISO 8824, 8825) codec.
- */
-
-/*
- * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * Author: Christiaan Simons <christiaan.simons@axon.tv>
- */
-
-#ifndef __LWIP_SNMP_ASN1_H__
-#define __LWIP_SNMP_ASN1_H__
-
-#include "lwip/opt.h"
-#include "lwip/err.h"
-#include "lwip/pbuf.h"
-#include "lwip/snmp.h"
-
-#if LWIP_SNMP
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define SNMP_ASN1_UNIV (!0x80 | !0x40)
-#define SNMP_ASN1_APPLIC (!0x80 | 0x40)
-#define SNMP_ASN1_CONTXT ( 0x80 | !0x40)
-
-#define SNMP_ASN1_CONSTR (0x20)
-#define SNMP_ASN1_PRIMIT (!0x20)
-
-/* universal tags */
-#define SNMP_ASN1_INTEG 2
-#define SNMP_ASN1_OC_STR 4
-#define SNMP_ASN1_NUL 5
-#define SNMP_ASN1_OBJ_ID 6
-#define SNMP_ASN1_SEQ 16
-
-/* application specific (SNMP) tags */
-#define SNMP_ASN1_IPADDR 0 /* octet string size(4) */
-#define SNMP_ASN1_COUNTER 1 /* u32_t */
-#define SNMP_ASN1_GAUGE 2 /* u32_t */
-#define SNMP_ASN1_TIMETICKS 3 /* u32_t */
-#define SNMP_ASN1_OPAQUE 4 /* octet string */
-
-/* context specific (SNMP) tags */
-#define SNMP_ASN1_PDU_GET_REQ 0
-#define SNMP_ASN1_PDU_GET_NEXT_REQ 1
-#define SNMP_ASN1_PDU_GET_RESP 2
-#define SNMP_ASN1_PDU_SET_REQ 3
-#define SNMP_ASN1_PDU_TRAP 4
-
-err_t snmp_asn1_dec_type(struct pbuf *p, u16_t ofs, u8_t *type);
-err_t snmp_asn1_dec_length(struct pbuf *p, u16_t ofs, u8_t *octets_used, u16_t *length);
-err_t snmp_asn1_dec_u32t(struct pbuf *p, u16_t ofs, u16_t len, u32_t *value);
-err_t snmp_asn1_dec_s32t(struct pbuf *p, u16_t ofs, u16_t len, s32_t *value);
-err_t snmp_asn1_dec_oid(struct pbuf *p, u16_t ofs, u16_t len, struct snmp_obj_id *oid);
-err_t snmp_asn1_dec_raw(struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw);
-
-void snmp_asn1_enc_length_cnt(u16_t length, u8_t *octets_needed);
-void snmp_asn1_enc_u32t_cnt(u32_t value, u16_t *octets_needed);
-void snmp_asn1_enc_s32t_cnt(s32_t value, u16_t *octets_needed);
-void snmp_asn1_enc_oid_cnt(u8_t ident_len, s32_t *ident, u16_t *octets_needed);
-err_t snmp_asn1_enc_type(struct pbuf *p, u16_t ofs, u8_t type);
-err_t snmp_asn1_enc_length(struct pbuf *p, u16_t ofs, u16_t length);
-err_t snmp_asn1_enc_u32t(struct pbuf *p, u16_t ofs, u8_t octets_needed, u32_t value);
-err_t snmp_asn1_enc_s32t(struct pbuf *p, u16_t ofs, u8_t octets_needed, s32_t value);
-err_t snmp_asn1_enc_oid(struct pbuf *p, u16_t ofs, u8_t ident_len, s32_t *ident);
-err_t snmp_asn1_enc_raw(struct pbuf *p, u16_t ofs, u8_t raw_len, u8_t *raw);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_SNMP */
-
-#endif /* __LWIP_SNMP_ASN1_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_msg.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_msg.h
deleted file mode 100644
index 6e50a61..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_msg.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * SNMP Agent message handling structures.
- */
-
-/*
- * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * Author: Christiaan Simons <christiaan.simons@axon.tv>
- */
-
-#ifndef __LWIP_SNMP_MSG_H__
-#define __LWIP_SNMP_MSG_H__
-
-#include "lwip/opt.h"
-#include "lwip/snmp.h"
-#include "lwip/snmp_structs.h"
-
-#if LWIP_SNMP
-
-#if SNMP_PRIVATE_MIB
-#include "private_mib.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The listen port of the SNMP agent. Clients have to make their requests to
- this port. Most standard clients won't work if you change this! */
-#ifndef SNMP_IN_PORT
-#define SNMP_IN_PORT 161
-#endif
-/* The remote port the SNMP agent sends traps to. Most standard trap sinks won't
- work if you change this! */
-#ifndef SNMP_TRAP_PORT
-#define SNMP_TRAP_PORT 162
-#endif
-
-#define SNMP_ES_NOERROR 0
-#define SNMP_ES_TOOBIG 1
-#define SNMP_ES_NOSUCHNAME 2
-#define SNMP_ES_BADVALUE 3
-#define SNMP_ES_READONLY 4
-#define SNMP_ES_GENERROR 5
-
-#define SNMP_GENTRAP_COLDSTART 0
-#define SNMP_GENTRAP_WARMSTART 1
-#define SNMP_GENTRAP_AUTHFAIL 4
-#define SNMP_GENTRAP_ENTERPRISESPC 6
-
-struct snmp_varbind
-{
- /* next pointer, NULL for last in list */
- struct snmp_varbind *next;
- /* previous pointer, NULL for first in list */
- struct snmp_varbind *prev;
-
- /* object identifier length (in s32_t) */
- u8_t ident_len;
- /* object identifier array */
- s32_t *ident;
-
- /* object value ASN1 type */
- u8_t value_type;
- /* object value length (in u8_t) */
- u8_t value_len;
- /* object value */
- void *value;
-
- /* encoding varbind seq length length */
- u8_t seqlenlen;
- /* encoding object identifier length length */
- u8_t olenlen;
- /* encoding object value length length */
- u8_t vlenlen;
- /* encoding varbind seq length */
- u16_t seqlen;
- /* encoding object identifier length */
- u16_t olen;
- /* encoding object value length */
- u16_t vlen;
-};
-
-struct snmp_varbind_root
-{
- struct snmp_varbind *head;
- struct snmp_varbind *tail;
- /* number of variable bindings in list */
- u8_t count;
- /* encoding varbind-list seq length length */
- u8_t seqlenlen;
- /* encoding varbind-list seq length */
- u16_t seqlen;
-};
-
-/** output response message header length fields */
-struct snmp_resp_header_lengths
-{
- /* encoding error-index length length */
- u8_t erridxlenlen;
- /* encoding error-status length length */
- u8_t errstatlenlen;
- /* encoding request id length length */
- u8_t ridlenlen;
- /* encoding pdu length length */
- u8_t pdulenlen;
- /* encoding community length length */
- u8_t comlenlen;
- /* encoding version length length */
- u8_t verlenlen;
- /* encoding sequence length length */
- u8_t seqlenlen;
-
- /* encoding error-index length */
- u16_t erridxlen;
- /* encoding error-status length */
- u16_t errstatlen;
- /* encoding request id length */
- u16_t ridlen;
- /* encoding pdu length */
- u16_t pdulen;
- /* encoding community length */
- u16_t comlen;
- /* encoding version length */
- u16_t verlen;
- /* encoding sequence length */
- u16_t seqlen;
-};
-
-/** output response message header length fields */
-struct snmp_trap_header_lengths
-{
- /* encoding timestamp length length */
- u8_t tslenlen;
- /* encoding specific-trap length length */
- u8_t strplenlen;
- /* encoding generic-trap length length */
- u8_t gtrplenlen;
- /* encoding agent-addr length length */
- u8_t aaddrlenlen;
- /* encoding enterprise-id length length */
- u8_t eidlenlen;
- /* encoding pdu length length */
- u8_t pdulenlen;
- /* encoding community length length */
- u8_t comlenlen;
- /* encoding version length length */
- u8_t verlenlen;
- /* encoding sequence length length */
- u8_t seqlenlen;
-
- /* encoding timestamp length */
- u16_t tslen;
- /* encoding specific-trap length */
- u16_t strplen;
- /* encoding generic-trap length */
- u16_t gtrplen;
- /* encoding agent-addr length */
- u16_t aaddrlen;
- /* encoding enterprise-id length */
- u16_t eidlen;
- /* encoding pdu length */
- u16_t pdulen;
- /* encoding community length */
- u16_t comlen;
- /* encoding version length */
- u16_t verlen;
- /* encoding sequence length */
- u16_t seqlen;
-};
-
-/* Accepting new SNMP messages. */
-#define SNMP_MSG_EMPTY 0
-/* Search for matching object for variable binding. */
-#define SNMP_MSG_SEARCH_OBJ 1
-/* Perform SNMP operation on in-memory object.
- Pass-through states, for symmetry only. */
-#define SNMP_MSG_INTERNAL_GET_OBJDEF 2
-#define SNMP_MSG_INTERNAL_GET_VALUE 3
-#define SNMP_MSG_INTERNAL_SET_TEST 4
-#define SNMP_MSG_INTERNAL_GET_OBJDEF_S 5
-#define SNMP_MSG_INTERNAL_SET_VALUE 6
-/* Perform SNMP operation on object located externally.
- In theory this could be used for building a proxy agent.
- Practical use is for an enterprise spc. app. gateway. */
-#define SNMP_MSG_EXTERNAL_GET_OBJDEF 7
-#define SNMP_MSG_EXTERNAL_GET_VALUE 8
-#define SNMP_MSG_EXTERNAL_SET_TEST 9
-#define SNMP_MSG_EXTERNAL_GET_OBJDEF_S 10
-#define SNMP_MSG_EXTERNAL_SET_VALUE 11
-
-#define SNMP_COMMUNITY_STR_LEN 64
-struct snmp_msg_pstat
-{
- /* lwIP local port (161) binding */
- struct udp_pcb *pcb;
- /* source IP address */
- struct ip_addr sip;
- /* source UDP port */
- u16_t sp;
- /* request type */
- u8_t rt;
- /* request ID */
- s32_t rid;
- /* error status */
- s32_t error_status;
- /* error index */
- s32_t error_index;
- /* community name (zero terminated) */
- u8_t community[SNMP_COMMUNITY_STR_LEN + 1];
- /* community string length (exclusive zero term) */
- u8_t com_strlen;
- /* one out of MSG_EMPTY, MSG_DEMUX, MSG_INTERNAL, MSG_EXTERNAL_x */
- u8_t state;
- /* saved arguments for MSG_EXTERNAL_x */
- struct mib_external_node *ext_mib_node;
- struct snmp_name_ptr ext_name_ptr;
- struct obj_def ext_object_def;
- struct snmp_obj_id ext_oid;
- /* index into input variable binding list */
- u8_t vb_idx;
- /* ptr into input variable binding list */
- struct snmp_varbind *vb_ptr;
- /* list of variable bindings from input */
- struct snmp_varbind_root invb;
- /* list of variable bindings to output */
- struct snmp_varbind_root outvb;
- /* output response lengths used in ASN encoding */
- struct snmp_resp_header_lengths rhl;
-};
-
-struct snmp_msg_trap
-{
- /* lwIP local port (161) binding */
- struct udp_pcb *pcb;
- /* destination IP address in network order */
- struct ip_addr dip;
-
- /* source enterprise ID (sysObjectID) */
- struct snmp_obj_id *enterprise;
- /* source IP address, raw network order format */
- u8_t sip_raw[4];
- /* generic trap code */
- u32_t gen_trap;
- /* specific trap code */
- u32_t spc_trap;
- /* timestamp */
- u32_t ts;
- /* list of variable bindings to output */
- struct snmp_varbind_root outvb;
- /* output trap lengths used in ASN encoding */
- struct snmp_trap_header_lengths thl;
-};
-
-/** Agent Version constant, 0 = v1 oddity */
-extern const s32_t snmp_version;
-/** Agent default "public" community string */
-extern const char snmp_publiccommunity[7];
-
-extern struct snmp_msg_trap trap_msg;
-
-/** Agent setup, start listening to port 161. */
-void snmp_init(void);
-void snmp_trap_dst_enable(u8_t dst_idx, u8_t enable);
-void snmp_trap_dst_ip_set(u8_t dst_idx, struct ip_addr *dst);
-
-/** Varbind-list functions. */
-struct snmp_varbind* snmp_varbind_alloc(struct snmp_obj_id *oid, u8_t type, u8_t len);
-void snmp_varbind_free(struct snmp_varbind *vb);
-void snmp_varbind_list_free(struct snmp_varbind_root *root);
-void snmp_varbind_tail_add(struct snmp_varbind_root *root, struct snmp_varbind *vb);
-struct snmp_varbind* snmp_varbind_tail_remove(struct snmp_varbind_root *root);
-
-/** Handle an internal (recv) or external (private response) event. */
-void snmp_msg_event(u8_t request_id);
-err_t snmp_send_response(struct snmp_msg_pstat *m_stat);
-err_t snmp_send_trap(s8_t generic_trap, struct snmp_obj_id *eoid, s32_t specific_trap);
-void snmp_coldstart_trap(void);
-void snmp_authfail_trap(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_SNMP */
-
-#endif /* __LWIP_SNMP_MSG_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_structs.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_structs.h
deleted file mode 100644
index 93f4ea3..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_structs.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Generic MIB tree structures.
- *
- * @todo namespace prefixes
- */
-
-/*
- * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * Author: Christiaan Simons <christiaan.simons@axon.tv>
- */
-
-#ifndef __LWIP_SNMP_STRUCTS_H__
-#define __LWIP_SNMP_STRUCTS_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/snmp.h"
-
-#if SNMP_PRIVATE_MIB
-#include "private_mib.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MIB object instance */
-#define MIB_OBJECT_NONE 0
-#define MIB_OBJECT_SCALAR 1
-#define MIB_OBJECT_TAB 2
-
-/* MIB object access */
-#define MIB_OBJECT_READ_ONLY 0
-#define MIB_OBJECT_READ_WRITE 1
-#define MIB_OBJECT_WRITE_ONLY 2
-#define MIB_OBJECT_NOT_ACCESSIBLE 3
-
-/** object definition returned by (get_object_def)() */
-struct obj_def
-{
- /* MIB_OBJECT_NONE (0), MIB_OBJECT_SCALAR (1), MIB_OBJECT_TAB (2) */
- u8_t instance;
- /* 0 read-only, 1 read-write, 2 write-only, 3 not-accessible */
- u8_t access;
- /* ASN type for this object */
- u8_t asn_type;
- /* value length (host length) */
- u16_t v_len;
- /* length of instance part of supplied object identifier */
- u8_t id_inst_len;
- /* instance part of supplied object identifier */
- s32_t *id_inst_ptr;
-};
-
-struct snmp_name_ptr
-{
- u8_t ident_len;
- s32_t *ident;
-};
-
-/** MIB const scalar (.0) node */
-#define MIB_NODE_SC 0x01
-/** MIB const array node */
-#define MIB_NODE_AR 0x02
-/** MIB array node (mem_malloced from RAM) */
-#define MIB_NODE_RA 0x03
-/** MIB list root node (mem_malloced from RAM) */
-#define MIB_NODE_LR 0x04
-/** MIB node for external objects */
-#define MIB_NODE_EX 0x05
-
-/** node "base class" layout, the mandatory fields for a node */
-struct mib_node
-{
- /** returns struct obj_def for the given object identifier */
- void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od);
- /** returns object value for the given object identifier,
- @note the caller must allocate at least len bytes for the value */
- void (*get_value)(struct obj_def *od, u16_t len, void *value);
- /** tests length and/or range BEFORE setting */
- u8_t (*set_test)(struct obj_def *od, u16_t len, void *value);
- /** sets object value, only to be called when set_test() */
- void (*set_value)(struct obj_def *od, u16_t len, void *value);
- /** One out of MIB_NODE_AR, MIB_NODE_LR or MIB_NODE_EX */
- const u8_t node_type;
- /* array or max list length */
- const u16_t maxlength;
-};
-
-/** derived node for scalars .0 index */
-typedef struct mib_node mib_scalar_node;
-
-/** derived node, points to a fixed size const array
- of sub-identifiers plus a 'child' pointer */
-struct mib_array_node
-{
- /* inherited "base class" members */
- void (* const get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od);
- void (* const get_value)(struct obj_def *od, u16_t len, void *value);
- u8_t (*set_test)(struct obj_def *od, u16_t len, void *value);
- void (*set_value)(struct obj_def *od, u16_t len, void *value);
-
- const u8_t node_type;
- const u16_t maxlength;
-
- /* aditional struct members */
- const s32_t *objid;
- struct mib_node* const *nptr;
-};
-
-/** derived node, points to a fixed size mem_malloced array
- of sub-identifiers plus a 'child' pointer */
-struct mib_ram_array_node
-{
- /* inherited "base class" members */
- void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od);
- void (*get_value)(struct obj_def *od, u16_t len, void *value);
- u8_t (*set_test)(struct obj_def *od, u16_t len, void *value);
- void (*set_value)(struct obj_def *od, u16_t len, void *value);
-
- u8_t node_type;
- u16_t maxlength;
-
- /* aditional struct members */
- s32_t *objid;
- struct mib_node **nptr;
-};
-
-struct mib_list_node
-{
- struct mib_list_node *prev;
- struct mib_list_node *next;
- s32_t objid;
- struct mib_node *nptr;
-};
-
-/** derived node, points to a doubly linked list
- of sub-identifiers plus a 'child' pointer */
-struct mib_list_rootnode
-{
- /* inherited "base class" members */
- void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od);
- void (*get_value)(struct obj_def *od, u16_t len, void *value);
- u8_t (*set_test)(struct obj_def *od, u16_t len, void *value);
- void (*set_value)(struct obj_def *od, u16_t len, void *value);
-
- u8_t node_type;
- u16_t maxlength;
-
- /* aditional struct members */
- struct mib_list_node *head;
- struct mib_list_node *tail;
- /* counts list nodes in list */
- u16_t count;
-};
-
-/** derived node, has access functions for mib object in external memory or device
- using 'tree_level' and 'idx', with a range 0 .. (level_length() - 1) */
-struct mib_external_node
-{
- /* inherited "base class" members */
- void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od);
- void (*get_value)(struct obj_def *od, u16_t len, void *value);
- u8_t (*set_test)(struct obj_def *od, u16_t len, void *value);
- void (*set_value)(struct obj_def *od, u16_t len, void *value);
-
- u8_t node_type;
- u16_t maxlength;
-
- /* aditional struct members */
- /** points to an extenal (in memory) record of some sort of addressing
- information, passed to and interpreted by the funtions below */
- void* addr_inf;
- /** tree levels under this node */
- u8_t tree_levels;
- /** number of objects at this level */
- u16_t (*level_length)(void* addr_inf, u8_t level);
- /** compares object sub identifier with external id
- return zero when equal, nonzero when unequal */
- s32_t (*ident_cmp)(void* addr_inf, u8_t level, u16_t idx, s32_t sub_id);
- void (*get_objid)(void* addr_inf, u8_t level, u16_t idx, s32_t *sub_id);
-
- /** async Questions */
- void (*get_object_def_q)(void* addr_inf, u8_t rid, u8_t ident_len, s32_t *ident);
- void (*get_value_q)(u8_t rid, struct obj_def *od);
- void (*set_test_q)(u8_t rid, struct obj_def *od);
- void (*set_value_q)(u8_t rid, struct obj_def *od, u16_t len, void *value);
- /** async Answers */
- void (*get_object_def_a)(u8_t rid, u8_t ident_len, s32_t *ident, struct obj_def *od);
- void (*get_value_a)(u8_t rid, struct obj_def *od, u16_t len, void *value);
- u8_t (*set_test_a)(u8_t rid, struct obj_def *od, u16_t len, void *value);
- void (*set_value_a)(u8_t rid, struct obj_def *od, u16_t len, void *value);
- /** async Panic Close (agent returns error reply,
- e.g. used for external transaction cleanup) */
- void (*get_object_def_pc)(u8_t rid, u8_t ident_len, s32_t *ident);
- void (*get_value_pc)(u8_t rid, struct obj_def *od);
- void (*set_test_pc)(u8_t rid, struct obj_def *od);
- void (*set_value_pc)(u8_t rid, struct obj_def *od);
-};
-
-/** export MIB tree from mib2.c */
-extern const struct mib_array_node internet;
-
-/** dummy function pointers for non-leaf MIB nodes from mib2.c */
-void noleafs_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od);
-void noleafs_get_value(struct obj_def *od, u16_t len, void *value);
-u8_t noleafs_set_test(struct obj_def *od, u16_t len, void *value);
-void noleafs_set_value(struct obj_def *od, u16_t len, void *value);
-
-void snmp_oidtoip(s32_t *ident, struct ip_addr *ip);
-void snmp_iptooid(struct ip_addr *ip, s32_t *ident);
-void snmp_ifindextonetif(s32_t ifindex, struct netif **netif);
-void snmp_netiftoifindex(struct netif *netif, s32_t *ifidx);
-
-struct mib_list_node* snmp_mib_ln_alloc(s32_t id);
-void snmp_mib_ln_free(struct mib_list_node *ln);
-struct mib_list_rootnode* snmp_mib_lrn_alloc(void);
-void snmp_mib_lrn_free(struct mib_list_rootnode *lrn);
-
-s8_t snmp_mib_node_insert(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **insn);
-s8_t snmp_mib_node_find(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **fn);
-struct mib_list_rootnode *snmp_mib_node_delete(struct mib_list_rootnode *rn, struct mib_list_node *n);
-
-struct mib_node* snmp_search_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_name_ptr *np);
-struct mib_node* snmp_expand_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret);
-u8_t snmp_iso_prefix_tst(u8_t ident_len, s32_t *ident);
-u8_t snmp_iso_prefix_expand(u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_SNMP */
-
-#endif /* __LWIP_SNMP_STRUCTS_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sockets.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sockets.h
deleted file mode 100644
index 675c1f7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sockets.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-
-#ifndef __LWIP_SOCKETS_H__
-#define __LWIP_SOCKETS_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */
-
-#include <stddef.h> /* for size_t */
-
-#include "lwip/ip_addr.h"
-#include "lwip/inet.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* members are in network byte order */
-struct sockaddr_in {
- u8_t sin_len;
- u8_t sin_family;
- u16_t sin_port;
- struct in_addr sin_addr;
- char sin_zero[8];
-};
-
-struct sockaddr {
- u8_t sa_len;
- u8_t sa_family;
- char sa_data[14];
-};
-
-#ifndef socklen_t
-# define socklen_t u32_t
-#endif
-
-/* Socket protocol types (TCP/UDP/RAW) */
-#define SOCK_STREAM 1
-#define SOCK_DGRAM 2
-#define SOCK_RAW 3
-
-/*
- * Option flags per-socket. These must match the SOF_ flags in ip.h!
- */
-#define SO_DEBUG 0x0001 /* Unimplemented: turn on debugging info recording */
-#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
-#define SO_REUSEADDR 0x0004 /* Unimplemented: allow local address reuse */
-#define SO_KEEPALIVE 0x0008 /* keep connections alive */
-#define SO_DONTROUTE 0x0010 /* Unimplemented: just use interface addresses */
-#define SO_BROADCAST 0x0020 /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */
-#define SO_USELOOPBACK 0x0040 /* Unimplemented: bypass hardware when possible */
-#define SO_LINGER 0x0080 /* linger on close if data present */
-#define SO_OOBINLINE 0x0100 /* Unimplemented: leave received OOB data in line */
-#define SO_REUSEPORT 0x0200 /* Unimplemented: allow local address & port reuse */
-
-#define SO_DONTLINGER ((int)(~SO_LINGER))
-
-/*
- * Additional options, not kept in so_options.
- */
-#define SO_SNDBUF 0x1001 /* Unimplemented: send buffer size */
-#define SO_RCVBUF 0x1002 /* receive buffer size */
-#define SO_SNDLOWAT 0x1003 /* Unimplemented: send low-water mark */
-#define SO_RCVLOWAT 0x1004 /* Unimplemented: receive low-water mark */
-#define SO_SNDTIMEO 0x1005 /* Unimplemented: send timeout */
-#define SO_RCVTIMEO 0x1006 /* receive timeout */
-#define SO_ERROR 0x1007 /* get error status and clear */
-#define SO_TYPE 0x1008 /* get socket type */
-#define SO_CONTIMEO 0x1009 /* Unimplemented: connect timeout */
-#define SO_NO_CHECK 0x100a /* don't create UDP checksum */
-
-
-/*
- * Structure used for manipulating linger option.
- */
-struct linger {
- int l_onoff; /* option on/off */
- int l_linger; /* linger time */
-};
-
-/*
- * Level number for (get/set)sockopt() to apply to socket itself.
- */
-#define SOL_SOCKET 0xfff /* options for socket level */
-
-
-#define AF_UNSPEC 0
-#define AF_INET 2
-#define PF_INET AF_INET
-#define PF_UNSPEC AF_UNSPEC
-
-#define IPPROTO_IP 0
-#define IPPROTO_TCP 6
-#define IPPROTO_UDP 17
-#define IPPROTO_UDPLITE 136
-
-/* Flags we can use with send and recv. */
-#define MSG_PEEK 0x01 /* Peeks at an incoming message */
-#define MSG_WAITALL 0x02 /* Unimplemented: Requests that the function block until the full amount of data requested can be returned */
-#define MSG_OOB 0x04 /* Unimplemented: Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific */
-#define MSG_DONTWAIT 0x08 /* Nonblocking i/o for this operation only */
-#define MSG_MORE 0x10 /* Sender will send more */
-
-
-/*
- * Options for level IPPROTO_IP
- */
-#define IP_TOS 1
-#define IP_TTL 2
-
-#if LWIP_TCP
-/*
- * Options for level IPPROTO_TCP
- */
-#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */
-#define TCP_KEEPALIVE 0x02 /* send KEEPALIVE probes when idle for pcb->keep_idle milliseconds */
-#define TCP_KEEPIDLE 0x03 /* set pcb->keep_idle - Same as TCP_KEEPALIVE, but use seconds for get/setsockopt */
-#define TCP_KEEPINTVL 0x04 /* set pcb->keep_intvl - Use seconds for get/setsockopt */
-#define TCP_KEEPCNT 0x05 /* set pcb->keep_cnt - Use number of probes sent for get/setsockopt */
-#endif /* LWIP_TCP */
-
-#if LWIP_UDP && LWIP_UDPLITE
-/*
- * Options for level IPPROTO_UDPLITE
- */
-#define UDPLITE_SEND_CSCOV 0x01 /* sender checksum coverage */
-#define UDPLITE_RECV_CSCOV 0x02 /* minimal receiver checksum coverage */
-#endif /* LWIP_UDP && LWIP_UDPLITE*/
-
-
-#if LWIP_IGMP
-/*
- * Options and types for UDP multicast traffic handling
- */
-#define IP_ADD_MEMBERSHIP 3
-#define IP_DROP_MEMBERSHIP 4
-#define IP_MULTICAST_TTL 5
-#define IP_MULTICAST_IF 6
-#define IP_MULTICAST_LOOP 7
-
-typedef struct ip_mreq {
- struct in_addr imr_multiaddr; /* IP multicast address of group */
- struct in_addr imr_interface; /* local IP address of interface */
-} ip_mreq;
-#endif /* LWIP_IGMP */
-
-/*
- * The Type of Service provides an indication of the abstract
- * parameters of the quality of service desired. These parameters are
- * to be used to guide the selection of the actual service parameters
- * when transmitting a datagram through a particular network. Several
- * networks offer service precedence, which somehow treats high
- * precedence traffic as more important than other traffic (generally
- * by accepting only traffic above a certain precedence at time of high
- * load). The major choice is a three way tradeoff between low-delay,
- * high-reliability, and high-throughput.
- * The use of the Delay, Throughput, and Reliability indications may
- * increase the cost (in some sense) of the service. In many networks
- * better performance for one of these parameters is coupled with worse
- * performance on another. Except for very unusual cases at most two
- * of these three indications should be set.
- */
-#define IPTOS_TOS_MASK 0x1E
-#define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK)
-#define IPTOS_LOWDELAY 0x10
-#define IPTOS_THROUGHPUT 0x08
-#define IPTOS_RELIABILITY 0x04
-#define IPTOS_LOWCOST 0x02
-#define IPTOS_MINCOST IPTOS_LOWCOST
-
-/*
- * The Network Control precedence designation is intended to be used
- * within a network only. The actual use and control of that
- * designation is up to each network. The Internetwork Control
- * designation is intended for use by gateway control originators only.
- * If the actual use of these precedence designations is of concern to
- * a particular network, it is the responsibility of that network to
- * control the access to, and use of, those precedence designations.
- */
-#define IPTOS_PREC_MASK 0xe0
-#define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK)
-#define IPTOS_PREC_NETCONTROL 0xe0
-#define IPTOS_PREC_INTERNETCONTROL 0xc0
-#define IPTOS_PREC_CRITIC_ECP 0xa0
-#define IPTOS_PREC_FLASHOVERRIDE 0x80
-#define IPTOS_PREC_FLASH 0x60
-#define IPTOS_PREC_IMMEDIATE 0x40
-#define IPTOS_PREC_PRIORITY 0x20
-#define IPTOS_PREC_ROUTINE 0x00
-
-
-/*
- * Commands for ioctlsocket(), taken from the BSD file fcntl.h.
- * lwip_ioctl only supports FIONREAD and FIONBIO, for now
- *
- * Ioctl's have the command encoded in the lower word,
- * and the size of any in or out parameters in the upper
- * word. The high 2 bits of the upper word are used
- * to encode the in/out status of the parameter; for now
- * we restrict parameters to at most 128 bytes.
- */
-#if !defined(FIONREAD) || !defined(FIONBIO)
-#define IOCPARM_MASK 0x7fU /* parameters must be < 128 bytes */
-#define IOC_VOID 0x20000000UL /* no parameters */
-#define IOC_OUT 0x40000000UL /* copy out parameters */
-#define IOC_IN 0x80000000UL /* copy in parameters */
-#define IOC_INOUT (IOC_IN|IOC_OUT)
- /* 0x20000000 distinguishes new &
- old ioctl's */
-#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
-
-#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
-
-#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
-#endif /* !defined(FIONREAD) || !defined(FIONBIO) */
-
-#ifndef FIONREAD
-#define FIONREAD _IOR('f', 127, unsigned long) /* get # bytes to read */
-#endif
-#ifndef FIONBIO
-#define FIONBIO _IOW('f', 126, unsigned long) /* set/clear non-blocking i/o */
-#endif
-
-/* Socket I/O Controls: unimplemented */
-#ifndef SIOCSHIWAT
-#define SIOCSHIWAT _IOW('s', 0, unsigned long) /* set high watermark */
-#define SIOCGHIWAT _IOR('s', 1, unsigned long) /* get high watermark */
-#define SIOCSLOWAT _IOW('s', 2, unsigned long) /* set low watermark */
-#define SIOCGLOWAT _IOR('s', 3, unsigned long) /* get low watermark */
-#define SIOCATMARK _IOR('s', 7, unsigned long) /* at oob mark? */
-#endif
-
-/* Socket flags: */
-#ifndef O_NONBLOCK
-#define O_NONBLOCK 04000U
-#endif
-
-/* FD_SET used for lwip_select */
-#ifndef FD_SET
- #undef FD_SETSIZE
- /* Make FD_SETSIZE match NUM_SOCKETS in socket.c */
- #define FD_SETSIZE MEMP_NUM_NETCONN
- #define FD_SET(n, p) ((p)->fd_bits[(n)/8] |= (1 << ((n) & 7)))
- #define FD_CLR(n, p) ((p)->fd_bits[(n)/8] &= ~(1 << ((n) & 7)))
- #define FD_ISSET(n,p) ((p)->fd_bits[(n)/8] & (1 << ((n) & 7)))
- #define FD_ZERO(p) memset((void*)(p),0,sizeof(*(p)))
-
- typedef struct fd_set {
- unsigned char fd_bits [(FD_SETSIZE+7)/8];
- } fd_set;
-
-#endif /* FD_SET */
-
-/** LWIP_TIMEVAL_PRIVATE: if you want to use the struct timeval provided
- * by your system, set this to 0 and include <sys/time.h> in cc.h */
-#ifndef LWIP_TIMEVAL_PRIVATE
-#define LWIP_TIMEVAL_PRIVATE 1
-#endif
-
-#if LWIP_TIMEVAL_PRIVATE
-struct timeval {
- long tv_sec; /* seconds */
- long tv_usec; /* and microseconds */
-};
-#endif /* LWIP_TIMEVAL_PRIVATE */
-
-void lwip_socket_init(void);
-
-int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
-int lwip_bind(int s, const struct sockaddr *name, socklen_t namelen);
-int lwip_shutdown(int s, int how);
-int lwip_getpeername (int s, struct sockaddr *name, socklen_t *namelen);
-int lwip_getsockname (int s, struct sockaddr *name, socklen_t *namelen);
-int lwip_getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen);
-int lwip_setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen);
-int lwip_close(int s);
-int lwip_connect(int s, const struct sockaddr *name, socklen_t namelen);
-int lwip_listen(int s, int backlog);
-int lwip_recv(int s, void *mem, size_t len, int flags);
-int lwip_read(int s, void *mem, size_t len);
-int lwip_recvfrom(int s, void *mem, size_t len, int flags,
- struct sockaddr *from, socklen_t *fromlen);
-int lwip_send(int s, const void *dataptr, size_t size, int flags);
-int lwip_sendto(int s, const void *dataptr, size_t size, int flags,
- const struct sockaddr *to, socklen_t tolen);
-int lwip_socket(int domain, int type, int protocol);
-int lwip_write(int s, const void *dataptr, size_t size);
-int lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
- struct timeval *timeout);
-int lwip_ioctl(int s, long cmd, void *argp);
-
-#if LWIP_COMPAT_SOCKETS
-#define accept(a,b,c) lwip_accept(a,b,c)
-#define bind(a,b,c) lwip_bind(a,b,c)
-#define shutdown(a,b) lwip_shutdown(a,b)
-#define closesocket(s) lwip_close(s)
-#define connect(a,b,c) lwip_connect(a,b,c)
-#define getsockname(a,b,c) lwip_getsockname(a,b,c)
-#define getpeername(a,b,c) lwip_getpeername(a,b,c)
-#define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e)
-#define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e)
-#define listen(a,b) lwip_listen(a,b)
-#define recv(a,b,c,d) lwip_recv(a,b,c,d)
-#define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f)
-#define send(a,b,c,d) lwip_send(a,b,c,d)
-#define sendto(a,b,c,d,e,f) lwip_sendto(a,b,c,d,e,f)
-#define socket(a,b,c) lwip_socket(a,b,c)
-#define select(a,b,c,d,e) lwip_select(a,b,c,d,e)
-#define ioctlsocket(a,b,c) lwip_ioctl(a,b,c)
-
-#if LWIP_POSIX_SOCKETS_IO_NAMES
-#define read(a,b,c) lwip_read(a,b,c)
-#define write(a,b,c) lwip_write(a,b,c)
-#define close(s) lwip_close(s)
-#endif /* LWIP_POSIX_SOCKETS_IO_NAMES */
-
-#endif /* LWIP_COMPAT_SOCKETS */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_SOCKET */
-
-#endif /* __LWIP_SOCKETS_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/stats.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/stats.h
deleted file mode 100644
index 4aec5e5..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/stats.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_STATS_H__
-#define __LWIP_STATS_H__
-
-#include "lwip/opt.h"
-
-#include "lwip/mem.h"
-#include "lwip/memp.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if LWIP_STATS
-
-#ifndef LWIP_STATS_LARGE
-#define LWIP_STATS_LARGE 0
-#endif
-
-#if LWIP_STATS_LARGE
-#define STAT_COUNTER u32_t
-#define STAT_COUNTER_F U32_F
-#else
-#define STAT_COUNTER u16_t
-#define STAT_COUNTER_F U16_F
-#endif
-
-struct stats_proto {
- STAT_COUNTER xmit; /* Transmitted packets. */
- STAT_COUNTER recv; /* Received packets. */
- STAT_COUNTER fw; /* Forwarded packets. */
- STAT_COUNTER drop; /* Dropped packets. */
- STAT_COUNTER chkerr; /* Checksum error. */
- STAT_COUNTER lenerr; /* Invalid length error. */
- STAT_COUNTER memerr; /* Out of memory error. */
- STAT_COUNTER rterr; /* Routing error. */
- STAT_COUNTER proterr; /* Protocol error. */
- STAT_COUNTER opterr; /* Error in options. */
- STAT_COUNTER err; /* Misc error. */
- STAT_COUNTER cachehit;
-};
-
-struct stats_igmp {
- STAT_COUNTER lenerr; /* Invalid length error. */
- STAT_COUNTER chkerr; /* Checksum error. */
- STAT_COUNTER v1_rxed; /* */
- STAT_COUNTER join_sent; /* */
- STAT_COUNTER leave_sent; /* */
- STAT_COUNTER unicast_query; /* */
- STAT_COUNTER report_sent; /* */
- STAT_COUNTER report_rxed; /* */
- STAT_COUNTER group_query_rxed; /* */
-};
-
-struct stats_mem {
- mem_size_t avail;
- mem_size_t used;
- mem_size_t max;
- STAT_COUNTER err;
- STAT_COUNTER illegal;
-};
-
-struct stats_syselem {
- STAT_COUNTER used;
- STAT_COUNTER max;
- STAT_COUNTER err;
-};
-
-struct stats_sys {
- struct stats_syselem sem;
- struct stats_syselem mbox;
-};
-
-struct stats_ {
-#if LINK_STATS
- struct stats_proto link;
-#endif
-#if ETHARP_STATS
- struct stats_proto etharp;
-#endif
-#if IPFRAG_STATS
- struct stats_proto ip_frag;
-#endif
-#if IP_STATS
- struct stats_proto ip;
-#endif
-#if ICMP_STATS
- struct stats_proto icmp;
-#endif
-#if IGMP_STATS
- struct stats_igmp igmp;
-#endif
-#if UDP_STATS
- struct stats_proto udp;
-#endif
-#if TCP_STATS
- struct stats_proto tcp;
-#endif
-#if MEM_STATS
- struct stats_mem mem;
-#endif
-#if MEMP_STATS
- struct stats_mem memp[MEMP_MAX];
-#endif
-#if SYS_STATS
- struct stats_sys sys;
-#endif
-};
-
-extern struct stats_ lwip_stats;
-
-#define stats_init() /* Compatibility define, not init needed. */
-
-#define STATS_INC(x) ++lwip_stats.x
-#define STATS_DEC(x) --lwip_stats.x
-#else
-#define stats_init()
-#define STATS_INC(x)
-#define STATS_DEC(x)
-#endif /* LWIP_STATS */
-
-#if TCP_STATS
-#define TCP_STATS_INC(x) STATS_INC(x)
-#define TCP_STATS_DISPLAY() stats_display_proto(&lwip_stats.tcp, "TCP")
-#else
-#define TCP_STATS_INC(x)
-#define TCP_STATS_DISPLAY()
-#endif
-
-#if UDP_STATS
-#define UDP_STATS_INC(x) STATS_INC(x)
-#define UDP_STATS_DISPLAY() stats_display_proto(&lwip_stats.udp, "UDP")
-#else
-#define UDP_STATS_INC(x)
-#define UDP_STATS_DISPLAY()
-#endif
-
-#if ICMP_STATS
-#define ICMP_STATS_INC(x) STATS_INC(x)
-#define ICMP_STATS_DISPLAY() stats_display_proto(&lwip_stats.icmp, "ICMP")
-#else
-#define ICMP_STATS_INC(x)
-#define ICMP_STATS_DISPLAY()
-#endif
-
-#if IGMP_STATS
-#define IGMP_STATS_INC(x) STATS_INC(x)
-#define IGMP_STATS_DISPLAY() stats_display_igmp(&lwip_stats.igmp)
-#else
-#define IGMP_STATS_INC(x)
-#define IGMP_STATS_DISPLAY()
-#endif
-
-#if IP_STATS
-#define IP_STATS_INC(x) STATS_INC(x)
-#define IP_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip, "IP")
-#else
-#define IP_STATS_INC(x)
-#define IP_STATS_DISPLAY()
-#endif
-
-#if IPFRAG_STATS
-#define IPFRAG_STATS_INC(x) STATS_INC(x)
-#define IPFRAG_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip_frag, "IP_FRAG")
-#else
-#define IPFRAG_STATS_INC(x)
-#define IPFRAG_STATS_DISPLAY()
-#endif
-
-#if ETHARP_STATS
-#define ETHARP_STATS_INC(x) STATS_INC(x)
-#define ETHARP_STATS_DISPLAY() stats_display_proto(&lwip_stats.etharp, "ETHARP")
-#else
-#define ETHARP_STATS_INC(x)
-#define ETHARP_STATS_DISPLAY()
-#endif
-
-#if LINK_STATS
-#define LINK_STATS_INC(x) STATS_INC(x)
-#define LINK_STATS_DISPLAY() stats_display_proto(&lwip_stats.link, "LINK")
-#else
-#define LINK_STATS_INC(x)
-#define LINK_STATS_DISPLAY()
-#endif
-
-#if MEM_STATS
-#define MEM_STATS_AVAIL(x, y) lwip_stats.mem.x = y
-#define MEM_STATS_INC(x) STATS_INC(mem.x)
-#define MEM_STATS_INC_USED(x, y) do { lwip_stats.mem.used += y; \
- if (lwip_stats.mem.max < lwip_stats.mem.used) { \
- lwip_stats.mem.max = lwip_stats.mem.used; \
- } \
- } while(0)
-#define MEM_STATS_DEC_USED(x, y) lwip_stats.mem.x -= y
-#define MEM_STATS_DISPLAY() stats_display_mem(&lwip_stats.mem, "HEAP")
-#else
-#define MEM_STATS_AVAIL(x, y)
-#define MEM_STATS_INC(x)
-#define MEM_STATS_INC_USED(x, y)
-#define MEM_STATS_DEC_USED(x, y)
-#define MEM_STATS_DISPLAY()
-#endif
-
-#if MEMP_STATS
-#define MEMP_STATS_AVAIL(x, i, y) lwip_stats.memp[i].x = y
-#define MEMP_STATS_INC(x, i) STATS_INC(memp[i].x)
-#define MEMP_STATS_DEC(x, i) STATS_DEC(memp[i].x)
-#define MEMP_STATS_INC_USED(x, i) do { ++lwip_stats.memp[i].used; \
- if (lwip_stats.memp[i].max < lwip_stats.memp[i].used) { \
- lwip_stats.memp[i].max = lwip_stats.memp[i].used; \
- } \
- } while(0)
-#define MEMP_STATS_DISPLAY(i) stats_display_memp(&lwip_stats.memp[i], i)
-#else
-#define MEMP_STATS_AVAIL(x, i, y)
-#define MEMP_STATS_INC(x, i)
-#define MEMP_STATS_DEC(x, i)
-#define MEMP_STATS_INC_USED(x, i)
-#define MEMP_STATS_DISPLAY(i)
-#endif
-
-#if SYS_STATS
-#define SYS_STATS_INC(x) STATS_INC(sys.x)
-#define SYS_STATS_DEC(x) STATS_DEC(sys.x)
-#define SYS_STATS_DISPLAY() stats_display_sys(&lwip_stats.sys)
-#else
-#define SYS_STATS_INC(x)
-#define SYS_STATS_DEC(x)
-#define SYS_STATS_DISPLAY()
-#endif
-
-/* Display of statistics */
-#if LWIP_STATS_DISPLAY
-void stats_display(void);
-void stats_display_proto(struct stats_proto *proto, char *name);
-void stats_display_igmp(struct stats_igmp *igmp);
-void stats_display_mem(struct stats_mem *mem, char *name);
-void stats_display_memp(struct stats_mem *mem, int index);
-void stats_display_sys(struct stats_sys *sys);
-#else
-#define stats_display()
-#define stats_display_proto(proto, name)
-#define stats_display_igmp(igmp)
-#define stats_display_mem(mem, name)
-#define stats_display_memp(mem, index)
-#define stats_display_sys(sys)
-#endif /* LWIP_STATS_DISPLAY */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_STATS_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sys.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sys.h
deleted file mode 100644
index 9a4f02a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sys.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_SYS_H__
-#define __LWIP_SYS_H__
-
-#include "lwip/opt.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if NO_SYS
-
-/* For a totally minimal and standalone system, we provide null
- definitions of the sys_ functions. */
-typedef u8_t sys_sem_t;
-typedef u8_t sys_mbox_t;
-struct sys_timeo {u8_t dummy;};
-
-#define sys_init()
-#define sys_timeout(m,h,a)
-#define sys_untimeout(m,a)
-#define sys_sem_new(c) c
-#define sys_sem_signal(s)
-#define sys_sem_wait(s)
-#define sys_sem_wait_timeout(s,t)
-#define sys_arch_sem_wait(s,t)
-#define sys_sem_free(s)
-#define sys_mbox_new(s) 0
-#define sys_mbox_fetch(m,d)
-#define sys_mbox_tryfetch(m,d)
-#define sys_mbox_post(m,d)
-#define sys_mbox_trypost(m,d)
-#define sys_mbox_free(m)
-
-#define sys_thread_new(n,t,a,s,p)
-
-#else /* NO_SYS */
-
-/** Return code for timeouts from sys_arch_mbox_fetch and sys_arch_sem_wait */
-#define SYS_ARCH_TIMEOUT 0xffffffffUL
-
-/* sys_mbox_tryfetch returns SYS_MBOX_EMPTY if appropriate.
- * For now we use the same magic value, but we allow this to change in future.
- */
-#define SYS_MBOX_EMPTY SYS_ARCH_TIMEOUT
-
-#include "lwip/err.h"
-#include "arch/sys_arch.h"
-
-typedef void (* sys_timeout_handler)(void *arg);
-
-struct sys_timeo {
- struct sys_timeo *next;
- u32_t time;
- sys_timeout_handler h;
- void *arg;
-};
-
-struct sys_timeouts {
- struct sys_timeo *next;
-};
-
-/* sys_init() must be called before anthing else. */
-void sys_init(void);
-
-/*
- * sys_timeout():
- *
- * Schedule a timeout a specified amount of milliseconds in the
- * future. When the timeout occurs, the specified timeout handler will
- * be called. The handler will be passed the "arg" argument when
- * called.
- *
- */
-void sys_timeout(u32_t msecs, sys_timeout_handler h, void *arg);
-void sys_untimeout(sys_timeout_handler h, void *arg);
-struct sys_timeouts *sys_arch_timeouts(void);
-
-/* Semaphore functions. */
-sys_sem_t sys_sem_new(u8_t count);
-void sys_sem_signal(sys_sem_t sem);
-u32_t sys_arch_sem_wait(sys_sem_t sem, u32_t timeout);
-void sys_sem_free(sys_sem_t sem);
-void sys_sem_wait(sys_sem_t sem);
-int sys_sem_wait_timeout(sys_sem_t sem, u32_t timeout);
-
-/* Time functions. */
-#ifndef sys_msleep
-void sys_msleep(u32_t ms); /* only has a (close to) 1 jiffy resolution. */
-#endif
-#ifndef sys_jiffies
-u32_t sys_jiffies(void); /* since power up. */
-#endif
-
-/* Mailbox functions. */
-sys_mbox_t sys_mbox_new(int size);
-void sys_mbox_post(sys_mbox_t mbox, void *msg);
-err_t sys_mbox_trypost(sys_mbox_t mbox, void *msg);
-u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout);
-#ifndef sys_arch_mbox_tryfetch /* Allow port to override with a macro */
-u32_t sys_arch_mbox_tryfetch(sys_mbox_t mbox, void **msg);
-#endif
-/* For now, we map straight to sys_arch implementation. */
-#define sys_mbox_tryfetch(mbox, msg) sys_arch_mbox_tryfetch(mbox, msg)
-void sys_mbox_free(sys_mbox_t mbox);
-void sys_mbox_fetch(sys_mbox_t mbox, void **msg);
-
-/* Thread functions. */
-sys_thread_t sys_thread_new(char *name, void (* thread)(void *arg), void *arg, int stacksize, int prio);
-
-#endif /* NO_SYS */
-
-/** Returns the current time in milliseconds. */
-u32_t sys_now(void);
-
-/* Critical Region Protection */
-/* These functions must be implemented in the sys_arch.c file.
- In some implementations they can provide a more light-weight protection
- mechanism than using semaphores. Otherwise semaphores can be used for
- implementation */
-#ifndef SYS_ARCH_PROTECT
-/** SYS_LIGHTWEIGHT_PROT
- * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection
- * for certain critical regions during buffer allocation, deallocation and memory
- * allocation and deallocation.
- */
-#if SYS_LIGHTWEIGHT_PROT
-
-/** SYS_ARCH_DECL_PROTECT
- * declare a protection variable. This macro will default to defining a variable of
- * type sys_prot_t. If a particular port needs a different implementation, then
- * this macro may be defined in sys_arch.h.
- */
-#define SYS_ARCH_DECL_PROTECT(lev) sys_prot_t lev
-/** SYS_ARCH_PROTECT
- * Perform a "fast" protect. This could be implemented by
- * disabling interrupts for an embedded system or by using a semaphore or
- * mutex. The implementation should allow calling SYS_ARCH_PROTECT when
- * already protected. The old protection level is returned in the variable
- * "lev". This macro will default to calling the sys_arch_protect() function
- * which should be implemented in sys_arch.c. If a particular port needs a
- * different implementation, then this macro may be defined in sys_arch.h
- */
-#define SYS_ARCH_PROTECT(lev) lev = sys_arch_protect()
-/** SYS_ARCH_UNPROTECT
- * Perform a "fast" set of the protection level to "lev". This could be
- * implemented by setting the interrupt level to "lev" within the MACRO or by
- * using a semaphore or mutex. This macro will default to calling the
- * sys_arch_unprotect() function which should be implemented in
- * sys_arch.c. If a particular port needs a different implementation, then
- * this macro may be defined in sys_arch.h
- */
-#define SYS_ARCH_UNPROTECT(lev) sys_arch_unprotect(lev)
-sys_prot_t sys_arch_protect(void);
-void sys_arch_unprotect(sys_prot_t pval);
-
-#else
-
-#define SYS_ARCH_DECL_PROTECT(lev)
-#define SYS_ARCH_PROTECT(lev)
-#define SYS_ARCH_UNPROTECT(lev)
-
-#endif /* SYS_LIGHTWEIGHT_PROT */
-
-#endif /* SYS_ARCH_PROTECT */
-
-/*
- * Macros to set/get and increase/decrease variables in a thread-safe way.
- * Use these for accessing variable that are used from more than one thread.
- */
-
-#ifndef SYS_ARCH_INC
-#define SYS_ARCH_INC(var, val) do { \
- SYS_ARCH_DECL_PROTECT(old_level); \
- SYS_ARCH_PROTECT(old_level); \
- var += val; \
- SYS_ARCH_UNPROTECT(old_level); \
- } while(0)
-#endif /* SYS_ARCH_INC */
-
-#ifndef SYS_ARCH_DEC
-#define SYS_ARCH_DEC(var, val) do { \
- SYS_ARCH_DECL_PROTECT(old_level); \
- SYS_ARCH_PROTECT(old_level); \
- var -= val; \
- SYS_ARCH_UNPROTECT(old_level); \
- } while(0)
-#endif /* SYS_ARCH_DEC */
-
-#ifndef SYS_ARCH_GET
-#define SYS_ARCH_GET(var, ret) do { \
- SYS_ARCH_DECL_PROTECT(old_level); \
- SYS_ARCH_PROTECT(old_level); \
- ret = var; \
- SYS_ARCH_UNPROTECT(old_level); \
- } while(0)
-#endif /* SYS_ARCH_GET */
-
-#ifndef SYS_ARCH_SET
-#define SYS_ARCH_SET(var, val) do { \
- SYS_ARCH_DECL_PROTECT(old_level); \
- SYS_ARCH_PROTECT(old_level); \
- var = val; \
- SYS_ARCH_UNPROTECT(old_level); \
- } while(0)
-#endif /* SYS_ARCH_SET */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LWIP_SYS_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcp.h
deleted file mode 100644
index c151574..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcp.h
+++ /dev/null
@@ -1,709 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_TCP_H__
-#define __LWIP_TCP_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_TCP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/sys.h"
-#include "lwip/mem.h"
-#include "lwip/pbuf.h"
-#include "lwip/ip.h"
-#include "lwip/icmp.h"
-#include "lwip/err.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct tcp_pcb;
-
-/* Functions for interfacing with TCP: */
-
-/* Lower layer interface to TCP: */
-#define tcp_init() /* Compatibility define, not init needed. */
-void tcp_tmr (void); /* Must be called every
- TCP_TMR_INTERVAL
- ms. (Typically 250 ms). */
-/* Application program's interface: */
-struct tcp_pcb * tcp_new (void);
-struct tcp_pcb * tcp_alloc (u8_t prio);
-
-void tcp_arg (struct tcp_pcb *pcb, void *arg);
-void tcp_accept (struct tcp_pcb *pcb,
- err_t (* accept)(void *arg, struct tcp_pcb *newpcb,
- err_t err));
-void tcp_recv (struct tcp_pcb *pcb,
- err_t (* recv)(void *arg, struct tcp_pcb *tpcb,
- struct pbuf *p, err_t err));
-void tcp_sent (struct tcp_pcb *pcb,
- err_t (* sent)(void *arg, struct tcp_pcb *tpcb,
- u16_t len));
-void tcp_poll (struct tcp_pcb *pcb,
- err_t (* poll)(void *arg, struct tcp_pcb *tpcb),
- u8_t interval);
-void tcp_err (struct tcp_pcb *pcb,
- void (* err)(void *arg, err_t err));
-
-#define tcp_mss(pcb) ((pcb)->mss)
-#define tcp_sndbuf(pcb) ((pcb)->snd_buf)
-#define tcp_nagle_disable(pcb) ((pcb)->flags |= TF_NODELAY)
-#define tcp_nagle_enable(pcb) ((pcb)->flags &= ~TF_NODELAY)
-#define tcp_nagle_disabled(pcb) (((pcb)->flags & TF_NODELAY) != 0)
-
-#if TCP_LISTEN_BACKLOG
-#define tcp_accepted(pcb) (((struct tcp_pcb_listen *)(pcb))->accepts_pending--)
-#else /* TCP_LISTEN_BACKLOG */
-#define tcp_accepted(pcb)
-#endif /* TCP_LISTEN_BACKLOG */
-
-void tcp_recved (struct tcp_pcb *pcb, u16_t len);
-err_t tcp_bind (struct tcp_pcb *pcb, struct ip_addr *ipaddr,
- u16_t port);
-err_t tcp_connect (struct tcp_pcb *pcb, struct ip_addr *ipaddr,
- u16_t port, err_t (* connected)(void *arg,
- struct tcp_pcb *tpcb,
- err_t err));
-
-struct tcp_pcb * tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog);
-#define tcp_listen(pcb) tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG)
-
-void tcp_abandon (struct tcp_pcb *pcb, int reset);
-#define tcp_abort(pcb) tcp_abandon((pcb), 1)
-err_t tcp_close (struct tcp_pcb *pcb);
-
-/* Flags for "apiflags" parameter in tcp_write and tcp_enqueue */
-#define TCP_WRITE_FLAG_COPY 0x01
-#define TCP_WRITE_FLAG_MORE 0x02
-
-err_t tcp_write (struct tcp_pcb *pcb, const void *dataptr, u16_t len,
- u8_t apiflags);
-
-void tcp_setprio (struct tcp_pcb *pcb, u8_t prio);
-
-#define TCP_PRIO_MIN 1
-#define TCP_PRIO_NORMAL 64
-#define TCP_PRIO_MAX 127
-
-/* It is also possible to call these two functions at the right
- intervals (instead of calling tcp_tmr()). */
-void tcp_slowtmr (void);
-void tcp_fasttmr (void);
-
-
-/* Only used by IP to pass a TCP segment to TCP: */
-void tcp_input (struct pbuf *p, struct netif *inp);
-/* Used within the TCP code only: */
-err_t tcp_send_empty_ack(struct tcp_pcb *pcb);
-err_t tcp_output (struct tcp_pcb *pcb);
-void tcp_rexmit (struct tcp_pcb *pcb);
-void tcp_rexmit_rto (struct tcp_pcb *pcb);
-void tcp_rexmit_fast (struct tcp_pcb *pcb);
-u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb);
-
-/**
- * This is the Nagle algorithm: try to combine user data to send as few TCP
- * segments as possible. Only send if
- * - no previously transmitted data on the connection remains unacknowledged or
- * - the TF_NODELAY flag is set (nagle algorithm turned off for this pcb) or
- * - the only unsent segment is at least pcb->mss bytes long (or there is more
- * than one unsent segment - with lwIP, this can happen although unsent->len < mss)
- * - or if we are in fast-retransmit (TF_INFR)
- */
-#define tcp_do_output_nagle(tpcb) ((((tpcb)->unacked == NULL) || \
- ((tpcb)->flags & (TF_NODELAY | TF_INFR)) || \
- (((tpcb)->unsent != NULL) && (((tpcb)->unsent->next != NULL) || \
- ((tpcb)->unsent->len >= (tpcb)->mss))) \
- ) ? 1 : 0)
-#define tcp_output_nagle(tpcb) (tcp_do_output_nagle(tpcb) ? tcp_output(tpcb) : ERR_OK)
-
-
-#define TCP_SEQ_LT(a,b) ((s32_t)((a)-(b)) < 0)
-#define TCP_SEQ_LEQ(a,b) ((s32_t)((a)-(b)) <= 0)
-#define TCP_SEQ_GT(a,b) ((s32_t)((a)-(b)) > 0)
-#define TCP_SEQ_GEQ(a,b) ((s32_t)((a)-(b)) >= 0)
-/* is b<=a<=c? */
-#if 0 /* see bug #10548 */
-#define TCP_SEQ_BETWEEN(a,b,c) ((c)-(b) >= (a)-(b))
-#endif
-#define TCP_SEQ_BETWEEN(a,b,c) (TCP_SEQ_GEQ(a,b) && TCP_SEQ_LEQ(a,c))
-#define TCP_FIN 0x01U
-#define TCP_SYN 0x02U
-#define TCP_RST 0x04U
-#define TCP_PSH 0x08U
-#define TCP_ACK 0x10U
-#define TCP_URG 0x20U
-#define TCP_ECE 0x40U
-#define TCP_CWR 0x80U
-
-#define TCP_FLAGS 0x3fU
-
-/* Length of the TCP header, excluding options. */
-#define TCP_HLEN 20
-
-#ifndef TCP_TMR_INTERVAL
-#define TCP_TMR_INTERVAL 250 /* The TCP timer interval in milliseconds. */
-#endif /* TCP_TMR_INTERVAL */
-
-#ifndef TCP_FAST_INTERVAL
-#define TCP_FAST_INTERVAL TCP_TMR_INTERVAL /* the fine grained timeout in milliseconds */
-#endif /* TCP_FAST_INTERVAL */
-
-#ifndef TCP_SLOW_INTERVAL
-#define TCP_SLOW_INTERVAL (2*TCP_TMR_INTERVAL) /* the coarse grained timeout in milliseconds */
-#endif /* TCP_SLOW_INTERVAL */
-
-#define TCP_FIN_WAIT_TIMEOUT 20000 /* milliseconds */
-#define TCP_SYN_RCVD_TIMEOUT 20000 /* milliseconds */
-
-#define TCP_OOSEQ_TIMEOUT 6U /* x RTO */
-
-#ifndef TCP_MSL
-#define TCP_MSL 60000UL /* The maximum segment lifetime in milliseconds */
-#endif
-
-/* Keepalive values, compliant with RFC 1122. Don't change this unless you know what you're doing */
-#ifndef TCP_KEEPIDLE_DEFAULT
-#define TCP_KEEPIDLE_DEFAULT 7200000UL /* Default KEEPALIVE timer in milliseconds */
-#endif
-
-#ifndef TCP_KEEPINTVL_DEFAULT
-#define TCP_KEEPINTVL_DEFAULT 75000UL /* Default Time between KEEPALIVE probes in milliseconds */
-#endif
-
-#ifndef TCP_KEEPCNT_DEFAULT
-#define TCP_KEEPCNT_DEFAULT 9U /* Default Counter for KEEPALIVE probes */
-#endif
-
-#define TCP_MAXIDLE TCP_KEEPCNT_DEFAULT * TCP_KEEPINTVL_DEFAULT /* Maximum KEEPALIVE probe time */
-
-/* Fields are (of course) in network byte order.
- * Some fields are converted to host byte order in tcp_input().
- */
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct tcp_hdr {
- PACK_STRUCT_FIELD(u16_t src);
- PACK_STRUCT_FIELD(u16_t dest);
- PACK_STRUCT_FIELD(u32_t seqno);
- PACK_STRUCT_FIELD(u32_t ackno);
- PACK_STRUCT_FIELD(u16_t _hdrlen_rsvd_flags);
- PACK_STRUCT_FIELD(u16_t wnd);
- PACK_STRUCT_FIELD(u16_t chksum);
- PACK_STRUCT_FIELD(u16_t urgp);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define TCPH_OFFSET(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) >> 8)
-#define TCPH_HDRLEN(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) >> 12)
-#define TCPH_FLAGS(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) & TCP_FLAGS)
-
-#define TCPH_OFFSET_SET(phdr, offset) (phdr)->_hdrlen_rsvd_flags = htons(((offset) << 8) | TCPH_FLAGS(phdr))
-#define TCPH_HDRLEN_SET(phdr, len) (phdr)->_hdrlen_rsvd_flags = htons(((len) << 12) | TCPH_FLAGS(phdr))
-#define TCPH_FLAGS_SET(phdr, flags) (phdr)->_hdrlen_rsvd_flags = (((phdr)->_hdrlen_rsvd_flags & htons((u16_t)(~(u16_t)(TCP_FLAGS)))) | htons(flags))
-#define TCPH_SET_FLAG(phdr, flags ) (phdr)->_hdrlen_rsvd_flags = ((phdr)->_hdrlen_rsvd_flags | htons(flags))
-#define TCPH_UNSET_FLAG(phdr, flags) (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (TCPH_FLAGS(phdr) & ~(flags)) )
-
-#define TCP_TCPLEN(seg) ((seg)->len + ((TCPH_FLAGS((seg)->tcphdr) & (TCP_FIN | TCP_SYN)) != 0))
-
-enum tcp_state {
- CLOSED = 0,
- LISTEN = 1,
- SYN_SENT = 2,
- SYN_RCVD = 3,
- ESTABLISHED = 4,
- FIN_WAIT_1 = 5,
- FIN_WAIT_2 = 6,
- CLOSE_WAIT = 7,
- CLOSING = 8,
- LAST_ACK = 9,
- TIME_WAIT = 10
-};
-
-/** Flags used on input processing, not on pcb->flags
-*/
-#define TF_RESET (u8_t)0x08U /* Connection was reset. */
-#define TF_CLOSED (u8_t)0x10U /* Connection was sucessfully closed. */
-#define TF_GOT_FIN (u8_t)0x20U /* Connection was closed by the remote end. */
-
-
-#if LWIP_CALLBACK_API
- /* Function to call when a listener has been connected.
- * @param arg user-supplied argument (tcp_pcb.callback_arg)
- * @param pcb a new tcp_pcb that now is connected
- * @param err an error argument (TODO: that is current always ERR_OK?)
- * @return ERR_OK: accept the new connection,
- * any other err_t abortsthe new connection
- */
-#define DEF_ACCEPT_CALLBACK err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err)
-#else /* LWIP_CALLBACK_API */
-#define DEF_ACCEPT_CALLBACK
-#endif /* LWIP_CALLBACK_API */
-
-/**
- * members common to struct tcp_pcb and struct tcp_listen_pcb
- */
-#define TCP_PCB_COMMON(type) \
- type *next; /* for the linked list */ \
- enum tcp_state state; /* TCP state */ \
- u8_t prio; \
- void *callback_arg; \
- /* ports are in host byte order */ \
- u16_t local_port; \
- /* the accept callback for listen- and normal pcbs, if LWIP_CALLBACK_API */ \
- DEF_ACCEPT_CALLBACK
-
-
-/* the TCP protocol control block */
-struct tcp_pcb {
-/** common PCB members */
- IP_PCB;
-/** protocol specific PCB members */
- TCP_PCB_COMMON(struct tcp_pcb);
-
- /* ports are in host byte order */
- u16_t remote_port;
-
- u8_t flags;
-#define TF_ACK_DELAY ((u8_t)0x01U) /* Delayed ACK. */
-#define TF_ACK_NOW ((u8_t)0x02U) /* Immediate ACK. */
-#define TF_INFR ((u8_t)0x04U) /* In fast recovery. */
-#define TF_TIMESTAMP ((u8_t)0x08U) /* Timestamp option enabled */
-#define TF_FIN ((u8_t)0x20U) /* Connection was closed locally (FIN segment enqueued). */
-#define TF_NODELAY ((u8_t)0x40U) /* Disable Nagle algorithm */
-#define TF_NAGLEMEMERR ((u8_t)0x80U) /* nagle enabled, memerr, try to output to prevent delayed ACK to happen */
-
- /* the rest of the fields are in host byte order
- as we have to do some math with them */
- /* receiver variables */
- u32_t rcv_nxt; /* next seqno expected */
- u16_t rcv_wnd; /* receiver window available */
- u16_t rcv_ann_wnd; /* receiver window to announce */
- u32_t rcv_ann_right_edge; /* announced right edge of window */
-
- /* Timers */
- u32_t tmr;
- u8_t polltmr, pollinterval;
-
- /* Retransmission timer. */
- s16_t rtime;
-
- u16_t mss; /* maximum segment size */
-
- /* RTT (round trip time) estimation variables */
- u32_t rttest; /* RTT estimate in 500ms ticks */
- u32_t rtseq; /* sequence number being timed */
- s16_t sa, sv; /* @todo document this */
-
- s16_t rto; /* retransmission time-out */
- u8_t nrtx; /* number of retransmissions */
-
- /* fast retransmit/recovery */
- u32_t lastack; /* Highest acknowledged seqno. */
- u8_t dupacks;
-
- /* congestion avoidance/control variables */
- u16_t cwnd;
- u16_t ssthresh;
-
- /* sender variables */
- u32_t snd_nxt; /* next new seqno to be sent */
- u16_t snd_wnd; /* sender window */
- u32_t snd_wl1, snd_wl2; /* Sequence and acknowledgement numbers of last
- window update. */
- u32_t snd_lbb; /* Sequence number of next byte to be buffered. */
-
- u16_t acked;
-
- u16_t snd_buf; /* Available buffer space for sending (in bytes). */
-#define TCP_SNDQUEUELEN_OVERFLOW (0xffff-3)
- u16_t snd_queuelen; /* Available buffer space for sending (in tcp_segs). */
-
-
- /* These are ordered by sequence number: */
- struct tcp_seg *unsent; /* Unsent (queued) segments. */
- struct tcp_seg *unacked; /* Sent but unacknowledged segments. */
-#if TCP_QUEUE_OOSEQ
- struct tcp_seg *ooseq; /* Received out of sequence segments. */
-#endif /* TCP_QUEUE_OOSEQ */
-
- struct pbuf *refused_data; /* Data previously received but not yet taken by upper layer */
-
-#if LWIP_CALLBACK_API
- /* Function to be called when more send buffer space is available.
- * @param arg user-supplied argument (tcp_pcb.callback_arg)
- * @param pcb the tcp_pcb which has send buffer space available
- * @param space the amount of bytes available
- * @return ERR_OK: try to send some data by calling tcp_output
- */
- err_t (* sent)(void *arg, struct tcp_pcb *pcb, u16_t space);
-
- /* Function to be called when (in-sequence) data has arrived.
- * @param arg user-supplied argument (tcp_pcb.callback_arg)
- * @param pcb the tcp_pcb for which data has arrived
- * @param p the packet buffer which arrived
- * @param err an error argument (TODO: that is current always ERR_OK?)
- * @return ERR_OK: try to send some data by calling tcp_output
- */
- err_t (* recv)(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err);
-
- /* Function to be called when a connection has been set up.
- * @param arg user-supplied argument (tcp_pcb.callback_arg)
- * @param pcb the tcp_pcb that now is connected
- * @param err an error argument (TODO: that is current always ERR_OK?)
- * @return value is currently ignored
- */
- err_t (* connected)(void *arg, struct tcp_pcb *pcb, err_t err);
-
- /* Function which is called periodically.
- * The period can be adjusted in multiples of the TCP slow timer interval
- * by changing tcp_pcb.polltmr.
- * @param arg user-supplied argument (tcp_pcb.callback_arg)
- * @param pcb the tcp_pcb to poll for
- * @return ERR_OK: try to send some data by calling tcp_output
- */
- err_t (* poll)(void *arg, struct tcp_pcb *pcb);
-
- /* Function to be called whenever a fatal error occurs.
- * There is no pcb parameter since most of the times, the pcb is
- * already deallocated (or there is no pcb) when this function is called.
- * @param arg user-supplied argument (tcp_pcb.callback_arg)
- * @param err an indication why the error callback is called:
- * ERR_ABRT: aborted through tcp_abort or by a TCP timer
- * ERR_RST: the connection was reset by the remote host
- */
- void (* errf)(void *arg, err_t err);
-#endif /* LWIP_CALLBACK_API */
-
-#if LWIP_TCP_TIMESTAMPS
- u32_t ts_lastacksent;
- u32_t ts_recent;
-#endif /* LWIP_TCP_TIMESTAMPS */
-
- /* idle time before KEEPALIVE is sent */
- u32_t keep_idle;
-#if LWIP_TCP_KEEPALIVE
- u32_t keep_intvl;
- u32_t keep_cnt;
-#endif /* LWIP_TCP_KEEPALIVE */
-
- /* Persist timer counter */
- u32_t persist_cnt;
- /* Persist timer back-off */
- u8_t persist_backoff;
-
- /* KEEPALIVE counter */
- u8_t keep_cnt_sent;
-};
-
-struct tcp_pcb_listen {
-/* Common members of all PCB types */
- IP_PCB;
-/* Protocol specific PCB members */
- TCP_PCB_COMMON(struct tcp_pcb_listen);
-
-#if TCP_LISTEN_BACKLOG
- u8_t backlog;
- u8_t accepts_pending;
-#endif /* TCP_LISTEN_BACKLOG */
-};
-
-#if LWIP_EVENT_API
-
-enum lwip_event {
- LWIP_EVENT_ACCEPT,
- LWIP_EVENT_SENT,
- LWIP_EVENT_RECV,
- LWIP_EVENT_CONNECTED,
- LWIP_EVENT_POLL,
- LWIP_EVENT_ERR
-};
-
-err_t lwip_tcp_event(void *arg, struct tcp_pcb *pcb,
- enum lwip_event,
- struct pbuf *p,
- u16_t size,
- err_t err);
-
-#define TCP_EVENT_ACCEPT(pcb,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\
- LWIP_EVENT_ACCEPT, NULL, 0, err)
-#define TCP_EVENT_SENT(pcb,space,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\
- LWIP_EVENT_SENT, NULL, space, ERR_OK)
-#define TCP_EVENT_RECV(pcb,p,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\
- LWIP_EVENT_RECV, (p), 0, (err))
-#define TCP_EVENT_CONNECTED(pcb,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\
- LWIP_EVENT_CONNECTED, NULL, 0, (err))
-#define TCP_EVENT_POLL(pcb,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\
- LWIP_EVENT_POLL, NULL, 0, ERR_OK)
-#define TCP_EVENT_ERR(errf,arg,err) lwip_tcp_event((arg), NULL, \
- LWIP_EVENT_ERR, NULL, 0, (err))
-#else /* LWIP_EVENT_API */
-
-#define TCP_EVENT_ACCEPT(pcb,err,ret) \
- do { \
- if((pcb)->accept != NULL) \
- (ret) = (pcb)->accept((pcb)->callback_arg,(pcb),(err)); \
- else (ret) = ERR_OK; \
- } while (0)
-
-#define TCP_EVENT_SENT(pcb,space,ret) \
- do { \
- if((pcb)->sent != NULL) \
- (ret) = (pcb)->sent((pcb)->callback_arg,(pcb),(space)); \
- else (ret) = ERR_OK; \
- } while (0)
-
-#define TCP_EVENT_RECV(pcb,p,err,ret) \
- do { \
- if((pcb)->recv != NULL) { \
- (ret) = (pcb)->recv((pcb)->callback_arg,(pcb),(p),(err)); \
- } else { \
- (ret) = tcp_recv_null(NULL, (pcb), (p), (err)); \
- } \
- } while (0)
-
-#define TCP_EVENT_CONNECTED(pcb,err,ret) \
- do { \
- if((pcb)->connected != NULL) \
- (ret) = (pcb)->connected((pcb)->callback_arg,(pcb),(err)); \
- else (ret) = ERR_OK; \
- } while (0)
-
-#define TCP_EVENT_POLL(pcb,ret) \
- do { \
- if((pcb)->poll != NULL) \
- (ret) = (pcb)->poll((pcb)->callback_arg,(pcb)); \
- else (ret) = ERR_OK; \
- } while (0)
-
-#define TCP_EVENT_ERR(errf,arg,err) \
- do { \
- if((errf) != NULL) \
- (errf)((arg),(err)); \
- } while (0)
-
-#endif /* LWIP_EVENT_API */
-
-/* This structure represents a TCP segment on the unsent and unacked queues */
-struct tcp_seg {
- struct tcp_seg *next; /* used when putting segements on a queue */
- struct pbuf *p; /* buffer containing data + TCP header */
- void *dataptr; /* pointer to the TCP data in the pbuf */
- u16_t len; /* the TCP length of this segment */
- u8_t flags;
-#define TF_SEG_OPTS_MSS (u8_t)0x01U /* Include MSS option. */
-#define TF_SEG_OPTS_TS (u8_t)0x02U /* Include timestamp option. */
- struct tcp_hdr *tcphdr; /* the TCP header */
-};
-
-#define LWIP_TCP_OPT_LENGTH(flags) \
- (flags & TF_SEG_OPTS_MSS ? 4 : 0) + \
- (flags & TF_SEG_OPTS_TS ? 12 : 0)
-
-/** This returns a TCP header option for MSS in an u32_t */
-#define TCP_BUILD_MSS_OPTION(x) (x) = htonl(((u32_t)2 << 24) | \
- ((u32_t)4 << 16) | \
- (((u32_t)TCP_MSS / 256) << 8) | \
- (TCP_MSS & 255))
-
-/* Internal functions and global variables: */
-struct tcp_pcb *tcp_pcb_copy(struct tcp_pcb *pcb);
-void tcp_pcb_purge(struct tcp_pcb *pcb);
-void tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb);
-
-u8_t tcp_segs_free(struct tcp_seg *seg);
-u8_t tcp_seg_free(struct tcp_seg *seg);
-struct tcp_seg *tcp_seg_copy(struct tcp_seg *seg);
-
-#define tcp_ack(pcb) \
- do { \
- if((pcb)->flags & TF_ACK_DELAY) { \
- (pcb)->flags &= ~TF_ACK_DELAY; \
- (pcb)->flags |= TF_ACK_NOW; \
- tcp_output(pcb); \
- } \
- else { \
- (pcb)->flags |= TF_ACK_DELAY; \
- } \
- } while (0)
-
-#define tcp_ack_now(pcb) \
- do { \
- (pcb)->flags |= TF_ACK_NOW; \
- tcp_output(pcb); \
- } while (0)
-
-err_t tcp_send_ctrl(struct tcp_pcb *pcb, u8_t flags);
-err_t tcp_enqueue(struct tcp_pcb *pcb, void *dataptr, u16_t len,
- u8_t flags, u8_t apiflags, u8_t optflags);
-
-void tcp_rexmit_seg(struct tcp_pcb *pcb, struct tcp_seg *seg);
-
-void tcp_rst(u32_t seqno, u32_t ackno,
- struct ip_addr *local_ip, struct ip_addr *remote_ip,
- u16_t local_port, u16_t remote_port);
-
-u32_t tcp_next_iss(void);
-
-void tcp_keepalive(struct tcp_pcb *pcb);
-void tcp_zero_window_probe(struct tcp_pcb *pcb);
-
-#if TCP_CALCULATE_EFF_SEND_MSS
-u16_t tcp_eff_send_mss(u16_t sendmss, struct ip_addr *addr);
-#endif /* TCP_CALCULATE_EFF_SEND_MSS */
-
-#if LWIP_CALLBACK_API
-err_t tcp_recv_null(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err);
-#endif /* LWIP_CALLBACK_API */
-
-extern struct tcp_pcb *tcp_input_pcb;
-extern u32_t tcp_ticks;
-
-const char* tcp_debug_state_str(enum tcp_state s);
-#if TCP_DEBUG || TCP_INPUT_DEBUG || TCP_OUTPUT_DEBUG
-void tcp_debug_print(struct tcp_hdr *tcphdr);
-void tcp_debug_print_flags(u8_t flags);
-void tcp_debug_print_state(enum tcp_state s);
-void tcp_debug_print_pcbs(void);
-s16_t tcp_pcbs_sane(void);
-#else
-# define tcp_debug_print(tcphdr)
-# define tcp_debug_print_flags(flags)
-# define tcp_debug_print_state(s)
-# define tcp_debug_print_pcbs()
-# define tcp_pcbs_sane() 1
-#endif /* TCP_DEBUG */
-
-#if NO_SYS
-#define tcp_timer_needed()
-#else
-void tcp_timer_needed(void);
-#endif
-
-/* The TCP PCB lists. */
-union tcp_listen_pcbs_t { /* List of all TCP PCBs in LISTEN state. */
- struct tcp_pcb_listen *listen_pcbs;
- struct tcp_pcb *pcbs;
-};
-extern union tcp_listen_pcbs_t tcp_listen_pcbs;
-extern struct tcp_pcb *tcp_active_pcbs; /* List of all TCP PCBs that are in a
- state in which they accept or send
- data. */
-extern struct tcp_pcb *tcp_tw_pcbs; /* List of all TCP PCBs in TIME-WAIT. */
-
-extern struct tcp_pcb *tcp_tmp_pcb; /* Only used for temporary storage. */
-
-/* Axioms about the above lists:
- 1) Every TCP PCB that is not CLOSED is in one of the lists.
- 2) A PCB is only in one of the lists.
- 3) All PCBs in the tcp_listen_pcbs list is in LISTEN state.
- 4) All PCBs in the tcp_tw_pcbs list is in TIME-WAIT state.
-*/
-
-/* Define two macros, TCP_REG and TCP_RMV that registers a TCP PCB
- with a PCB list or removes a PCB from a list, respectively. */
-#if 0
-#define TCP_REG(pcbs, npcb) do {\
- LWIP_DEBUGF(TCP_DEBUG, ("TCP_REG %p local port %d\n", npcb, npcb->local_port)); \
- for(tcp_tmp_pcb = *pcbs; \
- tcp_tmp_pcb != NULL; \
- tcp_tmp_pcb = tcp_tmp_pcb->next) { \
- LWIP_ASSERT("TCP_REG: already registered\n", tcp_tmp_pcb != npcb); \
- } \
- LWIP_ASSERT("TCP_REG: pcb->state != CLOSED", npcb->state != CLOSED); \
- npcb->next = *pcbs; \
- LWIP_ASSERT("TCP_REG: npcb->next != npcb", npcb->next != npcb); \
- *(pcbs) = npcb; \
- LWIP_ASSERT("TCP_RMV: tcp_pcbs sane", tcp_pcbs_sane()); \
- tcp_timer_needed(); \
- } while(0)
-#define TCP_RMV(pcbs, npcb) do { \
- LWIP_ASSERT("TCP_RMV: pcbs != NULL", *pcbs != NULL); \
- LWIP_DEBUGF(TCP_DEBUG, ("TCP_RMV: removing %p from %p\n", npcb, *pcbs)); \
- if(*pcbs == npcb) { \
- *pcbs = (*pcbs)->next; \
- } else for(tcp_tmp_pcb = *pcbs; tcp_tmp_pcb != NULL; tcp_tmp_pcb = tcp_tmp_pcb->next) { \
- if(tcp_tmp_pcb->next == npcb) { \
- tcp_tmp_pcb->next = npcb->next; \
- break; \
- } \
- } \
- npcb->next = NULL; \
- LWIP_ASSERT("TCP_RMV: tcp_pcbs sane", tcp_pcbs_sane()); \
- LWIP_DEBUGF(TCP_DEBUG, ("TCP_RMV: removed %p from %p\n", npcb, *pcbs)); \
- } while(0)
-
-#else /* LWIP_DEBUG */
-
-#define TCP_REG(pcbs, npcb) \
- do { \
- npcb->next = *pcbs; \
- *(pcbs) = npcb; \
- tcp_timer_needed(); \
- } while (0)
-
-#define TCP_RMV(pcbs, npcb) \
- do { \
- if(*(pcbs) == npcb) { \
- (*(pcbs)) = (*pcbs)->next; \
- } \
- else { \
- for(tcp_tmp_pcb = *pcbs; \
- tcp_tmp_pcb != NULL; \
- tcp_tmp_pcb = tcp_tmp_pcb->next) { \
- if(tcp_tmp_pcb->next == npcb) { \
- tcp_tmp_pcb->next = npcb->next; \
- break; \
- } \
- } \
- } \
- npcb->next = NULL; \
- } while(0)
-
-#endif /* LWIP_DEBUG */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_TCP */
-
-#endif /* __LWIP_TCP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcpip.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcpip.h
deleted file mode 100644
index 00a3ec5..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcpip.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_TCPIP_H__
-#define __LWIP_TCPIP_H__
-
-#include "lwip/opt.h"
-
-#if !NO_SYS /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/api_msg.h"
-#include "lwip/netifapi.h"
-#include "lwip/pbuf.h"
-#include "lwip/api.h"
-#include "lwip/sys.h"
-#include "lwip/netif.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if LWIP_TCPIP_CORE_LOCKING
-/** The global semaphore to lock the stack. */
-extern sys_sem_t lock_tcpip_core;
-#define LOCK_TCPIP_CORE() sys_sem_wait(lock_tcpip_core)
-#define UNLOCK_TCPIP_CORE() sys_sem_signal(lock_tcpip_core)
-#define TCPIP_APIMSG(m) tcpip_apimsg_lock(m)
-#define TCPIP_APIMSG_ACK(m)
-#define TCPIP_NETIFAPI(m) tcpip_netifapi_lock(m)
-#define TCPIP_NETIFAPI_ACK(m)
-#else
-#define LOCK_TCPIP_CORE()
-#define UNLOCK_TCPIP_CORE()
-#define TCPIP_APIMSG(m) tcpip_apimsg(m)
-#define TCPIP_APIMSG_ACK(m) sys_sem_signal(m->conn->op_completed)
-#define TCPIP_NETIFAPI(m) tcpip_netifapi(m)
-#define TCPIP_NETIFAPI_ACK(m) sys_sem_signal(m->sem)
-#endif /* LWIP_TCPIP_CORE_LOCKING */
-
-void tcpip_init(void (* tcpip_init_done)(void *), void *arg);
-
-#if LWIP_NETCONN
-err_t tcpip_apimsg(struct api_msg *apimsg);
-#if LWIP_TCPIP_CORE_LOCKING
-err_t tcpip_apimsg_lock(struct api_msg *apimsg);
-#endif /* LWIP_TCPIP_CORE_LOCKING */
-#endif /* LWIP_NETCONN */
-
-err_t tcpip_input(struct pbuf *p, struct netif *inp);
-
-#if LWIP_NETIF_API
-err_t tcpip_netifapi(struct netifapi_msg *netifapimsg);
-#if LWIP_TCPIP_CORE_LOCKING
-err_t tcpip_netifapi_lock(struct netifapi_msg *netifapimsg);
-#endif /* LWIP_TCPIP_CORE_LOCKING */
-#endif /* LWIP_NETIF_API */
-
-err_t tcpip_callback_with_block(void (*f)(void *ctx), void *ctx, u8_t block);
-#define tcpip_callback(f, ctx) tcpip_callback_with_block(f, ctx, 1)
-
-/* free pbufs or heap memory from another context without blocking */
-err_t pbuf_free_callback(struct pbuf *p);
-err_t mem_free_callback(void *m);
-
-err_t tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg);
-err_t tcpip_untimeout(sys_timeout_handler h, void *arg);
-
-enum tcpip_msg_type {
-#if LWIP_NETCONN
- TCPIP_MSG_API,
-#endif /* LWIP_NETCONN */
- TCPIP_MSG_INPKT,
-#if LWIP_NETIF_API
- TCPIP_MSG_NETIFAPI,
-#endif /* LWIP_NETIF_API */
- TCPIP_MSG_CALLBACK,
- TCPIP_MSG_TIMEOUT,
- TCPIP_MSG_UNTIMEOUT
-};
-
-struct tcpip_msg {
- enum tcpip_msg_type type;
- sys_sem_t *sem;
- union {
-#if LWIP_NETCONN
- struct api_msg *apimsg;
-#endif /* LWIP_NETCONN */
-#if LWIP_NETIF_API
- struct netifapi_msg *netifapimsg;
-#endif /* LWIP_NETIF_API */
- struct {
- struct pbuf *p;
- struct netif *netif;
- } inp;
- struct {
- void (*f)(void *ctx);
- void *ctx;
- } cb;
- struct {
- u32_t msecs;
- sys_timeout_handler h;
- void *arg;
- } tmo;
- } msg;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !NO_SYS */
-
-#endif /* __LWIP_TCPIP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/udp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/udp.h
deleted file mode 100644
index 1269ee1..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/udp.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_UDP_H__
-#define __LWIP_UDP_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_UDP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/pbuf.h"
-#include "lwip/netif.h"
-#include "lwip/ip_addr.h"
-#include "lwip/ip.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define UDP_HLEN 8
-
-/* Fields are (of course) in network byte order. */
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct udp_hdr {
- PACK_STRUCT_FIELD(u16_t src);
- PACK_STRUCT_FIELD(u16_t dest); /* src/dest UDP ports */
- PACK_STRUCT_FIELD(u16_t len);
- PACK_STRUCT_FIELD(u16_t chksum);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define UDP_FLAGS_NOCHKSUM 0x01U
-#define UDP_FLAGS_UDPLITE 0x02U
-#define UDP_FLAGS_CONNECTED 0x04U
-
-struct udp_pcb {
-/* Common members of all PCB types */
- IP_PCB;
-
-/* Protocol specific PCB members */
-
- struct udp_pcb *next;
-
- u8_t flags;
- /* ports are in host byte order */
- u16_t local_port, remote_port;
-
-#if LWIP_IGMP
- /* outgoing network interface for multicast packets */
- struct ip_addr multicast_ip;
-#endif /* LWIP_IGMP */
-
-#if LWIP_UDPLITE
- /* used for UDP_LITE only */
- u16_t chksum_len_rx, chksum_len_tx;
-#endif /* LWIP_UDPLITE */
-
- /* receive callback function
- * addr and port are in same byte order as in the pcb
- * The callback is responsible for freeing the pbuf
- * if it's not used any more.
- *
- * ATTENTION: Be aware that 'addr' points into the pbuf 'p' so freeing this pbuf
- * makes 'addr' invalid, too.
- *
- * @param arg user supplied argument (udp_pcb.recv_arg)
- * @param pcb the udp_pcb which received data
- * @param p the packet buffer that was received
- * @param addr the remote IP address from which the packet was received
- * @param port the remote port from which the packet was received
- */
- void (* recv)(void *arg, struct udp_pcb *pcb, struct pbuf *p,
- struct ip_addr *addr, u16_t port);
- /* user-supplied argument for the recv callback */
- void *recv_arg;
-};
-/* udp_pcbs export for exernal reference (e.g. SNMP agent) */
-extern struct udp_pcb *udp_pcbs;
-
-/* The following functions is the application layer interface to the
- UDP code. */
-struct udp_pcb * udp_new (void);
-void udp_remove (struct udp_pcb *pcb);
-err_t udp_bind (struct udp_pcb *pcb, struct ip_addr *ipaddr,
- u16_t port);
-err_t udp_connect (struct udp_pcb *pcb, struct ip_addr *ipaddr,
- u16_t port);
-void udp_disconnect (struct udp_pcb *pcb);
-void udp_recv (struct udp_pcb *pcb,
- void (* recv)(void *arg, struct udp_pcb *upcb,
- struct pbuf *p,
- struct ip_addr *addr,
- u16_t port),
- void *recv_arg);
-err_t udp_sendto_if (struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *dst_ip, u16_t dst_port, struct netif *netif);
-err_t udp_sendto (struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *dst_ip, u16_t dst_port);
-err_t udp_send (struct udp_pcb *pcb, struct pbuf *p);
-
-#define udp_flags(pcb) ((pcb)->flags)
-#define udp_setflags(pcb, f) ((pcb)->flags = (f))
-
-/* The following functions are the lower layer interface to UDP. */
-void udp_input (struct pbuf *p, struct netif *inp);
-
-#define udp_init() /* Compatibility define, not init needed. */
-
-#if UDP_DEBUG
-void udp_debug_print(struct udp_hdr *udphdr);
-#else
-#define udp_debug_print(udphdr)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_UDP */
-
-#endif /* __LWIP_UDP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/etharp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/etharp.h
deleted file mode 100644
index fb1542a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/etharp.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * Copyright (c) 2003-2004 Leon Woestenberg <leon.woestenberg@axon.tv>
- * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-#ifndef __NETIF_ETHARP_H__
-#define __NETIF_ETHARP_H__
-
-#include "lwip/opt.h"
-
-#if LWIP_ARP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/pbuf.h"
-#include "lwip/ip_addr.h"
-#include "lwip/netif.h"
-#include "lwip/ip.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef ETH_PAD_SIZE
-#define ETH_PAD_SIZE 0
-#endif
-
-#ifndef ETHARP_HWADDR_LEN
-#define ETHARP_HWADDR_LEN 6
-#endif
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct eth_addr {
- PACK_STRUCT_FIELD(u8_t addr[ETHARP_HWADDR_LEN]);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct eth_hdr {
-#if ETH_PAD_SIZE
- PACK_STRUCT_FIELD(u8_t padding[ETH_PAD_SIZE]);
-#endif
- PACK_STRUCT_FIELD(struct eth_addr dest);
- PACK_STRUCT_FIELD(struct eth_addr src);
- PACK_STRUCT_FIELD(u16_t type);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define SIZEOF_ETH_HDR (14 + ETH_PAD_SIZE)
-
-#if ETHARP_SUPPORT_VLAN
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct eth_vlan_hdr {
- PACK_STRUCT_FIELD(u16_t tpid);
- PACK_STRUCT_FIELD(u16_t prio_vid);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define SIZEOF_VLAN_HDR 4
-#define VLAN_ID(vlan_hdr) (htons((vlan_hdr)->prio_vid) & 0xFFF)
-
-#endif /* ETHARP_SUPPORT_VLAN */
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-/** the ARP message */
-struct etharp_hdr {
- PACK_STRUCT_FIELD(u16_t hwtype);
- PACK_STRUCT_FIELD(u16_t proto);
- PACK_STRUCT_FIELD(u16_t _hwlen_protolen);
- PACK_STRUCT_FIELD(u16_t opcode);
- PACK_STRUCT_FIELD(struct eth_addr shwaddr);
- PACK_STRUCT_FIELD(struct ip_addr2 sipaddr);
- PACK_STRUCT_FIELD(struct eth_addr dhwaddr);
- PACK_STRUCT_FIELD(struct ip_addr2 dipaddr);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#define SIZEOF_ETHARP_HDR 28
-#define SIZEOF_ETHARP_PACKET (SIZEOF_ETH_HDR + SIZEOF_ETHARP_HDR)
-
-/** 5 seconds period */
-#define ARP_TMR_INTERVAL 5000
-
-#define ETHTYPE_ARP 0x0806
-#define ETHTYPE_IP 0x0800
-#define ETHTYPE_VLAN 0x8100
-#define ETHTYPE_PPPOEDISC 0x8863 /* PPP Over Ethernet Discovery Stage */
-#define ETHTYPE_PPPOE 0x8864 /* PPP Over Ethernet Session Stage */
-
-/** ARP message types (opcodes) */
-#define ARP_REQUEST 1
-#define ARP_REPLY 2
-
-#if ARP_QUEUEING
-/** struct for queueing outgoing packets for unknown address
- * defined here to be accessed by memp.h
- */
-struct etharp_q_entry {
- struct etharp_q_entry *next;
- struct pbuf *p;
-};
-#endif /* ARP_QUEUEING */
-
-#define etharp_init() /* Compatibility define, not init needed. */
-void etharp_tmr(void);
-s8_t etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr,
- struct eth_addr **eth_ret, struct ip_addr **ip_ret);
-void etharp_ip_input(struct netif *netif, struct pbuf *p);
-void etharp_arp_input(struct netif *netif, struct eth_addr *ethaddr,
- struct pbuf *p);
-err_t etharp_output(struct netif *netif, struct pbuf *q, struct ip_addr *ipaddr);
-err_t etharp_query(struct netif *netif, struct ip_addr *ipaddr, struct pbuf *q);
-err_t etharp_request(struct netif *netif, struct ip_addr *ipaddr);
-/** For Ethernet network interfaces, we might want to send "gratuitous ARP";
- * this is an ARP packet sent by a node in order to spontaneously cause other
- * nodes to update an entry in their ARP cache.
- * From RFC 3220 "IP Mobility Support for IPv4" section 4.6. */
-#define etharp_gratuitous(netif) etharp_request((netif), &(netif)->ip_addr)
-
-err_t ethernet_input(struct pbuf *p, struct netif *netif);
-
-#if LWIP_AUTOIP
-err_t etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr,
- const struct eth_addr *ethdst_addr,
- const struct eth_addr *hwsrc_addr, const struct ip_addr *ipsrc_addr,
- const struct eth_addr *hwdst_addr, const struct ip_addr *ipdst_addr,
- const u16_t opcode);
-#endif /* LWIP_AUTOIP */
-
-#define eth_addr_cmp(addr1, addr2) (memcmp((addr1)->addr, (addr2)->addr, ETHARP_HWADDR_LEN) == 0)
-
-extern const struct eth_addr ethbroadcast, ethzero;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LWIP_ARP */
-
-#endif /* __NETIF_ARP_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/loopif.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/loopif.h
deleted file mode 100644
index 3f4fa62..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/loopif.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __NETIF_LOOPIF_H__
-#define __NETIF_LOOPIF_H__
-
-#include "lwip/opt.h"
-#include "lwip/netif.h"
-#include "lwip/err.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !LWIP_NETIF_LOOPBACK_MULTITHREADING
-#define loopif_poll netif_poll
-#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */
-
-err_t loopif_init(struct netif *netif);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __NETIF_LOOPIF_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/ppp_oe.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/ppp_oe.h
deleted file mode 100644
index fac0a78..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/ppp_oe.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*****************************************************************************
-* ppp_oe.h - PPP Over Ethernet implementation for lwIP.
-*
-* Copyright (c) 2006 by Marc Boucher, Services Informatiques (MBSI) inc.
-*
-* The authors hereby grant permission to use, copy, modify, distribute,
-* and license this software and its documentation for any purpose, provided
-* that existing copyright notices are retained in all copies and that this
-* notice and the following disclaimer are included verbatim in any
-* distributions. No written agreement, license, or royalty fee is required
-* for any of the authorized uses.
-*
-* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR
-* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-******************************************************************************
-* REVISION HISTORY
-*
-* 06-01-01 Marc Boucher <marc@mbsi.ca>
-* Ported to lwIP.
-*****************************************************************************/
-
-
-
-/* based on NetBSD: if_pppoe.c,v 1.64 2006/01/31 23:50:15 martin Exp */
-
-/*-
- * Copyright (c) 2002 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Martin Husemann <martin@NetBSD.org>.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef PPP_OE_H
-#define PPP_OE_H
-
-#include "lwip/opt.h"
-
-#if PPPOE_SUPPORT > 0
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct pppoehdr {
- PACK_STRUCT_FIELD(u8_t vertype);
- PACK_STRUCT_FIELD(u8_t code);
- PACK_STRUCT_FIELD(u16_t session);
- PACK_STRUCT_FIELD(u16_t plen);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/bpstruct.h"
-#endif
-PACK_STRUCT_BEGIN
-struct pppoetag {
- PACK_STRUCT_FIELD(u16_t tag);
- PACK_STRUCT_FIELD(u16_t len);
-} PACK_STRUCT_STRUCT;
-PACK_STRUCT_END
-#ifdef PACK_STRUCT_USE_INCLUDES
-# include "arch/epstruct.h"
-#endif
-
-
-#define PPPOE_STATE_INITIAL 0
-#define PPPOE_STATE_PADI_SENT 1
-#define PPPOE_STATE_PADR_SENT 2
-#define PPPOE_STATE_SESSION 3
-#define PPPOE_STATE_CLOSING 4
-/* passive */
-#define PPPOE_STATE_PADO_SENT 1
-
-#define PPPOE_HEADERLEN sizeof(struct pppoehdr)
-#define PPPOE_VERTYPE 0x11 /* VER=1, TYPE = 1 */
-
-#define PPPOE_TAG_EOL 0x0000 /* end of list */
-#define PPPOE_TAG_SNAME 0x0101 /* service name */
-#define PPPOE_TAG_ACNAME 0x0102 /* access concentrator name */
-#define PPPOE_TAG_HUNIQUE 0x0103 /* host unique */
-#define PPPOE_TAG_ACCOOKIE 0x0104 /* AC cookie */
-#define PPPOE_TAG_VENDOR 0x0105 /* vendor specific */
-#define PPPOE_TAG_RELAYSID 0x0110 /* relay session id */
-#define PPPOE_TAG_SNAME_ERR 0x0201 /* service name error */
-#define PPPOE_TAG_ACSYS_ERR 0x0202 /* AC system error */
-#define PPPOE_TAG_GENERIC_ERR 0x0203 /* gerneric error */
-
-#define PPPOE_CODE_PADI 0x09 /* Active Discovery Initiation */
-#define PPPOE_CODE_PADO 0x07 /* Active Discovery Offer */
-#define PPPOE_CODE_PADR 0x19 /* Active Discovery Request */
-#define PPPOE_CODE_PADS 0x65 /* Active Discovery Session confirmation */
-#define PPPOE_CODE_PADT 0xA7 /* Active Discovery Terminate */
-
-#ifndef ETHERMTU
-#define ETHERMTU 1500
-#endif
-
-/* two byte PPP protocol discriminator, then IP data */
-#define PPPOE_MAXMTU (ETHERMTU-PPPOE_HEADERLEN-2)
-
-struct pppoe_softc;
-
-
-void pppoe_init(void);
-
-err_t pppoe_create(struct netif *ethif, int pd, void (*linkStatusCB)(int pd, int up), struct pppoe_softc **scptr);
-err_t pppoe_destroy(struct netif *ifp);
-
-int pppoe_connect(struct pppoe_softc *sc);
-void pppoe_disconnect(struct pppoe_softc *sc);
-
-void pppoe_disc_input(struct netif *netif, struct pbuf *p);
-void pppoe_data_input(struct netif *netif, struct pbuf *p);
-
-err_t pppoe_xmit(struct pppoe_softc *sc, struct pbuf *pb);
-
-extern int pppoe_hdrlen;
-
-#endif /* PPPOE_SUPPORT */
-
-#endif /* PPP_OE_H */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/slipif.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/slipif.h
deleted file mode 100644
index ddc2dfa..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/slipif.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001, Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __NETIF_SLIPIF_H__
-#define __NETIF_SLIPIF_H__
-
-#include "lwip/netif.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-err_t slipif_init(struct netif * netif);
-void slipif_poll(struct netif *netif);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/etharp.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/etharp.c
deleted file mode 100644
index 1a5d134..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/etharp.c
+++ /dev/null
@@ -1,1224 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Address Resolution Protocol module for IP over Ethernet
- *
- * Functionally, ARP is divided into two parts. The first maps an IP address
- * to a physical address when sending a packet, and the second part answers
- * requests from other machines for our physical address.
- *
- * This implementation complies with RFC 826 (Ethernet ARP). It supports
- * Gratuitious ARP from RFC3220 (IP Mobility Support for IPv4) section 4.6
- * if an interface calls etharp_gratuitous(our_netif) upon address change.
- */
-
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * Copyright (c) 2003-2004 Leon Woestenberg <leon.woestenberg@axon.tv>
- * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- */
-
-#include "lwip/opt.h"
-
-#if LWIP_ARP /* don't build if not configured for use in lwipopts.h */
-
-#include "lwip/inet.h"
-#include "lwip/ip.h"
-#include "lwip/stats.h"
-#include "lwip/snmp.h"
-#include "lwip/dhcp.h"
-#include "lwip/autoip.h"
-#include "netif/etharp.h"
-
-#if PPPOE_SUPPORT
-#include "netif/ppp_oe.h"
-#endif /* PPPOE_SUPPORT */
-
-#include <string.h>
-
-/** the time an ARP entry stays valid after its last update,
- * for ARP_TMR_INTERVAL = 5000, this is
- * (240 * 5) seconds = 20 minutes.
- */
-#define ARP_MAXAGE 240
-/** the time an ARP entry stays pending after first request,
- * for ARP_TMR_INTERVAL = 5000, this is
- * (2 * 5) seconds = 10 seconds.
- *
- * @internal Keep this number at least 2, otherwise it might
- * run out instantly if the timeout occurs directly after a request.
- */
-#define ARP_MAXPENDING 2
-
-#define HWTYPE_ETHERNET 1
-
-#define ARPH_HWLEN(hdr) (ntohs((hdr)->_hwlen_protolen) >> 8)
-#define ARPH_PROTOLEN(hdr) (ntohs((hdr)->_hwlen_protolen) & 0xff)
-
-#define ARPH_HWLEN_SET(hdr, len) (hdr)->_hwlen_protolen = htons(ARPH_PROTOLEN(hdr) | ((len) << 8))
-#define ARPH_PROTOLEN_SET(hdr, len) (hdr)->_hwlen_protolen = htons((len) | (ARPH_HWLEN(hdr) << 8))
-
-enum etharp_state {
- ETHARP_STATE_EMPTY = 0,
- ETHARP_STATE_PENDING,
- ETHARP_STATE_STABLE
-};
-
-struct etharp_entry {
-#if ARP_QUEUEING
- /**
- * Pointer to queue of pending outgoing packets on this ARP entry.
- */
- struct etharp_q_entry *q;
-#endif
- struct ip_addr ipaddr;
- struct eth_addr ethaddr;
- enum etharp_state state;
- u8_t ctime;
- struct netif *netif;
-};
-
-const struct eth_addr ethbroadcast = {{0xff,0xff,0xff,0xff,0xff,0xff}};
-const struct eth_addr ethzero = {{0,0,0,0,0,0}};
-static struct etharp_entry arp_table[ARP_TABLE_SIZE];
-#if !LWIP_NETIF_HWADDRHINT
-static u8_t etharp_cached_entry;
-#endif
-
-/**
- * Try hard to create a new entry - we want the IP address to appear in
- * the cache (even if this means removing an active entry or so). */
-#define ETHARP_TRY_HARD 1
-#define ETHARP_FIND_ONLY 2
-
-#if LWIP_NETIF_HWADDRHINT
-#define NETIF_SET_HINT(netif, hint) if (((netif) != NULL) && ((netif)->addr_hint != NULL)) \
- *((netif)->addr_hint) = (hint);
-static s8_t find_entry(struct ip_addr *ipaddr, u8_t flags, struct netif *netif);
-#else /* LWIP_NETIF_HWADDRHINT */
-static s8_t find_entry(struct ip_addr *ipaddr, u8_t flags);
-#endif /* LWIP_NETIF_HWADDRHINT */
-
-static err_t update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags);
-
-
-/* Some checks, instead of etharp_init(): */
-#if (LWIP_ARP && (ARP_TABLE_SIZE > 0x7f))
- #error "If you want to use ARP, ARP_TABLE_SIZE must fit in an s8_t, so, you have to reduce it in your lwipopts.h"
-#endif
-
-
-#if ARP_QUEUEING
-/**
- * Free a complete queue of etharp entries
- *
- * @param q a qeueue of etharp_q_entry's to free
- */
-static void
-free_etharp_q(struct etharp_q_entry *q)
-{
- struct etharp_q_entry *r;
- LWIP_ASSERT("q != NULL", q != NULL);
- LWIP_ASSERT("q->p != NULL", q->p != NULL);
- while (q) {
- r = q;
- q = q->next;
- LWIP_ASSERT("r->p != NULL", (r->p != NULL));
- pbuf_free(r->p);
- memp_free(MEMP_ARP_QUEUE, r);
- }
-}
-#endif
-
-/**
- * Clears expired entries in the ARP table.
- *
- * This function should be called every ETHARP_TMR_INTERVAL microseconds (5 seconds),
- * in order to expire entries in the ARP table.
- */
-void
-etharp_tmr(void)
-{
- u8_t i;
-
- LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer\n"));
- /* remove expired entries from the ARP table */
- for (i = 0; i < ARP_TABLE_SIZE; ++i) {
- arp_table[i].ctime++;
- if (((arp_table[i].state == ETHARP_STATE_STABLE) &&
- (arp_table[i].ctime >= ARP_MAXAGE)) ||
- ((arp_table[i].state == ETHARP_STATE_PENDING) &&
- (arp_table[i].ctime >= ARP_MAXPENDING))) {
- /* pending or stable entry has become old! */
- LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer: expired %s entry %"U16_F".\n",
- arp_table[i].state == ETHARP_STATE_STABLE ? "stable" : "pending", (u16_t)i));
- /* clean up entries that have just been expired */
- /* remove from SNMP ARP index tree */
- snmp_delete_arpidx_tree(arp_table[i].netif, &arp_table[i].ipaddr);
-#if ARP_QUEUEING
- /* and empty packet queue */
- if (arp_table[i].q != NULL) {
- /* remove all queued packets */
- LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer: freeing entry %"U16_F", packet queue %p.\n", (u16_t)i, (void *)(arp_table[i].q)));
- free_etharp_q(arp_table[i].q);
- arp_table[i].q = NULL;
- }
-#endif
- /* recycle entry for re-use */
- arp_table[i].state = ETHARP_STATE_EMPTY;
- }
-#if ARP_QUEUEING
- /* still pending entry? (not expired) */
- if (arp_table[i].state == ETHARP_STATE_PENDING) {
- /* resend an ARP query here? */
- }
-#endif
- }
-}
-
-/**
- * Search the ARP table for a matching or new entry.
- *
- * If an IP address is given, return a pending or stable ARP entry that matches
- * the address. If no match is found, create a new entry with this address set,
- * but in state ETHARP_EMPTY. The caller must check and possibly change the
- * state of the returned entry.
- *
- * If ipaddr is NULL, return a initialized new entry in state ETHARP_EMPTY.
- *
- * In all cases, attempt to create new entries from an empty entry. If no
- * empty entries are available and ETHARP_TRY_HARD flag is set, recycle
- * old entries. Heuristic choose the least important entry for recycling.
- *
- * @param ipaddr IP address to find in ARP cache, or to add if not found.
- * @param flags
- * - ETHARP_TRY_HARD: Try hard to create a entry by allowing recycling of
- * active (stable or pending) entries.
- *
- * @return The ARP entry index that matched or is created, ERR_MEM if no
- * entry is found or could be recycled.
- */
-static s8_t
-#if LWIP_NETIF_HWADDRHINT
-find_entry(struct ip_addr *ipaddr, u8_t flags, struct netif *netif)
-#else /* LWIP_NETIF_HWADDRHINT */
-find_entry(struct ip_addr *ipaddr, u8_t flags)
-#endif /* LWIP_NETIF_HWADDRHINT */
-{
- s8_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE;
- s8_t empty = ARP_TABLE_SIZE;
- u8_t i = 0, age_pending = 0, age_stable = 0;
-#if ARP_QUEUEING
- /* oldest entry with packets on queue */
- s8_t old_queue = ARP_TABLE_SIZE;
- /* its age */
- u8_t age_queue = 0;
-#endif
-
- /* First, test if the last call to this function asked for the
- * same address. If so, we're really fast! */
- if (ipaddr) {
- /* ipaddr to search for was given */
-#if LWIP_NETIF_HWADDRHINT
- if ((netif != NULL) && (netif->addr_hint != NULL)) {
- /* per-pcb cached entry was given */
- u8_t per_pcb_cache = *(netif->addr_hint);
- if ((per_pcb_cache < ARP_TABLE_SIZE) && arp_table[per_pcb_cache].state == ETHARP_STATE_STABLE) {
- /* the per-pcb-cached entry is stable */
- if (ip_addr_cmp(ipaddr, &arp_table[per_pcb_cache].ipaddr)) {
- /* per-pcb cached entry was the right one! */
- ETHARP_STATS_INC(etharp.cachehit);
- return per_pcb_cache;
- }
- }
- }
-#else /* #if LWIP_NETIF_HWADDRHINT */
- if (arp_table[etharp_cached_entry].state == ETHARP_STATE_STABLE) {
- /* the cached entry is stable */
- if (ip_addr_cmp(ipaddr, &arp_table[etharp_cached_entry].ipaddr)) {
- /* cached entry was the right one! */
- ETHARP_STATS_INC(etharp.cachehit);
- return etharp_cached_entry;
- }
- }
-#endif /* #if LWIP_NETIF_HWADDRHINT */
- }
-
- /**
- * a) do a search through the cache, remember candidates
- * b) select candidate entry
- * c) create new entry
- */
-
- /* a) in a single search sweep, do all of this
- * 1) remember the first empty entry (if any)
- * 2) remember the oldest stable entry (if any)
- * 3) remember the oldest pending entry without queued packets (if any)
- * 4) remember the oldest pending entry with queued packets (if any)
- * 5) search for a matching IP entry, either pending or stable
- * until 5 matches, or all entries are searched for.
- */
-
- for (i = 0; i < ARP_TABLE_SIZE; ++i) {
- /* no empty entry found yet and now we do find one? */
- if ((empty == ARP_TABLE_SIZE) && (arp_table[i].state == ETHARP_STATE_EMPTY)) {
- LWIP_DEBUGF(ETHARP_DEBUG, ("find_entry: found empty entry %"U16_F"\n", (u16_t)i));
- /* remember first empty entry */
- empty = i;
- }
- /* pending entry? */
- else if (arp_table[i].state == ETHARP_STATE_PENDING) {
- /* if given, does IP address match IP address in ARP entry? */
- if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: found matching pending entry %"U16_F"\n", (u16_t)i));
- /* found exact IP address match, simply bail out */
-#if LWIP_NETIF_HWADDRHINT
- NETIF_SET_HINT(netif, i);
-#else /* #if LWIP_NETIF_HWADDRHINT */
- etharp_cached_entry = i;
-#endif /* #if LWIP_NETIF_HWADDRHINT */
- return i;
-#if ARP_QUEUEING
- /* pending with queued packets? */
- } else if (arp_table[i].q != NULL) {
- if (arp_table[i].ctime >= age_queue) {
- old_queue = i;
- age_queue = arp_table[i].ctime;
- }
-#endif
- /* pending without queued packets? */
- } else {
- if (arp_table[i].ctime >= age_pending) {
- old_pending = i;
- age_pending = arp_table[i].ctime;
- }
- }
- }
- /* stable entry? */
- else if (arp_table[i].state == ETHARP_STATE_STABLE) {
- /* if given, does IP address match IP address in ARP entry? */
- if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: found matching stable entry %"U16_F"\n", (u16_t)i));
- /* found exact IP address match, simply bail out */
-#if LWIP_NETIF_HWADDRHINT
- NETIF_SET_HINT(netif, i);
-#else /* #if LWIP_NETIF_HWADDRHINT */
- etharp_cached_entry = i;
-#endif /* #if LWIP_NETIF_HWADDRHINT */
- return i;
- /* remember entry with oldest stable entry in oldest, its age in maxtime */
- } else if (arp_table[i].ctime >= age_stable) {
- old_stable = i;
- age_stable = arp_table[i].ctime;
- }
- }
- }
- /* { we have no match } => try to create a new entry */
-
- /* no empty entry found and not allowed to recycle? */
- if (((empty == ARP_TABLE_SIZE) && ((flags & ETHARP_TRY_HARD) == 0))
- /* or don't create new entry, only search? */
- || ((flags & ETHARP_FIND_ONLY) != 0)) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: no empty entry found and not allowed to recycle\n"));
- return (s8_t)ERR_MEM;
- }
-
- /* b) choose the least destructive entry to recycle:
- * 1) empty entry
- * 2) oldest stable entry
- * 3) oldest pending entry without queued packets
- * 4) oldest pending entry with queued packets
- *
- * { ETHARP_TRY_HARD is set at this point }
- */
-
- /* 1) empty entry available? */
- if (empty < ARP_TABLE_SIZE) {
- i = empty;
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting empty entry %"U16_F"\n", (u16_t)i));
- }
- /* 2) found recyclable stable entry? */
- else if (old_stable < ARP_TABLE_SIZE) {
- /* recycle oldest stable*/
- i = old_stable;
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting oldest stable entry %"U16_F"\n", (u16_t)i));
-#if ARP_QUEUEING
- /* no queued packets should exist on stable entries */
- LWIP_ASSERT("arp_table[i].q == NULL", arp_table[i].q == NULL);
-#endif
- /* 3) found recyclable pending entry without queued packets? */
- } else if (old_pending < ARP_TABLE_SIZE) {
- /* recycle oldest pending */
- i = old_pending;
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting oldest pending entry %"U16_F" (without queue)\n", (u16_t)i));
-#if ARP_QUEUEING
- /* 4) found recyclable pending entry with queued packets? */
- } else if (old_queue < ARP_TABLE_SIZE) {
- /* recycle oldest pending */
- i = old_queue;
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting oldest pending entry %"U16_F", freeing packet queue %p\n", (u16_t)i, (void *)(arp_table[i].q)));
- free_etharp_q(arp_table[i].q);
- arp_table[i].q = NULL;
-#endif
- /* no empty or recyclable entries found */
- } else {
- return (s8_t)ERR_MEM;
- }
-
- /* { empty or recyclable entry found } */
- LWIP_ASSERT("i < ARP_TABLE_SIZE", i < ARP_TABLE_SIZE);
-
- if (arp_table[i].state != ETHARP_STATE_EMPTY)
- {
- snmp_delete_arpidx_tree(arp_table[i].netif, &arp_table[i].ipaddr);
- }
- /* recycle entry (no-op for an already empty entry) */
- arp_table[i].state = ETHARP_STATE_EMPTY;
-
- /* IP address given? */
- if (ipaddr != NULL) {
- /* set IP address */
- ip_addr_set(&arp_table[i].ipaddr, ipaddr);
- }
- arp_table[i].ctime = 0;
-#if LWIP_NETIF_HWADDRHINT
- NETIF_SET_HINT(netif, i);
-#else /* #if LWIP_NETIF_HWADDRHINT */
- etharp_cached_entry = i;
-#endif /* #if LWIP_NETIF_HWADDRHINT */
- return (err_t)i;
-}
-
-/**
- * Send an IP packet on the network using netif->linkoutput
- * The ethernet header is filled in before sending.
- *
- * @params netif the lwIP network interface on which to send the packet
- * @params p the packet to send, p->payload pointing to the (uninitialized) ethernet header
- * @params src the source MAC address to be copied into the ethernet header
- * @params dst the destination MAC address to be copied into the ethernet header
- * @return ERR_OK if the packet was sent, any other err_t on failure
- */
-static err_t
-etharp_send_ip(struct netif *netif, struct pbuf *p, struct eth_addr *src, struct eth_addr *dst)
-{
- struct eth_hdr *ethhdr = p->payload;
- u8_t k;
-
- LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!",
- (netif->hwaddr_len == ETHARP_HWADDR_LEN));
- k = ETHARP_HWADDR_LEN;
- while(k > 0) {
- k--;
- ethhdr->dest.addr[k] = dst->addr[k];
- ethhdr->src.addr[k] = src->addr[k];
- }
- ethhdr->type = htons(ETHTYPE_IP);
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_send_ip: sending packet %p\n", (void *)p));
- /* send the packet */
- return netif->linkoutput(netif, p);
-}
-
-/**
- * Update (or insert) a IP/MAC address pair in the ARP cache.
- *
- * If a pending entry is resolved, any queued packets will be sent
- * at this point.
- *
- * @param ipaddr IP address of the inserted ARP entry.
- * @param ethaddr Ethernet address of the inserted ARP entry.
- * @param flags Defines behaviour:
- * - ETHARP_TRY_HARD Allows ARP to insert this as a new item. If not specified,
- * only existing ARP entries will be updated.
- *
- * @return
- * - ERR_OK Succesfully updated ARP cache.
- * - ERR_MEM If we could not add a new ARP entry when ETHARP_TRY_HARD was set.
- * - ERR_ARG Non-unicast address given, those will not appear in ARP cache.
- *
- * @see pbuf_free()
- */
-static err_t
-update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags)
-{
- s8_t i;
- u8_t k;
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("update_arp_entry()\n"));
- LWIP_ASSERT("netif->hwaddr_len == ETHARP_HWADDR_LEN", netif->hwaddr_len == ETHARP_HWADDR_LEN);
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("update_arp_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F" - %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F"\n",
- ip4_addr1(ipaddr), ip4_addr2(ipaddr), ip4_addr3(ipaddr), ip4_addr4(ipaddr),
- ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2],
- ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5]));
- /* non-unicast address? */
- if (ip_addr_isany(ipaddr) ||
- ip_addr_isbroadcast(ipaddr, netif) ||
- ip_addr_ismulticast(ipaddr)) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("update_arp_entry: will not add non-unicast IP address to ARP cache\n"));
- return ERR_ARG;
- }
- /* find or create ARP entry */
-#if LWIP_NETIF_HWADDRHINT
- i = find_entry(ipaddr, flags, netif);
-#else /* LWIP_NETIF_HWADDRHINT */
- i = find_entry(ipaddr, flags);
-#endif /* LWIP_NETIF_HWADDRHINT */
- /* bail out if no entry could be found */
- if (i < 0)
- return (err_t)i;
-
- /* mark it stable */
- arp_table[i].state = ETHARP_STATE_STABLE;
- /* record network interface */
- arp_table[i].netif = netif;
-
- /* insert in SNMP ARP index tree */
- snmp_insert_arpidx_tree(netif, &arp_table[i].ipaddr);
-
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("update_arp_entry: updating stable entry %"S16_F"\n", (s16_t)i));
- /* update address */
- k = ETHARP_HWADDR_LEN;
- while (k > 0) {
- k--;
- arp_table[i].ethaddr.addr[k] = ethaddr->addr[k];
- }
- /* reset time stamp */
- arp_table[i].ctime = 0;
-#if ARP_QUEUEING
- /* this is where we will send out queued packets! */
- while (arp_table[i].q != NULL) {
- struct pbuf *p;
- /* remember remainder of queue */
- struct etharp_q_entry *q = arp_table[i].q;
- /* pop first item off the queue */
- arp_table[i].q = q->next;
- /* get the packet pointer */
- p = q->p;
- /* now queue entry can be freed */
- memp_free(MEMP_ARP_QUEUE, q);
- /* send the queued IP packet */
- etharp_send_ip(netif, p, (struct eth_addr*)(netif->hwaddr), ethaddr);
- /* free the queued IP packet */
- pbuf_free(p);
- }
-#endif
- return ERR_OK;
-}
-
-/**
- * Finds (stable) ethernet/IP address pair from ARP table
- * using interface and IP address index.
- * @note the addresses in the ARP table are in network order!
- *
- * @param netif points to interface index
- * @param ipaddr points to the (network order) IP address index
- * @param eth_ret points to return pointer
- * @param ip_ret points to return pointer
- * @return table index if found, -1 otherwise
- */
-s8_t
-etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr,
- struct eth_addr **eth_ret, struct ip_addr **ip_ret)
-{
- s8_t i;
-
- LWIP_UNUSED_ARG(netif);
-
-#if LWIP_NETIF_HWADDRHINT
- i = find_entry(ipaddr, ETHARP_FIND_ONLY, NULL);
-#else /* LWIP_NETIF_HWADDRHINT */
- i = find_entry(ipaddr, ETHARP_FIND_ONLY);
-#endif /* LWIP_NETIF_HWADDRHINT */
- if((i >= 0) && arp_table[i].state == ETHARP_STATE_STABLE) {
- *eth_ret = &arp_table[i].ethaddr;
- *ip_ret = &arp_table[i].ipaddr;
- return i;
- }
- return -1;
-}
-
-/**
- * Updates the ARP table using the given IP packet.
- *
- * Uses the incoming IP packet's source address to update the
- * ARP cache for the local network. The function does not alter
- * or free the packet. This function must be called before the
- * packet p is passed to the IP layer.
- *
- * @param netif The lwIP network interface on which the IP packet pbuf arrived.
- * @param p The IP packet that arrived on netif.
- *
- * @return NULL
- *
- * @see pbuf_free()
- */
-void
-etharp_ip_input(struct netif *netif, struct pbuf *p)
-{
- struct eth_hdr *ethhdr;
- struct ip_hdr *iphdr;
- LWIP_ERROR("netif != NULL", (netif != NULL), return;);
- /* Only insert an entry if the source IP address of the
- incoming IP packet comes from a host on the local network. */
- ethhdr = p->payload;
- iphdr = (struct ip_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);
-#if ETHARP_SUPPORT_VLAN
- if (ethhdr->type == ETHTYPE_VLAN) {
- iphdr = (struct ip_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR + SIZEOF_VLAN_HDR);
- }
-#endif /* ETHARP_SUPPORT_VLAN */
-
- /* source is not on the local network? */
- if (!ip_addr_netcmp(&(iphdr->src), &(netif->ip_addr), &(netif->netmask))) {
- /* do nothing */
- return;
- }
-
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_ip_input: updating ETHARP table.\n"));
- /* update ARP table */
- /* @todo We could use ETHARP_TRY_HARD if we think we are going to talk
- * back soon (for example, if the destination IP address is ours. */
- update_arp_entry(netif, &(iphdr->src), &(ethhdr->src), 0);
-}
-
-
-/**
- * Responds to ARP requests to us. Upon ARP replies to us, add entry to cache
- * send out queued IP packets. Updates cache with snooped address pairs.
- *
- * Should be called for incoming ARP packets. The pbuf in the argument
- * is freed by this function.
- *
- * @param netif The lwIP network interface on which the ARP packet pbuf arrived.
- * @param ethaddr Ethernet address of netif.
- * @param p The ARP packet that arrived on netif. Is freed by this function.
- *
- * @return NULL
- *
- * @see pbuf_free()
- */
-void
-etharp_arp_input(struct netif *netif, struct eth_addr *ethaddr, struct pbuf *p)
-{
- struct etharp_hdr *hdr;
- struct eth_hdr *ethhdr;
- /* these are aligned properly, whereas the ARP header fields might not be */
- struct ip_addr sipaddr, dipaddr;
- u8_t i;
- u8_t for_us;
-#if LWIP_AUTOIP
- const u8_t * ethdst_hwaddr;
-#endif /* LWIP_AUTOIP */
-
- LWIP_ERROR("netif != NULL", (netif != NULL), return;);
-
- /* drop short ARP packets: we have to check for p->len instead of p->tot_len here
- since a struct etharp_hdr is pointed to p->payload, so it musn't be chained! */
- if (p->len < SIZEOF_ETHARP_PACKET) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING,
- ("etharp_arp_input: packet dropped, too short (%"S16_F"/%"S16_F")\n", p->tot_len,
- (s16_t)SIZEOF_ETHARP_PACKET));
- ETHARP_STATS_INC(etharp.lenerr);
- ETHARP_STATS_INC(etharp.drop);
- pbuf_free(p);
- return;
- }
-
- ethhdr = p->payload;
- hdr = (struct etharp_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);
-#if ETHARP_SUPPORT_VLAN
- if (ethhdr->type == ETHTYPE_VLAN) {
- hdr = (struct etharp_hdr *)(((u8_t*)ethhdr) + SIZEOF_ETH_HDR + SIZEOF_VLAN_HDR);
- }
-#endif /* ETHARP_SUPPORT_VLAN */
-
- /* RFC 826 "Packet Reception": */
- if ((hdr->hwtype != htons(HWTYPE_ETHERNET)) ||
- (hdr->_hwlen_protolen != htons((ETHARP_HWADDR_LEN << 8) | sizeof(struct ip_addr))) ||
- (hdr->proto != htons(ETHTYPE_IP)) ||
- (ethhdr->type != htons(ETHTYPE_ARP))) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING,
- ("etharp_arp_input: packet dropped, wrong hw type, hwlen, proto, protolen or ethernet type (%"U16_F"/%"U16_F"/%"U16_F"/%"U16_F"/%"U16_F")\n",
- hdr->hwtype, ARPH_HWLEN(hdr), hdr->proto, ARPH_PROTOLEN(hdr), ethhdr->type));
- ETHARP_STATS_INC(etharp.proterr);
- ETHARP_STATS_INC(etharp.drop);
- pbuf_free(p);
- return;
- }
- ETHARP_STATS_INC(etharp.recv);
-
-#if LWIP_AUTOIP
- /* We have to check if a host already has configured our random
- * created link local address and continously check if there is
- * a host with this IP-address so we can detect collisions */
- autoip_arp_reply(netif, hdr);
-#endif /* LWIP_AUTOIP */
-
- /* Copy struct ip_addr2 to aligned ip_addr, to support compilers without
- * structure packing (not using structure copy which breaks strict-aliasing rules). */
- SMEMCPY(&sipaddr, &hdr->sipaddr, sizeof(sipaddr));
- SMEMCPY(&dipaddr, &hdr->dipaddr, sizeof(dipaddr));
-
- /* this interface is not configured? */
- if (netif->ip_addr.addr == 0) {
- for_us = 0;
- } else {
- /* ARP packet directed to us? */
- for_us = ip_addr_cmp(&dipaddr, &(netif->ip_addr));
- }
-
- /* ARP message directed to us? */
- if (for_us) {
- /* add IP address in ARP cache; assume requester wants to talk to us.
- * can result in directly sending the queued packets for this host. */
- update_arp_entry(netif, &sipaddr, &(hdr->shwaddr), ETHARP_TRY_HARD);
- /* ARP message not directed to us? */
- } else {
- /* update the source IP address in the cache, if present */
- update_arp_entry(netif, &sipaddr, &(hdr->shwaddr), 0);
- }
-
- /* now act on the message itself */
- switch (htons(hdr->opcode)) {
- /* ARP request? */
- case ARP_REQUEST:
- /* ARP request. If it asked for our address, we send out a
- * reply. In any case, we time-stamp any existing ARP entry,
- * and possiby send out an IP packet that was queued on it. */
-
- LWIP_DEBUGF (ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: incoming ARP request\n"));
- /* ARP request for our address? */
- if (for_us) {
-
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: replying to ARP request for our IP address\n"));
- /* Re-use pbuf to send ARP reply.
- Since we are re-using an existing pbuf, we can't call etharp_raw since
- that would allocate a new pbuf. */
- hdr->opcode = htons(ARP_REPLY);
-
- hdr->dipaddr = hdr->sipaddr;
- SMEMCPY(&hdr->sipaddr, &netif->ip_addr, sizeof(hdr->sipaddr));
-
- LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!",
- (netif->hwaddr_len == ETHARP_HWADDR_LEN));
- i = ETHARP_HWADDR_LEN;
-#if LWIP_AUTOIP
- /* If we are using Link-Local, ARP packets must be broadcast on the
- * link layer. (See RFC3927 Section 2.5) */
- ethdst_hwaddr = ((netif->autoip != NULL) && (netif->autoip->state != AUTOIP_STATE_OFF)) ? (u8_t*)(ethbroadcast.addr) : hdr->shwaddr.addr;
-#endif /* LWIP_AUTOIP */
-
- while(i > 0) {
- i--;
- hdr->dhwaddr.addr[i] = hdr->shwaddr.addr[i];
-#if LWIP_AUTOIP
- ethhdr->dest.addr[i] = ethdst_hwaddr[i];
-#else /* LWIP_AUTOIP */
- ethhdr->dest.addr[i] = hdr->shwaddr.addr[i];
-#endif /* LWIP_AUTOIP */
- hdr->shwaddr.addr[i] = ethaddr->addr[i];
- ethhdr->src.addr[i] = ethaddr->addr[i];
- }
-
- /* hwtype, hwaddr_len, proto, protolen and the type in the ethernet header
- are already correct, we tested that before */
-
- /* return ARP reply */
- netif->linkoutput(netif, p);
- /* we are not configured? */
- } else if (netif->ip_addr.addr == 0) {
- /* { for_us == 0 and netif->ip_addr.addr == 0 } */
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: we are unconfigured, ARP request ignored.\n"));
- /* request was not directed to us */
- } else {
- /* { for_us == 0 and netif->ip_addr.addr != 0 } */
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: ARP request was not for us.\n"));
- }
- break;
- case ARP_REPLY:
- /* ARP reply. We already updated the ARP cache earlier. */
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: incoming ARP reply\n"));
-#if (LWIP_DHCP && DHCP_DOES_ARP_CHECK)
- /* DHCP wants to know about ARP replies from any host with an
- * IP address also offered to us by the DHCP server. We do not
- * want to take a duplicate IP address on a single network.
- * @todo How should we handle redundant (fail-over) interfaces? */
- dhcp_arp_reply(netif, &sipaddr);
-#endif
- break;
- default:
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: ARP unknown opcode type %"S16_F"\n", htons(hdr->opcode)));
- ETHARP_STATS_INC(etharp.err);
- break;
- }
- /* free ARP packet */
- pbuf_free(p);
-}
-
-/**
- * Resolve and fill-in Ethernet address header for outgoing IP packet.
- *
- * For IP multicast and broadcast, corresponding Ethernet addresses
- * are selected and the packet is transmitted on the link.
- *
- * For unicast addresses, the packet is submitted to etharp_query(). In
- * case the IP address is outside the local network, the IP address of
- * the gateway is used.
- *
- * @param netif The lwIP network interface which the IP packet will be sent on.
- * @param q The pbuf(s) containing the IP packet to be sent.
- * @param ipaddr The IP address of the packet destination.
- *
- * @return
- * - ERR_RTE No route to destination (no gateway to external networks),
- * or the return type of either etharp_query() or etharp_send_ip().
- */
-err_t
-etharp_output(struct netif *netif, struct pbuf *q, struct ip_addr *ipaddr)
-{
- struct eth_addr *dest, mcastaddr;
-
- /* make room for Ethernet header - should not fail */
- if (pbuf_header(q, sizeof(struct eth_hdr)) != 0) {
- /* bail out */
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
- ("etharp_output: could not allocate room for header.\n"));
- LINK_STATS_INC(link.lenerr);
- return ERR_BUF;
- }
-
- /* assume unresolved Ethernet address */
- dest = NULL;
- /* Determine on destination hardware address. Broadcasts and multicasts
- * are special, other IP addresses are looked up in the ARP table. */
-
- /* broadcast destination IP address? */
- if (ip_addr_isbroadcast(ipaddr, netif)) {
- /* broadcast on Ethernet also */
- dest = (struct eth_addr *)&ethbroadcast;
- /* multicast destination IP address? */
- } else if (ip_addr_ismulticast(ipaddr)) {
- /* Hash IP multicast address to MAC address.*/
- mcastaddr.addr[0] = 0x01;
- mcastaddr.addr[1] = 0x00;
- mcastaddr.addr[2] = 0x5e;
- mcastaddr.addr[3] = ip4_addr2(ipaddr) & 0x7f;
- mcastaddr.addr[4] = ip4_addr3(ipaddr);
- mcastaddr.addr[5] = ip4_addr4(ipaddr);
- /* destination Ethernet address is multicast */
- dest = &mcastaddr;
- /* unicast destination IP address? */
- } else {
- /* outside local network? */
- if (!ip_addr_netcmp(ipaddr, &(netif->ip_addr), &(netif->netmask))) {
- /* interface has default gateway? */
- if (netif->gw.addr != 0) {
- /* send to hardware address of default gateway IP address */
- ipaddr = &(netif->gw);
- /* no default gateway available */
- } else {
- /* no route to destination error (default gateway missing) */
- return ERR_RTE;
- }
- }
- /* queue on destination Ethernet address belonging to ipaddr */
- return etharp_query(netif, ipaddr, q);
- }
-
- /* continuation for multicast/broadcast destinations */
- /* obtain source Ethernet address of the given interface */
- /* send packet directly on the link */
- return etharp_send_ip(netif, q, (struct eth_addr*)(netif->hwaddr), dest);
-}
-
-/**
- * Send an ARP request for the given IP address and/or queue a packet.
- *
- * If the IP address was not yet in the cache, a pending ARP cache entry
- * is added and an ARP request is sent for the given address. The packet
- * is queued on this entry.
- *
- * If the IP address was already pending in the cache, a new ARP request
- * is sent for the given address. The packet is queued on this entry.
- *
- * If the IP address was already stable in the cache, and a packet is
- * given, it is directly sent and no ARP request is sent out.
- *
- * If the IP address was already stable in the cache, and no packet is
- * given, an ARP request is sent out.
- *
- * @param netif The lwIP network interface on which ipaddr
- * must be queried for.
- * @param ipaddr The IP address to be resolved.
- * @param q If non-NULL, a pbuf that must be delivered to the IP address.
- * q is not freed by this function.
- *
- * @note q must only be ONE packet, not a packet queue!
- *
- * @return
- * - ERR_BUF Could not make room for Ethernet header.
- * - ERR_MEM Hardware address unknown, and no more ARP entries available
- * to query for address or queue the packet.
- * - ERR_MEM Could not queue packet due to memory shortage.
- * - ERR_RTE No route to destination (no gateway to external networks).
- * - ERR_ARG Non-unicast address given, those will not appear in ARP cache.
- *
- */
-err_t
-etharp_query(struct netif *netif, struct ip_addr *ipaddr, struct pbuf *q)
-{
- struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr;
- err_t result = ERR_MEM;
- s8_t i; /* ARP entry index */
-
- /* non-unicast address? */
- if (ip_addr_isbroadcast(ipaddr, netif) ||
- ip_addr_ismulticast(ipaddr) ||
- ip_addr_isany(ipaddr)) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: will not add non-unicast IP address to ARP cache\n"));
- return ERR_ARG;
- }
-
- /* find entry in ARP cache, ask to create entry if queueing packet */
-#if LWIP_NETIF_HWADDRHINT
- i = find_entry(ipaddr, ETHARP_TRY_HARD, netif);
-#else /* LWIP_NETIF_HWADDRHINT */
- i = find_entry(ipaddr, ETHARP_TRY_HARD);
-#endif /* LWIP_NETIF_HWADDRHINT */
-
- /* could not find or create entry? */
- if (i < 0) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not create ARP entry\n"));
- if (q) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: packet dropped\n"));
- ETHARP_STATS_INC(etharp.memerr);
- }
- return (err_t)i;
- }
-
- /* mark a fresh entry as pending (we just sent a request) */
- if (arp_table[i].state == ETHARP_STATE_EMPTY) {
- arp_table[i].state = ETHARP_STATE_PENDING;
- }
-
- /* { i is either a STABLE or (new or existing) PENDING entry } */
- LWIP_ASSERT("arp_table[i].state == PENDING or STABLE",
- ((arp_table[i].state == ETHARP_STATE_PENDING) ||
- (arp_table[i].state == ETHARP_STATE_STABLE)));
-
- /* do we have a pending entry? or an implicit query request? */
- if ((arp_table[i].state == ETHARP_STATE_PENDING) || (q == NULL)) {
- /* try to resolve it; send out ARP request */
- result = etharp_request(netif, ipaddr);
- if (result != ERR_OK) {
- /* ARP request couldn't be sent */
- /* We don't re-send arp request in etharp_tmr, but we still queue packets,
- since this failure could be temporary, and the next packet calling
- etharp_query again could lead to sending the queued packets. */
- }
- }
-
- /* packet given? */
- if (q != NULL) {
- /* stable entry? */
- if (arp_table[i].state == ETHARP_STATE_STABLE) {
- /* we have a valid IP->Ethernet address mapping */
- /* send the packet */
- result = etharp_send_ip(netif, q, srcaddr, &(arp_table[i].ethaddr));
- /* pending entry? (either just created or already pending */
- } else if (arp_table[i].state == ETHARP_STATE_PENDING) {
-#if ARP_QUEUEING /* queue the given q packet */
- struct pbuf *p;
- int copy_needed = 0;
- /* IF q includes a PBUF_REF, PBUF_POOL or PBUF_RAM, we have no choice but
- * to copy the whole queue into a new PBUF_RAM (see bug #11400)
- * PBUF_ROMs can be left as they are, since ROM must not get changed. */
- p = q;
- while (p) {
- LWIP_ASSERT("no packet queues allowed!", (p->len != p->tot_len) || (p->next == 0));
- if(p->type != PBUF_ROM) {
- copy_needed = 1;
- break;
- }
- p = p->next;
- }
- if(copy_needed) {
- /* copy the whole packet into new pbufs */
- p = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM);
- if(p != NULL) {
- if (pbuf_copy(p, q) != ERR_OK) {
- pbuf_free(p);
- p = NULL;
- }
- }
- } else {
- /* referencing the old pbuf is enough */
- p = q;
- pbuf_ref(p);
- }
- /* packet could be taken over? */
- if (p != NULL) {
- /* queue packet ... */
- struct etharp_q_entry *new_entry;
- /* allocate a new arp queue entry */
- new_entry = memp_malloc(MEMP_ARP_QUEUE);
- if (new_entry != NULL) {
- new_entry->next = 0;
- new_entry->p = p;
- if(arp_table[i].q != NULL) {
- /* queue was already existent, append the new entry to the end */
- struct etharp_q_entry *r;
- r = arp_table[i].q;
- while (r->next != NULL) {
- r = r->next;
- }
- r->next = new_entry;
- } else {
- /* queue did not exist, first item in queue */
- arp_table[i].q = new_entry;
- }
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: queued packet %p on ARP entry %"S16_F"\n", (void *)q, (s16_t)i));
- result = ERR_OK;
- } else {
- /* the pool MEMP_ARP_QUEUE is empty */
- pbuf_free(p);
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q));
- /* { result == ERR_MEM } through initialization */
- }
- } else {
- ETHARP_STATS_INC(etharp.memerr);
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q));
- /* { result == ERR_MEM } through initialization */
- }
-#else /* ARP_QUEUEING == 0 */
- /* q && state == PENDING && ARP_QUEUEING == 0 => result = ERR_MEM */
- /* { result == ERR_MEM } through initialization */
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: Ethernet destination address unknown, queueing disabled, packet %p dropped\n", (void *)q));
-#endif
- }
- }
- return result;
-}
-
-/**
- * Send a raw ARP packet (opcode and all addresses can be modified)
- *
- * @param netif the lwip network interface on which to send the ARP packet
- * @param ethsrc_addr the source MAC address for the ethernet header
- * @param ethdst_addr the destination MAC address for the ethernet header
- * @param hwsrc_addr the source MAC address for the ARP protocol header
- * @param ipsrc_addr the source IP address for the ARP protocol header
- * @param hwdst_addr the destination MAC address for the ARP protocol header
- * @param ipdst_addr the destination IP address for the ARP protocol header
- * @param opcode the type of the ARP packet
- * @return ERR_OK if the ARP packet has been sent
- * ERR_MEM if the ARP packet couldn't be allocated
- * any other err_t on failure
- */
-#if !LWIP_AUTOIP
-static
-#endif /* LWIP_AUTOIP */
-err_t
-etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr,
- const struct eth_addr *ethdst_addr,
- const struct eth_addr *hwsrc_addr, const struct ip_addr *ipsrc_addr,
- const struct eth_addr *hwdst_addr, const struct ip_addr *ipdst_addr,
- const u16_t opcode)
-{
- struct pbuf *p;
- err_t result = ERR_OK;
- u8_t k; /* ARP entry index */
- struct eth_hdr *ethhdr;
- struct etharp_hdr *hdr;
-#if LWIP_AUTOIP
- const u8_t * ethdst_hwaddr;
-#endif /* LWIP_AUTOIP */
-
- /* allocate a pbuf for the outgoing ARP request packet */
- p = pbuf_alloc(PBUF_RAW, SIZEOF_ETHARP_PACKET, PBUF_RAM);
- /* could allocate a pbuf for an ARP request? */
- if (p == NULL) {
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
- ("etharp_raw: could not allocate pbuf for ARP request.\n"));
- ETHARP_STATS_INC(etharp.memerr);
- return ERR_MEM;
- }
- LWIP_ASSERT("check that first pbuf can hold struct etharp_hdr",
- (p->len >= SIZEOF_ETHARP_PACKET));
-
- ethhdr = p->payload;
- hdr = (struct etharp_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_raw: sending raw ARP packet.\n"));
- hdr->opcode = htons(opcode);
-
- LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!",
- (netif->hwaddr_len == ETHARP_HWADDR_LEN));
- k = ETHARP_HWADDR_LEN;
-#if LWIP_AUTOIP
- /* If we are using Link-Local, ARP packets must be broadcast on the
- * link layer. (See RFC3927 Section 2.5) */
- ethdst_hwaddr = ((netif->autoip != NULL) && (netif->autoip->state != AUTOIP_STATE_OFF)) ? (u8_t*)(ethbroadcast.addr) : ethdst_addr->addr;
-#endif /* LWIP_AUTOIP */
- /* Write MAC-Addresses (combined loop for both headers) */
- while(k > 0) {
- k--;
- /* Write the ARP MAC-Addresses */
- hdr->shwaddr.addr[k] = hwsrc_addr->addr[k];
- hdr->dhwaddr.addr[k] = hwdst_addr->addr[k];
- /* Write the Ethernet MAC-Addresses */
-#if LWIP_AUTOIP
- ethhdr->dest.addr[k] = ethdst_hwaddr[k];
-#else /* LWIP_AUTOIP */
- ethhdr->dest.addr[k] = ethdst_addr->addr[k];
-#endif /* LWIP_AUTOIP */
- ethhdr->src.addr[k] = ethsrc_addr->addr[k];
- }
- hdr->sipaddr = *(struct ip_addr2 *)ipsrc_addr;
- hdr->dipaddr = *(struct ip_addr2 *)ipdst_addr;
-
- hdr->hwtype = htons(HWTYPE_ETHERNET);
- hdr->proto = htons(ETHTYPE_IP);
- /* set hwlen and protolen together */
- hdr->_hwlen_protolen = htons((ETHARP_HWADDR_LEN << 8) | sizeof(struct ip_addr));
-
- ethhdr->type = htons(ETHTYPE_ARP);
- /* send ARP query */
- result = netif->linkoutput(netif, p);
- ETHARP_STATS_INC(etharp.xmit);
- /* free ARP query packet */
- pbuf_free(p);
- p = NULL;
- /* could not allocate pbuf for ARP request */
-
- return result;
-}
-
-/**
- * Send an ARP request packet asking for ipaddr.
- *
- * @param netif the lwip network interface on which to send the request
- * @param ipaddr the IP address for which to ask
- * @return ERR_OK if the request has been sent
- * ERR_MEM if the ARP packet couldn't be allocated
- * any other err_t on failure
- */
-err_t
-etharp_request(struct netif *netif, struct ip_addr *ipaddr)
-{
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_request: sending ARP request.\n"));
- return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, &ethbroadcast,
- (struct eth_addr *)netif->hwaddr, &netif->ip_addr, &ethzero,
- ipaddr, ARP_REQUEST);
-}
-
-/**
- * Process received ethernet frames. Using this function instead of directly
- * calling ip_input and passing ARP frames through etharp in ethernetif_input,
- * the ARP cache is protected from concurrent access.
- *
- * @param p the recevied packet, p->payload pointing to the ethernet header
- * @param netif the network interface on which the packet was received
- */
-err_t
-ethernet_input(struct pbuf *p, struct netif *netif)
-{
- struct eth_hdr* ethhdr;
- u16_t type;
-
- /* points to packet payload, which starts with an Ethernet header */
- ethhdr = p->payload;
- LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE,
- ("ethernet_input: dest:%02x:%02x:%02x:%02x:%02x:%02x, src:%02x:%02x:%02x:%02x:%02x:%02x, type:%2hx\n",
- (unsigned)ethhdr->dest.addr[0], (unsigned)ethhdr->dest.addr[1], (unsigned)ethhdr->dest.addr[2],
- (unsigned)ethhdr->dest.addr[3], (unsigned)ethhdr->dest.addr[4], (unsigned)ethhdr->dest.addr[5],
- (unsigned)ethhdr->src.addr[0], (unsigned)ethhdr->src.addr[1], (unsigned)ethhdr->src.addr[2],
- (unsigned)ethhdr->src.addr[3], (unsigned)ethhdr->src.addr[4], (unsigned)ethhdr->src.addr[5],
- (unsigned)htons(ethhdr->type)));
-
- type = htons(ethhdr->type);
-#if ETHARP_SUPPORT_VLAN
- if (type == ETHTYPE_VLAN) {
- struct eth_vlan_hdr *vlan = (struct eth_vlan_hdr*)(((char*)ethhdr) + SIZEOF_ETH_HDR);
-#ifdef ETHARP_VLAN_CHECK /* if not, allow all VLANs */
- if (VLAN_ID(vlan) != ETHARP_VLAN_CHECK) {
- /* silently ignore this packet: not for our VLAN */
- pbuf_free(p);
- return ERR_OK;
- }
-#endif /* ETHARP_VLAN_CHECK */
- type = htons(vlan->tpid);
- }
-#endif /* ETHARP_SUPPORT_VLAN */
-
- switch (type) {
- /* IP packet? */
- case ETHTYPE_IP:
-#if ETHARP_TRUST_IP_MAC
- /* update ARP table */
- etharp_ip_input(netif, p);
-#endif /* ETHARP_TRUST_IP_MAC */
- /* skip Ethernet header */
- if(pbuf_header(p, -(s16_t)SIZEOF_ETH_HDR)) {
- LWIP_ASSERT("Can't move over header in packet", 0);
- pbuf_free(p);
- p = NULL;
- } else {
- /* pass to IP layer */
- ip_input(p, netif);
- }
- break;
-
- case ETHTYPE_ARP:
- /* pass p to ARP module */
- etharp_arp_input(netif, (struct eth_addr*)(netif->hwaddr), p);
- break;
-
-#if PPPOE_SUPPORT
- case ETHTYPE_PPPOEDISC: /* PPP Over Ethernet Discovery Stage */
- pppoe_disc_input(netif, p);
- break;
-
- case ETHTYPE_PPPOE: /* PPP Over Ethernet Session Stage */
- pppoe_data_input(netif, p);
- break;
-#endif /* PPPOE_SUPPORT */
-
- default:
- ETHARP_STATS_INC(etharp.proterr);
- ETHARP_STATS_INC(etharp.drop);
- pbuf_free(p);
- p = NULL;
- break;
- }
-
- /* This means the pbuf is freed or consumed,
- so the caller doesn't have to free it again */
- return ERR_OK;
-}
-#endif /* LWIP_ARP */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/loopif.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/loopif.c
deleted file mode 100644
index b7d6632..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/loopif.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- * Loop Interface
- *
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#include "lwip/opt.h"
-
-#if LWIP_HAVE_LOOPIF
-
-#include "netif/loopif.h"
-#include "lwip/snmp.h"
-
-/**
- * Initialize a lwip network interface structure for a loopback interface
- *
- * @param netif the lwip network interface structure for this loopif
- * @return ERR_OK if the loopif is initialized
- * ERR_MEM if private data couldn't be allocated
- */
-err_t
-loopif_init(struct netif *netif)
-{
- /* initialize the snmp variables and counters inside the struct netif
- * ifSpeed: no assumption can be made!
- */
- NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0);
-
- netif->name[0] = 'l';
- netif->name[1] = 'o';
- netif->output = netif_loop_output;
- return ERR_OK;
-}
-
-#endif /* LWIP_HAVE_LOOPIF */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/cc.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/cc.h
deleted file mode 100644
index fc9c07d..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/cc.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __ARCH_CC_H__
-#define __ARCH_CC_H__
-
-/* Define platform endianness */
-#ifndef BYTE_ORDER
-#define BYTE_ORDER BIG_ENDIAN
-#endif /* BYTE_ORDER */
-
-/* Define generic types used in lwIP */
-typedef unsigned char u8_t;
-typedef signed char s8_t;
-typedef unsigned short u16_t;
-typedef signed short s16_t;
-typedef unsigned long u32_t;
-typedef signed long s32_t;
-
-typedef u32_t mem_ptr_t;
-
-/* Define (sn)printf formatters for these lwIP types */
-#define U16_F "u"
-#define S16_F "d"
-#define X16_F "x"
-#define U32_F "u"
-#define S32_F "d"
-#define X32_F "x"
-
-/* Compiler hints for packing structures */
-#define PACK_STRUCT_FIELD(x) x
-#define PACK_STRUCT_STRUCT __attribute__((packed))
-#define PACK_STRUCT_BEGIN
-#define PACK_STRUCT_END
-
-/* Plaform specific diagnostic output */
-#ifdef CONFIG_OWL
-# include <owl/core/owl_debug.h>
-# define LWIP_PLATFORM_DIAG(x) owl_printf x
-# define LWIP_PLATFORM_ASSERT(x) owl_assert(x)
-#else
-# include <printf-stdarg.h>
-# define LWIP_PLATFORM_DIAG(x) do { printk x; } while(0)
-# define LWIP_PLATFORM_ASSERT(x) do { \
- printk("Assertion \"%s\" failed at line " \
- "%d in %s\n", \
- x, __LINE__, __FILE__); while(1); \
- } while(0)
-#endif
-
-#endif /* __ARCH_CC_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/perf.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/perf.h
deleted file mode 100644
index 4991787..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/perf.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef __PERF_H__
-#define __PERF_H__
-
-#define PERF_START /* null definition */
-#define PERF_STOP(x) /* null definition */
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/lwipopts.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/lwipopts.h
deleted file mode 100644
index ae4df23..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/lwipopts.h
+++ /dev/null
@@ -1,426 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- *
- * lwIP Options Configuration
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIPOPTS_H__
-#define __LWIPOPTS_H__
-
-#include "wl_api.h"
-
-/*
- -----------------------------------------------
- ---------- Platform specific locking ----------
- -----------------------------------------------
-*/
-
-/**
- * NO_SYS==1: Provides VERY minimal functionality. Otherwise,
- * use lwIP facilities.
- */
-#define NO_SYS 1
-
-
-/*
- ------------------------------------
- ---------- Memory options ----------
- ------------------------------------
-*/
-/**
- * MEM_ALIGNMENT: should be set to the alignment of the CPU
- * 4 byte alignment -> #define MEM_ALIGNMENT 4
- * 2 byte alignment -> #define MEM_ALIGNMENT 2
- */
-#define MEM_ALIGNMENT 4
-
-/**
- * MEM_SIZE: the size of the heap memory. If the application will send
- * a lot of data that needs to be copied, this should be set high.
- */
-#define MEM_SIZE 16000
-
-
-/*
- ------------------------------------------------
- ---------- Internal Memory Pool Sizes ----------
- ------------------------------------------------
-*/
-/**
- * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF).
- * If the application sends a lot of data out of ROM (or other static memory),
- * this should be set high.
- */
-#define MEMP_NUM_PBUF 30
-
-/**
- * MEMP_NUM_RAW_PCB: Number of raw connection PCBs
- * (requires the LWIP_RAW option)
- */
-#define MEMP_NUM_RAW_PCB 4
-
-/**
- * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One
- * per active UDP "connection".
- * (requires the LWIP_UDP option)
- */
-#define MEMP_NUM_UDP_PCB 4
-
-/**
- * MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections.
- * (requires the LWIP_TCP option)
- */
-#define MEMP_NUM_TCP_PCB 2
-
-/**
- * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections.
- * (requires the LWIP_TCP option)
- */
-#define MEMP_NUM_TCP_PCB_LISTEN 2
-
-/**
- * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments.
- * (requires the LWIP_TCP option)
- */
-#define MEMP_NUM_TCP_SEG 32
-
-/**
- * MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing
- * packets (pbufs) that are waiting for an ARP request (to resolve
- * their destination address) to finish.
- * (requires the ARP_QUEUEING option)
- */
-#define MEMP_NUM_ARP_QUEUE 2
-
-/**
- * MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts.
- * (requires NO_SYS==0)
- */
-#define MEMP_NUM_SYS_TIMEOUT 0
-
-/**
- * MEMP_NUM_NETBUF: the number of struct netbufs.
- * (only needed if you use the sequential API, like api_lib.c)
- */
-#define MEMP_NUM_NETBUF 0
-
-/**
- * MEMP_NUM_NETCONN: the number of struct netconns.
- * (only needed if you use the sequential API, like api_lib.c)
- */
-#define MEMP_NUM_NETCONN 0
-
-/**
- * MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used
- * for callback/timeout API communication.
- * (only needed if you use tcpip.c)
- */
-#define MEMP_NUM_TCPIP_MSG_API 0
-
-/**
- * MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used
- * for incoming packets.
- * (only needed if you use tcpip.c)
- */
-#define MEMP_NUM_TCPIP_MSG_INPKT 0
-
-/**
- * PBUF_POOL_SIZE: the number of buffers in the pbuf pool.
- */
-#define PBUF_POOL_SIZE 32
-
-/*
- ---------------------------------
- ---------- ARP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_ARP==1: Enable ARP functionality.
- */
-#define LWIP_ARP 1
-
-/*
- --------------------------------
- ---------- IP options ----------
- --------------------------------
-*/
-/**
- * IP_FORWARD==1: Enables the ability to forward IP packets across network
- * interfaces. If you are going to run lwIP on a device with only one network
- * interface, define this to 0.
- */
-#define IP_FORWARD 0
-
-/**
- * IP_OPTIONS: Defines the behavior for IP options.
- * IP_OPTIONS==0_ALLOWED: All packets with IP options are dropped.
- * IP_OPTIONS==1_ALLOWED: IP options are allowed (but not parsed).
- */
-#define IP_OPTIONS_ALLOWED 1
-
-/**
- * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that
- * this option does not affect outgoing packet sizes, which can be controlled
- * via IP_FRAG.
- */
-#define IP_REASSEMBLY 1
-
-/**
- * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
- * that this option does not affect incoming packet sizes, which can be
- * controlled via IP_REASSEMBLY.
- */
-#define IP_FRAG 1
-
-/**
- * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
- * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived
- * in this time, the whole packet is discarded.
- */
-#define IP_REASS_MAXAGE 3
-
-/**
- * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.
- * Since the received pbufs are enqueued, be sure to configure
- * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive
- * packets even if the maximum amount of fragments is enqueued for reassembly!
- */
-#define IP_REASS_MAX_PBUFS 10
-
-/**
- * IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP
- * fragmentation. Otherwise pbufs are allocated and reference the original
- * packet data to be fragmented.
- */
-#define IP_FRAG_USES_STATIC_BUF 0
-
-/**
- * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers.
- */
-#define IP_DEFAULT_TTL 255
-
-/*
- ----------------------------------
- ---------- ICMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_ICMP==1: Enable ICMP module inside the IP stack.
- * Be careful, disable that make your product non-compliant to RFC1122
- */
-#define LWIP_ICMP 1
-
-/**
- * ICMP_TTL: Default value for Time-To-Live used by ICMP packets.
- */
-#define ICMP_TTL (IP_DEFAULT_TTL)
-
-/*
- ---------------------------------
- ---------- RAW options ----------
- ---------------------------------
-*/
-/**
- * LWIP_RAW==1: Enable application layer to hook into the IP layer itself.
- */
-#define LWIP_RAW 1
-
-/*
- ----------------------------------
- ---------- DHCP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_DHCP==1: Enable DHCP module.
- */
-#define LWIP_DHCP 1
-
-/*
- ------------------------------------
- ---------- AUTOIP options ----------
- ------------------------------------
-*/
-/**
- * LWIP_AUTOIP==1: Enable AUTOIP module.
- */
-#define LWIP_AUTOIP 0
-
-/*
- ----------------------------------
- ---------- SNMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP
- * transport.
- */
-#define LWIP_SNMP 0
-#define SNMP_PRIVATE_MIB 0
-
-/*
- ----------------------------------
- ---------- IGMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_IGMP==1: Turn on IGMP module.
- */
-#define LWIP_IGMP 1
-
-/*
- ----------------------------------
- ---------- DNS options -----------
- ----------------------------------
-*/
-/**
- * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS
- * transport.
- */
-#define LWIP_DNS 1
-
-/*
- ---------------------------------
- ---------- UDP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_UDP==1: Turn on UDP.
- */
-#define LWIP_UDP 1
-
-/**
- * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP)
- */
-#define LWIP_UDPLITE 0
-
-/**
- * UDP_TTL: Default Time-To-Live value.
- */
-#define UDP_TTL (IP_DEFAULT_TTL)
-
-/*
- ---------------------------------
- ---------- TCP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_TCP==1: Turn on TCP.
- */
-#define LWIP_TCP 1
-
-/*
- ----------------------------------
- ---------- Pbuf options ----------
- ----------------------------------
-*/
-/**
- * PBUF_LINK_HLEN: the number of bytes that should be allocated for a
- * link level header. The default is 14, the standard value for
- * Ethernet.
- */
-#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
-
-/*
- ------------------------------------
- ---------- LOOPIF options ----------
- ------------------------------------
-*/
-/**
- * LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1) and loopif.c
- */
-#define LWIP_HAVE_LOOPIF 1
-#define LWIP_LOOPIF_MULTITHREADING 0
-
-/*
- ----------------------------------------------
- ---------- Sequential layer options ----------
- ----------------------------------------------
-*/
-
-/**
- * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c)
- */
-#define LWIP_NETCONN 0
-
-/*
- ------------------------------------
- ---------- Socket options ----------
- ------------------------------------
-*/
-/**
- * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)
- */
-#define LWIP_SOCKET 0
-
-/*
- ----------------------------------------
- ---------- Statistics options ----------
- ----------------------------------------
-*/
-/**
- * LWIP_STATS==1: Enable statistics collection in lwip_stats.
- */
-#define LWIP_STATS 1
-#define LINK_STATS 1
-
-/* Misc */
-#define LWIP_NETIF_LINK_CALLBACK 1
-#define LWIP_NETIF_STATUS_CALLBACK 1
-#define LWIP_TIMEVAL_PRIVATE 0
-
-#undef DHCP_DOES_ARP_CHECK
-
-#if 0
-#define LWIP_DEBUG 1
-//#define NETIF_DEBUG LWIP_DBG_ON
-#define DHCP_DEBUG LWIP_DBG_ON
-//#define ICMP_DEBUG LWIP_DBG_ON
-//#define TCP_DEBUG LWIP_DBG_ON
-//#define TCP_RTO_DEBUG LWIP_DBG_ON
-//#define IP_DEBUG LWIP_DBG_ON
-//#define TCP_CWND_DEBUG LWIP_DBG_ON
-//#define ETHARP_DEBUG LWIP_DBG_ON
-//#define PBUF_DEBUG LWIP_DBG_ON
-#define TCP_INPUT_DEBUG LWIP_DBG_ON
-#define TCP_OUTPUT_DEBUG LWIP_DBG_ON
-#endif
-
-#define ETH_PAD_SIZE WL_HEADER_SIZE /* size of wifiengine header */
-#define MEM_LIBC_MALLOC 1
-
-#define TCP_MSS 512
-#define TCP_SND_BUF 4096
-#endif /* __LWIPOPTS_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h
deleted file mode 100644
index 6354e1c..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __NETIF_NRWLANIF_H__
-#define __NETIF_NRWLANIF_H__
-
-#include "lwip/netif.h"
-#include "lwip/err.h"
-
-err_t wlif_init(struct netif *netif);
-void wlif_poll(struct netif *netif);
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/netif/wlif.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/netif/wlif.c
deleted file mode 100644
index 55d5b6a..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/netif/wlif.c
+++ /dev/null
@@ -1,386 +0,0 @@
-#include "lwip/opt.h"
-#include "lwip/def.h"
-#include "lwip/mem.h"
-#include "lwip/pbuf.h"
-#include "lwip/stats.h"
-#include "lwip/sys.h"
-#include "netif/etharp.h"
-#include "netif/wlif.h"
-#include <wl_api.h>
-#include <wlap_api.h>
-
-#define IFNAME0 'w'
-#define IFNAME1 'l'
-
-/* the queue size will affect the tx performance when using power save.
- * A small queue will quickly become filled up if we have to wake the device
- * before the actual transmission can occur. When the queue is filled up, the
- * packets will be discarded and retransmission will be handled by the upper
- * layers. In case of TCP, the retransmission time might be quite long.
- *
- * If the packets can be put in the pqueue instead, all the packets
- * (if possible) will be transmitted when the device wakes up, so we don't have
- * to wait for retransmission from upper layers.
- */
-#define PQUEUE_SIZE 8
-
-struct wlif_t {
- volatile uint8_t rx_pending;
-
- struct {
- struct pbuf* buf[PQUEUE_SIZE];
- uint8_t first;
- uint8_t last;
- } pqueue;
-};
-
-#define PQUEUE_EMPTY(q) (q.last == q.first)
-#define PQUEUE_FULL(q) ((q.last + 1) % PQUEUE_SIZE == q.first)
-#define PQUEUE_FIRST(q) (q.buf[q.first])
-#define PQUEUE_DEQUEUE(q) \
- ({ \
- struct pbuf* __p = PQUEUE_FIRST(q); \
- q.first = (q.first + 1) % PQUEUE_SIZE; \
- __p; \
- })
-#define PQUEUE_ENQUEUE(q, p) \
- ({ \
- q.buf[q.last] = p; \
- q.last = (q.last + 1) % PQUEUE_SIZE; \
- })
-
-
-static err_t process_pqueue(struct netif* netif)
-{
- struct pbuf *p;
- struct pbuf *q;
- int status;
- struct wlif_t *priv = (struct wlif_t*) netif->state;
-
- /* queue empty? finished */
- if (PQUEUE_EMPTY(priv->pqueue))
- return ERR_OK;
-
- /* get first packet in queue */
- p = PQUEUE_FIRST(priv->pqueue);
-
- status = wl_process_tx(
- p->payload + WL_HEADER_SIZE, /* ptr to eth hdr */
- p->len - WL_HEADER_SIZE, /* input buffer len */
- p->tot_len - WL_HEADER_SIZE, /* pkt len */
- p->payload, /* ptr to WE hdr */
- 0, /* prio */
- p); /* pkt handle */
-
- /* if we fail due to power save mode, leave packet in queue and
- * try again when target is awake again (upon WL_RX_EVENT_WAKEUP).
- */
- if (status == WL_RESOURCES)
- return ERR_IF;
-
- /* if we fail for another reason, just discard the packet */
- if (status != WL_SUCCESS) {
- PQUEUE_DEQUEUE(priv->pqueue);
- pbuf_free(p);
- return ERR_IF;
- }
-
- /* Send the data from the pbuf to the interface, one pbuf at a
- * time. The size of the data in each pbuf is kept in the ->len
- * variable.
- */
- for (q = p; q != NULL; q = q->next)
- wl_tx(q->payload, q->len);
-
- /* remove packet from queue and dec refcnt */
- PQUEUE_DEQUEUE(priv->pqueue);
- pbuf_free(p);
-
- LINK_STATS_INC(link.xmit);
-
- /* tell caller to process next packet */
- return ERR_INPROGRESS;
-}
-
-
-/**
- * Called in interrupt context when we can read more data from the mac.
- *
- */
-static void
-rx_isr(void* ctx)
-{
- struct netif *netif = ctx;
- struct wlif_t *priv = (struct wlif_t*) netif->state;
- priv->rx_pending = 1;
-}
-
-
-/**
- * In this function, the hardware should be initialized.
- * Called from wlif_init().
- *
- * @param netif the already initialized lwip network interface structure
- * for this ethernetif
- */
-static err_t
-low_level_init(struct netif *netif)
-{
- /* device capabilities */
- netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP |
- NETIF_FLAG_IGMP;
-
- /* NETIF_FLAG_LINK_UP must be set only when we have an wlan assoc */
-
- /* set MAC hardware address length */
- netif->hwaddr_len = ETHARP_HWADDR_LEN;
-
- if (wl_get_mac_addr(netif->hwaddr) != WL_SUCCESS)
- return ERR_IF;
-
- /* maximum transfer unit */
- netif->mtu = 1500;
-
- return ERR_OK;
-}
-
-
-/**
- * This function should do the actual transmission of the packet. The packet is
- * contained in the pbuf that is passed to the function. This pbuf
- * might be chained.
- *
- * @param netif the lwip network interface structure for this ethernetif
- * @param p the MAC packet to send (e.g. IP packet including MAC addresses and
- * type)
- * @return ERR_OK if the packet could be sent
- * an err_t value if the packet couldn't be sent
- *
- * @note Returning ERR_MEM here if a DMA queue of your MAC is full can lead to
- * strange results. You might consider waiting for space in the DMA queue
- * to become availale since the stack doesn't retry to send a packet
- * dropped because of memory failure (except for the TCP timers).
- */
-static err_t
-low_level_output(struct netif *netif, struct pbuf *p)
-{
- struct wlif_t* priv = (struct wlif_t*) netif->state;
-
- /* must have a linear buffer containing up to and including
- * the ethernet header
- */
- if (p->len < sizeof(struct eth_hdr))
- return ERR_IF;
-
- /* queue full? drop packet */
- if (PQUEUE_FULL(priv->pqueue))
- return ERR_INPROGRESS; /* no one seems to check this anyway */
-
- /* queue packet */
- PQUEUE_ENQUEUE(priv->pqueue, p);
- pbuf_ref(p);
- while (process_pqueue(netif) == ERR_INPROGRESS);
- return ERR_OK; /* no one seems to check this anyway */
-}
-
-/**
- * Should allocate a pbuf and transfer the bytes of the incoming
- * packet from the interface into the pbuf.
- *
- * @param netif the lwip network interface structure for this ethernetif
- * @return a pbuf filled with the received packet (including MAC header)
- * NULL on memory error
- */
-static struct pbuf *
-low_level_input(struct netif *netif)
-{
- struct pbuf *p;
- struct wlif_t *priv = (struct wlif_t*) netif->state;
-
- char *stripped_pkt;
- size_t stripped_pkt_len;
- u16_t vlan;
- u8_t rx_hdr_size;
- int status;
- u16_t len;
-
- /* maximum packet length from wl_rx() */
- len = WL_MAX_PKT_LEN;
-
- /* We allocate a continous pbuf */
- p = pbuf_alloc(PBUF_RAW, len, PBUF_RAM);
- if (p == NULL) {
- LWIP_DEBUGF(NETIF_DEBUG, ("low_level_input: fail to alloc "
- "pbuf of len:%"S32_F"\n", len));
- return NULL;
- }
-
- /* Read the entire msg */
- priv->rx_pending = 0;
- wl_rx(p->payload, &len);
- if (len == 0) {
- LWIP_DEBUGF(NETIF_DEBUG, ("low_level_input: len was 0"));
- return NULL;
- }
-
- status = wl_process_rx(
- p->payload, /* input buf */
- len, /* input buf length */
- &stripped_pkt,
- &stripped_pkt_len,
- &vlan);
-
- if (status == WL_ABSORBED) {
- LWIP_DEBUGF(NETIF_DEBUG, ("low_level_input: absorbed"));
- pbuf_free(p);
- return NULL;
- }
-
- /* Data packet, remove padding */
- rx_hdr_size = stripped_pkt - (char*) p->payload;
- pbuf_realloc(p, stripped_pkt_len + rx_hdr_size);
-
- LINK_STATS_INC(link.recv);
- return p;
-}
-
-
-/**
- * This function will be called by wlif_poll() when a packet has been received
- * from the mac. Then the type of the received packet is determined and
- * the appropriate input function is called.
- *
- * @param netif the lwip network interface structure for this ethernetif
- */
-static void
-wlif_input(struct netif *netif)
-{
- struct eth_hdr *ethhdr;
- struct pbuf *p;
-
- /* move received packet into a new pbuf */
- p = low_level_input(netif);
-
- /* no packet could be read, silently ignore this */
- if (p == NULL)
- return;
-
- /* points to packet payload, which starts with an Ethernet header */
- ethhdr = p->payload;
- switch (htons(ethhdr->type)) {
- /* IP or ARP packet? */
- case ETHTYPE_IP:
- case ETHTYPE_ARP:
-#if PPPOE_SUPPORT
- /* PPPoE packet? */
- case ETHTYPE_PPPOEDISC:
- case ETHTYPE_PPPOE:
-#endif /* PPPOE_SUPPORT */
- /* full packet send to tcpip_thread to process */
- if (netif->input(p, netif) != ERR_OK) {
- LWIP_DEBUGF(NETIF_DEBUG,
- ("wlif_input: IP input error\n"));
- pbuf_free(p);
- p = NULL;
- }
- break;
-
- default:
- pbuf_free(p);
- p = NULL;
- break;
- }
-}
-
-static ssize_t pkt_read_cb(char *dst,
- void *src_handle,
- size_t read_len,
- int offset) {
- ssize_t rc;
-
- rc = pbuf_copy_partial((struct pbuf *)src_handle,
- dst,
- read_len,
- offset + WL_HEADER_SIZE);
- if ( 0 == rc ) {
- return -1;
- }
-
- return rc;
-}
-
-/**
- * Should be called at the beginning of the program to set up the
- * network interface. It calls the function low_level_init() to do the
- * actual setup of the hardware.
- *
- * This function should be passed as a parameter to netif_add().
- *
- * @param netif the lwip network interface structure for this ethernetif
- * @return ERR_OK if the loopif is initialized
- * ERR_MEM if private data couldn't be allocated
- * any other err_t on error
- */
-err_t
-wlif_init(struct netif *netif)
-{
- static struct wlif_t wlif;
-
- LWIP_ASSERT("netif != NULL", (netif != NULL));
-
-#if LWIP_NETIF_HOSTNAME
- /* Initialize interface hostname */
- if ( NULL == netif->hostname ) {
- netif->hostname = "wlif";
- }
-#endif /* LWIP_NETIF_HOSTNAME */
-
- netif->state = &wlif;
- netif->name[0] = IFNAME0;
- netif->name[1] = IFNAME1;
-
- /* We directly use etharp_output() here to save a function call.
- * You can instead declare your own function an call etharp_output()
- * from it if you have to do some checks before sending (e.g. if link
- * is available...) */
- netif->output = etharp_output;
- netif->linkoutput = low_level_output;
-
- wl_register_rx_isr(rx_isr, netif);
- wl_register_pkt_read_cb(pkt_read_cb);
-
- /* initialize the hardware */
- return low_level_init(netif);
-}
-
-
-/**
- *
- */
-void
-wlif_poll(struct netif* netif)
-{
- struct wlif_t* priv = NULL;
-
- /* wl api forward progress */
- wl_poll();
-
- if (netif)
- priv = (struct wlif_t*) netif->state;
-
- /* wlif_init() not called yet? */
- if (priv == NULL)
- return;
-
- /* no packets pending? */
- if (!priv->rx_pending)
- return;
-
- /* read the pending packet */
- wlif_input(netif);
-
- /* send any packets that was queued due to filled up target queue
- * or power save mode.
- */
- process_pqueue(netif);
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/readme.txt b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/readme.txt
deleted file mode 100644
index c95f30e..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-This directory is specific to the WIFI H&D SPB104 components (\COMPONENTS\WIFI\HD_SPB104).
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.c
deleted file mode 100644
index 09790c2..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.c
+++ /dev/null
@@ -1,571 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Abstraction layer for memory interfaces.
- *
- * This module contains the interfaces:
- * - MEM <-> USB;
- * - MEM <-> RAM;
- * - MEM <-> MEM.
- *
- * This module may be configured and expanded to support the following features:
- * - write-protected globals;
- * - password-protected data;
- * - specific features;
- * - etc.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-//_____ I N C L U D E S ____________________________________________________
-
-#include "compiler.h"
-#include "preprocessor.h"
-#ifdef FREERTOS_USED
-#include "FreeRTOS.h"
-#include "semphr.h"
-#endif
-#include "ctrl_access.h"
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-#ifdef FREERTOS_USED
-
-/*! \name LUN Access Protection Macros
- */
-//! @{
-
-/*! \brief Locks accesses to LUNs.
- *
- * \return \c TRUE if the access was successfully locked, else \c FALSE.
- */
-#define Ctrl_access_lock() ctrl_access_lock()
-
-/*! \brief Unlocks accesses to LUNs.
- */
-#define Ctrl_access_unlock() xSemaphoreGive(ctrl_access_semphr)
-
-//! @}
-
-//! Handle to the semaphore protecting accesses to LUNs.
-static xSemaphoreHandle ctrl_access_semphr = NULL;
-
-#else
-
-/*! \name LUN Access Protection Macros
- */
-//! @{
-
-/*! \brief Locks accesses to LUNs.
- *
- * \return \c TRUE if the access was successfully locked, else \c FALSE.
- */
-#define Ctrl_access_lock() TRUE
-
-/*! \brief Unlocks accesses to LUNs.
- */
-#define Ctrl_access_unlock()
-
-//! @}
-
-#endif // FREERTOS_USED
-
-
-#if MAX_LUN
-
-/*! \brief Initializes an entry of the LUN descriptor table.
- *
- * \param lun Logical Unit Number.
- *
- * \return LUN descriptor table entry initializer.
- */
-#if ACCESS_USB == ENABLED && ACCESS_MEM_TO_RAM == ENABLED
-#define Lun_desc_entry(lun) \
- {\
- TPASTE3(Lun_, lun, _test_unit_ready),\
- TPASTE3(Lun_, lun, _read_capacity),\
- TPASTE3(Lun_, lun, _wr_protect),\
- TPASTE3(Lun_, lun, _removal),\
- TPASTE3(Lun_, lun, _usb_read_10),\
- TPASTE3(Lun_, lun, _usb_write_10),\
- TPASTE3(Lun_, lun, _mem_2_ram),\
- TPASTE3(Lun_, lun, _ram_2_mem),\
- TPASTE3(LUN_, lun, _NAME)\
- }
-#elif ACCESS_USB == ENABLED
-#define Lun_desc_entry(lun) \
- {\
- TPASTE3(Lun_, lun, _test_unit_ready),\
- TPASTE3(Lun_, lun, _read_capacity),\
- TPASTE3(Lun_, lun, _wr_protect),\
- TPASTE3(Lun_, lun, _removal),\
- TPASTE3(Lun_, lun, _usb_read_10),\
- TPASTE3(Lun_, lun, _usb_write_10),\
- TPASTE3(LUN_, lun, _NAME)\
- }
-#elif ACCESS_MEM_TO_RAM == ENABLED
-#define Lun_desc_entry(lun) \
- {\
- TPASTE3(Lun_, lun, _test_unit_ready),\
- TPASTE3(Lun_, lun, _read_capacity),\
- TPASTE3(Lun_, lun, _wr_protect),\
- TPASTE3(Lun_, lun, _removal),\
- TPASTE3(Lun_, lun, _mem_2_ram),\
- TPASTE3(Lun_, lun, _ram_2_mem),\
- TPASTE3(LUN_, lun, _NAME)\
- }
-#else
-#define Lun_desc_entry(lun) \
- {\
- TPASTE3(Lun_, lun, _test_unit_ready),\
- TPASTE3(Lun_, lun, _read_capacity),\
- TPASTE3(Lun_, lun, _wr_protect),\
- TPASTE3(Lun_, lun, _removal),\
- TPASTE3(LUN_, lun, _NAME)\
- }
-#endif
-
-//! LUN descriptor table.
-static const struct
-{
- Ctrl_status (*test_unit_ready)(void);
- Ctrl_status (*read_capacity)(U32 *);
- Bool (*wr_protect)(void);
- Bool (*removal)(void);
-#if ACCESS_USB == ENABLED
- Ctrl_status (*usb_read_10)(U32, U16);
- Ctrl_status (*usb_write_10)(U32, U16);
-#endif
-#if ACCESS_MEM_TO_RAM == ENABLED
- Ctrl_status (*mem_2_ram)(U32, void *);
- Ctrl_status (*ram_2_mem)(U32, const void *);
-#endif
- const char *name;
-} lun_desc[MAX_LUN] =
-{
-#if LUN_0 == ENABLE
- Lun_desc_entry(0),
-#endif
-#if LUN_1 == ENABLE
- Lun_desc_entry(1),
-#endif
-#if LUN_2 == ENABLE
- Lun_desc_entry(2),
-#endif
-#if LUN_3 == ENABLE
- Lun_desc_entry(3),
-#endif
-#if LUN_4 == ENABLE
- Lun_desc_entry(4),
-#endif
-#if LUN_5 == ENABLE
- Lun_desc_entry(5),
-#endif
-#if LUN_6 == ENABLE
- Lun_desc_entry(6),
-#endif
-#if LUN_7 == ENABLE
- Lun_desc_entry(7)
-#endif
-};
-
-#endif
-
-
-#if GLOBAL_WR_PROTECT == ENABLED
-Bool g_wr_protect;
-#endif
-
-
-/*! \name Control Interface
- */
-//! @{
-
-
-#ifdef FREERTOS_USED
-
-Bool ctrl_access_init(void)
-{
- // If the handle to the protecting semaphore is not valid,
- if (!ctrl_access_semphr)
- {
- // try to create the semaphore.
- vSemaphoreCreateBinary(ctrl_access_semphr);
-
- // If the semaphore could not be created, there is no backup solution.
- if (!ctrl_access_semphr) return FALSE;
- }
-
- return TRUE;
-}
-
-
-/*! \brief Locks accesses to LUNs.
- *
- * \return \c TRUE if the access was successfully locked, else \c FALSE.
- */
-static Bool ctrl_access_lock(void)
-{
- // If the semaphore could not be created, there is no backup solution.
- if (!ctrl_access_semphr) return FALSE;
-
- // Wait for the semaphore.
- while (!xSemaphoreTake(ctrl_access_semphr, portMAX_DELAY));
-
- return TRUE;
-}
-
-#endif // FREERTOS_USED
-
-
-U8 get_nb_lun(void)
-{
-#if MEM_USB == ENABLE
- U8 nb_lun;
-
- if (!Ctrl_access_lock()) return MAX_LUN;
-
- nb_lun = MAX_LUN + host_get_lun();
-
- Ctrl_access_unlock();
-
- return nb_lun;
-#else
- return MAX_LUN;
-#endif
-}
-
-
-U8 get_cur_lun(void)
-{
- return LUN_ID_0;
-}
-
-
-Ctrl_status mem_test_unit_ready(U8 lun)
-{
- Ctrl_status status;
-
- if (!Ctrl_access_lock()) return CTRL_FAIL;
-
- status =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].test_unit_ready() :
-#endif
-#if LUN_USB == ENABLE
- Lun_usb_test_unit_ready(lun - LUN_ID_USB);
-#else
- CTRL_FAIL;
-#endif
-
- Ctrl_access_unlock();
-
- return status;
-}
-
-
-Ctrl_status mem_read_capacity(U8 lun, U32 *u32_nb_sector)
-{
- Ctrl_status status;
-
- if (!Ctrl_access_lock()) return CTRL_FAIL;
-
- status =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].read_capacity(u32_nb_sector) :
-#endif
-#if LUN_USB == ENABLE
- Lun_usb_read_capacity(lun - LUN_ID_USB, u32_nb_sector);
-#else
- CTRL_FAIL;
-#endif
-
- Ctrl_access_unlock();
-
- return status;
-}
-
-
-U8 mem_sector_size(U8 lun)
-{
- U8 sector_size;
-
- if (!Ctrl_access_lock()) return 0;
-
- sector_size =
-#if MAX_LUN
- (lun < MAX_LUN) ? 1 :
-#endif
-#if LUN_USB == ENABLE
- Lun_usb_read_sector_size(lun - LUN_ID_USB);
-#else
- 0;
-#endif
-
- Ctrl_access_unlock();
-
- return sector_size;
-}
-
-
-Bool mem_wr_protect(U8 lun)
-{
- Bool wr_protect;
-
- if (!Ctrl_access_lock()) return TRUE;
-
- wr_protect =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].wr_protect() :
-#endif
-#if LUN_USB == ENABLE
- Lun_usb_wr_protect(lun - LUN_ID_USB);
-#else
- TRUE;
-#endif
-
- Ctrl_access_unlock();
-
- return wr_protect;
-}
-
-
-Bool mem_removal(U8 lun)
-{
- Bool removal;
-
- if (!Ctrl_access_lock()) return TRUE;
-
- removal =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].removal() :
-#endif
-#if LUN_USB == ENABLE
- Lun_usb_removal();
-#else
- TRUE;
-#endif
-
- Ctrl_access_unlock();
-
- return removal;
-}
-
-
-const char *mem_name(U8 lun)
-{
- return
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].name :
-#endif
-#if LUN_USB == ENABLE
- LUN_USB_NAME;
-#else
- NULL;
-#endif
-}
-
-
-//! @}
-
-
-#if ACCESS_USB == ENABLED
-
-/*! \name MEM <-> USB Interface
- */
-//! @{
-
-
-Ctrl_status memory_2_usb(U8 lun, U32 addr, U16 nb_sector)
-{
- Ctrl_status status;
-
- if (!Ctrl_access_lock()) return CTRL_FAIL;
-
- memory_start_read_action(nb_sector);
- status =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].usb_read_10(addr, nb_sector) :
-#endif
- CTRL_FAIL;
- memory_stop_read_action();
-
- Ctrl_access_unlock();
-
- return status;
-}
-
-
-Ctrl_status usb_2_memory(U8 lun, U32 addr, U16 nb_sector)
-{
- Ctrl_status status;
-
- if (!Ctrl_access_lock()) return CTRL_FAIL;
-
- memory_start_write_action(nb_sector);
- status =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].usb_write_10(addr, nb_sector) :
-#endif
- CTRL_FAIL;
- memory_stop_write_action();
-
- Ctrl_access_unlock();
-
- return status;
-}
-
-
-//! @}
-
-#endif // ACCESS_USB == ENABLED
-
-
-#if ACCESS_MEM_TO_RAM == ENABLED
-
-/*! \name MEM <-> RAM Interface
- */
-//! @{
-
-
-Ctrl_status memory_2_ram(U8 lun, U32 addr, void *ram)
-{
- Ctrl_status status;
-
- if (!Ctrl_access_lock()) return CTRL_FAIL;
-
- memory_start_read_action(1);
- status =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].mem_2_ram(addr, ram) :
-#endif
-#if LUN_USB == ENABLE
- Lun_usb_mem_2_ram(addr, ram);
-#else
- CTRL_FAIL;
-#endif
- memory_stop_read_action();
-
- Ctrl_access_unlock();
-
- return status;
-}
-
-
-Ctrl_status ram_2_memory(U8 lun, U32 addr, const void *ram)
-{
- Ctrl_status status;
-
- if (!Ctrl_access_lock()) return CTRL_FAIL;
-
- memory_start_write_action(1);
- status =
-#if MAX_LUN
- (lun < MAX_LUN) ? lun_desc[lun].ram_2_mem(addr, ram) :
-#endif
-#if LUN_USB == ENABLE
- Lun_usb_ram_2_mem(addr, ram);
-#else
- CTRL_FAIL;
-#endif
- memory_stop_write_action();
-
- Ctrl_access_unlock();
-
- return status;
-}
-
-
-//! @}
-
-#endif // ACCESS_MEM_TO_RAM == ENABLED
-
-
-#if ACCESS_STREAM == ENABLED
-
-/*! \name Streaming MEM <-> MEM Interface
- */
-//! @{
-
-
- #if ACCESS_MEM_TO_MEM == ENABLED
-
-#include "fat.h"
-
-Ctrl_status stream_mem_to_mem(U8 src_lun, U32 src_addr, U8 dest_lun, U32 dest_addr, U16 nb_sector)
-{
-#if (defined __GNUC__) && (defined __AVR32__)
- __attribute__((__aligned__(4)))
-#elif (defined __ICCAVR32__)
- #pragma data_alignment = 4
-#endif
- static U8 sector_buf[FS_512B];
- Ctrl_status status = CTRL_GOOD;
-
- while (nb_sector--)
- {
- if ((status = memory_2_ram(src_lun, src_addr++, sector_buf)) != CTRL_GOOD) break;
- if ((status = ram_2_memory(dest_lun, dest_addr++, sector_buf)) != CTRL_GOOD) break;
- }
-
- return status;
-}
-
- #endif // ACCESS_MEM_TO_MEM == ENABLED
-
-
-Ctrl_status stream_state(U8 id)
-{
- return CTRL_GOOD;
-}
-
-
-U16 stream_stop(U8 id)
-{
- return 0;
-}
-
-
-//! @}
-
-#endif // ACCESS_STREAM == ENABLED
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.h
deleted file mode 100644
index 358bf65..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.h
+++ /dev/null
@@ -1,369 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Abstraction layer for memory interfaces.
- *
- * This module contains the interfaces:
- * - MEM <-> USB;
- * - MEM <-> RAM;
- * - MEM <-> MEM.
- *
- * This module may be configured and expanded to support the following features:
- * - write-protected globals;
- * - password-protected data;
- * - specific features;
- * - etc.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _CTRL_ACCESS_H_
-#define _CTRL_ACCESS_H_
-
-#include "compiler.h"
-#include "conf_access.h"
-
-
-//! Status returned by CTRL_ACCESS interfaces.
-typedef enum
-{
- CTRL_GOOD = PASS, //!< Success, memory ready.
- CTRL_FAIL = FAIL, //!< An error occurred.
- CTRL_NO_PRESENT = FAIL + 1, //!< Memory unplugged.
- CTRL_BUSY = FAIL + 2 //!< Memory not initialized or changed.
-} Ctrl_status;
-
-
-// FYI: Each Logical Unit Number (LUN) corresponds to a memory.
-
-// Check LUN defines.
-#ifndef LUN_0
- #error LUN_0 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_1
- #error LUN_1 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_2
- #error LUN_2 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_3
- #error LUN_3 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_4
- #error LUN_4 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_5
- #error LUN_5 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_6
- #error LUN_6 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_7
- #error LUN_7 must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-#ifndef LUN_USB
- #error LUN_USB must be defined as ENABLE or DISABLE in conf_access.h
-#endif
-
-/*! \name LUN IDs
- */
-//! @{
-#define LUN_ID_0 (0) //!< First static LUN.
-#define LUN_ID_1 (LUN_ID_0 + LUN_0)
-#define LUN_ID_2 (LUN_ID_1 + LUN_1)
-#define LUN_ID_3 (LUN_ID_2 + LUN_2)
-#define LUN_ID_4 (LUN_ID_3 + LUN_3)
-#define LUN_ID_5 (LUN_ID_4 + LUN_4)
-#define LUN_ID_6 (LUN_ID_5 + LUN_5)
-#define LUN_ID_7 (LUN_ID_6 + LUN_6)
-#define MAX_LUN (LUN_ID_7 + LUN_7) //!< Number of static LUNs.
-#define LUN_ID_USB (MAX_LUN) //!< First dynamic LUN (USB host mass storage).
-//! @}
-
-
-// Include LUN header files.
-#if LUN_0 == ENABLE
- #include LUN_0_INCLUDE
-#endif
-#if LUN_1 == ENABLE
- #include LUN_1_INCLUDE
-#endif
-#if LUN_2 == ENABLE
- #include LUN_2_INCLUDE
-#endif
-#if LUN_3 == ENABLE
- #include LUN_3_INCLUDE
-#endif
-#if LUN_4 == ENABLE
- #include LUN_4_INCLUDE
-#endif
-#if LUN_5 == ENABLE
- #include LUN_5_INCLUDE
-#endif
-#if LUN_6 == ENABLE
- #include LUN_6_INCLUDE
-#endif
-#if LUN_7 == ENABLE
- #include LUN_7_INCLUDE
-#endif
-#if LUN_USB == ENABLE
- #include LUN_USB_INCLUDE
-#endif
-
-
-// Check the configuration of write protection in conf_access.h.
-#ifndef GLOBAL_WR_PROTECT
- #error GLOBAL_WR_PROTECT must be defined as ENABLED or DISABLED in conf_access.h
-#endif
-
-
-#if GLOBAL_WR_PROTECT == ENABLED
-
-//! Write protect.
-extern Bool g_wr_protect;
-
-#endif
-
-
-/*! \name Control Interface
- */
-//! @{
-
-#ifdef FREERTOS_USED
-
-/*! \brief Initializes the LUN access locker.
- *
- * \return \c TRUE if the locker was successfully initialized, else \c FALSE.
- */
-extern Bool ctrl_access_init(void);
-
-#endif // FREERTOS_USED
-
-/*! \brief Returns the number of LUNs.
- *
- * \return Number of LUNs in the system.
- */
-extern U8 get_nb_lun(void);
-
-/*! \brief Returns the current LUN.
- *
- * \return Current LUN.
- *
- * \todo Implement.
- */
-extern U8 get_cur_lun(void);
-
-/*! \brief Tests the memory state and initializes the memory if required.
- *
- * The TEST UNIT READY SCSI primary command allows an application client to poll
- * a LUN until it is ready without having to allocate memory for returned data.
- *
- * This command may be used to check the media status of LUNs with removable
- * media.
- *
- * \param lun Logical Unit Number.
- *
- * \return Status.
- */
-extern Ctrl_status mem_test_unit_ready(U8 lun);
-
-/*! \brief Returns the address of the last valid sector (512 bytes) in the
- * memory.
- *
- * \param lun Logical Unit Number.
- * \param u32_nb_sector Pointer to the address of the last valid sector.
- *
- * \return Status.
- */
-extern Ctrl_status mem_read_capacity(U8 lun, U32 *u32_nb_sector);
-
-/*! \brief Returns the size of the physical sector.
- *
- * \param lun Logical Unit Number.
- *
- * \return Sector size (unit: 512 bytes).
- */
-extern U8 mem_sector_size(U8 lun);
-
-/*! \brief Returns the write-protection state of the memory.
- *
- * \param lun Logical Unit Number.
- *
- * \return \c TRUE if the memory is write-protected, else \c FALSE.
- *
- * \note Only used by removable memories with hardware-specific write
- * protection.
- */
-extern Bool mem_wr_protect(U8 lun);
-
-/*! \brief Tells whether the memory is removable.
- *
- * \param lun Logical Unit Number.
- *
- * \return \c TRUE if the memory is removable, else \c FALSE.
- */
-extern Bool mem_removal(U8 lun);
-
-/*! \brief Returns a pointer to the LUN name.
- *
- * \param lun Logical Unit Number.
- *
- * \return Pointer to the LUN name string.
- */
-extern const char *mem_name(U8 lun);
-
-//! @}
-
-
-#if ACCESS_USB == ENABLED
-
-/*! \name MEM <-> USB Interface
- */
-//! @{
-
-/*! \brief Tranfers data from the memory to USB.
- *
- * \param lun Logical Unit Number.
- * \param addr Address of first memory sector to read.
- * \param nb_sector Number of sectors to transfer.
- *
- * \return Status.
- */
-extern Ctrl_status memory_2_usb(U8 lun, U32 addr, U16 nb_sector);
-
-/*! \brief Tranfers data from USB to the memory.
- *
- * \param lun Logical Unit Number.
- * \param addr Address of first memory sector to write.
- * \param nb_sector Number of sectors to transfer.
- *
- * \return Status.
- */
-extern Ctrl_status usb_2_memory(U8 lun, U32 addr, U16 nb_sector);
-
-//! @}
-
-#endif // ACCESS_USB == ENABLED
-
-
-#if ACCESS_MEM_TO_RAM == ENABLED
-
-/*! \name MEM <-> RAM Interface
- */
-//! @{
-
-/*! \brief Copies 1 data sector from the memory to RAM.
- *
- * \param lun Logical Unit Number.
- * \param addr Address of first memory sector to read.
- * \param ram Pointer to RAM buffer to write.
- *
- * \return Status.
- */
-extern Ctrl_status memory_2_ram(U8 lun, U32 addr, void *ram);
-
-/*! \brief Copies 1 data sector from RAM to the memory.
- *
- * \param lun Logical Unit Number.
- * \param addr Address of first memory sector to write.
- * \param ram Pointer to RAM buffer to read.
- *
- * \return Status.
- */
-extern Ctrl_status ram_2_memory(U8 lun, U32 addr, const void *ram);
-
-//! @}
-
-#endif // ACCESS_MEM_TO_RAM == ENABLED
-
-
-#if ACCESS_STREAM == ENABLED
-
-/*! \name Streaming MEM <-> MEM Interface
- */
-//! @{
-
-//! Erroneous streaming data transfer ID.
-#define ID_STREAM_ERR 0xFF
-
- #if ACCESS_MEM_TO_MEM == ENABLED
-
-/*! \brief Copies data from one memory to another.
- *
- * \param src_lun Source Logical Unit Number.
- * \param src_addr Source address of first memory sector to read.
- * \param dest_lun Destination Logical Unit Number.
- * \param dest_addr Destination address of first memory sector to write.
- * \param nb_sector Number of sectors to copy.
- *
- * \return Status.
- */
-extern Ctrl_status stream_mem_to_mem(U8 src_lun, U32 src_addr, U8 dest_lun, U32 dest_addr, U16 nb_sector);
-
- #endif // ACCESS_MEM_TO_MEM == ENABLED
-
-/*! \brief Returns the state of a streaming data transfer.
- *
- * \param id Transfer ID.
- *
- * \return Status.
- *
- * \todo Implement.
- */
-extern Ctrl_status stream_state(U8 id);
-
-/*! \brief Stops a streaming data transfer.
- *
- * \param id Transfer ID.
- *
- * \return Number of remaining sectors.
- *
- * \todo Implement.
- */
-extern U16 stream_stop(U8 id);
-
-//! @}
-
-#endif // ACCESS_STREAM == ENABLED
-
-
-#endif // _CTRL_ACCESS_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.c
deleted file mode 100644
index fe8a2a0..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Macros and functions dedicated to debug purposes.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a USART module can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "compiler.h"
-#include "debug.h"
-#include "util.h"
-
-
-#if (defined __GNUC__)
-# include "malloc.h"
-
-U32 get_heap_curr_used_size( void )
-{
- struct mallinfo my_info=mallinfo();
- return my_info.uordblks;
-}
-
-U32 get_heap_total_used_size( void )
-{
- struct mallinfo my_info=mallinfo();
- return my_info.arena;
-}
-#endif
-
-U32 get_heap_free_size( void )
-{
- U32 high_mark= AVR32_SRAM_SIZE;
- U32 low_mark = 0;
- U32 size ;
- void* p_mem;
-
- size = (high_mark + low_mark)/2;
-
- do
- {
- p_mem = malloc(size);
- if( p_mem != NULL)
- { // Can allocate memory
- free(p_mem);
- low_mark = size;
- }
- else
- { // Can not allocate memory
- high_mark = size;
- }
-
- size = (high_mark + low_mark)/2;
- }
- while( (high_mark-low_mark) >1 );
-
- return size;
-}
-
-static void* round_trace_pbuf;
-static U32 round_trace_size;
-
-void uc3_round_trace_init(void* buf, U32 size)
-{
- round_trace_pbuf = buf;
- (*(U32*)round_trace_pbuf)=(U32)buf+4;
- round_trace_size = size;
-}
-
-void uc3_round_trace(U32 val)
-{
- //Disable_global_interrupt();
-
- U32* p_wr = (U32*)(*(U32*)round_trace_pbuf);
- *p_wr = val;
- p_wr++;
- if( ((U32)p_wr % round_trace_size) ==0 )
- p_wr= (U32*)round_trace_pbuf+1;
- *p_wr = 0xdeadbeef;
- *(U32*)round_trace_pbuf = (U32)p_wr;
-
- //Enable_global_interrupt();
-}
-
-void dump(char* _buf, uint16_t _count) {
-
- int i;
- for (i = 0; i < _count; ++i)
- {
- printk("0x%x ", _buf[i]);
- if ((i!=0)&&(i % 10 == 0))
- printk("\n\t");
- }
- printk("\n");
-}
-
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.h
deleted file mode 100644
index a832d7c..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Macros and functions dedicated to debug purposes.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a USART module can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _DEBUG_H_
-#define _DEBUG_H_
-
-#include "stringz.h"
-
-/*! \brief These macros are used to add traces memory.
- *
- * First, initialise the trace with Uc3_trace_init(pointer), giving the start address
- * of the memory location where will be stored the trace.
- * Use Uc3_trace(something) to store "something" into the memory. The end of the trace
- * is signaled by the "0xdeadbeef" pattern.
- */
-#define Uc3_trace_init(debug_addr) \
- *(U32*)(debug_addr)=debug_addr+4
-
-#define Uc3_trace(debug_addr, x) \
- *(U32*)(*(U32*)(debug_addr) ) = (U32)(x) ;\
- *(U32*)(*(U32*)(debug_addr)+4) = 0xdeadbeef ;\
- *(U32*)(debug_addr ) = *(U32*)(debug_addr)+4
-
-/*! \brief This macro is used to insert labels into assembly output.
- *
- */
-#define Insert_label(name) \
- __asm__ __volatile__ (STRINGZ(name)":");
-
-#if (defined __GNUC__)
-/*! \brief Returns the number of total of used bytes allocated from the HEAP.
- *
- * \retval total number of used bytes.
- */
-U32 get_heap_total_used_size( void );
-
-/*! \brief Returns the number of bytes currently used from the HEAP.
- *
- * \retval total number of used bytes.
- */
-U32 get_heap_curr_used_size( void );
-#endif
-
-/*! \brief Returns the number of free bytes in the HEAP.
- *
- * This funtion tries to allocate the maximum number of bytes by dichotomical method.
- *
- * \retval number of free bytes.
- */
-extern U32 get_heap_free_size( void );
-
-/*! \name Traces function using a round buffer
- */
-//! @{
-
-/*! \brief Initialize the trace using a round buffer.
- *
- * \param buf Base address of the buffer used for the trace.
- * \param size Size of the round buffer. Must be a power of 2.
- */
-void uc3_round_trace_init(void* buf, U32 size);
-
-/*! \brief Trace a data in the round buffer.
- *
- * The end of the trace is signaled by the "0xdeadbeef" pattern.
- * \param val Data to trace;
- */
-void uc3_round_trace(U32 val);
-
-//! @}
-
-
-#endif // _DEBUG_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.c
deleted file mode 100644
index 99e9274..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Strings and integers print module for debug purposes.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a USART module can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include "compiler.h"
-#include "gpio.h"
-#include "usart.h"
-#include "print_funcs.h"
-
-
-//! ASCII representation of hexadecimal digits.
-static const char HEX_DIGITS[16] = "0123456789ABCDEF";
-
-
-void init_dbg_rs232(long pba_hz)
-{
- init_dbg_rs232_ex(DBG_USART_BAUDRATE, pba_hz);
-}
-
-
-void init_dbg_rs232_ex(unsigned long baudrate, long pba_hz)
-{
- static const gpio_map_t DBG_USART_GPIO_MAP =
- {
- {DBG_USART_RX_PIN, DBG_USART_RX_FUNCTION},
- {DBG_USART_TX_PIN, DBG_USART_TX_FUNCTION}
- };
-
- // Options for debug USART.
- usart_options_t dbg_usart_options =
- {
- .baudrate = baudrate,
- .charlength = 8,
- .paritytype = USART_NO_PARITY,
- .stopbits = USART_1_STOPBIT,
- .channelmode = USART_NORMAL_CHMODE
- };
-
- // Setup GPIO for debug USART.
- gpio_enable_module(DBG_USART_GPIO_MAP,
- sizeof(DBG_USART_GPIO_MAP) / sizeof(DBG_USART_GPIO_MAP[0]));
-
- // Initialize it in RS232 mode.
- usart_init_rs232(DBG_USART, &dbg_usart_options, pba_hz);
-}
-
-
-void print_dbg(const char *str)
-{
- // Redirection to the debug USART.
- print(DBG_USART, str);
-}
-
-
-void print_dbg_char(int c)
-{
- // Redirection to the debug USART.
- print_char(DBG_USART, c);
-}
-
-
-void print_dbg_ulong(unsigned long n)
-{
- // Redirection to the debug USART.
- print_ulong(DBG_USART, n);
-}
-
-
-void print_dbg_char_hex(unsigned char n)
-{
- // Redirection to the debug USART.
- print_char_hex(DBG_USART, n);
-}
-
-
-void print_dbg_short_hex(unsigned short n)
-{
- // Redirection to the debug USART.
- print_short_hex(DBG_USART, n);
-}
-
-
-void print_dbg_hex(unsigned long n)
-{
- // Redirection to the debug USART.
- print_hex(DBG_USART, n);
-}
-
-
-void print(volatile avr32_usart_t *usart, const char *str)
-{
- // Invoke the USART driver to transmit the input string with the given USART.
- usart_write_line(usart, str);
-}
-
-
-void print_char(volatile avr32_usart_t *usart, int c)
-{
- // Invoke the USART driver to transmit the input character with the given USART.
- usart_putchar(usart, c);
-}
-
-
-void print_ulong(volatile avr32_usart_t *usart, unsigned long n)
-{
- char tmp[11];
- int i = sizeof(tmp) - 1;
-
- // Convert the given number to an ASCII decimal representation.
- tmp[i] = '\0';
- do
- {
- tmp[--i] = '0' + n % 10;
- n /= 10;
- } while (n);
-
- // Transmit the resulting string with the given USART.
- print(usart, tmp + i);
-}
-
-
-void print_char_hex(volatile avr32_usart_t *usart, unsigned char n)
-{
- char tmp[3];
- int i;
-
- // Convert the given number to an ASCII hexadecimal representation.
- tmp[2] = '\0';
- for (i = 1; i >= 0; i--)
- {
- tmp[i] = HEX_DIGITS[n & 0xF];
- n >>= 4;
- }
-
- // Transmit the resulting string with the given USART.
- print(usart, tmp);
-}
-
-
-void print_short_hex(volatile avr32_usart_t *usart, unsigned short n)
-{
- char tmp[5];
- int i;
-
- // Convert the given number to an ASCII hexadecimal representation.
- tmp[4] = '\0';
- for (i = 3; i >= 0; i--)
- {
- tmp[i] = HEX_DIGITS[n & 0xF];
- n >>= 4;
- }
-
- // Transmit the resulting string with the given USART.
- print(usart, tmp);
-}
-
-
-void print_hex(volatile avr32_usart_t *usart, unsigned long n)
-{
- char tmp[9];
- int i;
-
- // Convert the given number to an ASCII hexadecimal representation.
- tmp[8] = '\0';
- for (i = 7; i >= 0; i--)
- {
- tmp[i] = HEX_DIGITS[n & 0xF];
- n >>= 4;
- }
-
- // Transmit the resulting string with the given USART.
- print(usart, tmp);
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.h
deleted file mode 100644
index 38f931d..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Strings and integers print module for debug purposes.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a USART module can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _PRINT_FUNCS_H_
-#define _PRINT_FUNCS_H_
-
-#include <avr32/io.h>
-#include "board.h"
-
-
-/*! \name USART Settings for the Debug Module
- */
-//! @{
-#if BOARD == EVK1100
-# define DBG_USART (&AVR32_USART1)
-# define DBG_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION
-# define DBG_USART_BAUDRATE 57600
-#elif BOARD == EVK1101
-# define DBG_USART (&AVR32_USART1)
-# define DBG_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION
-# define DBG_USART_BAUDRATE 57600
-#elif BOARD == UC3C_EK
-# define DBG_USART (&AVR32_USART2)
-# define DBG_USART_RX_PIN AVR32_USART2_RXD_0_1_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART2_RXD_0_1_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART2_TXD_0_1_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART2_TXD_0_1_FUNCTION
-# define DBG_USART_BAUDRATE 57600
-#elif BOARD == EVK1104
-# define DBG_USART (&AVR32_USART1)
-# define DBG_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION
-# define DBG_USART_BAUDRATE 57600
-#elif BOARD == EVK1105
-# define DBG_USART (&AVR32_USART0)
-# define DBG_USART_RX_PIN AVR32_USART0_RXD_0_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART0_RXD_0_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART0_TXD_0_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART0_TXD_0_0_FUNCTION
-# define DBG_USART_BAUDRATE 57600
-#elif BOARD == STK1000
-# define DBG_USART (&AVR32_USART1)
-# define DBG_USART_RX_PIN AVR32_USART1_RXD_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART1_TXD_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_FUNCTION
-# define DBG_USART_BAUDRATE 115200
-#elif BOARD == NGW100
-# define DBG_USART (&AVR32_USART1)
-# define DBG_USART_RX_PIN AVR32_USART1_RXD_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART1_TXD_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_FUNCTION
-# define DBG_USART_BAUDRATE 115200
-#elif BOARD == STK600_RCUC3L0
-# define DBG_USART (&AVR32_USART1)
-# define DBG_USART_RX_PIN AVR32_USART1_RXD_0_1_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_1_FUNCTION
-// For the RX pin, connect STK600.PORTE.PE3 to STK600.RS232 SPARE.RXD
-# define DBG_USART_TX_PIN AVR32_USART1_TXD_0_1_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_1_FUNCTION
-// For the TX pin, connect STK600.PORTE.PE2 to STK600.RS232 SPARE.TXD
-# define DBG_USART_BAUDRATE 57600
-# define DBG_USART_CLOCK_MASK AVR32_USART1_CLK_PBA
-#elif BOARD == UC3L_EK
-# define DBG_USART (&AVR32_USART3)
-# define DBG_USART_RX_PIN AVR32_USART3_RXD_0_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART3_RXD_0_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART3_TXD_0_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART3_TXD_0_0_FUNCTION
-# define DBG_USART_BAUDRATE 57600
-# define DBG_USART_CLOCK_MASK AVR32_USART3_CLK_PBA
-#elif BOARD == ARDUINO
-# define DBG_USART (&AVR32_USART1)
-# define DBG_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN
-# define DBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION
-# define DBG_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN
-# define DBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION
-# define DBG_USART_BAUDRATE 57600
-# define DBG_USART_CLOCK_MASK AVR32_USART1_CLK_PBA
-#endif
-
-#if !defined(DBG_USART) || \
- !defined(DBG_USART_RX_PIN) || \
- !defined(DBG_USART_RX_FUNCTION) || \
- !defined(DBG_USART_TX_PIN) || \
- !defined(DBG_USART_TX_FUNCTION) || \
- !defined(DBG_USART_BAUDRATE)
-# error The USART configuration to use for debug on your board is missing
-#endif
-//! @}
-
-/*! \name VT100 Common Commands
- */
-//! @{
-#define CLEARSCR "\x1B[2J\x1B[;H" //!< Clear screen.
-#define CLEAREOL "\x1B[K" //!< Clear end of line.
-#define CLEAREOS "\x1B[J" //!< Clear end of screen.
-#define CLEARLCR "\x1B[0K" //!< Clear line cursor right.
-#define CLEARLCL "\x1B[1K" //!< Clear line cursor left.
-#define CLEARELN "\x1B[2K" //!< Clear entire line.
-#define CLEARCDW "\x1B[0J" //!< Clear cursor down.
-#define CLEARCUP "\x1B[1J" //!< Clear cursor up.
-#define GOTOYX "\x1B[%.2d;%.2dH" //!< Set cursor to (y, x).
-#define INSERTMOD "\x1B[4h" //!< Insert mode.
-#define OVERWRITEMOD "\x1B[4l" //!< Overwrite mode.
-#define DELAFCURSOR "\x1B[K" //!< Erase from cursor to end of line.
-#define CRLF "\r\n" //!< Carriage Return + Line Feed.
-//! @}
-
-/*! \name VT100 Cursor Commands
- */
-//! @{
-#define CURSON "\x1B[?25h" //!< Show cursor.
-#define CURSOFF "\x1B[?25l" //!< Hide cursor.
-//! @}
-
-/*! \name VT100 Character Commands
- */
-//! @{
-#define NORMAL "\x1B[0m" //!< Normal.
-#define BOLD "\x1B[1m" //!< Bold.
-#define UNDERLINE "\x1B[4m" //!< Underline.
-#define BLINKING "\x1B[5m" //!< Blink.
-#define INVVIDEO "\x1B[7m" //!< Inverse video.
-//! @}
-
-/*! \name VT100 Color Commands
- */
-//! @{
-#define CL_BLACK "\033[22;30m" //!< Black.
-#define CL_RED "\033[22;31m" //!< Red.
-#define CL_GREEN "\033[22;32m" //!< Green.
-#define CL_BROWN "\033[22;33m" //!< Brown.
-#define CL_BLUE "\033[22;34m" //!< Blue.
-#define CL_MAGENTA "\033[22;35m" //!< Magenta.
-#define CL_CYAN "\033[22;36m" //!< Cyan.
-#define CL_GRAY "\033[22;37m" //!< Gray.
-#define CL_DARKGRAY "\033[01;30m" //!< Dark gray.
-#define CL_LIGHTRED "\033[01;31m" //!< Light red.
-#define CL_LIGHTGREEN "\033[01;32m" //!< Light green.
-#define CL_YELLOW "\033[01;33m" //!< Yellow.
-#define CL_LIGHTBLUE "\033[01;34m" //!< Light blue.
-#define CL_LIGHTMAGENTA "\033[01;35m" //!< Light magenta.
-#define CL_LIGHTCYAN "\033[01;36m" //!< Light cyan.
-#define CL_WHITE "\033[01;37m" //!< White.
-//! @}
-
-
-/*! \brief Sets up DBG_USART with 8N1 at DBG_USART_BAUDRATE.
- *
- * \param pba_hz PBA clock frequency (Hz).
- */
-extern void init_dbg_rs232(long pba_hz);
-
-/*! \brief Sets up DBG_USART with 8N1 at a given baud rate.
- *
- * \param baudrate Baud rate to set DBG_USART to.
- * \param pba_hz PBA clock frequency (Hz).
- */
-extern void init_dbg_rs232_ex(unsigned long baudrate, long pba_hz);
-
-/*! \brief Prints a string of characters to DBG_USART.
- *
- * \param str The string of characters to print.
- */
-extern void print_dbg(const char *str);
-
-/*! \brief Prints a character to DBG_USART.
- *
- * \param c The character to print.
- */
-extern void print_dbg_char(int c);
-
-/*! \brief Prints an integer to DBG_USART in a decimal representation.
- *
- * \param n The integer to print.
- */
-extern void print_dbg_ulong(unsigned long n);
-
-/*! \brief Prints a char to DBG_USART in an hexadecimal representation.
- *
- * \param n The char to print.
- */
-extern void print_dbg_char_hex(unsigned char n);
-
-/*! \brief Prints a short integer to DBG_USART in an hexadecimal representation.
- *
- * \param n The short integer to print.
- */
-extern void print_dbg_short_hex(unsigned short n);
-
-/*! \brief Prints an integer to DBG_USART in an hexadecimal representation.
- *
- * \param n The integer to print.
- */
-extern void print_dbg_hex(unsigned long n);
-
-/*! \brief Prints a string of characters to a given USART.
- *
- * \param usart Base address of the USART instance to print to.
- * \param str The string of characters to print.
- */
-extern void print(volatile avr32_usart_t *usart, const char *str);
-
-/*! \brief Prints a character to a given USART.
- *
- * \param usart Base address of the USART instance to print to.
- * \param c The character to print.
- */
-extern void print_char(volatile avr32_usart_t *usart, int c);
-
-/*! \brief Prints an integer to a given USART in a decimal representation.
- *
- * \param usart Base address of the USART instance to print to.
- * \param n The integer to print.
- */
-extern void print_ulong(volatile avr32_usart_t *usart, unsigned long n);
-
-/*! \brief Prints a char to a given USART in an hexadecimal representation.
- *
- * \param usart Base address of the USART instance to print to.
- * \param n The char to print.
- */
-extern void print_char_hex(volatile avr32_usart_t *usart, unsigned char n);
-
-/*! \brief Prints a short integer to a given USART in an hexadecimal
- * representation.
- *
- * \param usart Base address of the USART instance to print to.
- * \param n The short integer to print.
- */
-extern void print_short_hex(volatile avr32_usart_t *usart, unsigned short n);
-
-/*! \brief Prints an integer to a given USART in an hexadecimal representation.
- *
- * \param usart Base address of the USART instance to print to.
- * \param n The integer to print.
- */
-extern void print_hex(volatile avr32_usart_t *usart, unsigned long n);
-
-
-#endif // _PRINT_FUNCS_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h
deleted file mode 100644
index e3ebea7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief NEWLIB_ADDONS CPU include file for AVR32.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef __AVR32_NEWLIB_ADDONS_CPU_H__
-#define __AVR32_NEWLIB_ADDONS_CPU_H__
-
-#include <_ansi.h>
-
-_BEGIN_STD_C
-
-#define CPU_HZ get_cpu_hz()
-
-void udelay(unsigned long usec);
-void set_cpu_hz(unsigned int clk_hz);
-unsigned int get_cpu_hz();
-
-_END_STD_C
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_exceptions.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_exceptions.h
deleted file mode 100644
index 31caf13..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_exceptions.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief NEWLIB_ADDONS exceptions include file for AVR32.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef __AVR32_NEWLIB_ADDONS_EXCEPTIONS_H__
-#define __AVR32_NEWLIB_ADDONS_EXCEPTIONS_H__
-
-#include <_ansi.h>
-
-_BEGIN_STD_C
-
-/*
- Exception vector offsets
-*/
-#define EVBA_UNRECOVERABLE 0x000
-#define EVBA_TLB_MULTIPLE 0x004
-#define EVBA_BUS_ERROR_DATA 0x008
-#define EVBA_BUS_ERROR_INSTR 0x00C
-#define EVBA_NMI 0x010
-#define EVBA_INSTR_ADDR 0x014
-#define EVBA_ITLB_MISS 0x050
-#define EVBA_ITLB_PROT 0x018
-#define EVBA_BREAKPOINT 0x01C
-#define EVBA_ILLEGAL_OPCODE 0x020
-#define EVBA_UNIMPLEMENTED 0x024
-#define EVBA_PRIVILEGE_VIOL 0x028
-#define EVBA_FLOATING_POINT 0x02C
-#define EVBA_COP_ABSENT 0x030
-#define EVBA_SCALL 0x100
-#define EVBA_DATA_ADDR_R 0x034
-#define EVBA_DATA_ADDR_W 0x038
-#define EVBA_DTLB_MISS_R 0x060
-#define EVBA_DTLB_MISS_W 0x070
-#define EVBA_DTLB_PROT_R 0x03C
-#define EVBA_DTLB_PROT_W 0x040
-#define EVBA_DTLB_MODIFIED 0x044
-
-
-/*
- Define the form of the function used when registering exceptions.
- The function should return the address which the exception should
- return to after the exception processing.
-*/
-
-typedef unsigned int (*__exception_handler)(int /*evba_offset*/, int /*return address*/);
-
-/*
- Define the form of the function used when registering a scall handler.
-*/
-
-typedef void (*__scall_handler)(int /*code*/, int /*p1*/, int /*p2*/
- , int /*p3*/, int /*p4*/);
-
-/*
- Function for registering an exception handler for the exception with
- offset given by evba_offset.
-*/
-void _register_exception_handler(__exception_handler handler, int evba_offset);
-
-/*
- Function for registering a scall handler which can be a arbirary
- function which uses r8-r12 for parameters.
-*/
-void _register_scall_handler(__scall_handler handler);
-
-/*
- Initialize exceptions. Must be called before registering exception handlers
- and needed to enable exceptions. 'evba' is the pointer to the exception
- vector. 'handler_table' is a pointer to an array where the pointers to
- the exception handlers are stored. This array must be at least 0x104 bytes
- and word aligned.
-*/
-void init_exceptions(void *evba, void *handler_table);
-
-_END_STD_C
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_interrupts.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_interrupts.h
deleted file mode 100644
index 76d81f7..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_interrupts.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief NEWLIB_ADDONS interrupts include file for AVR32.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef __AVR32_NEWLIB_ADDONS_INTERRUPTS_H__
-#define __AVR32_NEWLIB_ADDONS_INTERRUPTS_H__
-
-#include <_ansi.h>
-
-_BEGIN_STD_C
-
-#define INT_GRPS 64
-#define INT_LINES 32
-#define INTPR_BASE (__intc_base__ + 0x0000)
-#define INTREQ_BASE (__intc_base__ + 64*4)
-#define INTCAUSE_BASE (__intc_base__ + 2*64*4)
-
-//Register offsets
-#define INTLEVEL 30
-#define AUTOVECTOR 0
-#define AUTOVECTOR_BITS 14
-
-//Priorities
-#define INT0 0
-#define INT1 1
-#define INT2 2
-#define INT3 3
-
-
-typedef void (*__newlib_int_handler)(int /* int_grp*/, void */*user_handle*/);
-
-__newlib_int_handler register_interrupt(__newlib_int_handler handler, int int_grp, int line, int priority,
- .../* void *user_handle*/);
-void init_interrupts();
-void set_interrupts_base(void *base);
-
-_END_STD_C
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_io.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_io.h
deleted file mode 100644
index a725769..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_io.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief NEWLIB_ADDONS miscellaneous macros include file for AVR32.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef __AVR32_NEWLIB_ADDONS_IO_H__
-#define __AVR32_NEWLIB_ADDONS_IO_H__
-
-#include <_ansi.h>
-
-_BEGIN_STD_C
-
-typedef char u8;
-typedef unsigned int u32;
-
-#define __raw_writeb(v,a) (*(volatile unsigned char *)(a) = (v))
-#define __raw_writew(v,a) (*(volatile unsigned short *)(a) = (v))
-#define __raw_writel(v,a) (*(volatile unsigned int *)(a) = (v))
-
-#define __raw_readb(a) (*(volatile unsigned char *)(a))
-#define __raw_readw(a) (*(volatile unsigned short *)(a))
-#define __raw_readl(a) (*(volatile unsigned int *)(a))
-
-/* As long as I/O is only performed in P4 (or possibly P3), we're safe */
-#define writeb(v,a) __raw_writeb(v,a)
-#define writew(v,a) __raw_writew(v,a)
-#define writel(v,a) __raw_writel(v,a)
-
-#define readb(a) __raw_readb(a)
-#define readw(a) __raw_readw(a)
-#define readl(a) __raw_readl(a)
-
-/* Memory segments when segmentation is enabled */
-#define P0SEG 0x00000000
-#define P1SEG 0x80000000
-#define P2SEG 0xa0000000
-#define P3SEG 0xc0000000
-#define P4SEG 0xe0000000
-
-/* Returns the privileged segment base of a given address */
-#define PXSEG(a) (((unsigned long)(a)) & 0xe0000000)
-
-/* Returns the physical address of a PnSEG (n=1,2) address */
-#define PHYSADDR(a) (((unsigned long)(a)) & 0x1fffffff)
-
-/*
- * Map an address to a certain privileged segment
- */
-#define P1SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG))
-#define P2SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG))
-#define P3SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG))
-#define P4SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG))
-
-
-#define cached(addr) P1SEGADDR(addr)
-#define uncached(addr) P2SEGADDR(addr)
-#define physaddr(addr) PHYSADDR(addr)
-
-#define BF(field, value) \
- ({ union { \
- struct { \
- unsigned : 32 - field ## _OFFSET - field ## _SIZE ; \
- unsigned long __val: field ## _SIZE ; \
- }; \
- unsigned long __ul; \
- } __tmp; \
- __tmp.__ul = 0; \
- __tmp.__val = value; \
- __tmp.__ul;})
-
-#define BF_D(field, value) \
- ({ union { \
- struct { \
- unsigned long long : 64 - field ## _OFFSET - field ## _SIZE ; \
- unsigned long long __val: field ## _SIZE ; \
- }; \
- unsigned long long __ul; \
- } __tmp; \
- __tmp.__ul = 0; \
- __tmp.__val = value; \
- __tmp.__ul;})
-
-#define BFINS(var, field, value) \
- { union {\
- struct { \
- unsigned : 32 - field ## _OFFSET - field ## _SIZE ; \
- unsigned long __val: field ## _SIZE ; \
- }; \
- unsigned long __ul; \
- } __tmp; \
- __tmp.__ul = var; \
- __tmp.__val = value; \
- var = __tmp.__ul;}
-
-#define BFEXT(var, field) \
- ({ union {\
- struct { \
- unsigned : 32 - field ## _OFFSET - field ## _SIZE ; \
- unsigned long __val: field ## _SIZE ; \
- }; \
- unsigned long __ul; \
- } __tmp; \
- __tmp.__ul = var; \
- __tmp.__val; })
-
-#define BFINS_D(var, field, value) \
- { union {\
- struct { \
- unsigned long long : 64 - field ## _OFFSET - field ## _SIZE ; \
- unsigned long long __val: field ## _SIZE ; \
- }; \
- unsigned long long __ul; \
- } __tmp; \
- __tmp.__ul = var; \
- __tmp.__val = value; \
- var = __tmp.__ul;}
-
-#define BFEXT_D(var, field) \
- ({ union {\
- struct { \
- unsigned long long : 64 - field ## _OFFSET - field ## _SIZE ; \
- unsigned long long __val: field ## _SIZE ; \
- }; \
- unsigned long long __ul; \
- } __tmp; \
- __tmp.__ul = var; \
- __tmp.__val; })
-
-
-_END_STD_C
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_usart.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_usart.h
deleted file mode 100644
index 6c4697d..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_usart.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief NEWLIB_ADDONS USART include file for AVR32.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef __AVR32_NEWLIB_ADDONS_USART_H__
-#define __AVR32_NEWLIB_ADDONS_USART_H__
-
-#include <_ansi.h>
-
-#include "nlao_io.h"
-
-_BEGIN_STD_C
-
-struct usart3 {
- volatile u32 us_cr;
- volatile u32 us_mr;
- volatile u32 us_ier;
- volatile u32 us_idr;
- volatile u32 us_imr;
- volatile u32 us_csr;
- volatile u32 us_rhr;
- volatile u32 us_thr;
- volatile u32 us_brgr;
- volatile u32 us_rtor;
- volatile u32 us_ttgr;
- volatile u32 us_reserved[5];
- volatile u32 us_fidi;
- volatile u32 us_ner;
- volatile u32 us_xxr;
- volatile u32 us_if;
-};
-
-/* Register offsets */
-#define US_CR 0x0000
-#define US_MR 0x0004
-#define US_IER 0x0008
-#define US_IDR 0x000c
-#define US_IMR 0x0010
-#define US_CSR 0x0014
-#define US_RHR 0x0018
-#define US_THR 0x001c
-#define US_BRGR 0x0020
-#define US_RTOR 0x0024
-#define US_TTGR 0x0028
-
-#define US_FIDI 0x0040
-#define US_NER 0x0044
-#define US_XXR 0x0048
-#define US_IF 0x004c
-
-#define US_RPR 0x0100
-#define US_RCR 0x0104
-#define US_TPR 0x0108
-#define US_TCR 0x010c
-#define US_RNPR 0x0110
-#define US_RNCR 0x0114
-#define US_TNPR 0x0118
-#define US_TNCR 0x011c
-#define US_PTCR 0x0120
-#define US_PTSR 0x0124
-
-
-
-
-/* USART3 Control Register */
-#define US_CR_RSTRX (1 << 2)
-#define US_CR_RSTTX (1 << 3)
-#define US_CR_RXEN (1 << 4)
-#define US_CR_RXDIS (1 << 5)
-#define US_CR_TXEN (1 << 6)
-#define US_CR_TXDIS (1 << 7)
-#define US_CR_RSTSTA (1 << 8)
-#define US_CR_STTBRK (1 << 9)
-#define US_CR_STPBRK (1 << 10)
-
-#define US_CR_DTREN (1 << 16)
-#define US_CR_DTRDIS (1 << 17)
-#define US_CR_RTSEN (1 << 18)
-#define US_CR_RTSDIS (1 << 19)
-
-/* USART3 Mode Register */
-#define US_MR_MODE (15 << 0)
-#define US_MR_MODE_NORMAL ( 0 << 0)
-#define US_MR_MODE_HWFLOW ( 2 << 0)
-#define US_MR_CLKS ( 3 << 4)
-#define US_MR_CLKS_CLOCK ( 0 << 4)
-#define US_MR_CLKS_FDIV1 ( 1 << 4)
-#define US_MR_CLKS_SLOW ( 2 << 4)
-#define US_MR_CLKS_EXT ( 3 << 4)
-#define US_MR_CHRL_5BITS ( 0 << 6)
-#define US_MR_CHRL_6BITS ( 1 << 6)
-#define US_MR_CHRL_7BITS ( 2 << 6)
-#define US_MR_CHRL_8BITS ( 3 << 6)
-#define US_MR_SYNC ( 1 << 8)
-#define US_MR_PAR_EVEN ( 0 << 9)
-#define US_MR_PAR_ODD ( 1 << 9)
-#define US_MR_PAR_SPACE ( 2 << 9)
-#define US_MR_PAR_MARK ( 3 << 9)
-#define US_MR_PAR_NONE ( 4 << 9)
-#define US_MR_PAR_MDROP ( 6 << 9)
-#define US_MR_NBSTOP_1BIT ( 0 << 12)
-#define US_MR_NBSTOP_1_5BIT ( 1 << 12)
-#define US_MR_NBSTOP_2BITS ( 2 << 12)
-#define US_MR_OVER ( 1 << 19)
-#define US_MR_OVER_X16 ( 0 << 19)
-#define US_MR_OVER_X8 ( 1 << 19)
-
-/* USART3 Channel Status Register */
-#define US_CSR_RXRDY (1 << 0)
-#define US_CSR_TXRDY (1 << 1)
-#define US_CSR_RXBRK (1 << 2)
-#define US_CSR_ENDRX (1 << 3)
-#define US_CSR_ENDTX (1 << 4)
-
-
-#define US_CSR_OVRE (1 << 5)
-#define US_CSR_FRAME (1 << 6)
-#define US_CSR_PARE (1 << 7)
-
-#define US_CSR_TXEMPTY (1 << 9)
-
-#define US_CSR_TXBUFE (1 << 11)
-#define US_CSR_RXBUFF (1 << 12)
-#define US_CSR_RIIC (1 << 16)
-#define US_CSR_DSRIC (1 << 17)
-#define US_CSR_DCDIC (1 << 18)
-#define US_CSR_CTSIC (1 << 19)
-#define US_CSR_RI (1 << 20)
-#define US_CSR_DSR (1 << 21)
-#define US_CSR_DCD (1 << 22)
-#define US_CSR_CTS (1 << 23)
-
-/* USART3 Baud Rate Generator Register */
-#define US_BRGR_CD_OFFSET 0
-#define US_BRGR_FP_OFFSET 16
-
-#define US_BRGR_CD_SIZE 16
-#define US_BRGR_FP_SIZE 3
-
-#define US_BRGR_CD (0xFFFF << 0)
-#define US_BRGR_FP ( 7 << 16)
-
-/*USART3 PDC Transfer Control Register */
-#define US_PTCR_RXTEN (1 << 0)
-#define US_PTCR_RXTDIS (1 << 1)
-#define US_PTCR_TXTEN (1 << 8)
-#define US_PTCR_TXTDIS (1 << 9)
-
-/*USART3 PDC Transfer Status Register */
-#define US_PTSR_RXTEN (1 << 0)
-#define US_PTSR_TXTEN (1 << 8)
-
-
-int usart_init(int baudrate);
-void usart_putc(char c);
-void usart_puts(const char *s);
-int usart_getc(void);
-int usart_tstc(void);
-void usart_setbrg(int baudrate, int cpu_clock);
-void set_usart_base(void *usart_base);
-
-
-_END_STD_C
-
-#endif /* MERLIN_USART3_H */
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a
deleted file mode 100644
index aa673ec..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a
+++ /dev/null
Binary files differ
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
deleted file mode 100644
index 59152ac..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
+++ /dev/null
@@ -1,266 +0,0 @@
-/******************************************************************************
- * AVR32 AT32UC3A0512 GNU LD script file.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: AVR32 AT32UC3A0512
- *
- * - author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
-
-OUTPUT_ARCH(avr32:uc)
-
-ENTRY(_start)
-
-MEMORY
-{
- FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 0x00080000
- INTRAM (wxa!ri) : ORIGIN = 0x00000004, LENGTH = 0x0000FFFC
- USERPAGE : ORIGIN = 0x80800000, LENGTH = 0x00000200
-}
-
-PHDRS
-{
- FLASH PT_LOAD;
- INTRAM_ALIGN PT_NULL;
- INTRAM_AT_FLASH PT_LOAD;
- INTRAM PT_NULL;
- USERPAGE PT_LOAD;
-}
-
-SECTIONS
-{
- /* If this heap size is selected, all the INTRAM space from the end of the
- data area to the beginning of the stack will be allocated for the heap. */
- __max_heap_size__ = -1;
-
- /* Use a default heap size if heap size was not defined. */
- __heap_size__ = DEFINED(__heap_size__) ? __heap_size__ : __max_heap_size__;
-
- /* Use a default stack size if stack size was not defined. */
- __stack_size__ = DEFINED(__stack_size__) ? __stack_size__ : 4K;
-
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0x80000000); . = 0x80000000;
- .interp : { *(.interp) } >FLASH AT>FLASH :FLASH
- .reset : { *(.reset) } >FLASH AT>FLASH :FLASH
- .hash : { *(.hash) } >FLASH AT>FLASH :FLASH
- .dynsym : { *(.dynsym) } >FLASH AT>FLASH :FLASH
- .dynstr : { *(.dynstr) } >FLASH AT>FLASH :FLASH
- .gnu.version : { *(.gnu.version) } >FLASH AT>FLASH :FLASH
- .gnu.version_d : { *(.gnu.version_d) } >FLASH AT>FLASH :FLASH
- .gnu.version_r : { *(.gnu.version_r) } >FLASH AT>FLASH :FLASH
- .rel.init : { *(.rel.init) } >FLASH AT>FLASH :FLASH
- .rela.init : { *(.rela.init) } >FLASH AT>FLASH :FLASH
- .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } >FLASH AT>FLASH :FLASH
- .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } >FLASH AT>FLASH :FLASH
- .rel.fini : { *(.rel.fini) } >FLASH AT>FLASH :FLASH
- .rela.fini : { *(.rela.fini) } >FLASH AT>FLASH :FLASH
- .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } >FLASH AT>FLASH :FLASH
- .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } >FLASH AT>FLASH :FLASH
- .rel.data.rel.ro : { *(.rel.data.rel.ro*) } >FLASH AT>FLASH :FLASH
- .rela.data.rel.ro : { *(.rel.data.rel.ro*) } >FLASH AT>FLASH :FLASH
- .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } >FLASH AT>FLASH :FLASH
- .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } >FLASH AT>FLASH :FLASH
- .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } >FLASH AT>FLASH :FLASH
- .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } >FLASH AT>FLASH :FLASH
- .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } >FLASH AT>FLASH :FLASH
- .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } >FLASH AT>FLASH :FLASH
- .rel.ctors : { *(.rel.ctors) } >FLASH AT>FLASH :FLASH
- .rela.ctors : { *(.rela.ctors) } >FLASH AT>FLASH :FLASH
- .rel.dtors : { *(.rel.dtors) } >FLASH AT>FLASH :FLASH
- .rela.dtors : { *(.rela.dtors) } >FLASH AT>FLASH :FLASH
- .rel.got : { *(.rel.got) } >FLASH AT>FLASH :FLASH
- .rela.got : { *(.rela.got) } >FLASH AT>FLASH :FLASH
- .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } >FLASH AT>FLASH :FLASH
- .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } >FLASH AT>FLASH :FLASH
- .rel.plt : { *(.rel.plt) } >FLASH AT>FLASH :FLASH
- .rela.plt : { *(.rela.plt) } >FLASH AT>FLASH :FLASH
- .init :
- {
- KEEP (*(.init))
- } >FLASH AT>FLASH :FLASH =0xd703d703
- .plt : { *(.plt) } >FLASH AT>FLASH :FLASH
- .text :
- {
- *(.text .stub .text.* .gnu.linkonce.t.*)
- KEEP (*(.text.*personality*))
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- } >FLASH AT>FLASH :FLASH =0xd703d703
- .fini :
- {
- KEEP (*(.fini))
- } >FLASH AT>FLASH :FLASH =0xd703d703
- PROVIDE (__etext = .);
- PROVIDE (_etext = .);
- PROVIDE (etext = .);
- .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >FLASH AT>FLASH :FLASH
- .rodata1 : { *(.rodata1) } >FLASH AT>FLASH :FLASH
- .eh_frame_hdr : { *(.eh_frame_hdr) } >FLASH AT>FLASH :FLASH
- .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >FLASH AT>FLASH :FLASH
- .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >FLASH AT>FLASH :FLASH
- .lalign : { . = ALIGN(8); PROVIDE(_data_lma = .); } >FLASH AT>FLASH :FLASH
- . = ORIGIN(INTRAM);
- .dalign : { . = ALIGN(8); PROVIDE(_data = .); } >INTRAM AT>INTRAM :INTRAM_ALIGN
- /* Exception handling */
- .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- /* Thread Local Storage sections */
- .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- /* Ensure the __preinit_array_start label is properly aligned. We
- could instead move the label definition inside the section, but
- the linker would then create the section even if it turns out to
- be empty, which isn't pretty. */
- PROVIDE (__preinit_array_start = ALIGN(32 / 8));
- .preinit_array : { KEEP (*(.preinit_array)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (__preinit_array_end = .);
- PROVIDE (__init_array_start = .);
- .init_array : { KEEP (*(.init_array)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (__init_array_end = .);
- PROVIDE (__fini_array_start = .);
- .fini_array : { KEEP (*(.fini_array)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (__fini_array_end = .);
- .ctors :
- {
- /* gcc uses crtbegin.o to find the start of
- the constructors, so we make sure it is
- first. Because this is a wildcard, it
- doesn't matter if the user does not
- actually link against crtbegin.o; the
- linker won't look for a file to match a
- wildcard. The wildcard also means that it
- doesn't matter which directory crtbegin.o
- is in. */
- KEEP (*crtbegin*.o(.ctors))
- /* We don't want to include the .ctor section from
- from the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last */
- KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .dtors :
- {
- KEEP (*crtbegin*.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .jcr : { KEEP (*(.jcr)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .dynamic : { *(.dynamic) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .got : { *(.got.plt) *(.got) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .ramtext : { *(.ramtext .ramtext.*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .ddalign : { . = ALIGN(8); } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .data :
- {
- *(.data .data.* .gnu.linkonce.d.*)
- KEEP (*(.gnu.linkonce.d.*personality*))
- SORT(CONSTRUCTORS)
- } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .data1 : { *(.data1) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .balign : { . = ALIGN(8); PROVIDE(_edata = .); } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (edata = .);
- __bss_start = .;
- .bss :
- {
- *(.dynbss)
- *(.bss .bss.* .gnu.linkonce.b.*)
- *(COMMON)
- /* Align here to ensure that the .bss section occupies space up to
- _end. Align after .bss to ensure correct alignment even if the
- .bss section disappears because there are no input sections. */
- . = ALIGN(8);
- } >INTRAM AT>INTRAM :INTRAM
- . = ALIGN(8);
- _end = .;
- PROVIDE (end = .);
- __heap_start__ = ALIGN(8);
- .heap :
- {
- *(.heap)
- . = (__heap_size__ == __max_heap_size__) ?
- ORIGIN(INTRAM) + LENGTH(INTRAM) - __stack_size__ - ABSOLUTE(.) :
- __heap_size__;
- } >INTRAM AT>INTRAM :INTRAM
- __heap_end__ = .;
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- .stack ORIGIN(INTRAM) + LENGTH(INTRAM) - __stack_size__ :
- {
- _stack = .;
- *(.stack)
- . = __stack_size__;
- _estack = .;
- } >INTRAM AT>INTRAM :INTRAM
- .userpage : { *(.userpage .userpage.*) } >USERPAGE AT>USERPAGE :USERPAGE
- /DISCARD/ : { *(.note.GNU-stack) }
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
deleted file mode 100644
index a5926d8..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
+++ /dev/null
@@ -1,266 +0,0 @@
-/******************************************************************************
- * AVR32 AT32UC3A1256 GNU LD script file.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: AVR32 AT32UC3A1256
- *
- * - author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
-
-OUTPUT_ARCH(avr32:uc)
-
-ENTRY(_start)
-
-MEMORY
-{
- FLASH (rxai!w) : ORIGIN = 0x80000000, LENGTH = 0x00040000
- INTRAM (wxa!ri) : ORIGIN = 0x00000004, LENGTH = 0x0000FFFC
- USERPAGE : ORIGIN = 0x80800000, LENGTH = 0x00000200
-}
-
-PHDRS
-{
- FLASH PT_LOAD;
- INTRAM_ALIGN PT_NULL;
- INTRAM_AT_FLASH PT_LOAD;
- INTRAM PT_NULL;
- USERPAGE PT_LOAD;
-}
-
-SECTIONS
-{
- /* If this heap size is selected, all the INTRAM space from the end of the
- data area to the beginning of the stack will be allocated for the heap. */
- __max_heap_size__ = -1;
-
- /* Use a default heap size if heap size was not defined. */
- __heap_size__ = DEFINED(__heap_size__) ? __heap_size__ : __max_heap_size__;
-
- /* Use a default stack size if stack size was not defined. */
- __stack_size__ = DEFINED(__stack_size__) ? __stack_size__ : 4K;
-
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0x80000000); . = 0x80000000;
- .interp : { *(.interp) } >FLASH AT>FLASH :FLASH
- .reset : { *(.reset) } >FLASH AT>FLASH :FLASH
- .hash : { *(.hash) } >FLASH AT>FLASH :FLASH
- .dynsym : { *(.dynsym) } >FLASH AT>FLASH :FLASH
- .dynstr : { *(.dynstr) } >FLASH AT>FLASH :FLASH
- .gnu.version : { *(.gnu.version) } >FLASH AT>FLASH :FLASH
- .gnu.version_d : { *(.gnu.version_d) } >FLASH AT>FLASH :FLASH
- .gnu.version_r : { *(.gnu.version_r) } >FLASH AT>FLASH :FLASH
- .rel.init : { *(.rel.init) } >FLASH AT>FLASH :FLASH
- .rela.init : { *(.rela.init) } >FLASH AT>FLASH :FLASH
- .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } >FLASH AT>FLASH :FLASH
- .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } >FLASH AT>FLASH :FLASH
- .rel.fini : { *(.rel.fini) } >FLASH AT>FLASH :FLASH
- .rela.fini : { *(.rela.fini) } >FLASH AT>FLASH :FLASH
- .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } >FLASH AT>FLASH :FLASH
- .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } >FLASH AT>FLASH :FLASH
- .rel.data.rel.ro : { *(.rel.data.rel.ro*) } >FLASH AT>FLASH :FLASH
- .rela.data.rel.ro : { *(.rel.data.rel.ro*) } >FLASH AT>FLASH :FLASH
- .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } >FLASH AT>FLASH :FLASH
- .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } >FLASH AT>FLASH :FLASH
- .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } >FLASH AT>FLASH :FLASH
- .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } >FLASH AT>FLASH :FLASH
- .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } >FLASH AT>FLASH :FLASH
- .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } >FLASH AT>FLASH :FLASH
- .rel.ctors : { *(.rel.ctors) } >FLASH AT>FLASH :FLASH
- .rela.ctors : { *(.rela.ctors) } >FLASH AT>FLASH :FLASH
- .rel.dtors : { *(.rel.dtors) } >FLASH AT>FLASH :FLASH
- .rela.dtors : { *(.rela.dtors) } >FLASH AT>FLASH :FLASH
- .rel.got : { *(.rel.got) } >FLASH AT>FLASH :FLASH
- .rela.got : { *(.rela.got) } >FLASH AT>FLASH :FLASH
- .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } >FLASH AT>FLASH :FLASH
- .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } >FLASH AT>FLASH :FLASH
- .rel.plt : { *(.rel.plt) } >FLASH AT>FLASH :FLASH
- .rela.plt : { *(.rela.plt) } >FLASH AT>FLASH :FLASH
- .init :
- {
- KEEP (*(.init))
- } >FLASH AT>FLASH :FLASH =0xd703d703
- .plt : { *(.plt) } >FLASH AT>FLASH :FLASH
- .text :
- {
- *(.text .stub .text.* .gnu.linkonce.t.*)
- KEEP (*(.text.*personality*))
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- } >FLASH AT>FLASH :FLASH =0xd703d703
- .fini :
- {
- KEEP (*(.fini))
- } >FLASH AT>FLASH :FLASH =0xd703d703
- PROVIDE (__etext = .);
- PROVIDE (_etext = .);
- PROVIDE (etext = .);
- .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >FLASH AT>FLASH :FLASH
- .rodata1 : { *(.rodata1) } >FLASH AT>FLASH :FLASH
- .eh_frame_hdr : { *(.eh_frame_hdr) } >FLASH AT>FLASH :FLASH
- .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >FLASH AT>FLASH :FLASH
- .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >FLASH AT>FLASH :FLASH
- .lalign : { . = ALIGN(8); PROVIDE(_data_lma = .); } >FLASH AT>FLASH :FLASH
- . = ORIGIN(INTRAM);
- .dalign : { . = ALIGN(8); PROVIDE(_data = .); } >INTRAM AT>INTRAM :INTRAM_ALIGN
- /* Exception handling */
- .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- /* Thread Local Storage sections */
- .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- /* Ensure the __preinit_array_start label is properly aligned. We
- could instead move the label definition inside the section, but
- the linker would then create the section even if it turns out to
- be empty, which isn't pretty. */
- PROVIDE (__preinit_array_start = ALIGN(32 / 8));
- .preinit_array : { KEEP (*(.preinit_array)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (__preinit_array_end = .);
- PROVIDE (__init_array_start = .);
- .init_array : { KEEP (*(.init_array)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (__init_array_end = .);
- PROVIDE (__fini_array_start = .);
- .fini_array : { KEEP (*(.fini_array)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (__fini_array_end = .);
- .ctors :
- {
- /* gcc uses crtbegin.o to find the start of
- the constructors, so we make sure it is
- first. Because this is a wildcard, it
- doesn't matter if the user does not
- actually link against crtbegin.o; the
- linker won't look for a file to match a
- wildcard. The wildcard also means that it
- doesn't matter which directory crtbegin.o
- is in. */
- KEEP (*crtbegin*.o(.ctors))
- /* We don't want to include the .ctor section from
- from the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last */
- KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .dtors :
- {
- KEEP (*crtbegin*.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .jcr : { KEEP (*(.jcr)) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .dynamic : { *(.dynamic) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .got : { *(.got.plt) *(.got) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .ramtext : { *(.ramtext .ramtext.*) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .ddalign : { . = ALIGN(8); } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .data :
- {
- *(.data .data.* .gnu.linkonce.d.*)
- KEEP (*(.gnu.linkonce.d.*personality*))
- SORT(CONSTRUCTORS)
- } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .data1 : { *(.data1) } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- .balign : { . = ALIGN(8); PROVIDE(_edata = .); } >INTRAM AT>FLASH :INTRAM_AT_FLASH
- PROVIDE (edata = .);
- __bss_start = .;
- .bss :
- {
- *(.dynbss)
- *(.bss .bss.* .gnu.linkonce.b.*)
- *(COMMON)
- /* Align here to ensure that the .bss section occupies space up to
- _end. Align after .bss to ensure correct alignment even if the
- .bss section disappears because there are no input sections. */
- . = ALIGN(8);
- } >INTRAM AT>INTRAM :INTRAM
- . = ALIGN(8);
- _end = .;
- PROVIDE (end = .);
- __heap_start__ = ALIGN(8);
- .heap :
- {
- *(.heap)
- . = (__heap_size__ == __max_heap_size__) ?
- ORIGIN(INTRAM) + LENGTH(INTRAM) - __stack_size__ - ABSOLUTE(.) :
- __heap_size__;
- } >INTRAM AT>INTRAM :INTRAM
- __heap_end__ = .;
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- .stack ORIGIN(INTRAM) + LENGTH(INTRAM) - __stack_size__ :
- {
- _stack = .;
- *(.stack)
- . = __stack_size__;
- _estack = .;
- } >INTRAM AT>INTRAM :INTRAM
- .userpage : { *(.userpage .userpage.*) } >USERPAGE AT>USERPAGE :USERPAGE
- /DISCARD/ : { *(.note.GNU-stack) }
-}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/mrepeat.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/mrepeat.h
deleted file mode 100644
index 41163b6..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/mrepeat.h
+++ /dev/null
@@ -1,328 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Preprocessor macro repeating utils.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _MREPEAT_H_
-#define _MREPEAT_H_
-
-#include "preprocessor.h"
-
-
-//! Maximal number of repetitions supported by MREPEAT.
-#define MREPEAT_LIMIT 256
-
-/*! \brief Macro repeat.
- *
- * This macro represents a horizontal repetition construct.
- *
- * \param count The number of repetitious calls to macro. Valid values range from 0 to MREPEAT_LIMIT.
- * \param macro A binary operation of the form macro(n, data). This macro is expanded by MREPEAT with
- * the current repetition number and the auxiliary data argument.
- * \param data Auxiliary data passed to macro.
- *
- * \return <tt>macro(0, data) macro(1, data) ... macro(count - 1, data)</tt>
- */
-#define MREPEAT(count, macro, data) TPASTE2(MREPEAT, count)(macro, data)
-
-#define MREPEAT0( macro, data)
-#define MREPEAT1( macro, data) MREPEAT0( macro, data) macro( 0, data)
-#define MREPEAT2( macro, data) MREPEAT1( macro, data) macro( 1, data)
-#define MREPEAT3( macro, data) MREPEAT2( macro, data) macro( 2, data)
-#define MREPEAT4( macro, data) MREPEAT3( macro, data) macro( 3, data)
-#define MREPEAT5( macro, data) MREPEAT4( macro, data) macro( 4, data)
-#define MREPEAT6( macro, data) MREPEAT5( macro, data) macro( 5, data)
-#define MREPEAT7( macro, data) MREPEAT6( macro, data) macro( 6, data)
-#define MREPEAT8( macro, data) MREPEAT7( macro, data) macro( 7, data)
-#define MREPEAT9( macro, data) MREPEAT8( macro, data) macro( 8, data)
-#define MREPEAT10( macro, data) MREPEAT9( macro, data) macro( 9, data)
-#define MREPEAT11( macro, data) MREPEAT10( macro, data) macro( 10, data)
-#define MREPEAT12( macro, data) MREPEAT11( macro, data) macro( 11, data)
-#define MREPEAT13( macro, data) MREPEAT12( macro, data) macro( 12, data)
-#define MREPEAT14( macro, data) MREPEAT13( macro, data) macro( 13, data)
-#define MREPEAT15( macro, data) MREPEAT14( macro, data) macro( 14, data)
-#define MREPEAT16( macro, data) MREPEAT15( macro, data) macro( 15, data)
-#define MREPEAT17( macro, data) MREPEAT16( macro, data) macro( 16, data)
-#define MREPEAT18( macro, data) MREPEAT17( macro, data) macro( 17, data)
-#define MREPEAT19( macro, data) MREPEAT18( macro, data) macro( 18, data)
-#define MREPEAT20( macro, data) MREPEAT19( macro, data) macro( 19, data)
-#define MREPEAT21( macro, data) MREPEAT20( macro, data) macro( 20, data)
-#define MREPEAT22( macro, data) MREPEAT21( macro, data) macro( 21, data)
-#define MREPEAT23( macro, data) MREPEAT22( macro, data) macro( 22, data)
-#define MREPEAT24( macro, data) MREPEAT23( macro, data) macro( 23, data)
-#define MREPEAT25( macro, data) MREPEAT24( macro, data) macro( 24, data)
-#define MREPEAT26( macro, data) MREPEAT25( macro, data) macro( 25, data)
-#define MREPEAT27( macro, data) MREPEAT26( macro, data) macro( 26, data)
-#define MREPEAT28( macro, data) MREPEAT27( macro, data) macro( 27, data)
-#define MREPEAT29( macro, data) MREPEAT28( macro, data) macro( 28, data)
-#define MREPEAT30( macro, data) MREPEAT29( macro, data) macro( 29, data)
-#define MREPEAT31( macro, data) MREPEAT30( macro, data) macro( 30, data)
-#define MREPEAT32( macro, data) MREPEAT31( macro, data) macro( 31, data)
-#define MREPEAT33( macro, data) MREPEAT32( macro, data) macro( 32, data)
-#define MREPEAT34( macro, data) MREPEAT33( macro, data) macro( 33, data)
-#define MREPEAT35( macro, data) MREPEAT34( macro, data) macro( 34, data)
-#define MREPEAT36( macro, data) MREPEAT35( macro, data) macro( 35, data)
-#define MREPEAT37( macro, data) MREPEAT36( macro, data) macro( 36, data)
-#define MREPEAT38( macro, data) MREPEAT37( macro, data) macro( 37, data)
-#define MREPEAT39( macro, data) MREPEAT38( macro, data) macro( 38, data)
-#define MREPEAT40( macro, data) MREPEAT39( macro, data) macro( 39, data)
-#define MREPEAT41( macro, data) MREPEAT40( macro, data) macro( 40, data)
-#define MREPEAT42( macro, data) MREPEAT41( macro, data) macro( 41, data)
-#define MREPEAT43( macro, data) MREPEAT42( macro, data) macro( 42, data)
-#define MREPEAT44( macro, data) MREPEAT43( macro, data) macro( 43, data)
-#define MREPEAT45( macro, data) MREPEAT44( macro, data) macro( 44, data)
-#define MREPEAT46( macro, data) MREPEAT45( macro, data) macro( 45, data)
-#define MREPEAT47( macro, data) MREPEAT46( macro, data) macro( 46, data)
-#define MREPEAT48( macro, data) MREPEAT47( macro, data) macro( 47, data)
-#define MREPEAT49( macro, data) MREPEAT48( macro, data) macro( 48, data)
-#define MREPEAT50( macro, data) MREPEAT49( macro, data) macro( 49, data)
-#define MREPEAT51( macro, data) MREPEAT50( macro, data) macro( 50, data)
-#define MREPEAT52( macro, data) MREPEAT51( macro, data) macro( 51, data)
-#define MREPEAT53( macro, data) MREPEAT52( macro, data) macro( 52, data)
-#define MREPEAT54( macro, data) MREPEAT53( macro, data) macro( 53, data)
-#define MREPEAT55( macro, data) MREPEAT54( macro, data) macro( 54, data)
-#define MREPEAT56( macro, data) MREPEAT55( macro, data) macro( 55, data)
-#define MREPEAT57( macro, data) MREPEAT56( macro, data) macro( 56, data)
-#define MREPEAT58( macro, data) MREPEAT57( macro, data) macro( 57, data)
-#define MREPEAT59( macro, data) MREPEAT58( macro, data) macro( 58, data)
-#define MREPEAT60( macro, data) MREPEAT59( macro, data) macro( 59, data)
-#define MREPEAT61( macro, data) MREPEAT60( macro, data) macro( 60, data)
-#define MREPEAT62( macro, data) MREPEAT61( macro, data) macro( 61, data)
-#define MREPEAT63( macro, data) MREPEAT62( macro, data) macro( 62, data)
-#define MREPEAT64( macro, data) MREPEAT63( macro, data) macro( 63, data)
-#define MREPEAT65( macro, data) MREPEAT64( macro, data) macro( 64, data)
-#define MREPEAT66( macro, data) MREPEAT65( macro, data) macro( 65, data)
-#define MREPEAT67( macro, data) MREPEAT66( macro, data) macro( 66, data)
-#define MREPEAT68( macro, data) MREPEAT67( macro, data) macro( 67, data)
-#define MREPEAT69( macro, data) MREPEAT68( macro, data) macro( 68, data)
-#define MREPEAT70( macro, data) MREPEAT69( macro, data) macro( 69, data)
-#define MREPEAT71( macro, data) MREPEAT70( macro, data) macro( 70, data)
-#define MREPEAT72( macro, data) MREPEAT71( macro, data) macro( 71, data)
-#define MREPEAT73( macro, data) MREPEAT72( macro, data) macro( 72, data)
-#define MREPEAT74( macro, data) MREPEAT73( macro, data) macro( 73, data)
-#define MREPEAT75( macro, data) MREPEAT74( macro, data) macro( 74, data)
-#define MREPEAT76( macro, data) MREPEAT75( macro, data) macro( 75, data)
-#define MREPEAT77( macro, data) MREPEAT76( macro, data) macro( 76, data)
-#define MREPEAT78( macro, data) MREPEAT77( macro, data) macro( 77, data)
-#define MREPEAT79( macro, data) MREPEAT78( macro, data) macro( 78, data)
-#define MREPEAT80( macro, data) MREPEAT79( macro, data) macro( 79, data)
-#define MREPEAT81( macro, data) MREPEAT80( macro, data) macro( 80, data)
-#define MREPEAT82( macro, data) MREPEAT81( macro, data) macro( 81, data)
-#define MREPEAT83( macro, data) MREPEAT82( macro, data) macro( 82, data)
-#define MREPEAT84( macro, data) MREPEAT83( macro, data) macro( 83, data)
-#define MREPEAT85( macro, data) MREPEAT84( macro, data) macro( 84, data)
-#define MREPEAT86( macro, data) MREPEAT85( macro, data) macro( 85, data)
-#define MREPEAT87( macro, data) MREPEAT86( macro, data) macro( 86, data)
-#define MREPEAT88( macro, data) MREPEAT87( macro, data) macro( 87, data)
-#define MREPEAT89( macro, data) MREPEAT88( macro, data) macro( 88, data)
-#define MREPEAT90( macro, data) MREPEAT89( macro, data) macro( 89, data)
-#define MREPEAT91( macro, data) MREPEAT90( macro, data) macro( 90, data)
-#define MREPEAT92( macro, data) MREPEAT91( macro, data) macro( 91, data)
-#define MREPEAT93( macro, data) MREPEAT92( macro, data) macro( 92, data)
-#define MREPEAT94( macro, data) MREPEAT93( macro, data) macro( 93, data)
-#define MREPEAT95( macro, data) MREPEAT94( macro, data) macro( 94, data)
-#define MREPEAT96( macro, data) MREPEAT95( macro, data) macro( 95, data)
-#define MREPEAT97( macro, data) MREPEAT96( macro, data) macro( 96, data)
-#define MREPEAT98( macro, data) MREPEAT97( macro, data) macro( 97, data)
-#define MREPEAT99( macro, data) MREPEAT98( macro, data) macro( 98, data)
-#define MREPEAT100(macro, data) MREPEAT99( macro, data) macro( 99, data)
-#define MREPEAT101(macro, data) MREPEAT100(macro, data) macro(100, data)
-#define MREPEAT102(macro, data) MREPEAT101(macro, data) macro(101, data)
-#define MREPEAT103(macro, data) MREPEAT102(macro, data) macro(102, data)
-#define MREPEAT104(macro, data) MREPEAT103(macro, data) macro(103, data)
-#define MREPEAT105(macro, data) MREPEAT104(macro, data) macro(104, data)
-#define MREPEAT106(macro, data) MREPEAT105(macro, data) macro(105, data)
-#define MREPEAT107(macro, data) MREPEAT106(macro, data) macro(106, data)
-#define MREPEAT108(macro, data) MREPEAT107(macro, data) macro(107, data)
-#define MREPEAT109(macro, data) MREPEAT108(macro, data) macro(108, data)
-#define MREPEAT110(macro, data) MREPEAT109(macro, data) macro(109, data)
-#define MREPEAT111(macro, data) MREPEAT110(macro, data) macro(110, data)
-#define MREPEAT112(macro, data) MREPEAT111(macro, data) macro(111, data)
-#define MREPEAT113(macro, data) MREPEAT112(macro, data) macro(112, data)
-#define MREPEAT114(macro, data) MREPEAT113(macro, data) macro(113, data)
-#define MREPEAT115(macro, data) MREPEAT114(macro, data) macro(114, data)
-#define MREPEAT116(macro, data) MREPEAT115(macro, data) macro(115, data)
-#define MREPEAT117(macro, data) MREPEAT116(macro, data) macro(116, data)
-#define MREPEAT118(macro, data) MREPEAT117(macro, data) macro(117, data)
-#define MREPEAT119(macro, data) MREPEAT118(macro, data) macro(118, data)
-#define MREPEAT120(macro, data) MREPEAT119(macro, data) macro(119, data)
-#define MREPEAT121(macro, data) MREPEAT120(macro, data) macro(120, data)
-#define MREPEAT122(macro, data) MREPEAT121(macro, data) macro(121, data)
-#define MREPEAT123(macro, data) MREPEAT122(macro, data) macro(122, data)
-#define MREPEAT124(macro, data) MREPEAT123(macro, data) macro(123, data)
-#define MREPEAT125(macro, data) MREPEAT124(macro, data) macro(124, data)
-#define MREPEAT126(macro, data) MREPEAT125(macro, data) macro(125, data)
-#define MREPEAT127(macro, data) MREPEAT126(macro, data) macro(126, data)
-#define MREPEAT128(macro, data) MREPEAT127(macro, data) macro(127, data)
-#define MREPEAT129(macro, data) MREPEAT128(macro, data) macro(128, data)
-#define MREPEAT130(macro, data) MREPEAT129(macro, data) macro(129, data)
-#define MREPEAT131(macro, data) MREPEAT130(macro, data) macro(130, data)
-#define MREPEAT132(macro, data) MREPEAT131(macro, data) macro(131, data)
-#define MREPEAT133(macro, data) MREPEAT132(macro, data) macro(132, data)
-#define MREPEAT134(macro, data) MREPEAT133(macro, data) macro(133, data)
-#define MREPEAT135(macro, data) MREPEAT134(macro, data) macro(134, data)
-#define MREPEAT136(macro, data) MREPEAT135(macro, data) macro(135, data)
-#define MREPEAT137(macro, data) MREPEAT136(macro, data) macro(136, data)
-#define MREPEAT138(macro, data) MREPEAT137(macro, data) macro(137, data)
-#define MREPEAT139(macro, data) MREPEAT138(macro, data) macro(138, data)
-#define MREPEAT140(macro, data) MREPEAT139(macro, data) macro(139, data)
-#define MREPEAT141(macro, data) MREPEAT140(macro, data) macro(140, data)
-#define MREPEAT142(macro, data) MREPEAT141(macro, data) macro(141, data)
-#define MREPEAT143(macro, data) MREPEAT142(macro, data) macro(142, data)
-#define MREPEAT144(macro, data) MREPEAT143(macro, data) macro(143, data)
-#define MREPEAT145(macro, data) MREPEAT144(macro, data) macro(144, data)
-#define MREPEAT146(macro, data) MREPEAT145(macro, data) macro(145, data)
-#define MREPEAT147(macro, data) MREPEAT146(macro, data) macro(146, data)
-#define MREPEAT148(macro, data) MREPEAT147(macro, data) macro(147, data)
-#define MREPEAT149(macro, data) MREPEAT148(macro, data) macro(148, data)
-#define MREPEAT150(macro, data) MREPEAT149(macro, data) macro(149, data)
-#define MREPEAT151(macro, data) MREPEAT150(macro, data) macro(150, data)
-#define MREPEAT152(macro, data) MREPEAT151(macro, data) macro(151, data)
-#define MREPEAT153(macro, data) MREPEAT152(macro, data) macro(152, data)
-#define MREPEAT154(macro, data) MREPEAT153(macro, data) macro(153, data)
-#define MREPEAT155(macro, data) MREPEAT154(macro, data) macro(154, data)
-#define MREPEAT156(macro, data) MREPEAT155(macro, data) macro(155, data)
-#define MREPEAT157(macro, data) MREPEAT156(macro, data) macro(156, data)
-#define MREPEAT158(macro, data) MREPEAT157(macro, data) macro(157, data)
-#define MREPEAT159(macro, data) MREPEAT158(macro, data) macro(158, data)
-#define MREPEAT160(macro, data) MREPEAT159(macro, data) macro(159, data)
-#define MREPEAT161(macro, data) MREPEAT160(macro, data) macro(160, data)
-#define MREPEAT162(macro, data) MREPEAT161(macro, data) macro(161, data)
-#define MREPEAT163(macro, data) MREPEAT162(macro, data) macro(162, data)
-#define MREPEAT164(macro, data) MREPEAT163(macro, data) macro(163, data)
-#define MREPEAT165(macro, data) MREPEAT164(macro, data) macro(164, data)
-#define MREPEAT166(macro, data) MREPEAT165(macro, data) macro(165, data)
-#define MREPEAT167(macro, data) MREPEAT166(macro, data) macro(166, data)
-#define MREPEAT168(macro, data) MREPEAT167(macro, data) macro(167, data)
-#define MREPEAT169(macro, data) MREPEAT168(macro, data) macro(168, data)
-#define MREPEAT170(macro, data) MREPEAT169(macro, data) macro(169, data)
-#define MREPEAT171(macro, data) MREPEAT170(macro, data) macro(170, data)
-#define MREPEAT172(macro, data) MREPEAT171(macro, data) macro(171, data)
-#define MREPEAT173(macro, data) MREPEAT172(macro, data) macro(172, data)
-#define MREPEAT174(macro, data) MREPEAT173(macro, data) macro(173, data)
-#define MREPEAT175(macro, data) MREPEAT174(macro, data) macro(174, data)
-#define MREPEAT176(macro, data) MREPEAT175(macro, data) macro(175, data)
-#define MREPEAT177(macro, data) MREPEAT176(macro, data) macro(176, data)
-#define MREPEAT178(macro, data) MREPEAT177(macro, data) macro(177, data)
-#define MREPEAT179(macro, data) MREPEAT178(macro, data) macro(178, data)
-#define MREPEAT180(macro, data) MREPEAT179(macro, data) macro(179, data)
-#define MREPEAT181(macro, data) MREPEAT180(macro, data) macro(180, data)
-#define MREPEAT182(macro, data) MREPEAT181(macro, data) macro(181, data)
-#define MREPEAT183(macro, data) MREPEAT182(macro, data) macro(182, data)
-#define MREPEAT184(macro, data) MREPEAT183(macro, data) macro(183, data)
-#define MREPEAT185(macro, data) MREPEAT184(macro, data) macro(184, data)
-#define MREPEAT186(macro, data) MREPEAT185(macro, data) macro(185, data)
-#define MREPEAT187(macro, data) MREPEAT186(macro, data) macro(186, data)
-#define MREPEAT188(macro, data) MREPEAT187(macro, data) macro(187, data)
-#define MREPEAT189(macro, data) MREPEAT188(macro, data) macro(188, data)
-#define MREPEAT190(macro, data) MREPEAT189(macro, data) macro(189, data)
-#define MREPEAT191(macro, data) MREPEAT190(macro, data) macro(190, data)
-#define MREPEAT192(macro, data) MREPEAT191(macro, data) macro(191, data)
-#define MREPEAT193(macro, data) MREPEAT192(macro, data) macro(192, data)
-#define MREPEAT194(macro, data) MREPEAT193(macro, data) macro(193, data)
-#define MREPEAT195(macro, data) MREPEAT194(macro, data) macro(194, data)
-#define MREPEAT196(macro, data) MREPEAT195(macro, data) macro(195, data)
-#define MREPEAT197(macro, data) MREPEAT196(macro, data) macro(196, data)
-#define MREPEAT198(macro, data) MREPEAT197(macro, data) macro(197, data)
-#define MREPEAT199(macro, data) MREPEAT198(macro, data) macro(198, data)
-#define MREPEAT200(macro, data) MREPEAT199(macro, data) macro(199, data)
-#define MREPEAT201(macro, data) MREPEAT200(macro, data) macro(200, data)
-#define MREPEAT202(macro, data) MREPEAT201(macro, data) macro(201, data)
-#define MREPEAT203(macro, data) MREPEAT202(macro, data) macro(202, data)
-#define MREPEAT204(macro, data) MREPEAT203(macro, data) macro(203, data)
-#define MREPEAT205(macro, data) MREPEAT204(macro, data) macro(204, data)
-#define MREPEAT206(macro, data) MREPEAT205(macro, data) macro(205, data)
-#define MREPEAT207(macro, data) MREPEAT206(macro, data) macro(206, data)
-#define MREPEAT208(macro, data) MREPEAT207(macro, data) macro(207, data)
-#define MREPEAT209(macro, data) MREPEAT208(macro, data) macro(208, data)
-#define MREPEAT210(macro, data) MREPEAT209(macro, data) macro(209, data)
-#define MREPEAT211(macro, data) MREPEAT210(macro, data) macro(210, data)
-#define MREPEAT212(macro, data) MREPEAT211(macro, data) macro(211, data)
-#define MREPEAT213(macro, data) MREPEAT212(macro, data) macro(212, data)
-#define MREPEAT214(macro, data) MREPEAT213(macro, data) macro(213, data)
-#define MREPEAT215(macro, data) MREPEAT214(macro, data) macro(214, data)
-#define MREPEAT216(macro, data) MREPEAT215(macro, data) macro(215, data)
-#define MREPEAT217(macro, data) MREPEAT216(macro, data) macro(216, data)
-#define MREPEAT218(macro, data) MREPEAT217(macro, data) macro(217, data)
-#define MREPEAT219(macro, data) MREPEAT218(macro, data) macro(218, data)
-#define MREPEAT220(macro, data) MREPEAT219(macro, data) macro(219, data)
-#define MREPEAT221(macro, data) MREPEAT220(macro, data) macro(220, data)
-#define MREPEAT222(macro, data) MREPEAT221(macro, data) macro(221, data)
-#define MREPEAT223(macro, data) MREPEAT222(macro, data) macro(222, data)
-#define MREPEAT224(macro, data) MREPEAT223(macro, data) macro(223, data)
-#define MREPEAT225(macro, data) MREPEAT224(macro, data) macro(224, data)
-#define MREPEAT226(macro, data) MREPEAT225(macro, data) macro(225, data)
-#define MREPEAT227(macro, data) MREPEAT226(macro, data) macro(226, data)
-#define MREPEAT228(macro, data) MREPEAT227(macro, data) macro(227, data)
-#define MREPEAT229(macro, data) MREPEAT228(macro, data) macro(228, data)
-#define MREPEAT230(macro, data) MREPEAT229(macro, data) macro(229, data)
-#define MREPEAT231(macro, data) MREPEAT230(macro, data) macro(230, data)
-#define MREPEAT232(macro, data) MREPEAT231(macro, data) macro(231, data)
-#define MREPEAT233(macro, data) MREPEAT232(macro, data) macro(232, data)
-#define MREPEAT234(macro, data) MREPEAT233(macro, data) macro(233, data)
-#define MREPEAT235(macro, data) MREPEAT234(macro, data) macro(234, data)
-#define MREPEAT236(macro, data) MREPEAT235(macro, data) macro(235, data)
-#define MREPEAT237(macro, data) MREPEAT236(macro, data) macro(236, data)
-#define MREPEAT238(macro, data) MREPEAT237(macro, data) macro(237, data)
-#define MREPEAT239(macro, data) MREPEAT238(macro, data) macro(238, data)
-#define MREPEAT240(macro, data) MREPEAT239(macro, data) macro(239, data)
-#define MREPEAT241(macro, data) MREPEAT240(macro, data) macro(240, data)
-#define MREPEAT242(macro, data) MREPEAT241(macro, data) macro(241, data)
-#define MREPEAT243(macro, data) MREPEAT242(macro, data) macro(242, data)
-#define MREPEAT244(macro, data) MREPEAT243(macro, data) macro(243, data)
-#define MREPEAT245(macro, data) MREPEAT244(macro, data) macro(244, data)
-#define MREPEAT246(macro, data) MREPEAT245(macro, data) macro(245, data)
-#define MREPEAT247(macro, data) MREPEAT246(macro, data) macro(246, data)
-#define MREPEAT248(macro, data) MREPEAT247(macro, data) macro(247, data)
-#define MREPEAT249(macro, data) MREPEAT248(macro, data) macro(248, data)
-#define MREPEAT250(macro, data) MREPEAT249(macro, data) macro(249, data)
-#define MREPEAT251(macro, data) MREPEAT250(macro, data) macro(250, data)
-#define MREPEAT252(macro, data) MREPEAT251(macro, data) macro(251, data)
-#define MREPEAT253(macro, data) MREPEAT252(macro, data) macro(252, data)
-#define MREPEAT254(macro, data) MREPEAT253(macro, data) macro(253, data)
-#define MREPEAT255(macro, data) MREPEAT254(macro, data) macro(254, data)
-#define MREPEAT256(macro, data) MREPEAT255(macro, data) macro(255, data)
-
-
-#endif // _MREPEAT_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h
deleted file mode 100644
index 5b996ba..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Preprocessor utils.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _PREPROCESSOR_H_
-#define _PREPROCESSOR_H_
-
-#include "tpaste.h"
-#include "stringz.h"
-#include "mrepeat.h"
-
-
-#endif // _PREPROCESSOR_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/stringz.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/stringz.h
deleted file mode 100644
index 3528ea0..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/stringz.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Preprocessor stringizing utils.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _STRINGZ_H_
-#define _STRINGZ_H_
-
-
-/*! \brief Stringize.
- *
- * Stringize a preprocessing token, this token being allowed to be \#defined.
- *
- * May be used only within macros with the token passed as an argument if the token is \#defined.
- *
- * For example, writing STRINGZ(PIN) within a macro \#defined by PIN_NAME(PIN)
- * and invoked as PIN_NAME(PIN0) with PIN0 \#defined as A0 is equivalent to
- * writing "A0".
- */
-#define STRINGZ(x) #x
-
-/*! \brief Absolute stringize.
- *
- * Stringize a preprocessing token, this token being allowed to be \#defined.
- *
- * No restriction of use if the token is \#defined.
- *
- * For example, writing ASTRINGZ(PIN0) anywhere with PIN0 \#defined as A0 is
- * equivalent to writing "A0".
- */
-#define ASTRINGZ(x) STRINGZ(x)
-
-
-#endif // _STRINGZ_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/tpaste.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/tpaste.h
deleted file mode 100644
index a5d7bee..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/tpaste.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Preprocessor token pasting utils.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _TPASTE_H_
-#define _TPASTE_H_
-
-
-/*! \name Token Paste
- *
- * Paste N preprocessing tokens together, these tokens being allowed to be \#defined.
- *
- * May be used only within macros with the tokens passed as arguments if the tokens are \#defined.
- *
- * For example, writing TPASTE2(U, WIDTH) within a macro \#defined by
- * UTYPE(WIDTH) and invoked as UTYPE(UL_WIDTH) with UL_WIDTH \#defined as 32 is
- * equivalent to writing U32.
- */
-//! @{
-#define TPASTE2( a, b) a##b
-#define TPASTE3( a, b, c) a##b##c
-#define TPASTE4( a, b, c, d) a##b##c##d
-#define TPASTE5( a, b, c, d, e) a##b##c##d##e
-#define TPASTE6( a, b, c, d, e, f) a##b##c##d##e##f
-#define TPASTE7( a, b, c, d, e, f, g) a##b##c##d##e##f##g
-#define TPASTE8( a, b, c, d, e, f, g, h) a##b##c##d##e##f##g##h
-#define TPASTE9( a, b, c, d, e, f, g, h, i) a##b##c##d##e##f##g##h##i
-#define TPASTE10(a, b, c, d, e, f, g, h, i, j) a##b##c##d##e##f##g##h##i##j
-//! @}
-
-/*! \name Absolute Token Paste
- *
- * Paste N preprocessing tokens together, these tokens being allowed to be \#defined.
- *
- * No restriction of use if the tokens are \#defined.
- *
- * For example, writing ATPASTE2(U, UL_WIDTH) anywhere with UL_WIDTH \#defined
- * as 32 is equivalent to writing U32.
- */
-//! @{
-#define ATPASTE2( a, b) TPASTE2( a, b)
-#define ATPASTE3( a, b, c) TPASTE3( a, b, c)
-#define ATPASTE4( a, b, c, d) TPASTE4( a, b, c, d)
-#define ATPASTE5( a, b, c, d, e) TPASTE5( a, b, c, d, e)
-#define ATPASTE6( a, b, c, d, e, f) TPASTE6( a, b, c, d, e, f)
-#define ATPASTE7( a, b, c, d, e, f, g) TPASTE7( a, b, c, d, e, f, g)
-#define ATPASTE8( a, b, c, d, e, f, g, h) TPASTE8( a, b, c, d, e, f, g, h)
-#define ATPASTE9( a, b, c, d, e, f, g, h, i) TPASTE9( a, b, c, d, e, f, g, h, i)
-#define ATPASTE10(a, b, c, d, e, f, g, h, i, j) TPASTE10(a, b, c, d, e, f, g, h, i, j)
-//! @}
-
-
-#endif // _TPASTE_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/STARTUP_FILES/GCC/crt0.x b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/STARTUP_FILES/GCC/crt0.x
deleted file mode 100644
index 23b658b..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/STARTUP_FILES/GCC/crt0.x
+++ /dev/null
@@ -1,121 +0,0 @@
-/* This file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief AVR32UC C runtime startup file.
- *
- * This file has been built from the Newlib crt0.S.
- *
- * - Compiler: GNU GCC for AVR32
- * - Supported devices: All AVR32UC devices can be used.
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#include <avr32/io.h>
-
-
-//! @{
-//! \verbatim
-
-
- // This must be linked @ 0x80000000 if it is to be run upon reset.
- .section .reset, "ax", @progbits
-
-
- .global _start
- .type _start, @function
-_start:
- // Jump to the C runtime startup routine.
- lda.w pc, _stext
-
-
- // _stext is placed outside the .reset section so that the program entry point
- // can be changed without affecting the C runtime startup.
- .section .text._stext, "ax", @progbits
-
-
- .global _stext
- .type _stext, @function
-_stext:
- // Set initial stack pointer.
- lda.w sp, _estack
-
- // Set up EVBA so interrupts can be enabled.
- lda.w r0, _evba
- mtsr AVR32_EVBA, r0
-
- // Enable the exception processing.
- csrf AVR32_SR_EM_OFFSET
-
- // Load initialized data having a global lifetime from the data LMA.
- lda.w r0, _data
- lda.w r1, _edata
- cp r0, r1
- brhs idata_load_loop_end
- lda.w r2, _data_lma
-idata_load_loop:
- ld.d r4, r2++
- st.d r0++, r4
- cp r0, r1
- brlo idata_load_loop
-idata_load_loop_end:
-
- // Clear uninitialized data having a global lifetime in the blank static storage section.
- lda.w r0, __bss_start
- lda.w r1, _end
- cp r0, r1
- brhs udata_clear_loop_end
- mov r2, 0
- mov r3, 0
-udata_clear_loop:
- st.d r0++, r2
- cp r0, r1
- brlo udata_clear_loop
-udata_clear_loop_end:
-
-#ifdef CONFIG_FRAME_POINTER
- // Safety: Set the default "return" @ to the exit routine address.
- lda.w lr, exit
-#endif
-
- // Start the show.
- lda.w pc, main
-
-
-//! \endverbatim
-//! @}
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/compiler.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/compiler.h
deleted file mode 100644
index 885be7f..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/compiler.h
+++ /dev/null
@@ -1,1145 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Compiler file for AVR32.
- *
- * This file defines commonly used types and macros.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _COMPILER_H_
-#define _COMPILER_H_
-
-#if ((defined __GNUC__) && (defined __AVR32__)) || (defined __ICCAVR32__ || defined __AAVR32__)
-# include <avr32/io.h>
-#endif
-#if (defined __ICCAVR32__)
-# include <intrinsics.h>
-#endif
-#include "preprocessor.h"
-
-#include "parts.h"
-
-
-//_____ D E C L A R A T I O N S ____________________________________________
-
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-
-#include <stddef.h>
-#include <stdlib.h>
-
-
-#if (defined __ICCAVR32__)
-
-/*! \name Compiler Keywords
- *
- * Port of some keywords from GNU GCC for AVR32 to IAR Embedded Workbench for Atmel AVR32.
- */
-//! @{
-#define __asm__ asm
-#define __inline__ inline
-#define __volatile__
-//! @}
-
-#endif
-
-
-/*! \name Usual Types
- */
-//! @{
-typedef unsigned char Bool; //!< Boolean.
-#ifndef __cplusplus
-#if !defined(__bool_true_false_are_defined)
-typedef unsigned char bool; //!< Boolean.
-#endif
-#endif
-typedef signed char S8 ; //!< 8-bit signed integer.
-typedef unsigned char U8 ; //!< 8-bit unsigned integer.
-typedef signed short int S16; //!< 16-bit signed integer.
-typedef unsigned short int U16; //!< 16-bit unsigned integer.
-typedef signed long int S32; //!< 32-bit signed integer.
-typedef unsigned long int U32; //!< 32-bit unsigned integer.
-typedef signed long long int S64; //!< 64-bit signed integer.
-typedef unsigned long long int U64; //!< 64-bit unsigned integer.
-typedef float F32; //!< 32-bit floating-point number.
-typedef double F64; //!< 64-bit floating-point number.
-//! @}
-
-
-/*! \name Status Types
- */
-//! @{
-typedef Bool Status_bool_t; //!< Boolean status.
-typedef U8 Status_t; //!< 8-bit-coded status.
-//! @}
-
-
-/*! \name Aliasing Aggregate Types
- */
-//! @{
-
-//! 16-bit union.
-typedef union
-{
- S16 s16 ;
- U16 u16 ;
- S8 s8 [2];
- U8 u8 [2];
-} Union16;
-
-//! 32-bit union.
-typedef union
-{
- S32 s32 ;
- U32 u32 ;
- S16 s16[2];
- U16 u16[2];
- S8 s8 [4];
- U8 u8 [4];
-} Union32;
-
-//! 64-bit union.
-typedef union
-{
- S64 s64 ;
- U64 u64 ;
- S32 s32[2];
- U32 u32[2];
- S16 s16[4];
- U16 u16[4];
- S8 s8 [8];
- U8 u8 [8];
-} Union64;
-
-//! Union of pointers to 64-, 32-, 16- and 8-bit unsigned integers.
-typedef union
-{
- S64 *s64ptr;
- U64 *u64ptr;
- S32 *s32ptr;
- U32 *u32ptr;
- S16 *s16ptr;
- U16 *u16ptr;
- S8 *s8ptr ;
- U8 *u8ptr ;
-} UnionPtr;
-
-//! Union of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers.
-typedef union
-{
- volatile S64 *s64ptr;
- volatile U64 *u64ptr;
- volatile S32 *s32ptr;
- volatile U32 *u32ptr;
- volatile S16 *s16ptr;
- volatile U16 *u16ptr;
- volatile S8 *s8ptr ;
- volatile U8 *u8ptr ;
-} UnionVPtr;
-
-//! Union of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers.
-typedef union
-{
- const S64 *s64ptr;
- const U64 *u64ptr;
- const S32 *s32ptr;
- const U32 *u32ptr;
- const S16 *s16ptr;
- const U16 *u16ptr;
- const S8 *s8ptr ;
- const U8 *u8ptr ;
-} UnionCPtr;
-
-//! Union of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers.
-typedef union
-{
- const volatile S64 *s64ptr;
- const volatile U64 *u64ptr;
- const volatile S32 *s32ptr;
- const volatile U32 *u32ptr;
- const volatile S16 *s16ptr;
- const volatile U16 *u16ptr;
- const volatile S8 *s8ptr ;
- const volatile U8 *u8ptr ;
-} UnionCVPtr;
-
-//! Structure of pointers to 64-, 32-, 16- and 8-bit unsigned integers.
-typedef struct
-{
- S64 *s64ptr;
- U64 *u64ptr;
- S32 *s32ptr;
- U32 *u32ptr;
- S16 *s16ptr;
- U16 *u16ptr;
- S8 *s8ptr ;
- U8 *u8ptr ;
-} StructPtr;
-
-//! Structure of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers.
-typedef struct
-{
- volatile S64 *s64ptr;
- volatile U64 *u64ptr;
- volatile S32 *s32ptr;
- volatile U32 *u32ptr;
- volatile S16 *s16ptr;
- volatile U16 *u16ptr;
- volatile S8 *s8ptr ;
- volatile U8 *u8ptr ;
-} StructVPtr;
-
-//! Structure of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers.
-typedef struct
-{
- const S64 *s64ptr;
- const U64 *u64ptr;
- const S32 *s32ptr;
- const U32 *u32ptr;
- const S16 *s16ptr;
- const U16 *u16ptr;
- const S8 *s8ptr ;
- const U8 *u8ptr ;
-} StructCPtr;
-
-//! Structure of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers.
-typedef struct
-{
- const volatile S64 *s64ptr;
- const volatile U64 *u64ptr;
- const volatile S32 *s32ptr;
- const volatile U32 *u32ptr;
- const volatile S16 *s16ptr;
- const volatile U16 *u16ptr;
- const volatile S8 *s8ptr ;
- const volatile U8 *u8ptr ;
-} StructCVPtr;
-
-//! @}
-
-#endif // __AVR32_ABI_COMPILER__
-
-
-//_____ M A C R O S ________________________________________________________
-
-/*! \name Usual Constants
- */
-//! @{
-#define DISABLE 0
-#define ENABLE 1
-#define DISABLED 0
-#define ENABLED 1
-#define OFF 0
-#define ON 1
-#define FALSE 0
-#define TRUE 1
-#ifndef __cplusplus
-#if !defined(__bool_true_false_are_defined)
-#define false FALSE
-#define true TRUE
-#endif
-#endif
-#define KO 0
-#define OK 1
-#define PASS 0
-#define FAIL 1
-#define LOW 0
-#define HIGH 1
-#define CLR 0
-#define SET 1
-//! @}
-
-
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-
-/*! \name Bit-Field Handling
- */
-//! @{
-
-/*! \brief Reads the bits of a value specified by a given bit-mask.
- *
- * \param value Value to read bits from.
- * \param mask Bit-mask indicating bits to read.
- *
- * \return Read bits.
- */
-#define Rd_bits( value, mask) ((value) & (mask))
-
-/*! \brief Writes the bits of a C lvalue specified by a given bit-mask.
- *
- * \param lvalue C lvalue to write bits to.
- * \param mask Bit-mask indicating bits to write.
- * \param bits Bits to write.
- *
- * \return Resulting value with written bits.
- */
-#define Wr_bits(lvalue, mask, bits) ((lvalue) = ((lvalue) & ~(mask)) |\
- ((bits ) & (mask)))
-
-/*! \brief Tests the bits of a value specified by a given bit-mask.
- *
- * \param value Value of which to test bits.
- * \param mask Bit-mask indicating bits to test.
- *
- * \return \c 1 if at least one of the tested bits is set, else \c 0.
- */
-#define Tst_bits( value, mask) (Rd_bits(value, mask) != 0)
-
-/*! \brief Clears the bits of a C lvalue specified by a given bit-mask.
- *
- * \param lvalue C lvalue of which to clear bits.
- * \param mask Bit-mask indicating bits to clear.
- *
- * \return Resulting value with cleared bits.
- */
-#define Clr_bits(lvalue, mask) ((lvalue) &= ~(mask))
-
-/*! \brief Sets the bits of a C lvalue specified by a given bit-mask.
- *
- * \param lvalue C lvalue of which to set bits.
- * \param mask Bit-mask indicating bits to set.
- *
- * \return Resulting value with set bits.
- */
-#define Set_bits(lvalue, mask) ((lvalue) |= (mask))
-
-/*! \brief Toggles the bits of a C lvalue specified by a given bit-mask.
- *
- * \param lvalue C lvalue of which to toggle bits.
- * \param mask Bit-mask indicating bits to toggle.
- *
- * \return Resulting value with toggled bits.
- */
-#define Tgl_bits(lvalue, mask) ((lvalue) ^= (mask))
-
-/*! \brief Reads the bit-field of a value specified by a given bit-mask.
- *
- * \param value Value to read a bit-field from.
- * \param mask Bit-mask indicating the bit-field to read.
- *
- * \return Read bit-field.
- */
-#define Rd_bitfield( value, mask) (Rd_bits( value, mask) >> ctz(mask))
-
-/*! \brief Writes the bit-field of a C lvalue specified by a given bit-mask.
- *
- * \param lvalue C lvalue to write a bit-field to.
- * \param mask Bit-mask indicating the bit-field to write.
- * \param bitfield Bit-field to write.
- *
- * \return Resulting value with written bit-field.
- */
-#define Wr_bitfield(lvalue, mask, bitfield) (Wr_bits(lvalue, mask, (U32)(bitfield) << ctz(mask)))
-
-//! @}
-
-
-/*! \brief This macro is used to test fatal errors.
- *
- * The macro tests if the expression is FALSE. If it is, a fatal error is
- * detected and the application hangs up.
- *
- * \param expr Expression to evaluate and supposed to be nonzero.
- */
-#ifdef _ASSERT_ENABLE_
- #define Assert(expr) \
- {\
- if (!(expr)) while (TRUE);\
- }
-#else
- #define Assert(expr)
-#endif
-
-
-/*! \name Zero-Bit Counting
- *
- * Under AVR32-GCC, __builtin_clz and __builtin_ctz behave like macros when
- * applied to constant expressions (values known at compile time), so they are
- * more optimized than the use of the corresponding assembly instructions and
- * they can be used as constant expressions e.g. to initialize objects having
- * static storage duration, and like the corresponding assembly instructions
- * when applied to non-constant expressions (values unknown at compile time), so
- * they are more optimized than an assembly periphrasis. Hence, clz and ctz
- * ensure a possible and optimized behavior for both constant and non-constant
- * expressions.
- */
-//! @{
-
-/*! \brief Counts the leading zero bits of the given value considered as a 32-bit integer.
- *
- * \param u Value of which to count the leading zero bits.
- *
- * \return The count of leading zero bits in \a u.
- */
-#if (defined __GNUC__)
- #define clz(u) __builtin_clz(u)
-#elif (defined __ICCAVR32__)
- #define clz(u) __count_leading_zeros(u)
-#endif
-
-/*! \brief Counts the trailing zero bits of the given value considered as a 32-bit integer.
- *
- * \param u Value of which to count the trailing zero bits.
- *
- * \return The count of trailing zero bits in \a u.
- */
-#if (defined __GNUC__)
- #define ctz(u) __builtin_ctz(u)
-#elif (defined __ICCAVR32__)
- #define ctz(u) __count_trailing_zeros(u)
-#endif
-
-//! @}
-
-
-/*! \name Bit Reversing
- */
-//! @{
-
-/*! \brief Reverses the bits of \a u8.
- *
- * \param u8 U8 of which to reverse the bits.
- *
- * \return Value resulting from \a u8 with reversed bits.
- */
-#define bit_reverse8(u8) ((U8)(bit_reverse32((U8)(u8)) >> 24))
-
-/*! \brief Reverses the bits of \a u16.
- *
- * \param u16 U16 of which to reverse the bits.
- *
- * \return Value resulting from \a u16 with reversed bits.
- */
-#define bit_reverse16(u16) ((U16)(bit_reverse32((U16)(u16)) >> 16))
-
-/*! \brief Reverses the bits of \a u32.
- *
- * \param u32 U32 of which to reverse the bits.
- *
- * \return Value resulting from \a u32 with reversed bits.
- */
-#if (defined __GNUC__)
- #define bit_reverse32(u32) \
- (\
- {\
- unsigned int __value = (U32)(u32);\
- __asm__ ("brev\t%0" : "+r" (__value) : : "cc");\
- (U32)__value;\
- }\
- )
-#elif (defined __ICCAVR32__)
- #define bit_reverse32(u32) ((U32)__bit_reverse((U32)(u32)))
-#endif
-
-/*! \brief Reverses the bits of \a u64.
- *
- * \param u64 U64 of which to reverse the bits.
- *
- * \return Value resulting from \a u64 with reversed bits.
- */
-#define bit_reverse64(u64) ((U64)(((U64)bit_reverse32((U64)(u64) >> 32)) |\
- ((U64)bit_reverse32((U64)(u64)) << 32)))
-
-//! @}
-
-
-/*! \name Alignment
- */
-//! @{
-
-/*! \brief Tests alignment of the number \a val with the \a n boundary.
- *
- * \param val Input value.
- * \param n Boundary.
- *
- * \return \c 1 if the number \a val is aligned with the \a n boundary, else \c 0.
- */
-#define Test_align(val, n ) (!Tst_bits( val, (n) - 1 ) )
-
-/*! \brief Gets alignment of the number \a val with respect to the \a n boundary.
- *
- * \param val Input value.
- * \param n Boundary.
- *
- * \return Alignment of the number \a val with respect to the \a n boundary.
- */
-#define Get_align( val, n ) ( Rd_bits( val, (n) - 1 ) )
-
-/*! \brief Sets alignment of the lvalue number \a lval to \a alg with respect to the \a n boundary.
- *
- * \param lval Input/output lvalue.
- * \param n Boundary.
- * \param alg Alignment.
- *
- * \return New value of \a lval resulting from its alignment set to \a alg with respect to the \a n boundary.
- */
-#define Set_align(lval, n, alg) ( Wr_bits(lval, (n) - 1, alg) )
-
-/*! \brief Aligns the number \a val with the upper \a n boundary.
- *
- * \param val Input value.
- * \param n Boundary.
- *
- * \return Value resulting from the number \a val aligned with the upper \a n boundary.
- */
-#define Align_up( val, n ) (((val) + ((n) - 1)) & ~((n) - 1))
-
-/*! \brief Aligns the number \a val with the lower \a n boundary.
- *
- * \param val Input value.
- * \param n Boundary.
- *
- * \return Value resulting from the number \a val aligned with the lower \a n boundary.
- */
-#define Align_down(val, n ) ( (val) & ~((n) - 1))
-
-//! @}
-
-
-/*! \name Mathematics
- *
- * The same considerations as for clz and ctz apply here but AVR32-GCC does not
- * provide built-in functions to access the assembly instructions abs, min and
- * max and it does not produce them by itself in most cases, so two sets of
- * macros are defined here:
- * - Abs, Min and Max to apply to constant expressions (values known at
- * compile time);
- * - abs, min and max to apply to non-constant expressions (values unknown at
- * compile time).
- */
-//! @{
-
-/*! \brief Takes the absolute value of \a a.
- *
- * \param a Input value.
- *
- * \return Absolute value of \a a.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Abs(a) (((a) < 0 ) ? -(a) : (a))
-
-/*! \brief Takes the minimal value of \a a and \a b.
- *
- * \param a Input value.
- * \param b Input value.
- *
- * \return Minimal value of \a a and \a b.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Min(a, b) (((a) < (b)) ? (a) : (b))
-
-/*! \brief Takes the maximal value of \a a and \a b.
- *
- * \param a Input value.
- * \param b Input value.
- *
- * \return Maximal value of \a a and \a b.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Max(a, b) (((a) > (b)) ? (a) : (b))
-
-/*! \brief Takes the absolute value of \a a.
- *
- * \param a Input value.
- *
- * \return Absolute value of \a a.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#if (defined __GNUC__)
- #define abs(a) \
- (\
- {\
- int __value = (a);\
- __asm__ ("abs\t%0" : "+r" (__value) : : "cc");\
- __value;\
- }\
- )
-#elif (defined __ICCAVR32__)
- #define abs(a) Abs(a)
-#endif
-
-/*! \brief Takes the minimal value of \a a and \a b.
- *
- * \param a Input value.
- * \param b Input value.
- *
- * \return Minimal value of \a a and \a b.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#if (defined __GNUC__)
- #define min(a, b) \
- (\
- {\
- int __value, __arg_a = (a), __arg_b = (b);\
- __asm__ ("min\t%0, %1, %2" : "=r" (__value) : "r" (__arg_a), "r" (__arg_b));\
- __value;\
- }\
- )
-#elif (defined __ICCAVR32__)
- #define min(a, b) __min(a, b)
-#endif
-
-/*! \brief Takes the maximal value of \a a and \a b.
- *
- * \param a Input value.
- * \param b Input value.
- *
- * \return Maximal value of \a a and \a b.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#if (defined __GNUC__)
- #define max(a, b) \
- (\
- {\
- int __value, __arg_a = (a), __arg_b = (b);\
- __asm__ ("max\t%0, %1, %2" : "=r" (__value) : "r" (__arg_a), "r" (__arg_b));\
- __value;\
- }\
- )
-#elif (defined __ICCAVR32__)
- #define max(a, b) __max(a, b)
-#endif
-
-//! @}
-
-
-/*! \brief Calls the routine at address \a addr.
- *
- * It generates a long call opcode.
- *
- * For example, `Long_call(0x80000000)' generates a software reset on a UC3 if
- * it is invoked from the CPU supervisor mode.
- *
- * \param addr Address of the routine to call.
- *
- * \note It may be used as a long jump opcode in some special cases.
- */
-#define Long_call(addr) ((*(void (*)(void))(addr))())
-
-/*! \brief Resets the CPU by software.
- *
- * \warning It shall not be called from the CPU application mode.
- */
-#if (defined __GNUC__)
- #define Reset_CPU() \
- (\
- {\
- __asm__ __volatile__ (\
- "lddpc r9, 3f\n\t"\
- "mfsr r8, %[SR]\n\t"\
- "bfextu r8, r8, %[SR_M_OFFSET], %[SR_M_SIZE]\n\t"\
- "cp.w r8, 0b001\n\t"\
- "breq 0f\n\t"\
- "sub r8, pc, $ - 1f\n\t"\
- "pushm r8-r9\n\t"\
- "rete\n"\
- "0:\n\t"\
- "mtsr %[SR], r9\n"\
- "1:\n\t"\
- "mov r0, 0\n\t"\
- "mov r1, 0\n\t"\
- "mov r2, 0\n\t"\
- "mov r3, 0\n\t"\
- "mov r4, 0\n\t"\
- "mov r5, 0\n\t"\
- "mov r6, 0\n\t"\
- "mov r7, 0\n\t"\
- "mov r8, 0\n\t"\
- "mov r9, 0\n\t"\
- "mov r10, 0\n\t"\
- "mov r11, 0\n\t"\
- "mov r12, 0\n\t"\
- "mov sp, 0\n\t"\
- "stdsp sp[0], sp\n\t"\
- "ldmts sp, sp\n\t"\
- "mov lr, 0\n\t"\
- "lddpc pc, 2f\n\t"\
- ".balign 4\n"\
- "2:\n\t"\
- ".word _start\n"\
- "3:\n\t"\
- ".word %[RESET_SR]"\
- :\
- : [SR] "i" (AVR32_SR),\
- [SR_M_OFFSET] "i" (AVR32_SR_M_OFFSET),\
- [SR_M_SIZE] "i" (AVR32_SR_M_SIZE),\
- [RESET_SR] "i" (AVR32_SR_GM_MASK | AVR32_SR_EM_MASK | (AVR32_SR_M_SUP << AVR32_SR_M_OFFSET))\
- );\
- }\
- )
-#elif (defined __ICCAVR32__)
- #define Reset_CPU() \
- {\
- extern void *volatile __program_start;\
- __asm__ __volatile__ (\
- "mov r7, LWRD(__program_start)\n\t"\
- "orh r7, HWRD(__program_start)\n\t"\
- "mov r9, LWRD("ASTRINGZ(AVR32_SR_GM_MASK | AVR32_SR_EM_MASK | (AVR32_SR_M_SUP << AVR32_SR_M_OFFSET))")\n\t"\
- "orh r9, HWRD("ASTRINGZ(AVR32_SR_GM_MASK | AVR32_SR_EM_MASK | (AVR32_SR_M_SUP << AVR32_SR_M_OFFSET))")\n\t"\
- "mfsr r8, "ASTRINGZ(AVR32_SR)"\n\t"\
- "bfextu r8, r8, "ASTRINGZ(AVR32_SR_M_OFFSET)", "ASTRINGZ(AVR32_SR_M_SIZE)"\n\t"\
- "cp.w r8, 001b\n\t"\
- "breq $ + 10\n\t"\
- "sub r8, pc, -12\n\t"\
- "pushm r8-r9\n\t"\
- "rete\n\t"\
- "mtsr "ASTRINGZ(AVR32_SR)", r9\n\t"\
- "mov r0, 0\n\t"\
- "mov r1, 0\n\t"\
- "mov r2, 0\n\t"\
- "mov r3, 0\n\t"\
- "mov r4, 0\n\t"\
- "mov r5, 0\n\t"\
- "mov r6, 0\n\t"\
- "st.w r0[4], r7\n\t"\
- "mov r7, 0\n\t"\
- "mov r8, 0\n\t"\
- "mov r9, 0\n\t"\
- "mov r10, 0\n\t"\
- "mov r11, 0\n\t"\
- "mov r12, 0\n\t"\
- "mov sp, 0\n\t"\
- "stdsp sp[0], sp\n\t"\
- "ldmts sp, sp\n\t"\
- "mov lr, 0\n\t"\
- "ld.w pc, lr[4]"\
- );\
- __program_start;\
- }
-#endif
-
-
-/*! \name System Register Access
- */
-//! @{
-
-/*! \brief Gets the value of the \a sysreg system register.
- *
- * \param sysreg Address of the system register of which to get the value.
- *
- * \return Value of the \a sysreg system register.
- */
-#if (defined __GNUC__)
- #define Get_system_register(sysreg) __builtin_mfsr(sysreg)
-#elif (defined __ICCAVR32__)
- #define Get_system_register(sysreg) __get_system_register(sysreg)
-#endif
-
-/*! \brief Sets the value of the \a sysreg system register to \a value.
- *
- * \param sysreg Address of the system register of which to set the value.
- * \param value Value to set the \a sysreg system register to.
- */
-#if (defined __GNUC__)
- #define Set_system_register(sysreg, value) __builtin_mtsr(sysreg, value)
-#elif (defined __ICCAVR32__)
- #define Set_system_register(sysreg, value) __set_system_register(sysreg, value)
-#endif
-
-//! @}
-
-
-/*! \name CPU Status Register Access
- */
-//! @{
-
-/*! \brief Tells whether exceptions are globally enabled.
- *
- * \return \c 1 if exceptions are globally enabled, else \c 0.
- */
-#define Is_global_exception_enabled() (!Tst_bits(Get_system_register(AVR32_SR), AVR32_SR_EM_MASK))
-
-/*! \brief Disables exceptions globally.
- */
-#if (defined __GNUC__)
- #define Disable_global_exception() ({__asm__ __volatile__ ("ssrf\t%0" : : "i" (AVR32_SR_EM_OFFSET));})
-#elif (defined __ICCAVR32__)
- #define Disable_global_exception() (__set_status_flag(AVR32_SR_EM_OFFSET))
-#endif
-
-/*! \brief Enables exceptions globally.
- */
-#if (defined __GNUC__)
- #define Enable_global_exception() ({__asm__ __volatile__ ("csrf\t%0" : : "i" (AVR32_SR_EM_OFFSET));})
-#elif (defined __ICCAVR32__)
- #define Enable_global_exception() (__clear_status_flag(AVR32_SR_EM_OFFSET))
-#endif
-
-/*! \brief Tells whether interrupts are globally enabled.
- *
- * \return \c 1 if interrupts are globally enabled, else \c 0.
- */
-#define Is_global_interrupt_enabled() (!Tst_bits(Get_system_register(AVR32_SR), AVR32_SR_GM_MASK))
-
-/*! \brief Disables interrupts globally.
- */
-#if (defined __GNUC__)
- #define Disable_global_interrupt() ({__asm__ __volatile__ ("ssrf\t%0" : : "i" (AVR32_SR_GM_OFFSET));})
-#elif (defined __ICCAVR32__)
- #define Disable_global_interrupt() (__disable_interrupt())
-#endif
-
-/*! \brief Enables interrupts globally.
- */
-#if (defined __GNUC__)
- #define Enable_global_interrupt() ({__asm__ __volatile__ ("csrf\t%0" : : "i" (AVR32_SR_GM_OFFSET));})
-#elif (defined __ICCAVR32__)
- #define Enable_global_interrupt() (__enable_interrupt())
-#endif
-
-/*! \brief Tells whether interrupt level \a int_level is enabled.
- *
- * \param int_level Interrupt level (0 to 3).
- *
- * \return \c 1 if interrupt level \a int_level is enabled, else \c 0.
- */
-#define Is_interrupt_level_enabled(int_level) (!Tst_bits(Get_system_register(AVR32_SR), TPASTE3(AVR32_SR_I, int_level, M_MASK)))
-
-/*! \brief Disables interrupt level \a int_level.
- *
- * \param int_level Interrupt level to disable (0 to 3).
- */
-#if (defined __GNUC__)
- #define Disable_interrupt_level(int_level) ({__asm__ __volatile__ ("ssrf\t%0" : : "i" (TPASTE3(AVR32_SR_I, int_level, M_OFFSET)));})
-#elif (defined __ICCAVR32__)
- #define Disable_interrupt_level(int_level) (__set_status_flag(TPASTE3(AVR32_SR_I, int_level, M_OFFSET)))
-#endif
-
-/*! \brief Enables interrupt level \a int_level.
- *
- * \param int_level Interrupt level to enable (0 to 3).
- */
-#if (defined __GNUC__)
- #define Enable_interrupt_level(int_level) ({__asm__ __volatile__ ("csrf\t%0" : : "i" (TPASTE3(AVR32_SR_I, int_level, M_OFFSET)));})
-#elif (defined __ICCAVR32__)
- #define Enable_interrupt_level(int_level) (__clear_status_flag(TPASTE3(AVR32_SR_I, int_level, M_OFFSET)))
-#endif
-
-/*! \brief Protects subsequent code from interrupts.
- */
-#define AVR32_ENTER_CRITICAL_REGION( ) \
- { \
- Bool global_interrupt_enabled = Is_global_interrupt_enabled(); \
- Disable_global_interrupt(); // Disable the appropriate interrupts.
-
-/*! \brief This macro must always be used in conjunction with AVR32_ENTER_CRITICAL_REGION
- * so that interrupts are enabled again.
- */
-#define AVR32_LEAVE_CRITICAL_REGION( ) \
- if (global_interrupt_enabled) Enable_global_interrupt(); \
- }
-
-//! @}
-
-
-/*! \name Debug Register Access
- */
-//! @{
-
-/*! \brief Gets the value of the \a dbgreg debug register.
- *
- * \param dbgreg Address of the debug register of which to get the value.
- *
- * \return Value of the \a dbgreg debug register.
- */
-#if (defined __GNUC__)
- #define Get_debug_register(dbgreg) __builtin_mfdr(dbgreg)
-#elif (defined __ICCAVR32__)
- #define Get_debug_register(dbgreg) __get_debug_register(dbgreg)
-#endif
-
-/*! \brief Sets the value of the \a dbgreg debug register to \a value.
- *
- * \param dbgreg Address of the debug register of which to set the value.
- * \param value Value to set the \a dbgreg debug register to.
- */
-#if (defined __GNUC__)
- #define Set_debug_register(dbgreg, value) __builtin_mtdr(dbgreg, value)
-#elif (defined __ICCAVR32__)
- #define Set_debug_register(dbgreg, value) __set_debug_register(dbgreg, value)
-#endif
-
-//! @}
-
-#endif // __AVR32_ABI_COMPILER__
-
-
-//! Boolean evaluating MCU little endianism.
-#if ((defined __GNUC__) && (defined __AVR32__)) || ((defined __ICCAVR32__) || (defined __AAVR32__))
- #define LITTLE_ENDIAN_MCU FALSE
-#else
- #error If you are here, you should check what is exactly the processor you are using...
- #define LITTLE_ENDIAN_MCU FALSE
-#endif
-
-// Check that MCU endianism is correctly defined.
-#ifndef LITTLE_ENDIAN_MCU
- #error YOU MUST define the MCU endianism with LITTLE_ENDIAN_MCU: either FALSE or TRUE
-#endif
-
-//! Boolean evaluating MCU big endianism.
-#define BIG_ENDIAN_MCU (!LITTLE_ENDIAN_MCU)
-
-
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-
-/*! \name MCU Endianism Handling
- */
-//! @{
-
-#if (LITTLE_ENDIAN_MCU==TRUE)
- #define LSB(u16) (((U8 *)&(u16))[0]) //!< Least significant byte of \a u16.
- #define MSB(u16) (((U8 *)&(u16))[1]) //!< Most significant byte of \a u16.
-
- #define LSH(u32) (((U16 *)&(u32))[0]) //!< Least significant half-word of \a u32.
- #define MSH(u32) (((U16 *)&(u32))[1]) //!< Most significant half-word of \a u32.
- #define LSB0W(u32) (((U8 *)&(u32))[0]) //!< Least significant byte of 1st rank of \a u32.
- #define LSB1W(u32) (((U8 *)&(u32))[1]) //!< Least significant byte of 2nd rank of \a u32.
- #define LSB2W(u32) (((U8 *)&(u32))[2]) //!< Least significant byte of 3rd rank of \a u32.
- #define LSB3W(u32) (((U8 *)&(u32))[3]) //!< Least significant byte of 4th rank of \a u32.
- #define MSB3W(u32) LSB0W(u32) //!< Most significant byte of 4th rank of \a u32.
- #define MSB2W(u32) LSB1W(u32) //!< Most significant byte of 3rd rank of \a u32.
- #define MSB1W(u32) LSB2W(u32) //!< Most significant byte of 2nd rank of \a u32.
- #define MSB0W(u32) LSB3W(u32) //!< Most significant byte of 1st rank of \a u32.
-
- #define LSW(u64) (((U32 *)&(u64))[0]) //!< Least significant word of \a u64.
- #define MSW(u64) (((U32 *)&(u64))[1]) //!< Most significant word of \a u64.
- #define LSH0(u64) (((U16 *)&(u64))[0]) //!< Least significant half-word of 1st rank of \a u64.
- #define LSH1(u64) (((U16 *)&(u64))[1]) //!< Least significant half-word of 2nd rank of \a u64.
- #define LSH2(u64) (((U16 *)&(u64))[2]) //!< Least significant half-word of 3rd rank of \a u64.
- #define LSH3(u64) (((U16 *)&(u64))[3]) //!< Least significant half-word of 4th rank of \a u64.
- #define MSH3(u64) LSH0(u64) //!< Most significant half-word of 4th rank of \a u64.
- #define MSH2(u64) LSH1(u64) //!< Most significant half-word of 3rd rank of \a u64.
- #define MSH1(u64) LSH2(u64) //!< Most significant half-word of 2nd rank of \a u64.
- #define MSH0(u64) LSH3(u64) //!< Most significant half-word of 1st rank of \a u64.
- #define LSB0D(u64) (((U8 *)&(u64))[0]) //!< Least significant byte of 1st rank of \a u64.
- #define LSB1D(u64) (((U8 *)&(u64))[1]) //!< Least significant byte of 2nd rank of \a u64.
- #define LSB2D(u64) (((U8 *)&(u64))[2]) //!< Least significant byte of 3rd rank of \a u64.
- #define LSB3D(u64) (((U8 *)&(u64))[3]) //!< Least significant byte of 4th rank of \a u64.
- #define LSB4D(u64) (((U8 *)&(u64))[4]) //!< Least significant byte of 5th rank of \a u64.
- #define LSB5D(u64) (((U8 *)&(u64))[5]) //!< Least significant byte of 6th rank of \a u64.
- #define LSB6D(u64) (((U8 *)&(u64))[6]) //!< Least significant byte of 7th rank of \a u64.
- #define LSB7D(u64) (((U8 *)&(u64))[7]) //!< Least significant byte of 8th rank of \a u64.
- #define MSB7D(u64) LSB0D(u64) //!< Most significant byte of 8th rank of \a u64.
- #define MSB6D(u64) LSB1D(u64) //!< Most significant byte of 7th rank of \a u64.
- #define MSB5D(u64) LSB2D(u64) //!< Most significant byte of 6th rank of \a u64.
- #define MSB4D(u64) LSB3D(u64) //!< Most significant byte of 5th rank of \a u64.
- #define MSB3D(u64) LSB4D(u64) //!< Most significant byte of 4th rank of \a u64.
- #define MSB2D(u64) LSB5D(u64) //!< Most significant byte of 3rd rank of \a u64.
- #define MSB1D(u64) LSB6D(u64) //!< Most significant byte of 2nd rank of \a u64.
- #define MSB0D(u64) LSB7D(u64) //!< Most significant byte of 1st rank of \a u64.
-
-#elif (BIG_ENDIAN_MCU==TRUE)
- #define MSB(u16) (((U8 *)&(u16))[0]) //!< Most significant byte of \a u16.
- #define LSB(u16) (((U8 *)&(u16))[1]) //!< Least significant byte of \a u16.
-
- #define MSH(u32) (((U16 *)&(u32))[0]) //!< Most significant half-word of \a u32.
- #define LSH(u32) (((U16 *)&(u32))[1]) //!< Least significant half-word of \a u32.
- #define MSB0W(u32) (((U8 *)&(u32))[0]) //!< Most significant byte of 1st rank of \a u32.
- #define MSB1W(u32) (((U8 *)&(u32))[1]) //!< Most significant byte of 2nd rank of \a u32.
- #define MSB2W(u32) (((U8 *)&(u32))[2]) //!< Most significant byte of 3rd rank of \a u32.
- #define MSB3W(u32) (((U8 *)&(u32))[3]) //!< Most significant byte of 4th rank of \a u32.
- #define LSB3W(u32) MSB0W(u32) //!< Least significant byte of 4th rank of \a u32.
- #define LSB2W(u32) MSB1W(u32) //!< Least significant byte of 3rd rank of \a u32.
- #define LSB1W(u32) MSB2W(u32) //!< Least significant byte of 2nd rank of \a u32.
- #define LSB0W(u32) MSB3W(u32) //!< Least significant byte of 1st rank of \a u32.
-
- #define MSW(u64) (((U32 *)&(u64))[0]) //!< Most significant word of \a u64.
- #define LSW(u64) (((U32 *)&(u64))[1]) //!< Least significant word of \a u64.
- #define MSH0(u64) (((U16 *)&(u64))[0]) //!< Most significant half-word of 1st rank of \a u64.
- #define MSH1(u64) (((U16 *)&(u64))[1]) //!< Most significant half-word of 2nd rank of \a u64.
- #define MSH2(u64) (((U16 *)&(u64))[2]) //!< Most significant half-word of 3rd rank of \a u64.
- #define MSH3(u64) (((U16 *)&(u64))[3]) //!< Most significant half-word of 4th rank of \a u64.
- #define LSH3(u64) MSH0(u64) //!< Least significant half-word of 4th rank of \a u64.
- #define LSH2(u64) MSH1(u64) //!< Least significant half-word of 3rd rank of \a u64.
- #define LSH1(u64) MSH2(u64) //!< Least significant half-word of 2nd rank of \a u64.
- #define LSH0(u64) MSH3(u64) //!< Least significant half-word of 1st rank of \a u64.
- #define MSB0D(u64) (((U8 *)&(u64))[0]) //!< Most significant byte of 1st rank of \a u64.
- #define MSB1D(u64) (((U8 *)&(u64))[1]) //!< Most significant byte of 2nd rank of \a u64.
- #define MSB2D(u64) (((U8 *)&(u64))[2]) //!< Most significant byte of 3rd rank of \a u64.
- #define MSB3D(u64) (((U8 *)&(u64))[3]) //!< Most significant byte of 4th rank of \a u64.
- #define MSB4D(u64) (((U8 *)&(u64))[4]) //!< Most significant byte of 5th rank of \a u64.
- #define MSB5D(u64) (((U8 *)&(u64))[5]) //!< Most significant byte of 6th rank of \a u64.
- #define MSB6D(u64) (((U8 *)&(u64))[6]) //!< Most significant byte of 7th rank of \a u64.
- #define MSB7D(u64) (((U8 *)&(u64))[7]) //!< Most significant byte of 8th rank of \a u64.
- #define LSB7D(u64) MSB0D(u64) //!< Least significant byte of 8th rank of \a u64.
- #define LSB6D(u64) MSB1D(u64) //!< Least significant byte of 7th rank of \a u64.
- #define LSB5D(u64) MSB2D(u64) //!< Least significant byte of 6th rank of \a u64.
- #define LSB4D(u64) MSB3D(u64) //!< Least significant byte of 5th rank of \a u64.
- #define LSB3D(u64) MSB4D(u64) //!< Least significant byte of 4th rank of \a u64.
- #define LSB2D(u64) MSB5D(u64) //!< Least significant byte of 3rd rank of \a u64.
- #define LSB1D(u64) MSB6D(u64) //!< Least significant byte of 2nd rank of \a u64.
- #define LSB0D(u64) MSB7D(u64) //!< Least significant byte of 1st rank of \a u64.
-
-#else
- #error Unknown endianism.
-#endif
-
-//! @}
-
-
-/*! \name Endianism Conversion
- *
- * The same considerations as for clz and ctz apply here but AVR32-GCC's
- * __builtin_bswap_16 and __builtin_bswap_32 do not behave like macros when
- * applied to constant expressions, so two sets of macros are defined here:
- * - Swap16, Swap32 and Swap64 to apply to constant expressions (values known
- * at compile time);
- * - swap16, swap32 and swap64 to apply to non-constant expressions (values
- * unknown at compile time).
- */
-//! @{
-
-/*! \brief Toggles the endianism of \a u16 (by swapping its bytes).
- *
- * \param u16 U16 of which to toggle the endianism.
- *
- * \return Value resulting from \a u16 with toggled endianism.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Swap16(u16) ((U16)(((U16)(u16) >> 8) |\
- ((U16)(u16) << 8)))
-
-/*! \brief Toggles the endianism of \a u32 (by swapping its bytes).
- *
- * \param u32 U32 of which to toggle the endianism.
- *
- * \return Value resulting from \a u32 with toggled endianism.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Swap32(u32) ((U32)(((U32)Swap16((U32)(u32) >> 16)) |\
- ((U32)Swap16((U32)(u32)) << 16)))
-
-/*! \brief Toggles the endianism of \a u64 (by swapping its bytes).
- *
- * \param u64 U64 of which to toggle the endianism.
- *
- * \return Value resulting from \a u64 with toggled endianism.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Swap64(u64) ((U64)(((U64)Swap32((U64)(u64) >> 32)) |\
- ((U64)Swap32((U64)(u64)) << 32)))
-
-/*! \brief Toggles the endianism of \a u16 (by swapping its bytes).
- *
- * \param u16 U16 of which to toggle the endianism.
- *
- * \return Value resulting from \a u16 with toggled endianism.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#if (defined __GNUC__)
- #define swap16(u16) ((U16)__builtin_bswap_16((U16)(u16)))
-#elif (defined __ICCAVR32__)
- #define swap16(u16) ((U16)__swap_bytes_in_halfwords((U16)(u16)))
-#endif
-
-/*! \brief Toggles the endianism of \a u32 (by swapping its bytes).
- *
- * \param u32 U32 of which to toggle the endianism.
- *
- * \return Value resulting from \a u32 with toggled endianism.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#if (defined __GNUC__)
- #define swap32(u32) ((U32)__builtin_bswap_32((U32)(u32)))
-#elif (defined __ICCAVR32__)
- #define swap32(u32) ((U32)__swap_bytes((U32)(u32)))
-#endif
-
-/*! \brief Toggles the endianism of \a u64 (by swapping its bytes).
- *
- * \param u64 U64 of which to toggle the endianism.
- *
- * \return Value resulting from \a u64 with toggled endianism.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#define swap64(u64) ((U64)(((U64)swap32((U64)(u64) >> 32)) |\
- ((U64)swap32((U64)(u64)) << 32)))
-
-//! @}
-
-
-/*! \name Target Abstraction
- */
-//! @{
-
-#define _GLOBEXT_ extern //!< extern storage-class specifier.
-#define _CONST_TYPE_ const //!< const type qualifier.
-#define _MEM_TYPE_SLOW_ //!< Slow memory type.
-#define _MEM_TYPE_MEDFAST_ //!< Fairly fast memory type.
-#define _MEM_TYPE_FAST_ //!< Fast memory type.
-
-typedef U8 Byte; //!< 8-bit unsigned integer.
-
-#define memcmp_ram2ram memcmp //!< Target-specific memcmp of RAM to RAM.
-#define memcmp_code2ram memcmp //!< Target-specific memcmp of RAM to NVRAM.
-#define memcpy_ram2ram memcpy //!< Target-specific memcpy from RAM to RAM.
-#define memcpy_code2ram memcpy //!< Target-specific memcpy from NVRAM to RAM.
-
-#define LSB0(u32) LSB0W(u32) //!< Least significant byte of 1st rank of \a u32.
-#define LSB1(u32) LSB1W(u32) //!< Least significant byte of 2nd rank of \a u32.
-#define LSB2(u32) LSB2W(u32) //!< Least significant byte of 3rd rank of \a u32.
-#define LSB3(u32) LSB3W(u32) //!< Least significant byte of 4th rank of \a u32.
-#define MSB3(u32) MSB3W(u32) //!< Most significant byte of 4th rank of \a u32.
-#define MSB2(u32) MSB2W(u32) //!< Most significant byte of 3rd rank of \a u32.
-#define MSB1(u32) MSB1W(u32) //!< Most significant byte of 2nd rank of \a u32.
-#define MSB0(u32) MSB0W(u32) //!< Most significant byte of 1st rank of \a u32.
-
-//! @}
-
-#endif // __AVR32_ABI_COMPILER__
-
-
-#endif // _COMPILER_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/conf_isp.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/conf_isp.h
deleted file mode 100644
index ca516ee..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/conf_isp.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file ******************************************************************
- *
- * \brief ISP configuration file.
- *
- * This file contains the possible external configuration of the ISP.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices with a USB module can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ***************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _CONF_ISP_H_
-#define _CONF_ISP_H_
-
-#include <avr32/io.h>
-#include "compiler.h"
-
-
-//_____ D E F I N I T I O N S ______________________________________________
-
-#define PRODUCT_MANUFACTURER_ID 0x58
-#define PRODUCT_FAMILY_ID 0x20
-
-#define ISP_VERSION 0x10
-#define ISP_ID0 0x00
-#define ISP_ID1 0x00
-
-#define ISP_CFG1 (*(volatile U32 *)ISP_CFG1_ADDRESS)
-#define ISP_CFG1_ADDRESS (AVR32_FLASHC_USER_PAGE_ADDRESS + ISP_CFG1_OFFSET)
-#define ISP_CFG1_OFFSET 0x000001FC
-#define ISP_CFG1_SIZE 4
-
-#define ISP_CFG1_BOOT_KEY1 16
-#define ISP_CFG1_BOOT_KEY1_MASK 0xFFFF0000
-#define ISP_CFG1_BOOT_KEY1_OFFSET 16
-#define ISP_CFG1_BOOT_KEY1_SIZE 16
-#define ISP_CFG1_BOOT_KEY1_VALUE 0xE11E
-
-#define ISP_CFG1_FORCE 9
-#define ISP_CFG1_FORCE_MASK 0x00000200
-#define ISP_CFG1_FORCE_OFFSET 9
-#define ISP_CFG1_FORCE_SIZE 1
-
-#define ISP_CFG1_IO_COND_EN 8
-#define ISP_CFG1_IO_COND_EN_MASK 0x00000100
-#define ISP_CFG1_IO_COND_EN_OFFSET 8
-#define ISP_CFG1_IO_COND_EN_SIZE 1
-
-#define ISP_CFG1_CRC8 0
-#define ISP_CFG1_CRC8_MASK 0x000000FF
-#define ISP_CFG1_CRC8_OFFSET 0
-#define ISP_CFG1_CRC8_SIZE 8
-#define ISP_CFG1_CRC8_POLYNOMIAL 0x107
-
-#define ISP_CFG2 (*(volatile U32 *)ISP_CFG2_ADDRESS)
-#define ISP_CFG2_ADDRESS (AVR32_FLASHC_USER_PAGE_ADDRESS + ISP_CFG2_OFFSET)
-#define ISP_CFG2_OFFSET 0x000001F8
-#define ISP_CFG2_SIZE 4
-
-#define ISP_CFG2_BOOT_KEY 17
-#define ISP_CFG2_BOOT_KEY_MASK 0xFFFE0000
-#define ISP_CFG2_BOOT_KEY_OFFSET 17
-#define ISP_CFG2_BOOT_KEY_SIZE 15
-#define ISP_CFG2_BOOT_KEY_VALUE 0x494F
-
-#define ISP_CFG2_IO_COND_LEVEL 16
-#define ISP_CFG2_IO_COND_LEVEL_MASK 0x00010000
-#define ISP_CFG2_IO_COND_LEVEL_OFFSET 16
-#define ISP_CFG2_IO_COND_LEVEL_SIZE 1
-
-#define ISP_CFG2_IO_COND_PIN 8
-#define ISP_CFG2_IO_COND_PIN_MASK 0x0000FF00
-#define ISP_CFG2_IO_COND_PIN_OFFSET 8
-#define ISP_CFG2_IO_COND_PIN_SIZE 8
-
-#define ISP_CFG2_CRC8 0
-#define ISP_CFG2_CRC8_MASK 0x000000FF
-#define ISP_CFG2_CRC8_OFFSET 0
-#define ISP_CFG2_CRC8_SIZE 8
-#define ISP_CFG2_CRC8_POLYNOMIAL 0x107
-
-#define ISP_KEY (*(volatile U32 *)ISP_KEY_ADDRESS)
-#define ISP_KEY_ADDRESS (AVR32_SRAM_ADDRESS + ISP_KEY_OFFSET)
-#define ISP_KEY_OFFSET 0x00000000
-#define ISP_KEY_SIZE 4
-#define ISP_KEY_VALUE ('I' << 24 | 'S' << 16 | 'P' << 8 | 'K')
-
-#ifndef ISP_OSC
- #define ISP_OSC 0
-#endif
-
-#define DFU_FRAME_LENGTH 2048
-
-#define PROGRAM_START_ADDRESS (AVR32_FLASH_ADDRESS + PROGRAM_START_OFFSET)
-#define PROGRAM_START_OFFSET 0x00002000
-
-
-#endif // _CONF_ISP_H_
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/parts.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/parts.h
deleted file mode 100644
index 6637b2f..0000000
--- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/parts.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*This file is prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief Arch file for AVR32.
- *
- * This file defines common AVR32 UC3 series.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- ******************************************************************************/
-
-/* Copyright (c) 2009 Atmel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an Atmel
- * AVR product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- */
-
-#ifndef _ARCH_H_
-#define _ARCH_H_
-
-// UC3 A Series
-#define UC3A0 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3A0128__) || \
- defined (__AVR32_UC3A0256__) || \
- defined (__AVR32_UC3A0512__) || \
- defined (__AVR32_UC3A0512ES__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3A0128__) || \
- defined (__AT32UC3A0256__) || \
- defined (__AT32UC3A0512__) || \
- defined (__AT32UC3A0512ES__)))
-
-#define UC3A1 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3A1128__) || \
- defined (__AVR32_UC3A1256__) || \
- defined (__AVR32_UC3A1512__) || \
- defined (__AVR32_UC3A1512ES__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3A1128__) || \
- defined (__AT32UC3A1256__) || \
- defined (__AT32UC3A1512__) || \
- defined (__AT32UC3A1512ES__)))
-
-#define UC3A3 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3A364__) || \
- defined (__AVR32_UC3A364S__) || \
- defined (__AVR32_UC3A3128__) || \
- defined (__AVR32_UC3A3128S__) || \
- defined (__AVR32_UC3A3256__) || \
- defined (__AVR32_UC3A3256S__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3A364__) || \
- defined (__AT32UC3A364S__) || \
- defined (__AT32UC3A3128__) || \
- defined (__AT32UC3A3128S__) || \
- defined (__AT32UC3A3256__) || \
- defined (__AT32UC3A3256S__)))
-
-#define UC3A (UC3A0 || UC3A1 || UC3A3)
-
-// UC3 B Series
-#define UC3B0 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3B064__) || \
- defined (__AVR32_UC3B0128__) || \
- defined (__AVR32_UC3B0256__) || \
- defined (__AVR32_UC3B0256ES__) || \
- defined (__AVR32_UC3B0512__) || \
- defined (__AVR32_UC3B0512REVC_))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3B064__) || \
- defined (__AT32UC3B0128__) || \
- defined (__AT32UC3B0256__) || \
- defined (__AT32UC3B0256ES__) || \
- defined (__AT32UC3B0512__) || \
- defined (__AT32UC3B0512REVC__)))
-
-#define UC3B1 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3B164__) || \
- defined (__AVR32_UC3B1128__) || \
- defined (__AVR32_UC3B1256__) || \
- defined (__AVR32_UC3B1256ES__) || \
- defined (__AVR32_UC3B1512__) || \
- defined (__AVR32_UC3B1512ES__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3B164__) || \
- defined (__AT32UC3B1128__) || \
- defined (__AT32UC3B1256__) || \
- defined (__AT32UC3B1256ES__) || \
- defined (__AT32UC3B1512__) || \
- defined (__AT32UC3B1512REVC__)))
-
-#define UC3B (UC3B0 || UC3B1 )
-
-// UC3 C Series
-#define UC3C0 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3C064C__) || \
- defined (__AVR32_UC3C0128C__) || \
- defined (__AVR32_UC3C0256C__) || \
- defined (__AVR32_UC3C0512CREVC__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3C064C__) || \
- defined (__AT32UC3C0128C__) || \
- defined (__AT32UC3C0256C__) || \
- defined (__AT32UC3C0512C__)))
-
-#define UC3C1 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3C164C__) || \
- defined (__AVR32_UC3C1128C__) || \
- defined (__AVR32_UC3C1256C__) || \
- defined (__AVR32_UC3C1512CREVC__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3C164C__) || \
- defined (__AT32UC3C1128C__) || \
- defined (__AT32UC3C1256C__) || \
- defined (__AT32UC3C1512C__)))
-
-#define UC3C2 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3C264C__) || \
- defined (__AVR32_UC3C2128C__) || \
- defined (__AVR32_UC3C2256C__) || \
- defined (__AVR32_UC3C2512CREVC__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3C264C__) || \
- defined (__AT32UC3C2128C__) || \
- defined (__AT32UC3C2256C__) || \
- defined (__AT32UC3C2512C__)))
-
-#define UC3C (UC3C0 || UC3C1 || UC3C2)
-
-// UC3 L Device series
-#define UC3L0 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3L016__) || \
- defined (__AVR32_UC3L032__) || \
- defined (__AVR32_UC3L064__) || \
- defined (__AVR32_UC3L064REVB__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3L016__) || \
- defined (__AT32UC3L032__) || \
- defined (__AT32UC3L064__) || \
- defined (__AT32UC3L064REVB__)))
-
-#define UC3L1 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3L116__) || \
- defined (__AVR32_UC3L132__) || \
- defined (__AVR32_UC3L164__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3L116__) || \
- defined (__AT32UC3L132__) || \
- defined (__AT32UC3L164__)))
-
-#define UC3L2 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3L216__) || \
- defined (__AVR32_UC3L232__) || \
- defined (__AVR32_UC3L264__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3L216__) || \
- defined (__AT32UC3L232__) || \
- defined (__AT32UC3L264__)))
-
-#define UC3L3 ( defined (__GNUC__) && \
- ( defined (__AVR32_UC3L316__) || \
- defined (__AVR32_UC3L332__) || \
- defined (__AVR32_UC3L364__))) \
- ||((defined(__ICCAVR32__) || defined(__AAVR32__)) && \
- ( defined (__AT32UC3L316__) || \
- defined (__AT32UC3L332__) || \
- defined (__AT32UC3L364__)))
-
-#define UC3L (UC3L0 || UC3L1 || UC3L2 || UC3L3)
-
-#endif // _ARCH_H_
diff --git a/firmwares/wifishield/wifiHD/src/ard_spi.c b/firmwares/wifishield/wifiHD/src/ard_spi.c
deleted file mode 100644
index 8bd288b..0000000
--- a/firmwares/wifishield/wifiHD/src/ard_spi.c
+++ /dev/null
@@ -1,1969 +0,0 @@
-/*
- * ard_spi.c
- *
- * Created on: May 27, 2010
- * Author: mlf by Metodo2 srl
- */
-
-//#define _APP_DEBUG_
-
-#include <avr32/io.h>
-#include "board.h"
-#include "gpio.h"
-#include "usart.h"
-#include "ard_spi.h"
-#include "ard_tcp.h"
-#include "wifi_spi.h"
-#include "wl_cm.h"
-#include "ard_utils.h"
-#include "intc.h"
-#include "spi.h"
-#include "debug.h"
-#include "delay.h"
-#include "eic.h"
-#include "timer.h"
-#include "lwip/dns.h"
-#include <board_init.h>
-#include "util.h"
-#include "lwip/udp.h"
-#include "lwip_setup.h"
-
-extern const char* fwVersion;
-
-/*! \name USART Settings
- */
-//! @{
-#if BOARD == EVK1105
-# define ARD_USART_SPI (&AVR32_USART1)
-# define ARD_USART_SPI_SCK_PIN AVR32_USART1_CLK_0_PIN
-# define ARD_USART_SPI_SCK_FUNCTION AVR32_USART1_CLK_0_FUNCTION
-# define ARD_USART_SPI_MISO_PIN AVR32_USART1_TXD_0_0_PIN
-# define ARD_USART_SPI_MISO_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION
-# define ARD_USART_SPI_MOSI_PIN AVR32_USART1_RXD_0_0_PIN
-# define ARD_USART_SPI_MOSI_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION
-# define ARD_USART_SPI_NSS_PIN AVR32_USART1_CTS_0_0_PIN
-# define ARD_USART_SPI_NSS_FUNCTION AVR32_USART1_CTS_0_0_FUNCTION
-# define ARD_USART_SPI_IRQ AVR32_USART1_IRQ
-#endif
-#if BOARD == ARDUINO
-# define ARD_SPI (&AVR32_SPI0)
-#define EXT_INT_PIN_LINE1 AVR32_EIC_EXTINT_5_PIN
-#define EXT_INT_FUNCTION_LINE1 AVR32_EIC_EXTINT_5_FUNCTION
-#define EXT_INT_LINE1 EXT_INT5
-#define EXT_INT_IRQ_LINE1 AVR32_EIC_IRQ_5
-#define EXT_INT_NB_LINES 1
-#endif
-
-/* These defines should be adjusted to match the application */
-/*! \brief CPU core speed in Hz */
-#define CPUHZ 60000000
-/*! \brief Number of bytes in the receive buffer when operating in slave mode */
-#define BUFFERSIZE 64
-/*! \brief A adjustable delay avoiding multiple requests on the switches */
-//#define TIMEOUT 150000
-#define TIMEOUT CPUHZ/200
-/*! \brief Number of bits in each SPI package*/
-#define SPI_BITS 8
-/*! \brief SPI slave speed in Hz */
-#define SPI_SLAVE_SPEED 1000000
-
-
-#ifndef CMD_MAX_LEN
-#define CMD_MAX_LEN 1024
-#endif
-#ifndef REPLY_MAX_LEN
-#define REPLY_MAX_LEN 1024
-#endif
-
-#define _BUFFERSIZE 100
-
-extern void tcp_debug_print_pcbs(void);
-extern bool ifStatus;
-extern bool scanNetCompleted;
-
-static char buf[CMD_MAX_LEN];
-static char reply[REPLY_MAX_LEN];
-static uint16_t cmdCorr = 0;
-static uint16_t count = 0;
-static uint16_t replyCount = 0;
-static cmd_spi_state_t state = SPI_CMD_IDLE;
-int receivedChars = 0;
-static uint8_t _receiveBuffer[_BUFFERSIZE];
-bool startReply = false;
-bool end_write = false; //TODO only for debug
-
-// Signal indicating a new command is coming from SPI interface
-static volatile Bool startRecvCmdSignal = FALSE;
-
-#define MAX_CMD_NUM 36
-typedef struct sCmd_spi_list{
- cmd_spi_cb_t cb;
- char cmd_id;
- cmd_spi_rcb_t reply_cb;
- void* ctx;
- char flags;
-}tCmd_spi_list;
-
-static tCmd_spi_list cmd_spi_list[MAX_CMD_NUM] = { {0} };
-
-#ifdef _SPI_STATS_
-typedef struct sStatSpi
-{
- int timeoutIntErr;
- int timeoutErr;
- int txErr;
- int rxErr;
- int wrongFrame;
- int frameDisalign;
- int overrideFrame;
- int lastCmd;
- int lastError;
- unsigned long status;
-}tStatSpi;
-
-tStatSpi statSpi = {0};
-
-void initStatSpi()
-{
- statSpi.lastCmd = 0;
- statSpi.lastError = 0;
- statSpi.status= 0;
- statSpi.txErr = 0;
- statSpi.rxErr = 0;
- statSpi.timeoutErr= 0;
- statSpi.timeoutIntErr= 0;
- statSpi.wrongFrame = 0;
- statSpi.frameDisalign = 0;
- statSpi.overrideFrame = 0;
-}
-
-void printStatSpi()
-{
- printk("totSpiCmds\t: 0x%x\n", cmdCorr);
- printk("lastCmd \t: 0x%x\n", statSpi.lastCmd);
- printk("lastErr \t: 0x%x\n", statSpi.lastError);
- printk("spiStatus\t: 0x%X\n", statSpi.status);
- printk("spiTxErr \t: 0x%x\n", statSpi.txErr);
- printk("spiRxErr \t: 0x%x\n", statSpi.rxErr);
- printk("spiTmoErr\t: 0x%x\n", statSpi.timeoutErr);
- printk("spiTmoIntErr\t: 0x%x\n", statSpi.timeoutIntErr);
- printk("wrongFrame\t: 0x%x\n", statSpi.wrongFrame);
- printk("disalFrame\t: 0x%x\n", statSpi.frameDisalign);
- printk("overrideFrame\t: 0x%x\n", statSpi.overrideFrame);
-}
-
-cmd_state_t
-cmd_statSpi(int argc, char* argv[], void* ctx)
-{
- printStatSpi();
- return CMD_DONE;
-}
-
-cmd_state_t
-cmd_resetStatSpi(int argc, char* argv[], void* ctx)
-{
- initStatSpi();
- return CMD_DONE;
-}
-#endif
-
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-#define RETURN_ERR(e) return (e==WL_SUCCESS) ? WIFI_SPI_ACK : WIFI_SPI_ERR;
-#define RESET_USART_CSR(usart) usart->cr = AVR32_USART_CR_RSTSTA_MASK;
-
-int result = WL_CONNECT_FAILED; //Store the result of the last operation
-
-void* mapSockTCP[MAX_SOCK_NUM][MAX_MODE_NUM];
-
-//Udp RemoteIp and remote Port
-static tRemoteClient remoteClients[MAX_SOCK_NUM] = {{0,0}};
-
-void setRemoteClient(uint16_t sock, uint32_t _ipaddr, uint16_t _port)
-{
- if (sock < MAX_SOCK_NUM)
- {
- remoteClients[sock].ipaddr = _ipaddr;
- remoteClients[sock].port = _port;
- }
-}
-
-tRemoteClient* getRemoteClient(uint16_t sock)
-{
- if (sock < MAX_SOCK_NUM)
- {
- return &remoteClients[sock];
- }
- return NULL;
-}
-
-struct netif* ard_netif = NULL;
-
-// Network list retrived in the last scanNetwork
-static struct wl_network_list_t network_list = { 0 };
-
-struct ip_addr _hostIpAddr;
-
-static bool hostIpAddrFound = false;
-
-void* getTTCP(uint8_t sock, uint8_t mode)
-{
- if (sock < MAX_SOCK_NUM)
- return mapSockTCP[sock][mode];
- return NULL;
-}
-
-int getSock(void * _ttcp)
-{
- if (_ttcp != NULL)
- {
- int i = 0;
- for (; i<MAX_SOCK_NUM; i++)
- {
- if (_ttcp == mapSockTCP[i][GET_TCP_MODE(_ttcp)])
- return i;
- }
- }
- return -1;
-}
-
-void setMapSockMode(uint8_t sock, void* _ttcp, uint8_t _tcp_mode)
-{
- if ((IS_VALID_SOCK(sock))&&(_ttcp!=NULL))
- mapSockTCP[sock][_tcp_mode]=_ttcp;
- INFO_TCP("Map [%d, %p, %s]\n", sock, _ttcp, Mode2Str(_tcp_mode));
-}
-
-void setMapSock(uint8_t sock, void* _ttcp)
-{
- setMapSockMode(sock, _ttcp, GET_TCP_MODE(_ttcp));
-}
-
-void clearMapSockTcp(uint8_t sock, uint8_t mode)
-{
- if (sock < MAX_SOCK_NUM)
- {
- //printk("UnMap [%d, %p]\n", sock, mapSockTCP[sock]);
- mapSockTCP[sock][mode] = NULL;
- }
-
-}
-
-void initMapSockTcp()
-{
- memset(mapSockTCP, 0, sizeof(mapSockTCP));
-}
-
-#if 0
-/**
- * Calculate bitrate based on number of bytes transmitted and elapsed time
- */
-static void ard_tcp_print_stats(struct ttcp *ttcp) {
- uint32_t ms = timer_get_ms() - ttcp->start_time;
- uint32_t bytes = ttcp->mode == TTCP_MODE_TRANSMIT ? ttcp->nbuf
- * ttcp->buflen : ttcp->recved;
-
- if (ttcp->verbose)
- printk("\n");
-
- printk("TTCP [%p]: %d bytes processed, %d.%d KB/s (%s/%s)\n", ttcp, bytes,
- bytes / ms, bytes % ms, ProtMode2Str(ttcp->udp),
- Mode2Str(ttcp->mode));
-}
-#endif
-
-void showTTCPstatus()
-{
- printk("IF status: %s\n", (ifStatus) ? "UP":"DOWN");
- printk("CONN status: %s\n", (_connected) ? "UP":"DOWN");
-
- int i = 0;
- for (; i<MAX_SOCK_NUM; i++)
- {
- int ii=0;
- for (; ii<MAX_MODE_NUM; ii++)
- {
- void* p = getTTCP(i, ii);
- if (p)
- {
- ttcp_t* _ttcp = (ttcp_t* )p;
- printk("Socket n.:%d(%d) [0x%x] %s %s addr:%s port:%d\n", i, ii, _ttcp,
- ProtMode2Str(_ttcp->udp), Mode2Str(_ttcp->mode), ip2str(_ttcp->addr), _ttcp->port);
- if (_ttcp->udp == TCP_MODE)
- {
- int j = 0;
- for (; j<MAX_CLIENT_ACCEPTED; ++j)
- {
- if (_ttcp->tpcb[j]){
- printk("[%d tpcp-%p]-Status:%d\n", j, _ttcp->tpcb[j], _ttcp->tpcb[j]->state);
- }
- }
-
- if (_ttcp->lpcb){
- printk("[tlcp-%p]-Status:%d\n", _ttcp->lpcb, _ttcp->lpcb->state);
- }
- }else{
- if (_ttcp->upcb){
- struct ip_addr loc = _ttcp->upcb->local_ip;
- printk("[upcp-%p] flags:0x%x local:%s[0x%x]-%d\n",
- _ttcp->upcb, _ttcp->upcb->flags,
- ip2str(loc), loc, _ttcp->upcb->local_port);
- tRemoteClient remote = {0,0};;
- getRemoteData(i, ii, &remote);
- struct ip_addr ipaddr = { remote.ipaddr };
- printk("remote:%s(0x%x)-%d\n", ip2str(ipaddr), remote.ipaddr, remote.port);
- }
- }
- //ard_tcp_print_stats(_ttcp);
- printk("Data avail:%s\n", isAvailTcpDataByte(i)?"YES":"NO");
- printk("------------------------------\n");
- }
- }
- }
-
- tcp_debug_print_pcbs();
-}
-
-int write_stream(volatile avr32_spi_t *spi, const char *stream, uint16_t len)
-{
- uint16_t _len = 0;
- unsigned short dummy=0;
-
- do {
- //SIGN1_DN();
- if (spi_write(spi, *stream) == SPI_ERROR_TIMEOUT)
- {
-#ifdef _SPI_STATS_
- statSpi.timeoutErr++;
- statSpi.txErr++;
- statSpi.lastError = SPI_ERROR_TIMEOUT;
- statSpi.status = spi_getStatus(spi);
-#endif
- return SPI_ERROR_TIMEOUT;
- }
- else
- {
- stream++;
- _len++;
- spi_read(spi,&dummy);
- }
- //SIGN1_UP();
- }while (_len < len);
- return SPI_OK;
-}
-
-void sendError()
-{
- AVAIL_FOR_SPI();
- if (spi_write(&AVR32_SPI, ERR_CMD) != SPI_ERROR_TIMEOUT)
- {
- //Wait to empty the buffer
- while(!spi_writeRegisterEmptyCheck(&AVR32_SPI));
- }
- BUSY_FOR_SPI();
- WARN("Send SPI error!\n");
-}
-
-#define ENABLE_SPI_INT() do { \
- volatile avr32_spi_t *spi = ARD_SPI; \
- Bool global_interrupt_enabled = Is_global_interrupt_enabled(); \
- if (global_interrupt_enabled) Disable_global_interrupt(); \
- spi->IER.rdrf = 1; spi->IER.rxbuff = 1; spi->IER.endrx = 1; \
- if (global_interrupt_enabled) Enable_global_interrupt(); \
-}while(0);
-
-#define DISABLE_SPI_INT() do { \
- volatile avr32_spi_t *spi = ARD_SPI; \
- Bool global_interrupt_enabled = Is_global_interrupt_enabled(); \
- if (global_interrupt_enabled) Disable_global_interrupt(); \
- spi->IDR.rdrf = 1; spi->IDR.rxbuff = 1; spi->IDR.endrx = 1; \
- if (global_interrupt_enabled) Enable_global_interrupt(); \
-}while(0);
-
-#define CLEAR_SPI_INT() do { \
- eic_clear_interrupt_line(&AVR32_EIC, AVR32_SPI0_IRQ); \
- }while(0);
-
-int spi_add_cmd(char _cmd_id, cmd_spi_cb_t cb, cmd_spi_rcb_t rcb, void* ctx,
- char flag) {
- U32 i;
- for (i = 0; i < ARRAY_SIZE(cmd_spi_list); i++)
- if (!cmd_spi_list[i].cb)
- break;
-
- if (i == ARRAY_SIZE(cmd_spi_list))
- {
- printk("List Commands full!\n");
- return -1;
- }
- cmd_spi_list[i].cmd_id = _cmd_id;
- cmd_spi_list[i].cb = cb;
- cmd_spi_list[i].reply_cb = rcb;
- cmd_spi_list[i].ctx = ctx;
- cmd_spi_list[i].flags = flag;
- return 0;
-}
-
-int set_net_cmd_cb(int numParam, char* buf, void* ctx) {
- struct wl_ssid_t ssid;
- wl_err_t err = WL_FAILURE;
- tParam* param = (tParam*) buf;
-
- if (param->paramLen < WL_SSID_MAX_LENGTH) {
- memcpy(ssid.ssid, &param->param, param->paramLen);
- ssid.len = param->paramLen;
- ssid.ssid[ssid.len] = 0;
- INFO_SPI("SSID:%s\n", ssid.ssid);
- //dump(ssid.ssid, ssid.len);
- err = wl_cm_set_network(&ssid, NULL);
- if (err != 1)
- WARN("err=%d\n", err);
- } else {
- WARN("SSID len out of range");
- }
- return err;
-}
-
-extern uint8_t ascii_to_key(char *outp, const char *inp);
-
-int set_key_cmd_cb(int numParam, char* buf, void* ctx) {
- struct wl_ssid_t ssid;
- struct wl_mac_addr_t bssid;
- uint8_t idx=0, len=0;
- char key[13], key_hex[27];
- char keyIdx[2];
- wl_err_t err = WL_SUCCESS;
- tParam* params = (tParam*) buf;
-
- INFO_SPI("%s params=%d\n", __FUNCTION__, numParam);
-
- // SSID
- memset(&ssid, 0, sizeof ssid);
-
- if (params->paramLen < WL_SSID_MAX_LENGTH) {
- memcpy(ssid.ssid, &params->param, params->paramLen);
- ssid.len = params->paramLen;
- INFO_SPI("%s\n", ssid.ssid);
- } else {
- //printk("SSID len out of range");
- RETURN_ERR(WL_FAILURE)
- }
-
- params = (tParam*)((char*)buf+PARAM_LEN_SIZE+params->paramLen);
- strncpy(keyIdx, (const char*)&params->param, params->paramLen);
- keyIdx[(uint8_t)params->paramLen]='\0';
-
- idx = (uint8_t)atoi(keyIdx);
- // KEY IDX
- if ((params->paramLen != 1)||(idx < 0)||(idx > 3)){
- //printk("KEY IDX out of range %d\n", idx);
- RETURN_ERR(WL_FAILURE)
- }
-
- params = (tParam*)((char*)params+PARAM_LEN_SIZE+params->paramLen);
- strncpy(key_hex, (const char*)&params->param, params->paramLen);
- key_hex[(uint8_t)params->paramLen]='\0';
- len = ascii_to_key(key, key_hex);
- // KEY
- if (( len != 5)&&(len != 13))
- {
- //printk("KEY len out of range %d", len);
- RETURN_ERR(WL_FAILURE)
- }
-#if 0
- printk("KEY IDX = %d\n", idx);
- dump(key, len);
- printk("KEY len %d\n", len);
-#endif
- memset(&bssid.octet, 0xff, sizeof bssid.octet);
-
- wl_add_wep_key(idx, len, key, &bssid);
- //wl_set_auth_mode(AUTH_MODE_SHARED_KEY);
- wl_set_default_wep_key(idx);
-
- //Connect
- err = wl_cm_set_network(&ssid, NULL);
- if (err != 1)
- WARN("err=%d\n", err);
- RETURN_ERR(err)
-}
-
-int set_passphrase_cmd_cb(int numParam, char* buf, void* ctx) {
- struct wl_network_t net;
- char pass[64];
- wl_err_t err = WL_SUCCESS;
- tParam* params = (tParam*) buf;
-
- INFO_SPI("%s params=%d\n", __FUNCTION__, numParam);
-
- memset(&net, 0, sizeof net);
- memset(net.bssid.octet, 0xFF, sizeof net.bssid.octet);
-
- net.enc_type = ENC_TYPE_AUTO;
-
- // SSID
- if (params->paramLen < WL_SSID_MAX_LENGTH) {
- memcpy(net.ssid.ssid, &params->param, params->paramLen);
- net.ssid.len = params->paramLen;
- INFO_SPI("%s %d\n", net.ssid.ssid, net.ssid.len);
- } else {
- //printk("SSID len out of range");
- RETURN_ERR(WL_FAILURE)
- }
- params = (tParam*)((char*)buf+PARAM_LEN_SIZE+params->paramLen);
- // PASSPHRASE
-
- strncpy(pass, (const char*)&params->param, params->paramLen);
- pass[(uint8_t)params->paramLen]='\0';
- INFO_SPI("Pass: %s %d\n", pass, params->paramLen);
-
- if (wl_set_passphrase(&net,
- pass,
- params->paramLen,
- ENC_TYPE_AUTO,
- AUTH_MODE_AUTO)
- != WL_SUCCESS) {
- WARN("%s : Failed to add passphrase\n", __func__);
-
- RETURN_ERR(WL_FAILURE)
- }
- printk("Connect to network...");
- //Connect
- err = wl_cm_set_network(&net.ssid, NULL);
- if (err != 1)
- printk("err=%d\n", err);
- else
- printk("OK\n");
- RETURN_ERR(err)
-}
-
-int set_ip_config_cmd_cb(int numParam, char* buf, void* ctx) {
- struct ip_addr lwip_addr;
- struct ctx_server *hs = ctx;
- struct net_cfg *ncfg = &(hs->net_cfg);
- struct netif *nif = ncfg->netif;
- uint8_t parmsToChange=0;
- const uint8_t MAX_IP_CONFIG_PARAMS = 3;
-
- wl_err_t err = WL_SUCCESS;
- tParam* params = (tParam*) buf;
-
- if (params->paramLen == 1)
- {
- GET_PARAM_NEXT(BYTE, params, _parmsToChange);
- parmsToChange = _parmsToChange;
- }
- else
- RETURN_ERR(WL_FAILURE)
-
- INFO_SPI("%p numParam=%d parmsToChange=%d\n", ctx, numParam, parmsToChange);
-
- if (parmsToChange <= MAX_IP_CONFIG_PARAMS)
- {
- int i=0;
- for (; i<parmsToChange; ++i)
- {
- if (params->paramLen == 4)
- {
- GET_PARAM_NEXT(LONG, params, _ip_addr);
- lwip_addr.addr = _ip_addr;
- INFO_SPI("%d] nif:%p lwip_addr=0x%x\n", i, nif, lwip_addr.addr);
- switch (i)
- {
- case 0: // local_ip
- {
- netif_set_ipaddr(nif, &lwip_addr);
- break;
- }
- case 1: // gateway
- {
- netif_set_gw(nif, &lwip_addr);
- break;
- }
- case 2: // subnet
- {
- netif_set_netmask(nif, &lwip_addr);
- break;
- }
- }
- }else{
- RETURN_ERR(WL_FAILURE)
- }
-
- }
- /* Disable DHCP */
- ncfg->dhcp_enabled = STATIC_IP_CONFIG;
- }else
- RETURN_ERR(WL_FAILURE)
-
- RETURN_ERR(err)
-}
-
-int set_dns_config_cmd_cb(int numParam, char* buf, void* ctx) {
- struct ip_addr lwip_addr;
- struct ctx_server *hs = ctx;
- struct net_cfg *ncfg = &(hs->net_cfg);
- struct netif *nif = ncfg->netif;
- uint8_t parmsToChange=0;
- const uint8_t MAX_DNS_CONFIG_PARAMS = 2;
-
- wl_err_t err = WL_SUCCESS;
- tParam* params = (tParam*) buf;
-
- if (params->paramLen == 1)
- {
- GET_PARAM_NEXT(BYTE, params, _parmsToChange);
- parmsToChange = _parmsToChange;
- }
- else
- RETURN_ERR(WL_FAILURE)
-
- INFO_SPI("%p numParam=%d parmsToChange=%d\n", ctx, numParam, parmsToChange);
-
- if (parmsToChange <= MAX_DNS_CONFIG_PARAMS)
- {
- int i=0;
- for (; i<parmsToChange; ++i)
- {
- if (params->paramLen == 4)
- {
- GET_PARAM_NEXT(LONG, params, _ip_addr);
- lwip_addr.addr = _ip_addr;
- INFO_SPI("%d] nif:%p lwip_addr=0x%x\n", i, nif, lwip_addr.addr);
- dns_setserver(i, &lwip_addr);
- }else{
- RETURN_ERR(WL_FAILURE)
- }
- }
- /* Disable DHCP */
- ncfg->dhcp_enabled = STATIC_IP_CONFIG;
- }else
- RETURN_ERR(WL_FAILURE)
-
- RETURN_ERR(err)
-}
-
-
-
-void set_result(wl_status_t _status)
-{
- result = _status;
-}
-
-
-void set_result_cmd(int err)
-{
- wl_err_t _err = (wl_err_t)err;
- switch (_err)
- {
- case WL_SUCCESS:
- set_result(WL_CONNECTED);
- ERROR_LED_OFF();
- break;
- default:
- case WL_OOM:
- case WL_INVALID_LENGTH:
- case WL_NOT_SUPPORTED:
- case WL_ABSORBED:
- case WL_RESOURCES:
- case WL_BUSY:
- case WL_RETRY:
- case WL_FAILURE:
- set_result(WL_CONNECT_FAILED);
- ERROR_LED_ON();
- break;
- }
- INFO_SPI("%s %d\n", __FUNCTION__, result);
-}
-
-
-
-extern int ttcp_start(struct ip_addr addr, uint16_t port, void *opaque,
- void *done_cb, int mode, uint16_t nbuf, uint16_t buflen, int udp, int verbose);
-
-
-int start_server_tcp(uint16_t port, uint8_t sock, uint8_t protMode)
-{
- struct ip_addr addr = { 0 };
- uint16_t buflen = 1024;
- uint16_t nbuf = 1024;
- wl_err_t err = WL_FAILURE;
-
-#ifdef _APP_DEBUG_
- int verbose = 1;
-#else
- int verbose = 0;
-#endif
- int udp = protMode;
- int mode = 1; //RECEIVE
- void* _ttcp = NULL;
-
- if (sock >= MAX_SOCK_NUM)
- return WIFI_SPI_ERR;
-
- if (_connected)
- {
- WARN("Still connected...wait\n");
- return WIFI_SPI_ERR;
- }
-
- if (!ifStatus)
- {
- WARN_VER("IF down...wait\n");
- return WIFI_SPI_ERR;
- }
-
-
- if (ard_tcp_start(addr, port, NULL, NULL, mode, nbuf, buflen, udp, verbose, sock, &_ttcp) == 0)
- {
- INFO_SPI("Start Server %s [%d, %d] OK!\n", ProtMode2Str(protMode), port, sock);
- setMapSock(sock, _ttcp);
- err = WL_SUCCESS;
- }else{
-
- WARN("Start Server %s [%d, %d] FAILED!\n", ProtMode2Str(protMode), port, sock);
- clearMapSockTcp(sock, TTCP_MODE_RECEIVE);
- }
- return err;
-}
-
-
-int start_server_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
- wl_err_t err = WL_FAILURE;
- tParam* params = (tParam*) buf;
- if (numParam == 3)
- {
- GET_PARAM_NEXT(INT, params, port);
- GET_PARAM_NEXT(BYTE, params, sock);
- GET_PARAM_NEXT(BYTE, params, protMode);
- err = start_server_tcp(port, sock, protMode);
- }
- return (err==WL_SUCCESS) ? WIFI_SPI_ACK : WIFI_SPI_ERR;
-}
-
-int start_client_tcp(uint32_t _addr, uint16_t port, uint8_t sock, uint8_t protMode)
-{
- uint16_t buflen = 1024;
- uint16_t nbuf = 1024;
- wl_err_t err = WL_FAILURE;
- struct ip_addr addr = { .addr = _addr};
-
- INFO_SPI("Addr:0x%x, port:%d, sock:%d, prot:%s\n", _addr, port, sock, ProtMode2Str(protMode));
-
- #ifdef _APP_DEBUG_
- int verbose = 1;
- #else
- int verbose = 0;
- #endif
-
- int udp = protMode;
- int mode = 0; //TRANSMIT
- void* _ttcp = NULL;
-
- if (sock >= MAX_SOCK_NUM)
- return WIFI_SPI_ERR;
-
- // Check previous connection
- _ttcp = getTTCP(sock, TTCP_MODE_TRANSMIT);
- if (_ttcp != NULL)
- {
- WARN("Previous client %p not stopped !\n", _ttcp);
- ard_tcp_stop(_ttcp);
- clearMapSockTcp(sock, TTCP_MODE_TRANSMIT);
- }
-
- if (ard_tcp_start(addr, port, NULL, NULL, mode, nbuf, buflen, udp, verbose, sock, &_ttcp) == 0)
- {
- INFO_SPI("Start Client %s %p [0x%x, %d, %d] OK!\n", ProtMode2Str(protMode),
- _ttcp, addr, port, sock);
- setMapSock(sock, _ttcp);
- err = WL_SUCCESS;
- }else{
- INFO_SPI("Start Client %s %p [0x%x, %d, %d] FAILED!\n", ProtMode2Str(protMode),
- _ttcp, addr, port, sock);
- clearMapSockTcp(sock, TTCP_MODE_TRANSMIT);
- }
- return err;
-}
-
-
-int start_client_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
- wl_err_t err = WL_FAILURE;
- tParam* params = (tParam*) buf;
- if (numParam == 4)
- {
- GET_PARAM_NEXT(LONG, params, _addr);
- GET_PARAM_NEXT(INT, params, port);
- GET_PARAM_NEXT(BYTE, params, sock);
- GET_PARAM_NEXT(BYTE, params, protMode);
- err = start_client_tcp(_addr, port, sock, protMode);
- }
- return (err==WL_SUCCESS) ? WIFI_SPI_ACK : WIFI_SPI_ERR;
-}
-
-int stop_client_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
- wl_err_t err = WL_FAILURE;
- tParam* params = (tParam*) buf;
- void* _ttcp = NULL;
-
- if (numParam == 1)
- {
- GET_PARAM_NEXT(BYTE, params, sock);
-
- INFO_SPI("Stop client sock:%d\n", sock);
-
- if (sock < MAX_SOCK_NUM)
- {
- _ttcp = getTTCP(sock, TTCP_MODE_TRANSMIT);
- ard_tcp_stop(_ttcp);
- err = WL_SUCCESS;
- }
- }
- return (err==WL_SUCCESS) ? WIFI_SPI_ACK : WIFI_SPI_ERR;
-}
-
-int insert_data_cmd_cb(int numParam, char* buf, void* ctx) {
-
- tDataParam* msg = (tDataParam*) buf;
- if ((numParam == 2)&&(msg->dataLen == 1))
- {
- GET_DATA_BYTE(sock, buf+2);
- GET_DATA_INT(len, buf+3);
- //printk("tcp:%p buf:%p len:%d\n", getTTCP(sock), (uint8_t*)(buf+5), len);
- insertBuf(sock, (uint8_t*)(buf+5), len);
- }
- return WIFI_SPI_ACK;
-}
-
-int send_data_udp_cmd_cb(int numParam, char* buf, void* ctx) {
- wl_err_t err = WL_FAILURE;
-
- tParam* params = (tParam*) buf;
- if ((numParam == 1)&&(params->paramLen == 1))
- {
- GET_PARAM_NEXT(BYTE, params, sock);
- uint16_t len = 0;
- uint8_t* p = mergeBuf(sock, NULL, &len);
- err = sendUdpData(getTTCP(sock, TTCP_MODE_TRANSMIT), p, len);
- clearBuf(sock);
- free(p);
- }
-
- return (err==WL_SUCCESS) ? WIFI_SPI_ACK : WIFI_SPI_ERR;
-}
-
-
-int send_data_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
- wl_err_t err = WL_FAILURE;
- DATA_LED_ON();
- tDataParam* msg = (tDataParam*) buf;
- if ((numParam == 2)&&(msg->dataLen == 1))
- {
- GET_DATA_BYTE(sock, buf+2);
- GET_DATA_INT(len, buf+3);
- //printk("tcp:%p buf:%p len:%d\n", getTTCP(sock), (uint8_t*)(buf+5), len);
- err = sendTcpData(getTTCP(sock, TTCP_MODE_TRANSMIT), (uint8_t*)(buf+5), len);
- }
- DATA_LED_OFF();
- return (err==WL_SUCCESS) ? WIFI_SPI_ACK : WIFI_SPI_ERR;
-}
-
-int ack_cmd_cb(int numParam, char* buf, void* ctx) {
- return WIFI_SPI_ACK;
-}
-
-int get_result_cmd_cb(int numParam, char* buf, void* ctx) {
- INFO_SPI("ifStatus:%d result:%d\n", ifStatus, result);
- return WIFI_SPI_ACK;
-}
-
-int disconnect_cmd_cb(int numParam, char* buf, void* ctx)
-{
- return ((wl_disconnect()==WL_SUCCESS)? WIFI_SPI_ACK : WIFI_SPI_ERR);
-}
-
-
-cmd_spi_state_t get_reply_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CREATE_HEADER_REPLY(reply, recv, 1);
-
- reply[3] = 1; // paramLen
- if (ctx != NULL) {
- reply[4] = (*(uint8_t*)ctx); //param
- } else {
- reply[4] = (ifStatus)?WL_CONNECTED:result; //param
- }
-
- END_HEADER_REPLY(reply, 5, *count);
-
- //INFO_SPI("result:%d\n", result);
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t ack_reply_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CREATE_HEADER_REPLY(reply, recv, 1);
-
- reply[3] = 1; // paramLen
- if (ctx != NULL) {
- reply[4] = (*(uint8_t*) ctx != 1) ? WIFI_SPI_ERR : WIFI_SPI_ACK; //param
- } else {
- reply[4] = WIFI_SPI_ACK; //param
- }
-
- END_HEADER_REPLY(reply, 5, *count);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_reply_ipaddr_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, 3);
-
- PUT_LONG_IN_BYTE_NO(ard_netif->ip_addr.addr, reply, 3);
- PUT_LONG_IN_BYTE_NO(ard_netif->netmask.addr, reply, 8);
- PUT_LONG_IN_BYTE_NO(ard_netif->gw.addr, reply, 13);
-
- END_HEADER_REPLY(reply, 18, *count);
-
- return SPI_CMD_DONE;
-}
-
-void getRemoteData(uint8_t sock, uint8_t mode, tRemoteClient* remoteData)
-{
- if ((sock>=0) && (sock<MAX_SOCK_NUM))
- {
- void* p = getTTCP(sock, mode);
- if (p)
- {
- ttcp_t* _ttcp = (ttcp_t* )p;
- if ((_ttcp->udp == UDP_MODE))
- {
- if (_ttcp->mode == TTCP_MODE_RECEIVE)
- {
- remoteData->ipaddr = getRemoteClient(sock)->ipaddr;
- remoteData->port = getRemoteClient(sock)->port;
- }else{
- remoteData->ipaddr = (_ttcp->upcb) ? _ttcp->upcb->remote_ip.addr : 0;
- remoteData->port = (_ttcp->upcb) ? _ttcp->upcb->remote_port : 0;
- }
- }
- }
- }
-}
-
-
-cmd_spi_state_t get_reply_remote_data_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
- DUMP_SPI_CMD(recv);
-
- GET_DATA_BYTE(sock, recv+4);
-
- CREATE_HEADER_REPLY(reply, recv, 2);
- tRemoteClient remoteData = {0,0};
- //TODO pass the mode
- getRemoteData(sock, TTCP_MODE_RECEIVE, &remoteData);
-
- PUT_LONG_IN_BYTE_NO(remoteData.ipaddr, reply, 3);
- PUT_DATA_INT(remoteData.port, reply, 8);
-
- END_HEADER_REPLY(reply, 11, *count);
-
- return SPI_CMD_DONE;
-}
-
-
-void foundHostByName(const char *name, struct ip_addr *ipaddr, void *callback_arg)
-{
- _hostIpAddr.addr = (ipaddr)?ipaddr->addr:0xffffffff;
- INFO_SPI("foundHostByName: Found Host: name=%s ip=0x%x\n", name, _hostIpAddr.addr);
- hostIpAddrFound = true;
-}
-
-int req_reply_host_by_name_cb(int numParam, char* buf, void* ctx) {
-
- char hostName[DNS_MAX_NAME_LENGTH];
- tParam* params = (tParam*) buf;
-
- // HostName
- if (params->paramLen < DNS_MAX_NAME_LENGTH) {
- memcpy(hostName, &params->param, params->paramLen);
- hostName[params->paramLen]='\0';
- } else {
- RETURN_ERR(WL_FAILURE)
- }
-
- INFO_SPI("Looking for Host: name=%s\n", hostName);
- _hostIpAddr.addr = 0;
- hostIpAddrFound = false;
- err_t err = dns_gethostbyname(hostName, &_hostIpAddr, foundHostByName, NULL);
- if (err == ERR_OK)
- {
- INFO_SPI("Found Host: name=%s ip=0x%x\n", hostName, _hostIpAddr.addr);
- hostIpAddrFound = true;
- RETURN_ERR(WL_SUCCESS)
- }
- RETURN_ERR(WL_FAILURE)
-}
-
-cmd_spi_state_t get_reply_host_by_name_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- u32_t addr = (hostIpAddrFound)?_hostIpAddr.addr : 0xffffffff;
- INFO_SPI("Searching for Host: ip=0x%x found=%d\n", addr, hostIpAddrFound);
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, 1);
-
- PUT_LONG_IN_BYTE_NO(addr, reply, 3);
-
- END_HEADER_REPLY(reply, 8, *count);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_reply_mac_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, 1);
-
- reply[3] = WL_MAC_ADDR_LENGTH;
- uint8_t mac[WL_MAC_ADDR_LENGTH];
- if (wl_get_mac_addr(mac) != WL_SUCCESS) {
- RETURN_ERR_REPLY(recv, reply, count);
- }
- //rotate the byte order
- reply[4]=mac[5];
- reply[5]=mac[4];
- reply[6]=mac[3];
- reply[7]=mac[2];
- reply[8]=mac[1];
- reply[9]=mac[0];
- END_HEADER_REPLY(reply, 10, *count);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_reply_curr_net_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- uint32_t type = (uint32_t)ctx;
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, 1);
-
- struct wl_network_t* net = wl_get_current_network();
- uint8_t len = 0;
- if (net != NULL)
- {
- switch (type)
- {
- default:
- case GET_CURR_SSID_CMD:
- {
- len = net->ssid.len;
- PUT_BUFDATA_BYTE(net->ssid.ssid, len, reply, 3);
- break;
- }
- case GET_CURR_BSSID_CMD:
- {
- len = WL_MAC_ADDR_LENGTH; ;
- PUT_BUFDATA_BYTE_REV(net->bssid.octet, len, reply, 3);
- break;
- }
- case GET_CURR_RSSI_CMD:
- {
- len=sizeof(net->rssi);
- PUT_LONG_IN_BYTE_HO(net->rssi, reply, 3);
- //printk("RSSI:%d", net->rssi);
- break;
- }
- case GET_CURR_ENCT_CMD:
- {
- len = sizeof(net->enc_type);
- PUT_DATA_BYTE(net->enc_type, reply, 3);
- //printk("ENCT:%d", net->enc_type);
- break;
- }
- }
- }else{
- PUT_DATA_BYTE(0, reply, 3);
- }
-
- END_HEADER_REPLY(reply, 3+len+1, *count);
-
- //dump(reply, *count);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_reply_idx_net_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- uint32_t type = (uint32_t)ctx;
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, 1);
-
- DUMP_SPI_CMD(recv);
-
- GET_DATA_BYTE(idx, recv+4);
-
- if (idx >= WL_NETWORKS_LIST_MAXNUM)
- {
- WARN("Index out of range: %d\n", idx);
- return SPI_CMD_DONE;
- }
- uint8_t len = 0;
- switch (type)
- {
- default:
- case GET_IDX_SSID_CMD:
- {
- len = network_list.net[idx]->ssid.len;
- PUT_BUFDATA_BYTE(network_list.net[idx]->ssid.ssid, len, reply, 3);
- INFO_UTIL("SSID:%s\n", network_list.net[idx]->ssid.ssid);
- break;
- }
- case GET_IDX_RSSI_CMD:
- {
- len = 4;
- PUT_LONG_IN_BYTE_HO(network_list.net[idx]->rssi, reply, 3);
- INFO_UTIL("RSSI:%d\n", network_list.net[idx]->rssi);
- break;
- }
- case GET_IDX_ENCT_CMD:
- {
- len = 1;
- PUT_DATA_BYTE(network_list.net[idx]->enc_type, reply, 3);
- INFO_UTIL("ENCT:%d\n", network_list.net[idx]->enc_type);
- break;
- }
- }
-
-
- END_HEADER_REPLY(reply, 3+len+1, *count);
-
- DUMP(reply, *count);
-
- return SPI_CMD_DONE;
-}
-
-static void copy_network_list(struct wl_network_list_t *dst,
- struct wl_network_list_t *src)
-{
- int i;
- for (i = 0; i < dst->cnt; i++)
- free(dst->net[i]);
- free(dst->net);
-
- dst->cnt = 0;
-
- if (src->cnt == 0)
- return;
- dst->net = calloc(1, src->cnt * sizeof(struct wl_network_t *));
- if (dst->net == NULL) {
- printk("could not allocate all gui net array\n");
- return;
- }
-
- for (i = 0; i < src->cnt; i++) {
- struct wl_network_t *net = src->net[i];
- dst->net[i] = malloc(sizeof(*net));
- if (dst->net[i] == NULL) {
- printk("could not allocate all gui nets\n");
- return;
- }
-
- memcpy(dst->net[i], net, sizeof(*net));
- dst->cnt++;
- }
-}
-
-int start_scan_net_cmd_cb(int numParam, char* buf, void* ctx) {
- wl_err_t err = WL_FAILURE;
-
- INFO_SPI("Start Network Scan %d\n", numParam);
- if (scanNetCompleted){
- scanNetCompleted = false;
- err = wl_scan();
- if (err != WL_SUCCESS)
- {
- // May be busy scanning already, no fatal error
- WARN("err=%d\n", err);
- err = WL_SUCCESS;
- }
- }
- return err;
-}
-
-cmd_spi_state_t get_reply_scan_networks_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- const int8_t SCAN_NOT_YET_COMPLETED = 0;
-
- if (!scanNetCompleted)
- {
- //return empty list with an error to retry
- CREATE_HEADER_REPLY(reply, recv, SCAN_NOT_YET_COMPLETED);
- END_HEADER_REPLY(reply, 3, *count);
- INFO_SPI("Scan not completed!\n");
- return SPI_CMD_DONE;
- }
-
- int network_cnt = 0;
- struct wl_network_list_t* wl_network_list;
-
- wl_get_network_list(&wl_network_list);
- if (wl_network_list->cnt == 0)
- {
- CREATE_HEADER_REPLY(reply, recv, 0);
- END_HEADER_REPLY(reply, 3, *count);
- INFO_SPI("Networks not found!\n");
- return SPI_CMD_DONE;
- }
-
- if (wl_network_list->cnt > WL_NETWORKS_LIST_MAXNUM)
- {
- network_cnt = WL_NETWORKS_LIST_MAXNUM ;
- }
- else{
- network_cnt = wl_network_list->cnt ;
- }
-
- copy_network_list(&network_list, wl_network_list);
- CREATE_HEADER_REPLY(reply, recv, network_cnt);
-
- uint8_t start = 3;
- int ii = 0;
- for (; ii < network_cnt; ii++)
- {
- uint8_t len = network_list.net[ii]->ssid.len+1;
- network_list.net[ii]->ssid.ssid[network_list.net[ii]->ssid.len]=0;
- PUT_BUFDATA_BYTE(network_list.net[ii]->ssid.ssid, len, reply, start);
- start += len+1;
- INFO_SPI("%d - %s [%d]- %d - %d - 0x%x\n",ii, network_list.net[ii]->ssid.ssid,
- len, network_list.net[ii]->enc_type,
- network_list.net[ii]->rssi, network_list.net[ii]->bssid);
- }
-
- END_HEADER_REPLY(reply, start, *count);
- //DUMP(reply, *count);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_state_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_1);
-
- uint8_t _state = CLOSED;
- if ((recv[3]==1)&&(recv[4]>=0)&&(recv[4]<MAX_SOCK_NUM))
- {
- _state = getStateTcp(getTTCP((uint8_t)recv[4], TTCP_MODE_RECEIVE), 0);
- }
- PUT_DATA_BYTE(_state, reply, 3);
- END_HEADER_REPLY(reply, 5, *count);
- INFO_SPI_POLL("state:%d\n", _state);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_client_state_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_1);
-
- uint8_t _state = CLOSED;
- uint8_t _sock = recv[4];
- if ((recv[3]==1)&&(_sock>=0)&&(_sock<MAX_SOCK_NUM))
- {
- void * p= getTTCP(_sock, TTCP_MODE_TRANSMIT);
- if (p!=NULL)
- {
- _state = getStateTcp(p, 1);
- }else{
- WARN_VER("TTCP not found for sock:%d\n", _sock);
- }
- }
- PUT_DATA_BYTE(_state, reply, 3);
- END_HEADER_REPLY(reply, 5, *count);
- INFO_SPI_POLL("sock:%d state:%d\n", _sock, _state);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t avail_data_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_1);
- uint16_t dataAvail = 0;
- if ((recv[3]==1)&&(recv[4]>=0)&&(recv[4]<MAX_SOCK_NUM))
- {
- dataAvail = getAvailTcpDataByte((uint8_t)recv[4]);
- }
- PUT_DATA_INT_NO(dataAvail, reply, 3);
- END_HEADER_REPLY(reply, 6, *count);
-
- INFO_SPI_POLL("dataAvail:%d\n", dataAvail);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t test_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- static int counter = 0;
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_1);
- PUT_DATA_BYTE(++counter, reply, 3);
- END_HEADER_REPLY(reply, 5, *count);
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t data_sent_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
- SIGN2_DN();
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_1);
- uint8_t dataSent = 0;
- if ((recv[3]==1)&&(recv[4]>=0)&&(recv[4]<MAX_SOCK_NUM))
- {
- dataSent = isDataSent(getTTCP((uint8_t)recv[4], TTCP_MODE_TRANSMIT));
- }
- PUT_DATA_BYTE(dataSent, reply, 3);
- END_HEADER_REPLY(reply, 5, *count);
- SIGN2_UP();
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_data_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- uint8_t data;
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- tParam* params = (tParam*)&recv[3];
-
- GET_PARAM_NEXT(BYTE, params, _sock);
- GET_PARAM_NEXT(INT, params, _peek);
-
- if ((recv[3]==1)&&(recv[4]>=0)&&(recv[4]<MAX_SOCK_NUM))
- {
- SIGN2_DN();
-
- if (getTcpDataByte((uint8_t)recv[4], &data, _peek))
- {
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_1);
- PUT_DATA_BYTE(data, reply, 3);
- END_HEADER_REPLY(reply, 5, *count);
- }else{
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_0);
- END_HEADER_REPLY(reply, 3, *count);
- }
- SIGN2_UP();
- }
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_databuf_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- uint8_t* data;
- uint16_t len;
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- GET_DATA_BYTE(sock, buf+5);
- if ((sock>=0)&&(sock<MAX_SOCK_NUM))
- {
- if (getTcpData((uint8_t)sock, (void**)&data, &len))
- {
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_1);
- PUT_BUFDATA_INT(data, len, reply, 3);
- END_HEADER_REPLY(reply, 3+len+2, *count);
- freeTcpData((uint8_t)sock);
- }else{
- CREATE_HEADER_REPLY(reply, recv, PARAM_NUMS_0);
- END_HEADER_REPLY(reply, 3, *count);
- }
- }
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_firmware_version_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, 1);
-
- uint8_t len = strlen(fwVersion);
-
- PUT_BUFDATA_BYTE(fwVersion, len, reply, 3);
-
- END_HEADER_REPLY(reply, 3+len+1, *count);
-
- return SPI_CMD_DONE;
-}
-
-cmd_spi_state_t get_test_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) {
-
- uint8_t buffer[255] = {0};
-
- CHECK_ARD_NETIF(recv, reply, count);
-
- CREATE_HEADER_REPLY(reply, recv, 1);
- uint8_t len = 0;
- if ((recv[3]==1)&&(recv[4]>=0)&&(recv[4]<0xFF))
- {
- len = recv[4];
- int i= 0;
- for (; i<len; ++i) buffer[i]=i;
- PUT_BUFDATA_BYTE(buffer, len, reply, 3);
- }else{
- len = strlen(fwVersion);
- PUT_BUFDATA_BYTE(fwVersion, len, reply, 3);
- }
- END_HEADER_REPLY(reply, 3+len+1, *count);
-
- return SPI_CMD_DONE;
-}
-
-int sendReply(int cmdIdx, char* recv, char* reply, void* resultCmd)
-{
- uint16_t _count = 0;
- int _result = SPI_OK;
-
- cmd_spi_list[cmdIdx].reply_cb(recv, reply, resultCmd, &_count);
- state = SPI_CMD_REPLING;
-
- AVAIL_FOR_SPI();
- _result = write_stream(ARD_SPI, &reply[0], _count);
-#ifdef _SPI_STATS_
- if ( _result != SPI_OK)
- {
- statSpi.lastCmd = cmd_spi_list[cmdIdx].cmd_id;
- }
-#endif
- BUSY_FOR_SPI();
-
- IF_SPI_DUMP(printk("==>"));
- DUMP_SPI(recv, count);
- IF_SPI_DUMP(printk("<=="));
- DUMP_SPI(reply, _count);
- replyCount = _count;
- return _result;
-}
-
-unsigned char* getStartCmdSeq(unsigned char* _recv, int len, int *offset)
-{
- int i = 0;
- *offset = 0;
- //DEB_PIN_UP();
- for (; i<len; ++i)
- {
- if (_recv[i]==START_CMD)
- {
- if (i!=0)
- {
- DEB_PIN_TRIGGER();
- IF_WARN_VER(dump((char*)_recv, (uint16_t)len));
- WARN("%d] Disall. %d/%d cmd:%d\n", cmdCorr, i, len,_recv[i+1]);
- }
- *offset = i;
- return &_recv[i];
- }
- }
- //DEB_PIN_DN();
- WARN("%d] Disall. %d\n", cmdCorr, i);
-
- return NULL;
-}
-
-inline bool spiMsg8(uint8_t cmd)
-{
- return ((cmd & DATA_FLAG)==0);
-}
-
-int call_reply_cb(char* recv, char* reply) {
-
-// // check the start of message
-// //TODO CHECK if also the ,en must be resize
-// //char* recv = (char*)getStartCmdSeq((unsigned char*)_recv, &count);
-// char* recv = (char*)getStartCmdSeq((unsigned char*)_recv, count);
-// if (recv == NULL)
-// return REPLY_ERR_MSG;
-
- unsigned char cmdId = (unsigned char) recv[1];
- uint8_t _result = REPLY_NO_ERR;
- U32 i;
- for (i = 0; i < ARRAY_SIZE(cmd_spi_list); i++) {
- if (cmd_spi_list[i].cmd_id == cmdId) {
-
- if (cmd_spi_list[i].flags == CMD_SET_FLAG) {
- //Send Reply for SET commands
- if (sendReply(i, recv, reply, cmd_spi_list[i].ctx) != SPI_OK)
- return REPLY_ERR_SET;
- if (spiMsg8(cmdId))
- {
- tSpiMsg* spiMsg = (tSpiMsg*) recv;
- _result = cmd_spi_list[i].cb(spiMsg->nParam,
- (char*) &(spiMsg->params[0]), cmd_spi_list[i].ctx);
- }else
- {
- tSpiMsgData* spiMsg = (tSpiMsgData*) recv;
- _result = cmd_spi_list[i].cb(spiMsg->nParam,
- (char*) &(spiMsg->params[0]), cmd_spi_list[i].ctx);
- }
-
- if (_result != WIFI_SPI_ACK)
- return REPLY_ERR_CMD;
- else
- return REPLY_NO_ERR;
- }else{
- if (spiMsg8(cmdId))
- {
- tSpiMsg* spiMsg = (tSpiMsg*) recv;
- _result = cmd_spi_list[i].cb(spiMsg->nParam,
- (char*) &(spiMsg->params[0]), NULL);
- }else{
- tSpiMsgData* spiMsg = (tSpiMsgData*) recv;
- _result = cmd_spi_list[i].cb(spiMsg->nParam,
- (char*) &(spiMsg->params[0]), NULL);
- }
- //Send Reply for GET commands or Immediate SET apply
- if (cmd_spi_list[i].flags == CMD_GET_FLAG) {
- if (sendReply(i, recv, reply, cmd_spi_list[i].ctx) != SPI_OK)
- return REPLY_ERR_GET;
- else
- return REPLY_NO_ERR;
- }else if (cmd_spi_list[i].flags == CMD_IMM_SET_FLAG)
- {
- if (sendReply(i, recv, reply, &_result) != SPI_OK)
- return REPLY_ERR_GET;
- else
- return REPLY_NO_ERR;
-
- }
- }
- }
- }
- // Command not found
- if (i==ARRAY_SIZE(cmd_spi_list))
- {
- WARN("Unknown cmd 0x%x\n", cmdId);
- DUMP(recv, count);
- return REPLY_ERR_CMD;
- }
- return REPLY_NO_ERR;
-}
-
-void init_spi_cmds(void* ctx) {
- spi_add_cmd(SET_NET_CMD, set_net_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(SET_PASSPHRASE_CMD, set_passphrase_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(SET_KEY_CMD, set_key_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(SET_IP_CONFIG_CMD, set_ip_config_cmd_cb, ack_reply_cb, ctx, CMD_SET_FLAG);
- spi_add_cmd(SET_DNS_CONFIG_CMD, set_dns_config_cmd_cb, ack_reply_cb, ctx, CMD_SET_FLAG);
- spi_add_cmd(GET_CONN_STATUS_CMD, get_result_cmd_cb, get_reply_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_IPADDR_CMD, ack_cmd_cb, get_reply_ipaddr_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_MACADDR_CMD, ack_cmd_cb, get_reply_mac_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_CURR_SSID_CMD, ack_cmd_cb, get_reply_curr_net_cb, (void*)GET_CURR_SSID_CMD, CMD_GET_FLAG);
- spi_add_cmd(GET_CURR_BSSID_CMD, ack_cmd_cb, get_reply_curr_net_cb, (void*)GET_CURR_BSSID_CMD, CMD_GET_FLAG);
- spi_add_cmd(GET_CURR_RSSI_CMD, ack_cmd_cb, get_reply_curr_net_cb, (void*)GET_CURR_RSSI_CMD, CMD_GET_FLAG);
- spi_add_cmd(GET_CURR_ENCT_CMD, ack_cmd_cb, get_reply_curr_net_cb, (void*)GET_CURR_ENCT_CMD, CMD_GET_FLAG);
- spi_add_cmd(START_SCAN_NETWORKS, start_scan_net_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(SCAN_NETWORKS, ack_cmd_cb, get_reply_scan_networks_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(DISCONNECT_CMD, disconnect_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(GET_IDX_ENCT_CMD, ack_cmd_cb, get_reply_idx_net_cb, (void*)GET_IDX_ENCT_CMD, CMD_GET_FLAG);
- spi_add_cmd(GET_IDX_SSID_CMD, ack_cmd_cb, get_reply_idx_net_cb, (void*)GET_IDX_SSID_CMD, CMD_GET_FLAG);
- spi_add_cmd(GET_IDX_RSSI_CMD, ack_cmd_cb, get_reply_idx_net_cb, (void*)GET_IDX_RSSI_CMD, CMD_GET_FLAG);
- spi_add_cmd(REQ_HOST_BY_NAME_CMD, req_reply_host_by_name_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(GET_HOST_BY_NAME_CMD, ack_cmd_cb, get_reply_host_by_name_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(START_SERVER_TCP_CMD, start_server_tcp_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(START_CLIENT_TCP_CMD, start_client_tcp_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(STOP_CLIENT_TCP_CMD, stop_client_tcp_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(GET_STATE_TCP_CMD, ack_cmd_cb, get_state_tcp_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_DATA_TCP_CMD, ack_cmd_cb, get_data_tcp_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(AVAIL_DATA_TCP_CMD, ack_cmd_cb, avail_data_tcp_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(SEND_DATA_TCP_CMD, send_data_tcp_cmd_cb, ack_reply_cb, NULL, CMD_IMM_SET_FLAG);
- spi_add_cmd(DATA_SENT_TCP_CMD, ack_cmd_cb, data_sent_tcp_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_DATABUF_TCP_CMD, ack_cmd_cb, get_databuf_tcp_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_CLIENT_STATE_TCP_CMD, ack_cmd_cb, get_client_state_tcp_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_FW_VERSION_CMD, ack_cmd_cb, get_firmware_version_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(GET_TEST_CMD, ack_cmd_cb, get_test_cmd_cb, NULL, CMD_GET_FLAG);
- spi_add_cmd(INSERT_DATABUF_CMD, insert_data_cmd_cb, ack_reply_cb, NULL, CMD_IMM_SET_FLAG);
- spi_add_cmd(SEND_DATA_UDP_CMD, send_data_udp_cmd_cb, ack_reply_cb, NULL, CMD_SET_FLAG);
- spi_add_cmd(GET_REMOTE_DATA_CMD, ack_cmd_cb, get_reply_remote_data_cb, NULL, CMD_GET_FLAG);
-}
-
-
-int checkMsgParam8(unsigned char* buf)
-{
- int paramLenTot=0;
- tSpiMsg* spiMsg = (tSpiMsg*)buf;
- tParam *param = spiMsg->params;
- int i=0;
- for (; i<spiMsg->nParam; ++i)
- {
- uint8_t _len = param->paramLen;
- paramLenTot+= _len+1;
- //printk("%d) len:0x%x\n", i, _len);
- param = (tParam*)((char*)(param)+_len+1);
- }
- return paramLenTot;
-}
-
-int checkMsgParam16(unsigned char* buf)
-{
- int paramLenTot=0;
- tSpiMsgData* spiMsg = (tSpiMsgData*)buf;
- tDataParam* param = (tDataParam*)spiMsg->params;
- int i=0;
- for (; i<spiMsg->nParam; ++i)
- {
- uint16_t _len = param->dataLen;
- paramLenTot+= _len+sizeof(param->dataLen);
- //printk("%d) len:0x%x\n", i, _len);
- param = (tDataParam*)((char*)(param)+_len+sizeof(param->dataLen));
- }
- return paramLenTot;
-}
-
-bool checkMsgFormat(uint8_t* _recv, int len, int* offset)
-{
-
- unsigned char* recv = getStartCmdSeq(_recv, len, offset);
- if ((recv == NULL)||(recv!=_recv))
- {
- DEB_PIN_TRIGGER();
-
- IF_WARN_VER(DUMP((char*)_recv, len));
-
- STATSPI_DISALIGN_ERROR();
-
- if (recv == NULL)
- return false;
- }
- tSpiMsg* spiMsg = (tSpiMsg*) recv;
- if ((spiMsg->cmd == START_CMD)&&((spiMsg->tcmd & REPLY_FLAG) == 0))
- {
- int paramLenTot = 0;
- if (spiMsg8(spiMsg->tcmd))
- paramLenTot = checkMsgParam8(recv);
- else
- {
- DUMP_SPI(_recv, len);
- paramLenTot = checkMsgParam16(recv);
- }
-
- //INFO_SPI("cmd:0x%x TotLen:%d\n", spiMsg->tcmd, paramLenTot);
- char* p = (char*)recv + paramLenTot + sizeof(tSpiHdr);
- if (*p == END_CMD)
- {
- return true;
- }else{
- WARN("%d] Not found end cmd: 0x%x\n", cmdCorr, *p);
- }
- }
- return false;
-}
-
-//#define AVR32_USART_CSR_ITERATION_MASK (UNDERRUN) 0x00000400
-//#define AVR32_USART_CSR_OVRE_MASK 0x00000020
-//#define AVR32_USART_CSR_RXRDY_MASK 0x00000001
-
-
-void spi_poll(struct netif* netif) {
-
- ard_netif = netif;
-
- if (startReply)
- {
- startReply = false;
- int offset = 0;
- DISABLE_SPI_INT();
- if (checkMsgFormat(_receiveBuffer, receivedChars, &offset))
- {
- state = SPI_CMD_INPROGRESS;
- count = receivedChars-offset;
- if (count >= CMD_MAX_LEN)
- count = CMD_MAX_LEN;
- memcpy(buf, &_receiveBuffer[offset], count);
-
- //mark as buffer used
- _receiveBuffer[0] = 0;
-
- int err = call_reply_cb(buf, &reply[0]);
- if (err != REPLY_NO_ERR)
- {
- DUMP_SPI(buf, count);
- DUMP_SPI(reply, replyCount);
- }
- receivedChars = 0;
- count = 0;
- state = SPI_CMD_IDLE;
- }
- else
- {
- sendError();
- WARN("%d] Check format msg failed!\n", cmdCorr);
- IF_WARN_VER(dump((char*)_receiveBuffer, receivedChars));
- state = SPI_CMD_IDLE;
- count=0;
- //mark as buffer used
- _receiveBuffer[0] = 0;
- }
- CLEAR_SPI_INT();
- //Enable Spi int to receive a new command
- ENABLE_SPI_INT();
- //Available for receiving a new spi data
- AVAIL_FOR_SPI();
- }
-
-#ifdef _SPI_STATS_
- if (statSpi.lastError != 0)
- {
- WARN("%d] Errot=0x%x spiStatus:0x%x\n", cmdCorr, statSpi.lastError, statSpi.status);
- statSpi.lastError = 0;
- }
-#endif
-}
-
-inline int spi_slaveReceiveInt(volatile avr32_spi_t *spi)
-{
- receivedChars=0;
- int index = 0;
- int err = SPI_OK;
- state = SPI_CMD_INPUT;
- bool endOfFrame = false;
-
- do {
- unsigned int timeout = SPI_TIMEOUT;
- err = SPI_OK;
-
- while ((spi->sr & (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) !=
- (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) {
- if ((timeout--)==0) {
- err=SPI_ERROR_TIMEOUT;
- break;
- }
- }
- //DEB_PIN_TG();
- #if 0
-#ifdef _SPI_STATS_
- if (spi->sr & AVR32_SPI_SR_OVRES_MASK)
- {
- STATSPI_OVERRIDE_ERROR();
- }
-#endif
-#endif
- if (err == SPI_OK) {
- _receiveBuffer[index] = (spi->rdr >> AVR32_SPI_RDR_RD_OFFSET) & 0x00ff;
- DEB_PIN_UP(2);
- if ((index==0) && (_receiveBuffer[index] != START_CMD))
- DEB_PIN_TRIGGER();
- ++index;
- ++receivedChars;
- }else{
-#ifdef _SPI_STATS_
- STATSPI_TIMEOUT_ERROR();
-#endif
- break;
- }
-
- /* break on buffer overflow */
- if (receivedChars >= _BUFFERSIZE) {
- err = SPI_ERROR_OVERRUN_AND_MODE_FAULT;
- break;
- }
-
- if (_receiveBuffer[index - 1] == END_CMD)
- {
- int8_t numParams = 0;
- int idx = PARAM_LEN_POS+1;
- bool islen16bit = ((_receiveBuffer[CMD_POS] & DATA_FLAG) == DATA_FLAG);
- if (index >= idx)
- {
- numParams = _receiveBuffer[PARAM_LEN_POS];
- while (((index-1) > idx)&&(numParams>0))
- {
- if (islen16bit)
- idx += (_receiveBuffer[idx]<<8) + _receiveBuffer[idx+1]+2;
- else
- idx += _receiveBuffer[idx]+1;
- --numParams;
- }
- if (((index-1) == idx) && (numParams == 0))
- endOfFrame = true;
- }
- if (!endOfFrame){
- WARN("Wrong termination index:%d nParam:%d idx:%d 16bit:%d\n", index, numParams, idx, islen16bit);
- #ifdef _DEBUG_
- dump((char*)_receiveBuffer, receivedChars);
- while(0);
- #endif
- }
- }
- } while (!endOfFrame);
- return err;
-}
-
-#if defined (__GNUC__)
-__attribute__((__interrupt__))
-#elif defined (__ICCAVR32__)
-__interrupt
-#endif
-static void spi_int_handler(void)
-{
- volatile avr32_spi_t *spi = ARD_SPI;
- DEB_PIN_DN(2);
- DISABLE_SPI_INT();
-
- if ((spi->sr & AVR32_SPI_SR_RDRF_MASK) != 0)
- {
- int err = spi_slaveReceiveInt(ARD_SPI);
- if (err == SPI_OK)
- {
- BUSY_FOR_SPI();
- startReply=true;
- ++cmdCorr;
- //maintain disable interrupt to send the reply command
- return;
- }
- }
- ENABLE_SPI_INT();
-}
-
-inline spi_status_t spi_read8(volatile avr32_spi_t *spi, unsigned char *data)
-{
- unsigned int timeout = SPI_TIMEOUT;
-
- while ((spi->sr & (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) !=
- (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) {
- if (!timeout--) {
- return SPI_ERROR_TIMEOUT;
- }
- }
-
- *data = (spi->rdr >> AVR32_SPI_RDR_RD_OFFSET) & 0x00ff;
-
- return SPI_OK;
-}
-
-
-/*!
- * \brief Interrupt handler of the External interrupt line "1".
- */
-#if __GNUC__
-__attribute__((__interrupt__))
-#elif __ICCAVR32__
-__interrupt
-#endif
-static void eic_int_handler1(void)
-{
- eic_clear_interrupt_line(&AVR32_EIC, EXT_INT_LINE1);
- startRecvCmdSignal = TRUE;
-}
-
-//! Structure holding the configuration parameters of the EIC module.
-eic_options_t eic_options[EXT_INT_NB_LINES];
-
-void initExtInt()
-{
- // Enable edge-triggered interrupt.
- eic_options[0].eic_mode = EIC_MODE_EDGE_TRIGGERED;
- // Interrupt will trigger on falling edge.
- eic_options[0].eic_edge = EIC_EDGE_FALLING_EDGE;
- // Initialize in synchronous mode : interrupt is synchronized to the clock
- eic_options[0].eic_async = EIC_SYNCH_MODE;
- // Set the interrupt line number.
- eic_options[0].eic_line = EXT_INT_LINE1;
-
- // Disable all interrupts.
- Disable_global_interrupt();
-
- INTC_register_interrupt(&eic_int_handler1, EXT_INT_IRQ_LINE1, AVR32_INTC_INT0);
-
- // Map the interrupt lines to the GPIO pins with the right peripheral functions.
- gpio_enable_module_pin(EXT_INT_PIN_LINE1,EXT_INT_FUNCTION_LINE1);
-
- // Init the EIC controller with the options
- eic_init(&AVR32_EIC, eic_options, EXT_INT_NB_LINES);
-
- // Enable the chosen lines and their corresponding interrupt feature.
- eic_enable_line(&AVR32_EIC, eic_options[0].eic_line);
- eic_enable_interrupt_line(&AVR32_EIC, eic_options[0].eic_line);
-
- // Enable all interrupts.
- Enable_global_interrupt();
-}
-
-int initSpi(void* ctx)
-{
- volatile avr32_spi_t *spi = &AVR32_SPI0;
- gpio_map_t spi_piomap = { \
- {AVR32_SPI0_SCK_0_0_PIN, AVR32_SPI0_SCK_0_0_FUNCTION}, \
- {AVR32_SPI0_MISO_0_0_PIN, AVR32_SPI0_MISO_0_0_FUNCTION}, \
- {AVR32_SPI0_MOSI_0_0_PIN, AVR32_SPI0_MOSI_0_0_FUNCTION}, \
- {AVR32_SPI0_NPCS_0_0_PIN, AVR32_SPI0_NPCS_0_0_FUNCTION}, \
- };
-
- INFO_INIT("SPI init...\n");
-
- /* Init PIO */
- gpio_enable_module(spi_piomap, ARRAY_SIZE(spi_piomap));
-
- spi_options_t spiOptions;
-
- spiOptions.reg = 0;
- spiOptions.baudrate = SPI_SLAVE_SPEED;
- spiOptions.bits = SPI_BITS;
- spiOptions.spck_delay = 0;
- spiOptions.trans_delay = 4;
- spiOptions.stay_act = 0;
- spiOptions.spi_mode = 0;
- spiOptions.modfdis = 0;
-
- /* Initialize as slave; bits, spi_mode */
- if (spi_initSlave(spi, spiOptions.bits, spiOptions.spi_mode) != SPI_OK)
- {
- INFO_SPI("SPI initialization failed!");
- return 1;
- }
-
- spi_status_t status = spi_setupChipReg(spi, &spiOptions, FPBA_HZ);
- if (status == SPI_ERROR_ARGUMENT)
- WARN("Error configuring SPI\n");
-
- // Disable all interrupts.
- Disable_global_interrupt();
-
- // Register the SPI interrupt handler to the interrupt controller.
- INTC_register_interrupt((__int_handler)(&spi_int_handler), AVR32_SPI0_IRQ, AVR32_INTC_INT0);
-
- // Enable all interrupts.
- Enable_global_interrupt();
-
- ENABLE_SPI_INT();
-
- spi_enable(spi);
-#ifdef _SPI_STATS_
- initStatSpi();
-#endif
- init_spi_cmds(ctx);
-
- memset(_receiveBuffer, 0, sizeof(_receiveBuffer));
- memset(buf, 0, sizeof(buf));
- memset(reply, 0, sizeof(reply));
-
- initMapSockTcp();
- set_result(WL_IDLE_STATUS);
-
- init_pBuf();
-
- return 0;
-}
-
diff --git a/firmwares/wifishield/wifiHD/src/ard_spi.h b/firmwares/wifishield/wifiHD/src/ard_spi.h
deleted file mode 100644
index 27ec33e..0000000
--- a/firmwares/wifishield/wifiHD/src/ard_spi.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * ard_spi.h
- *
- * Created on: May 27, 2010
- * Author: mlf by Metodo2 srl
- */
-
-#ifndef ARD_SPI_H_
-#define ARD_SPI_H_
-
-#include "lwip/netif.h"
-#include "console.h"
-#include "wl_definitions.h"
-
-
-typedef enum {
- SPI_CMD_IDLE,
- SPI_CMD_INPUT,
- SPI_CMD_DONE,
- SPI_CMD_INPROGRESS,
- SPI_CMD_REPLING,
- SPI_CMD_FAIL,
-} cmd_spi_state_t;
-
-typedef enum {
- REPLY_ERR_GET,
- REPLY_ERR_SET,
- REPLY_ERR_CMD,
- REPLY_ERR_MSG,
- REPLY_NO_ERR,
-} reply_err_t;
-
-
-typedef enum {
- CMD_GET_FLAG = 0x01,
- CMD_SET_FLAG = 0x02,
- CMD_IMM_SET_FLAG = 0x04,
-}cmd_flags;
-
-typedef enum eProtMode {TCP_MODE, UDP_MODE}tProtMode;
-
-#define TIMEOUT_SPI 200
-#define SPI_ALIGN_ERROR 0xF0
-#define SPI_OVERRIDE_ERROR 0xF1
-#define SPI_TIMEOUT_ERROR 0xF2
-#define DUMMY_DATA 0xFF
-
-typedef int (*cmd_spi_cb_t)(int numParam, char* buf, void* ctx);
-typedef cmd_spi_state_t (*cmd_spi_rcb_t)(char* recv, char* reply, void* ctx, uint16_t* _count);
-
-typedef struct eRemoteClient{
- uint32_t ipaddr;
- uint16_t port;
-}tRemoteClient;
-
-void set_result_cmd(int err) ;
-
-void set_result(wl_status_t _status);
-
-int initSpi(void* ctx);
-
-void initExtInt();
-
-void spi_poll(struct netif* netif);
-
-int spi_slaveReceive(volatile avr32_spi_t *spi);
-
-void showTTCPstatus();
-
-int getSock(void * _ttcp);
-
-void* getTTCP(uint8_t sock, uint8_t mode);
-
-void setMapSockMode(uint8_t sock, void* _ttcp, uint8_t _tcp_mode);
-
-void clearMapSockTcp(uint8_t sock, uint8_t mode);
-
-int start_server_tcp(uint16_t port, uint8_t sock, uint8_t protMode);
-
-int start_client_tcp(uint32_t _addr, uint16_t port, uint8_t sock, uint8_t protMode);
-
-void setRemoteClient(uint16_t sock, uint32_t _ipaddr, uint16_t _port);
-
-tRemoteClient* getRemoteClient(uint16_t sock);
-
-void getRemoteData(uint8_t sock, uint8_t mode, tRemoteClient* remoteData);
-
-#endif /* ARD_SPI_H_ */
diff --git a/firmwares/wifishield/wifiHD/src/ard_tcp.c b/firmwares/wifishield/wifiHD/src/ard_tcp.c
deleted file mode 100644
index 0a73b20..0000000
--- a/firmwares/wifishield/wifiHD/src/ard_tcp.c
+++ /dev/null
@@ -1,987 +0,0 @@
-/*
- * ard_tcp.c
- *
- * Created on: May 27, 2010
- * Author: mlf by Metodo2 srl
- */
-
-//#define _APP_DEBUG_
-#include "lwip/opt.h"
-
-#include "lwip/mem.h"
-#include "lwip/raw.h"
-#include "lwip/icmp.h"
-#include "lwip/netif.h"
-#include "lwip/sys.h"
-#include "lwip/sockets.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-#include "lwip/tcp.h"
-#include "lwip/udp.h"
-
-#include "ard_tcp.h"
-#include "ard_spi.h"
-#include "timer.h"
-#include "util.h"
-
-#include "getopt.h"
-#include "ard_utils.h"
-#include "debug.h"
-#include "trace.h"
-
-unsigned int startTime = 0;
-extern bool ifStatus;
-
-static err_t tcp_data_sent(void *arg, struct tcp_pcb *pcb, u16_t len);
-
-static void atcp_init_pend_flags(struct ttcp* _ttcp)
-{
- int i = 0;
- for (; i<MAX_CLIENT_ACCEPTED; ++i)
- {
- if (_ttcp) _ttcp->pending_close[i] = false;
- }
-}
-
-/**
- * Clean up and free the ttcp structure
- */
-static void ard_tcp_destroy(struct ttcp* ttcp) {
- err_t err = ERR_OK;
- DUMP_TCP_STATE(ttcp);
-
- uint8_t sock = getSock(ttcp);
- if (sock == -1)
- WARN("ttcp already deallocated!\n");
-
- freeAllTcpData(sock);
- int i = 0;
- for (; i<MAX_CLIENT_ACCEPTED; ++i)
- {
- if (ttcp->tpcb[i]) {
- tcp_arg(ttcp->tpcb[i], NULL);
- tcp_sent(ttcp->tpcb[i], NULL);
- tcp_recv(ttcp->tpcb[i], NULL);
- tcp_err(ttcp->tpcb[i], NULL);
- //TEMPORAQARY
- //err = tcp_close(ttcp->tpcb);
- INFO_TCP("Closing tpcb: state:0x%x err:%d\n", ttcp->tpcb[i]->state, err);
- }
- }
-
- if (ttcp->lpcb) {
- tcp_arg(ttcp->lpcb, NULL);
- tcp_accept(ttcp->lpcb, NULL);
- err = tcp_close(ttcp->lpcb);
- INFO_TCP("Closing lpcb: state:0x%x err:%d\n", ttcp->lpcb->state, err);
- }
-
- if (ttcp->upcb) {
- udp_disconnect(ttcp->upcb);
- udp_remove(ttcp->upcb);
- }
-
- FREE_PAYLOAD(ttcp);
- free(ttcp);
-}
-
-/**
- * Invoked when transfer is done or aborted (non-zero result).
- */
-static void ard_tcp_done(struct ttcp* ttcp, int result) {
-// if (result == 0)
-// ard_tcp_print_stats(ttcp);
-
- if (ttcp->done_cb)
- ttcp->done_cb(ttcp->opaque, result);
-
- ard_tcp_destroy(ttcp);
- clearMapSockTcp(getSock(ttcp), GET_TCP_MODE(ttcp));
-}
-
-/**
- * Only used in TCP mode.
- * Will transmit a maximum of pbuf->tot_len bytes.
- * Called upon connect and when there's space available in the TCP send window
- *
- */
-static err_t tcp_send_data_pcb(struct ttcp *ttcp, struct tcp_pcb *pcb) {
- err_t err = ERR_OK;
- uint32_t len;
-
- GET_CLIENT_ID(ttcp, pcb);
-
- len = ttcp->left[id];
- ttcp->buff_sent[id] = 0;
-
- if (len == 0) return ERR_MEM;
-
- INFO_TCP_VER("left=%d len:%d\n", ttcp->left[id], len);
-
- /* don't send more than we have in the payload */
- if (len > ttcp->buflen)
- len = ttcp->buflen;
-
- /* We cannot send more data than space available in the send
- buffer. */
- if (len > tcp_sndbuf(pcb))
- len = tcp_sndbuf(pcb);
-
- IF_TCP(startTime = timer_get_ms());
- err = tcp_write(pcb, ttcp->payload[id], len, TCP_WRITE_FLAG_COPY);
- if (err != ERR_OK)
- {
- INFO_TCP("tcp_write failed %p state:%d len:%d err:%d\n",
- pcb, pcb->state, len, err);
- ttcp->buff_sent[id] = 0;
- }else{
- ttcp->buff_sent[id] = 1;
- ttcp->left[id] -= len;
- }
-
- return err;
-}
-
-
-/**
- * Only used in TCP mode.
- */
-static err_t tcp_connect_cb(void *arg, struct tcp_pcb *tpcb, err_t err) {
- struct ttcp* _ttcp = arg;
-
- if (_ttcp == NULL) return ERR_ARG;
-
- GET_CLIENT_ID(_ttcp, tpcb);
- INFO_TCP("TTCP [%p-%p]: connect %d %d\n", _ttcp, tpcb, err, tpcb->state);
-
- _connected = ( tpcb->state == ESTABLISHED) ? 1 : 0;
- _ttcp->tcp_poll_retries[id] = 0;
-
- _ttcp->start_time = timer_get_ms();
-
- return ERR_OK;
-}
-
-static void cleanSockState_cb(void *ctx) {
- struct ttcp* _ttcp = ctx;
-
- if (_ttcp == NULL) return;
-
- int sock = getSock(_ttcp);
- if (sock != -1)
- clearMapSockTcp(sock, GET_TCP_MODE(_ttcp));
- INFO_TCP("TTCP [%p]: cleanSockState_cb %d\n", _ttcp, sock);
- _connected = false;
-}
-
-/**
- * Only used in TCP mode.
- */
-
-static err_t close_conn_pcb(struct tcp_pcb* tpcb) {
-
- err_t err = tcp_close(tpcb);
- if (err== ERR_OK)
- {
- tcp_arg(tpcb, NULL);
- tcp_sent(tpcb, NULL);
- tcp_recv(tpcb, NULL);
- }
-
- INFO_TCP("Closing tpcb[%p]: state:0x%x err:%d\n", tpcb, tpcb->state, err);
- return err;
-}
-
-static void atcp_conn_err_cb(void *arg, err_t err) {
- struct ttcp* _ttcp = arg;
-
- WARN("TTCP [%p]: connection error: %d currId:%d\n",
- _ttcp, err, getCurrClientConnId());
-
- if (ifStatus == false)
- printk("Abort connection\n");
-
- if (err == ERR_ABRT)
- {
- removeNewClientConn(_ttcp, GET_CURR_PCB(_ttcp));
- FREE_PAYLOAD_ID(_ttcp, getCurrClientConnId());
- }
-}
-
-static void atcp_conn_cli_err_cb(void *arg, err_t err) {
- struct ttcp* _ttcp = arg;
-
- if (_ttcp == NULL) return;
-
- WARN("TTCP [%p]: connection error: %d arg:%p\n",
- _ttcp, err, arg);
-
- if (ifStatus == false)
- printk("Abort connection\n");
-
- if ((_ttcp)&&(err == ERR_ABRT))
- {
- WARN("TTCP [%p]: free memory\n", _ttcp);
- cleanSockState_cb(_ttcp);
- // TODO
- FREE_PAYLOAD(_ttcp);
- }
-
- //atcp_init_pend_flags(_ttcp);
-}
-
-static err_t close_conn(struct ttcp *_ttcp, struct tcp_pcb* tpcb) {
-
- if (_ttcp == NULL) return ERR_MEM;
-
- GET_CLIENT_ID(_ttcp, tpcb);
-
- err_t err = close_conn_pcb(_ttcp->tpcb[id]);
-
- if (err == ERR_MEM)
- {
- WARN("Cannot close id:%d-%p put pending\n", id, _ttcp->tpcb[id]);
- _ttcp->pending_close[id] = true;
- }
- else{
- _ttcp->pending_close[id] = false;
- removeNewClientConn(_ttcp, _ttcp->tpcb[id]);
- FREE_PAYLOAD_ID(_ttcp, id);
- INFO_TCP("----------------------\n");
- }
- return err;
-}
-
-void closeConnections()
-{
- int ii=0;
- for (; ii<MAX_MODE_NUM; ii++)
- {
- int i = 0;
- for (; i<MAX_SOCK_NUM; i++)
- {
- void* p = getTTCP(i, ii);
- if (p)
- {
- ttcp_t* _ttcp = (ttcp_t* )p;
- if (_ttcp->udp == TCP_MODE)
- {
- ard_tcp_destroy(_ttcp);
- clearMapSockTcp(getSock(_ttcp), GET_TCP_MODE(_ttcp));
- }
- }
- }
- }
-}
-
-/**
- * Only used in TCP mode.
- */
-static err_t atcp_recv_cb(void *arg, struct tcp_pcb *pcb, struct pbuf *p,
- err_t err) {
- struct ttcp* ttcp = arg;
-
- if (err == ERR_OK && p != NULL) {
- DATA_LED_ON();
- /* for print_stats() */
- ttcp->recved += p->tot_len;
-
- if ((ttcp->verbose)||(verboseDebug & INFO_TCP_FLAG)) {
- INFO_TCP("len:%d\n",p->tot_len);
- DUMP_TCP(p->payload, p->tot_len);
- ttcp->print_cnt++;
- }
-
- uint8_t* pBufferStore = insert_pBuf(p, ttcp->sock, (void*) pcb);
- INFO_TCP("sock:%d pcb:%p pbuf:%p err:%d bufStore:%p len:%d\n",
- ttcp->sock, pcb, p, err, pBufferStore, p->tot_len);
- pbuf_free(p);
- DATA_LED_OFF();
- }
-
- /* p will be NULL when remote end is done */
- if (err == ERR_OK && p == NULL) {
- INFO_TCP("atcp_recv_cb p=NULL on sock:%d pcb:%p\n", ttcp->sock, pcb);
- close_conn(ttcp, pcb);
- }
-
- if (err!=ERR_OK)
- WARN("err=%d p=%p\n", err, p);
- return ERR_OK;
-}
-
-void ack_recved(void* pcb, int len) {
- // Comment the call because it is activated on atcp_recv_cb
- INFO_TCP("Received %p len:%d\n", pcb, len);
- tcp_recved(pcb, len);
-}
-
-static err_t atcp_poll(void *arg, struct tcp_pcb *pcb) {
- struct ttcp* _ttcp = arg;
-
- if (_ttcp == NULL) return ERR_ARG;
-
- GET_CLIENT_ID(_ttcp, pcb);
-
- if (_ttcp->left[id]>0)
- ++_ttcp->tcp_poll_retries[id];
-
- if (_ttcp->tcp_poll_retries[id] > 4) {
- WARN("ARD TCP [%p] arg=%p retries=%d abort\n",
- pcb, arg, _ttcp->tcp_poll_retries[id]);
- _ttcp->tcp_poll_retries[id] = 0;
- tcp_abort(pcb);
- _ttcp->pending_close[id] = false;
- return ERR_ABRT;
- }
-
- if (pcb)
- INFO_TCP_POLL("keepAliveCnt:%d keep_idle:%d persist_cnt:%d\n",
- pcb->keep_cnt_sent, pcb->keep_idle, pcb->persist_cnt);
-
- if (_ttcp->left[id] > 0)
- INFO_TCP("ARD TCP [%p-%p] arg=%p retries=%d pend.close:%d len:%d\n",
- (_ttcp)?GET_FIRST_CLIENT_TCP(_ttcp):0, pcb, arg,
- _ttcp->tcp_poll_retries[id], _ttcp->pending_close[id], (_ttcp)?_ttcp->left[id]:0);
- tcp_send_data_pcb(_ttcp, pcb);
-
- if (_ttcp->pending_close[id])
- {
- err_t err = ERR_OK;
- if (id >=0){
- err = tcp_close(pcb);
- if (err == ERR_MEM)
- {
- _ttcp->pending_close[id] = true;
- }
- else
- {
- _ttcp->pending_close[id] = false;
- removeNewClientConn(_ttcp, _ttcp->tpcb[id]);
- FREE_PAYLOAD_ID(_ttcp, id);
- INFO_TCP("----------------------\n");
- }
- }
- INFO_TCP("ARD TCP [%p-%p] try to close pending:%d err:%d id:%d\n", pcb,
- (_ttcp)?GET_FIRST_CLIENT_TCP(_ttcp):0, _ttcp->pending_close[id], err, id);
- }
- return ERR_OK;
-}
-
-static err_t atcp_poll_conn(void *arg, struct tcp_pcb *pcb) {
- struct ttcp* _ttcp = arg;
-
- if (_ttcp == NULL) return ERR_ARG;
-
- GET_CLIENT_ID(_ttcp, pcb)
-
- INFO_TCP_POLL("ARD TCP [%p-%p] arg=%p retries=%d pend.close:%d conn:%d\n",
- (_ttcp)?GET_FIRST_CLIENT_TCP(_ttcp):0, pcb, arg,
- _ttcp->tcp_poll_retries[id], _ttcp->pending_close[id], _connected);
-
- if (id != NO_VALID_ID)
- {
- if (_ttcp->pending_close[id])
- ++(_ttcp->tcp_poll_retries[id]);
- }
-
- if (_ttcp->tcp_poll_retries[id] > 8) {
- WARN("ARD TCP [%p-%p] arg=%p retries=%d\n",
- pcb, GET_FIRST_CLIENT_TCP(_ttcp), arg, _ttcp->tcp_poll_retries[id]);
- _ttcp->tcp_poll_retries[id] = 0;
- tcp_abort(pcb);
- return ERR_ABRT;
- }
-
- if ((_ttcp)&&(_connected)) tcp_send_data_pcb(_ttcp, pcb);
-
- if ((id != NO_VALID_ID) && (_ttcp->pending_close[id]))
- {
- err_t err = tcp_close(pcb);
- if (err == ERR_MEM)
- {
- _ttcp->pending_close[id] = true;
- }
- else
- {
- cleanSockState_cb(_ttcp);
- FREE_PAYLOAD_ID(_ttcp, id);
- _ttcp->pending_close[id] = false;
- }
-
- INFO_TCP("ARD TCP [%p-%p] try to close pending:%d\n", pcb, (_ttcp)?GET_FIRST_CLIENT_TCP(_ttcp):0, _ttcp->pending_close[id]);
- }
- return ERR_OK;
-}
-
-int8_t currConnId = 0;
-
-int8_t getCurrClientConnId() { return currConnId;}
-
-int8_t getNewClientConnId(struct ttcp* _ttcp, struct tcp_pcb *newpcb)
-{
- if (_ttcp != NULL){
- int i = 0;
- for (; i<MAX_CLIENT_ACCEPTED; ++i)
- {
- int idx = GET_IDX_CONN(i);
-
- if (_ttcp->tpcb[idx] == newpcb)
- {
- INFO_TCP_VER("ttcp:%p id=%d, tpcb=%p\n", _ttcp, idx, newpcb);
- return idx;
- }
- }
- }
- WARN("No Valid Id for ttcp:%p pcb:%p\n", _ttcp, newpcb);
- return NO_VALID_ID;
-}
-
-struct tcp_pcb * getFirstClient(struct ttcp* _ttcp, bool verbose)
-{
- if (_ttcp != NULL){
- int i = 0;
- for (; i<MAX_CLIENT_ACCEPTED; ++i)
- {
- int idx = GET_IDX_CONN(i);
- if (_ttcp->tpcb[idx] != NULL)
- {
- if (verbose) INFO_TCP("ttcp:%p id=%d, tpcb=%p\n", _ttcp, idx, _ttcp->tpcb[idx]);
- currConnId = idx;
- return _ttcp->tpcb[idx];
- }
- }
- }
- if (verbose) WARN("No Valid client for ttcp:%p\n", _ttcp);
- return NULL;
-}
-
-
-int8_t setNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb, uint8_t id)
-{
- if ((_ttcp != NULL)&&(id>=0)&&(id<MAX_CLIENT_ACCEPTED)){
- INFO_TCP("ttcp:%p id=%d, tpcb=%p\n", _ttcp, id, newpcb);
- _ttcp->tpcb[id] = newpcb;
- return id;
- }
- return NO_VALID_ID;
-}
-
-int8_t insertNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb)
-{
- if (_ttcp != NULL){
- int i = 0;
- for (; i<MAX_CLIENT_ACCEPTED; ++i)
- {
- int idx = GET_IDX_CONN(i);
- if ((_ttcp->tpcb[idx] == NULL)||(_ttcp->tpcb[idx] == newpcb))
- {
- INFO_TCP("ttcp:%p id=%d, tpcb=%p\n", _ttcp, idx, newpcb);
- _ttcp->tpcb[idx] = newpcb;
- return idx;
- }
- }
- }
- return NO_VALID_ID;
-}
-
-int8_t removeNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb)
-{
- if (_ttcp != NULL){
- int i = 0;
- for (; i<MAX_CLIENT_ACCEPTED; ++i)
- {
- int idx = GET_IDX_CONN(i);
- if (_ttcp->tpcb[idx] == newpcb)
- {
- INFO_TCP("ttcp:%p id=%d, tpcb=%p\n", _ttcp, idx, newpcb);
- _ttcp->tpcb[idx] = NULL;
- return idx;
- }
- }
- }
- return NO_VALID_ID;
-}
-
-bool cleanNewClientConn(struct ttcp* _ttcp)
-{
- if (_ttcp != NULL){
- int i = 0;
- for (; i<MAX_CLIENT_ACCEPTED; ++i)
- _ttcp->tpcb[i] = NULL;
- return true;
- }
- return false;
-}
-
-
-/**
- * Only used in TCP mode.
- */
-static err_t atcp_accept_cb(void *arg, struct tcp_pcb *newpcb, err_t err) {
- struct ttcp* _ttcp = arg;
-
- if (_ttcp == NULL) return ERR_ARG;
-
- INFO_TCP("ARD TCP [%p]: accept new [%p]\n", _ttcp, newpcb);
- INFO_TCP("local:%d remote:%d state:%d\n", newpcb->local_port, newpcb->remote_port, newpcb->state);
-
- int8_t id = insertNewClientConn(_ttcp, newpcb);
-
- ASSERT((_ttcp->payload[id]==NULL), "payload not freed!");
- _ttcp->payload[id] = malloc(_ttcp->buflen);
- INFO_TCP("Alloc payload %d-%p\n", id, _ttcp->payload[id]);
- if (_ttcp->payload[id] == NULL) {
- WARN("TTCP [%p]: could not allocate payload\n", _ttcp);
- return -1;
- }
- tcp_arg(_ttcp->tpcb[id], _ttcp);
- tcp_recv(_ttcp->tpcb[id], atcp_recv_cb);
- tcp_err(_ttcp->tpcb[id], atcp_conn_err_cb);
- tcp_poll(_ttcp->tpcb[id], atcp_poll, 4);
- // Copy the pointer to ttcp also to TRANSMIT mode for the clients connected to the server
- int _sock = getSock(_ttcp);
- if ((_sock != -1)&&(IS_VALID_SOCK(_sock)))
- setMapSockMode(_sock, _ttcp, TTCP_MODE_TRANSMIT);
- _ttcp->start_time = timer_get_ms();
- return ERR_OK;
-}
-
-/**
- * Start TCP transfer.
- */
-static int atcp_start(struct ttcp* ttcp) {
- err_t err = ERR_OK;
-
- struct tcp_pcb * p = tcp_new();
-
- if (p == NULL) {
- WARN("TTCP [%p]: could not allocate pcb\n", ttcp);
- return -1;
- }
-
- currConnId = 0;
- tcp_arg(p, ttcp);
- atcp_init_pend_flags(ttcp);
-
- if (ttcp->mode == TTCP_MODE_TRANSMIT) {
- int8_t id = insertNewClientConn(ttcp, p);
- ttcp->payload[id] = malloc(ttcp->buflen);
- INFO_TCP("Alloc payload %d-%p\n", id, ttcp->payload[id]);
- if (ttcp->payload[id] == NULL) {
- WARN("TTCP [%p]: could not allocate payload\n", ttcp);
- return -1;
- }
-
- struct tcp_pcb * pcb = p;
- tcp_err(pcb, atcp_conn_cli_err_cb);
- tcp_recv(pcb, atcp_recv_cb);
- tcp_sent(pcb, tcp_data_sent);
- tcp_poll(pcb, atcp_poll_conn, 4);
- _connected = false;
- INFO_TCP("[tpcb]-%p payload:%p\n", pcb, ttcp->payload[id]);
- DUMP_TCP_STATE(ttcp);
- if (tcp_connect(pcb, &ttcp->addr, ttcp->port, tcp_connect_cb)
- != ERR_OK) {
- WARN("TTCP [%p]: tcp connect failed\n", ttcp);
- return -1;
- }
-
- } else {
- INFO_TCP("BEFORE BIND ttcp:%p lpcb:%p pcb:%p\n", ttcp, ttcp->lpcb, GET_FIRST_CLIENT_TCP(ttcp));
-
- err = tcp_bind(p, IP_ADDR_ANY, ttcp->port);
- if (err != ERR_OK){
- WARN("TTCP [%p]: bind failed err=%d Port already used\n", ttcp, err);
- return -1;
- }
-
- ttcp->lpcb = tcp_listen(p);
- if (ttcp->lpcb == NULL) {
- WARN("TTCP [%p]: listen failed\n", ttcp);
- return -1;
- }
-
- DUMP_TCP_STATE(ttcp);
- tcp_accept(ttcp->lpcb, atcp_accept_cb);
- }
-
- return 0;
-}
-
-/**
- * Only used in UDP mode. Will finalize the ttcp process when an end marker
- * is seen.
- */
-static void audp_recv_cb(void *arg, struct udp_pcb *upcb, struct pbuf *p,
- struct ip_addr *addr, u16_t port) {
- struct ttcp* ttcp = arg;
-
- /* for print_stats() */
- ttcp->recved += p->tot_len;
- DUMP(p->payload,p->tot_len);
- if (ttcp->verbose) {
- printk(".");
- if (ttcp->print_cnt % 80 == 0)
- printk("\n");
- ttcp->print_cnt++;
- }
- INFO_TCP("UDP Insert %p sock:%d addr:%s port:%d\n", p, ttcp->sock,
- ip2str(*addr), port);
- insert_pBuf(p, ttcp->sock, (void*) upcb);
- setRemoteClient(ttcp->sock, addr->addr, port);
-
- pbuf_free(p);
-}
-
-/**
- * Start UDP transfer.
- */
-static int udp_start(struct ttcp* ttcp) {
- err_t err = ERR_OK;
- ttcp->udp_end_marker_left = 5;
- ttcp->upcb = udp_new();
- if (ttcp->upcb == NULL) {
- WARN("TTCP [%p]: could not allocate pcb\n", ttcp);
- return -1;
- }
-
- INFO_TCP("%s, upcb:%p %s:%d\n", __FUNCTION__, ttcp->upcb, ip2str(ttcp->addr), ttcp->port);
- if (ttcp->mode == TTCP_MODE_TRANSMIT) {
- if (udp_connect(ttcp->upcb, &(ttcp->addr), ttcp->port) != ERR_OK) {
- WARN("TTCP [%p]: udp connect failed\n", ttcp);
- return -1;
- }
- udp_recv(ttcp->upcb, audp_recv_cb, ttcp);
- } else {
- /* bind to any IP address on port specified */
- err = udp_bind(ttcp->upcb, IP_ADDR_ANY, ttcp->port);
- if (err!= ERR_OK) {
- WARN("TTCP [%p]: bind failed err=%d Port already used\n", ttcp, err);
- return -1;
- }
- // clear remote client data
- setRemoteClient(ttcp->sock, 0, 0);
- udp_recv(ttcp->upcb, audp_recv_cb, ttcp);
- }
- INFO_TCP("%s, loc:0x%x-%d rem:0x%x-%d\n", __FUNCTION__,
- ttcp->upcb->local_ip.addr, ttcp->upcb->local_port,
- ttcp->upcb->remote_ip.addr, ttcp->upcb->remote_port);
- return 0;
-}
-
-/**
- * Start a new ttcp transfer. It should be possible to call this function
- * multiple times in order to get multiple ttcp streams. done_cb() will be
- * invoked upon completion.
- *
- */
-int ard_tcp_start(struct ip_addr addr, uint16_t port, void *opaque,
- ard_tcp_done_cb_t *done_cb, int mode, uint16_t nbuf, uint16_t buflen,
- int udp, int verbose, uint8_t sock, void** _ttcp) {
- struct ttcp* ttcp;
- int status;
-
- if (mode != TTCP_MODE_TRANSMIT && mode != TTCP_MODE_RECEIVE) {
- WARN("TTCP [-]: invalid mode\n");
- return -1;
- }
-
- if (nbuf == 0) {
- WARN("TTCP [-]: invalid nbuf\n");
- return -1;
- }
-
- if (buflen == 0) {
- WARN("TTCP [-]: invalid buflen\n");
- return -1;
- }
-
- ttcp = calloc(1, sizeof(struct ttcp));
- if (ttcp == NULL) {
- WARN("TTCP [-]: could not allocate memory for ttcp\n");
- return -1;
- }
-
- ttcp->addr = addr;
- ttcp->port = port;
- ttcp->nbuf = nbuf;
- ttcp->mode = mode;
- ttcp->done_cb = done_cb;
- ttcp->opaque = opaque;
- ttcp->udp = udp;
- ttcp->verbose = verbose;
- ttcp->buflen = buflen;
- cleanNewClientConn(ttcp);
-
- if (ttcp->udp)
- status = udp_start(ttcp);
- else
- status = atcp_start(ttcp);
-
- if (status) {
- WARN("Start server FAILED!\n");
- goto fail;
- }
- INFO_TCP("TTCP [%p-%p]: nbuf=%d, buflen=%d, port=%d (%s/%s)\n", ttcp,
- ((ttcp->udp==1)?(void*)ttcp->upcb:GET_FIRST_CLIENT_TCP(ttcp)), ttcp->nbuf, ttcp->buflen,
- ttcp->port, ProtMode2Str(ttcp->udp), Mode2Str(ttcp->mode));
-
- *_ttcp = (void*) ttcp;
- ttcp->sock = sock;
-
- return 0;
-
- fail: ard_tcp_destroy(ttcp);
- return -1;
-}
-
-void ard_tcp_stop(void* ttcp) {
- struct ttcp* _ttcp = (struct ttcp*) ttcp;
- if (_ttcp == NULL)
- {
- WARN("ttcp = NULL!\n");
- return;
- }
- if (_ttcp->mode == TTCP_MODE_TRANSMIT) {
- int i = getCurrClientConnId();
- ard_tcp_destroy(_ttcp);
- clearMapSockTcp(getSock(_ttcp), GET_TCP_MODE(_ttcp));
- _ttcp->tcp_poll_retries[i] = 0;
- }else{
- DUMP_TCP_STATE(_ttcp);
-
- int i = getCurrClientConnId();
- if ((_ttcp)&&(_ttcp->tpcb[i])&&(_ttcp->tpcb[i]->state!=LAST_ACK)&&(_ttcp->tpcb[i]->state!=CLOSED))
- {
- // Flush all the data
- err_t err=tcp_output(_ttcp->tpcb[i]);
- INFO_TCP("flush data: tpcb:%p err:%d\n", _ttcp->tpcb[i], err);
- // if any socket cannot be close stop the close connection
- close_conn(_ttcp, _ttcp->tpcb[i]);
- }
- }
-}
-
-uint8_t getStateTcp(void* p, bool client) {
- struct ttcp* _ttcp = (struct ttcp*) p;
-
- if (ifStatus == false)
- return CLOSED;
- struct tcp_pcb * pcb = GET_FIRST_CLIENT_TCP_NV(_ttcp);
- if ((_ttcp != NULL) && ((pcb != NULL) || (client==0))) {
- IF_SPI_POLL(DUMP_TCP_STATE(_ttcp));
- if (client)
- {
- if ((pcb->state != ESTABLISHED)&&(pcb->state != CLOSED))
- DUMP_TCP_STATE(_ttcp);
- return pcb->state;
- }
- else
- {
- return _ttcp->lpcb->state;
- }
- } else {
- WARN_POLL("TCP not initialized ttcp:%p tpcb:%p lpcb:%p\n",
- _ttcp, ((_ttcp)?pcb:0), ((_ttcp)?_ttcp->lpcb:0));
- }
- return CLOSED;
-}
-
-uint8_t getModeTcp(void* p) {
- struct ttcp* _ttcp = (struct ttcp*) p;
-
- if (_ttcp != NULL)
- return _ttcp->mode;
- return 0;
-}
-
-uint8_t isDataSent(void* p) {
- struct ttcp *_ttcp = (struct ttcp *)p;
-
- int8_t id = getCurrClientConnId();
- if ((_ttcp)&&(!_ttcp->buff_sent[id]))
- {
- return 0;
- }
-
- return 1;
-}
-
-static err_t tcp_data_sent(void *arg, struct tcp_pcb *pcb, u16_t len) {
- struct ttcp *_ttcp;
-
- LWIP_UNUSED_ARG(len);
-
- _ttcp = arg;
-
- if (_ttcp == NULL) return ERR_ARG;
-
- GET_CLIENT_ID(_ttcp, pcb);
- _ttcp->tcp_poll_retries[id] = 0;
- _ttcp->buff_sent[id] = 1;
-
- INFO_TCP("Packet sent pcb:%p len:%d dur:%d left:%d\n", pcb, len, timer_get_ms() - startTime,
- (_ttcp)?(_ttcp->left[id]):0);
-
- if ((_ttcp)&&(_ttcp->left[id] > 0)) {
- tcp_send_data_pcb(_ttcp, pcb);
- }
-
- return ERR_OK;
-}
-
-int sendTcpData(void* p, uint8_t* buf, uint16_t len)
-{
- struct ttcp* _ttcp = (struct ttcp*) p;
-
- if (_ttcp==NULL)
- {
- WARN("ttcp == NULL!\n");
- return WL_FAILURE;
- }
-
- struct tcp_pcb * pcb = GET_FIRST_CLIENT_TCP_NV(_ttcp);
- GET_CLIENT_ID(_ttcp, pcb);
-
- INFO_TCP_VER("ttcp:%p pcb:%p buf:%p len:%d\n", _ttcp, pcb, buf, len);
- DUMP_TCP(buf,len);
- IF_TCP_VER(DUMP_TCP_STATE(_ttcp));
-
- if ((_ttcp != NULL) && (pcb != NULL) &&
- (buf != NULL) && (len != 0) && (_ttcp->payload[id] != NULL)) {
- if (pcb->state == ESTABLISHED || pcb->state == CLOSE_WAIT ||
- pcb->state == SYN_SENT || pcb->state == SYN_RCVD) {
-
- memcpy(_ttcp->payload[id], buf, len);
- _ttcp->payload[id][len]='\0';
- INFO_TCP_VER("'%s'\n", _ttcp->payload[id]);
- _ttcp->left[id] = len;
- tcp_sent(pcb, tcp_data_sent);
- tcp_send_data_pcb(_ttcp, pcb);
-
- return WL_SUCCESS;
- }
- }
- //printk("Write failure _ttcp=%p _ttcp->tpcb=%p buf=%p len=%d\n", _ttcp, _ttcp->tpcb, buf, len);
- return WL_FAILURE;
-}
-
-int sendUdpData(void* ttcp, uint8_t* buf, uint16_t len) {
- struct ttcp* _ttcp = (struct ttcp*) ttcp;
- if ((_ttcp != NULL) && (buf != NULL) && (len != 0))
- {
- INFO_TCP("buf:%p len:%d\n", buf, len);
- DUMP_TCP(buf,len);
- }else{
- return WL_FAILURE;
- }
-
- struct pbuf* p = pbuf_alloc(PBUF_TRANSPORT, len, PBUF_RAM);
- if (p == NULL) {
- WARN("TTCP [%p]: could not allocate pbuf\n", ttcp);
- return WL_FAILURE;
- }
- memcpy(p->payload, buf, len);
- if (udp_send(_ttcp->upcb, p) != ERR_OK) {
- WARN("TTCP [%p]: udp_send() failed\n", _ttcp);
- pbuf_free(p);
- return WL_FAILURE;
- }
-
- pbuf_free(p);
- return WL_SUCCESS;
-}
-
-
-
-char
- usage[] =
- "Usage: ttcp -t/-r [-options] host\n\
- -l length of bufs written to network (default 1024)\n\
- -n number of bufs written to network (default 1024)\n\
- -p port number to send to (default 2000)\n\
- -u udp\n\
- -v verbose\n";
-
-/**
- *
- */
-cmd_state_t cmd_ttcp(int argc, char* argv[], void* ctx) {
-
- int c;
- int mode = TTCP_MODE_TRANSMIT;
- int verbose = 0;
- uint16_t buflen = 1024;
- uint16_t nbuf = 1024;
- uint16_t port = 2000;
- int udp = 0;
- struct ip_addr addr = { 0 };
-
- optind = 1;
- while ((c = getopt(argc, argv, "utrl:n:p:v")) != -1) {
- switch (c) {
- case 't':
- mode = TTCP_MODE_TRANSMIT;
- break;
- case 'r':
- mode = TTCP_MODE_RECEIVE;
- break;
- case 'l':
- buflen = atoi(optarg);
- break;
- case 'v':
- verbose = 1;
- break;
- case 'n':
- nbuf = atoi(optarg);
- break;
- case 'u':
- udp = 1;
- break;
- case 'p':
- port = atoi(optarg);
- break;
- }
- }
-
- if (mode == TTCP_MODE_TRANSMIT) {
- if (optind >= argc) {
- printk("%s", usage);
- return CMD_DONE;
- }
-
- addr = str2ip(argv[optind]);
- if (!addr.addr) {
- printk("%s", usage);
- return CMD_DONE;
- }
- }
- void* _ttcp = NULL;
- if (ard_tcp_start(addr, port, NULL, NULL, mode, nbuf, buflen, udp, verbose,
- 0, &_ttcp))
- return CMD_DONE;
-
- return CMD_DONE;
-}
-
-
-#if 0
-#include "lwip/sockets.h"
-
-void testlwip()
-{
- int Sock;
- fd_set fdsetR;
- FD_ZERO(&fdsetR);
- FD_SET(Sock, &fdsetR);
- fd_set fdsetE = fdsetR;
-
- int rc;
- const int cMillies = 10000;
- struct timeval timeout;
- timeout.tv_sec = cMillies / 1000;
- timeout.tv_usec = (cMillies % 1000) * 1000;
- //rc = lwip_select(Sock + 1, &fdsetR, NULL, &fdsetE, &timeout);
-}
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/ard_tcp.h b/firmwares/wifishield/wifiHD/src/ard_tcp.h
deleted file mode 100644
index 078e0b0..0000000
--- a/firmwares/wifishield/wifiHD/src/ard_tcp.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * ard_tcp.h
- *
- * Created on: May 27, 2010
- * Author: mlf by Metodo2 srl
- */
-
-#ifndef ARD_TCP_H
-#define ARD_TCP_H
-
-#include "console.h"
-#include "lwip/tcp.h"
-
-typedef void (ard_tcp_done_cb_t)(void *opaque, int result);
-
-#define TTCP_MODE_TRANSMIT 0
-#define TTCP_MODE_RECEIVE 1
-#define MAX_MODE_NUM 2
-
-#define GET_TCP_MODE(X) ((X!=NULL)?((struct ttcp*)(X))->mode:0)
-#define IS_VALID_SOCK(SOCK) ((SOCK>=0)&&(SOCK<MAX_SOCK_NUM))
-#define IS_UDP_SOCK(SOCK) ((getTTCP(SOCK, TTCP_MODE_RECEIVE)!=NULL)?((struct ttcp*)(getTTCP(SOCK, TTCP_MODE_RECEIVE)))->udp:0)
-
-// Maximum number of client connection accepted by server
-#define MAX_CLIENT_ACCEPTED 4
-#define NO_VALID_ID 0xff
-
-#define GET_FIRST_CLIENT_TCP(TTCP) getFirstClient(TTCP, 1)
-#define GET_FIRST_CLIENT_TCP_NV(TTCP) getFirstClient(TTCP, 0)
-#define GET_CLIENT_TCP(TTCP,ID) (((TTCP!=NULL)&&(ID>=0)&&(ID<MAX_CLIENT_ACCEPTED))?TTCP->tpcb[ID] : NULL)
-#define GET_CLIENT_ID(TTCP, PCB) uint8_t id = NO_VALID_ID; do { \
- id = getNewClientConnId(TTCP, PCB); \
- if (id == NO_VALID_ID) return ERR_MEM; \
- }while(0);
-#define GET_IDX_CONN(I) ((I+currConnId)<MAX_CLIENT_ACCEPTED ? (I+currConnId) : (I+currConnId-MAX_CLIENT_ACCEPTED))
-#define GET_CURR_PCB(TTCP) GET_CLIENT_TCP(TTCP,getCurrClientConnId())
-
-#define FREE_PAYLOAD(TTCP) do { \
- int id = getCurrClientConnId(); \
- INFO_TCP("Freeing payload %d-%p\n", id, TTCP->payload[id]); \
- if (TTCP->payload[id]) { \
- free(TTCP->payload[id]); \
- TTCP->payload[id] = NULL; } \
-}while(0);
-
-#define FREE_PAYLOAD_ID(TTCP,ID) do { \
- INFO_TCP("Freeing payload %d-%p\n", ID, TTCP->payload[ID]); \
- if (TTCP->payload[ID]) { \
- free(TTCP->payload[ID]); \
- TTCP->payload[ID] = NULL; } \
-}while(0);
-
-
-typedef struct ttcp {
-
- /* options */
- struct ip_addr addr; /* host */
- uint16_t port; /* -p */
- uint16_t nbuf; /* -n */
- int mode; /* -t */
- int verbose; /* -v */
- int udp; /* -u */
- uint8_t sock;
- uint8_t buff_sent[MAX_CLIENT_ACCEPTED];
-
- /* common */
- uint16_t print_cnt;
- uint32_t start_time;
- uint32_t left[MAX_CLIENT_ACCEPTED];
- uint32_t recved;
- ard_tcp_done_cb_t* done_cb;
- void* opaque;
- uint32_t buflen; /* -l */
- uint32_t tid;
-
- /* TCP specific */
- struct tcp_pcb* tpcb[MAX_CLIENT_ACCEPTED];
- struct tcp_pcb* lpcb;
- char* payload[MAX_CLIENT_ACCEPTED];
- uint8_t tcp_poll_retries[MAX_CLIENT_ACCEPTED];
- bool pending_close[MAX_CLIENT_ACCEPTED];
-
- /* UDP specific */
- int udp_started;
- uint16_t udp_end_marker_left;
- struct udp_pcb* upcb;
-}ttcp_t;
-
-bool _connected;
-
-int ard_tcp_start(struct ip_addr addr, uint16_t port, void *opaque,
- ard_tcp_done_cb_t *done_cb, int mode, uint16_t nbuf, uint16_t buflen, int udp, int verbose, uint8_t sock, void** _ttcp);
-
-void ard_tcp_stop(void* ttcp);
-
-uint8_t getStateTcp(void* p, bool client );
-
-uint8_t getModeTcp(void* p);
-
-int sendTcpData(void* p, uint8_t* buf, uint16_t len);
-
-int sendUdpData(void* p, uint8_t* buf, uint16_t len);
-
-uint8_t isDataSent(void* p );
-
-cmd_state_t cmd_ttcp(int argc, char* argv[], void* ctx);
-
-int8_t setNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb, uint8_t id);
-
-int8_t insertNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb);
-
-int8_t removeNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb);
-
-bool cleanNewClientConn(struct ttcp* _ttcp);
-
-int8_t getNewClientConnId(struct ttcp* _ttcp, struct tcp_pcb *newpcb);
-
-int8_t getCurrClientConnId();
-
-struct tcp_pcb * getFirstClient(struct ttcp* _ttcp, bool verbose);
-
-void closeConnections();
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/ard_utils.c b/firmwares/wifishield/wifiHD/src/ard_utils.c
deleted file mode 100644
index c2937d8..0000000
--- a/firmwares/wifishield/wifiHD/src/ard_utils.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * ard_utils.c
- *
- * Created on: Jul 4, 2010
- * Author: mlf by Metodo2 srl
- */
-//#define _APP_DEBUG_
-
-#include "lwip/pbuf.h"
-#include "wifi_spi.h"
-#include "ard_utils.h"
-#include "debug.h"
-#include "ard_spi.h"
-#include "ard_tcp.h"
-
-#define MAX_PBUF_STORED 30
-
-tData pBufStore[MAX_PBUF_STORED][MAX_SOCK_NUM];
-
-unsigned char headBuf[MAX_SOCK_NUM] = {0};
-unsigned char tailBuf[MAX_SOCK_NUM] = {0};
-
-#define IS_BUF_AVAIL(x) (tailBuf[x] != headBuf[x])
-#define IS_BUF_EMPTY(x) ((tailBuf[x] == 0) && (headBuf[x] == 0))
-
-void init_pBuf()
-{
- memset(pBufStore, 0, sizeof(pBufStore));
-}
-
-uint8_t* insertBuf(uint8_t sock, uint8_t* buf, uint16_t len)
-{
- DUMP(buf,len);
- if (sock>= MAX_SOCK_NUM)
- {
- WARN("Sock out of range: sock=%d", sock);
- return NULL;
- }
- if (pBufStore[headBuf[sock]][sock].data != NULL)
- {
- WARN("Overwriting buffer %p idx:%d!\n", pBufStore[headBuf[sock]][sock].data, headBuf[sock]);
- // to avoid memory leak free the oldest buffer
- freetDataIdx(headBuf[sock], sock);
- }
-
- u8_t* p = (u8_t*)calloc(len,sizeof(u8_t));
- if(p != NULL) {
- memcpy(p, buf, len);
-
- pBufStore[headBuf[sock]][sock].data = p;
- pBufStore[headBuf[sock]][sock].len = len;
- pBufStore[headBuf[sock]][sock].idx = 0;
- pBufStore[headBuf[sock]][sock].pcb = getTTCP(sock, TTCP_MODE_TRANSMIT);
- headBuf[sock]++;
-
- if (headBuf[sock] == MAX_PBUF_STORED)
- headBuf[sock] = 0;
- if (headBuf[sock] == tailBuf[sock])
- {
- WARN("Avoid to Overwrite data [%d-%d]!\n", headBuf[sock], tailBuf[sock]);
- if (headBuf[sock] != 0)
- --headBuf[sock];
- else
- headBuf[sock] = MAX_PBUF_STORED-1;
- }
- INFO_UTIL("Insert[%d]: %p:%d-%d [%d,%d]\n", sock, p, len, p[0], headBuf[sock], tailBuf[sock]);
- }
- return p;
-}
-
-
-uint16_t calcMergeLen(uint8_t sock)
-{
- uint16_t len = 0;
-
- unsigned char index = tailBuf[sock];
- do {
- if (pBufStore[index][sock].data != NULL)
- {
- len += pBufStore[index][sock].len;
- len -= pBufStore[index][sock].idx;
- INFO_UTIL_VER(" [%d]: len:%d idx:%d tot:%d\n", sock, pBufStore[index][sock].len, pBufStore[index][sock].idx, len);
- }
- ++index;
- if (index == MAX_PBUF_STORED)
- index = 0;
- }while (index!=headBuf[sock]);
- return len;
-}
-
-uint16_t clearBuf(uint8_t sock)
-{
- uint16_t len = 0;
-
- unsigned char index = tailBuf[sock];
- do {
- if (pBufStore[index][sock].data != NULL)
- {
- freetDataIdx(index,sock);
- }
- ++index;
- if (index == MAX_PBUF_STORED)
- index = 0;
- }while (index!=headBuf[sock]);
- tailBuf[sock]=index;
- return len;
-}
-
-uint8_t* mergeBuf(uint8_t sock, uint8_t** buf, uint16_t* _len)
-{
- uint16_t len = calcMergeLen(sock);
- uint8_t* p = (u8_t*)calloc(len,sizeof(u8_t));
- uint8_t* _p = p;
- if(p != NULL) {
- unsigned char index = tailBuf[sock];
- do {
- if (pBufStore[index][sock].data != NULL)
- {
- memcpy(p, pBufStore[index][sock].data, pBufStore[index][sock].len);
- p += pBufStore[index][sock].len;
- }
- ++index;
- if (index == MAX_PBUF_STORED)
- index = 0;
- }while (index!=headBuf[sock]);
- }
- DUMP(_p,len);
- if (buf != NULL)
- *buf = _p;
- if (_len != NULL)
- *_len = len;
- return _p;
-}
-
-uint8_t* insert_pBuf(struct pbuf* q, uint8_t sock, void* _pcb)
-{
- if (q == NULL)
- return NULL;
-
- if (pBufStore[headBuf[sock]][sock].data != NULL)
- {
- WARN("Overwriting buffer %p idx:%d!\n", pBufStore[headBuf[sock]][sock].data, headBuf[sock]);
- // to avoid memory leak free the oldest buffer
- freetDataIdx(headBuf[sock], sock);
- }
-
- u8_t* p = (u8_t*)calloc(q->tot_len,sizeof(u8_t));
- if(p != NULL) {
- if (pbuf_copy_partial(q, p, q->tot_len,0) != q->tot_len) {
- WARN("pbuf_copy_partial failed: src:%p, dst:%p, len:%d\n", q, p, q->tot_len);
- free(p);
- p = NULL;
- return p;
- }
-
- pBufStore[headBuf[sock]][sock].data = p;
- pBufStore[headBuf[sock]][sock].len = q->tot_len;
- pBufStore[headBuf[sock]][sock].idx = 0;
- pBufStore[headBuf[sock]][sock].pcb = _pcb;
- headBuf[sock]++;
-
- if (headBuf[sock] == MAX_PBUF_STORED)
- headBuf[sock] = 0;
- if (headBuf[sock] == tailBuf[sock])
- {
- WARN("Avoid to Overwrite data [%d-%d]!\n", headBuf[sock], tailBuf[sock]);
- if (headBuf[sock] != 0)
- --headBuf[sock];
- else
- headBuf[sock] = MAX_PBUF_STORED-1;
- }
- INFO_UTIL("Insert[%d]: %p:%d-%d [%d,%d]\n", sock, p, q->tot_len, p[0], headBuf[sock], tailBuf[sock]);
- }
- return p;
-}
-
-void dumpPbuf(uint8_t sock)
-{
- unsigned char index = tailBuf[sock];
- printk("headBuf=%d tailBuf=%d\n", headBuf[sock], tailBuf[sock]);
- do {
- if (pBufStore[index][sock].data != NULL)
- {
- printk("%d] pcb:%p Buf: %p Len:%d\n", pBufStore[index][sock].idx, pBufStore[index][sock].pcb,
- pBufStore[index][sock].data, pBufStore[index][sock].len);
- }
- ++index;
- if (index == MAX_PBUF_STORED)
- index = 0;
- }while (index!=headBuf[sock]);
-}
-
-tData* get_pBuf(uint8_t sock)
-{
- if (IS_BUF_EMPTY(sock))
- return NULL;
-
- if (IS_BUF_AVAIL(sock))
- {
- tData* p = &(pBufStore[tailBuf[sock]][sock]);
- INFO_UTIL_VER("%p [%d,%d]\n", p, headBuf[sock], tailBuf[sock]);
- return p;
- }
- return NULL;
-}
-
-void freetData(void * buf, uint8_t sock)
-{
- if (buf==NULL)
- {
- WARN("Buf == NULL!");
- return;
- }
-
- pBufStore[tailBuf[sock]][sock].data = NULL;
- pBufStore[tailBuf[sock]][sock].len = 0;
- pBufStore[tailBuf[sock]][sock].idx = 0;
- pBufStore[tailBuf[sock]][sock].pcb = 0;
-
- if (++tailBuf[sock] == MAX_PBUF_STORED)
- tailBuf[sock] = 0;
- INFO_UTIL("%p [%d,%d]\n", buf, headBuf[sock], tailBuf[sock]);
- free(buf);
-}
-
-void freetDataIdx(uint8_t idxBuf, uint8_t sock)
-{
- if (idxBuf >=MAX_PBUF_STORED)
- {
- WARN("idxBuf out of range: %d\n", idxBuf);
- return;
- }
-
- void * buf = pBufStore[idxBuf][sock].data;
-
- INFO_UTIL("%p idx:%d\n", buf, idxBuf);
-
- free(buf);
-
- pBufStore[idxBuf][sock].data = 0;
- pBufStore[idxBuf][sock].len = 0;
- pBufStore[idxBuf][sock].idx = 0;
- pBufStore[idxBuf][sock].pcb = 0;
-}
-
-
-void ack_recved(void* pcb, int len);
-
-void ackAndFreeData(void* pcb, int len, uint8_t sock, uint8_t* data)
-{
- INFO_TCP("Ack pcb:%p len:%d sock:%d data:%p\n", pcb, len, sock, data);
- if (!IS_UDP_SOCK(sock))
- ack_recved(pcb, len);
- if (data != NULL)
- freetData(data, sock);
-}
-
-
-bool isAvailTcpDataByte(uint8_t sock)
-{
- tData* p = get_pBuf(sock);
-
- if (p != NULL)
- {
- INFO_UTIL_VER("check:%d %d %p\n",p->idx, p->len, p->data);
- if (p->idx == p->len)
- {
- INFO_UTIL("Free %p other buf %d tail:%d head:%d\n",
- p->data, IS_BUF_AVAIL(sock), tailBuf[sock], headBuf[sock]);
- ackAndFreeData(p->pcb, p->len, sock, p->data);
- return (IS_BUF_AVAIL(sock));
- }else{
- return true;
- }
- }
- return false;
-}
-
-uint16_t getAvailTcpDataByte(uint8_t sock)
-{
- uint16_t len = calcMergeLen(sock);
- INFO_UTIL_VER("Availabled data: %d\n", len);
- return len;
-}
-
-
-bool getTcpDataByte(uint8_t sock, uint8_t* payload, uint8_t peek)
-{
- // ref field in struct pbuf has been used as index pointer for byte data
- tData* p = get_pBuf(sock);
-
- if (p != NULL)
- {
- if (p->idx < p->len)
- {
- uint8_t* buf = (uint8_t*)p->data;
- if (peek)
- *payload = buf[p->idx];
- else
- *payload = buf[p->idx++];
- INFO_UTIL_VER("get:%d %p %d\n",p->idx, p->data, *payload);
- if (p->idx == p->len)
- ackAndFreeData(p->pcb, p->len, sock, p->data);
- return true;
- }else{
- ackAndFreeData(p->pcb, p->len, sock, p->data);
- }
- }
- return false;
-}
-
-bool getTcpData(uint8_t sock, void** payload, uint16_t* len)
-{
- tData* p = NULL;
- p = get_pBuf(sock);
- if (p != NULL)
- {
- *payload = p->data;
- *len = p->len;
- return true;
- }
- return false;
-}
-
-bool freeTcpData(uint8_t sock)
-{
- tData* p = NULL;
- p = get_pBuf(sock);
- if (p != NULL)
- {
- ackAndFreeData(p->pcb, p->len, sock, p->data);
- return true;
- }
- return false;
-}
-
-void freeAllTcpData(uint8_t sock)
-{
- tData* p = NULL;
- do{
- p = get_pBuf(sock);
- if (p != NULL)
- freetData(p->data, sock);
- }while(p!=NULL);
-}
-
-
diff --git a/firmwares/wifishield/wifiHD/src/ard_utils.h b/firmwares/wifishield/wifiHD/src/ard_utils.h
deleted file mode 100644
index 323b328..0000000
--- a/firmwares/wifishield/wifiHD/src/ard_utils.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * ard_utils.h
- *
- * Created on: Jul 4, 2010
- * Author: mlf by Metodo2 srl
- */
-
-#ifndef ARD_UTILS_H_
-#define ARD_UTILS_H_
-
-#include "gpio.h"
-#include "debug.h"
-#include "ARDUINO/arduino.h"
-#define INIT_SIGNAL_FOR_SPI() gpio_disable_pin_pull_up(ARDUINO_HANDSHAKE_PIN);
-#define BUSY_FOR_SPI() gpio_set_gpio_pin(ARDUINO_HANDSHAKE_PIN)
-#define AVAIL_FOR_SPI() gpio_clr_gpio_pin(ARDUINO_HANDSHAKE_PIN)
-
-#define LED0_UP() gpio_set_gpio_pin(LED0_GPIO)
-#define LED0_DN() gpio_clr_gpio_pin(LED0_GPIO)
-#define LED0_TL() gpio_tgl_gpio_pin(LED0_GPIO)
-#define LED1_UP() gpio_set_gpio_pin(LED1_GPIO)
-#define LED1_DN() gpio_clr_gpio_pin(LED1_GPIO)
-#define LED1_TL() gpio_tgl_gpio_pin(LED1_GPIO)
-#define LED2_UP() gpio_set_gpio_pin(LED2_GPIO)
-#define LED2_DN() gpio_clr_gpio_pin(LED2_GPIO)
-#define LED2_TL() gpio_tgl_gpio_pin(LED2_GPIO)
-
-#ifdef _DEBUG_
-#define SIGN0_UP LED0_UP
-#define SIGN0_DN LED0_DN
-#define SIGN0_TL LED0_TL
-#define SIGN1_UP LED1_UP
-#define SIGN1_DN LED1_DN
-#define SIGN1_TL LED1_TL
-#define SIGN2_UP LED2_UP
-#define SIGN2_DN LED2_DN
-#define SIGN2_TL LED2_TL
-
-#define DEB_PIN_UP(X) gpio_set_gpio_pin(DEB##X##_PIN_GPIO)
-#define DEB_PIN_DN(X) gpio_clr_gpio_pin(DEB##X##_PIN_GPIO)
-#define DEB_PIN_ENA(X) gpio_enable_gpio_pin(DEB##X##_PIN_GPIO)
-#define DEB_PIN_TOGGLE(X) gpio_tgl_gpio_pin(DEB##X##_PIN_GPIO)
-#define DEB_PIN_TRIGGER(X) DEB_PIN_DN(X); DEB_PIN_UP(X);
-
-
-#else
-#define SIGN0_UP()
-#define SIGN0_DN()
-#define SIGN0_TL()
-#define SIGN1_UP()
-#define SIGN1_DN()
-#define SIGN1_TL()
-#define SIGN2_UP()
-#define SIGN2_DN()
-#define SIGN2_TL()
-
-#define DEB_PIN_UP(X)
-#define DEB_PIN_DN(X)
-#define DEB_PIN_ENA(X)
-#define DEB_PIN_TOGGLE(X)
-#define DEB_PIN_TRIGGER(X)
-
-//#define TOGGLE_SIG0
-#endif
-
-#define DELAY_450NS asm volatile("nop")
-#define DELAY_1uS DELAY_450NS; DELAY_450NS;
-#define TOGGLE_SIG0() SIGN0_UP(); DELAY_450NS;SIGN0_DN();
-
-
-#define LINK_LED_OFF LED0_UP
-#define ERROR_LED_OFF LED1_UP
-#define DATA_LED_OFF LED2_UP
-
-#define LINK_LED_ON LED0_DN
-#define ERROR_LED_ON LED1_DN
-#define DATA_LED_ON LED2_DN
-
-#define LINK_LED_BL LED0_TL
-#define ERROR_LED_BL LED1_TL
-#define DATA_LED_BL LED2_TL
-
-
-#define CREATE_HEADER_REPLY(REPLY, RECV, NUM_PARAMS)\
- REPLY[0] = RECV[0]; \
- REPLY[1] = RECV[1] | REPLY_FLAG; \
- REPLY[2] = NUM_PARAMS;
-
-#define CREATE_HEADER_REPLY_WAIT(REPLY, RECV, NUM_PARAMS)\
- REPLY[0] = RECV[0]; \
- REPLY[1] = RECV[1] | WAIT_FLAG; \
- REPLY[2] = NUM_PARAMS;
-
-
-#define END_HEADER_REPLY(REPLY, TOT_LEN, COUNT)\
- REPLY[TOT_LEN] = END_CMD; \
- REPLY[TOT_LEN+1] = 0; \
- COUNT=TOT_LEN+1;
-
-#define RETURN_ERR_REPLY(RECV,REPLY,COUNT) \
- {uint8_t err = 0; return ack_reply_cb(RECV,REPLY,&err,COUNT);}
-
-#define CHECK_ARD_NETIF(RECV,REPLY,COUNT) \
- if (ard_netif == NULL) \
- { uint8_t err = 0; return ack_reply_cb(RECV,REPLY,&err,COUNT); }
-
-#define PUT_LONG_IN_BYTE_HO(LONG, BYTE, IDX) { \
- uint32_t _long = LONG; \
- BYTE[IDX] = 4; \
- BYTE[IDX+1] = (uint8_t)(_long & 0xff); \
- BYTE[IDX+2] = (uint8_t)((_long & 0xff00)>>8); \
- BYTE[IDX+3] = (uint8_t)((_long & 0xff0000)>>16); \
- BYTE[IDX+4] = (uint8_t)((_long & 0xff000000)>>24); \
-}
-
-#define PUT_LONG_IN_BYTE_NO(LONG, BYTE, IDX) { \
- uint32_t _long = LONG; \
- BYTE[IDX] = 4; \
- BYTE[IDX+4] = (uint8_t)(_long & 0xff); \
- BYTE[IDX+3] = (uint8_t)((_long & 0xff00)>>8); \
- BYTE[IDX+2] = (uint8_t)((_long & 0xff0000)>>16); \
- BYTE[IDX+1] = (uint8_t)((_long & 0xff000000)>>24); \
-}
-
-
-#define PUT_DATA_INT(INT, BYTE, IDX) { \
- uint16_t _int = INT; \
- BYTE[IDX] = 2; \
- BYTE[IDX+1] = (uint8_t)((_int & 0xff00)>>8); \
- BYTE[IDX+2] = (uint8_t)(_int & 0xff); \
-}
-
-#define PUT_DATA_INT_NO(INT, BYTE, IDX) { \
- uint16_t _int = INT; \
- BYTE[IDX] = 2; \
- BYTE[IDX+2] = (uint8_t)((_int & 0xff00)>>8); \
- BYTE[IDX+1] = (uint8_t)(_int & 0xff); \
-}
-
-#define PUT_DATA_BYTE(DATA, BYTE, IDX) { \
- BYTE[IDX] = 1; \
- BYTE[IDX+1] = (uint8_t)DATA; \
-}
-
-#define PUT_BUFDATA_BYTE(BUF, BUFLEN, BYTE, IDX) { \
- BYTE[IDX] = (uint8_t)(BUFLEN & 0xff); \
- uint16_t i = 0; \
- for (; i<BUFLEN; ++i) \
- BYTE[IDX+1+i]=BUF[i]; \
-}
-
-#define PUT_BUFDATA_INT(BUF, BUFLEN, BYTE, IDX) { \
- BYTE[IDX] = (uint8_t)((BUFLEN & 0xff00)>>8); \
- BYTE[IDX+1] = (uint8_t)(BUFLEN & 0xff); \
- uint16_t i = 0; \
- for (; i<BUFLEN; ++i) \
- BYTE[IDX+2+i]=BUF[i]; \
-}
-
-
-#define PUT_BUFDATA_BYTE_REV(BUF, BUFLEN, BYTE, IDX) { \
- BYTE[IDX] = (uint8_t)(BUFLEN & 0xff); \
- uint16_t i = 0; \
- for (; i<BUFLEN; ++i) \
- BYTE[IDX+1+i]=BUF[BUFLEN-i-1]; \
-}
-
-#define GET_DATA_LONG(INT32, BUF) \
- uint32_t INT32 = ((*(BUF))<<24) + ((*(BUF+1))<<16) + ((*(BUF+2))<<8) + (*(BUF+3));
-
-#define GET_DATA_INT(INT16, BUF) \
- uint16_t INT16 = ((*(BUF))<<8) + (*(BUF+1));
-
-#define GET_DATA_BYTE(BYTE, BUF) \
- uint8_t BYTE = (*(BUF));
-
-#define CHECK_PARAM_LEN(PARAM, LEN) ((PARAM!=NULL)&&(PARAM->paramLen == LEN))
-
-#define NEXT_PARAM(PARAM) \
- do { \
- if (PARAM!=NULL){ \
- PARAM=(tParam*)((uint8_t*)PARAM+PARAM->paramLen+1); \
- GET_PARAM_BYTE(PARAM, end) \
- if (end == END_CMD) WARN("End of cmd params", PARAM); \
- } \
- }while(0);
-
-#define GET_PARAM_LONG(PARAM, LONG) \
- uint32_t LONG = 0; \
- if CHECK_PARAM_LEN(PARAM, 4) { \
- tLongParam* s = (tLongParam*)PARAM; \
- LONG = s->param; \
- }
-
-#define GET_PARAM_INT(PARAM, INT) \
- uint16_t INT = 0; \
- if CHECK_PARAM_LEN(PARAM, 2) { \
- tIntParam* s = (tIntParam*)PARAM; \
- INT = s->param; \
- }
-
-#define GET_PARAM_BYTE(PARAM, BYTE) \
- uint8_t BYTE = 0; \
- if CHECK_PARAM_LEN(PARAM, 1) { \
- tByteParam* s = (tByteParam*)PARAM; \
- BYTE = s->param; \
- }
-
-#define GET_PARAM_NEXT(TYPE, PARAM, DATA) \
- GET_PARAM_##TYPE(PARAM, DATA) \
- NEXT_PARAM(PARAM)
-
-#ifdef _SPI_STATS_
-#define STATSPI_TIMEOUT_ERROR() \
- statSpi.timeoutIntErr++; \
- statSpi.rxErr++; \
- statSpi.lastError = SPI_TIMEOUT_ERROR; \
- statSpi.status = spi_getStatus(ARD_SPI);
-
-#define STATSPI_DISALIGN_ERROR() \
- statSpi.frameDisalign++; \
- statSpi.rxErr++; \
- statSpi.lastError = SPI_ALIGN_ERROR; \
- statSpi.status = spi_getStatus(ARD_SPI);
-
-#define STATSPI_OVERRIDE_ERROR() \
- statSpi.overrideFrame++; \
- statSpi.rxErr++; \
- statSpi.lastError = SPI_OVERRIDE_ERROR; \
- statSpi.status = spi_getStatus(ARD_SPI);
-
-#define STATSPI_TX_TIMEOUT_ERROR() \
- statSpi.timeoutErr++; \
- statSpi.txErr++; \
- statSpi.lastError = SPI_ERROR_TIMEOUT; \
- statSpi.status = spi_getStatus(ARD_SPI);
-#else
-#define STATSPI_TIMEOUT_ERROR()
-#define STATSPI_TX_TIMEOUT_ERROR()
-#define STATSPI_DISALIGN_ERROR()
-#define STATSPI_OVERRIDE_ERROR()
-#endif
-
-#define DUMP_TCP_STATE(TTCP) do {\
- int i = getCurrClientConnId(); \
- INFO_TCP("%d] ttcp:%p tpcb:%p state:%d lpcb:%p state:%d left:%d sent:%d\n", \
- i, TTCP, TTCP->tpcb[i], (TTCP->tpcb[i])?TTCP->tpcb[i]->state:0, \
- TTCP->lpcb, (TTCP->lpcb)?TTCP->lpcb->state:0, \
- (TTCP->tpcb[i])?TTCP->left[i]:0, (TTCP->tpcb[i])?TTCP->buff_sent[i]:0); \
- } while(0);
-
-#define Mode2Str(_Mode) ((_Mode==0)?"TRANSMIT":"RECEIVE")
-#define ProtMode2Str(_protMode) ((_protMode==0)?"TCP":"UDP")
-
-typedef struct sData
-{
- uint8_t* data;
- uint16_t len;
- uint16_t idx;
- void* pcb;
-}tData;
-
-struct pbuf;
-
-void init_pBuf();
-
-uint8_t* insert_pBuf(struct pbuf* q, uint8_t sock, void* _pcb);
-
-uint8_t* insertBuf(uint8_t sock, uint8_t* buf, uint16_t len);
-
-uint8_t* mergeBuf(uint8_t sock, uint8_t** buf, uint16_t* _len);
-
-uint16_t clearBuf(uint8_t sock);
-
-tData* get_pBuf(uint8_t sock);
-
-void freetData(void * buf, uint8_t sock);
-
-void freetDataIdx(uint8_t idxBuf, uint8_t sock);
-
-bool isBufAvail();
-
-bool getTcpData(uint8_t sock, void** payload, uint16_t* len);
-
-bool getTcpDataByte(uint8_t sock, uint8_t* payload, uint8_t peek);
-
-uint16_t getAvailTcpDataByte(uint8_t sock);
-
-bool isAvailTcpDataByte(uint8_t sock);
-
-uint8_t freeTcpData(uint8_t sock);
-
-void freeAllTcpData(uint8_t sock);
-
-#endif /* ARD_UTILS_H_ */
diff --git a/firmwares/wifishield/wifiHD/src/avr32_spi.c b/firmwares/wifishield/wifiHD/src/avr32_spi.c
deleted file mode 100644
index 739fb28..0000000
--- a/firmwares/wifishield/wifiHD/src/avr32_spi.c
+++ /dev/null
@@ -1,394 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <gpio.h>
-#include <intc.h>
-#include <string.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <wl_spi.h>
-#include <printf-stdarg.h>
-#include <board_init.h>
-
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
-__attribute__((__interrupt__)) void avr32_irq_handler(void);
-void owl_spi_mdelay(uint32_t ms);
-
-int owl_spi_init(U8 *flags)
-{
-#ifdef _ASSERT_ENABLE_ /* To silence warning if Assert() macro is empty */
- volatile avr32_pm_t *pm = &AVR32_PM;
-#endif
-
- volatile avr32_spi_t *spi = &WL_SPI;
-#if WL_SPI_CS == 1
- volatile avr32_spi_csr1_t* CSR = &spi->CSR1;
-#elif WL_SPI_CS == 2
- volatile avr32_spi_csr2_t* CSR = &spi->CSR2;
-#elif WL_SPI_CS == 3
- volatile avr32_spi_csr3_t* CSR = &spi->CSR3;
-#elif SPI_CS == 0
- volatile avr32_spi_csr0_t* CSR = &spi->CSR0;
-#endif
-
-#ifndef WITH_NO_DMA
- volatile avr32_pdca_channel_t *pdca_tx = &AVR32_PDCA.channel[0];
- volatile avr32_pdca_channel_t *pdca_rx = &AVR32_PDCA.channel[1];
-#endif
-
-#ifndef WL_IRQ_PIN
- *flags = SPI_FLAG_POLL;
-#else
- *flags = 0;
-#endif
-
-
-#ifdef WL_IRQ_PIN
- /* input, irq */
- gpio_enable_gpio_pin(WL_IRQ_PIN);
- gpio_enable_pin_pull_up(WL_IRQ_PIN);
-#endif
-
-//#ifdef WL_RESET_PIN
-// /* reset pin */
-// gpio_enable_gpio_pin(WL_RESET_PIN);
-// gpio_set_gpio_pin(WL_RESET_PIN);
-//#endif
-
-
-#ifdef WL_POWER_PIN
- /* power off the device */
- gpio_enable_gpio_pin(WL_POWER_PIN);
- gpio_set_gpio_pin(WL_POWER_PIN);
-#endif
-
-#ifdef WL_SHUTDOWN_PIN
- gpio_enable_gpio_pin(WL_SHUTDOWN_PIN);
-
-#ifdef WL_NO_INTERNAL_RESET /* never defined for SPB104/SPB105 */
- gpio_clr_gpio_pin(WL_SHUTDOWN_PIN);
-#endif
-
-#ifdef WL_EXTERNAL_RESET
- gpio_enable_gpio_pin(WL_RESET_PIN);
-#endif
-
-#endif /* WL_SHUTDOWN_PIN */
-
-#ifdef WL_POWER_PIN
- /* power on the device */
- gpio_clr_gpio_pin(WL_POWER_PIN);
-#endif
-
-#ifdef WL_SHUTDOWN_PIN
-
-#ifdef WL_NO_INTERNAL_RESET /* never defined for SPB104/SPB105 */
- owl_spi_mdelay(5);
- gpio_set_gpio_pin(WL_SHUTDOWN_PIN);
-
-#elif WL_EXTERNAL_RESET
- owl_spi_mdelay(5);
- gpio_set_gpio_pin(WL_SHUTDOWN_PIN);
-
- owl_spi_mdelay(20);
- //delay_ms(10); //2ms
-
- /* reset pin */
- gpio_set_gpio_pin(WL_RESET_PIN);
-
-#else
-
- /* The shutdown pin will go high once the device is powered */
- {
-#define SHUTDOWN_TIMEOUT 350
- uint32_t shutdown_timer = 0;
- while (gpio_get_pin_value(WL_SHUTDOWN_PIN) == 0) {
- if (shutdown_timer > SHUTDOWN_TIMEOUT)
- {
- printk("Timeout WL Shutdown\n");
- return -1;
- }
- owl_spi_mdelay(5);
- shutdown_timer += 5;
- }
- }
-#endif /* WL_NO_INTERNAL_RESET */
-
-#else
- /* We need to make a guess about the time needed to power the device,
- * this will depend on the hardware design.
- */
- owl_spi_mdelay(5);
-#endif /* WL_SHUTDOWN_PIN */
-
- /* Note: SPI0 clock enabled at reset in pm->pbamask (see 13.6.3) */
- Assert(pm->pbamask & (1 << 5));
-
- /* Note: GPIO clock enabled at reset in pm->pbamask (see 13.6.3) */
- Assert(pm->pbamask & (1 << 1));
-#ifdef WL_IRQ_PIN
- /* 22.4.7: "In every port there are four interrupt lines
- * connected to the interrupt controller. Every eigth
- * interrupts in the port are ored together to form an
- * interrupt line."
- *
- * WL_IRQ_# = (WL_IRQ_PIN / 32) * 4 + (WL_IRQ_PIN / 8) % 4
- * 62 => 1 * 4 + 3 = 7
- */
- INTC_register_interrupt(&avr32_irq_handler, WL_IRQ, AVR32_INTC_INT0);
-#endif
-
-#ifndef WITH_NO_DMA
- INTC_register_interrupt(&avr32_irq_handler, AVR32_PDCA_IRQ_0,
- AVR32_INTC_INT0);
- INTC_register_interrupt(&avr32_irq_handler, AVR32_PDCA_IRQ_1,
- AVR32_INTC_INT0);
- pdca_tx->IER.terr = 1;
- pdca_rx->IER.terr = 1;
-#endif
-
-#ifdef WL_SPI_CLOCK_DIVIDER
- CSR->scbr = WL_SPI_CLOCK_DIVIDER;
-#else
- CSR->scbr = 2;
-#endif
-
- /* Use max width of TDR register, 16 bit transfers */
- CSR->bits = 0x8;
-
- /* Make sure that we can hold CS low until transfer is completed, e.g
- * LASTXFER is set in TDR.
- */
- CSR->csaat = 1;
-
- /* NRG component requires clock polarity high */
- CSR->cpol = 1;
-
-
-#ifdef WL_IRQ_PIN
- /* make sure to clear any pending bits in ifr here. */
- gpio_clear_pin_interrupt_flag(WL_IRQ_PIN);
-#endif
-
- return 0;
-}
-
-#ifndef WITH_NO_DMA
-static void dma_txrx(const U8* in, U8* out, U16 len)
-{
- volatile avr32_pdca_channel_t *pdca_tx = &AVR32_PDCA.channel[0];
- volatile avr32_pdca_channel_t *pdca_rx = &AVR32_PDCA.channel[1];
-
- /* setup tx */
- pdca_tx->mar = (U32) in;
- pdca_tx->PSR.pid = WL_PDCA_PID_TX;
- pdca_tx->tcr = len / 2;
- pdca_tx->MR.size = 1; /* 2-byte */
- pdca_tx->IER.trc = 1;
-
- /* setup rx */
- pdca_rx->mar = (U32) out;
- pdca_rx->PSR.pid = WL_PDCA_PID_RX;
- pdca_rx->tcr = len / 2;
- pdca_rx->MR.size = 1; /* 2-byte */
- pdca_rx->IER.trc = 1;
-
- /* start dma's. for some reason rx must be started prior to tx */
- pdca_rx->CR.ten = 1;
- pdca_tx->CR.ten = 1;
-
- /* blocking wait until transfer is completed */
- while (!(pdca_tx->ISR.trc && pdca_rx->ISR.trc));
-}
-#endif
-
-/* access data using byte pointers since we might get unaligned
- * data from lwip. The cpu will issue a data abort if we try
- * to access data which is not properly aligned. See data sheet.
- *
- * Note that fifo_txrx() doesn't handle the case where len is not a
- * multiple of two bytes properly.
- *
- * However, there is no actual case where len is odd at the same time
- * as the "out" pointer is non-NULL; therefore I think that in practice,
- * we'll not write beyond the end of the "out" array.
- *
- * The extra unknown byte fetched from the in pointer will be discarded
- * by the device since a length field included in the packet header will inform
- * the device of the actual number of valid bytes (this implementation is
- * kind of hidden inside the library).
- */
-static void fifo_txrx(const U8 *in, U8* out, U16 len)
-{
- volatile avr32_spi_t *spi = &WL_SPI;
- UnionCPtr in_ptr;
- UnionPtr out_ptr;
- U32 sr;
-
- Assert(len);
-
- in_ptr.u8ptr = in;
- out_ptr.u8ptr = out;
-
- while (len) {
- U16 rdr;
- union {
- avr32_spi_tdr_t TDR;
- U32 tdr;
- } reg = { { 0 } };
-
- while (!spi->SR.tdre);
- while (!spi->SR.txempty);
-
- /* prepare tx data register contents */
- if (in_ptr.u8ptr) {
- reg.TDR.td |= (in_ptr.u8ptr[0] << 8) | in_ptr.u8ptr[1];
- in_ptr.u16ptr++;
- }
- else
- reg.TDR.td |= 0xffff;
-
- /* perform tx */
- spi->tdr = reg.tdr;
-
- /* wait until rx is ready */
- while (!spi->SR.rdrf);
-
- /* fetch rx data */
- rdr = spi->RDR.rd;
- if (out_ptr.u8ptr) {
- out_ptr.u8ptr[0] = (rdr >> 8) & 0xff;
- out_ptr.u8ptr[1] = rdr & 0xff;
- out_ptr.u16ptr++;
- }
-
- if (len >= 2)
- len -= 2;
- else
- len = 0;
- }
-
- sr = spi->sr;
- Assert(!(sr & AVR32_SPI_SR_OVRES_MASK));
- Assert(!(sr & AVR32_SPI_SR_MODF_MASK));
-}
-
-void owl_spi_txrx(const U8 *in, U8* out, U16 len)
-{
-#ifndef WITH_NO_DMA
- static uint8_t buf[MAX_BLOCK_LEN];
-
- /* unaligned data or odd number of bytes, then skip dma */
- if ((U32) in % 4 || (U32) out % 4 || len % 2) {
- fifo_txrx(in, out, len);
- } else {
- if (in == NULL) {
- memset(buf, 0xff, len);
- in = buf;
- } else if (out == NULL) {
- out = buf;
- }
- dma_txrx(in, out, len);
- }
-#else
- fifo_txrx(in, out, len);
-#endif
-}
-
-void owl_spi_irq(U8 enable)
-{
-#ifdef WL_IRQ_PIN
-
- if (enable)
- gpio_enable_pin_interrupt(WL_IRQ_PIN, GPIO_PIN_CHANGE);
- else
- gpio_disable_pin_interrupt(WL_IRQ_PIN);
-#endif
-}
-
-void owl_spi_cs(U8 enable)
-{
- volatile avr32_spi_t *spi = &WL_SPI;
-
- /*
- * PCS = xxx0 => NPCS[3:0] = 1110
- * PCS = xx01 => NPCS[3:0] = 1101
- * PCS = x011 => NPCS[3:0] = 1011
- * PCS = 0111 => NPCS[3:0] = 0111
- * PCS = 1111 => forbidden (no peripheral is selected)
- */
-
- if (enable)
-#if WL_SPI_CS == 2
- spi->MR.pcs = 0x3; /* cs2 */
-#elif WL_SPI_CS == 1
- spi->MR.pcs = 0x1; /* cs1 */
-#elif WL_SPI_CS == 3
- spi->MR.pcs = 0x7; /* cs3 */
-#elif WL_SPI_CS == 0
- spi->MR.pcs = 0x0; /* cs0 */
-#endif
- else
- spi->MR.pcs = 0xf;
-}
-
-void owl_spi_mdelay(uint32_t ms)
-{
- volatile int a = 0;
- int i;
- for (i = 0; i < ms * 5000; i++)
- a++;
-}
-
-__attribute__((__interrupt__)) void avr32_irq_handler(void)
-{
-#ifndef WITH_NO_DMA
- volatile avr32_pdca_channel_t *pdca_tx = &AVR32_PDCA.channel[0];
- volatile avr32_pdca_channel_t *pdca_rx = &AVR32_PDCA.channel[1];
-
- /* tx xfer complete */
- if (pdca_tx->IMR.trc && pdca_tx->ISR.trc) {
- pdca_tx->IDR.trc = 1;
- pdca_tx->CR.tdis = 1; /* disable tx xfer */
- }
-
- /* rx xfer complete */
- if (pdca_rx->IMR.trc && pdca_rx->ISR.trc) {
- pdca_rx->IDR.trc = 1;
- pdca_rx->CR.tdis = 1; /* disable rx xfer */
- }
-#endif
-
-#ifdef WL_IRQ_PIN
- if (gpio_get_pin_interrupt_flag(WL_IRQ_PIN)) {
- gpio_clear_pin_interrupt_flag(WL_IRQ_PIN);
- wl_spi_irq();
- }
-#endif
-
-}
diff --git a/firmwares/wifishield/wifiHD/src/board_init.c b/firmwares/wifishield/wifiHD/src/board_init.c
deleted file mode 100644
index a2a191e..0000000
--- a/firmwares/wifishield/wifiHD/src/board_init.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <pm.h>
-#include <flashc.h>
-#include <intc.h>
-#include <board.h>
-#include <gpio.h>
-#ifdef WITH_SDRAM
- #include <sdramc.h>
-#endif
-#include <board_init.h>
-#include <spi.h>
-
-#ifndef NO_SERIAL /* The bootloader does not want serial port
- * code */
-#include <usart.h>
-
-int board_putchar(char c)
-{
- int timeout = USART_DEFAULT_TIMEOUT;
- if (c == '\n') {
- do {
- if (!timeout--)
- return USART_FAILURE;
- } while (usart_write_char(&CONFIG_CONSOLE_PORT, '\r') !=
- USART_SUCCESS);
-
- timeout = USART_DEFAULT_TIMEOUT;
- }
-
- do {
- if (!timeout--)
- return USART_FAILURE;
- } while (usart_write_char(&CONFIG_CONSOLE_PORT, c) != USART_SUCCESS);
-
- return USART_SUCCESS;
-}
-#endif /* NO_SERIAL */
-/**
- * Initializes the MCU system clocks.
- */
-static void
-init_sys_clocks(void)
-{
-
- /* if we don't run on OSC0 don't switch to it since we don't know
- * what kind of oscillator we have here
- */
-
-#if OSC == 0
- /* switch to OSC0 to speed up the booting */
- pm_switch_to_osc0(&AVR32_PM, FOSC0, OSC0_STARTUP);
-#endif
-
-
-#ifndef USE_PLL
- return;
-#endif
-
- /* For audio, ee have to use OSC1 on to generate the correct clockrate
- * for the SSC
- */
-#if OSC == 1
- /* start oscillator1 */
- pm_enable_osc1_crystal(&AVR32_PM, FOSC1);
- pm_enable_clk1(&AVR32_PM, OSC1_STARTUP);
-#endif
-
- /* configure pll multipliers */
- pm_pll_setup(&AVR32_PM,
- 0, /* pll */
- PLL_MUL, /* mul */
- 1, /* div */
- OSC, /* osc */
- 16); /* lockcount */
-
- /* set PLL operating range and divider (fpll = fvco/2)
- * this gives PLL output = 66 MHz (62.0928 MHz for EVK1105/OSC1)
- */
- pm_pll_set_option(&AVR32_PM,
- 0, /* pll */
- 1, /* pll_freq */
- 1, /* pll_div2 */
- 0); /* pll_wbwdisable. */
-
-
- /* start PLL0 and wait for the lock */
- pm_pll_enable(&AVR32_PM, 0);
- pm_wait_for_pll0_locked(&AVR32_PM);
-
- /* Set all peripheral clocks torun at master clock rate */
- pm_cksel(&AVR32_PM,
- 0, /* pbadiv */
- 0, /* pbasel */
- 0, /* pbbdiv */
- 0, /* pbbsel */
- 0, /* hsbdiv */
- 0); /* hsbsel */
-
- /* Set one waitstate for the flash */
- flashc_set_wait_state(1);
-
- /* Switch to PLL0 as the master clock */
- pm_switch_to_clock(&AVR32_PM, AVR32_PM_MCCTRL_MCSEL_PLL0);
-}
-
-static void init_exceptions(void)
-{
- extern void _evba;
- Set_system_register(AVR32_EVBA, (int)&_evba);
- Enable_global_exception();
-}
-
-static void init_hmatrix(void)
-{
- union {
- unsigned long scfg;
- avr32_hmatrix_scfg_t SCFG;
- } u_avr32_hmatrix_scfg = {
- AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH]
- };
- u_avr32_hmatrix_scfg.SCFG.defmstr_type =
- AVR32_HMATRIX_DEFMSTR_TYPE_LAST_DEFAULT;
- AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH] =
- u_avr32_hmatrix_scfg.scfg;
-}
-
-static void init_interrupts(void)
-{
- INTC_init_interrupts();
- Enable_global_interrupt();
-}
-
-static void init_spi(void)
-{
-#if defined(WL_SPI)
- int i;
-#endif
-
-
-#if defined(AT45DBX_SPI)
- static const gpio_map_t AT45DBX_SPI_GPIO_MAP = {
- { AT45DBX_SPI_SCK_PIN, AT45DBX_SPI_SCK_FUNCTION },
- { AT45DBX_SPI_MISO_PIN, AT45DBX_SPI_MISO_FUNCTION },
- { AT45DBX_SPI_MOSI_PIN, AT45DBX_SPI_MOSI_FUNCTION },
- { AT45DBX_SPI_NPCS2_PIN, AT45DBX_SPI_NPCS2_FUNCTION },
- };
-#endif
-
-
-#if defined(WL_SPI)
- const gpio_map_t WL_SPI_GPIO_MAP = {
-#if defined(WL_SPI_NPCS0)
- WL_SPI_NPCS0,
-#endif
- WL_SPI_NPCS, WL_SPI_MISO, WL_SPI_MOSI, WL_SPI_SCK
- };
-#endif
-
-#if defined(WL_SPI) || defined(AT45DBX_SPI)
- spi_options_t spiOptions = {
- .modfdis = 1 /* only param used by spi_initMaster() */
- };
-#endif
-
-#if defined(AT45DBX_SPI)
- gpio_enable_module(AT45DBX_SPI_GPIO_MAP,
- sizeof(AT45DBX_SPI_GPIO_MAP) /
- sizeof(AT45DBX_SPI_GPIO_MAP[0]));
- spi_initMaster(AT45DBX_SPI, &spiOptions);
- spi_selectionMode(AT45DBX_SPI, 0, 0, 0);
-#endif
-
-#if defined(WL_SPI)
- /* same pins might be initialized twice here */
- gpio_enable_module(WL_SPI_GPIO_MAP,
- sizeof(WL_SPI_GPIO_MAP) /
- sizeof(WL_SPI_GPIO_MAP[0]));
- for (i = 0; i < sizeof(WL_SPI_GPIO_MAP)/sizeof(WL_SPI_GPIO_MAP[0]); i++)
- gpio_enable_pin_pull_up(WL_SPI_GPIO_MAP[i].pin);
-
- /* same SPI controller might be initialized again */
- spi_initMaster(&WL_SPI, &spiOptions);
- spi_selectionMode(&WL_SPI, 0, 0, 0);
-#endif
-
-#if defined(AT45DBX_SPI)
- spi_enable(AT45DBX_SPI);
-
- /* put up flash reset pin */
- gpio_set_gpio_pin(AT45DBX_CHIP_RESET);
-#endif
-
-#if defined(WL_SPI)
- spi_enable(&WL_SPI);
-#endif
-}
-
-
-static void init_rs232(void)
-{
-#ifndef NO_SERIAL
-#if defined(BOARD_RS232_0)
- const gpio_map_t BOARD_RS232_0_GPIO_MAP = {
- BOARD_RS232_0_TX,
- BOARD_RS232_0_RX,
-#if defined(BOARD_RS232_0_RTS) && defined (BOARD_RS232_0_CTS)
- BOARD_RS232_0_RTS,
- BOARD_RS232_0_CTS
-#endif
-
- };
-#endif
-
-#if defined(BOARD_RS232_1)
- const gpio_map_t BOARD_RS232_1_GPIO_MAP = {
- BOARD_RS232_1_TX,
- BOARD_RS232_1_RX
-#if defined(BOARD_RS232_1_RTS) && defined (BOARD_RS232_1_CTS)
- BOARD_RS232_1_RTS,
- BOARD_RS232_1_CTS
-#endif
- };
-#endif
-
-#if defined(BOARD_RS232_0)
- gpio_enable_module(BOARD_RS232_0_GPIO_MAP,
- sizeof(BOARD_RS232_0_GPIO_MAP) /
- sizeof(BOARD_RS232_0_GPIO_MAP[0]));
-#endif
-
-#if defined(BOARD_RS232_1)
- gpio_enable_module(BOARD_RS232_1_GPIO_MAP,
- sizeof(BOARD_RS232_1_GPIO_MAP) /
- sizeof(BOARD_RS232_1_GPIO_MAP[0]));
-#endif
-#endif /* NO_SERIAL */
-}
-
-static void init_printk(void)
-{
-#ifndef NO_SERIAL
-#if defined(CONFIG_CONSOLE_PORT)
- const usart_options_t usart_options = {
- .baudrate = 57600,
- .charlength = 8,
- .paritytype = USART_NO_PARITY,
- .stopbits = USART_1_STOPBIT,
- .channelmode = USART_NORMAL_CHMODE
- };
- usart_init_rs232(&CONFIG_CONSOLE_PORT, &usart_options, FPBA_HZ);
-#endif
-#endif /* NO_SERIAL */
-}
-
-void board_init(void)
-{
-
- init_exceptions();
- init_hmatrix();
- init_sys_clocks();
- init_interrupts();
-
- init_rs232();
- init_printk();
-
-#ifdef WITH_SDRAM
- sdramc_init(FHSB_HZ);
-#endif
- init_spi();
-}
diff --git a/firmwares/wifishield/wifiHD/src/board_init.h b/firmwares/wifishield/wifiHD/src/board_init.h
deleted file mode 100644
index 05a6609..0000000
--- a/firmwares/wifishield/wifiHD/src/board_init.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef STARTUP_H
-#define STARTUP_H
-
-#include <board.h>
-#include <wl_api.h> /* defines SPB104, SPB105 */
-
-void board_init(void);
-
-
-
-/*
- *
- * EVK1100
- * ---------------------------------------------------------------------------
- *
- */
-#if BOARD == EVK1100
-
-/* USART0 physical assignment */
-#define BOARD_RS232_0 AVR32_USART1
-#define BOARD_RS232_0_TX \
- { AVR32_USART1_TXD_0_0_PIN, AVR32_USART1_TXD_0_0_FUNCTION }
-#define BOARD_RS232_0_RX \
- { AVR32_USART1_RXD_0_0_PIN, AVR32_USART1_RXD_0_0_FUNCTION }
-
-/* USART1 physical assignment */
-#define BOARD_RS232_1 AVR32_USART0
-#define BOARD_RS232_1_TX \
- { AVR32_USART0_TXD_0_0_PIN, AVR32_USART0_TXD_0_0_FUNCTION }
-#define BOARD_RS232_1_RX \
- { AVR32_USART0_RXD_0_0_PIN, AVR32_USART0_RXD_0_0_FUNCTION },
-
-/* Clocks */
-#define USE_PLL
-#define OSC 0
-#define PLL_MUL 10
-
-/* Wifi (SPB104 only) */
-#if defined(EXT_BOARD)
-#if EXT_BOARD == SPB104
-#define WL_SPI AVR32_SPI1 /* Pin 8 NC, so no irq support if using SD-slot */
-#define WL_SPI_CLOCK_DIVIDER 3 /* due to adapter */
-#define WL_PDCA_PID_TX AVR32_PDCA_PID_SPI1_TX
-#define WL_PDCA_PID_RX AVR32_PDCA_PID_SPI1_RX
-#define WL_SPI_CS 1
-#define WL_SPI_NPCS0 { AVR32_SPI1_NPCS_0_0_PIN, AVR32_SPI1_NPCS_0_0_FUNCTION }
-#define WL_SPI_NPCS { AVR32_SPI1_NPCS_1_0_PIN, AVR32_SPI1_NPCS_1_0_FUNCTION }
-#define WL_SPI_MISO { AVR32_SPI1_MISO_0_0_PIN, AVR32_SPI1_MISO_0_0_FUNCTION }
-#define WL_SPI_MOSI { AVR32_SPI1_MOSI_0_0_PIN, AVR32_SPI1_MOSI_0_0_FUNCTION }
-#define WL_SPI_SCK { AVR32_SPI1_SCK_0_0_PIN, AVR32_SPI1_SCK_0_0_FUNCTION }
-#endif
-#endif /* EXT_BOARD */
-
-
-
-
-
-
-/*
- *
- * EVK1101
- * ---------------------------------------------------------------------------
- *
- */
-#elif BOARD == EVK1101
-
-/* USART0 physical assignment */
-#define BOARD_RS232_0 AVR32_USART1
-#define BOARD_RS232_0_TX \
- { AVR32_USART1_TXD_0_0_PIN, AVR32_USART1_TXD_0_0_FUNCTION }
-#define BOARD_RS232_0_RX \
- { AVR32_USART1_RXD_0_0_PIN, AVR32_USART1_RXD_0_0_FUNCTION }
-
-/* Clocks */
-#define USE_PLL
-#define OSC 0
-#define PLL_MUL 9
-
-/* Wifi (SPB104 only) */
-#if defined(EXT_BOARD)
-#if EXT_BOARD == SPB104 /* Pin 8 NC, so no irq support if using SD-slot */
-#define WL_SPI AVR32_SPI
-#define WL_SPI_CLOCK_DIVIDER 3 /* due to adapter */
-#define WL_PDCA_PID_TX AVR32_PDCA_PID_SPI_TX
-#define WL_PDCA_PID_RX AVR32_PDCA_PID_SPI_RX
-#define WL_SPI_CS 1
-#if EXT_BOARD == SPB105
- #define WL_SHUTDOWN_PIN AVR32_PIN_PA06
- #define WL_POWER_PIN AVR32_PIN_PA30
-#endif
-#define WL_SPI_NPCS0 { AVR32_SPI_NPCS_0_0_PIN, AVR32_SPI_NPCS_0_0_FUNCTION }
-#define WL_SPI_NPCS { AVR32_SPI_NPCS_1_0_PIN, AVR32_SPI_NPCS_1_0_FUNCTION }
-#define WL_SPI_MISO { AVR32_SPI_MISO_0_0_PIN, AVR32_SPI_MISO_0_0_FUNCTION }
-#define WL_SPI_MOSI { AVR32_SPI_MOSI_0_0_PIN, AVR32_SPI_MOSI_0_0_FUNCTION }
-#define WL_SPI_SCK { AVR32_SPI_SCK_0_0_PIN, AVR32_SPI_SCK_0_0_FUNCTION }
-#endif
-#endif /* EXT_BOARD */
-
-
-
-
-
-
-
-/*
- *
- * EVK1104
- * ---------------------------------------------------------------------------
- *
- */
-#elif BOARD == EVK1104 /* EVK1104 */
-
-/* USART0 physical assignment */
-#define BOARD_RS232_0 AVR32_USART1
-#define BOARD_RS232_0_TX \
- { AVR32_USART1_TXD_0_0_PIN, AVR32_USART1_TXD_0_0_FUNCTION }
-#define BOARD_RS232_0_RX \
- { AVR32_USART1_RXD_0_0_PIN, AVR32_USART1_RXD_0_0_FUNCTION }
-
-/* Clocks */
-#define USE_PLL
-#define OSC 0
-#define PLL_MUL 9 /* for some reason we cant use 66 MHz */
-
-/* Wifi (SDIO: SPB104 only; SPI: SPB105 only) */
-#if defined(EXT_BOARD)
-#if EXT_BOARD == SPB105
- #define WL_SPI AVR32_SPI0
- #define WL_PDCA_PID_TX AVR32_PDCA_PID_SPI0_TX
- #define WL_PDCA_PID_RX AVR32_PDCA_PID_SPI0_RX
- #define WL_SPI_CLOCK_DIVIDER 3 /* due to adapter */
- #define WL_SHUTDOWN_PIN AVR32_PIN_PA17 /* Pin 8 on RF-head -> Pin 4 on wifi */
- #define WL_IRQ_PIN AVR32_PIN_PA18 /* Pin 6 on RF-head -> Pin 3 on wifi */
- #define WL_IRQ AVR32_GPIO_IRQ_2
- #define WL_SPI_CS 3
- #define WL_SPI_NPCS { AVR32_SPI0_NPCS_3_1_PIN, AVR32_SPI0_NPCS_3_1_FUNCTION }
- #define WL_SPI_MISO { AVR32_SPI0_MISO_0_0_PIN, AVR32_SPI0_MISO_0_0_FUNCTION }
- #define WL_SPI_MOSI { AVR32_SPI0_MOSI_0_0_PIN, AVR32_SPI0_MOSI_0_0_FUNCTION }
- #define WL_SPI_SCK { AVR32_SPI0_SCK_0_0_PIN, AVR32_SPI0_SCK_0_0_FUNCTION }
-#elif EXT_BOARD == SPB104
- #ifdef SDIO_SLOT_A
- #define WL_SDIO_CLK { AVR32_MCI_CLK_0_PIN, AVR32_MCI_CLK_0_FUNCTION }
- #define WL_SDIO_CMD { AVR32_MCI_CMD_0_PIN, AVR32_MCI_CMD_0_FUNCTION }
- #define WL_SDIO_DAT0 { AVR32_MCI_DATA_0_PIN, AVR32_MCI_DATA_0_FUNCTION }
- #define WL_SDIO_DAT1 { AVR32_MCI_DATA_1_PIN, AVR32_MCI_DATA_1_FUNCTION }
- #define WL_SDIO_DAT2 { AVR32_MCI_DATA_2_PIN, AVR32_MCI_DATA_2_FUNCTION }
- #define WL_SDIO_DAT3 { AVR32_MCI_DATA_3_PIN, AVR32_MCI_DATA_3_FUNCTION }
- #else
- #define WL_SDIO_CLK { AVR32_MCI_CLK_0_PIN, AVR32_MCI_CLK_0_FUNCTION }
- #define WL_SDIO_CMD { AVR32_MCI_CMD_1_0_PIN, AVR32_MCI_CMD_1_0_FUNCTION }
- #define WL_SDIO_DAT0 { AVR32_MCI_DATA_8_0_PIN, AVR32_MCI_DATA_8_0_FUNCTION }
- #define WL_SDIO_DAT1 { AVR32_MCI_DATA_9_0_PIN, AVR32_MCI_DATA_9_0_FUNCTION }
- #define WL_SDIO_DAT2 { AVR32_MCI_DATA_10_0_PIN, AVR32_MCI_DATA_10_0_FUNCTION }
- #define WL_SDIO_DAT3 { AVR32_MCI_DATA_11_0_PIN, AVR32_MCI_DATA_11_0_FUNCTION }
- #endif
-#endif
-#endif /* EXT_BOARD */
-
-
-
-
-
-
-
-/*
- *
- * EVK1105
- * ---------------------------------------------------------------------------
- *
- */
-#elif BOARD == EVK1105 /* EVK1105 */
-
-
-/* USART0 physical assignment */
-#define BOARD_RS232_0 AVR32_USART0
-#define BOARD_RS232_0_TX \
- { AVR32_USART0_TXD_0_0_PIN, AVR32_USART0_TXD_0_0_FUNCTION }
-#define BOARD_RS232_0_RX \
- { AVR32_USART0_RXD_0_0_PIN, AVR32_USART0_RXD_0_0_FUNCTION }
-
-/* Clocks */
-#define USE_PLL
-#define OSC 1
-#define PLL_MUL 10
-
-/* Wifi SPB104/SPB105 */
-#if defined(EXT_BOARD)
- #define WL_SPI AVR32_SPI0
- #define WL_PDCA_PID_TX AVR32_PDCA_PID_SPI0_TX
- #define WL_PDCA_PID_RX AVR32_PDCA_PID_SPI0_RX
- #if EXT_BOARD == SPB105
- #define WL_SPI_CLOCK_DIVIDER 3 /* due to adapter */
- #define WL_SHUTDOWN_PIN AVR32_PIN_PB31 /* Pin 8 on RF-head -> Pin 4 on wifi */
- #define WL_IRQ_PIN AVR32_PIN_PB30 /* Pin 6 on RF-head -> Pin 3 on wifi */
- #define WL_IRQ AVR32_GPIO_IRQ_7
- #define WL_SPI_CS 2
- #elif EXT_BOARD == SPB104
- #define WL_SPI_CLOCK_DIVIDER 3 /* due to adapter */
- #define WL_SPI_CS 1
- #endif
- #define WL_SPI_NPCS0 { AVR32_SPI0_NPCS_0_0_PIN, AVR32_SPI0_NPCS_0_0_FUNCTION }
- #if WL_SPI_CS == 1
- #define WL_SPI_NPCS { AVR32_SPI0_NPCS_1_0_PIN, AVR32_SPI0_NPCS_1_0_FUNCTION }
- #elif WL_SPI_CS == 2
- #define WL_SPI_NPCS { AVR32_SPI0_NPCS_2_0_PIN, AVR32_SPI0_NPCS_2_0_FUNCTION }
- #endif
- #define WL_SPI_MISO { AVR32_SPI0_MISO_0_0_PIN, AVR32_SPI0_MISO_0_0_FUNCTION }
- #define WL_SPI_MOSI { AVR32_SPI0_MOSI_0_0_PIN, AVR32_SPI0_MOSI_0_0_FUNCTION }
- #define WL_SPI_SCK { AVR32_SPI0_SCK_0_0_PIN, AVR32_SPI0_SCK_0_0_FUNCTION }
-#endif /* EXT_BOARD */
-
-/*
- *
- * ARDUINO
- * ---------------------------------------------------------------------------
- *
- */
-#elif BOARD == ARDUINO /* ARDUINO */
-
-
-/* USART0 physical assignment */
-#define BOARD_RS232_1 AVR32_USART1
-#define BOARD_RS232_1_TX \
- { AVR32_USART1_TXD_0_0_PIN, AVR32_USART1_TXD_0_0_FUNCTION }
-#define BOARD_RS232_1_RX \
- { AVR32_USART1_RXD_0_0_PIN, AVR32_USART1_RXD_0_0_FUNCTION }
-
-/* Clocks */
-#define USE_PLL
-#define OSC 0
-#define PLL_MUL 8
-
-#define WL_SPI AVR32_SPI1
-#define WL_PDCA_PID_TX AVR32_PDCA_PID_SPI1_TX
-#define WL_PDCA_PID_RX AVR32_PDCA_PID_SPI1_RX
-
-#define WL_SHUTDOWN_PIN AVR32_PIN_PA09
-#define WL_IRQ_PIN AVR32_PIN_PA03
-/*
-* WL_IRQ_# = (WL_IRQ_PIN / 32) * 4 + (WL_IRQ_PIN / 8) % 4
- * 3 => 0 * 4 + 0 = 0
-*/
-#define WL_IRQ AVR32_GPIO_IRQ_0
-#define WL_SPI_CS 0
-#define WL_RESET_PIN AVR32_PIN_PA07
-#define WL_EXTERNAL_RESET 1
-
-
-#define WL_SPI_NPCS { AVR32_SPI1_NPCS_0_0_PIN, AVR32_SPI1_NPCS_0_0_FUNCTION }
-#define WL_SPI_MISO { AVR32_SPI1_MISO_0_0_PIN, AVR32_SPI1_MISO_0_0_FUNCTION }
-#define WL_SPI_MOSI { AVR32_SPI1_MOSI_0_0_PIN, AVR32_SPI1_MOSI_0_0_FUNCTION }
-#define WL_SPI_SCK { AVR32_SPI1_SCK_0_0_PIN, AVR32_SPI1_SCK_0_0_FUNCTION }
-
-#endif /* EVKxxxx */
-
-
-
-
-
-
-
-
-
-#if OSC == 0
-# define FOSC FOSC0 /* 12 MHz */
-#else
-# define FOSC FOSC1 /* 11.2896 MHz */
-#endif
-
-#ifdef USE_PLL
-# define FMCK_HZ ((FOSC * (PLL_MUL + 1)) / 2)
-#else
-# define FMCK_HZ FOSC
-#endif
-
-#define FCPU_HZ FMCK_HZ
-#define FHSB_HZ FCPU_HZ
-#define FPBB_HZ FMCK_HZ
-#define FPBA_HZ FMCK_HZ
-
-
-#ifndef CONFIG_CONSOLE_PORT
-#define CONFIG_CONSOLE_PORT BOARD_RS232_1
-#endif
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/cmd_wl.c b/firmwares/wifishield/wifiHD/src/cmd_wl.c
deleted file mode 100644
index a210dec..0000000
--- a/firmwares/wifishield/wifiHD/src/cmd_wl.c
+++ /dev/null
@@ -1,731 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <top_defs.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <cmd_wl.h>
-
-#include <wl_cm.h>
-#include <console.h>
-#include <util.h>
-#include <lwip_setup.h>
-
-#include "lwip/netif.h"
-#include "lwip/dns.h"
-#include "debug.h"
-#include "ard_spi.h"
-#include "ard_tcp.h"
-#include "ard_utils.h"
-
-extern void showTTCPstatus();
-
-#define _DNS_CMD_
-
-/**
- *
- */
-cmd_state_t
-cmd_scan(int argc, char* argv[], void* ctx)
-{
- /* Note that the scan results presented will
- * be from the last scan, not this one.
- */
- wl_scan();
- print_network_list();
- return CMD_DONE;
-}
-
-cmd_state_t
-cmd_debug_toggle(int argc, char* argv[], void* ctx)
-{
- extern uint8_t tr_data_trace;
- if ( argc != 2 ) {
- printk("usage: dt <1|0>\n");
- return CMD_DONE;
- }
- if ( '0' == argv[1][0] ) {
- tr_data_trace = 0;
- }
- if ( '1' == argv[1][0] ) {
- tr_data_trace = 1;
- }
- return CMD_DONE;
-}
-
-/**
- *
- */
-cmd_state_t
-cmd_connect(int argc, char* argv[], void* ctx)
-{
- struct wl_ssid_t ssid;
- char desired_ssid[WL_SSID_MAX_LENGTH];
- int len = 0;
-
- if (argc < 2) {
- printk("usage: connect <ssid>\n");
- return CMD_DONE;
- }
-
- len = join_argv(desired_ssid, sizeof desired_ssid, argc - 1, argv + 1);
- if (0 == len) {
- return CMD_DONE;
- }
-
- memcpy(ssid.ssid, desired_ssid, len);
- ssid.len = len;
- /* Start connection manager */
- wl_cm_set_network(&ssid, NULL);
- wl_cm_start();
- return CMD_DONE;
-}
-
-#ifdef WFE_6_12
-cmd_state_t
-cmd_ibss(int argc, char* argv[], void* ctx)
-{
- struct wl_ssid_t ssid;
- char desired_ssid[WL_SSID_MAX_LENGTH];
- uint8_t channel;
- enum wl_auth_mode amode;
- int len = 0;
- wl_err_t ret;
-
- if ( 2 == argc && ! strncmp(argv[1], "none", 4) ) {
- printk("Disconnecting\n");
- wl_disconnect();
- wl_cm_stop();
- return CMD_DONE;
- }
- if (argc < 4) {
- printk("usage: ibss <ssid> <channel (1-14)> <wep_enable (1|0)>\n");
- printk(" ibss none\n");
- return CMD_DONE;
- }
-
- channel = atoi(argv[argc - 2]);
- if ( *argv[argc - 1] == '0' ) {
- amode = AUTH_MODE_OPEN_SYSTEM;
- } else {
- amode = AUTH_MODE_SHARED_KEY;
- }
- len = join_argv(desired_ssid, sizeof desired_ssid, argc - 3, argv + 1);
- if (0 == len) {
- return CMD_DONE;
- }
- if ( channel > 14 ) {
- printk("Invalid channel %d\n", (int)channel);
- return CMD_DONE;
- }
- printk("%s : Start with ssid \"%s\", channel %d\n", __func__,
- desired_ssid, channel);
- memcpy(ssid.ssid, desired_ssid, len);
- ssid.len = len;
- /* Stop the connection manager */
- wl_cm_stop();
-
- ret = wl_start_adhoc_net(ssid, channel, amode);
- switch (ret) {
- case WL_BUSY:
- printk("Driver is busy. Already connected?\n");
- break;
- case WL_RETRY:
- printk("Driver is busy. Retry operation\n");
- break;
- case WL_OOM:
- printk("Out of memory\n");
- break;
- case WL_INVALID_ARGS:
- printk("Invalid argument\n");
- break;
- case WL_SUCCESS:
- break;
- default:
- printk("Unknown error %d\n", ret);
- break;
- }
- return CMD_DONE;
-}
-#endif
-/**
- *
- */
-cmd_state_t
-cmd_set_ip(int argc, char* argv[], void* ctx)
-{
- struct ctx_server *hs = ctx;
- struct net_cfg *ncfg = &(hs->net_cfg);
- struct ip_addr lwip_addr;
- struct netif *nif = ncfg->netif;
-
- if (argc == 2 &&
- (strncmp(argv[1], "none", 4) == 0)) {
- ncfg->dhcp_enabled = DYNAMIC_IP_CONFIG;
-
- return CMD_DONE;
- }
- else if (argc != 4 ) {
- printk("usage: ipconfig <ip> <netmask> <gateway-ip>\n");
- printk(" or : ipconfig none (to enable DHCP)\n");
- return CMD_DONE;
- }
-
- /* IP address */
- lwip_addr = str2ip(argv[1]);
- INFO_SPI("nif:%p lwip_addr=0x%x\n", nif, lwip_addr.addr);
- netif_set_ipaddr(nif, &lwip_addr);
- /* Netmask */
- lwip_addr = str2ip(argv[2]);
- netif_set_netmask(nif, &lwip_addr);
- /* Default Gateway address */
- lwip_addr = str2ip(argv[3]);
- netif_set_gw(nif, &lwip_addr);
- /* Disable DHCP */
- ncfg->dhcp_enabled = STATIC_IP_CONFIG;
-
- return CMD_DONE;
-}
-
-#ifdef WITH_WPA
-
-/**
- *
- */
-cmd_state_t
-cmd_delpass(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: dpass <ssid>\n";
- struct wl_network_t net;
- char desired_ssid[WL_SSID_MAX_LENGTH];
- int len = 0;
-
- if (argc != 2) {
- printk(usage);
- return CMD_DONE;
- }
-
- memset(&net, 0, sizeof net);
- memset(net.bssid.octet, 0xFF, sizeof net.bssid.octet);
-
- len = join_argv(desired_ssid, sizeof desired_ssid, argc - 1, argv + 1);
- if (0 == len) {
- return CMD_DONE;
- }
- memcpy(net.ssid.ssid, desired_ssid, len);
- net.ssid.len = len;
- net.enc_type = ENC_TYPE_AUTO;
- if (wl_clear_passphrase(&net) != WL_SUCCESS) {
- printk("%s : Failed to delete passphrase\n", __func__);
- }
-
- return CMD_DONE;
-}
-
-
-/**
- *
- */
-cmd_state_t
-cmd_setpass(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: wpass <ssid> <passphrase>\n";
- struct wl_network_t net;
- char desired_ssid[WL_SSID_MAX_LENGTH];
- int len = 0;
-
- if (argc < 3) {
- printk(usage);
- return CMD_DONE;
- }
- /* Not really kosher, an ssid may legally contain 0-bytes but
- * the console interface does not deal with that.
- */
- memset(&net, 0, sizeof net);
- memset(net.bssid.octet, 0xFF, sizeof net.bssid.octet);
-
- len = join_argv(desired_ssid, sizeof desired_ssid, argc - 2, argv + 1);
- if (0 == len) {
- return CMD_DONE;
- }
-
- memcpy(net.ssid.ssid, desired_ssid, len);
- net.ssid.len = len;
- net.enc_type = ENC_TYPE_AUTO;
- if (wl_set_passphrase(&net,
- argv[argc - 1],
- strlen(argv[argc - 1]),
- ENC_TYPE_AUTO,
- AUTH_MODE_AUTO)
- != WL_SUCCESS) {
- printk("%s : Failed to add passphrase\n", __func__);
- }
-
- return CMD_DONE;
-}
-#endif
-
-#ifdef _DNS_CMD_
-void foundHost(const char *name, struct ip_addr *ipaddr, void *callback_arg)
-{
- printk("Found Host: name=%s ip=0x%x\n", name, ipaddr->addr);
-}
-
-/**
- *
- */
-cmd_state_t
-cmd_gethostbyname(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: getHost <hostname>\n";
- char hostname[DNS_MAX_NAME_LENGTH];
- struct ip_addr _addr;
- int len = 0;
-
- if (argc < 2) {
- printk(usage);
- return CMD_DONE;
- }
-
- len = join_argv(hostname, sizeof hostname, argc - 1, argv + 1);
- if (0 == len) {
- return CMD_DONE;
- }
- err_t err = dns_gethostbyname(hostname, &_addr, foundHost, NULL);
- if (err == ERR_OK)
- {
- printk("Found Host: name=%s ip=0x%x\n", hostname, _addr.addr);
- }
-
- return CMD_DONE;
-}
-
-/**
- *
- */
-cmd_state_t
-cmd_setDnsServer(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: setdns [1-2] aaa.bbb.ccc.ddd\n";
- struct ip_addr dnsIp;
- int dnsIdx = 0;
-
- if (argc < 3) {
- printk(usage);
- return CMD_DONE;
- }
-
- /* DNS IDX */
- dnsIdx = atoi(argv[1])-1;
- /* IP address */
- dnsIp = str2ip(argv[2]);
-
- printk("Set DNS server %d to %s\n", dnsIdx, ip2str(dnsIp));
- dns_setserver(dnsIdx, &dnsIp);
- struct ip_addr addr1 = dns_getserver(0);
- struct ip_addr addr2 = dns_getserver(1);
-
- printk("==> DNS1: %s\n", ip2str(addr1), addr1);
- printk("==> DNS2: %s\n", ip2str(addr2), addr2);
-
- return CMD_DONE;
-}
-
-/**
- *
- */
-cmd_state_t
-cmd_startSrv(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: startSrv <port> <sock> <tcp(0)/udp(1)>\n";
-
- int port = 0;
- int sock = 0;
- int protMode = 0;
-
- if (argc < 4) {
- printk(usage);
- return CMD_DONE;
- }
-
- /* TCP port */
- port = atoi(argv[1]);
- /* socket index */
- sock = atoi(argv[2]);
- /* Protocol Mode */
- protMode = atoi(argv[3]);
-
- printk("Start %s server on port %d sock %d\n", ProtMode2Str(protMode), port, sock);
- if (start_server_tcp(port, sock, protMode) == -1)
- {
- WARN("Start %s server on port %d sock %d FAILED\n", ProtMode2Str(protMode), port, sock);
- }
- return CMD_DONE;
-}
-
-/**
- *
- */
-cmd_state_t
-cmd_startCli(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: startCli <ipaddr> <port> <sock> <tcp(0)/udp(1)>\n";
- struct ip_addr addr = {0};
- int port = 0;
- int sock = 0;
- int protMode = 0;
-
- if (argc < 5) {
- printk(usage);
- return CMD_DONE;
- }
-
- /* IP address */
- addr = str2ip(argv[1]);
- /* TCP port */
- port = atoi(argv[2]);
- /* socket index */
- sock = atoi(argv[3]);
- /* Protocol Mode */
- protMode = atoi(argv[4]);
-
- printk("Start client on addr 0x%x, port %d sock %d mode %d\n", addr, port, sock, protMode);
- if (start_client_tcp(addr.addr, port, sock, protMode) == -1)
- {
- WARN("Start client on port %d sock %d prot %d mode %d FAILED\n", port, sock, protMode);
- }
- return CMD_DONE;
-}
-
-#endif
-
-
-/**
- *
- */
-cmd_state_t
-cmd_status(int argc, char* argv[], void* ctx)
-{
- struct net_cfg *ncfg = ctx;
- struct wl_network_t* net;
- uint8_t mac[WL_MAC_ADDR_LENGTH];
-
- printk("wl_api version " WL_API_RELEASE_NAME "\n");
- /* print mac address */
- if (wl_get_mac_addr(mac) != WL_SUCCESS) {
- printk("failed to get mac address\n");
- }else{
- printk("hw addr: %s\n", mac2str(mac));
- }
-
- /* print network info */
- net = wl_get_current_network();
- printk("link status: ");
- if (!net) {
- printk("down\n");
-
- }else{
- print_network(net);
- }
-
- /* print ip address */
- if (netif_is_up(netif_default))
- {
- printk("ip addr: %s - ", ip2str(netif_default->ip_addr));
- printk("netmask: %s - ", ip2str(netif_default->netmask));
- printk("gateway: %s\n", ip2str(netif_default->gw));
- }
- else
- printk("ip interface is down\n");
- printk("dhcp : ");
- if (ncfg->dhcp_enabled == DYNAMIC_IP_CONFIG) {
- printk("enabled\n");
- }
- else {
- printk("disabled\n");
- }
- struct ip_addr addr1 = dns_getserver(0);
- struct ip_addr addr2 = dns_getserver(1);
-
- printk("DNS: %s - ", ip2str(addr1));
- printk("%s\n", ip2str(addr2));
-
- showTTCPstatus();
- return CMD_DONE;
-}
-
-#ifdef ADD_CMDS
-/**
- *
- */
-cmd_state_t
-cmd_power(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: powersave <on|off>\n";
-
- if (argc < 2) {
- printk(usage);
- return CMD_DONE;
- }
-
- if (!strcmp(argv[1], "on")) {
- if (wl_enable_ps() != WL_SUCCESS) {
- printk("could not enable power save\n");
- return CMD_DONE;
- }
- return CMD_DONE;
- }
- else if(!strcmp(argv[1], "off")) {
- if (wl_disable_ps() != WL_SUCCESS) {
- printk("could not disable power save\n");
- return CMD_DONE;
- }
- return CMD_DONE;
- }
-
- printk(usage);
- return CMD_DONE;
-}
-#endif
-
-#ifdef ADD_CMDS
-/**
- *
- */
-cmd_state_t
-cmd_psconf(int argc, char* argv[], void* ctx)
-{
- const char *usage =
- "usage: psconf <use_ps_poll> (0/1 default 0)\n" \
- " <traffic_timeout> ([ms] default 10)\n" \
- " <ps_delay> ([ms] default 5000)\n"\
- " <rx_all_dtim> (0/1 default 1)\n"\
- " <listen_interval> ([beacons] default 20)\n";
-
- uint8_t use_ps_poll;
- uint32_t traffic_timeout;
- uint32_t ps_delay;
- uint8_t rx_all_dtim;
- uint16_t listen_interval;
-
- if (argc < 6) {
- printk(usage);
- return CMD_DONE;
- }
-
- use_ps_poll = atoi(argv[1]);
- traffic_timeout = atoi(argv[2]);
- ps_delay = atoi(argv[3]);
- rx_all_dtim = atoi(argv[4]);
- listen_interval = atoi(argv[5]);
-
- if (use_ps_poll > 1) {
- printk(usage);
- return CMD_DONE;
- }
-
- if (rx_all_dtim > 1) {
- printk(usage);
- return CMD_DONE;
- }
-
- if (wl_conf_ps(use_ps_poll, traffic_timeout, ps_delay,
- rx_all_dtim, listen_interval) != WL_SUCCESS)
- printk("configuration failed\n");
-
- return CMD_DONE;
-}
-#endif
-
-/**
- *
- */
-cmd_state_t
-cmd_setkey(int argc, char* argv[], void* ctx)
-{
- int idx, len;
- char key[13];
- struct wl_mac_addr_t bssid;
- const char *usage = "usage: setkey <key_idx (0-3)> <key in hex>\n\t "\
- "or: setkey none\n";
-
- memset(&bssid.octet, 0xff, sizeof bssid.octet);
- if (argc == 2 && strcmp(argv[1], "none") == 0) {
- printk("Deleting WEP keys\n");
- wl_delete_wep_key(0, &bssid);
- wl_delete_wep_key(1, &bssid);
- wl_delete_wep_key(2, &bssid);
- wl_delete_wep_key(3, &bssid);
- return CMD_DONE;
- }
- if (argc < 3) {
- printk(usage);
- return CMD_DONE;
- }
- idx = atoi(argv[1]);
- len = strlen(argv[2]);
- /* Pass phrase? */
- if ( 5 == len || 13 == len ) {
- strncpy(key, argv[2], len);
- }
- /* Otherwise it's a hex string */
- else {
- len = ascii_to_key(key, argv[2]);
- if (0 == len || idx > 3 || idx < 0 || (idx == 0 && *argv[1] != '0')) {
- printk(usage);
- return CMD_DONE;
- }
- if (len != 5 && len != 13) {
- printk(" WEP key must be 10 (WEP-40) or 26 (WEP-104) digits\n");
- return CMD_DONE;
- }
- }
- wl_add_wep_key(idx, len, key, &bssid);
- wl_set_default_wep_key(idx);
-
- return CMD_DONE;
-}
-
-cmd_state_t
-cmd_debug(int argc, char* argv[], void* ctx)
-{
- int level;
- const char *usage = "usage: debug <section> <level>\n\t"\
- "section: init, cm, spi, tcp , util, warn\n\t"
- "level : 0 (off), 1 (on), 2 (verbose)\n\t"
- "or: debug print/on/off\n";
-
- if (argc == 2 && strcmp(argv[1], "off") == 0) {
- printk("Debug OFF\n");
- INIT_DEBUG_VARIABLES()
- return CMD_DONE;
- }else if (argc == 2 && strcmp(argv[1], "print") == 0) {
- PRINT_DEBUG_VARIABLES()
- return CMD_DONE;
- }else if (argc == 2 && strcmp(argv[1], "on") == 0) {
- printk("Debug ON\n");
- TURNON_DEBUG_VARIABLES();
- return CMD_DONE;
- }
- if (argc < 3) {
- printk(usage);
- return CMD_DONE;
- }
- level = atoi(argv[2]);
- if (argc == 3 && strcmp(argv[1], "init") == 0) {
- CHECK_DEBUG_LEVEL(level, INFO_INIT_FLAG);
- }else if (argc == 3 && strcmp(argv[1], "spi") == 0) {
- CHECK_DEBUG_LEVEL(level, INFO_SPI_FLAG);
- }else if (argc == 3 && strcmp(argv[1], "tcp") == 0) {
- CHECK_DEBUG_LEVEL(level, INFO_TCP_FLAG);
- }else if (argc == 3 && strcmp(argv[1], "cm") == 0) {
- CHECK_DEBUG_LEVEL(level, INFO_CM_FLAG);
- }else if (argc == 3 && strcmp(argv[1], "util") == 0) {
- CHECK_DEBUG_LEVEL(level, INFO_UTIL_FLAG);
- }else if (argc == 3 && strcmp(argv[1], "warn") == 0) {
- CHECK_DEBUG_LEVEL(level, INFO_WARN_FLAG);
- }
- return CMD_DONE;
-}
-
-extern void dumpPbuf(uint8_t sock);
-
-/**
- *
- */
-cmd_state_t
-cmd_dumpBuf(int argc, char* argv[], void* ctx)
-{
- const char *usage = "usage: dumpPbuf [sock]\n\t"\
- "sock: socket Number\n";
-
- if (argc == 2 && strcmp(argv[1], "all") == 0) {
- printk("Dump All Buffers\n");
- int i = 0;
- for (; i<MAX_SOCK_NUM; ++i)
- {
- printk("Socket: %d\n", i);
- dumpPbuf(i);
- }
- }else if (argc == 2) {
- uint8_t sock = atoi(argv[1]);
- printk("Socket: %d\n", sock);
- dumpPbuf(sock);
- }else {
- printk(usage);
- }
- return CMD_DONE;
-}
-
-
-
-/**
- *
- */
-cmd_state_t
-cmd_sendUdpData(int argc, char* argv[], void* ctx)
-{
- const char pattern[]={'M', 'I', 'M', 'L', 'F', 'D'};
- const char* pattern2[]={"Prova", "1234567890","FineTest"};
- const char *usage = "usage: sendUdp [sock]\n\t"\
- "sock: socket Number\n";
-
- if (argc < 2)
- printk(usage);
-
- if (argc >= 2) {
-
- uint8_t sock = atoi(argv[1]);
- printk("Socket: %d\n", sock);
-
- if (argc >= 3) {
- uint8_t patternType = atoi(argv[2]);
- printk("PatternType: %d\n", patternType);
- if (patternType == 1)
- {
- insertBuf(sock, (uint8_t*)pattern2[0], strlen(pattern2[0]));
- insertBuf(sock, (uint8_t*)pattern2[1], strlen(pattern2[1]));
- insertBuf(sock, (uint8_t*)pattern2[2], strlen(pattern2[2]));
- }
- if (patternType == 2)
- {
- mergeBuf(sock, NULL, NULL);
- }
- }else{
- if (sock < MAX_SOCK_NUM)
- {
- sendUdpData(getTTCP(sock, TTCP_MODE_TRANSMIT), (uint8_t*)pattern, sizeof(pattern)/sizeof(char));
- }
- }
-
- }
- return CMD_DONE;
-}
diff --git a/firmwares/wifishield/wifiHD/src/cmd_wl.h b/firmwares/wifishield/wifiHD/src/cmd_wl.h
deleted file mode 100644
index a1d1a0f..0000000
--- a/firmwares/wifishield/wifiHD/src/cmd_wl.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef CMD_CM_H
-#define CMD_CM_H
-
-#include <console.h>
-#include "netif/wlif.h"
-
-/*! A pointer to a struct of type "struct net_cfg" should be passed as
- * the ctx pointer in the callbacks below. The struct must have a
- * single instance per netif.
- */
-#define _DNS_CMD_
-
-cmd_state_t cmd_scan(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_connect(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_set_ip(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_setkey(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_status(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_power(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_psconf(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_setpass(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_delpass(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_debug(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_debug_toggle(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_statSpi(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_resetStatSpi(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_gethostbyname(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_setDnsServer(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_startSrv(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_startCli(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_dumpBuf(int argc, char* argv[], void* ctx);
-cmd_state_t cmd_sendUdpData(int argc, char* argv[], void* ctx);
-#ifdef WFE_6_12
-cmd_state_t cmd_ibss(int argc, char* argv[], void* ctx);
-#endif
-
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/console.c b/firmwares/wifishield/wifiHD/src/console.c
deleted file mode 100644
index e54943f..0000000
--- a/firmwares/wifishield/wifiHD/src/console.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <top_defs.h>
-#include <string.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <printf-stdarg.h>
-#include <console.h>
-#include <board_init.h>
-#include <usart.h>
-
-#define MAX_CMD_CONSOLE_NUM 15
-struct {
- cmd_cb_t cb;
- const char* str;
- void* ctx;
-} cmd_list[MAX_CMD_CONSOLE_NUM] = { { 0 } };
-
-#ifndef CMD_MAX_LEN
-#define CMD_MAX_LEN 80
-#endif
-extern int board_putchar(char c);
-int io_getc(char *c)
-{
- int ci;
- int status;
- status = usart_read_char(&CONFIG_CONSOLE_PORT, &ci);
- if (status == USART_RX_EMPTY)
- return 1;
-
- if (status == USART_RX_ERROR) {
- CONFIG_CONSOLE_PORT.cr = AVR32_USART_CR_RSTSTA_MASK;
- return 1;
- }
-
- if (ci == '\r') {
- board_putchar('\n');
- /* Echo char. */
- } else if (ci == '\b') {
- board_putchar(ci);
- board_putchar(' ');
- board_putchar(ci);
- } else
- board_putchar(ci);
-
-
- *c = ci;
- return 0;
-}
-
-static uint8_t is_initialized = 0;
-
-char* console_gets()
-{
- static char buf[CMD_MAX_LEN];
- static int pos = 0;
- char c;
-
- for (;;) {
- if (io_getc(&c))
- return NULL;
-
- if (c == '\r' || c == '\n') {
- buf[pos] = 0;
- pos = 0;
- return buf;
- }
- if (c == '\b') {
- pos -= 1;
- if (pos < 0) pos = 0;
- buf[pos] = 0;
- }
- else
- buf[pos++] = c;
- if (pos == sizeof(buf))
- pos = 0;
- }
- return NULL;
-}
-
-int console_add_cmd(const char* str, cmd_cb_t cb, void* ctx)
-{
- uint32_t i;
- for (i = 0; i < ARRAY_SIZE(cmd_list); i++)
- if (!cmd_list[i].cb)
- break;
-
- if (i == ARRAY_SIZE(cmd_list))
- return -1;
-
- cmd_list[i].str = str;
- cmd_list[i].cb = cb;
- cmd_list[i].ctx = ctx;
- return 0;
-}
-
-void console_init(void)
-{
- printk("\n$ ");
- is_initialized = 1;
-}
-
-void console_init_silent(void) {
- is_initialized = 1;
-}
-
-int console_schedule_cmd(char *cmd, int interactive) {
-#define MAX_ARGS 16
- static int argc, i;
- static char* argv[MAX_ARGS];
- static char *buf;
- static enum { INPUT, RUN } state = INPUT;
-
- switch (state) {
- case INPUT: {
- char* token;
- if (NULL == cmd) {
- return 0;
- }
- buf = strdup(cmd);
- if (!buf)
- return 0;
- if (!strlen(buf)) {
- interactive ? printk("$ ") : 0;
- free(buf);
- return 0;
- }
-#ifdef WIFI_DEBUG_ON
- printk("%s : Scheduling command \"%s\"\n",
- __func__,
- buf);
-#endif
- for (i = 0; i < ARRAY_SIZE(cmd_list); i++)
- if(cmd_list[i].str && !strncmp(cmd_list[i].str, buf, min(strlen(cmd_list[i].str), strlen(buf))))
- break;
-
- if (ARRAY_SIZE(cmd_list) == 0) {
- printk("No commands available. Is the WiFi card responding?\n");
- }
- if (i == ARRAY_SIZE(cmd_list)) {
- if (interactive) {
- printk("available commands:\n");
- for (i = 0; i < ARRAY_SIZE(cmd_list); i++)
- if (cmd_list[i].cb)
- printk(" %s\n", cmd_list[i].str);
- printk("$ ");
- }
- free(buf);
- return 0;
- }
-
- for (token = strtok(buf, " "); token != NULL;
- token = strtok(NULL, " ")) {
- argv[argc] = token;
- argc++;
- if (argc == MAX_ARGS)
- break;
- }
-
- state = RUN;
- } /* fall through */
-
- case RUN: {
- cmd_state_t s = cmd_list[i].cb(argc, argv, cmd_list[i].ctx);
- if (s == CMD_INPROGRESS)
- return 1;
-
- interactive ? printk("$ ") : 0;
-
- argc = 0;
- memset(argv, 0, sizeof argv);
- free(buf);
- state = INPUT;
- }
- }
-
- return 1;
-}
-
-
-void console_poll(void)
-{
- char *buf;
- buf = console_gets();
- console_schedule_cmd(buf, 1);
-}
diff --git a/firmwares/wifishield/wifiHD/src/console.h b/firmwares/wifishield/wifiHD/src/console.h
deleted file mode 100644
index 79bfedb..0000000
--- a/firmwares/wifishield/wifiHD/src/console.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef CONSOLE_H
-#define CONSOLE_H
-
-
-typedef enum {
- CMD_DONE,
- CMD_INPROGRESS
-} cmd_state_t;
-
-typedef cmd_state_t (*cmd_cb_t)(int argc, char* argv[], void* ctx);
-
-void console_init(void);
-void console_init_silent(void);
-char* console_gets(void);
-int console_add_cmd(const char* str, cmd_cb_t cb, void* ctx);
-int console_schedule_cmd(char *cmd, int interactive);
-void console_poll(void);
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/debug.h b/firmwares/wifishield/wifiHD/src/debug.h
deleted file mode 100644
index 154b799..0000000
--- a/firmwares/wifishield/wifiHD/src/debug.h
+++ /dev/null
@@ -1,191 +0,0 @@
-//*********************************************/
-//
-// File: debug.h
-//
-// Author: Domenico La Fauci
-//
-//********************************************/
-
-
-#ifndef Debug_H
-#define Debug_H
-
-#include <stdio.h>
-#include <string.h>
-
-#define INFO_INIT_FLAG 1
-#define INFO_TCP_FLAG 2
-#define INFO_SPI_FLAG 4
-#define INFO_CM_FLAG 8
-#define INFO_UTIL_FLAG 16
-
-#define INFO_D (1<<0xD) // Debug
-#define INFO_E (1<<0xE) // Error
-#define INFO_WARN_FLAG (1<<0xF) // Warning
-#define DEFAULT_INFO_FLAG 0 //INFO_WARN_FLAG
-
-#ifdef _DEBUG_
-#define DEFINE_DEBUG_VARIABLES() \
-uint16_t enableDebug = DEFAULT_INFO_FLAG | INFO_WARN_FLAG; \
-uint16_t verboseDebug = 0; \
-uint16_t dumpDebug = 0; \
-uint16_t pollDebug = 0;
-#else
-#define DEFINE_DEBUG_VARIABLES() \
-uint16_t enableDebug = DEFAULT_INFO_FLAG; \
-uint16_t verboseDebug = 0; \
-uint16_t dumpDebug = 0; \
-uint16_t pollDebug = 0;
-#endif
-
-#define INIT_DEBUG_VARIABLES() \
- enableDebug = DEFAULT_INFO_FLAG | INFO_WARN_FLAG; \
- verboseDebug = 0; \
- dumpDebug = 0; pollDebug = 0;
-
-
-#define PRINT_DEBUG_VARIABLES() \
- printk("Debug enabled: 0x%x\n", enableDebug); \
- printk("Verbose enabled: 0x%x\n", verboseDebug); \
- printk("Dump enabled: 0x%x\n", dumpDebug); \
- printk("POoll enabled: 0x%x\n", pollDebug);
-
-#define TURNON_DEBUG_VARIABLES() \
- enableDebug = 0xff;
-
-extern uint16_t enableDebug;
-extern uint16_t verboseDebug;
-extern uint16_t dumpDebug;
-extern uint16_t pollDebug;
-
-#define ENABLE_DEBUG_LEVEL 1
-#define VERBOSE_DEBUG_LEVEL 2
-#define DUMP_DEBUG_LEVEL 3
-#define POLL_DEBUG_LEVEL 4
-
-#define CHECK_DEBUG(VAR, LEVEL, LEVEL_LIMIT, FLAG) \
- do{ \
- if (LEVEL >= LEVEL_LIMIT) VAR |= FLAG; \
- else VAR &= ~FLAG; \
- }while(0);
-
-#define CHECK_ENA_DEBUG(LEVEL, FLAG) \
- CHECK_DEBUG(enableDebug, LEVEL, ENABLE_DEBUG_LEVEL, FLAG)
-#define CHECK_VERB_DEBUG(LEVEL, FLAG) \
- CHECK_DEBUG(verboseDebug, LEVEL, VERBOSE_DEBUG_LEVEL, FLAG)
-#define CHECK_DUMP_DEBUG(LEVEL, FLAG) \
- CHECK_DEBUG(dumpDebug, LEVEL, DUMP_DEBUG_LEVEL, FLAG)
-#define CHECK_POLL_DEBUG(LEVEL, FLAG) \
- CHECK_DEBUG(pollDebug, LEVEL, POLL_DEBUG_LEVEL, FLAG)
-
-
-#define CHECK_DEBUG_LEVEL(LEVEL, INFO_FLAG) \
- CHECK_ENA_DEBUG(LEVEL, INFO_FLAG) \
- CHECK_VERB_DEBUG(LEVEL, INFO_FLAG) \
- CHECK_DUMP_DEBUG(LEVEL, INFO_FLAG) \
- CHECK_POLL_DEBUG(LEVEL, INFO_FLAG)
-
-#ifdef _INFO_DEBUG_
-#define PRINT_DEBUG(msg, args...) do { \
- printk("[%s] " msg , __func__ , ##args ); \
-} while (0)
-
-#define INFO_DEBUG(msg, args...) do { \
- printk("I-[%s] " msg , __func__ , ##args ); \
-} while (0)
-
-#define WARN_DEBUG(msg, args...) do { \
- printk("W-[%s] " msg , __func__ , ##args ); \
-} while (0)
-
-#else
-do { }while(0);
-#endif
-
-#define IF_DEBUG(X,Y) do { \
-if (enableDebug & INFO_##X##_FLAG) \
-Y; \
-} while (0)
-
-#define IF_DEBUG_VER(X,Y) do { \
-if (verboseDebug & INFO_##X##_FLAG) \
-Y; \
-} while (0)
-
-#define IF_DEBUG_DUMP(X,Y) do { \
-if (dumpDebug & INFO_##X##_FLAG) \
-Y; \
-} while (0)
-
-#define IF_DEBUG_POLL(X,Y) do { \
-if (pollDebug & INFO_##X##_FLAG) {\
-Y; \
-}} while (0)
-
-
-
-#define IF_WARN(Y) IF_DEBUG(WARN,Y)
-#define IF_WARN_VER(Y) IF_DEBUG_VER(WARN,Y)
-#define IF_TCP(Y) IF_DEBUG(TCP,Y)
-#define IF_TCP_VER(Y) IF_DEBUG_VER(TCP,Y)
-#define IF_TCP_POLL(Y) IF_DEBUG_POLL(TCP,Y)
-#define IF_TCP_DUMP(Y) IF_DEBUG_DUMP(TCP,Y)
-#define IF_SPI(Y) IF_DEBUG(SPI,Y)
-#define IF_SPI_VER(Y) IF_DEBUG_VER(SPI,Y)
-#define IF_SPI_DUMP(Y) IF_DEBUG_DUMP(SPI,Y)
-#define IF_SPI_POLL(Y) IF_DEBUG_POLL(SPI,Y)
-#define IF_UTIL(Y) IF_DEBUG(UTIL,Y)
-#define IF_UTIL_VER(Y) IF_DEBUG_VER(UTIL,Y)
-
-#define WARN(msg, args...) IF_DEBUG(WARN,WARN_DEBUG(msg, ##args))
-#define WARN_VER(msg, args...) IF_DEBUG_VER(WARN,WARN_DEBUG(msg, ##args))
-#define WARN_POLL(msg, args...) IF_DEBUG_POLL(WARN,WARN_DEBUG(msg, ##args))
-#if 0 // disable to reduce the size of binary
-#define INFO_INIT(msg, args...) IF_DEBUG(INIT,PRINT_DEBUG(msg, ##args))
-#define INFO_INIT_VER(msg, args...) IF_DEBUG_VER(INIT,PRINT_DEBUG(msg, ##args))
-#else
-#define INFO_INIT(msg, args...)
-#define INFO_INIT_VER(msg, args...)
-#endif
-#define INFO_TCP(msg, args...) IF_DEBUG(TCP,PRINT_DEBUG(msg, ##args))
-#define INFO_TCP_VER(msg, args...) IF_DEBUG_VER(TCP,PRINT_DEBUG(msg, ##args))
-#define INFO_TCP_DUMP(msg, args...) IF_DEBUG_DUMP(TCP,PRINT_DEBUG(msg, ##args))
-#define INFO_TCP_POLL(msg, args...) IF_DEBUG_POLL(TCP,PRINT_DEBUG(msg, ##args))
-#define INFO_SPI(msg, args...) IF_DEBUG(SPI,PRINT_DEBUG(msg, ##args))
-#define INFO_SPI_VER(msg, args...) IF_DEBUG_VER(SPI,PRINT_DEBUG(msg, ##args))
-#define INFO_SPI_DUMP(msg, args...) IF_DEBUG_DUMP(SPI,PRINT_DEBUG(msg, ##args))
-#define INFO_SPI_POLL(msg, args...) IF_DEBUG_POLL(SPI,PRINT_DEBUG(msg, ##args))
-#define INFO_UTIL(msg, args...) IF_DEBUG(UTIL,PRINT_DEBUG(msg, ##args))
-#define INFO_UTIL_VER(msg, args...) IF_DEBUG_VER(UTIL,PRINT_DEBUG(msg, ##args))
-#define CM_DPRINTF(msg, args...) IF_DEBUG(CM,PRINT_DEBUG(msg, ##args))
-
-extern void dump(char* _buf, uint16_t _count);
-
-#define _DUMP(BUF, COUNT) do { \
- printk("[%s]: ", __func__); \
- dump((char*)BUF, COUNT); \
- } while (0)
-
-#ifdef _APP_DEBUG_
-#define DUMP(BUF, COUNT) _DUMP(BUF, COUNT)
-#else
-#define DUMP(BUF, COUNT) do {} while (0)
-#endif
-#endif
-
-#define DUMP_TCP(BUF, COUNT) IF_TCP_DUMP(_DUMP(BUF, COUNT))
-#define DUMP_SPI(BUF, COUNT) IF_SPI_DUMP(_DUMP(BUF, COUNT))
-
-#define DUMP_SPI_CMD(BUF) do { \
- if (dumpDebug & INFO_SPI_FLAG) { \
- int i = 0; \
- for (; i < CMD_MAX_LEN; ++i) \
- { \
- printk("0x%x ", BUF[i]); \
- if (BUF[i] == END_CMD) \
- break; \
- } \
- printk("\n"); \
- } \
-}while(0);
-
diff --git a/firmwares/wifishield/wifiHD/src/fw_download.h b/firmwares/wifishield/wifiHD/src/fw_download.h
deleted file mode 100644
index e36214f..0000000
--- a/firmwares/wifishield/wifiHD/src/fw_download.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef FW_DOWNLOAD_H
-#define FW_DOWNLOAD_H
-
-#include <stdint.h>
-#include <stdio.h>
-
-int fw_download_init(void);
-size_t fw_read_cb(void *ctx, const uint8_t** buf, size_t offset, size_t len);
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/fw_download_extflash.c b/firmwares/wifishield/wifiHD/src/fw_download_extflash.c
deleted file mode 100644
index d679271..0000000
--- a/firmwares/wifishield/wifiHD/src/fw_download_extflash.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <top_defs.h>
-#include <wl_api.h>
-#include <fw_download.h>
-#include <nvram.h>
-#include <printf-stdarg.h>
-
-int fw_download_init(void)
-{
- nvram_init();
- return 0;
-}
-
-#define BUF_SIZE 512
-
-
-size_t fw_read_cb(void* ctx,
- const uint8_t** buf,
- size_t offset,
- size_t len)
-{
- static uint8_t* fw_buf = NULL;
- size_t rlen;
- /* when firmware download is completed, this function will be
- * invoked one additional time with buf set to NULL. we can
- * free the firmware buffer at this time since it's no longer
- * needed.
- */
- if (NULL == buf) {
- if (fw_buf) {
- free(fw_buf);
- fw_buf = NULL;
- }
- return 0;
- }
-
- /* first call? then initialize flash and allocate a buffer to hold
- * firmware data.
- */
- if (fw_buf == NULL) {
- fw_buf = malloc(BUF_SIZE);
-
- if (fw_buf == NULL) {
- printk("could not allocate firmware buffer\n");
- return 0;
- }
- }
- /* read at most a full buffer */
- rlen = len > BUF_SIZE ? BUF_SIZE : len;
-
- /* read data and update output parameters */
- nvram_read(offset, fw_buf, rlen);
- *buf = fw_buf;
-
- return rlen;
-}
diff --git a/firmwares/wifishield/wifiHD/src/license.txt b/firmwares/wifishield/wifiHD/src/license.txt
deleted file mode 100644
index e57439f..0000000
--- a/firmwares/wifishield/wifiHD/src/license.txt
+++ /dev/null
@@ -1,42 +0,0 @@
- Copyright (C) 2009, H&D Wireless AB All rights reserved.
-
- The license to use this software in whole and in part and to
- redistribute it in any form follows with the WiFi HW module from H&D
- Wireless and is granted under the following restrictions:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- 3. The name of H&D Wireless AB may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
- 4. The software may only be used together with hardware from H&D
- Wireless all other use is prohibited.
-
- 5. The license to use and redistribute the software is granted
- together with the purchase of a hardware platform on a one to one
- basis
-
- 6. The binary code may not be reversed engineered or by other means
- copied to circumvent this license.
-
- THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT
- SHALL HD WIRELESS AB BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- OF THE POSSIBILITY OF SUCH DAMAGE.
-
- For more information regarding this software license Contact H&D
- Wireless AB (support@hd-wireless.se).
diff --git a/firmwares/wifishield/wifiHD/src/lwip_setup.c b/firmwares/wifishield/wifiHD/src/lwip_setup.c
deleted file mode 100644
index bfa8c09..0000000
--- a/firmwares/wifishield/wifiHD/src/lwip_setup.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*!
- * \file lwIP setup code
- *
- * \brief Collects the lwIP setup code that an application has to
- * execute in a standalone environment.
- *
- * \author H&D Wireless AB \n
- *
- */
-
-#include <lwip/init.h>
-#include <lwip/dhcp.h>
-#include <lwip/tcp.h>
-#include <ipv4/lwip/ip_frag.h>
-#include <netif/etharp.h>
-#include <netif/wlif.h>
-#include <timer.h>
-
-#include "lwip_setup.h"
-#include "lwip/dns.h"
-
-
-/**
- *
- */
-static void
-tcp_tmr_cb(void *ctx)
-{
- tcp_tmr();
-}
-
-/**
- *
- */
-static void
-ip_tmr_cb(void *ctx)
-{
- ip_reass_tmr();
-}
-
-/**
- *
- */
-static void
-dns_tmr_cb(void *ctx)
-{
- dns_tmr();
-}
-
-/**
- *
- */
-static void
-etharp_tmr_cb(void *ctx)
-{
- etharp_tmr();
-}
-
-
-/**
- *
- */
-static void
-dhcp_fine_tmr_cb(void *ctx)
-{
- dhcp_fine_tmr();
-}
-
-/**
- *
- */
-static void
-dhcp_coarse_tmr_cb(void *ctx)
-{
- dhcp_coarse_tmr();
-}
-
-int start_ip_stack(struct net_cfg *cfg,
- struct ip_addr ipaddr,
- struct ip_addr netmask,
- struct ip_addr gw) {
-
- if (cfg->dhcp_enabled) {
- IP4_ADDR(&gw, 0,0,0,0);
- IP4_ADDR(&ipaddr, 0,0,0,0);
- IP4_ADDR(&netmask, 0,0,0,0);
- }
-
- /* add wl to lwip interface list and set as default */
- cfg->netif = netif_add(cfg->netif,
- &ipaddr,
- &netmask,
- &gw,
- NULL,
- wlif_init, /* init */
- ethernet_input /* handles ARP and IP packets */);
-
- if (cfg->netif == NULL)
- return -1;
- netif_set_default(cfg->netif);
-
- /* register lwip timer callbacks for tcp, arp and dhcp protocols */
- timer_sched_timeout_cb(5000, TIMEOUT_PERIODIC,
- etharp_tmr_cb, NULL);
- timer_sched_timeout_cb(TCP_TMR_INTERVAL, TIMEOUT_PERIODIC,
- tcp_tmr_cb, NULL);
- timer_sched_timeout_cb(DHCP_FINE_TIMER_MSECS, TIMEOUT_PERIODIC,
- dhcp_fine_tmr_cb, NULL);
- timer_sched_timeout_cb(DHCP_COARSE_TIMER_MSECS, TIMEOUT_PERIODIC,
- dhcp_coarse_tmr_cb, NULL);
- timer_sched_timeout_cb(IP_TMR_INTERVAL, TIMEOUT_PERIODIC,
- ip_tmr_cb, NULL);
- timer_sched_timeout_cb(DNS_TMR_INTERVAL, TIMEOUT_PERIODIC,
- dns_tmr_cb, NULL);
-
- return 1;
-}
diff --git a/firmwares/wifishield/wifiHD/src/lwip_setup.h b/firmwares/wifishield/wifiHD/src/lwip_setup.h
deleted file mode 100644
index 7edf2b5..0000000
--- a/firmwares/wifishield/wifiHD/src/lwip_setup.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _LWIP_SETUP_H
-#define _LWIP_SETUP_H
-
-#define INIT_IP_CONFIG 0xff
-#define STATIC_IP_CONFIG 0
-#define DYNAMIC_IP_CONFIG 1
-
-struct net_cfg {
- struct netif *netif; /* lwip network interface */
- uint8_t dhcp_enabled;
- uint8_t dhcp_running;
-};
-
-struct ctx_server {
- struct net_cfg net_cfg;
- uint8_t wl_init_complete;
-};
-
-/*! Start the IP stack.
- * If cfg->netif must have been allocated and lwip_init()
- * must have been called before this function is called
- * (since the IP stack may have to be polled before this
- * function can be called).
- */
-int start_ip_stack(struct net_cfg *cfg,
- struct ip_addr ipaddr,
- struct ip_addr netmask,
- struct ip_addr gw);
-
-#endif /* _LWIP_SETUP_H */
diff --git a/firmwares/wifishield/wifiHD/src/lwipopts.h b/firmwares/wifishield/wifiHD/src/lwipopts.h
deleted file mode 100644
index 7b08b84..0000000
--- a/firmwares/wifishield/wifiHD/src/lwipopts.h
+++ /dev/null
@@ -1,450 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/**
- * @file
- *
- * lwIP Options Configuration
- */
-
-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIPOPTS_H__
-#define __LWIPOPTS_H__
-
-#include "wl_api.h"
-#include <board.h>
-
-#ifndef BOARD
-#error "BOARD must be defined"
-#endif
-
-/*
- -----------------------------------------------
- ---------- Platform specific locking ----------
- -----------------------------------------------
-*/
-
-/**
- * NO_SYS==1: Provides VERY minimal functionality. Otherwise,
- * use lwIP facilities.
- */
-#define NO_SYS 1
-
-
-/*
- ------------------------------------
- ---------- Memory options ----------
- ------------------------------------
-*/
-/**
- * MEM_ALIGNMENT: should be set to the alignment of the CPU
- * 4 byte alignment -> #define MEM_ALIGNMENT 4
- * 2 byte alignment -> #define MEM_ALIGNMENT 2
- */
-#define MEM_ALIGNMENT 4
-
-/**
- * MEM_SIZE: the size of the heap memory. If the application will send
- * a lot of data that needs to be copied, this should be set high.
- */
-#define MEM_SIZE 16000
-
-
-/*
- ------------------------------------------------
- ---------- Internal Memory Pool Sizes ----------
- ------------------------------------------------
-*/
-/**
- * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF).
- * If the application sends a lot of data out of ROM (or other static memory),
- * this should be set high.
- */
-#if BOARD == EVK1101 /* Reduced RAM */
- #define MEMP_NUM_PBUF 4
-#else
- #define MEMP_NUM_PBUF 30
-#endif
-/**
- * MEMP_NUM_RAW_PCB: Number of raw connection PCBs
- * (requires the LWIP_RAW option)
- */
-#define MEMP_NUM_RAW_PCB 4
-
-/**
- * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One
- * per active UDP "connection".
- * (requires the LWIP_UDP option)
- */
-#define MEMP_NUM_UDP_PCB 4
-
-/**
- * MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections.
- * (requires the LWIP_TCP option)
- */
-#define MEMP_NUM_TCP_PCB 4
-
-/**
- * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections.
- * (requires the LWIP_TCP option)
- */
-#define MEMP_NUM_TCP_PCB_LISTEN 2
-
-/**
- * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments.
- * (requires the LWIP_TCP option)
- */
-#if BOARD == EVK1101 /* Reduced RAM */
- #define MEMP_NUM_TCP_SEG 2
-#else
- #define MEMP_NUM_TCP_SEG 32
-#endif
-
-/**
- * MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing
- * packets (pbufs) that are waiting for an ARP request (to resolve
- * their destination address) to finish.
- * (requires the ARP_QUEUEING option)
- */
-#define MEMP_NUM_ARP_QUEUE 2
-
-/**
- * MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts.
- * (requires NO_SYS==0)
- */
-#define MEMP_NUM_SYS_TIMEOUT 0
-
-/**
- * MEMP_NUM_NETBUF: the number of struct netbufs.
- * (only needed if you use the sequential API, like api_lib.c)
- */
-#define MEMP_NUM_NETBUF 0
-
-/**
- * MEMP_NUM_NETCONN: the number of struct netconns.
- * (only needed if you use the sequential API, like api_lib.c)
- */
-#define MEMP_NUM_NETCONN 0
-
-/**
- * MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used
- * for callback/timeout API communication.
- * (only needed if you use tcpip.c)
- */
-#define MEMP_NUM_TCPIP_MSG_API 0
-
-/**
- * MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used
- * for incoming packets.
- * (only needed if you use tcpip.c)
- */
-#define MEMP_NUM_TCPIP_MSG_INPKT 0
-
-/**
- * PBUF_POOL_SIZE: the number of buffers in the pbuf pool.
- */
-#if BOARD == EVK1101 /* Reduced RAM */
- #define PBUF_POOL_SIZE 2
-#else
- #define PBUF_POOL_SIZE 32
-#endif
-/*
- ---------------------------------
- ---------- ARP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_ARP==1: Enable ARP functionality.
- */
-#define LWIP_ARP 1
-
-/*
- --------------------------------
- ---------- IP options ----------
- --------------------------------
-*/
-/**
- * IP_FORWARD==1: Enables the ability to forward IP packets across network
- * interfaces. If you are going to run lwIP on a device with only one network
- * interface, define this to 0.
- */
-#define IP_FORWARD 0
-
-/**
- * IP_OPTIONS: Defines the behavior for IP options.
- * IP_OPTIONS==0_ALLOWED: All packets with IP options are dropped.
- * IP_OPTIONS==1_ALLOWED: IP options are allowed (but not parsed).
- */
-#define IP_OPTIONS_ALLOWED 1
-
-/**
- * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that
- * this option does not affect outgoing packet sizes, which can be controlled
- * via IP_FRAG.
- */
-#define IP_REASSEMBLY 1
-
-/**
- * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
- * that this option does not affect incoming packet sizes, which can be
- * controlled via IP_REASSEMBLY.
- */
-#define IP_FRAG 1
-
-/**
- * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
- * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived
- * in this time, the whole packet is discarded.
- */
-#define IP_REASS_MAXAGE 3
-
-/**
- * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.
- * Since the received pbufs are enqueued, be sure to configure
- * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive
- * packets even if the maximum amount of fragments is enqueued for reassembly!
- */
-#if BOARD == EVK1101 /* Reduced RAM */
- #define IP_REASS_MAX_PBUFS PBUF_POOL_SIZE
- #define MEMP_NUM_REASSDATA PBUF_POOL_SIZE-1
-#else
- #define IP_REASS_MAX_PBUFS 10
-#endif
-
-/**
- * IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP
- * fragmentation. Otherwise pbufs are allocated and reference the original
- * packet data to be fragmented.
- */
-#define IP_FRAG_USES_STATIC_BUF 0
-
-/**
- * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers.
- */
-#define IP_DEFAULT_TTL 255
-
-/*
- ----------------------------------
- ---------- ICMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_ICMP==1: Enable ICMP module inside the IP stack.
- * Be careful, disable that make your product non-compliant to RFC1122
- */
-#define LWIP_ICMP 1
-
-/**
- * ICMP_TTL: Default value for Time-To-Live used by ICMP packets.
- */
-#define ICMP_TTL (IP_DEFAULT_TTL)
-
-/*
- ---------------------------------
- ---------- RAW options ----------
- ---------------------------------
-*/
-/**
- * LWIP_RAW==1: Enable application layer to hook into the IP layer itself.
- */
-#define LWIP_RAW 1
-
-/*
- ----------------------------------
- ---------- DHCP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_DHCP==1: Enable DHCP module.
- */
-#define LWIP_DHCP 1
-
-/*
- ------------------------------------
- ---------- AUTOIP options ----------
- ------------------------------------
-*/
-/**
- * LWIP_AUTOIP==1: Enable AUTOIP module.
- */
-#define LWIP_AUTOIP 0
-
-/*
- ----------------------------------
- ---------- SNMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP
- * transport.
- */
-#define LWIP_SNMP 0
-#define SNMP_PRIVATE_MIB 0
-
-/*
- ----------------------------------
- ---------- IGMP options ----------
- ----------------------------------
-*/
-/**
- * LWIP_IGMP==1: Turn on IGMP module.
- */
-#define LWIP_IGMP 0
-
-/*
- ----------------------------------
- ---------- DNS options -----------
- ----------------------------------
-*/
-/**
- * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS
- * transport.
- */
-#define LWIP_DNS 1
-
-/*
- ---------------------------------
- ---------- UDP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_UDP==1: Turn on UDP.
- */
-#define LWIP_UDP 1
-
-/**
- * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP)
- */
-#define LWIP_UDPLITE 0
-
-/**
- * UDP_TTL: Default Time-To-Live value.
- */
-#define UDP_TTL (IP_DEFAULT_TTL)
-
-/*
- ---------------------------------
- ---------- TCP options ----------
- ---------------------------------
-*/
-/**
- * LWIP_TCP==1: Turn on TCP.
- */
-#define LWIP_TCP 1
-
-/*
- ----------------------------------
- ---------- Pbuf options ----------
- ----------------------------------
-*/
-/**
- * PBUF_LINK_HLEN: the number of bytes that should be allocated for a
- * link level header. The default is 14, the standard value for
- * Ethernet.
- */
-#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
-
-/*
- ------------------------------------
- ---------- LOOPIF options ----------
- ------------------------------------
-*/
-/**
- * LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1) and loopif.c
- */
-#define LWIP_HAVE_LOOPIF 1
-#define LWIP_LOOPIF_MULTITHREADING 0
-
-/*
- ----------------------------------------------
- ---------- Sequential layer options ----------
- ----------------------------------------------
-*/
-
-/**
- * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c)
- */
-#define LWIP_NETCONN 0
-
-/*
- ------------------------------------
- ---------- Socket options ----------
- ------------------------------------
-*/
-/**
- * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)
- */
-#define LWIP_SOCKET 0
-
-/*
- ----------------------------------------
- ---------- Statistics options ----------
- ----------------------------------------
-*/
-/**
- * LWIP_STATS==1: Enable statistics collection in lwip_stats.
- */
-#define LWIP_STATS 1
-#define LINK_STATS 1
-
-/* Misc */
-#define LWIP_NETIF_LINK_CALLBACK 1
-#define LWIP_NETIF_STATUS_CALLBACK 1
-#define LWIP_TIMEVAL_PRIVATE 0
-
-#undef DHCP_DOES_ARP_CHECK
-
-#if 0
-#define LWIP_DEBUG 1
-//#define NETIF_DEBUG LWIP_DBG_ON
-//#define DHCP_DEBUG LWIP_DBG_ON
-//#define ICMP_DEBUG LWIP_DBG_ON
-//#define TCP_DEBUG LWIP_DBG_ON
-//#define TCP_RTO_DEBUG LWIP_DBG_ON
-//#define IP_DEBUG LWIP_DBG_ON
-//#define TCP_CWND_DEBUG LWIP_DBG_ON
-//#define ETHARP_DEBUG LWIP_DBG_ON
-#define PBUF_DEBUG LWIP_DBG_ON
-//#define TCP_INPUT_DEBUG LWIP_DBG_ON
-//#define TCP_OUTPUT_DEBUG LWIP_DBG_ON
-#endif
-
-#define ETH_PAD_SIZE WL_HEADER_SIZE /* size of wifiengine header */
-#define MEM_LIBC_MALLOC 1
-
-#define TCP_MSS 512
-#if BOARD == EVK1101 /* Reduced RAM */
- #define TCP_SND_BUF (1460*1) /* MTU (1500) - IP - TCP hdrs == 1460 */
-#else
- #define TCP_SND_BUF 4096
-#endif
-#endif /* __LWIPOPTS_H__ */
diff --git a/firmwares/wifishield/wifiHD/src/main.c b/firmwares/wifishield/wifiHD/src/main.c
deleted file mode 100644
index fffb34e..0000000
--- a/firmwares/wifishield/wifiHD/src/main.c
+++ /dev/null
@@ -1,454 +0,0 @@
-/*
- * main.c
- *
- * Created on: May 27, 2010
- * Author: mlf by Metodo2 srl
- */
-
-//#define _TEST_SPI_
-
-#include <compiler.h>
-#include "board.h"
-#include "gpio.h"
-
-#include <stdint.h>
-#include "wl_api.h"
-#include "wl_cm.h"
-
-#include "lwip/init.h"
-#include "lwip/dhcp.h"
-#include "lwip/dns.h"
-#include "lwip/tcp.h"
-#include "netif/etharp.h"
-#include "netif/wlif.h"
-
-#include "board_init.h"
-#include "trace.h"
-
-#include "timer.h"
-#include "util.h"
-#include "cmd_wl.h"
-#include "ping.h"
-#include "ard_tcp.h"
-#include "spi.h"
-#include "ard_spi.h"
-#include "delay.h"
-#include "tc.h"
-#include "debug.h"
-#include "ard_utils.h"
-#include <lwip_setup.h>
-
-/* FIRMWARE version */
-const char* fwVersion = "1.1.0";
-
-#if BOARD == ARDUINO
-#if !defined(DATAFLASH)
-#include "wl_fw.h"
-
-int fw_download_init(void) { return 0;}
-void fw_download_cb(void* ctx, uint8_t** buf, uint32_t* len)
-{
- //printk("Fw download not available!\n");
- /* remember accross different calls */
- static uint8_t* _fw_buf = (uint8_t*)&fw_buf[0];
- static uint32_t offset = 0;
-
- /* when firmware download is completed, this function will be invoked
- * on additional time with the input value of len set to 0. we can free
- * the firmware buffer at this time since it's no longer needed.
- */
- if (*len == 0) {
- return;
- }
-
- /* decide how much to read. we know *len bytes remains, but we only have
- * room for SECTOR_SIEZ bytes in our buffer (fw_buf)
- */
- uint32_t fw_len = *len;
-
- *buf = (_fw_buf+offset);
- *len = fw_len;
-
- /* we need to know where to start reading upon next call */
- offset += fw_len;
-
-}
-#else
-#include "fw_download.h"
-#endif
-#endif
-
-bool ifStatus = false;
-bool scanNetCompleted = false;
-
-static bool initSpiComplete = false;
-
-// variable used as enable flag for debug prints
-DEFINE_DEBUG_VARIABLES();
-
-/**
- *
- */
-static void
-wl_cm_scan_cb(void* ctx)
-{
- INFO_INIT("Scan Completed!\n");
- scanNetCompleted=true;
-}
-
-/**
- *
- */
-static void
-wl_cm_conn_cb(struct wl_network_t* net, void* ctx)
-{
- struct ctx_server* hs = ctx;
-
- LINK_LED_ON();
-
- INFO_INIT("Connection cb...\n");
-
- printk("link up, connected to \"%s\"\n", ssid2str(&net->ssid));
- if ( hs->net_cfg.dhcp_enabled == DYNAMIC_IP_CONFIG ) {
- INFO_INIT("Start DHCP...\n");
- printk("requesting dhcp ... ");
- int8_t result = dhcp_start(hs->net_cfg.netif);
- printk((result==ERR_OK)?"OK\n":"FAILED\n");
- hs->net_cfg.dhcp_running = 1;
- }
- else {
- netif_set_up(hs->net_cfg.netif);
- }
-
- INFO_INIT("Start DNS...\n");
- dns_init();
-}
-
-
-/**
- *
- */
-static void
-wl_cm_disconn_cb(void* ctx)
-{
- struct ctx_server* hs = ctx;
-
- LINK_LED_OFF();
- INFO_INIT("Disconnection cb...\n");
-
- if (hs->net_cfg.dhcp_running) {
- printk("link down, release dhcp\n");
- dhcp_release(hs->net_cfg.netif);
- dhcp_stop(hs->net_cfg.netif);
- hs->net_cfg.dhcp_running = 0;
- } else {
- printk("link down\n");
- netif_set_down(hs->net_cfg.netif);
- }
-
- set_result_cmd(WL_FAILURE);
-}
-
-#if 0
-static void wl_cm_err_cb(void* ctx)
-{
- int err = *(int*)ctx;
- WARN("Error: %d\n", err);
- set_result_cmd(err);
-}
-#endif
-
-/**
- *
- */
-static void
-ip_status_cb(struct netif* netif)
-{
- INFO_INIT("IP status cb...\n");
- if (netif_is_up(netif)) {
- set_result_cmd(WL_SUCCESS);
- printk("bound to %s\n", ip2str(netif->ip_addr));
- ifStatus = true;
- }else{
- ifStatus = false;
- closeConnections();
- WARN("Interface not up!\n");
- }
-}
-
-
-/**
- *
- */
-void
-led_init(void)
-{
- gpio_enable_gpio_pin(LED0_GPIO);
- gpio_enable_gpio_pin(LED1_GPIO);
- gpio_enable_gpio_pin(LED2_GPIO);
- LINK_LED_OFF();
- ERROR_LED_OFF();
- DATA_LED_OFF();
-}
-
-
-void tc_init(void)
-{
- // The timer/counter instance and channel number are used in several functions.
- // It's defined as local variable for ease-of-use causes and readability.
- volatile avr32_tc_t *tc = WIFI_TC;
-
- // Options for waveform genration.
- tc_waveform_opt_t waveform_opt =
- {
- .channel = WIFI_TC_CHANNEL_ID, // Channel selection.
-
- .bswtrg = TC_EVT_EFFECT_NOOP, // Software trigger effect on TIOB.
- .beevt = TC_EVT_EFFECT_NOOP, // External event effect on TIOB.
- .bcpc = TC_EVT_EFFECT_NOOP, // RC compare effect on TIOB.
- .bcpb = TC_EVT_EFFECT_NOOP, // RB compare effect on TIOB.
-
- .aswtrg = TC_EVT_EFFECT_NOOP, // Software trigger effect on TIOA.
- .aeevt = TC_EVT_EFFECT_NOOP, // External event effect on TIOA.
- .acpc = TC_EVT_EFFECT_TOGGLE, // RC compare effect on TIOA: toggle.
- .acpa = TC_EVT_EFFECT_TOGGLE, // RA compare effect on TIOA: toggle (other possibilities are none, set and clear).
-
- .wavsel = TC_WAVEFORM_SEL_UP_MODE_RC_TRIGGER,// Waveform selection: Up mode with automatic trigger(reset) on RC compare.
- .enetrg = FALSE, // External event trigger enable.
- .eevt = TC_EXT_EVENT_SEL_TIOB_INPUT, // External event selection.
- .eevtedg = TC_SEL_NO_EDGE, // External event edge selection.
- .cpcdis = FALSE, // Counter disable when RC compare.
- .cpcstop = FALSE, // Counter clock stopped with RC compare.
-
- .burst = TC_BURST_NOT_GATED, // Burst signal selection.
- .clki = TC_CLOCK_RISING_EDGE, // Clock inversion.
- .tcclks = TC_CLOCK_SOURCE_TC2 // Internal source clock 3, connected to fPBA / 2.
- };
-
- // Assign I/O to timer/counter channel pin & function.
- gpio_enable_module_pin(WIFI_TC_CHANNEL_PIN, WIFI_TC_CHANNEL_FUNCTION);
-
- // Initialize the timer/counter.
- tc_init_waveform(tc, &waveform_opt); // Initialize the timer/counter waveform.
-
- // Set the compare triggers.
- tc_write_ra(tc, WIFI_TC_CHANNEL_ID, 0x01A4); // Set RA value.
- tc_write_rc(tc, WIFI_TC_CHANNEL_ID, 0x0348); // Set RC value.
-
- // Start the timer/counter.
- tc_start(tc, WIFI_TC_CHANNEL_ID);
-
-}
-
-/**
- *
- */
-void
-poll(struct ctx_server* hs)
-{
- /* this will trigger any scheduled timer callbacks */
- timer_poll();
-
- /* handle console input */
- console_poll();
-
- /* wl api 'tick' */
- wl_tick(timer_get_ms());
-
- /* lwip driver poll */
- wlif_poll(hs->net_cfg.netif);
-
- if (initSpiComplete) spi_poll(hs->net_cfg.netif);
-
-#ifdef WITH_GUI
- gui_exec(timer_get_ms());
-#endif
-}
-
-void initShell(void* ctx)
-{
- /* initialize shell */
- INFO_INIT("Shell init...\n");
- console_init();
- console_add_cmd("scan", cmd_scan, NULL);
- console_add_cmd("connect", cmd_connect, NULL);
- console_add_cmd("setkey", cmd_setkey, NULL);
- console_add_cmd("status", cmd_status, ctx);
- console_add_cmd("debug", cmd_debug, NULL);
- console_add_cmd("dumpBuf", cmd_dumpBuf, NULL);
- console_add_cmd("ipconfig", cmd_set_ip, ctx);
-#ifdef ADD_CMDS
- console_add_cmd("powersave", cmd_power, NULL);
- console_add_cmd("psconf", cmd_psconf, NULL);
-#endif
-#ifdef PING_CMD
- console_add_cmd("ping", cmd_ping, NULL);
-#endif
- console_add_cmd("ttcp", cmd_ttcp, NULL);
-#ifdef WITH_WPA
- console_add_cmd("wpass", cmd_setpass, NULL);
- console_add_cmd("dpass", cmd_delpass, NULL);
-#endif
-#ifdef _SPI_STATS_
- console_add_cmd("spiStat", cmd_statSpi, NULL);
- console_add_cmd("resetSpiStat", cmd_resetStatSpi, NULL);
-#endif
-#ifdef _DNS_CMD_
- console_add_cmd("getHost", cmd_gethostbyname, NULL);
- console_add_cmd("setDNS", cmd_setDnsServer, NULL);
-#endif
- console_add_cmd("startSrv", cmd_startSrv, NULL);
- console_add_cmd("startCli", cmd_startCli, NULL);
- console_add_cmd("sendUdp", cmd_sendUdpData, NULL);
-
-}
-
-/**
- *
- */
-void
-wl_init_complete_cb(void* ctx)
-{
- struct ctx_server *hs = ctx;
- struct ip_addr ipaddr, netmask, gw;
- wl_err_t wl_status;
-
- if (hs->net_cfg.dhcp_enabled == INIT_IP_CONFIG)
- {
- IP4_ADDR(&gw, 0,0,0,0);
- IP4_ADDR(&ipaddr, 0,0,0,0);
- IP4_ADDR(&netmask, 0,0,0,0);
-
- /* default is dhcp enabled */
- hs->net_cfg.dhcp_enabled = DYNAMIC_IP_CONFIG;
- }
-
- start_ip_stack(&hs->net_cfg,
- ipaddr,
- netmask,
- gw);
- netif_set_status_callback(hs->net_cfg.netif, ip_status_cb);
-
- INFO_INIT("Starting CM...\n");
- /* start connection manager */
- wl_status = wl_cm_init(wl_cm_scan_cb, wl_cm_conn_cb, wl_cm_disconn_cb, hs);
- ASSERT(wl_status == WL_SUCCESS, "failed to init wl conn mgr");
- wl_cm_start();
-
- wl_scan();
-
- if (initSpi(hs)){
- WARN("Spi not initialized\n");
- }else
- {
- initSpiComplete = true;
- AVAIL_FOR_SPI();
- }
-
- hs->wl_init_complete = 1;
-}
-
-void startup_init(void)
-{
- INIT_SIGNAL_FOR_SPI();
- BUSY_FOR_SPI();
-
- // if DEBUG enabled use DEB_PIN_GPIO for debug purposes
- DEB_PIN_ENA();
- DEB_PIN_ENA(2);
- DEB_PIN_UP();
- DEB_PIN_UP(2);
-}
-
-const char timestamp[] = __TIMESTAMP__;
-
-/**
- *
- */
-int
-main(void)
-{
- wl_err_t wl_status;
- int status;
- struct ctx_server *hs;
- enum wl_host_attention_mode mode;
-
- startup_init();
-
- board_init();
-
- led_init();
-
- tc_init();
-
- delay_init(FOSC0);
-
-#ifdef _TEST_SPI_
- for (;;)
- {
- /* handle console input */
-
- console_poll();
-
- spi_poll(NULL);
-
- }
-#else
- printk("Arduino Wifi Startup... [%s]\n", timestamp);
-
- size_t size_ctx_server = sizeof(struct ctx_server);
- hs = calloc(1, size_ctx_server);
- ASSERT(hs, "out of memory");
-
- size_t size_netif = sizeof(struct netif);
- hs->net_cfg.netif = calloc(1, size_netif);
- ASSERT(hs->net_cfg.netif, "out of memory");
- hs->net_cfg.dhcp_enabled = INIT_IP_CONFIG;
-
- INFO_INIT("hs:%p size:0x%x netif:%p size:0x%x\n", hs, size_ctx_server,
- hs->net_cfg.netif, size_netif);
- initShell(hs);
- timer_init(NULL, NULL);
- lwip_init();
-
- status = fw_download_init();
- ASSERT(status == 0, "failed to prepare for firmware download\n");
-
- wl_status = wl_transport_init(fw_read_cb, hs, &mode);
- if (wl_status != WL_SUCCESS)
- goto err;
- INFO_INIT("Mode: 0x%x\n", mode);
- wl_status = wl_init(hs, wl_init_complete_cb, mode);
- if (wl_status != WL_SUCCESS)
- goto err;
-
- /* start main loop */
- for (;;)
- poll(hs);
-
-
-err:
- /* show error message on console and display if wlan initialization fails */
-
-#define WL_CARD_FAILURE_STR "Could not detect wl device, aborting\n"
-#define WL_FIRMWARE_INVALID_STR "Invalid firmware data, aborting\n"
-#define WL_OTHER_FAILURE_STR "Failed to start wl initialization\n"
-
- switch (wl_status) {
- case WL_CARD_FAILURE:
- printk(WL_CARD_FAILURE_STR);
- break;
-
- case WL_FIRMWARE_INVALID:
- printk(WL_FIRMWARE_INVALID_STR);
- break;
-
- default:
- printk(WL_OTHER_FAILURE_STR);
- break;
- }
- for (;;) {
- timer_poll();
- }
-#endif
-}
diff --git a/firmwares/wifishield/wifiHD/src/nvram.c b/firmwares/wifishield/wifiHD/src/nvram.c
deleted file mode 100644
index 2c61c5f..0000000
--- a/firmwares/wifishield/wifiHD/src/nvram.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <string.h>
-
-#include "compiler.h"
-#include "preprocessor.h"
-#include "board.h"
-#include "power_clocks_lib.h"
-#include "gpio.h"
-#include "spi.h"
-#include "conf_at45dbx.h"
-#include "at45dbx.h"
-#include <board_init.h>
-#include <nvram.h>
-
-
-static struct nvram {
- uint8_t read;
- void *data;
- uint32_t len;
- uint16_t off;
-} PRIV;
-
-int nvram_init(void)
-{
- spi_options_t spiOptions = {
- .reg = AT45DBX_SPI_FIRST_NPCS,
- .baudrate = AT45DBX_SPI_MASTER_SPEED,
- .bits = AT45DBX_SPI_BITS,
- .spck_delay = 0,
- .trans_delay = 0,
- .stay_act = 1,
- .spi_mode = 0,
- .modfdis = 1
- };
-
- at45dbx_init(spiOptions, FPBA_HZ);
- return 0;
-}
-
-
-/**
- * Invoked by at45dbx driver
- *
- */
-void at45dbx_read_multiple_sector_callback(const void *psector)
-{
- struct nvram *priv = &PRIV;
- const uint8_t *buf = psector;
-
- if (!priv->read)
- return;
-
- memcpy(priv->data, buf + priv->off, priv->len);
-}
-
-
-/**
- * Invoked by at45dbx driver
- *
- */
-void at45dbx_write_multiple_sector_callback(void *psector)
-{
- struct nvram *priv = &PRIV;
- uint8_t *buf = psector;
- memcpy(buf + priv->off, priv->data, priv->len);
-}
-
-
-/**
- * Write/read any number bytes into any offset of nor flash by taking care
- * of cases where the length is not aligned to the sector size or where
- * the addr is not aligned to the sector offsets.
- *
- */
-static int nvram_rw(uint32_t addr, void *data, uint16_t len, int write)
-{
- struct nvram *priv = &PRIV;
- priv->read = write ? 0 : 1;
-
- while (len) {
- uint32_t sector = addr / AT45DBX_SECTOR_SIZE;
- priv->data = data;
- priv->off = addr % AT45DBX_SECTOR_SIZE;
- priv->len = AT45DBX_SECTOR_SIZE;
-
- if (len < AT45DBX_SECTOR_SIZE)
- priv->len = len;
-
- if (priv->len > AT45DBX_SECTOR_SIZE - priv->off)
- priv->len = AT45DBX_SECTOR_SIZE - priv->off;
-
- at45dbx_read_open(sector);
- at45dbx_read_multiple_sector(1);
- at45dbx_read_close();
-
- if (write) {
- at45dbx_write_open(sector);
- at45dbx_write_multiple_sector(1);
- at45dbx_write_close();
- }
-
- data += priv->len;
- len -= priv->len;
- addr += priv->len;
- }
-
- return 0;
-}
-
-/**
- * Write any number bytes into any offset of nor flash.
- *
- */
-int nvram_write(uint32_t addr, const void *data, uint32_t len)
-{
- return nvram_rw(addr, (void *) data, len, 1);
-}
-
-
-/**
- * Read any number bytes into any offset of nor flash.
- *
- */
-int nvram_read(uint32_t addr, void *data, uint32_t len)
-{
- return nvram_rw(addr, data, len, 0);
-}
diff --git a/firmwares/wifishield/wifiHD/src/nvram.h b/firmwares/wifishield/wifiHD/src/nvram.h
deleted file mode 100644
index 8882749..0000000
--- a/firmwares/wifishield/wifiHD/src/nvram.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef NVRAM_H
-#define NVRAM_H
-
-#include <stdint.h>
-
-int nvram_init(void);
-int nvram_read(uint32_t addr, void *data, uint32_t len);
-int nvram_write(uint32_t addr, const void *data, uint32_t len);
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/owl_os.c b/firmwares/wifishield/wifiHD/src/owl_os.c
deleted file mode 100644
index d17d8ce..0000000
--- a/firmwares/wifishield/wifiHD/src/owl_os.c
+++ /dev/null
@@ -1,140 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-#include <wl_os.h>
-
-void *owl_os_alloc(size_t size)
-{
- return malloc(size);
-}
-
-void *owl_os_realloc(void *ptr, size_t size)
-{
- return realloc(ptr, size);
-}
-
-void owl_os_free(void *p)
-{
- free(p);
-}
-
-void *owl_os_memcpy(void *dst, const void *src, size_t n)
-{
- return memcpy(dst, src, n);
-}
-
-void *owl_os_memset(void *s, int c, size_t n)
-{
- return memset(s, c, n);
-}
-
-void *owl_os_memmove(void *dst, const void *src, size_t n)
-{
- return memmove(dst, src, n);
-}
-
-size_t owl_os_strlen(char *s)
-{
- return strlen(s);
-}
-
-char *owl_os_strncpy(char *dst, const char *src, size_t n)
-{
- return strncpy(dst, src, n);
-}
-
-int owl_os_strncmp(const char *s1, const char *s2, size_t n)
-{
- return strncmp(s1, s2, n);
-}
-
-int owl_os_strcmp(const char *s1, const char *s2)
-{
- return strcmp(s1, s2);
-}
-
-char *owl_os_strcpy(char *dst, const char *src)
-{
- return strcpy(dst, src);
-}
-
-char *owl_os_strdup(const char *s)
-{
- return strdup(s);
-}
-
-char *owl_os_strndup(const char *s, size_t n)
-{
- return strndup(s, n);
-}
-
-int owl_os_memcmp(const void *s1, const void *s2, size_t n)
-{
- return memcmp(s1, s2, n);
-}
-
-long int owl_os_strtol(const char *nptr, char **endptr, int base)
-{
- return strtol(nptr, endptr, base);
-}
-
-char *owl_os_strchr(const char *s, int c)
-{
- return strchr(s, c);
-}
-
-char *owl_os_strrchr(const char *s, int c)
-{
- return strrchr(s, c);
-}
-
-int owl_os_strcasecmp(const char *s1, const char *s2)
-{
- return strcasecmp(s1, s2);
-}
-
-char *owl_os_strstr(const char *haystack, const char *needle)
-{
- return strstr(haystack, needle);
-}
-
-int owl_os_snprintf(char *str, size_t size, const char *format, ...)
-{
- int ret;
- va_list ap;
- va_start(ap, format);
- ret = vsniprintf(str, size, format, ap);
- va_end(ap);
- return ret;
-}
-
-/* for debugging only, never called if wl_api was built without debug */
-#ifdef CONFIG_OWL
-#include "owl_env.h"
-int owl_os_printf(const char *fmt, ...)
-{
- char *str = NULL;
- va_list args;
- int len;
- char *iter;
-
- va_start(args, fmt);
-
- if ((str = malloc(160)) == NULL)
- return -1;
-
- if ((len = vsniprintf(str, 160, fmt, args)) < 0) {
- free(str);
- return -1;
- }
-
- iter = str;
- while (*iter)
- owl_putc(*iter++);
-
- free(str);
- return len;
-}
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/ping.c b/firmwares/wifishield/wifiHD/src/ping.c
deleted file mode 100644
index aba97db..0000000
--- a/firmwares/wifishield/wifiHD/src/ping.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is derived from a part of the lwIP TCP/IP stack.
- *
- */
-#ifdef PING_CMD
-#include "lwip/opt.h"
-
-#include "lwip/mem.h"
-#include "lwip/raw.h"
-#include "lwip/icmp.h"
-#include "lwip/netif.h"
-#include "lwip/sys.h"
-#include "lwip/sockets.h"
-#include "lwip/inet.h"
-#include "lwip/inet_chksum.h"
-
-#include "ping.h"
-#include "timer.h"
-#include "util.h"
-
-#include "getopt.h"
-
-#define PING_ID 0xAFAF
-
-struct ping_info_t {
- struct ip_addr destination;
- uint32_t deadline; /* -w (in seconds) */
- uint32_t interval; /* -i (in ms) */
- uint32_t timeout; /* ms */
- uint32_t data_size; /* -s */
- uint32_t count; /* -c, 0 means continous ping */
- uint32_t size;
- uint32_t first_tx_tm;
- uint32_t last_tx_tm;
- uint32_t last_rx_tm;
- uint32_t num_tx;
- uint32_t num_rx;
- uint32_t flags;
- uint16_t seq_num;
- Bool quiet; /* -q */
- ping_complete_cb_t complete_cb;
- void *ctx;
-#define PING_REPLY (1 << 0)
-};
-
-static struct ping_info_t INFO;
-
-/** Prepare a echo ICMP request */
-static void ping_prepare_echo(struct icmp_echo_hdr *iecho,
- struct ping_info_t* ping_info)
-{
- int i;
-
- ICMPH_TYPE_SET(iecho,ICMP_ECHO);
- ICMPH_CODE_SET(iecho, 0);
- iecho->chksum = 0;
- iecho->id = PING_ID;
- iecho->seqno = htons(++ping_info->seq_num);
- iecho->chksum = 0;
-
- /* fill the additional data buffer with some data */
- for(i = 0; i < ping_info->data_size; i++) {
- ((char*)iecho)[sizeof(struct icmp_echo_hdr) + i] = i;
- }
-
- iecho->chksum = inet_chksum(iecho, ping_info->size);
-}
-
-/* Ping using the raw ip */
-static u8_t ping_recv(void *arg, struct raw_pcb *pcb, struct pbuf *p,
- struct ip_addr *addr)
-{
- struct icmp_echo_hdr *iecho;
- struct ip_hdr *ip = p->payload;
- struct ping_info_t* ping_info = (struct ping_info_t*) arg;
- uint32_t us;
-
- if (pbuf_header( p, -PBUF_IP_HLEN)==0) {
- iecho = p->payload;
-
- if ((iecho->id == PING_ID) &&
- (iecho->seqno == htons(ping_info->seq_num))) {
- ping_info->last_rx_tm = timer_get_ms();
- ping_info->num_rx++;
- us = 1000 *
- (ping_info->last_rx_tm - ping_info->last_tx_tm);
-
- if (!ping_info->quiet)
- printk("%d bytes from %s: icmp_seq=%d ttl=%d " \
- "time=%d.%03d ms\n",
- p->tot_len, ip2str(ip->src),
- iecho->seqno,
- IPH_TTL(ip),
- us / 1000, us % 1000);
-
- /* do some ping result processing */
- ping_info->flags |= PING_REPLY;
- }
- }
-
- pbuf_free(p);
- return 1; /* eat the event */
-}
-
-static void ping_send(struct raw_pcb *raw, struct ping_info_t* ping_info)
-{
- struct pbuf *p;
- struct icmp_echo_hdr *iecho;
-
- if (!(p = pbuf_alloc(PBUF_IP, ping_info->size, PBUF_RAM))) {
- return;
- }
- if ((p->len == p->tot_len) && (p->next == NULL)) {
- iecho = p->payload;
-
- ping_prepare_echo(iecho, ping_info);
- raw_sendto(raw, p, &ping_info->destination);
-
- if (!ping_info->first_tx_tm)
- ping_info->first_tx_tm = timer_get_ms();
- ping_info->last_tx_tm = timer_get_ms();
- ping_info->num_tx++;
- }
- pbuf_free(p);
-}
-
-void ping_set_callback(ping_complete_cb_t cb, void *ctx) {
- INFO.complete_cb = cb;
- INFO.ctx = ctx;
-}
-
-void ping_stop(uint32_t *tx_cnt, uint32_t *rx_cnt) {
- struct ping_info_t *ping_info = &INFO;
-
- *tx_cnt = ping_info->num_tx;
- *rx_cnt = ping_info->num_rx;
- ping_info->count = ping_info->num_tx;
- if ( 0 == ping_info->count ) {
- ping_info->count = 1;
- }
-}
-
-static int init_ping_info(int argc, char* argv[], struct ping_info_t* ping_info)
-{
- int c;
- ping_complete_cb_t cb;
- void *ctx;
-
- cb = ping_info->complete_cb;
- ctx = ping_info->ctx;
- memset(ping_info, 0, sizeof(struct ping_info_t));
- ping_info->complete_cb = cb;
- ping_info->ctx = ctx;
-
- ping_info->deadline = 0;
- ping_info->interval = 1000;
- ping_info->timeout = 3000;
- ping_info->data_size = 32;
- ping_info->count = 3;
- ping_info->destination =
- netif_default ? netif_default->gw : ip_addr_any;
-
- optind = 1;
- while ((c = getopt(argc, argv, "c:i:s:w:q")) != -1) {
- switch (c) {
- case 'c':
- ping_info->count = atoi(optarg);
- break;
-
- case 'i':
- ping_info->interval = atoi(optarg);
- break;
-
- case 's':
- ping_info->data_size = atoi(optarg);
- break;
-
- case 'q':
- ping_info->quiet = TRUE;
- break;
-
- case 'w':
- ping_info->deadline = atoi(optarg);
- break;
- }
- }
-
- ping_info->size = sizeof(struct icmp_echo_hdr) + ping_info->data_size;
-
- if (optind >= argc)
- return -1;
-
- ping_info->destination = str2ip(argv[optind]);
- if (!ping_info->destination.addr)
- return -1;
-
-
- ping_info->last_rx_tm = timer_get_ms();
-
- return 0;
-}
-
-static void print_stats(struct ping_info_t* ping_info)
-{
- printk("\n--- %s ping statistics ---\n",
- ip2str(ping_info->destination));
- printk("%d packets transmitted, %d received, %d%% packet loss, "\
- "time %dms\n\n",
- ping_info->num_tx, ping_info->num_rx,
- 100 * (ping_info->num_tx - ping_info->num_rx) /
- ping_info->num_tx,
- timer_get_ms() - ping_info->first_tx_tm);
-}
-
-static void ping_finalize(struct ping_info_t* ping_info) {
- print_stats(ping_info);
- if (ping_info->complete_cb) {
- ping_info->complete_cb(ping_info->num_tx, ping_info->num_rx, ping_info->ctx);
- }
-}
-
-cmd_state_t cmd_ping(int argc, char* argv[], void* ctx)
-{
- static enum {
- INIT,
- PING,
- WAIT_REPLY
- } state = INIT;
-
- struct ping_info_t *ping_info = &INFO;
- static struct raw_pcb *pcb;
-
- switch (state) {
- case INIT:
- if (init_ping_info(argc, argv, ping_info) != 0) {
- printk("Usage: ping [-c count] [-i interval] " \
- "[-s packetsize]\n " \
- "[-w deadline] [-q] destination\n");
- return CMD_DONE;
- }
-
- if (!(pcb = raw_new(IP_PROTO_ICMP))) {
- printk("could not allocate pcb\n");
- state = INIT;
- return CMD_DONE;
- }
- raw_recv(pcb, ping_recv, ping_info);
- raw_bind(pcb, IP_ADDR_ANY);
-
- printk("PING %s %d(%d) bytes of data\n",
- ip2str(ping_info->destination),
- ping_info->data_size,
- ping_info->size);
- state = PING;
- /* fall through */
-
- case PING:
- if (!netif_is_up(netif_default)) {
- printk("netif is down\n");
- raw_remove(pcb);
- state = INIT;
- return CMD_DONE;
- }
-
- if (ping_info->count && ping_info->num_tx == ping_info->count) {
- ping_finalize(ping_info);
- raw_remove(pcb);
- state = INIT;
- return CMD_DONE;
- }
-
-
- if (timer_get_ms() < ping_info->last_rx_tm + ping_info->interval) {
- return CMD_INPROGRESS;
- }
- ping_send(pcb, ping_info);
-
- state = WAIT_REPLY;
- return CMD_INPROGRESS;
-
- case WAIT_REPLY:
- if (ping_info->flags & PING_REPLY) {
- ping_info->flags &= (~PING_REPLY);
- state = PING;
- return CMD_INPROGRESS;
- }
-
- if (timer_get_ms() >
- ping_info->last_tx_tm + ping_info->timeout) {
- if (!ping_info->quiet)
- printk("timeout from %s\n",
- ip2str(ping_info->destination));
- state = PING;
- return CMD_INPROGRESS;
- }
-
- if (ping_info->deadline &&
- timer_get_ms() >
- ping_info->first_tx_tm + ping_info->deadline * 1000) {
- ping_finalize(ping_info);
- raw_remove(pcb);
- state = INIT;
- return CMD_DONE;
- }
-
- return CMD_INPROGRESS;
- }
-
- /* unreachable */
- Assert(0);
- return CMD_DONE;
-}
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/ping.h b/firmwares/wifishield/wifiHD/src/ping.h
deleted file mode 100644
index 47d409d..0000000
--- a/firmwares/wifishield/wifiHD/src/ping.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is derived from a part of the lwIP TCP/IP stack.
- *
- */
-#ifndef PING_H
-#define PING_H
-
-#include "console.h"
-
-typedef void (*ping_complete_cb_t)(uint32_t tx_pkt_cnt, uint32_t rx_pkt_cnt, void *ctx);
-
-void ping_set_callback(ping_complete_cb_t cb, void *ctx);
-
-void ping_stop(uint32_t *tx_cnt, uint32_t *rx_cnt);
-
-cmd_state_t cmd_ping(int argc, char* argv[], void* ctx);
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/printf-stdarg.c b/firmwares/wifishield/wifiHD/src/printf-stdarg.c
deleted file mode 100644
index 92eb217..0000000
--- a/firmwares/wifishield/wifiHD/src/printf-stdarg.c
+++ /dev/null
@@ -1,323 +0,0 @@
-/* This source file is part of the ATMEL AVR32-SoftwareFramework-AT32UC3A-1.4.0 Release */
-
-/*This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file *********************************************************************
- *
- * \brief sprintf functions to replace newlib for AVR32 UC3.
- *
- * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
- * - Supported devices: All AVR32 devices can be used.
- * - AppNote:
- *
- * \author Atmel Corporation: http://www.atmel.com \n
- * Support and FAQ: http://support.atmel.no/
- *
- *****************************************************************************/
-
-/* Copyright (C) 2006-2008, Atmel Corporation All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of ATMEL may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- Copyright 2001, 2002 Georges Menie (www.menie.org)
- stdarg version contributed by Christian Ettinger
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-/*
- putchar is the only external dependency for this file,
- if you have a working putchar, leave it commented out.
- If not, uncomment the define below and
- replace outbyte(c) by your own function call.
-
-*/
-
-
-#include <stdarg.h>
-
-static void printchar(char **str, int c)
-{
- extern int board_putchar(char c);
-
- if (str) {
- **str = c;
- ++(*str);
- }
- else (void) board_putchar(c);
-}
-
-#define PAD_RIGHT 1
-#define PAD_ZERO 2
-
-static int prints(char **out, const char *string, int width, int pad)
-{
- register int pc = 0, padchar = ' ';
-
- if (width > 0) {
- register int len = 0;
- register const char *ptr;
- for (ptr = string; *ptr; ++ptr) ++len;
- if (len >= width) width = 0;
- else width -= len;
- if (pad & PAD_ZERO) padchar = '0';
- }
- if (!(pad & PAD_RIGHT)) {
- for ( ; width > 0; --width) {
- printchar (out, padchar);
- ++pc;
- }
- }
- for ( ; *string ; ++string) {
- printchar (out, *string);
- ++pc;
- }
- for ( ; width > 0; --width) {
- printchar (out, padchar);
- ++pc;
- }
-
- return pc;
-}
-
-/* the following should be enough for 32 bit int */
-#define PRINT_BUF_LEN 12
-
-static int printi(char **out, int i, int b, int sg, int width, int pad, int letbase)
-{
- char print_buf[PRINT_BUF_LEN];
- register char *s;
- register int t, neg = 0, pc = 0;
- register unsigned int u = i;
-
- if (i == 0) {
- print_buf[0] = '0';
- print_buf[1] = '\0';
- return prints (out, print_buf, width, pad);
- }
-
- if (sg && b == 10 && i < 0) {
- neg = 1;
- u = -i;
- }
-
- s = print_buf + PRINT_BUF_LEN-1;
- *s = '\0';
-
- while (u) {
- t = u % b;
- if( t >= 10 )
- t += letbase - '0' - 10;
- *--s = t + '0';
- u /= b;
- }
-
- if (neg) {
- if( width && (pad & PAD_ZERO) ) {
- printchar (out, '-');
- ++pc;
- --width;
- }
- else {
- *--s = '-';
- }
- }
-
- return pc + prints (out, s, width, pad);
-}
-
-#if 0
-int fprintf(__FILE *stream, const char *format, ...)
-{
-return 0;
-}
-#endif
-
-int printk_va(char **out, const char *format, va_list args )
-{
- register int width, pad;
- register int pc = 0;
- char scr[2];
-
- for (; *format != 0; ++format) {
- if (*format == '%') {
- ++format;
- width = pad = 0;
- if (*format == '\0') break;
- if (*format == '%') goto out;
- if (*format == '-') {
- ++format;
- pad = PAD_RIGHT;
- }
- while (*format == '0') {
- ++format;
- pad |= PAD_ZERO;
- }
- for ( ; *format >= '0' && *format <= '9'; ++format) {
- width *= 10;
- width += *format - '0';
- }
- if( *format == 's' ) {
- register char *s = (char *)va_arg( args, int );
- pc += prints (out, s?s:"(null)", width, pad);
- continue;
- }
- if( *format == 'd' ) {
- pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a');
- continue;
- }
- if( *format == 'p' ) {
- pad = 8;
- pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a');
- continue;
- }
- if( *format == 'x' ) {
- pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a');
- continue;
- }
- if( *format == 'X' ) {
- pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A');
- continue;
- }
- if( *format == 'u' ) {
- pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a');
- continue;
- }
- if( *format == 'c' ) {
- /* char are converted to int then pushed on the stack */
- scr[0] = (char)va_arg( args, int );
- scr[1] = '\0';
- pc += prints (out, scr, width, pad);
- continue;
- }
- }
- else {
- out:
- printchar (out, *format);
- ++pc;
- }
- }
- if (out) **out = '\0';
- va_end( args );
- return pc;
-}
-
-int printk(const char *format, ...)
-{
- va_list args;
-
- va_start( args, format );
- return printk_va( 0, format, args );
-}
-
-#ifndef __ARM__
-int sprintf(char *out, const char *format, ...)
-{
- va_list args;
-
- va_start( args, format );
- return printk_va( &out, format, args );
-}
-#endif
-
-#ifdef TEST_PRINTF
-int main(void)
-{
- char *ptr = "Hello world!";
- char *np = 0;
- int i = 5;
- unsigned int bs = sizeof(int)*8;
- int mi;
- char buf[80];
-
- mi = (1 << (bs-1)) + 1;
- printf("%s\n", ptr);
- printf("printf test\n");
- printf("%s is null pointer\n", np);
- printf("%d = 5\n", i);
- printf("%d = - max int\n", mi);
- printf("char %c = 'a'\n", 'a');
- printf("hex %x = ff\n", 0xff);
- printf("hex %02x = 00\n", 0);
- printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3);
- printf("%d %s(s)%", 0, "message");
- printf("\n");
- printf("%d %s(s) with %%\n", 0, "message");
- sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf);
- sprintf(buf, "justif: \"%10s\"\n", "right"); printf("%s", buf);
- sprintf(buf, " 3: %04d zero padded\n", 3); printf("%s", buf);
- sprintf(buf, " 3: %-4d left justif.\n", 3); printf("%s", buf);
- sprintf(buf, " 3: %4d right justif.\n", 3); printf("%s", buf);
- sprintf(buf, "-3: %04d zero padded\n", -3); printf("%s", buf);
- sprintf(buf, "-3: %-4d left justif.\n", -3); printf("%s", buf);
- sprintf(buf, "-3: %4d right justif.\n", -3); printf("%s", buf);
-
- return 0;
-}
-
-/*
- * if you compile this file with
- * gcc -Wall $(YOUR_C_OPTIONS) -DTEST_PRINTF -c printf.c
- * you will get a normal warning:
- * printf.c:214: warning: spurious trailing `%' in format
- * this line is testing an invalid % at the end of the format string.
- *
- * this should display (on 32bit int machine) :
- *
- * Hello world!
- * printf test
- * (null) is null pointer
- * 5 = 5
- * -2147483647 = - max int
- * char a = 'a'
- * hex ff = ff
- * hex 00 = 00
- * signed -3 = unsigned 4294967293 = hex fffffffd
- * 0 message(s)
- * 0 message(s) with %
- * justif: "left "
- * justif: " right"
- * 3: 0003 zero padded
- * 3: 3 left justif.
- * 3: 3 right justif.
- * -3: -003 zero padded
- * -3: -3 left justif.
- * -3: -3 right justif.
- */
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/printf-stdarg.h b/firmwares/wifishield/wifiHD/src/printf-stdarg.h
deleted file mode 100644
index bce38b6..0000000
--- a/firmwares/wifishield/wifiHD/src/printf-stdarg.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef PRINTF_STDARG_H
-#define PRINTF_STDARG_H
-#include <stdarg.h>
-
-int printk(const char *format, ...);
-int printk_va(char **out, const char *format, va_list args );
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/timer.c b/firmwares/wifishield/wifiHD/src/timer.c
deleted file mode 100644
index 6ffba63..0000000
--- a/firmwares/wifishield/wifiHD/src/timer.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdint.h>
-#include <rtc.h>
-#include <intc.h>
-#include <timer.h>
-#ifdef FREERTOS_USED
-#include "FreeRTOS.h"
-#include "task.h"
-#endif
-
-#define TIMER_HZ 4
-
-
-struct timeout_t {
- U32 tick;
- U32 expire_at_tick;
- Bool expired;
- U8 type;
- void (*cb)(void* ctx);
- void* ctx;
-};
-
-struct timer_t {
- volatile U32 tick;
- struct timeout_t timeout[10];
- void (*tick_isr) (void* ctx);
- const U32 MS_PER_TICK;
- void *ctx;
-};
-
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
-
-static struct timer_t TIMER = {
- .tick = 0,
-#ifdef FREERTOS_USED
- .MS_PER_TICK = 1 / portTICK_RATE_MS,
-#else
- .MS_PER_TICK = TIMER_HZ,
-#endif
- .timeout = { { 0 } },
-};
-
-#ifdef FREERTOS_USED /* Use TICK-hook */
-
-void vApplicationTickHook( void ) {
- struct timer_t* priv = &TIMER;
- priv->tick++;
- if(priv->tick_isr) {
- priv->tick_isr(priv->ctx);
- }
-}
-
-#else /* Use interrupt directly */
-
-static __attribute__((__interrupt__)) void irq_handler(void)
-{
- volatile avr32_rtc_t *rtc = &AVR32_RTC;
- struct timer_t* priv = &TIMER;
- priv->tick++;
-
- if(priv->tick_isr)
- priv->tick_isr(priv->ctx);
-
- rtc->icr = AVR32_RTC_ICR_TOPI_MASK;
- rtc->isr;
-}
-
-#endif
-
-void timer_init(void (*tick_isr) (void* ctx), void* ctx)
-{
- struct timer_t* priv = &TIMER;
- uint8_t id;
-
-#ifndef FREERTOS_USED
- INTC_register_interrupt(&irq_handler, AVR32_RTC_IRQ, AVR32_INTC_INT0);
- if (!rtc_init(&AVR32_RTC, RTC_OSC_RC, 0))
- Assert(0);
-
- rtc_set_top_value(&AVR32_RTC, 115 * priv->MS_PER_TICK / 2);
- rtc_enable_interrupt(&AVR32_RTC);
- rtc_enable(&AVR32_RTC);
-#else
- /* With FreeRTOS we use the OS tick instead */
-#endif
- priv->tick_isr = tick_isr;
- priv->ctx = ctx;
-
- for (id = 0; id < ARRAY_SIZE(priv->timeout); id++)
- priv->timeout[id].expired = TRUE;
-}
-
-
-U32 timer_get_ms(void)
-{
- struct timer_t* priv = &TIMER;
- return priv->tick * priv->MS_PER_TICK;
-}
-
-void timer_delay(U32 ms)
-{
- struct timer_t* priv = &TIMER;
- U32 expire_at_tick = priv->tick + ms / priv->MS_PER_TICK;
- while (priv->tick < expire_at_tick);
-}
-
-/**
- * Called from application main loop to invoke any scheduled timeout cbs.
- * This function might be called as often as possible rather than at each tick
- * to support the timeout value '0', e.g a timeout within less than one tick.
- *
- */
-void timer_poll(void)
-{
- struct timer_t* priv = &TIMER;
- U8 i;
-
- for (i = 0; i < ARRAY_SIZE(priv->timeout); i++) {
- struct timeout_t* tmo = &priv->timeout[i];
- if (tmo->expired)
- continue;
-
- if (tmo->expire_at_tick > priv->tick)
- continue;
-
- if (tmo->cb)
- tmo->cb(tmo->ctx);
-
- if (tmo->type == TIMEOUT_PERIODIC)
- tmo->expire_at_tick = priv->tick + tmo->tick;
- else
- tmo->expired = TRUE;
- }
-}
-
-static U32 timer_sched_timeout(U32 ms, U8 type)
-{
- struct timer_t* priv = &TIMER;
- struct timeout_t* tmo;
- U8 id;
-
- Assert(type == TIMEOUT_ONESHOT || type == TIMEOUT_PERIODIC);
-
- for (id = 0; id < ARRAY_SIZE(priv->timeout); id++) {
- tmo = &priv->timeout[id];
- if (tmo->expired)
- break;
- }
-
- Assert(id != ARRAY_SIZE(priv->timeout));
-
- tmo->tick = ms / priv->MS_PER_TICK;
- tmo->expire_at_tick = priv->tick + tmo->tick;
- tmo->type = type;
- tmo->expired = FALSE;
- return id;
-}
-
-U32 timer_sched_timeout_cb(U32 ms, U8 type, void (*cb)(void *ctx), void* ctx)
-{
- struct timer_t* priv = &TIMER;
- struct timeout_t* tmo;
- U8 id;
-
- Assert(cb);
- id = timer_sched_timeout(ms, type);
- tmo = &priv->timeout[id];
-
- tmo->cb = cb;
- tmo->ctx = ctx;
- return id;
-}
-
-
-U32 timer_mod(U32 id, U32 ms, U8 type, void (*cb)(void *ctx), void* ctx)
-{
- struct timer_t* priv = &TIMER;
-
- if (id != INVALID_TIMER_ID && !priv->timeout[id].expired)
- timer_cancel_timeout(id);
-
- return timer_sched_timeout_cb(ms, type, cb, ctx);
-}
-
-void timer_cancel_timeout(U32 id)
-{
- struct timer_t* priv = &TIMER;
- struct timeout_t* tmo;
-
- tmo = &priv->timeout[id];
- tmo->expired = TRUE;
-}
-
-int timer_interval_passed(U32 old, U32 new, U32 diff) {
- /* New did not wrap */
- if (new > old && new - old > diff) {
- return 1;
- }
- /* New did wrap */
- else if (new < old && ( ( (U32)(-1) - old ) + new ) > diff ) {
- return 1;
- }
- return 0;
-}
diff --git a/firmwares/wifishield/wifiHD/src/timer.h b/firmwares/wifishield/wifiHD/src/timer.h
deleted file mode 100644
index 6614fbc..0000000
--- a/firmwares/wifishield/wifiHD/src/timer.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef TIMER_H
-#define TIMER_H
-#include <stdint.h>
-
-enum {
- TIMEOUT_ONESHOT,
- TIMEOUT_PERIODIC
-};
-
-#define INVALID_TIMER_ID 0xFFFFFFFF
-
-/* Handle timer overflows. Return 1 if the interval has passed. */
-int timer_interval_passed(uint32_t old, uint32_t new, uint32_t diff);
-
-void timer_tick();
-void timer_init(void (*tick_isr) (void* ctx), void* ctx);
-void timer_poll(void);
-void timer_delay(uint32_t ms);
-uint32_t timer_sched_timeout_cb(uint32_t ms, uint8_t type, void (*cb)(void *ctx), void* ctx);
-uint32_t timer_mod(uint32_t id, uint32_t ms, uint8_t type, void (*cb)(void *ctx), void* ctx);
-void timer_cancel_timeout(uint32_t id);
-uint32_t timer_get_ms(void);
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/top_defs.h b/firmwares/wifishield/wifiHD/src/top_defs.h
deleted file mode 100644
index 09f7c3e..0000000
--- a/firmwares/wifishield/wifiHD/src/top_defs.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _TOP_DEFS_H
-#define _TOP_DEFS_H
-
-#include <stdlib.h>
-#include <stdint.h>
-
-#define ARRAY_SIZE(a) sizeof(a) / sizeof((a)[0])
-
-#ifndef UNREF
-#define UNREF(x) x = x
-#endif
-
-#if __GNUC__
-#ifdef __KERNEL__
-#define WEAK_DECL
-#else
-#define WEAK_DECL __attribute__ ((__weak__))
-#endif
-#define PACKED __attribute__ ((__packed__))
-#define USED __attribute__ ((__used__))
-#else
- #error "Unsupported compiler"
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-
-#if 0
-#include <stdio.h>
-/*
- * These functions should _NOT_ be used, call iprintf, sniprintf, iscanf, siscanf etc
- * instead. Those functions do not have support for floating point formats.
- * Not using these functions saves 27kB of code.
- */
-extern int printf(const char *format, ...) __attribute__ ((deprecated));
-extern int sprintf(char *str, const char *format, ...) __attribute__ ((deprecated));
-extern int snprintf(char *str, size_t size, const char *format, ...) __attribute__ ((deprecated));
-
-int vprintf(const char *format, va_list ap) __attribute__ ((deprecated));
-int vfprintf(FILE *stream, const char *format, va_list ap) __attribute__ ((deprecated));
-int vsprintf(char *str, const char *format, va_list ap) __attribute__ ((deprecated));
-int vsnprintf(char *str, size_t size, const char *format, va_list ap) __attribute__ ((deprecated));
-
-int scanf(const char *format, ...) __attribute__ ((deprecated));
-int fscanf(FILE *stream, const char *format, ...) __attribute__ ((deprecated));
-int sscanf(const char *str, const char *format, ...) __attribute__ ((deprecated));
-
-int vscanf(const char *format, va_list ap) __attribute__ ((deprecated));
-int vsscanf(const char *str, const char *format, va_list ap) __attribute__ ((deprecated));
-int vfscanf(FILE *stream, const char *format, va_list ap) __attribute__ ((deprecated));
-#endif
-
-#endif
-
-
-
-#if defined(__linux__) || defined(__APPLE__)
- #include <stdint.h>
- #include <assert.h>
- #define sniprintf snprintf
- #define asiprintf asprintf
- #define printk printf
- #define siscanf sscanf
-
- #define WL_ASSERT(x) assert(x)
- #define WL_DEBUG(args...) printf(args)
-
- #ifdef NO_LWIP
- /* IP address representation from lwIP */
- struct ip_addr {
- uint32_t addr;
- } PACKED;
- #endif
-
- #define FEAT_SOCKETS
-
-#else
- #define WL_ASSERT(cond) do { \
- if (!(cond)) { \
- printk("%s:%d\n", __FILE__, __LINE__); \
- for(;;); \
- } \
- } while(0)
- #define WL_DEBUG(args...) printk(args)
-
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/trace.h b/firmwares/wifishield/wifiHD/src/trace.h
deleted file mode 100644
index 984262a..0000000
--- a/firmwares/wifishield/wifiHD/src/trace.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef TRACE_H
-#define TRACE_H
-
-#include <compiler.h>
-#include "printf-stdarg.h"
-
-#define ASSERT(cond, str) do { \
- if (!(cond)) { \
- printk("%s\n", str); \
- Assert(0); \
- } \
- } while(0)
-
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/util.c b/firmwares/wifishield/wifiHD/src/util.c
deleted file mode 100644
index c01edeb..0000000
--- a/firmwares/wifishield/wifiHD/src/util.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <top_defs.h>
-#include <util.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <wl_api.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <string.h>
-#include <printf-stdarg.h>
-
-const char* ip2str(struct ip_addr addr)
-{
- static char buf[16];
-
-#if BYTE_ORDER == LITTLE_ENDIAN
- sniprintf(buf, sizeof(buf), "%lu.%lu.%lu.%lu",
- addr.addr & 0xff,
- (addr.addr >> 8) & 0xff,
- (addr.addr >> 16) & 0xff,
- (addr.addr >> 24) & 0xff);
- return buf;
-#else
- sniprintf(buf, sizeof(buf), "%lu.%lu.%lu.%lu",
- (addr.addr >> 24) & 0xff,
- (addr.addr >> 16) & 0xff,
- (addr.addr >> 8) & 0xff,
- (addr.addr) & 0xff);
- return buf;
-#endif
-}
-
-struct ip_addr str2ip(const char* str)
-{
- int a,b,c,d;
- uint32_t ip = 0;
- struct ip_addr addr;
-
- if (siscanf(str,"%d.%d.%d.%d",&a,&b,&c,&d) != 4)
- goto out;
-
- if (a < 0 || a > 255 || b < 0 || b > 255 ||
- c < 0 || c > 255 || d < 0 || d > 255) {
- goto out;
- }
-
-#if BYTE_ORDER == LITTLE_ENDIAN
- ip = (d << 24) | (c << 16) | (b << 8) | a;
-#else
- ip = (a << 24) | (b << 16) | (c << 8) | d;
-#endif
-
- out:
- addr.addr = ip;
- return addr;
-}
-
-uint8_t ascii_to_key(char *outp, const char *inp) {
- char buf[3];
- int len;
- buf[2] = '\0';
- len = strlen(inp);
- if (len % 2) {
- printk("Invalid length\n");
- }
- len = 0;
- while (*inp) {
- if (! isxdigit(*inp) || ! isxdigit(*(inp+1)) ||
- len > WL_MAX_PASS_LEN) {
- return 0;
- }
- buf[0] = *inp++;
- buf[1] = *inp++;
- *outp++ = strtol(buf, NULL, 16);
- len++;
- }
- return len;
-}
-
-
-
-void printbuf(const char *prefix, const void *data, size_t len)
-{
- const unsigned char *s = data;
- int i, j;
-
- for (i = 0; i < len; i += 16)
- {
- printk("%s ", prefix);
- for(j = 0; j < 16; j++) {
- if(i + j >= len)
- printk(" ");
- else
- printk("%02X ", (uint16_t)s[i + j]);
- }
- printk(": ");
- for(j = 0; j < 16; j++) {
- if(i + j >= len)
- break;
- if(s[i+j] >= 32 && s[i+j] < 127)
- printk("%c", s[i + j]);
- else
- printk(".");
- }
- printk("\n");
- }
-}
-
-
-void print_network(struct wl_network_t* wl_network)
-{
- printk("%s ", mac2str(wl_network->bssid.octet));
- printk("\"%s\"", ssid2str(&wl_network->ssid));
- printk(" RSSI %d dBm ", wl_network->rssi);
- switch(wl_network->net_type) {
- case WL_CONN_TYPE_ADHOC:
- printk(" Ad-Hoc ");
- break;
- default :
- break;
- }
- switch (wl_network->enc_type) {
- case ENC_TYPE_WEP :
- printk(" (WEP encryption)");
- break;
- case ENC_TYPE_TKIP :
- printk(" (TKIP encryption)");
- break;
- case ENC_TYPE_CCMP :
- printk(" (CCMP encryption)");
- break;
- case ENC_TYPE_NONE :
- break;
- }
- printk("\n");
-
-}
-
-void print_network_list(void)
-{
- struct wl_network_list_t* wl_network_list;
- uint8_t i;
-
- wl_get_network_list(&wl_network_list);
-
- if (wl_network_list->cnt == 0)
- printk("no nets found\n");
-
- for (i = 0; i < wl_network_list->cnt; i++)
- print_network(wl_network_list->net[i]);
-}
-
-int join_argv(char *dst, size_t dst_len, int argc, char* argv[]) {
- char *p = dst;
- int i;
- int len = 0;
-
- /* Not really kosher, an ssid may legally contain 0-bytes but
- * the console interface does not deal with that.
- */
- for (i = 0; i < argc; i++) {
- len += strlen(argv[i]);
- if (len > dst_len) {
- printk("ssid too long (max %d)\n", (int) dst_len);
- return 0;
- }
- p += sniprintf(p,
- dst_len - (p - dst),
- "%s ",
- argv[i]);
- }
- if (p == dst) {
- return 0;
- }
- p--;
- *p = '\0'; /* Delete last space */
-
- return p - dst;
-}
-
-const char* ssid2str(struct wl_ssid_t *ssid) {
- static char buf[WL_SSID_MAX_LENGTH + 1];
-
- memset(buf, 0, sizeof buf);
- memcpy(buf, ssid->ssid, ssid->len);
-
- return buf;
-}
-
-
-const char* mac2str(uint8_t* mac)
-{
- static char buf[18];
- sniprintf(buf, sizeof(buf), "%02x-%02x-%02x-%02x-%02x-%02x",
- mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
- return buf;
-}
-
-
-char* enc_type2str(enum wl_enc_type enc_type)
-{
- switch(enc_type) {
- case ENC_TYPE_WEP:
- return "WEP";
- case ENC_TYPE_CCMP:
- return "CCMP";
- case ENC_TYPE_TKIP:
- return "TKIP";
- default:
- return "";
- };
-}
-
-int equal_ssid(const struct wl_ssid_t* ssid1,
- const struct wl_ssid_t* ssid2) {
- if (ssid1->len == ssid2->len &&
- (memcmp(ssid1->ssid, ssid2->ssid, ssid1->len) == 0)) {
- return 1;
- }
- return 0;
-}
-
-int equal_bssid(const struct wl_mac_addr_t* bssid1,
- const struct wl_mac_addr_t* bssid2) {
- if (memcmp(bssid1, bssid2, sizeof *bssid1) == 0) {
- return 1;
- }
- return 0;
-}
-
-
diff --git a/firmwares/wifishield/wifiHD/src/util.h b/firmwares/wifishield/wifiHD/src/util.h
deleted file mode 100644
index 2b3f74f..0000000
--- a/firmwares/wifishield/wifiHD/src/util.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _UTIL_H
-#define _UTIL_H
-#include <stdint.h>
-#include <stdlib.h>
-#include <wl_api.h>
-#include "lwip/ip.h"
-#include <console.h>
-
-const char* ip2str(struct ip_addr addr);
-
-struct ip_addr str2ip(const char* str);
-
-uint8_t ascii_to_key(char *outp, const char *inp);
-
-void print_network(struct wl_network_t* wl_network);
-
-void print_network_list(void);
-
-int join_argv(char *dst, size_t dst_len, int argc, char* argv[]);
-
-void printbuf(const char *prefix, const void *data, size_t len);
-
-const char* ssid2str(struct wl_ssid_t *ssid);
-
-const char* mac2str(uint8_t mac[6]);
-
-char* enc_type2str(enum wl_enc_type enc_type);
-
-int equal_ssid(const struct wl_ssid_t* ssid1,
- const struct wl_ssid_t* ssid2);
-
-int equal_bssid(const struct wl_mac_addr_t* bssid1,
- const struct wl_mac_addr_t* bssid2);
-
-#define NET_SET_SSID(net, xssid, ssid_len) do { \
- DE_MEMCPY((net)->ssid.ssid, (xssid), (ssid_len)); \
- (net)->ssid.len = (ssid_len); \
- } while (0)
-
-#define NET_SET_BSSID(net, xbssid) do { \
- DE_MEMCPY(&(net)->bssid, &(xbssid), sizeof (xbssid)); \
- } while (0)
-
-#endif /* _UTIL_H */
diff --git a/firmwares/wifishield/wifiHD/src/wifi_spi.h b/firmwares/wifishield/wifiHD/src/wifi_spi.h
deleted file mode 100644
index e2e262c..0000000
--- a/firmwares/wifishield/wifiHD/src/wifi_spi.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * wifi_spi.h
- *
- * Created on: Jul 4, 2010
- * Author: mlf by Metodo2 srl
- */
-#ifndef WiFi_Spi_h
-#define WiFi_Spi_h
-
-#include "wl_definitions.h"
-
-#define CMD_FLAG 0
-#define REPLY_FLAG 1<<7
-#define DATA_FLAG 0x40
-
-#define WIFI_SPI_ACK 1
-#define WIFI_SPI_ERR 0xFF
-
-#define TIMEOUT_CHAR 1000
-
-//#define MAX_SOCK_NUM 4 /**< Maxmium number of socket */
-#define NO_SOCKET_AVAIL 255
-
-#define START_CMD 0xE0
-#define END_CMD 0xEE
-#define ERR_CMD 0xEF
-#define CMD_POS 1 // Position of Command OpCode on SPI stream
-#define PARAM_LEN_POS 2 // Position of Param len on SPI stream
-
-enum {
- SET_NET_CMD = 0x10,
- SET_PASSPHRASE_CMD = 0x11,
- SET_KEY_CMD = 0x12,
- TEST_CMD = 0x13,
- SET_IP_CONFIG_CMD = 0x14,
- SET_DNS_CONFIG_CMD = 0x15,
-
- GET_CONN_STATUS_CMD = 0x20,
- GET_IPADDR_CMD = 0x21,
- GET_MACADDR_CMD = 0x22,
- GET_CURR_SSID_CMD = 0x23,
- GET_CURR_BSSID_CMD = 0x24,
- GET_CURR_RSSI_CMD = 0x25,
- GET_CURR_ENCT_CMD = 0x26,
- SCAN_NETWORKS = 0x27,
- START_SERVER_TCP_CMD= 0x28,
- GET_STATE_TCP_CMD = 0x29,
- DATA_SENT_TCP_CMD = 0x2A,
- AVAIL_DATA_TCP_CMD = 0x2B,
- GET_DATA_TCP_CMD = 0x2C,
- START_CLIENT_TCP_CMD= 0x2D,
- STOP_CLIENT_TCP_CMD = 0x2E,
- GET_CLIENT_STATE_TCP_CMD = 0x2F,
- DISCONNECT_CMD = 0x30,
- GET_IDX_SSID_CMD = 0x31,
- GET_IDX_RSSI_CMD = 0x32,
- GET_IDX_ENCT_CMD = 0x33,
- REQ_HOST_BY_NAME_CMD= 0x34,
- GET_HOST_BY_NAME_CMD= 0x35,
- START_SCAN_NETWORKS = 0x36,
- GET_FW_VERSION_CMD = 0x37,
- GET_TEST_CMD = 0x38,
- SEND_DATA_UDP_CMD = 0x39,
- GET_REMOTE_DATA_CMD = 0x3A,
-
- // All command with DATA_FLAG 0x40 send a 16bit Len
-
- SEND_DATA_TCP_CMD = 0x44,
- GET_DATABUF_TCP_CMD = 0x45,
- INSERT_DATABUF_CMD = 0x46,
-
-};
-
-#if 0
-enum wl_tcp_state {
- CLOSED = 0,
- LISTEN = 1,
- SYN_SENT = 2,
- SYN_RCVD = 3,
- ESTABLISHED = 4,
- FIN_WAIT_1 = 5,
- FIN_WAIT_2 = 6,
- CLOSE_WAIT = 7,
- CLOSING = 8,
- LAST_ACK = 9,
- TIME_WAIT = 10
-};
-#endif
-
-enum numParams{
- PARAM_NUMS_0,
- PARAM_NUMS_1,
- PARAM_NUMS_2,
- PARAM_NUMS_3,
- PARAM_NUMS_4,
- PARAM_NUMS_5,
- MAX_PARAM_NUMS
-};
-
-#define MAX_PARAMS MAX_PARAM_NUMS-1
-#define PARAM_LEN_SIZE 1
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- char* param;
-}tParam;
-
-typedef struct __attribute__((__packed__))
-{
- uint16_t dataLen;
- char* data;
-}tDataParam;
-
-
-typedef struct __attribute__((__packed__))
-{
- unsigned char cmd;
- unsigned char tcmd;
- unsigned char nParam;
- tParam params[MAX_PARAMS];
-}tSpiMsg;
-
-typedef struct __attribute__((__packed__))
-{
- unsigned char cmd;
- unsigned char tcmd;
- unsigned char nParam;
- tDataParam params[MAX_PARAMS];
-}tSpiMsgData;
-
-
-typedef struct __attribute__((__packed__))
-{
- unsigned char cmd;
- unsigned char tcmd;
- //unsigned char totLen;
- unsigned char nParam;
-}tSpiHdr;
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- uint32_t param;
-}tLongParam;
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- uint16_t param;
-}tIntParam;
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- uint8_t param;
-}tByteParam;
-
-#endif
-uint8_t param; \ No newline at end of file
diff --git a/firmwares/wifishield/wifiHD/src/wl_cm.c b/firmwares/wifishield/wifiHD/src/wl_cm.c
deleted file mode 100644
index ebc0e45..0000000
--- a/firmwares/wifishield/wifiHD/src/wl_cm.c
+++ /dev/null
@@ -1,431 +0,0 @@
-/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "wl_cm.h"
-#include "util.h"
-#include <string.h>
-#include "debug.h"
-
-/** Roaming configuration parameters **/
-
-/*! The ROAMING_RSSI_THRESHOLD setting defines how bad the current
- * signal strength should be before we'll consider roaming to an AP
- * with better signal strength. The objective is to stay on the
- * current AP as long as the RSSI is decent, even if there are other
- * APs in the same BSS with better RSSI available.
- * If ROAMING_RSSI_THRESHOLD is too high we might roam unecessarily.
- * If ROAMING_RSSI_THRESHOLD is too low we might not roam in time to
- * avoid packet loss. This also impacts power consumption, staying
- * too long with an AP with poor RSSI will consume more power.
- * Unit is dBm.
- */
-#define ROAMING_RSSI_THRESHOLD -65
-
-/*! The ROAMING_RSSI_DIFF setting defines how much better
- * than the currently associated AP a new AP must be before
- * we'll attempt to roam over to the new AP.
- * If ROAMING_RSSI_DIFF is too high it might be too hard
- * to roam (important if the STA is expected to move
- * quickly through different AP coverage areas).
- * If ROAMING_RSSI_DIFF is too low we might bounce between
- * two APs with similar signal strengths.
- * Unit is dBm.
- */
-#define ROAMING_RSSI_DIFF 10
-
-# include "printf-stdarg.h"
-#include "ard_utils.h"
-#include "debug.h"
-
-/** \defgroup wl_cm Connection Manager
- *
- * These functions are used to configure and control the WiFi connetion
- * manager.
- *
- *
- * @{
- */
-
-struct cm_candidate {
- struct wl_ssid_t ssid;
- struct wl_mac_addr_t bssid;
-};
-
-struct cm {
- cm_scan_cb_t *scan_cb;
- cm_conn_cb_t *conn_cb;
- cm_disconn_cb_t *disconn_cb;
- void* ctx;
- uint8_t enabled;
- struct cm_candidate candidate;
-};
-
-
-/**
- * This function can be modified to pick a network based on
- * application specific criteria.
- *
- * If the SSID can not be found in the scan list it will be
- * assumed to be a hidden SSID and the wl_connect() command
- * will be called to attempt to probe for the network and
- * connect to it.
- */
-static struct wl_network_t*
-find_best_candidate(struct cm* cm)
-{
- struct wl_network_list_t* netlist;
- struct wl_network_t *best_net = NULL;
- uint8_t i;
-
- if (wl_get_network_list(&netlist) != WL_SUCCESS)
- return NULL;
-
- if (netlist->cnt == 0)
- return NULL;
-
- for (i = 0; i < netlist->cnt; i++) {
- /* match on ssid */
- if (cm->candidate.ssid.len)
- if (!equal_ssid(&cm->candidate.ssid,
- &netlist->net[i]->ssid))
- continue;
-
- /* match bssid */
- if (strncmp((char*) cm->candidate.bssid.octet,
- "\xff\xff\xff\xff\xff\xff", 6))
- if (!equal_bssid(&cm->candidate.bssid,
- &netlist->net[i]->bssid))
- continue;
- /* check for best rssi. */
- if ( best_net &&
- ( best_net->rssi > netlist->net[i]->rssi) ) {
- continue;
- }
- best_net = netlist->net[i];
- }
-
- return best_net;
-}
-
-
-/**
- *
- */
-static void
-select_net(struct cm* cm)
-{
- struct wl_network_t *candidate_net;
- struct wl_network_t *current_net;
- struct wl_ssid_t *ssid_p;
-
- int ret;
-
- /* Nothing to do */
- if (0 == cm->candidate.ssid.len) {
- return;
- }
-
- current_net = wl_get_current_network();
- candidate_net = find_best_candidate(cm);
-
- /* Connected to the candidate? ... */
- if ( current_net == candidate_net ) {
- if ( current_net ) {
- /* ...yes, dont change. */
-
- return;
- }
- }
-
- /* Roaming checks */
- if (current_net && candidate_net) {
- /* Are we changing BSSs? */
- if ( equal_ssid(&candidate_net->ssid,
- &current_net->ssid)) {
-
- /* ...no. Does the currently connected
- * net have a decent RSSI?...*/
- if ( current_net->rssi > ROAMING_RSSI_THRESHOLD ) {
- /* ...yes, stay with it. */
- return;
- }
- /* ...no. Does the candidate have
- * sufficiently better RSSI to
- * motivate a switch to it? */
- if ( candidate_net->rssi < current_net->rssi +
- ROAMING_RSSI_DIFF) {
- return;
- }
- /* ...yes, try to roam to candidate_net */
- CM_DPRINTF("CM: Roaming from rssi %d to %d\n",
- current_net->rssi,
- candidate_net->rssi);
- }
- }
- /* a candidate is found */
- if (candidate_net) {
- /* We connect to a specific bssid here because
- * find_best_candidate() might have picked a
- * particulare AP among many with the same SSID.
- * wl_connect() would pick one of them at random.
- */
- ret = wl_connect_bssid(candidate_net->bssid);
- }
- /* no candidate found */
- else {
- CM_DPRINTF("CM: No candidate found for ssid \"%s\"\n",
- ssid2str(&cm->candidate.ssid));
- /* Might be a hidden SSID so we try to connect to it.
- * wl_connect() will trigger a directed scan
- * for the SSID in this case.
- */
- ssid_p = &cm->candidate.ssid;
- ret = wl_connect(ssid_p->ssid, ssid_p->len);
- }
- switch (ret) {
- case WL_SUCCESS :
- return;
- case WL_BUSY:
- wl_disconnect();
- return;
- case WL_RETRY:
- break;
- default :
- CM_DPRINTF("CM: failed to connect\n");
- break;
- }
-
- /* some operation failed or no candidate found */
- if (wl_scan() != WL_SUCCESS)
- CM_DPRINTF("CM: failed to scan\n");
-}
-
-
-/**
- *
- */
-static void
-wl_scan_complete_cb(void* ctx)
-{
- struct cm *cm = ctx;
-
- CM_DPRINTF("CM: scan completed\n");
-
- if (cm->scan_cb)
- cm->scan_cb(cm->ctx);
-
- if ( 0 == cm->enabled ) {
- return;
- }
- select_net(cm);
-}
-
-/**
- *
- */
-static void
-wl_media_connected_cb(void* ctx)
-{
- struct cm *cm = ctx;
- struct wl_network_t *net = wl_get_current_network();
- CM_DPRINTF("CM: connected to %s\n", ssid2str(&net->ssid));
- LINK_LED_ON();
- ERROR_LED_OFF();
- if (cm->conn_cb)
- cm->conn_cb(net, cm->ctx);
-}
-
-
-/**
- *
- */
-static void
-wl_conn_failure_cb(void* ctx)
-{
- struct cm *cm = ctx;
- CM_DPRINTF("CM: connect failed, scanning\n");
- ERROR_LED_ON();
- LINK_LED_OFF();
-
- if ( 0 == cm->enabled ) {
- return;
- }
- if (wl_scan() != WL_SUCCESS)
- /* should never happen */
- CM_DPRINTF("CM: could not start scan after connect fail!\n");
-}
-
-
-/**
- *
- */
-static void
-wl_conn_lost_cb(void* ctx)
-{
- struct cm *cm = ctx;
- CM_DPRINTF("CM: connection lost, scanning\n");
- LINK_LED_OFF();
- if (cm->disconn_cb)
- cm->disconn_cb(cm->ctx);
-
- if ( 0 == cm->enabled ) {
- return;
- }
- if (wl_scan() != WL_SUCCESS)
- /* should never happen */
- CM_DPRINTF("CM: could not start scan after connect lost!\n");
-}
-
-
-/**
- *
- */
-static void
-wl_event_cb(struct wl_event_t event, void* ctx)
-{
- struct cm *cm = ctx;
-
- switch (event.id) {
- case WL_EVENT_MEDIA_CONNECTED:
- wl_media_connected_cb(cm);
- break;
-
- case WL_EVENT_CONN_FAILURE:
- wl_conn_failure_cb(cm);
- break;
-
- case WL_EVENT_MEDIA_DISCONNECTED:
- CM_DPRINTF("CM: disconnected\n");
- wl_conn_lost_cb(cm);
- break;
-
- case WL_EVENT_SCAN_COMPLETE:
- wl_scan_complete_cb(cm);
- break;
-
- default:
- CM_DPRINTF("CM: unhandled event\n");
- };
-}
-
-static struct cm *cm = NULL;
-
-
-/**
- * Doesn't actually start the CM, just initializing. CM will run whenever
- * an valid ssid is set through wl_cm_set_network() and wl_cm_start()
- * has been called.
- */
-wl_err_t
-wl_cm_init(cm_scan_cb_t scan_cb,
- cm_conn_cb_t conn_cb,
- cm_disconn_cb_t disconn_cb,
- void* ctx)
-{
- if (cm != NULL)
- return WL_FAILURE;
-
- cm = calloc(1, sizeof(struct cm));
- if (cm == NULL) {
- CM_DPRINTF("CM: out of memory\n");
- return WL_FAILURE;
- }
-
- if (wl_register_event_cb(wl_event_cb, cm) != WL_SUCCESS) {
- CM_DPRINTF("CM: could not register event cb\n");
- return WL_FAILURE;
- }
-
- cm->scan_cb = scan_cb;
- cm->conn_cb = conn_cb;
- cm->disconn_cb = disconn_cb;
- cm->enabled = 0;
- cm->ctx = ctx;
-
- CM_DPRINTF("CM: initialized\n");
- return WL_SUCCESS;
-}
-
-wl_err_t
-wl_cm_start(void) {
- if (NULL == cm)
- return WL_FAILURE;
-
- cm->enabled = 1;
- return WL_SUCCESS;
-}
-
-wl_err_t
-wl_cm_stop(void) {
- if (NULL == cm)
- return WL_FAILURE;
-
- cm->enabled = 0;
- return WL_SUCCESS;
-}
-
-
-/**
- * Set the desired network which the connection manager should try to
- * connect to.
- *
- * The ssid and bssid of the desired network should be specified. The ssid and
- * bssid will be matched against the networks found during scan. If any
- * parameter is null, it will always match. If both parameters are null,
- * the first found network will be chosen.
- *
- * @param ssid The ssid of the desired network. If null, any ssid will match.
- * @param bssid The bssid of the desired network. If null, any bssid will match.
- *
- */
-wl_err_t
-wl_cm_set_network(struct wl_ssid_t *ssid, struct wl_mac_addr_t *bssid)
-{
- if (cm == NULL)
- return WL_FAILURE;
-
- if (ssid)
- memcpy(&cm->candidate.ssid, ssid, sizeof(cm->candidate.ssid));
- else
- cm->candidate.ssid.len = 0;
-
- if (bssid)
- memcpy(&cm->candidate.bssid, bssid,
- sizeof(cm->candidate.bssid));
- else
- memset(&cm->candidate.bssid, 0xff, sizeof(cm->candidate.bssid));
-
- if (cm->candidate.ssid.len)
- wl_scan();
-
- return WL_SUCCESS;
-}
-/*
- * @}
- */
diff --git a/firmwares/wifishield/wifiHD/src/wl_cm.h b/firmwares/wifishield/wifiHD/src/wl_cm.h
deleted file mode 100644
index bbb65d9..0000000
--- a/firmwares/wifishield/wifiHD/src/wl_cm.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
-
-/*! \page License
- * Copyright (C) 2009, H&D Wireless AB All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
- * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef WL_CM_H
-#define WL_CM_H
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <wl_api.h>
-
-typedef void (cm_scan_cb_t)(void* ctx);
-typedef void (cm_conn_cb_t)(struct wl_network_t *net, void* ctx);
-typedef void (cm_disconn_cb_t)(void* ctx);
-
-wl_err_t wl_cm_set_network(struct wl_ssid_t *ssid, struct wl_mac_addr_t *bssid);
-
-wl_err_t wl_cm_init(cm_scan_cb_t scan_cb,
- cm_conn_cb_t conn_cb,
- cm_disconn_cb_t disconn_cb,
- void* ctx);
-
-wl_err_t wl_cm_start(void);
-wl_err_t wl_cm_stop(void);
-
-#endif
diff --git a/firmwares/wifishield/wifiHD/src/wl_definitions.h b/firmwares/wifishield/wifiHD/src/wl_definitions.h
deleted file mode 100644
index b07c203..0000000
--- a/firmwares/wifishield/wifiHD/src/wl_definitions.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * wl_definitions.h
- *
- * Created on: Mar 6, 2011
- * Author: mlf by Metodo2 srl
- */
-
-#ifndef WL_DEFINITIONS_H_
-#define WL_DEFINITIONS_H_
-
-// Maximum size of a SSID
-#define WL_SSID_MAX_LENGTH 32
-// Length of passphrase. Valid lengths are 8-63.
-#define WL_WPA_KEY_MAX_LENGTH 63
-// Length of key in bytes. Valid values are 5 and 13.
-#define WL_WEP_KEY_MAX_LENGTH 13
-// Size of a MAC-address or BSSID
-#define WL_MAC_ADDR_LENGTH 6
-// Size of a MAC-address or BSSID
-#define WL_IPV4_LENGTH 4
-// Maximum size of a SSID list
-#define WL_NETWORKS_LIST_MAXNUM 10
-// Maxmium number of socket
-#define MAX_SOCK_NUM 4
-//Maximum number of attempts to establish wifi connection
-#define WL_MAX_ATTEMPT_CONNECTION 10
-
-typedef enum {
- WL_IDLE_STATUS,
- WL_NO_SSID_AVAIL,
- WL_SCAN_COMPLETED,
- WL_CONNECTED,
- WL_CONNECT_FAILED,
- WL_CONNECTION_LOST,
- WL_DISCONNECTED
-} wl_status_t;
-
-
-#endif /* WL_DEFINITIONS_H_ */
diff --git a/firmwares/wifishield/wifiHD/wifiHD.cproj b/firmwares/wifishield/wifiHD/wifiHD.cproj
deleted file mode 100644
index 3d15941..0000000
--- a/firmwares/wifishield/wifiHD/wifiHD.cproj
+++ /dev/null
@@ -1,1291 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectVersion>6.0</ProjectVersion>
- <ToolchainName>com.Atmel.AVRGCC32</ToolchainName>
- <ProjectGuid>417e15db-488a-4b56-8d4e-fbe832b2b649</ProjectGuid>
- <Name>wifiHD</Name>
- <avrdevice>AT32uc3a1256</avrdevice>
- <avrdeviceseries>none</avrdeviceseries>
- <AvrProjectType>Importer</AvrProjectType>
- <OutputType>Executable</OutputType>
- <Language>C</Language>
- <OutputFileName>wifiHD</OutputFileName>
- <OutputFileExtension>.elf</OutputFileExtension>
- <OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
- <ToolchainFlavour>Native</ToolchainFlavour>
- <avrtool>com.atmel.avrdbg.tool.jtagicemk3</avrtool>
- <KeepTimersRunning>true</KeepTimersRunning>
- <AsfFrameworkConfig>
- <framework-data>
- <options />
- <configurations>
- <configuration key="config.avr32.utils.trampoline" value="yes" default="yes" content-id="Atmel.ASF" />
- <configuration key="config.avr32.utils.gccstartup" value="yes" default="yes" content-id="Atmel.ASF" />
- <configuration key="config.utils.interrupt.intc" value="yes" default="yes" content-id="Atmel.ASF" />
- <configuration key="config.avr32.drivers.intc.exception" value="yes" default="yes" content-id="Atmel.ASF" />
- </configurations>
- <files />
- <documentation help="" />
- </framework-data>
- </AsfFrameworkConfig>
- <avrtoolinterface>JTAG</avrtoolinterface>
- <com_atmel_avrdbg_tool_jtagicemk3>
- <ToolType>com.atmel.avrdbg.tool.jtagicemk3</ToolType>
- <ToolName>JTAGICE3</ToolName>
- <ToolNumber>J30200003078</ToolNumber>
- <KeepTimersRunning>true</KeepTimersRunning>
- <OverrideVtor>false</OverrideVtor>
- <OverrideVtorValue>
- </OverrideVtorValue>
- <Channel>
- <host>127.0.0.1</host>
- <port>51999</port>
- <ssl>False</ssl>
- </Channel>
- <ToolOptions>
- <InterfaceName>JTAG</InterfaceName>
- <InterfaceProperties>
- <JtagDbgClock>250000</JtagDbgClock>
- <JtagProgClock>1000000</JtagProgClock>
- <IspClock>150000</IspClock>
- <JtagInChain>false</JtagInChain>
- <JtagEnableExtResetOnStartSession>false</JtagEnableExtResetOnStartSession>
- <JtagDevicesBefore>0</JtagDevicesBefore>
- <JtagDevicesAfter>0</JtagDevicesAfter>
- <JtagInstrBitsBefore>0</JtagInstrBitsBefore>
- <JtagInstrBitsAfter>0</JtagInstrBitsAfter>
- </InterfaceProperties>
- </ToolOptions>
- </com_atmel_avrdbg_tool_jtagicemk3>
- <AsfVersion>3.5.0</AsfVersion>
- <OverrideVtor>false</OverrideVtor>
- <OverrideVtorValue />
- <eraseonlaunchrule>0</eraseonlaunchrule>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
- <ToolchainSettings>
- <Avr32Gcc>
- <avr32gcc.common.outputfiles.hex>True</avr32gcc.common.outputfiles.hex>
- <avr32gcc.common.outputfiles.lss>True</avr32gcc.common.outputfiles.lss>
- <avr32gcc.common.outputfiles.eep>True</avr32gcc.common.outputfiles.eep>
- <avr32gcc.common.outputfiles.srec>True</avr32gcc.common.outputfiles.srec>
- <avr32gcc.compiler.symbols.DefSymbols>
- <ListValues>
- <Value>BOARD=ARDUINO</Value>
- <Value>WITH_KEY</Value>
- <Value>WITH_WPA</Value>
- <Value>WITH_NO_DMA</Value>
- <Value>DATAFLASH=1</Value>
- <Value>_INFO_DEBUG_=1</Value>
- </ListValues>
- </avr32gcc.compiler.symbols.DefSymbols>
- <avr32gcc.compiler.directories.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD</Value>
- </ListValues>
- </avr32gcc.compiler.directories.IncludePaths>
- <avr32gcc.compiler.optimization.level>Optimize for size (-Os)</avr32gcc.compiler.optimization.level>
- <avr32gcc.compiler.optimization.OtherFlags>-fdata-sections -ffunction-sections</avr32gcc.compiler.optimization.OtherFlags>
- <avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
- <avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>True</avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>
- <avr32gcc.compiler.optimization.ForceDoubleWordAlignment>True</avr32gcc.compiler.optimization.ForceDoubleWordAlignment>
- <avr32gcc.compiler.warnings.AllWarnings>True</avr32gcc.compiler.warnings.AllWarnings>
- <avr32gcc.compiler.miscellaneous.OtherFlags>-c -fmessage-length=0</avr32gcc.compiler.miscellaneous.OtherFlags>
- <avr32gcc.linker.general.DoNotUseStandardStartFiles>True</avr32gcc.linker.general.DoNotUseStandardStartFiles>
- <avr32gcc.linker.libraries.Libraries>
- <ListValues>
- <Value>newlib_addons-at32ucr2-speed_opt</Value>
- <Value>_ucr2_hd_spi_v2.7.0</Value>
- <Value>_ucr2_hd_wl_sta_intwpa_v2.7.0</Value>
- </ListValues>
- </avr32gcc.linker.libraries.Libraries>
- <avr32gcc.linker.libraries.LibrarySearchPaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC</Value>
- </ListValues>
- </avr32gcc.linker.libraries.LibrarySearchPaths>
- <avr32gcc.linker.optimization.GarbageCollectUnusedSections>True</avr32gcc.linker.optimization.GarbageCollectUnusedSections>
- <avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>True</avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>
- <avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>True</avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>
- <avr32gcc.linker.miscellaneous.LinkerFlags>-Wl,--gc-sections -Wl,-e,_trampoline -T../src/SOFTWARE_FRAMEWORK/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds</avr32gcc.linker.miscellaneous.LinkerFlags>
- <avr32gcc.assembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.assembler.general.IncludePaths>
- <avr32gcc.preprocessingassembler.general.AssemblerFlags>-Wa,-g</avr32gcc.preprocessingassembler.general.AssemblerFlags>
- <avr32gcc.preprocessingassembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.preprocessingassembler.general.IncludePaths>
-</Avr32Gcc>
- </ToolchainSettings>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
- <ToolchainSettings>
- <Avr32Gcc>
- <avr32gcc.common.outputfiles.hex>True</avr32gcc.common.outputfiles.hex>
- <avr32gcc.common.outputfiles.lss>True</avr32gcc.common.outputfiles.lss>
- <avr32gcc.common.outputfiles.eep>True</avr32gcc.common.outputfiles.eep>
- <avr32gcc.common.outputfiles.srec>True</avr32gcc.common.outputfiles.srec>
- <avr32gcc.compiler.preprocessor.DoNotSearchSystemDirectories>false</avr32gcc.compiler.preprocessor.DoNotSearchSystemDirectories>
- <avr32gcc.compiler.preprocessor.PreprocessOnly>false</avr32gcc.compiler.preprocessor.PreprocessOnly>
- <avr32gcc.compiler.symbols.DefSymbols>
- <ListValues>
- <Value>BOARD=ARDUINO</Value>
- <Value>NO_SYS</Value>
- <Value>_DEBUG_</Value>
- <Value>_ASSERT_ENABLE_</Value>
- <Value>WITH_KEY</Value>
- <Value>WITH_WPA</Value>
- <Value>WITH_NO_DMA</Value>
- <Value>DATAFLASH=1</Value>
- <Value>_INFO_DEBUG_=1</Value>
- </ListValues>
- </avr32gcc.compiler.symbols.DefSymbols>
- <avr32gcc.compiler.directories.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD</Value>
- </ListValues>
- </avr32gcc.compiler.directories.IncludePaths>
- <avr32gcc.compiler.optimization.level>Optimize (-O1)</avr32gcc.compiler.optimization.level>
- <avr32gcc.compiler.optimization.OtherFlags>-fdata-sections -ffunction-sections</avr32gcc.compiler.optimization.OtherFlags>
- <avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>true</avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
- <avr32gcc.compiler.optimization.EnableFastFloatingPointLibrary>false</avr32gcc.compiler.optimization.EnableFastFloatingPointLibrary>
- <avr32gcc.compiler.optimization.EnableUnsafeMatchOptimizations>false</avr32gcc.compiler.optimization.EnableUnsafeMatchOptimizations>
- <avr32gcc.compiler.optimization.EnableFastMath>false</avr32gcc.compiler.optimization.EnableFastMath>
- <avr32gcc.compiler.optimization.GeneratePositionIndependentCode>false</avr32gcc.compiler.optimization.GeneratePositionIndependentCode>
- <avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>true</avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>
- <avr32gcc.compiler.optimization.ForceDoubleWordAlignment>true</avr32gcc.compiler.optimization.ForceDoubleWordAlignment>
- <avr32gcc.compiler.optimization.PutLargeImmediatesInConstPool>false</avr32gcc.compiler.optimization.PutLargeImmediatesInConstPool>
- <avr32gcc.compiler.optimization.DoNotInitializeGotRegisterBeforeUsing>false</avr32gcc.compiler.optimization.DoNotInitializeGotRegisterBeforeUsing>
- <avr32gcc.compiler.optimization.UseSectionRoDataForReadOnlyData>false</avr32gcc.compiler.optimization.UseSectionRoDataForReadOnlyData>
- <avr32gcc.compiler.optimization.DebugLevel>Maximum (-g3)</avr32gcc.compiler.optimization.DebugLevel>
- <avr32gcc.compiler.optimization.GenerateGprofInformation>false</avr32gcc.compiler.optimization.GenerateGprofInformation>
- <avr32gcc.compiler.optimization.GenerateProfInformation>false</avr32gcc.compiler.optimization.GenerateProfInformation>
- <avr32gcc.compiler.warnings.AllWarnings>true</avr32gcc.compiler.warnings.AllWarnings>
- <avr32gcc.compiler.warnings.CheckSyntaxOnly>false</avr32gcc.compiler.warnings.CheckSyntaxOnly>
- <avr32gcc.compiler.warnings.Pedantic>false</avr32gcc.compiler.warnings.Pedantic>
- <avr32gcc.compiler.warnings.PedanticWarningsAsErrors>false</avr32gcc.compiler.warnings.PedanticWarningsAsErrors>
- <avr32gcc.compiler.warnings.InhibitAllWarnings>false</avr32gcc.compiler.warnings.InhibitAllWarnings>
- <avr32gcc.compiler.miscellaneous.OtherFlags>-c -fmessage-length=0</avr32gcc.compiler.miscellaneous.OtherFlags>
- <avr32gcc.compiler.miscellaneous.SupportAnsiPrograms>false</avr32gcc.compiler.miscellaneous.SupportAnsiPrograms>
- <avr32gcc.linker.general.DoNotUseStandardStartFiles>true</avr32gcc.linker.general.DoNotUseStandardStartFiles>
- <avr32gcc.linker.general.DoNotUseDefaultLibraries>false</avr32gcc.linker.general.DoNotUseDefaultLibraries>
- <avr32gcc.linker.general.NoStartupOrDefaultLibs>false</avr32gcc.linker.general.NoStartupOrDefaultLibs>
- <avr32gcc.linker.general.OmitAllSymbolInformation>false</avr32gcc.linker.general.OmitAllSymbolInformation>
- <avr32gcc.linker.general.NoSharedLibraries>false</avr32gcc.linker.general.NoSharedLibraries>
- <avr32gcc.linker.libraries.Libraries>
- <ListValues>
- <Value>newlib_addons-at32ucr2-speed_opt</Value>
- <Value>_ucr2_hd_spi_v2.7.0</Value>
- <Value>_ucr2_hd_wl_sta_intwpa_v2.7.0</Value>
- </ListValues>
- </avr32gcc.linker.libraries.Libraries>
- <avr32gcc.linker.libraries.LibrarySearchPaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC</Value>
- </ListValues>
- </avr32gcc.linker.libraries.LibrarySearchPaths>
- <avr32gcc.linker.optimization.GarbageCollectUnusedSections>true</avr32gcc.linker.optimization.GarbageCollectUnusedSections>
- <avr32gcc.linker.optimization.EnableFastFloatingPointLibrary>false</avr32gcc.linker.optimization.EnableFastFloatingPointLibrary>
- <avr32gcc.linker.optimization.EnableUnsafeMatchOptimizations>false</avr32gcc.linker.optimization.EnableUnsafeMatchOptimizations>
- <avr32gcc.linker.optimization.EnableFastMath>false</avr32gcc.linker.optimization.EnableFastMath>
- <avr32gcc.linker.optimization.GeneratePositionIndependentCode>false</avr32gcc.linker.optimization.GeneratePositionIndependentCode>
- <avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>true</avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>
- <avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>true</avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>
- <avr32gcc.assembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.assembler.general.IncludePaths>
- <avr32gcc.assembler.general.AnounceVersion>false</avr32gcc.assembler.general.AnounceVersion>
- <avr32gcc.assembler.debugging.DebugLevel>Default (-g)</avr32gcc.assembler.debugging.DebugLevel>
- <avr32gcc.preprocessingassembler.general.AssemblerFlags>-Wa,-g</avr32gcc.preprocessingassembler.general.AssemblerFlags>
- <avr32gcc.preprocessingassembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.preprocessingassembler.general.IncludePaths>
- <avr32gcc.preprocessingassembler.general.SuppressWarnings>false</avr32gcc.preprocessingassembler.general.SuppressWarnings>
- <avr32gcc.preprocessingassembler.general.AnounceVersion>false</avr32gcc.preprocessingassembler.general.AnounceVersion>
- <avr32gcc.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</avr32gcc.preprocessingassembler.debugging.DebugLevel>
- </Avr32Gcc>
- </ToolchainSettings>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)' == 'Debug_512' ">
- <OutputPath>bin\Debug_512\</OutputPath>
- <ToolchainSettings>
- <Avr32Gcc>
- <avr32gcc.common.outputfiles.hex>True</avr32gcc.common.outputfiles.hex>
- <avr32gcc.common.outputfiles.lss>True</avr32gcc.common.outputfiles.lss>
- <avr32gcc.common.outputfiles.eep>True</avr32gcc.common.outputfiles.eep>
- <avr32gcc.common.outputfiles.srec>True</avr32gcc.common.outputfiles.srec>
- <avr32gcc.compiler.preprocessor.DoNotSearchSystemDirectories>false</avr32gcc.compiler.preprocessor.DoNotSearchSystemDirectories>
- <avr32gcc.compiler.preprocessor.PreprocessOnly>false</avr32gcc.compiler.preprocessor.PreprocessOnly>
- <avr32gcc.compiler.symbols.DefSymbols>
- <ListValues>
- <Value>BOARD=ARDUINO</Value>
- <Value>_APP_DEBUG_</Value>
- <Value>_DEBUG_</Value>
- <Value>_ASSERT_ENABLE_</Value>
- <Value>EXT_BOARD=SPB104</Value>
- <Value>WITH_KEY</Value>
- <Value>WITH_WPA</Value>
- <Value>WITH_NO_DMA</Value>
- <Value>LWIP_DEBUG</Value>
- <Value>_INFO_DEBUG_=1</Value>
- </ListValues>
- </avr32gcc.compiler.symbols.DefSymbols>
- <avr32gcc.compiler.directories.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD</Value>
- </ListValues>
- </avr32gcc.compiler.directories.IncludePaths>
- <avr32gcc.compiler.optimization.level>Optimize (-O1)</avr32gcc.compiler.optimization.level>
- <avr32gcc.compiler.optimization.OtherFlags>-fdata-sections</avr32gcc.compiler.optimization.OtherFlags>
- <avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>true</avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
- <avr32gcc.compiler.optimization.EnableFastFloatingPointLibrary>false</avr32gcc.compiler.optimization.EnableFastFloatingPointLibrary>
- <avr32gcc.compiler.optimization.EnableUnsafeMatchOptimizations>false</avr32gcc.compiler.optimization.EnableUnsafeMatchOptimizations>
- <avr32gcc.compiler.optimization.EnableFastMath>false</avr32gcc.compiler.optimization.EnableFastMath>
- <avr32gcc.compiler.optimization.GeneratePositionIndependentCode>false</avr32gcc.compiler.optimization.GeneratePositionIndependentCode>
- <avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>true</avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>
- <avr32gcc.compiler.optimization.ForceDoubleWordAlignment>false</avr32gcc.compiler.optimization.ForceDoubleWordAlignment>
- <avr32gcc.compiler.optimization.PutLargeImmediatesInConstPool>false</avr32gcc.compiler.optimization.PutLargeImmediatesInConstPool>
- <avr32gcc.compiler.optimization.DoNotInitializeGotRegisterBeforeUsing>false</avr32gcc.compiler.optimization.DoNotInitializeGotRegisterBeforeUsing>
- <avr32gcc.compiler.optimization.UseSectionRoDataForReadOnlyData>false</avr32gcc.compiler.optimization.UseSectionRoDataForReadOnlyData>
- <avr32gcc.compiler.optimization.DebugLevel>Maximum (-g3)</avr32gcc.compiler.optimization.DebugLevel>
- <avr32gcc.compiler.optimization.GenerateGprofInformation>false</avr32gcc.compiler.optimization.GenerateGprofInformation>
- <avr32gcc.compiler.optimization.GenerateProfInformation>false</avr32gcc.compiler.optimization.GenerateProfInformation>
- <avr32gcc.compiler.warnings.AllWarnings>true</avr32gcc.compiler.warnings.AllWarnings>
- <avr32gcc.compiler.warnings.CheckSyntaxOnly>false</avr32gcc.compiler.warnings.CheckSyntaxOnly>
- <avr32gcc.compiler.warnings.Pedantic>false</avr32gcc.compiler.warnings.Pedantic>
- <avr32gcc.compiler.warnings.PedanticWarningsAsErrors>false</avr32gcc.compiler.warnings.PedanticWarningsAsErrors>
- <avr32gcc.compiler.warnings.InhibitAllWarnings>false</avr32gcc.compiler.warnings.InhibitAllWarnings>
- <avr32gcc.compiler.miscellaneous.OtherFlags>-c -fmessage-length=0</avr32gcc.compiler.miscellaneous.OtherFlags>
- <avr32gcc.compiler.miscellaneous.SupportAnsiPrograms>false</avr32gcc.compiler.miscellaneous.SupportAnsiPrograms>
- <avr32gcc.linker.general.DoNotUseStandardStartFiles>true</avr32gcc.linker.general.DoNotUseStandardStartFiles>
- <avr32gcc.linker.general.DoNotUseDefaultLibraries>false</avr32gcc.linker.general.DoNotUseDefaultLibraries>
- <avr32gcc.linker.general.NoStartupOrDefaultLibs>false</avr32gcc.linker.general.NoStartupOrDefaultLibs>
- <avr32gcc.linker.general.OmitAllSymbolInformation>false</avr32gcc.linker.general.OmitAllSymbolInformation>
- <avr32gcc.linker.general.NoSharedLibraries>false</avr32gcc.linker.general.NoSharedLibraries>
- <avr32gcc.linker.libraries.Libraries>
- <ListValues>
- <Value>newlib_addons-at32ucr2-speed_opt</Value>
- <Value>_ucr2_hd_spi_standalone_v2.1.1</Value>
- <Value>_ucr2_hd_wl_standalone_v2.1.1</Value>
- </ListValues>
- </avr32gcc.linker.libraries.Libraries>
- <avr32gcc.linker.libraries.LibrarySearchPaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.1.1/UCR2/GCC</Value>
- </ListValues>
- </avr32gcc.linker.libraries.LibrarySearchPaths>
- <avr32gcc.linker.optimization.GarbageCollectUnusedSections>true</avr32gcc.linker.optimization.GarbageCollectUnusedSections>
- <avr32gcc.linker.optimization.EnableFastFloatingPointLibrary>false</avr32gcc.linker.optimization.EnableFastFloatingPointLibrary>
- <avr32gcc.linker.optimization.EnableUnsafeMatchOptimizations>false</avr32gcc.linker.optimization.EnableUnsafeMatchOptimizations>
- <avr32gcc.linker.optimization.EnableFastMath>false</avr32gcc.linker.optimization.EnableFastMath>
- <avr32gcc.linker.optimization.GeneratePositionIndependentCode>false</avr32gcc.linker.optimization.GeneratePositionIndependentCode>
- <avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>true</avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>
- <avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>true</avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>
- <avr32gcc.assembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.assembler.general.IncludePaths>
- <avr32gcc.assembler.general.AnounceVersion>false</avr32gcc.assembler.general.AnounceVersion>
- <avr32gcc.assembler.debugging.DebugLevel>Default (-g)</avr32gcc.assembler.debugging.DebugLevel>
- <avr32gcc.preprocessingassembler.general.AssemblerFlags>-Wa,-g</avr32gcc.preprocessingassembler.general.AssemblerFlags>
- <avr32gcc.preprocessingassembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.preprocessingassembler.general.IncludePaths>
- <avr32gcc.preprocessingassembler.general.SuppressWarnings>false</avr32gcc.preprocessingassembler.general.SuppressWarnings>
- <avr32gcc.preprocessingassembler.general.AnounceVersion>false</avr32gcc.preprocessingassembler.general.AnounceVersion>
- <avr32gcc.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</avr32gcc.preprocessingassembler.debugging.DebugLevel>
- </Avr32Gcc>
- </ToolchainSettings>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)' == 'Release_512' ">
- <OutputPath>bin\Release_512\</OutputPath>
- <ToolchainSettings>
- <Avr32Gcc>
- <avr32gcc.common.outputfiles.hex>True</avr32gcc.common.outputfiles.hex>
- <avr32gcc.common.outputfiles.lss>True</avr32gcc.common.outputfiles.lss>
- <avr32gcc.common.outputfiles.eep>True</avr32gcc.common.outputfiles.eep>
- <avr32gcc.common.outputfiles.srec>True</avr32gcc.common.outputfiles.srec>
- <avr32gcc.compiler.preprocessor.DoNotSearchSystemDirectories>false</avr32gcc.compiler.preprocessor.DoNotSearchSystemDirectories>
- <avr32gcc.compiler.preprocessor.PreprocessOnly>false</avr32gcc.compiler.preprocessor.PreprocessOnly>
- <avr32gcc.compiler.symbols.DefSymbols>
- <ListValues>
- <Value>BOARD=ARDUINO</Value>
- <Value>_ASSERT_ENABLE_</Value>
- <Value>EXT_BOARD=SPB104</Value>
- <Value>WITH_KEY</Value>
- <Value>WITH_WPA</Value>
- <Value>WITH_NO_DMA</Value>
- <Value>LWIP_DEBUG</Value>
- <Value>_INFO_DEBUG_=1</Value>
- </ListValues>
- </avr32gcc.compiler.symbols.DefSymbols>
- <avr32gcc.compiler.directories.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD</Value>
- </ListValues>
- </avr32gcc.compiler.directories.IncludePaths>
- <avr32gcc.compiler.optimization.OtherFlags>-fdata-sections</avr32gcc.compiler.optimization.OtherFlags>
- <avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>true</avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
- <avr32gcc.compiler.optimization.EnableFastFloatingPointLibrary>false</avr32gcc.compiler.optimization.EnableFastFloatingPointLibrary>
- <avr32gcc.compiler.optimization.EnableUnsafeMatchOptimizations>false</avr32gcc.compiler.optimization.EnableUnsafeMatchOptimizations>
- <avr32gcc.compiler.optimization.EnableFastMath>false</avr32gcc.compiler.optimization.EnableFastMath>
- <avr32gcc.compiler.optimization.GeneratePositionIndependentCode>false</avr32gcc.compiler.optimization.GeneratePositionIndependentCode>
- <avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>true</avr32gcc.compiler.optimization.UseAssemblerForPseudoInstructions>
- <avr32gcc.compiler.optimization.ForceDoubleWordAlignment>false</avr32gcc.compiler.optimization.ForceDoubleWordAlignment>
- <avr32gcc.compiler.optimization.PutLargeImmediatesInConstPool>false</avr32gcc.compiler.optimization.PutLargeImmediatesInConstPool>
- <avr32gcc.compiler.optimization.DoNotInitializeGotRegisterBeforeUsing>false</avr32gcc.compiler.optimization.DoNotInitializeGotRegisterBeforeUsing>
- <avr32gcc.compiler.optimization.UseSectionRoDataForReadOnlyData>false</avr32gcc.compiler.optimization.UseSectionRoDataForReadOnlyData>
- <avr32gcc.compiler.optimization.GenerateGprofInformation>false</avr32gcc.compiler.optimization.GenerateGprofInformation>
- <avr32gcc.compiler.optimization.GenerateProfInformation>false</avr32gcc.compiler.optimization.GenerateProfInformation>
- <avr32gcc.compiler.warnings.AllWarnings>true</avr32gcc.compiler.warnings.AllWarnings>
- <avr32gcc.compiler.warnings.CheckSyntaxOnly>false</avr32gcc.compiler.warnings.CheckSyntaxOnly>
- <avr32gcc.compiler.warnings.Pedantic>false</avr32gcc.compiler.warnings.Pedantic>
- <avr32gcc.compiler.warnings.PedanticWarningsAsErrors>false</avr32gcc.compiler.warnings.PedanticWarningsAsErrors>
- <avr32gcc.compiler.warnings.InhibitAllWarnings>false</avr32gcc.compiler.warnings.InhibitAllWarnings>
- <avr32gcc.compiler.miscellaneous.OtherFlags>-c -fmessage-length=0</avr32gcc.compiler.miscellaneous.OtherFlags>
- <avr32gcc.compiler.miscellaneous.SupportAnsiPrograms>false</avr32gcc.compiler.miscellaneous.SupportAnsiPrograms>
- <avr32gcc.linker.general.DoNotUseStandardStartFiles>true</avr32gcc.linker.general.DoNotUseStandardStartFiles>
- <avr32gcc.linker.general.DoNotUseDefaultLibraries>false</avr32gcc.linker.general.DoNotUseDefaultLibraries>
- <avr32gcc.linker.general.NoStartupOrDefaultLibs>false</avr32gcc.linker.general.NoStartupOrDefaultLibs>
- <avr32gcc.linker.general.OmitAllSymbolInformation>false</avr32gcc.linker.general.OmitAllSymbolInformation>
- <avr32gcc.linker.general.NoSharedLibraries>false</avr32gcc.linker.general.NoSharedLibraries>
- <avr32gcc.linker.libraries.Libraries>
- <ListValues>
- <Value>newlib_addons-at32ucr2-speed_opt</Value>
- <Value>_ucr2_hd_spi_standalone_v2.1.1</Value>
- <Value>_ucr2_hd_wl_standalone_v2.1.1</Value>
- </ListValues>
- </avr32gcc.linker.libraries.Libraries>
- <avr32gcc.linker.libraries.LibrarySearchPaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.1.1/UCR2/GCC</Value>
- </ListValues>
- </avr32gcc.linker.libraries.LibrarySearchPaths>
- <avr32gcc.linker.optimization.GarbageCollectUnusedSections>true</avr32gcc.linker.optimization.GarbageCollectUnusedSections>
- <avr32gcc.linker.optimization.EnableFastFloatingPointLibrary>false</avr32gcc.linker.optimization.EnableFastFloatingPointLibrary>
- <avr32gcc.linker.optimization.EnableUnsafeMatchOptimizations>false</avr32gcc.linker.optimization.EnableUnsafeMatchOptimizations>
- <avr32gcc.linker.optimization.EnableFastMath>false</avr32gcc.linker.optimization.EnableFastMath>
- <avr32gcc.linker.optimization.GeneratePositionIndependentCode>false</avr32gcc.linker.optimization.GeneratePositionIndependentCode>
- <avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>true</avr32gcc.linker.optimization.PutReadOnlyDataInWritableDataSection>
- <avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>true</avr32gcc.linker.optimization.AllowDirectReferencesToDataSection>
- <avr32gcc.assembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.assembler.general.IncludePaths>
- <avr32gcc.assembler.general.AnounceVersion>false</avr32gcc.assembler.general.AnounceVersion>
- <avr32gcc.preprocessingassembler.general.AssemblerFlags>-Wa,-g</avr32gcc.preprocessingassembler.general.AssemblerFlags>
- <avr32gcc.preprocessingassembler.general.IncludePaths>
- <ListValues>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/TC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/SERVICES/DELAY</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/USART</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/RTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/PM</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/EIC</Value>
- <Value>../src/CONFIG</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/UTILS</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC</Value>
- <Value>../src/SOFTWARE_FRAMEWORK/BOARDS</Value>
- </ListValues>
- </avr32gcc.preprocessingassembler.general.IncludePaths>
- <avr32gcc.preprocessingassembler.general.SuppressWarnings>false</avr32gcc.preprocessingassembler.general.SuppressWarnings>
- <avr32gcc.preprocessingassembler.general.AnounceVersion>false</avr32gcc.preprocessingassembler.general.AnounceVersion>
- </Avr32Gcc>
- </ToolchainSettings>
- </PropertyGroup>
- <Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
- <ItemGroup>
- <Folder Include="src" />
- <Compile Include="src\ard_spi.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\ard_spi.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\ard_tcp.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\ard_tcp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\ard_utils.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\ard_utils.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\avr32_spi.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\board_init.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\board_init.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\cmd_wl.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\cmd_wl.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\CONFIG\conf_access.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\CONFIG\conf_at45dbx.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\console.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\console.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\debug.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\fw_download.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\fw_download_extflash.c">
- <SubType>compile</SubType>
- </Compile>
- <None Include="src\license.txt">
- <SubType>compile</SubType>
- </None>
- <Compile Include="src\lwipopts.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\lwip_setup.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\lwip_setup.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\main.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\nvram.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\nvram.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\owl_os.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\ping.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\ping.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\printf-stdarg.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\printf-stdarg.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH\AT45DBX\at45dbx.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH\AT45DBX\at45dbx_mem.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\timer.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\timer.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\top_defs.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\trace.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\util.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\util.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\wifi_spi.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\wl_cm.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\wl_cm.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\wl_definitions.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\CONFIG" />
- <Compile Include="src\CONFIG\conf_ebi.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\CONFIG\conf_sd_mmc_spi.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\ASM" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\ASM\trampoline.x">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\BOARDS" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\BOARDS\board.h">
- <SubType>compile</SubType>
- </Compile>
- <None Include="src\SOFTWARE_FRAMEWORK\BOARDS\board.h.my">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\BOARDS\ARDUINO" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\BOARDS\ARDUINO\arduino.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\BOARDS\ARDUINO\led.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\BOARDS\ARDUINO\led.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH\AT45DBX" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\wlap_api.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\wl_api.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\wl_os.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\wl_sdio.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\wl_spi.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH\AT45DBX\at45dbx.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH\AT45DBX\at45dbx_mem.c">
- <SubType>compile</SubType>
- </Compile>
- <None Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\revision.txt">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR1" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR1\GCC" />
- <None Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR1\GCC\lib_ucr1_hd_sdio_v2.7.0.a">
- <SubType>compile</SubType>
- </None>
- <None Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR1\GCC\lib_ucr1_hd_spi_v2.7.0.a">
- <SubType>compile</SubType>
- </None>
- <None Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR1\GCC\lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR2" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR2\GCC" />
- <None Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR2\GCC\lib_ucr2_hd_sdio_v2.7.0.a">
- <SubType>compile</SubType>
- </None>
- <None Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR2\GCC\lib_ucr2_hd_spi_v2.7.0.a">
- <SubType>compile</SubType>
- </None>
- <None Include="src\SOFTWARE_FRAMEWORK\COMPONENTS\WIFI\HD\v2.7.0\UCR2\GCC\lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\CPU" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\CPU\CYCLE_COUNTER" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\CPU\CYCLE_COUNTER\cycle_counter.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\EBI" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\EIC" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\EIC\eic.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\EIC\eic.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\FLASHC" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\FLASHC\flashc.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\FLASHC\flashc.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\GPIO" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\GPIO\gpio.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\GPIO\gpio.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\INTC" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\INTC\exception.x">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\INTC\intc.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\INTC\intc.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PDCA" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PDCA\pdca.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PDCA\pdca.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PM" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PM\pm.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PM\pm.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PM\pm_conf_clocks.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PM\power_clocks_lib.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\PM\power_clocks_lib.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\RTC" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\RTC\rtc.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\RTC\rtc.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\SPI" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\SPI\spi.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\SPI\spi.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\TC" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\TC\tc.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\TC\tc.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\DRIVERS\USART" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\USART\usart.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\DRIVERS\USART\usart.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\DELAY" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\DELAY\delay.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\DELAY\delay.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\dhcp.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\dns.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\init.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\mem.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\memp.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\netif.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\pbuf.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\raw.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\stats.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\tcp.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\tcp_in.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\tcp_out.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\udp.c">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\autoip.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\icmp.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\igmp.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\inet.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\inet_chksum.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\ip.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\ip_addr.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\core\ipv4\ip_frag.c">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\autoip.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\icmp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\igmp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\inet.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\inet_chksum.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\ip.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\ip_addr.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\ipv4\lwip\ip_frag.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\api.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\api_msg.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\arch.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\debug.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\def.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\dhcp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\dns.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\err.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\init.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\mem.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\memp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\memp_std.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\netbuf.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\netdb.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\netif.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\netifapi.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\opt.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\pbuf.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\raw.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\sio.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\snmp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\snmp_asn1.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\snmp_msg.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\snmp_structs.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\sockets.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\stats.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\sys.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\tcp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\tcpip.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\lwip\udp.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\netif" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\netif\etharp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\netif\loopif.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\netif\ppp_oe.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\include\netif\slipif.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\netif" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\netif\etharp.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-1.3.2\src\netif\loopif.c">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD" />
- <None Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\readme.txt">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\include" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\include\lwipopts.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\include\arch" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\include\arch\cc.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\include\arch\perf.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\include\netif" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\include\netif\wlif.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\netif" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\LWIP\lwip-port-1.3.2\HD\if\netif\wlif.c">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY\CTRL_ACCESS" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY\CTRL_ACCESS\ctrl_access.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY\CTRL_ACCESS\ctrl_access.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\compiler.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\conf_isp.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\parts.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\DEBUG" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\DEBUG\debug.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\DEBUG\debug.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\DEBUG\print_funcs.c">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\DEBUG\print_funcs.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS" />
- <None Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS\libnewlib_addons-at32ucr2-speed_opt.a">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS\INCLUDE" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS\INCLUDE\nlao_cpu.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS\INCLUDE\nlao_exceptions.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS\INCLUDE\nlao_interrupts.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS\INCLUDE\nlao_io.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\LIBS\NEWLIB_ADDONS\INCLUDE\nlao_usart.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS\AT32UC3A" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS\AT32UC3A\0512" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS\AT32UC3A\0512\GCC" />
- <None Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS\AT32UC3A\0512\GCC\link_uc3a0512.lds">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS\AT32UC3A\1256" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS\AT32UC3A\1256\GCC" />
- <None Include="src\SOFTWARE_FRAMEWORK\UTILS\LINKER_SCRIPTS\AT32UC3A\1256\GCC\link_uc3a1256.lds">
- <SubType>compile</SubType>
- </None>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\PREPROCESSOR" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\PREPROCESSOR\mrepeat.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\PREPROCESSOR\preprocessor.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\PREPROCESSOR\stringz.h">
- <SubType>compile</SubType>
- </Compile>
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\PREPROCESSOR\tpaste.h">
- <SubType>compile</SubType>
- </Compile>
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\STARTUP_FILES" />
- <Folder Include="src\SOFTWARE_FRAMEWORK\UTILS\STARTUP_FILES\GCC" />
- <Compile Include="src\SOFTWARE_FRAMEWORK\UTILS\STARTUP_FILES\GCC\crt0.x">
- <SubType>compile</SubType>
- </Compile>
- </ItemGroup>
-</Project> \ No newline at end of file