From 19a36e5d22c8b18d73445c516b24bc6508224c28 Mon Sep 17 00:00:00 2001 From: Karl Komierowski Date: Wed, 22 Nov 2017 10:21:30 +0100 Subject: [PATCH] PiAIZU tag v2.1.0 with latest Jessie PiAIZU tag 2.1.0 + fixed doxygen source path. Jessie commit: 68cdf34cb44e23b9076d7796147070bc3cc0a51f https://github.com/RPi-Distro/pi-gen/commits/jessie --- .gitignore | 4 +- config | 2 + stage2/03-install-piaizu/00-packages | 3 + stage2/03-install-piaizu/01-run.sh | 38 + stage2/03-install-piaizu/02-run.sh | 18 + stage2/03-install-piaizu/03-run.sh | 35 + stage2/03-install-piaizu/04-run-chroot.sh | 18 + stage2/03-install-piaizu/files/.bashrc | 114 ++ stage2/03-install-piaizu/files/.profile | 25 + stage2/03-install-piaizu/files/README.md | 70 + stage2/03-install-piaizu/files/brightness.py | 74 + stage2/03-install-piaizu/files/config.txt | 31 + .../files/demo/Engine_step01.png | Bin 0 -> 25288 bytes .../files/demo/Engine_step02.png | Bin 0 -> 39213 bytes .../files/demo/Engine_step03.png | Bin 0 -> 40742 bytes .../files/demo/Engine_step04.png | Bin 0 -> 41954 bytes .../files/demo/Engine_step05.png | Bin 0 -> 41955 bytes .../03-install-piaizu/files/demo/sonylogo.jpg | Bin 0 -> 6455 bytes stage2/03-install-piaizu/files/dnsmasq.conf | 666 ++++++ stage2/03-install-piaizu/files/dts/Makefile | 21 + .../03-install-piaizu/files/dts/dt-blob.dts | 1811 +++++++++++++++++ .../03-install-piaizu/files/dts/gpio-key.dts | 30 + .../03-install-piaizu/files/fb/.clang-format | 90 + stage2/03-install-piaizu/files/fb/Makefile | 62 + .../files/fb/cgi-src/.clang-format | 90 + .../fb/cgi-src/.fuse_hidden0000001e00000001 | Bin 0 -> 25120 bytes .../files/fb/cgi-src/Makefile | 41 + .../files/fb/cgi-src/lighttpd.conf | 39 + .../files/fb/cgi-src/lmxindex.html | 91 + .../files/fb/cgi-src/lmxjson.c | 312 +++ .../files/fb/cgi-src/lmxsocket.h | 75 + .../files/fb/define_containers.h | 75 + .../files/fb/docs/html/annotated.html | 118 ++ .../files/fb/docs/html/arrowdown.png | Bin 0 -> 246 bytes .../files/fb/docs/html/arrowright.png | Bin 0 -> 229 bytes .../files/fb/docs/html/bc_s.png | Bin 0 -> 676 bytes .../files/fb/docs/html/bdwn.png | Bin 0 -> 147 bytes .../files/fb/docs/html/bmp_8c.html | 268 +++ .../files/fb/docs/html/bmp_8c__incl.map | 5 + .../files/fb/docs/html/bmp_8c__incl.md5 | 1 + .../files/fb/docs/html/bmp_8c__incl.png | Bin 0 -> 23373 bytes .../files/fb/docs/html/bmp_8c_source.html | 126 ++ .../files/fb/docs/html/bmp_8h.html | 239 +++ .../files/fb/docs/html/bmp_8h__dep__incl.map | 4 + .../files/fb/docs/html/bmp_8h__dep__incl.md5 | 1 + .../files/fb/docs/html/bmp_8h__dep__incl.png | Bin 0 -> 3964 bytes .../files/fb/docs/html/bmp_8h__incl.map | 4 + .../files/fb/docs/html/bmp_8h__incl.md5 | 1 + .../files/fb/docs/html/bmp_8h__incl.png | Bin 0 -> 10241 bytes .../files/fb/docs/html/bmp_8h_source.html | 105 + .../files/fb/docs/html/classes.html | 115 ++ .../files/fb/docs/html/closed.png | Bin 0 -> 132 bytes .../files/fb/docs/html/container_8c.html | 633 ++++++ .../files/fb/docs/html/container_8c__incl.map | 5 + .../files/fb/docs/html/container_8c__incl.md5 | 1 + .../files/fb/docs/html/container_8c__incl.png | Bin 0 -> 20149 bytes .../fb/docs/html/container_8c_source.html | 147 ++ .../files/fb/docs/html/container_8h.html | 617 ++++++ .../fb/docs/html/container_8h__dep__incl.map | 9 + .../fb/docs/html/container_8h__dep__incl.md5 | 1 + .../fb/docs/html/container_8h__dep__incl.png | Bin 0 -> 19978 bytes .../files/fb/docs/html/container_8h__incl.map | 3 + .../files/fb/docs/html/container_8h__incl.md5 | 1 + .../files/fb/docs/html/container_8h__incl.png | Bin 0 -> 10053 bytes .../fb/docs/html/container_8h_source.html | 133 ++ .../fb/docs/html/define__containers_8h.html | 418 ++++ .../html/define__containers_8h__dep__incl.map | 3 + .../html/define__containers_8h__dep__incl.md5 | 1 + .../html/define__containers_8h__dep__incl.png | Bin 0 -> 2667 bytes .../html/define__containers_8h_source.html | 103 + .../files/fb/docs/html/dir_000001_000000.html | 90 + .../dir_13f8d8320159c08b3eb7e184323c9bd9.html | 108 + .../dir_97aefd0d527b934f1d99a682da8fe6a9.html | 148 ++ ...r_97aefd0d527b934f1d99a682da8fe6a9_dep.map | 5 + ...r_97aefd0d527b934f1d99a682da8fe6a9_dep.md5 | 1 + ...r_97aefd0d527b934f1d99a682da8fe6a9_dep.png | Bin 0 -> 1938 bytes .../files/fb/docs/html/doc.png | Bin 0 -> 746 bytes .../fb/docs/html/documentation_8txt.html | 96 + .../files/fb/docs/html/doxygen.css | 1475 ++++++++++++++ .../files/fb/docs/html/doxygen.png | Bin 0 -> 3779 bytes .../files/fb/docs/html/dynsections.js | 104 + .../files/fb/docs/html/files.html | 123 ++ .../files/fb/docs/html/folderclosed.png | Bin 0 -> 616 bytes .../files/fb/docs/html/folderopen.png | Bin 0 -> 597 bytes .../files/fb/docs/html/framebuffer_8c.html | 185 ++ .../fb/docs/html/framebuffer_8c__incl.map | 4 + .../fb/docs/html/framebuffer_8c__incl.md5 | 1 + .../fb/docs/html/framebuffer_8c__incl.png | Bin 0 -> 27866 bytes .../fb/docs/html/framebuffer_8c_source.html | 116 ++ .../files/fb/docs/html/framebuffer_8h.html | 197 ++ .../docs/html/framebuffer_8h__dep__incl.map | 11 + .../docs/html/framebuffer_8h__dep__incl.md5 | 1 + .../docs/html/framebuffer_8h__dep__incl.png | Bin 0 -> 27924 bytes .../fb/docs/html/framebuffer_8h__incl.map | 2 + .../fb/docs/html/framebuffer_8h__incl.md5 | 1 + .../fb/docs/html/framebuffer_8h__incl.png | Bin 0 -> 5631 bytes .../fb/docs/html/framebuffer_8h_source.html | 113 + .../files/fb/docs/html/functions.html | 411 ++++ .../files/fb/docs/html/functions_vars.html | 411 ++++ .../files/fb/docs/html/fwatch_8c.html | 285 +++ .../files/fb/docs/html/fwatch_8c__incl.map | 4 + .../files/fb/docs/html/fwatch_8c__incl.md5 | 1 + .../files/fb/docs/html/fwatch_8c__incl.png | Bin 0 -> 39539 bytes .../files/fb/docs/html/fwatch_8c_source.html | 117 ++ .../files/fb/docs/html/fwatch_8h.html | 234 +++ .../fb/docs/html/fwatch_8h__dep__incl.map | 6 + .../fb/docs/html/fwatch_8h__dep__incl.md5 | 1 + .../fb/docs/html/fwatch_8h__dep__incl.png | Bin 0 -> 7803 bytes .../files/fb/docs/html/fwatch_8h_source.html | 104 + .../files/fb/docs/html/globals.html | 579 ++++++ .../files/fb/docs/html/globals_defs.html | 318 +++ .../files/fb/docs/html/globals_enum.html | 119 ++ .../files/fb/docs/html/globals_eval.html | 158 ++ .../files/fb/docs/html/globals_func.html | 347 ++++ .../files/fb/docs/html/globals_type.html | 113 + .../files/fb/docs/html/graph_legend.html | 119 ++ .../files/fb/docs/html/graph_legend.md5 | 1 + .../files/fb/docs/html/graph_legend.png | Bin 0 -> 18535 bytes .../files/fb/docs/html/index.html | 167 ++ .../files/fb/docs/html/jquery.js | 68 + .../files/fb/docs/html/keys_8c.html | 343 ++++ .../files/fb/docs/html/keys_8c__incl.map | 5 + .../files/fb/docs/html/keys_8c__incl.md5 | 1 + .../files/fb/docs/html/keys_8c__incl.png | Bin 0 -> 42852 bytes .../files/fb/docs/html/keys_8c_source.html | 126 ++ .../files/fb/docs/html/keys_8h.html | 260 +++ .../files/fb/docs/html/keys_8h__dep__incl.map | 4 + .../files/fb/docs/html/keys_8h__dep__incl.md5 | 1 + .../files/fb/docs/html/keys_8h__dep__incl.png | Bin 0 -> 4349 bytes .../files/fb/docs/html/keys_8h_source.html | 107 + .../files/fb/docs/html/lmxindex.html | 91 + .../files/fb/docs/html/lmxjson_8c.html | 322 +++ .../files/fb/docs/html/lmxjson_8c__incl.map | 3 + .../files/fb/docs/html/lmxjson_8c__incl.md5 | 1 + .../files/fb/docs/html/lmxjson_8c__incl.png | Bin 0 -> 28625 bytes .../files/fb/docs/html/lmxjson_8c_source.html | 145 ++ .../files/fb/docs/html/lmxsocket_8h.html | 326 +++ .../fb/docs/html/lmxsocket_8h__dep__incl.map | 4 + .../fb/docs/html/lmxsocket_8h__dep__incl.md5 | 1 + .../fb/docs/html/lmxsocket_8h__dep__incl.png | Bin 0 -> 5299 bytes .../files/fb/docs/html/lmxsocket_8h__incl.map | 2 + .../files/fb/docs/html/lmxsocket_8h__incl.md5 | 1 + .../files/fb/docs/html/lmxsocket_8h__incl.png | Bin 0 -> 12258 bytes .../fb/docs/html/lmxsocket_8h_source.html | 142 ++ .../files/fb/docs/html/log_8h.html | 178 ++ .../files/fb/docs/html/log_8h__dep__incl.map | 11 + .../files/fb/docs/html/log_8h__dep__incl.md5 | 1 + .../files/fb/docs/html/log_8h__dep__incl.png | Bin 0 -> 15591 bytes .../files/fb/docs/html/log_8h__incl.map | 2 + .../files/fb/docs/html/log_8h__incl.md5 | 1 + .../files/fb/docs/html/log_8h__incl.png | Bin 0 -> 3836 bytes .../files/fb/docs/html/log_8h_source.html | 100 + .../files/fb/docs/html/main_8c.html | 345 ++++ .../files/fb/docs/html/main_8c__incl.map | 11 + .../files/fb/docs/html/main_8c__incl.md5 | 1 + .../files/fb/docs/html/main_8c__incl.png | Bin 0 -> 54738 bytes .../files/fb/docs/html/main_8c_source.html | 140 ++ .../files/fb/docs/html/nav_f.png | Bin 0 -> 153 bytes .../files/fb/docs/html/nav_g.png | Bin 0 -> 95 bytes .../files/fb/docs/html/nav_h.png | Bin 0 -> 98 bytes .../files/fb/docs/html/open.png | Bin 0 -> 123 bytes .../files/fb/docs/html/search/all_0.html | 26 + .../files/fb/docs/html/search/all_0.js | 4 + .../files/fb/docs/html/search/all_1.html | 26 + .../files/fb/docs/html/search/all_1.js | 8 + .../files/fb/docs/html/search/all_10.html | 26 + .../files/fb/docs/html/search/all_10.js | 9 + .../files/fb/docs/html/search/all_11.html | 26 + .../files/fb/docs/html/search/all_11.js | 14 + .../files/fb/docs/html/search/all_12.html | 26 + .../files/fb/docs/html/search/all_12.js | 19 + .../files/fb/docs/html/search/all_13.html | 26 + .../files/fb/docs/html/search/all_13.js | 9 + .../files/fb/docs/html/search/all_14.html | 26 + .../files/fb/docs/html/search/all_14.js | 13 + .../files/fb/docs/html/search/all_15.html | 26 + .../files/fb/docs/html/search/all_15.js | 5 + .../files/fb/docs/html/search/all_16.html | 26 + .../files/fb/docs/html/search/all_16.js | 5 + .../files/fb/docs/html/search/all_2.html | 26 + .../files/fb/docs/html/search/all_2.js | 15 + .../files/fb/docs/html/search/all_3.html | 26 + .../files/fb/docs/html/search/all_3.js | 34 + .../files/fb/docs/html/search/all_4.html | 26 + .../files/fb/docs/html/search/all_4.js | 11 + .../files/fb/docs/html/search/all_5.html | 26 + .../files/fb/docs/html/search/all_5.js | 11 + .../files/fb/docs/html/search/all_6.html | 26 + .../files/fb/docs/html/search/all_6.js | 27 + .../files/fb/docs/html/search/all_7.html | 26 + .../files/fb/docs/html/search/all_7.js | 6 + .../files/fb/docs/html/search/all_8.html | 26 + .../files/fb/docs/html/search/all_8.js | 13 + .../files/fb/docs/html/search/all_9.html | 26 + .../files/fb/docs/html/search/all_9.js | 5 + .../files/fb/docs/html/search/all_a.html | 26 + .../files/fb/docs/html/search/all_a.js | 19 + .../files/fb/docs/html/search/all_b.html | 26 + .../files/fb/docs/html/search/all_b.js | 12 + .../files/fb/docs/html/search/all_c.html | 26 + .../files/fb/docs/html/search/all_c.js | 18 + .../files/fb/docs/html/search/all_d.html | 26 + .../files/fb/docs/html/search/all_d.js | 11 + .../files/fb/docs/html/search/all_e.html | 26 + .../files/fb/docs/html/search/all_e.js | 8 + .../files/fb/docs/html/search/all_f.html | 26 + .../files/fb/docs/html/search/all_f.js | 7 + .../files/fb/docs/html/search/classes_0.html | 26 + .../files/fb/docs/html/search/classes_0.js | 4 + .../files/fb/docs/html/search/classes_1.html | 26 + .../files/fb/docs/html/search/classes_1.js | 7 + .../files/fb/docs/html/search/classes_2.html | 26 + .../files/fb/docs/html/search/classes_2.js | 7 + .../files/fb/docs/html/search/classes_3.html | 26 + .../files/fb/docs/html/search/classes_3.js | 4 + .../files/fb/docs/html/search/classes_4.html | 26 + .../files/fb/docs/html/search/classes_4.js | 5 + .../files/fb/docs/html/search/classes_5.html | 26 + .../files/fb/docs/html/search/classes_5.js | 8 + .../files/fb/docs/html/search/close.png | Bin 0 -> 273 bytes .../files/fb/docs/html/search/defines_0.html | 26 + .../files/fb/docs/html/search/defines_0.js | 4 + .../files/fb/docs/html/search/defines_1.html | 26 + .../files/fb/docs/html/search/defines_1.js | 6 + .../files/fb/docs/html/search/defines_10.html | 26 + .../files/fb/docs/html/search/defines_10.js | 5 + .../files/fb/docs/html/search/defines_2.html | 26 + .../files/fb/docs/html/search/defines_2.js | 4 + .../files/fb/docs/html/search/defines_3.html | 26 + .../files/fb/docs/html/search/defines_3.js | 7 + .../files/fb/docs/html/search/defines_4.html | 26 + .../files/fb/docs/html/search/defines_4.js | 5 + .../files/fb/docs/html/search/defines_5.html | 26 + .../files/fb/docs/html/search/defines_5.js | 5 + .../files/fb/docs/html/search/defines_6.html | 26 + .../files/fb/docs/html/search/defines_6.js | 8 + .../files/fb/docs/html/search/defines_7.html | 26 + .../files/fb/docs/html/search/defines_7.js | 5 + .../files/fb/docs/html/search/defines_8.html | 26 + .../files/fb/docs/html/search/defines_8.js | 7 + .../files/fb/docs/html/search/defines_9.html | 26 + .../files/fb/docs/html/search/defines_9.js | 8 + .../files/fb/docs/html/search/defines_a.html | 26 + .../files/fb/docs/html/search/defines_a.js | 4 + .../files/fb/docs/html/search/defines_b.html | 26 + .../files/fb/docs/html/search/defines_b.js | 5 + .../files/fb/docs/html/search/defines_c.html | 26 + .../files/fb/docs/html/search/defines_c.js | 6 + .../files/fb/docs/html/search/defines_d.html | 26 + .../files/fb/docs/html/search/defines_d.js | 5 + .../files/fb/docs/html/search/defines_e.html | 26 + .../files/fb/docs/html/search/defines_e.js | 5 + .../files/fb/docs/html/search/defines_f.html | 26 + .../files/fb/docs/html/search/defines_f.js | 4 + .../files/fb/docs/html/search/enums_0.html | 26 + .../files/fb/docs/html/search/enums_0.js | 4 + .../files/fb/docs/html/search/enums_1.html | 26 + .../files/fb/docs/html/search/enums_1.js | 4 + .../files/fb/docs/html/search/enums_2.html | 26 + .../files/fb/docs/html/search/enums_2.js | 4 + .../files/fb/docs/html/search/enums_3.html | 26 + .../files/fb/docs/html/search/enums_3.js | 4 + .../files/fb/docs/html/search/enums_4.html | 26 + .../files/fb/docs/html/search/enums_4.js | 4 + .../fb/docs/html/search/enumvalues_0.html | 26 + .../files/fb/docs/html/search/enumvalues_0.js | 8 + .../fb/docs/html/search/enumvalues_1.html | 26 + .../files/fb/docs/html/search/enumvalues_1.js | 5 + .../fb/docs/html/search/enumvalues_2.html | 26 + .../files/fb/docs/html/search/enumvalues_2.js | 12 + .../fb/docs/html/search/enumvalues_3.html | 26 + .../files/fb/docs/html/search/enumvalues_3.js | 4 + .../fb/docs/html/search/enumvalues_4.html | 26 + .../files/fb/docs/html/search/enumvalues_4.js | 4 + .../files/fb/docs/html/search/files_0.html | 26 + .../files/fb/docs/html/search/files_0.js | 5 + .../files/fb/docs/html/search/files_1.html | 26 + .../files/fb/docs/html/search/files_1.js | 5 + .../files/fb/docs/html/search/files_2.html | 26 + .../files/fb/docs/html/search/files_2.js | 5 + .../files/fb/docs/html/search/files_3.html | 26 + .../files/fb/docs/html/search/files_3.js | 7 + .../files/fb/docs/html/search/files_4.html | 26 + .../files/fb/docs/html/search/files_4.js | 5 + .../files/fb/docs/html/search/files_5.html | 26 + .../files/fb/docs/html/search/files_5.js | 6 + .../files/fb/docs/html/search/files_6.html | 26 + .../files/fb/docs/html/search/files_6.js | 4 + .../files/fb/docs/html/search/files_7.html | 26 + .../files/fb/docs/html/search/files_7.js | 5 + .../files/fb/docs/html/search/files_8.html | 26 + .../files/fb/docs/html/search/files_8.js | 5 + .../files/fb/docs/html/search/files_9.html | 26 + .../files/fb/docs/html/search/files_9.js | 5 + .../fb/docs/html/search/functions_0.html | 26 + .../files/fb/docs/html/search/functions_0.js | 5 + .../fb/docs/html/search/functions_1.html | 26 + .../files/fb/docs/html/search/functions_1.js | 6 + .../fb/docs/html/search/functions_2.html | 26 + .../files/fb/docs/html/search/functions_2.js | 15 + .../fb/docs/html/search/functions_3.html | 26 + .../files/fb/docs/html/search/functions_3.js | 4 + .../fb/docs/html/search/functions_4.html | 26 + .../files/fb/docs/html/search/functions_4.js | 7 + .../fb/docs/html/search/functions_5.html | 26 + .../files/fb/docs/html/search/functions_5.js | 5 + .../fb/docs/html/search/functions_6.html | 26 + .../files/fb/docs/html/search/functions_6.js | 4 + .../fb/docs/html/search/functions_7.html | 26 + .../files/fb/docs/html/search/functions_7.js | 10 + .../fb/docs/html/search/functions_8.html | 26 + .../files/fb/docs/html/search/functions_8.js | 4 + .../fb/docs/html/search/functions_9.html | 26 + .../files/fb/docs/html/search/functions_9.js | 4 + .../fb/docs/html/search/functions_a.html | 26 + .../files/fb/docs/html/search/functions_a.js | 4 + .../fb/docs/html/search/functions_b.html | 26 + .../files/fb/docs/html/search/functions_b.js | 8 + .../fb/docs/html/search/functions_c.html | 26 + .../files/fb/docs/html/search/functions_c.js | 5 + .../fb/docs/html/search/functions_d.html | 26 + .../files/fb/docs/html/search/functions_d.js | 8 + .../files/fb/docs/html/search/mag_sel.png | Bin 0 -> 563 bytes .../files/fb/docs/html/search/nomatches.html | 12 + .../files/fb/docs/html/search/pages_0.html | 26 + .../files/fb/docs/html/search/pages_0.js | 4 + .../files/fb/docs/html/search/search.css | 271 +++ .../files/fb/docs/html/search/search.js | 791 +++++++ .../files/fb/docs/html/search/search_l.png | Bin 0 -> 604 bytes .../files/fb/docs/html/search/search_m.png | Bin 0 -> 158 bytes .../files/fb/docs/html/search/search_r.png | Bin 0 -> 612 bytes .../files/fb/docs/html/search/searchdata.js | 42 + .../files/fb/docs/html/search/typedefs_0.html | 26 + .../files/fb/docs/html/search/typedefs_0.js | 4 + .../files/fb/docs/html/search/typedefs_1.html | 26 + .../files/fb/docs/html/search/typedefs_1.js | 4 + .../files/fb/docs/html/search/typedefs_2.html | 26 + .../files/fb/docs/html/search/typedefs_2.js | 4 + .../fb/docs/html/search/variables_0.html | 26 + .../files/fb/docs/html/search/variables_0.js | 8 + .../fb/docs/html/search/variables_1.html | 26 + .../files/fb/docs/html/search/variables_1.js | 11 + .../fb/docs/html/search/variables_10.html | 26 + .../files/fb/docs/html/search/variables_10.js | 4 + .../fb/docs/html/search/variables_11.html | 26 + .../files/fb/docs/html/search/variables_11.js | 5 + .../fb/docs/html/search/variables_12.html | 26 + .../files/fb/docs/html/search/variables_12.js | 5 + .../fb/docs/html/search/variables_2.html | 26 + .../files/fb/docs/html/search/variables_2.js | 6 + .../fb/docs/html/search/variables_3.html | 26 + .../files/fb/docs/html/search/variables_3.js | 10 + .../fb/docs/html/search/variables_4.html | 26 + .../files/fb/docs/html/search/variables_4.js | 7 + .../fb/docs/html/search/variables_5.html | 26 + .../files/fb/docs/html/search/variables_5.js | 4 + .../fb/docs/html/search/variables_6.html | 26 + .../files/fb/docs/html/search/variables_6.js | 4 + .../fb/docs/html/search/variables_7.html | 26 + .../files/fb/docs/html/search/variables_7.js | 4 + .../fb/docs/html/search/variables_8.html | 26 + .../files/fb/docs/html/search/variables_8.js | 5 + .../fb/docs/html/search/variables_9.html | 26 + .../files/fb/docs/html/search/variables_9.js | 8 + .../fb/docs/html/search/variables_a.html | 26 + .../files/fb/docs/html/search/variables_a.js | 5 + .../fb/docs/html/search/variables_b.html | 26 + .../files/fb/docs/html/search/variables_b.js | 6 + .../fb/docs/html/search/variables_c.html | 26 + .../files/fb/docs/html/search/variables_c.js | 6 + .../fb/docs/html/search/variables_d.html | 26 + .../files/fb/docs/html/search/variables_d.js | 5 + .../fb/docs/html/search/variables_e.html | 26 + .../files/fb/docs/html/search/variables_e.js | 11 + .../fb/docs/html/search/variables_f.html | 26 + .../files/fb/docs/html/search/variables_f.js | 5 + .../files/fb/docs/html/sonylogo.jpg | Bin 0 -> 7398 bytes .../files/fb/docs/html/splitbar.png | Bin 0 -> 314 bytes .../fb/docs/html/structbmp__header__t.html | 366 ++++ .../docs/html/structcontainer__info__t.html | 256 +++ .../fb/docs/html/structcontainer__t.html | 336 +++ .../fb/docs/html/structcontainers__t.html | 152 ++ .../html/structcontainers__t__coll__graph.map | 3 + .../html/structcontainers__t__coll__graph.md5 | 1 + .../html/structcontainers__t__coll__graph.png | Bin 0 -> 3119 bytes .../fb/docs/html/structcoordinate__t.html | 144 ++ .../docs/html/structfont__character__t.html | 214 ++ .../structfont__character__t__coll__graph.map | 3 + .../structfont__character__t__coll__graph.md5 | 1 + .../structfont__character__t__coll__graph.png | Bin 0 -> 3373 bytes .../fb/docs/html/structframe__buffer.html | 256 +++ .../fb/docs/html/structfwatch__client__t.html | 142 ++ .../files/fb/docs/html/structfwatch__t.html | 198 ++ .../html/structfwatch__t__coll__graph.map | 3 + .../html/structfwatch__t__coll__graph.md5 | 1 + .../html/structfwatch__t__coll__graph.png | Bin 0 -> 3155 bytes .../fb/docs/html/structgimp__bitmap__t.html | 176 ++ .../fb/docs/html/structkey__action__t.html | 174 ++ .../docs/html/structkey__press__event__t.html | 174 ++ .../structsocket__datagram__header__t.html | 160 ++ ...tsocket__datagram__lmx__coordinate__t.html | 153 ++ ...agram__lmx__coordinate__t__coll__graph.map | 4 + ...agram__lmx__coordinate__t__coll__graph.md5 | 1 + ...agram__lmx__coordinate__t__coll__graph.png | Bin 0 -> 8045 bytes .../structsocket__datagram__lmx__info__t.html | 169 ++ ...t__datagram__lmx__info__t__coll__graph.map | 4 + ...t__datagram__lmx__info__t__coll__graph.md5 | 1 + ...t__datagram__lmx__info__t__coll__graph.png | Bin 0 -> 7568 bytes .../structsocket__datagram__lmx__move__t.html | 152 ++ ...t__datagram__lmx__move__t__coll__graph.map | 3 + ...t__datagram__lmx__move__t__coll__graph.md5 | 1 + ...t__datagram__lmx__move__t__coll__graph.png | Bin 0 -> 4653 bytes .../structsocket__datagram__lmx__text__t.html | 152 ++ ...t__datagram__lmx__text__t__coll__graph.map | 3 + ...t__datagram__lmx__text__t__coll__graph.md5 | 1 + ...t__datagram__lmx__text__t__coll__graph.png | Bin 0 -> 4526 bytes .../files/fb/docs/html/sync_off.png | Bin 0 -> 853 bytes .../files/fb/docs/html/sync_on.png | Bin 0 -> 845 bytes .../files/fb/docs/html/tab_a.png | Bin 0 -> 142 bytes .../files/fb/docs/html/tab_b.png | Bin 0 -> 169 bytes .../files/fb/docs/html/tab_h.png | Bin 0 -> 177 bytes .../files/fb/docs/html/tab_s.png | Bin 0 -> 184 bytes .../files/fb/docs/html/tabs.css | 60 + .../files/fb/docs/html/text_8c.html | 295 +++ .../files/fb/docs/html/text_8c__incl.map | 7 + .../files/fb/docs/html/text_8c__incl.md5 | 1 + .../files/fb/docs/html/text_8c__incl.png | Bin 0 -> 26413 bytes .../files/fb/docs/html/text_8c_source.html | 128 ++ .../files/fb/docs/html/text_8h.html | 197 ++ .../files/fb/docs/html/text_8h__dep__incl.map | 5 + .../files/fb/docs/html/text_8h__dep__incl.md5 | 1 + .../files/fb/docs/html/text_8h__dep__incl.png | Bin 0 -> 6142 bytes .../files/fb/docs/html/text_8h__incl.map | 4 + .../files/fb/docs/html/text_8h__incl.md5 | 1 + .../files/fb/docs/html/text_8h__incl.png | Bin 0 -> 10325 bytes .../files/fb/docs/html/text_8h_source.html | 104 + .../files/fb/docs/html/version_8c.html | 160 ++ .../files/fb/docs/html/version_8c__incl.map | 4 + .../files/fb/docs/html/version_8c__incl.md5 | 1 + .../files/fb/docs/html/version_8c__incl.png | Bin 0 -> 8179 bytes .../files/fb/docs/html/version_8c_source.html | 104 + .../files/fb/docs/html/version_8h.html | 157 ++ .../fb/docs/html/version_8h__dep__incl.map | 3 + .../fb/docs/html/version_8h__dep__incl.md5 | 1 + .../fb/docs/html/version_8h__dep__incl.png | Bin 0 -> 3265 bytes .../files/fb/docs/html/version_8h_source.html | 102 + .../files/fb/docs/html/webrequest_8c.html | 254 +++ .../fb/docs/html/webrequest_8c__incl.map | 8 + .../fb/docs/html/webrequest_8c__incl.md5 | 1 + .../fb/docs/html/webrequest_8c__incl.png | Bin 0 -> 53300 bytes .../fb/docs/html/webrequest_8c_source.html | 168 ++ .../files/fb/docs/html/webrequest_8h.html | 157 ++ .../fb/docs/html/webrequest_8h__dep__incl.map | 3 + .../fb/docs/html/webrequest_8h__dep__incl.md5 | 1 + .../fb/docs/html/webrequest_8h__dep__incl.png | Bin 0 -> 2578 bytes .../fb/docs/html/webrequest_8h_source.html | 102 + .../files/fb/documentation.txt | 176 ++ stage2/03-install-piaizu/files/fb/doxy.cfg | 319 +++ .../files/fb/graphics/alphabet.bmp | Bin 0 -> 79194 bytes .../files/fb/graphics/alphabet.xcf | Bin 0 -> 36526 bytes .../files/fb/graphics/anim/sonylogo_00001.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00002.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00003.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00004.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00005.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00006.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00007.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00008.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00009.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00010.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00011.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00012.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00013.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00014.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00015.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00016.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00017.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00018.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00019.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00020.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00021.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00022.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00023.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00024.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00025.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00026.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00027.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00028.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00029.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00030.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00031.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00032.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00033.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00034.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00035.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00036.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00037.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00038.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00039.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00040.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00041.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00042.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00043.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00044.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00045.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00046.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00047.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00048.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00049.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00050.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00051.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00052.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00053.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00054.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00055.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00056.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00057.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00058.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00059.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00060.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00061.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00062.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00063.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00064.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00065.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00066.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00067.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00068.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00069.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00070.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00071.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00072.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00073.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00074.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00075.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00076.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00077.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00078.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00079.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00080.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00081.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00082.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00083.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00084.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00085.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00086.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00087.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00088.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00089.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00090.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00091.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00092.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00093.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00094.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00095.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00096.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00097.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00098.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00099.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00100.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00101.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00102.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00103.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00104.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00105.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00106.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00107.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00108.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00109.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00110.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00111.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00112.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00113.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00114.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00115.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00116.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00117.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00118.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00119.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00120.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00121.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00122.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00123.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00124.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00125.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00126.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00127.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00128.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00129.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00130.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00131.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00132.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00133.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00134.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00135.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00136.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00137.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00138.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00139.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00140.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00141.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00142.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00143.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00144.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00145.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00146.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00147.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00148.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00149.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00150.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00151.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00152.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00153.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00154.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00155.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00156.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00157.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00158.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/anim/sonylogo_00159.bmp | Bin 0 -> 37138 bytes .../files/fb/graphics/python.bmp | Bin 0 -> 29210 bytes .../files/fb/graphics/sonylogo.bmp | Bin 0 -> 81018 bytes .../files/fb/graphics/sonylogo.jpg | Bin 0 -> 7398 bytes .../files/fb/graphics/wifi_ap_a.bmp | Bin 0 -> 16098 bytes .../files/fb/graphics/wifi_ap_b.bmp | Bin 0 -> 16098 bytes .../files/fb/graphics/wifi_ap_c.bmp | Bin 0 -> 16098 bytes .../files/fb/graphics/wifi_ap_d.bmp | Bin 0 -> 16098 bytes .../03-install-piaizu/files/fb/lib/Makefile | 44 + stage2/03-install-piaizu/files/fb/lib/bmp.c | 188 ++ stage2/03-install-piaizu/files/fb/lib/bmp.h | 32 + .../files/fb/lib/container.c | 308 +++ .../files/fb/lib/container.h | 145 ++ .../files/fb/lib/framebuffer.c | 62 + .../files/fb/lib/framebuffer.h | 25 + .../03-install-piaizu/files/fb/lib/fwatch.c | 123 ++ .../03-install-piaizu/files/fb/lib/fwatch.h | 30 + stage2/03-install-piaizu/files/fb/lib/keys.c | 185 ++ stage2/03-install-piaizu/files/fb/lib/keys.h | 39 + stage2/03-install-piaizu/files/fb/lib/log.h | 7 + stage2/03-install-piaizu/files/fb/lib/text.c | 203 ++ stage2/03-install-piaizu/files/fb/lib/text.h | 9 + .../03-install-piaizu/files/fb/lib/version.c | 12 + .../03-install-piaizu/files/fb/lib/version.h | 4 + .../files/fb/lib/webrequest.c | 196 ++ .../files/fb/lib/webrequest.h | 12 + stage2/03-install-piaizu/files/fb/lmx001 | 35 + stage2/03-install-piaizu/files/fb/main.c | 249 +++ stage2/03-install-piaizu/files/fb/main.py | 115 ++ stage2/03-install-piaizu/files/fb/settings.mk | 14 + stage2/03-install-piaizu/files/hostapd.conf | 48 + stage2/03-install-piaizu/files/interfaces | 24 + stage2/03-install-piaizu/files/lighttpd.conf | 39 + stage2/03-install-piaizu/files/lmx001_init.py | 181 ++ stage2/03-install-piaizu/files/modules | 6 + stage2/03-install-piaizu/files/rc.local | 22 + stage4/SKIP | 0 stage5/SKIP | 0 656 files changed, 28733 insertions(+), 2 deletions(-) create mode 100644 config create mode 100644 stage2/03-install-piaizu/00-packages create mode 100755 stage2/03-install-piaizu/01-run.sh create mode 100755 stage2/03-install-piaizu/02-run.sh create mode 100755 stage2/03-install-piaizu/03-run.sh create mode 100755 stage2/03-install-piaizu/04-run-chroot.sh create mode 100644 stage2/03-install-piaizu/files/.bashrc create mode 100644 stage2/03-install-piaizu/files/.profile create mode 100644 stage2/03-install-piaizu/files/README.md create mode 100644 stage2/03-install-piaizu/files/brightness.py create mode 100644 stage2/03-install-piaizu/files/config.txt create mode 100644 stage2/03-install-piaizu/files/demo/Engine_step01.png create mode 100644 stage2/03-install-piaizu/files/demo/Engine_step02.png create mode 100644 stage2/03-install-piaizu/files/demo/Engine_step03.png create mode 100644 stage2/03-install-piaizu/files/demo/Engine_step04.png create mode 100644 stage2/03-install-piaizu/files/demo/Engine_step05.png create mode 100644 stage2/03-install-piaizu/files/demo/sonylogo.jpg create mode 100644 stage2/03-install-piaizu/files/dnsmasq.conf create mode 100644 stage2/03-install-piaizu/files/dts/Makefile create mode 100644 stage2/03-install-piaizu/files/dts/dt-blob.dts create mode 100644 stage2/03-install-piaizu/files/dts/gpio-key.dts create mode 100644 stage2/03-install-piaizu/files/fb/.clang-format create mode 100644 stage2/03-install-piaizu/files/fb/Makefile create mode 100644 stage2/03-install-piaizu/files/fb/cgi-src/.clang-format create mode 100755 stage2/03-install-piaizu/files/fb/cgi-src/.fuse_hidden0000001e00000001 create mode 100644 stage2/03-install-piaizu/files/fb/cgi-src/Makefile create mode 100644 stage2/03-install-piaizu/files/fb/cgi-src/lighttpd.conf create mode 100644 stage2/03-install-piaizu/files/fb/cgi-src/lmxindex.html create mode 100644 stage2/03-install-piaizu/files/fb/cgi-src/lmxjson.c create mode 100644 stage2/03-install-piaizu/files/fb/cgi-src/lmxsocket.h create mode 100644 stage2/03-install-piaizu/files/fb/define_containers.h create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/annotated.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/arrowdown.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/arrowright.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bc_s.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bdwn.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/bmp_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/classes.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/closed.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/container_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/dir_000001_000000.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/dir_13f8d8320159c08b3eb7e184323c9bd9.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/doc.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/documentation_8txt.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/doxygen.css create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/doxygen.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/dynsections.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/files.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/folderclosed.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/folderopen.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/functions.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/functions_vars.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/globals.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/globals_defs.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/globals_enum.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/globals_eval.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/globals_func.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/globals_type.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/graph_legend.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/graph_legend.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/graph_legend.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/index.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/jquery.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/keys_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxindex.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/log_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/main_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/main_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/nav_f.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/nav_g.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/nav_h.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/open.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_10.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_10.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_11.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_11.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_12.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_12.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_13.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_13.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_14.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_14.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_15.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_15.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_16.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_16.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_5.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_5.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_6.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_6.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_7.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_7.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_8.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_8.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_9.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_9.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_a.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_a.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_b.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_b.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_c.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_d.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_d.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_e.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_e.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_f.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/all_f.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/close.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_5.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_5.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_6.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_6.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_7.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_7.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_8.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_8.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_9.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/files_9.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/mag_sel.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/nomatches.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/search.css create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/search.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/search_l.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/search_m.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/search_r.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/searchdata.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.js create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/sonylogo.jpg create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/splitbar.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structbmp__header__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structcontainer__info__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structcontainer__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structcoordinate__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structframe__buffer.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfwatch__client__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structgimp__bitmap__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structkey__action__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structkey__press__event__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__header__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/sync_off.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/sync_on.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/tab_a.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/tab_b.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/tab_h.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/tab_s.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/tabs.css create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/text_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/version_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c_source.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h.html create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.map create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.md5 create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.png create mode 100644 stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h_source.html create mode 100644 stage2/03-install-piaizu/files/fb/documentation.txt create mode 100644 stage2/03-install-piaizu/files/fb/doxy.cfg create mode 100644 stage2/03-install-piaizu/files/fb/graphics/alphabet.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/alphabet.xcf create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00001.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00002.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00003.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00004.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00005.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00006.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00007.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00008.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00009.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00010.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00011.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00012.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00013.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00014.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00015.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00016.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00017.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00018.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00019.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00020.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00021.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00022.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00023.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00024.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00025.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00026.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00027.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00028.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00029.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00030.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00031.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00032.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00033.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00034.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00035.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00036.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00037.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00038.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00039.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00040.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00041.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00042.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00043.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00044.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00045.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00046.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00047.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00048.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00049.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00050.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00051.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00052.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00053.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00054.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00055.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00056.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00057.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00058.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00059.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00060.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00061.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00062.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00063.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00064.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00065.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00066.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00067.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00068.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00069.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00070.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00071.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00072.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00073.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00074.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00075.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00076.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00077.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00078.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00079.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00080.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00081.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00082.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00083.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00084.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00085.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00086.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00087.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00088.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00089.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00090.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00091.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00092.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00093.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00094.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00095.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00096.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00097.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00098.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00099.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00100.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00101.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00102.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00103.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00104.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00105.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00106.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00107.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00108.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00109.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00110.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00111.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00112.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00113.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00114.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00115.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00116.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00117.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00118.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00119.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00120.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00121.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00122.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00123.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00124.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00125.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00126.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00127.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00128.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00129.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00130.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00131.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00132.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00133.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00134.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00135.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00136.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00137.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00138.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00139.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00140.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00141.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00142.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00143.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00144.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00145.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00146.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00147.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00148.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00149.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00150.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00151.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00152.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00153.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00154.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00155.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00156.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00157.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00158.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00159.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/python.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/sonylogo.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/sonylogo.jpg create mode 100644 stage2/03-install-piaizu/files/fb/graphics/wifi_ap_a.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/wifi_ap_b.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/wifi_ap_c.bmp create mode 100644 stage2/03-install-piaizu/files/fb/graphics/wifi_ap_d.bmp create mode 100644 stage2/03-install-piaizu/files/fb/lib/Makefile create mode 100644 stage2/03-install-piaizu/files/fb/lib/bmp.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/bmp.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/container.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/container.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/framebuffer.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/framebuffer.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/fwatch.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/fwatch.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/keys.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/keys.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/log.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/text.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/text.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/version.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/version.h create mode 100644 stage2/03-install-piaizu/files/fb/lib/webrequest.c create mode 100644 stage2/03-install-piaizu/files/fb/lib/webrequest.h create mode 100755 stage2/03-install-piaizu/files/fb/lmx001 create mode 100644 stage2/03-install-piaizu/files/fb/main.c create mode 100644 stage2/03-install-piaizu/files/fb/main.py create mode 100644 stage2/03-install-piaizu/files/fb/settings.mk create mode 100644 stage2/03-install-piaizu/files/hostapd.conf create mode 100644 stage2/03-install-piaizu/files/interfaces create mode 100644 stage2/03-install-piaizu/files/lighttpd.conf create mode 100644 stage2/03-install-piaizu/files/lmx001_init.py create mode 100644 stage2/03-install-piaizu/files/modules create mode 100755 stage2/03-install-piaizu/files/rc.local create mode 100644 stage4/SKIP create mode 100644 stage5/SKIP diff --git a/.gitignore b/.gitignore index 9f385f6..e790bc5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ deploy/* work/* -config +#config postrun.sh -SKIP +#SKIP .pc *-pc apt-cacher-ng/ diff --git a/config b/config new file mode 100644 index 0000000..78542de --- /dev/null +++ b/config @@ -0,0 +1,2 @@ +IMG_NAME="PiAIZU" + diff --git a/stage2/03-install-piaizu/00-packages b/stage2/03-install-piaizu/00-packages new file mode 100644 index 0000000..5472494 --- /dev/null +++ b/stage2/03-install-piaizu/00-packages @@ -0,0 +1,3 @@ +i2c-tools dnsmasq hostapd python-smbus mplayer fbi vim lighttpd sshfs doxygen clang-3.9 clang-format-3.9 graphviz libfcgi-dev libjansson-dev + + diff --git a/stage2/03-install-piaizu/01-run.sh b/stage2/03-install-piaizu/01-run.sh new file mode 100755 index 0000000..302d428 --- /dev/null +++ b/stage2/03-install-piaizu/01-run.sh @@ -0,0 +1,38 @@ +#!/bin/bash -e + +#################################################################### +# +# Installation of config and dts for LMX-001 +# Enable autologin +# Enable SSHD +# Enable i2c-dev +# +#################################################################### + +############ Config.txt ############################################ +if [ ! -f ${ROOTFS_DIR}/boot/config_original.txt ]; then + echo "No backup of original config found" + cp -v ${ROOTFS_DIR}/boot/config.txt ${ROOTFS_DIR}/boot/config_original.txt +fi + +# Install the config +install -m 644 files/config.txt ${ROOTFS_DIR}/boot/ + +############ Install dts ############################################ +install -d ${ROOTFS_DIR}/home/pi/piaizu/dts +install -t ${ROOTFS_DIR}/home/pi/piaizu/dts files/dts/* + +############ LMX-001 scripts ######################################## +install -m 755 files/brightness.py ${ROOTFS_DIR}/usr/sbin +install -m 755 files/lmx001_init.py ${ROOTFS_DIR}/usr/sbin + +cp -v files/rc.local ${ROOTFS_DIR}/etc/rc.local + +############ Enable autologin ####################################### +sed -i 's\ExecStart=-/sbin/agetty --noclear %I $TERM\ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM\g' ${ROOTFS_DIR}/etc/systemd/system/getty.target.wants/getty@tty1.service + +############ Enable SSHD ############################################ +touch ${ROOTFS_DIR}/boot/ssh + +############ Enable i2c-dev ######################################### +cp -v files/modules ${ROOTFS_DIR}/etc/modules diff --git a/stage2/03-install-piaizu/02-run.sh b/stage2/03-install-piaizu/02-run.sh new file mode 100755 index 0000000..6a46eba --- /dev/null +++ b/stage2/03-install-piaizu/02-run.sh @@ -0,0 +1,18 @@ +#!/bin/bash -e + +#################################################################### +# +# Configuration of hostapd dnsmasq +# Fix network config +# +#################################################################### + +############ Install lighttpd, host and dnsmasq config ####################### +install -m 644 files/lighttpd.conf ${ROOTFS_DIR}/etc/lighttpd/ +install -m 644 files/hostapd.conf ${ROOTFS_DIR}/etc/hostapd +install -m 644 files/dnsmasq.conf ${ROOTFS_DIR}/etc/ + +sed -i 's\#DAEMON_CONF=""\DAEMON_CONF="/etc/hostapd/hostapd.conf"\g' ${ROOTFS_DIR}/etc/default/hostapd + +############ Network setup ######################################### +cp -v files/interfaces ${ROOTFS_DIR}/etc/network/interfaces diff --git a/stage2/03-install-piaizu/03-run.sh b/stage2/03-install-piaizu/03-run.sh new file mode 100755 index 0000000..bb14935 --- /dev/null +++ b/stage2/03-install-piaizu/03-run.sh @@ -0,0 +1,35 @@ +#/bin/bash -e + +#################################################################### +# +# Installation of LMX-001 example app and documentation +# +#################################################################### + +############ Insert git tag and related into docs ################## +GITREV=$(git describe --tags) +NOW=$(date) +echo $GITREV +sed -i -r "s/(Build date:)(.*)/\1 $NOW/g" files/fb/documentation.txt +sed -i -r "s/(Git describe:)(.*)/\1 $GITREV/g" files/fb/documentation.txt + +############ Install demo, example and documentation files ######### +install -d ${ROOTFS_DIR}/home/pi/piaizu/demo +install -t ${ROOTFS_DIR}/home/pi/piaizu/demo files/demo/* + +install -d ${ROOTFS_DIR}/home/pi/lmx_example +cp -rfv files/fb/* ${ROOTFS_DIR}/home/pi/lmx_example/ + +make -C ${ROOTFS_DIR}/home/pi/lmx_example doc +cp -rfv ${ROOTFS_DIR}/home/pi/lmx_example/docs/html/* ${ROOTFS_DIR}/var/www/html + +############ Setup terminal ####################### +cp -v files/.profile ${ROOTFS_DIR}/home/pi/.profile +cp -v files/.bashrc ${ROOTFS_DIR}/home/pi/.bashrc +############ Create copy of this buildsystem on target fs################# +buildsystem_path=piaizu_$GITREV +pth=$(readlink -e ../..) +if [ ! -d "${ROOTFS_DIR}/home/pi/$buildsystem_path" ]; then + git clone file://$pth --depth=1 ${ROOTFS_DIR}/home/pi/$buildsystem_path +fi + diff --git a/stage2/03-install-piaizu/04-run-chroot.sh b/stage2/03-install-piaizu/04-run-chroot.sh new file mode 100755 index 0000000..54783c1 --- /dev/null +++ b/stage2/03-install-piaizu/04-run-chroot.sh @@ -0,0 +1,18 @@ +#!/bin/bash -e + +#################################################################### +# +# Commands to run under chroot +# +#################################################################### + +############ Compile and install device tree ####################### +make -C /home/pi/piaizu/dts/ install + +############ Chmod the example folder ############################## +chmod -R a+rw /home/pi/lmx_example + +############ Build and install the lmx example ##################### +make -C /home/pi/lmx_example clean install + + diff --git a/stage2/03-install-piaizu/files/.bashrc b/stage2/03-install-piaizu/files/.bashrc new file mode 100644 index 0000000..f9adf8c --- /dev/null +++ b/stage2/03-install-piaizu/files/.bashrc @@ -0,0 +1,114 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +#alias ll='ls -l' +#alias la='ls -A' +#alias l='ls -CF' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi +alias ll='ls -al' diff --git a/stage2/03-install-piaizu/files/.profile b/stage2/03-install-piaizu/files/.profile new file mode 100644 index 0000000..52dfd42 --- /dev/null +++ b/stage2/03-install-piaizu/files/.profile @@ -0,0 +1,25 @@ +# ~/.profile: executed by the command interpreter for login shells. +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login +# exists. +# see /usr/share/doc/bash/examples/startup-files for examples. +# the files are located in the bash-doc package. + +# the default umask is set in /etc/profile; for setting the umask +# for ssh logins, install and configure the libpam-umask package. +#umask 022 + +# if running bash +if [ -n "$BASH_VERSION" ]; then + # include .bashrc if it exists + if [ -f "$HOME/.bashrc" ]; then + . "$HOME/.bashrc" + fi +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi +echo `setterm -blank 0 -powerdown 0` >> /dev/tty1 +echo `setterm -cursor off` >>/dev/tty1 + diff --git a/stage2/03-install-piaizu/files/README.md b/stage2/03-install-piaizu/files/README.md new file mode 100644 index 0000000..607d3f6 --- /dev/null +++ b/stage2/03-install-piaizu/files/README.md @@ -0,0 +1,70 @@ +# PiAIZU +This is the build system to compile a SD card image of the Raspian. +This image will be preconfigured already to be ready to run the PiAIZU setup. +The PiAIZU setup consists of the following: + - RbPi (Raspberry Pi), [3 or Zero] + - PCB sheild that connects to the RbPi + - PCB that connects to the LMX-001 display + - Cable that connects the two PCBs + + [![N|Solid](https://www.raspberrypi.org/app/uploads/2012/02/Raspian_SD-150x150.png)](https://www.raspberrypi.org/downloads/raspbian/) + +# Software + + The software needed that is added into the rootfs of the Raspbian is the following: + - LMX I2C initalisation scripts + - Demo (TBD) + - Brightness + - I2C Tools (added std package) + +# Configuration +The PiAIZU related files are all being set-up in the stage2 directory. + +# Dependencies +The same as for the original plus doxygen with doxygen. +``` +apt-get install quilt parted realpath qemu-user-static debootstrap zerofree pxz zip dosfstools bsdtar libcap2-bin grep rsync doxygen graphviz qemu-user-binfmt +``` +The orignal RPi-Distro/pi-gen repository can be found at github. +``` +https://github.com/RPi-Distro/pi-gen +``` +Current tag is: + **2017-04-10-raspbian-jessie** + +# Building + +Once all the prerequisite is in place, you start a build by executing the +build.sh script in the root of this project. You must be sudo to do it. +``` +sudo -s +./build.sh +``` +When its done you will find your binaries in the deploy/ folder. + +# Flashing + +You need have and microSD card, insert it into your computer and find out what +device name it has. +``` +sudo -s +unzip -p image_2017-06-29-PiAIZU-lite.zip | dd of=/dev/sd[X] bs=20M && sync +``` +When this command is done, just take the card out and put it in the Raspberry. +Make sure you have the PiAIZU hardware attached. + +When the Raspberry boots, you will get more instructions inte screen of the +LMX-001. + +### Encountered issues +At some points it has been seen that the qemu-arm hasn't been properly installed. +if debootstart fails due to something similiar to: +``` +chroot: failed to run command ‘/bin/bash’: Exec format error +``` +try to remove and reinstall: +``` +apt-get remove qemu-user-static +apt-get install qemu-user-static +``` + diff --git a/stage2/03-install-piaizu/files/brightness.py b/stage2/03-install-piaizu/files/brightness.py new file mode 100644 index 0000000..d8c5956 --- /dev/null +++ b/stage2/03-install-piaizu/files/brightness.py @@ -0,0 +1,74 @@ +#!/usr/bin/python + +import smbus +import time +import sys + +bus = smbus.SMBus(3) # 3 = /dev/i2c-3 +DEVICE_ADDRESS_L = 0x38 #Address bit=L (0x70)=>0111 0000=>011 1000(0x38) + +ref_pulse = 398.0 #reference(average) pulse at 500nit + +args = sys.argv +print "Your target brightness is " + args[1] + "nit" + +#Calculate the target pwm value from pulse value. +#The relationship between pulse and pwm is non-linear. Need to be calculated. +def pulse2pwm(pulse): + if pulse <= 255.0: + pwm = pulse + elif (255 < pulse) and (pulse <= 510): + pwm = (pulse - 256.0)/2 + 256 + elif (510 < pulse) and (pulse <=1024): + pwm = (pulse - 511.0)/4 + 384 + elif (1024 < pulse) and (pulse <= 2040): + pwm = (pulse - 1021.0)/8 + 512 + elif (2040 < pulse) and (pulse <= 3825): + pwm = (pulse - 2041.0)/15 + 640 + elif (3825 < pulse) and (pulse <= 7461): + pwm = (pulse - 3826.0)/29 + 759 + elif 7461 < pulse: + pwm = 1023 + return pwm + +#Calculate the target NUM register and WIDTH register +#Not linear. So need to be calculated. +def pwm2num_width(pwm): + if pwm <= 255.0: + num = 5 + width = int(pwm) + elif (255 < pwm) and (pwm <= 383): + num = 4 + width = int(pwm - 128) + elif (383 < pwm) and (pwm <= 511): + num = 3 + width = int(pwm - 256) + elif (511 < pwm) and (pwm <= 639): + num = 2 + width = int(pwm - 384) + elif (639 < pwm) and (pwm <= 758): + num = 1 + width = int(pwm - 503) + elif (758 < pwm) and (pwm <= 884): + num = 0 + width = int(pwm - 630) + elif 884 < pwm: + num = 0 + width = 255 + return num, width + + +target_nit = long(args[1]) #Target nit + +#Target pulse is calculated from reference pulse value +#The relationship between pulse and nit is linear. Can be calculated with simple formula. +target_pulse = (target_nit/500.0) * ref_pulse +target_pwm = pulse2pwm(target_pulse) +target_num, target_width = pwm2num_width(target_pwm) +print "NUM=" + hex(target_num) +print "WIDTH=" + hex(target_width) + + +#bus.write_byte_data(device address, register address, value) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, target_num) #Write NUM register +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, target_width) #Write WIDTH register diff --git a/stage2/03-install-piaizu/files/config.txt b/stage2/03-install-piaizu/files/config.txt new file mode 100644 index 0000000..126da62 --- /dev/null +++ b/stage2/03-install-piaizu/files/config.txt @@ -0,0 +1,31 @@ +overscan_left=0 +overscan_right=0 +overscan_top=0 +overscan_bottom=0 + +framebuffer_width=419 +framebuffer_height=138 + +#framebuffer_width=800 +#framebuffer_height=600 + +dtparam=audio=off +dtparam=i2c_arm=off +dtparam=spi=off + +core_freq=250 +dtoverlay=pi3-disable-bt +dtoverlay=vga666 +dtoverlay=i2c-gpio,i2c-gpio_sda=23,i2c_gpio_scl=24 +dtoverlay=gpio-key + +enable_dpi_lcd=1 +dpi_group=2 +dpi_mode=87 +display_default_lcd=1 #1=LMX-001, 0=HDMI <-should change framebuffer size same time. + +dpi_output_format=458783 +hdmi_timings=419 0 25 14 61 138 0 58 3 69 0 0 0 120 0 16666666 8 + +start_x=1 +gpu_mem=256 diff --git a/stage2/03-install-piaizu/files/demo/Engine_step01.png b/stage2/03-install-piaizu/files/demo/Engine_step01.png new file mode 100644 index 0000000000000000000000000000000000000000..5a040d3bd6d4e7822d0647504e18d15ab0374525 GIT binary patch literal 25288 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 H{Otb%x>Jxs literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/demo/Engine_step02.png b/stage2/03-install-piaizu/files/demo/Engine_step02.png new file mode 100644 index 0000000000000000000000000000000000000000..3caf961913b74b983f43b6391fbfffbd0f8ba696 GIT binary patch literal 39213 zcmeFa1ys~q_cuNw-J*n)fTBoucMBrjIl#~iF~HEBf`qh4OQ#??Gzth3f^>&;NjLw| zTXOGxem>9t{@(Xl?^@1UIJ3__d!MsEXPUTMh)_4cztC)@H6Z{1#?7yP*8neG5&;0{^5$Y<3JPX64mJ=o8(WG;Vqz4w z_BJNwRv-Ytc`RAkR7H7(K;Up{PgFM8J4V(<2_Kb0Ni@{^R@8l3N;F)VV9NASe8uJ) z5)z0c9cjVW!^6G9@D=GXpQ4YTEKp{I`(*|{?L3`z%d{M-J6!C(s2CPpD%?#j??q`s z#f+0?Q{?c*%o8QQG2_?%wrzHSQP>Clo-F_uwcMBza(?$3;K-AopN^^tr2%lwc>n_y z&?J}C#7r7=iL)x2sB_KR|5}qn6t^s@_bq_1Yq)4OKv?pccXGmgWk4Dtz@W>>a2}w* z05EvqwKxFqPCiO>y9UsXp~SzI76qWV2?`bmnDGG$d)1yw05q5Zw@hT;@&HB{0L+in zO{4*(Re+`*T#PaRDkgwgF*x8M0MQL#&~f*!Gr&I)a7%JWo&O76G42vA9I3=I{+fF{ z5Wt(xJ&y?KZgBz;fG>m@TU-)vv-+^(%0zWf9)_Bf;Rsg% z(pJXQcWu97Bat3iGdlWtVPQn(t*ADzQ{Cgjv_-#3{oLx=g4f)l7;<%ut{=!gz}0YQnmYslc3?KmpJ-68dz<;q_ChbWgwCbX zr~%$4kDl8B0D9v07*#sUh1yX80P!>*+ENjcy=Ef%CS=lPq={yXGXqY4(R*)OL~%vY zjlD_j4IUQyiqZsjmy*#MFntmxV{cM43yikKW^7Td#ul)}IRT=kG}F}ipdpHMpxy*h zjs;&ce5!Fb9F;IJ;E1wW8WAt_9>x3MTZ&Y&Q5@1NN>5cNRHeyw1nd!bf^;Nnqxd=i ztiES~by6%bK4ppmpD-)LYI3=V{UtLn`ivb|UPKV2CH2|AAr=VZOke6NFvA&(5EN@? zZdxWnVS8)E%-Gf{`kI>_E!wE-HB}*IK^t+YTH$qA$i7kUYbYX~k3%{oNtFh?`8fZoy)2 zx$fbGh_ODXi9~qx`jtvQUcY2NSn2KxeO?l~H1XZ&_hZJEWhgu`^b~X*0Sn0stqW`m zBny-~+UUuK!gjBYl;>!aIxS>wf5!dH{uvpRz$&7e`9f(jH(lihM}(GWQF^6PiDFRh zO?Jl@Jl%c-k7TooGGYga%?Qm7%}bUYYHv)&l0S*>Q}6Fuky?&lzP<;=#0tdsYY#T1 zxt&CWLS%XyN>q~YIQ#ZM=pBN+Dck?{HRX!See-Su_UxiDtYr6pEDpra4R+xxG(N8O!hVF~ACuuy^gymTHhHW@bc za;4oE6CsrO1iPb`4o}dQXma9rJ)ch9+Il$mkR+S^aSaPd$1*=IK2D=Rx&e=>z zY0&ddd2Ew2BtNyACgRR&tlTJ)8vi=LO8LLTq-;#QbUHF|M-N7&{oZ+1O=Yo4r} zG$3V4Xj%jD+YJs4k@f9jj2C1~B59lKs9%tA*tgT2b?x6zPAX4o*~lF)+2q_b-wc{a z{lK33Fh!FM(%0G{Hlz6YqYy@FEVJcwp{Kl z-6%x5mxuaLfQ!J; zR!__a0YL%kfkNT7!5YLLS>idMA1A~h)8Z%MapF@+rY!P2B@8kgw1WAJ7W`vewd}P* zZHy+G9|kp&H6B^XlJYRp7IT8F8m7-Sc7x`U=P>5o2osn(bZuSIds_AaatQJm@#uNu zgdYb#;f~oB!KKY52&3M)38fB4cWEJOF{NVq$oVmNL`;X4{K<|qt(@!g^{6@ymwWHn zvgkk8_&>;ttb2_0cruAMh2Vt~g*B@HZ#|3O^QcHW(R@m|=t|R7(?t`fu0l{i*~L3> zXcZHAEXsS!^2kCYO$PKz(d=avEt+9klrmG0x=CYqNGDHRK?+^>#)tCG@kp+hTd9{D zcrAFd&nvS6Wz`wTG#2X%EqKcK?Oevu=kbx~0@aWU`KzB+(pnG77i_4<7kk#9!3H+cnbYm9qM`b}0Arx;SSvE%aN7vr(PSfgWau%^}CZ0sLMj5Eb|(~QIXD#dCt z8~Lm2KsoPwy7`1uUa9PYx6yvR|N1$~UF^!?noomd{Q@dV5kquqQrPWx8ZMHz zpbS`?SgOxnw$0tO6?a)!IYgU2B*)?%a|&}SoJAS9<3wgk#$+M-V&{cqlJbjFZA0x^ z`4560hgPRt&!ooh;Jjq#*L0EDRe5hdw&FVwZMxGNmK>Yx;mLSBVKAOi>9%ClGi`xm zvsH`hFxxM28M?$*$Je8?Q|+)*HvajhdbRqC5?+1lRfkpni|7IQcGyeUi{cs`%bHEs z`U*Fb!xfSguAa%gdY3N*mqUXoJOY#TyRJ5e?+*8;2_`-5ADs7e!A7AEHjC=y>-6`8 zH$+CoCW8irv@a$`wkEtRnxJXBA19;^kpujCFQWD%aKw-z5+k|-u>#jpxCME5=7j9e zSI%<8dX0PUrx0FbTyzx^5-@ol4XzFMd`$S59={VG-DvHeb-voPcDrP}t)-2;;k`2( zi{75v=|(ej0!p@(IgKN~;7;L1b7^+`dSAIO=QR3ubo3?S^@QCsBQ}O{06<2= zih<0`rCseo%C1jTj9e{^c#Nrp1kw4OdEpAIK@LC)XKO1kgx6Vs>YH9(`0ua9OjH!# zsyJ8*P>FnPkU~RFfkMp29z?;x$jM;D!ootq#ly(L!Oh0XK~KTT%)-IM%)`XO%)rdT z%figd%1rU=he{9~{)^w<*o0R}T=LiE;FJKBnS+BZFB20K3T1?{G1}OhGO_UR@Gvp6 zGO@BUz-ur-T)+-MX9h6j?k`Gy(<2Uo7}=ZKI+)vlDZc6j8rnEI2vAXdZRq#UuXb76 z{@xH6@+)?56q%fXwoELH%uIhLWNh@ijIE=+)wix08!>^bK-M6z0|YL|^0#tuNaf^y z7yaAjtgZi665=4?1h?QWM- z|64`2zinmyzF)ty|0RqL<|hB5BVRfHQVis5{x8J7a()r}=2O26H9s76UNL(R(80!D z#m2@;@E3ReV0np*=+K}@z_Q+}pD3csuQ&3}0xfguh+uo38yxFEcM(cIjamxa>= z$ZW{Y&cMuR!p^`BU_1u7~Yr(n;|O)J6tEokeic%oturD0mx}&$iTwN!V2Q#G34YlGWo5E zzftp-rlidwaL;r3&LiP|`7PWjgY2%B{>HE}{}#4vf%Xv4*I6w<_1m=mJU4^K8S1AUX{T9VUwZ$87$`bMxO@^L`oDpL6rKRp*yzdv)deZ8iPt zO8GU{f~O4Pzxb!**ID&7SpRrogs*Mzw3YWe+z=AWi0zqIlev z^lIsEjQ=!``J=sWZ9Rd9Q$YzZJW&Hth(I79YeOp+ex|>xbfr(fxY~D}|EBD#1wT~w ztK&n*4-RQ{Lj75!(n{Z;(GWXC@o zqrZy(m+biFEUfU;8!#ATh>p!#W$LjtAJAcWxuBMdVckipJzht7{C3|8v zRyOu>HpU=9w(rIMDE=e8`%Vh}Fpk16&*BI|l%zx{9!ZFCvhZ+nGO#jU@xJfseW&N^ zaWyaeED(M!^=-Q^2$%Uw*`Mocd_B{%a{P8?$HmGF|G;lY;GbVbzi0nhRP%op{hs}2 z(LW?r!R8KvaF_hn(LWV`C-wDAo%b7h%J6$6&{xy`T=eJK3g*rrD-CgT_(?A0>xm>g z3;ay>o6w&*e=Di^ha?Ld_xFo0qh-}a>c ztKWZ^^uMb1sna{Upnk&j1Awlwf5LSY zj~`G!;ranUSJ^+|x{AjSsGo5C0HCYvpKx8p;|J7FxPAc8RrXJ~uHx|n>L*-30O%_F zCtO$Y_yP43t{(t&mHiX0t9bl?`XAv!|Kr_IATa!eP*C`rpN5hNN8oRbqA-$Hk^=x- zsR00QKLFtP68^mc05~!O0ILQ70B-^SKxp$^|D7cKeUm7U#6?t`$JUdf&MKg(z^%Qh zn|RLwk8;xwX(jUU#iJ@1)z&?%*J@WiY2zvivAP(Gk=$AXQK`~YvY@Dlcof3Kl=WU- z{A_L}&mT!sNP8bP6hopCU-Ga)xLs0r*TBLY$bQWR%rAu}x*swVVIuq8xcikRVqwi` zf`4I3hQZ644c>OVMEJG*mr4-yU(4aLWk&&t5Cb!!l*L;_n1Pw^y0Jv(XSO|a3vDlS zBQSsyex+U{Dz{piHzHr(C{w0{ps2(p?wZj?SEDc&vH~nuDX74b0## zd^MQcE!~7@>>@o*VVpfau)!t9(CrCGcrx=Dhha=Kme1Ha=sEugjG%15;Ltu{htleV zV9vF*nW1zU9|Fc|lQU%|A{G{>(%B(!cfY%?fe5rt%g1Z*(oj|+8h19uI^55vh01jB?7WZ3rKBZu~E-8fC`^+D$x5HKI40!@}Yoe~H z6@@q4_rtA@QR@q)XGFI#1EZg_9JZ!)C8uIokG?T>M6WLQB^I4usD!nbzNYvOj4Lr=dzHp);7;2F)(tdUW~`}{ z^%D+HN(DVke2{H>$=GF|UM_vWHs|*H?$R%OmR^_4!CP2g1gy1jP(%HSAhTU4&uDJ5 zuo7W*r>LVhjq3}UZUqK&o*WOL05=EPoz{cJt2gPKEfE&h%Tn%~s?#ud2Qa-SBTUBh ziHd}glqscWh@VP4Xw4)snDsJdaU{+`4CLw++HtE|y{>+Nvh8nrA}o=2+$cE6B2j|e z`l!?2JPvn5=bB|>mFKYIhu3#5TL^()*6=bSiE8EmhHfoA`uh-x5Ip>+yA(i*Hze76 zHr_p^e(`*T$G4thH#ZmI;^Rc?2LP*thj&37F0R9#TYIskdmhXENIiAqXZoqw2?qT zalV1#L@O@&o0oGV05>S|8uy*gtww54cgiVfln4g=&6(Gl+wSmDp#@H&+dLbdk3qs6 zz&5NEYYYXBE-7efT(Y=}E!2+h)%VxC>7pKwZch#3Wf723*rgTbjuhjj0Cd}18?f*) zDY<;~Y258_bk6e8O>nZf&Ry2sIsL1Av5hEb5IX7Zh1aY^R>^PGKn099RO(~C^~ly> zq@pL{j>gQG{R_ui?G4*V8b?fYb_Sd5=WB%MOZ*vXf>Ie9w`GR0EwRWXMJiwu?xT5; zNyxWJ3^oYIxR}vJwM1R==!^T*Y-b0ykM)hSV(@)oQUj^2p6V?fZWP?eP8XQXMYExN zu^dFW*v+pa`|j|D2Y55nFe&n7o?&vAVjbA{wxYyzf|(7CnP0|n*DkM8 zfp%ai=oVR3iFgJ2*dlgbZC2)uR2zB z4ST~UADyP-lZojZB=R+q=W9n3Zu0jS=|u+H`=wrNXBXGb_AoK)knxb4+H5N1*F5b7 z2u%EfswSS!qCE|*xShLz)o2g`Uc~MgOMi0n7$xST*|(nc-@}49eJr{lmf0z4_qeYW zg4J4VU0uLB-E0+(}md@xCJVljh*dTQlov{2kBr|kZK{~F^_PTA&J zD+tNOx%rH60Rbb#XM{X*LKEC{cCJ-;d8V&%0o*VS&VD6<61++yn|;Krv;C4jF*UX7 zIblAnK|9l!aLcVBEwaw>2!N1Ru4oC<2VY11){+uS{b_?`r-rxeZ#W#tv8<(GZA*7}+ z(D_h?=7XJ}p6%m-Zo!=$KLRpJ2&_Rr2s`p3X--J5;hAhqE`7XX?B~cnmStYea5^D} zsl%nESgPsTMlI@VuNVW%@30M*e@zVlO-DHfD~X7Y!F04m>#t97s%wreG&G(JN{nUldVPM-2{C6QE>$WH_^eZP_4X@1ZE{zZ&Dj z7{#HiiY4&CGF|fk%Q#EK7Ey(_&g9cMZYrjYT%ku@@y&a|s`zrd9^(-)rAQL*KgYqO z?lRjuiA<4);L@<9?`qD>q9LKEzD!D{rR&AN09pX}PCwR8yA87vIhO2KbIXT3n6;j1 zGJ!Atfr@97B_rXG?n}RgGHv{*_8esVPe$V>VKPCIy1H$*;swO8^~0 zsJkg@OM!0&J3Ap|?qjX~?X#_Xg~iz6Zx4Mx+i*=nu`RP2Tx0QNG?_Z1BzC7_pWYso z*qTwZp1Q!D6j@4dMWtcz$+%9Om6DiYG%5jUvrm%aGucrfvrmHFa!@ps`KfmY#I-& z!b{0GeHFa7`~FYv0?!ZeCYq!*zUZ$xZt7K7mgaYUe(rEsDsD5)OD#ea22XBss5hi& ztWUf6K;37@)*X{2aiTmhc5NCqi4bIRJ=#qx>AKuj8XEpr?>s(vJcT`WmSKd=ksj?a zI&uR*+ZCJFq9U9zWJ)IoQF9XMMJn8|jR%^yKEAhzFE@SmR8;$ox)n9av%8H} zyzaY^cn?-HGDhqJ$mp)!IB_5M8sfA;4XefnpW!K~`v#$$Z5z*ruPkOC_1Bh=5~%9G zo3-F{+TZ@VM%pYaEf4vOuptzA$$ zMEOi^9H@tNke5HwE!;>7qBO@9hx(I+5<@@4CC_dPn$CVXP; z&QCf)&87T>@|>|Dp1zQ6%X^COefQ!1^^@ex1cy}Ab4FkD^IMr;w#zJDSSaZ|j>fN3 zQyDLhqnmTwVUDX*|09`L;N#r`c^(Ay5oVK$;CH~H&; zbD`Va=UPX#a^8(afg}y8T$>l_`EI`TL)m4IGjHx-YXl_ozzh!2N9vVAUB#bw``Y>W zi{RoG4kL++fLOw6Z;oM?3;KBx=^X1HeUXqp)h!9NDma!b-o^-s(@k1Dy%RwWrToGu zsjUKgA`!8f>#+GkB`)t`#i3mTzMPo1j071>YdH!7-i5={dHN@#AQ1-Ryam&IA`ZvI zw^_{N$Hn!9eKicY!p3~h_@`lL{c&OnvcW3=(oGm6$S-G^*iP34!AVOlr4+l1+Z<#!-Y2uRhU7juS9nSB} ze#kw}i7mp7d784F|M4AGaS|a2%z!{H9nkrLg z=aXjRSMoF8%MI(+c@dG0<=hs_%6fWE8ZvbL34x}SKkyE@>z(|*j9d^OIshEMa9TpiS0hY!=VI7E`X-Y}pFYH_!Y zFN5pr5Zfj&R1bw8VbiK2}j{M(P!PR9qW!$vY_n=03C|JMDs5xK~?n zkQPO>x_w5rLSGa>8g{>bIQF7orNA+cHNrFf^Sz50~FknI;d`gB5p1Bge;Q07{_1^iSi|aZe`gw`3yiGG` z;#GzUQVB|>7Q*LEv{oBGl9V7hMnm!&A++24FVn$@uiy7&gc1i5+<898zNzQD_Pn-y zarLfs7H=pQQsVe*vMjJAx^Lh8=rc!BslRX)#sc`m2ta#@H`I7bHl}RK!#7qz(Y>Q$ zt+Wso8yu9-qZXRE0QpoijvsW8%aj78h*|iyZOfq`JW~!exDXL&Sk^DSpc^UApKagX z319;UzB!L9haGHbANq}iZ%^%)&XJ*_`jz3;jMTXUJ5NiG8cR=%2vMNQ>uuxu66F=F z0}471DC$;v-e1UVw;}ZzQH6PlZoV6hSSde66iw|im}td&Mb_A{vu2OIu7&;jqnccl zd?X%onX)c@p&(vX>nVQ8?oL2*WAz1p?B}xJaH-1FZ~otM+uo0$RrQXD!W-nxfQmqz z5}OIT9?!=aU*=`|sBSA+V(!TbYGZ6Ij^=-UXj@9qcBabMxD-?^=p+$RODTS@({WiT zEdK>KCF-taqko0I$h7QC2H}hX@dp6T>sD#a?n(WGP`=X zdg;;6Otd+NQ+~u;c%^EhF+>Yy4{@kv#IjpHvwcc5yujEVhn2+?pUTV+xXA@p-EYcmlumnE zMp+lX)*44>8M;ExqPHKlcJA)`sq~;+TYk$~u^c}WZD3~NRQIeMsYyz>WOp$872|>R zb8gJqx{K+mb(KRw)5ktl#r+1QFT!f>^wgsGQYA;2GP4shI%5;m7pB;Q!B3a0j$c=* zD&N^8w>|bU_)O2x#&r$|olPqPybxMzxJKlW+EY{zV{=!s+nc3oWjc#(c7qNS;6QGU)o`+- zi2CL@@>D+V6u9fI@g*dME|;b9D48Vr&hT0Nyx;|pc}Eg|TX)CGnuQo5q{A;K6hG=J za~rce#8Z7W-1B{sE9rn{%g*F9G4v%6Dr}|hY)ACcrK-)Rx8R094)~fx&}T44c;z#q z5)~h7D?;acD;-<&iTlD0}eC~ z?toAlcqIu8$AM~;ukS|Z6r?$BEEP}F@n5TbiBs~7W7w)3|L!TmWvsQJI~bkbDc8~V zRxq~M{#H7s###2-{NTR3?&+=1EiuE?(j1AW?3gupiw&<1i@VC;2`l2Y8+hTjqtmwV z`&| zq_+3Gw1Io7k*_}nDAdp$>6c%Qf5~p*yj7}tr$UOhb8y7gTdsUCdb5(J^uiKrqH8Q~ zBrd0l{%!NHsAsXYEs!kiJgI*g1N+5V<>=F>$+_xzI_Ja16C;?2->&j^|mc-JQhC2*QVzvc-*479{ahMV-XEuAU_QdeyL5}aC7orj8n-sW&&xrTO%=z+*|k*Z zW$V~-kI+4Ayc03Amw5OYuvVN)1*uIZ(ZeT16XAyuy4QgWZ*9088HiQ^9NVlG9}=L4ZK&cF2-t8uMaSpoqe&m&$q6p z>z4YkWVo`&L^fIp3BaoPT^y?CGvF z7hN^%GSNb{5LX6!Juxxc;?-QYM9f87S1S{O$q}+eZRa*$Cv@TNL}Z?%!-qH2TekY< z1;QmW2&czoLZ_-*FHBgiZ;lJ}dPE{`*jWHv7{Fd}jqE6{=Zz<$ASOglp|I0{`!NK4*K{ z(%|&0%>&2A>u4aUboF{iuXn0G&q+G8T~s`ykZ=otwl!5D=XTb!#LoC`D)=MXy~5x^BXtD(mlAN z@g-{26r6&QI!$SJZIBj8@}XRv1d6qjj|^#ALbxeK9V?#X6n0gQ?^gE1(2`=7&lQER zMzdM{z10wbR1YTgNtKAunNYr@gOSZmV*cuRLdaywEyKM%&W@=ftCZ*NW&>SMPwCwY zzO)x4HUZQmUpCva4s4-=N=NC=WHAhSiD|e2r(7+SsRpB7`+PX^nnFdVBID`IC*<1^ zDs}fQlPm&LVAzsV7=nTp5k_10bajiWA65ahB2%-7@3ix#p3xu8 z)?~`=7MEzlv){5gLUb`3zrE?%eCVugwjs~ykmYugelC7*$XYt~{Zp>io_D1)5(0OK zkT!x^B`*CP^$Xngt4}}O-5hc$HD$O3$_s^_(AF%JK?ezFq_W*nRR_1HteMw2kG987 z8iRtkba<~Xo~3GCPnPCQEppgDFl{Nj-4lX;AelYb&P-h?A*C&#T2bR^IX9#uA6mbL zkZa^yP|1(ny7J*DC-xmdB4Uwsk#px$c5z02f}!5P045Qa8;?D2VuMu%y*%%$+-h#V zC4GDwd((Rsx>{VHL4>^(xPvZDO4F4q;Z}r4Eito!vEt-2hG1!`8U6Sg@-#rb4qF~a zC8CPYD_}IDX()B|f;{t1WY<=5*OM~~=RqlAHkKW7=ekVDN3itE39FhFsY`;JDY2?= zjvOK9oNiqmPr8dS;1@d?-2f~bHy8ht{D8Nj?($e|mLG3u?fZh4TD`l{@(~29@#E^! zRo0tms0GCDHDOJ+ET$Uk?vta)3i;WPzn*$Pfsnx`qM{w5x+XY7_-a0)?uM3wn!rtA zD;%_sC|r+%g${dG>z99Ap|AcocSQv`3V!-C#SOR^RBt$qTQP}d@A)~+NmU) zU+-glJ7Tg`VmSaFeX+Bwd@?0y?KB|}b7KgI`SS8!Vc9e0T$%x*Eit#jUF-gGVqN&% z&Na%?6_Wbm4$dbqW^Jl6h@G{MMHHeo;WAIEaKZ_7VG2?s@5Fw|DMJ6Icg#E7SO89u zYU_}MjfGwxQmu?Bo5eE615+X5o5My$^=?r2t>Ri(Y(08Fjd@xnYKQ%**n2(M zRSx)M62b9{rA)V{*VEml+(Pe~fln*78JL1K$^sj0LYY)fP^iX<+Q7^B8KPy^I7439 zY4bD7%(3^Y?;oiaq-rg_nH%91L2U1=<^5>K@^$MyJ925@0qm38?$*Vsz6lMw@Cw`_ zkIT9_cr9aGw2c5w_EJdfHZ$a@q1=t4bX6OM4-7D2W9?;b0{81NsIR@~Viua>kn%Ol zA|#eMZU^e2^@c0d<=-c1jMXm9Cyi??f**$5-qgpI-?wpIg~G3IiiX5=+ss4P?yt?4 zpAvf&daBDfz+U3)rsQkST&Dsdk$1aiMQS|57b5pVct*s*BG4n`_+)*|=EFOXnd^xz zT98vy3i6(~<)C_8h=+kLnAj>QCly5pt7snB{d~-Cy6)@~gt0P-pl`_Io&t+*8VH5R z35WmV4OZn(=*v5|x6dK@@(6O$8+>T_{AqK{>v~9#R0q!pfdb(9L>towhB1-&atfCi z&eW!{(^o~{36}cv!C@vNKVJXK1MuYO3F2ztjM-b7TqM#7aPcgB8TfzzX8!aHmQxs6 zVhz0jllPq}p<*h|TIdC??yk=lxak>($jhDRrL$|PYwCV}hxg(`%oqax^z}}eLJ?

U4L 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 LK|{V;);#!sW1m+A literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/demo/Engine_step04.png b/stage2/03-install-piaizu/files/demo/Engine_step04.png new file mode 100644 index 0000000000000000000000000000000000000000..116d2b0ff6411d35f0a15345294fc8410e6de8d7 GIT binary patch literal 41954 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/demo/Engine_step05.png b/stage2/03-install-piaizu/files/demo/Engine_step05.png new file mode 100644 index 0000000000000000000000000000000000000000..f695388a488f17cd26bb23437e18bcbb9c214a17 GIT binary patch literal 41955 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ℜF%5imn)m%^ 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/demo/sonylogo.jpg b/stage2/03-install-piaizu/files/demo/sonylogo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ff97f747ad80cd1ccf09d244705b001632b899e GIT binary patch literal 6455 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 E1rEgh0ssI2 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/dnsmasq.conf b/stage2/03-install-piaizu/files/dnsmasq.conf new file mode 100644 index 0000000..63d13c5 --- /dev/null +++ b/stage2/03-install-piaizu/files/dnsmasq.conf @@ -0,0 +1,666 @@ +# Configuration file for dnsmasq. +# +# Format is one option per line, legal options are the same +# as the long options legal on the command line. See +# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details. + +# Listen on this specific port instead of the standard DNS port +# (53). Setting this to zero completely disables DNS function, +# leaving only DHCP and/or TFTP. +#port=5353 + +# The following two options make you a better netizen, since they +# tell dnsmasq to filter out queries which the public DNS cannot +# answer, and which load the servers (especially the root servers) +# unnecessarily. If you have a dial-on-demand link they also stop +# these requests from bringing up the link unnecessarily. + +# Never forward plain names (without a dot or domain part) +#domain-needed +# Never forward addresses in the non-routed address spaces. +#bogus-priv + +# Uncomment these to enable DNSSEC validation and caching: +# (Requires dnsmasq to be built with DNSSEC option.) +#conf-file=%%PREFIX%%/share/dnsmasq/trust-anchors.conf +#dnssec + +# Replies which are not DNSSEC signed may be legitimate, because the domain +# is unsigned, or may be forgeries. Setting this option tells dnsmasq to +# check that an unsigned reply is OK, by finding a secure proof that a DS +# record somewhere between the root and the domain does not exist. +# The cost of setting this is that even queries in unsigned domains will need +# one or more extra DNS queries to verify. +#dnssec-check-unsigned + +# Uncomment this to filter useless windows-originated DNS requests +# which can trigger dial-on-demand links needlessly. +# Note that (amongst other things) this blocks all SRV requests, +# so don't use it if you use eg Kerberos, SIP, XMMP or Google-talk. +# This option only affects forwarding, SRV records originating for +# dnsmasq (via srv-host= lines) are not suppressed by it. +#filterwin2k + +# Change this line if you want dns to get its upstream servers from +# somewhere other that /etc/resolv.conf +#resolv-file= + +# By default, dnsmasq will send queries to any of the upstream +# servers it knows about and tries to favour servers to are known +# to be up. Uncommenting this forces dnsmasq to try each query +# with each server strictly in the order they appear in +# /etc/resolv.conf +#strict-order + +# If you don't want dnsmasq to read /etc/resolv.conf or any other +# file, getting its servers from this file instead (see below), then +# uncomment this. +#no-resolv + +# If you don't want dnsmasq to poll /etc/resolv.conf or other resolv +# files for changes and re-read them then uncomment this. +#no-poll + +# Add other name servers here, with domain specs if they are for +# non-public domains. +#server=/localnet/192.168.0.1 + +# Example of routing PTR queries to nameservers: this will send all +# address->name queries for 192.168.3/24 to nameserver 10.1.2.3 +#server=/3.168.192.in-addr.arpa/10.1.2.3 + +# Add local-only domains here, queries in these domains are answered +# from /etc/hosts or DHCP only. +#local=/localnet/ + +# Add domains which you want to force to an IP address here. +# The example below send any host in double-click.net to a local +# web-server. +#address=/double-click.net/127.0.0.1 + +# --address (and --server) work with IPv6 addresses too. +#address=/www.thekelleys.org.uk/fe80::20d:60ff:fe36:f83 + +# Add the IPs of all queries to yahoo.com, google.com, and their +# subdomains to the vpn and search ipsets: +#ipset=/yahoo.com/google.com/vpn,search + +# You can control how dnsmasq talks to a server: this forces +# queries to 10.1.2.3 to be routed via eth1 +# server=10.1.2.3@eth1 + +# and this sets the source (ie local) address used to talk to +# 10.1.2.3 to 192.168.1.1 port 55 (there must be a interface with that +# IP on the machine, obviously). +# server=10.1.2.3@192.168.1.1#55 + +# If you want dnsmasq to change uid and gid to something other +# than the default, edit the following lines. +#user= +#group= + +# If you want dnsmasq to listen for DHCP and DNS requests only on +# specified interfaces (and the loopback) give the name of the +# interface (eg eth0) here. +# Repeat the line for more than one interface. +interface=wlan0 +# Or you can specify which interface _not_ to listen on +#except-interface= +# Or which to listen on by address (remember to include 127.0.0.1 if +# you use this.) +#listen-address= +# If you want dnsmasq to provide only DNS service on an interface, +# configure it as shown above, and then use the following line to +# disable DHCP and TFTP on it. +#no-dhcp-interface= + +# On systems which support it, dnsmasq binds the wildcard address, +# even when it is listening on only some interfaces. It then discards +# requests that it shouldn't reply to. This has the advantage of +# working even when interfaces come and go and change address. If you +# want dnsmasq to really bind only the interfaces it is listening on, +# uncomment this option. About the only time you may need this is when +# running another nameserver on the same machine. +#bind-interfaces + +# If you don't want dnsmasq to read /etc/hosts, uncomment the +# following line. +#no-hosts +# or if you want it to read another file, as well as /etc/hosts, use +# this. +#addn-hosts=/etc/banner_add_hosts + +# Set this (and domain: see below) if you want to have a domain +# automatically added to simple names in a hosts-file. +#expand-hosts + +# Set the domain for dnsmasq. this is optional, but if it is set, it +# does the following things. +# 1) Allows DHCP hosts to have fully qualified domain names, as long +# as the domain part matches this setting. +# 2) Sets the "domain" DHCP option thereby potentially setting the +# domain of all systems configured by DHCP +# 3) Provides the domain part for "expand-hosts" +#domain=thekelleys.org.uk + +# Set a different domain for a particular subnet +#domain=wireless.thekelleys.org.uk,192.168.2.0/24 + +# Same idea, but range rather then subnet +#domain=reserved.thekelleys.org.uk,192.68.3.100,192.168.3.200 + +# Uncomment this to enable the integrated DHCP server, you need +# to supply the range of addresses available for lease and optionally +# a lease time. If you have more than one network, you will need to +# repeat this for each network on which you want to supply DHCP +# service. +dhcp-range=192.168.1.10,192.168.1.20,12h + +# This is an example of a DHCP range where the netmask is given. This +# is needed for networks we reach the dnsmasq DHCP server via a relay +# agent. If you don't know what a DHCP relay agent is, you probably +# don't need to worry about this. +#dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h + +# This is an example of a DHCP range which sets a tag, so that +# some DHCP options may be set only for this network. +#dhcp-range=set:red,192.168.0.50,192.168.0.150 + +# Use this DHCP range only when the tag "green" is set. +#dhcp-range=tag:green,192.168.0.50,192.168.0.150,12h + +# Specify a subnet which can't be used for dynamic address allocation, +# is available for hosts with matching --dhcp-host lines. Note that +# dhcp-host declarations will be ignored unless there is a dhcp-range +# of some type for the subnet in question. +# In this case the netmask is implied (it comes from the network +# configuration on the machine running dnsmasq) it is possible to give +# an explicit netmask instead. +#dhcp-range=192.168.0.0,static + +# Enable DHCPv6. Note that the prefix-length does not need to be specified +# and defaults to 64 if missing/ +#dhcp-range=1234::2, 1234::500, 64, 12h + +# Do Router Advertisements, BUT NOT DHCP for this subnet. +#dhcp-range=1234::, ra-only + +# Do Router Advertisements, BUT NOT DHCP for this subnet, also try and +# add names to the DNS for the IPv6 address of SLAAC-configured dual-stack +# hosts. Use the DHCPv4 lease to derive the name, network segment and +# MAC address and assume that the host will also have an +# IPv6 address calculated using the SLAAC alogrithm. +#dhcp-range=1234::, ra-names + +# Do Router Advertisements, BUT NOT DHCP for this subnet. +# Set the lifetime to 46 hours. (Note: minimum lifetime is 2 hours.) +#dhcp-range=1234::, ra-only, 48h + +# Do DHCP and Router Advertisements for this subnet. Set the A bit in the RA +# so that clients can use SLAAC addresses as well as DHCP ones. +#dhcp-range=1234::2, 1234::500, slaac + +# Do Router Advertisements and stateless DHCP for this subnet. Clients will +# not get addresses from DHCP, but they will get other configuration information. +# They will use SLAAC for addresses. +#dhcp-range=1234::, ra-stateless + +# Do stateless DHCP, SLAAC, and generate DNS names for SLAAC addresses +# from DHCPv4 leases. +#dhcp-range=1234::, ra-stateless, ra-names + +# Do router advertisements for all subnets where we're doing DHCPv6 +# Unless overriden by ra-stateless, ra-names, et al, the router +# advertisements will have the M and O bits set, so that the clients +# get addresses and configuration from DHCPv6, and the A bit reset, so the +# clients don't use SLAAC addresses. +#enable-ra + +# Supply parameters for specified hosts using DHCP. There are lots +# of valid alternatives, so we will give examples of each. Note that +# IP addresses DO NOT have to be in the range given above, they just +# need to be on the same network. The order of the parameters in these +# do not matter, it's permissible to give name, address and MAC in any +# order. + +# Always allocate the host with Ethernet address 11:22:33:44:55:66 +# The IP address 192.168.0.60 +#dhcp-host=11:22:33:44:55:66,192.168.0.60 + +# Always set the name of the host with hardware address +# 11:22:33:44:55:66 to be "fred" +#dhcp-host=11:22:33:44:55:66,fred + +# Always give the host with Ethernet address 11:22:33:44:55:66 +# the name fred and IP address 192.168.0.60 and lease time 45 minutes +#dhcp-host=11:22:33:44:55:66,fred,192.168.0.60,45m + +# Give a host with Ethernet address 11:22:33:44:55:66 or +# 12:34:56:78:90:12 the IP address 192.168.0.60. Dnsmasq will assume +# that these two Ethernet interfaces will never be in use at the same +# time, and give the IP address to the second, even if it is already +# in use by the first. Useful for laptops with wired and wireless +# addresses. +#dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.60 + +# Give the machine which says its name is "bert" IP address +# 192.168.0.70 and an infinite lease +#dhcp-host=bert,192.168.0.70,infinite + +# Always give the host with client identifier 01:02:02:04 +# the IP address 192.168.0.60 +#dhcp-host=id:01:02:02:04,192.168.0.60 + +# Always give the Infiniband interface with hardware address +# 80:00:00:48:fe:80:00:00:00:00:00:00:f4:52:14:03:00:28:05:81 the +# ip address 192.168.0.61. The client id is derived from the prefix +# ff:00:00:00:00:00:02:00:00:02:c9:00 and the last 8 pairs of +# hex digits of the hardware address. +#dhcp-host=id:ff:00:00:00:00:00:02:00:00:02:c9:00:f4:52:14:03:00:28:05:81,192.168.0.61 + +# Always give the host with client identifier "marjorie" +# the IP address 192.168.0.60 +#dhcp-host=id:marjorie,192.168.0.60 + +# Enable the address given for "judge" in /etc/hosts +# to be given to a machine presenting the name "judge" when +# it asks for a DHCP lease. +#dhcp-host=judge + +# Never offer DHCP service to a machine whose Ethernet +# address is 11:22:33:44:55:66 +#dhcp-host=11:22:33:44:55:66,ignore + +# Ignore any client-id presented by the machine with Ethernet +# address 11:22:33:44:55:66. This is useful to prevent a machine +# being treated differently when running under different OS's or +# between PXE boot and OS boot. +#dhcp-host=11:22:33:44:55:66,id:* + +# Send extra options which are tagged as "red" to +# the machine with Ethernet address 11:22:33:44:55:66 +#dhcp-host=11:22:33:44:55:66,set:red + +# Send extra options which are tagged as "red" to +# any machine with Ethernet address starting 11:22:33: +#dhcp-host=11:22:33:*:*:*,set:red + +# Give a fixed IPv6 address and name to client with +# DUID 00:01:00:01:16:d2:83:fc:92:d4:19:e2:d8:b2 +# Note the MAC addresses CANNOT be used to identify DHCPv6 clients. +# Note also the they [] around the IPv6 address are obilgatory. +#dhcp-host=id:00:01:00:01:16:d2:83:fc:92:d4:19:e2:d8:b2, fred, [1234::5] + +# Ignore any clients which are not specified in dhcp-host lines +# or /etc/ethers. Equivalent to ISC "deny unknown-clients". +# This relies on the special "known" tag which is set when +# a host is matched. +#dhcp-ignore=tag:!known + +# Send extra options which are tagged as "red" to any machine whose +# DHCP vendorclass string includes the substring "Linux" +#dhcp-vendorclass=set:red,Linux + +# Send extra options which are tagged as "red" to any machine one +# of whose DHCP userclass strings includes the substring "accounts" +#dhcp-userclass=set:red,accounts + +# Send extra options which are tagged as "red" to any machine whose +# MAC address matches the pattern. +#dhcp-mac=set:red,00:60:8C:*:*:* + +# If this line is uncommented, dnsmasq will read /etc/ethers and act +# on the ethernet-address/IP pairs found there just as if they had +# been given as --dhcp-host options. Useful if you keep +# MAC-address/host mappings there for other purposes. +#read-ethers + +# Send options to hosts which ask for a DHCP lease. +# See RFC 2132 for details of available options. +# Common options can be given to dnsmasq by name: +# run "dnsmasq --help dhcp" to get a list. +# Note that all the common settings, such as netmask and +# broadcast address, DNS server and default route, are given +# sane defaults by dnsmasq. You very likely will not need +# any dhcp-options. If you use Windows clients and Samba, there +# are some options which are recommended, they are detailed at the +# end of this section. + +# Override the default route supplied by dnsmasq, which assumes the +# router is the same machine as the one running dnsmasq. +#dhcp-option=3,1.2.3.4 + +# Do the same thing, but using the option name +#dhcp-option=option:router,1.2.3.4 + +# Override the default route supplied by dnsmasq and send no default +# route at all. Note that this only works for the options sent by +# default (1, 3, 6, 12, 28) the same line will send a zero-length option +# for all other option numbers. +#dhcp-option=3 + +# Set the NTP time server addresses to 192.168.0.4 and 10.10.0.5 +#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5 + +# Send DHCPv6 option. Note [] around IPv6 addresses. +#dhcp-option=option6:dns-server,[1234::77],[1234::88] + +# Send DHCPv6 option for namservers as the machine running +# dnsmasq and another. +#dhcp-option=option6:dns-server,[::],[1234::88] + +# Ask client to poll for option changes every six hours. (RFC4242) +#dhcp-option=option6:information-refresh-time,6h + +# Set option 58 client renewal time (T1). Defaults to half of the +# lease time if not specified. (RFC2132) +#dhcp-option=option:T1:1m + +# Set option 59 rebinding time (T2). Defaults to 7/8 of the +# lease time if not specified. (RFC2132) +#dhcp-option=option:T2:2m + +# Set the NTP time server address to be the same machine as +# is running dnsmasq +#dhcp-option=42,0.0.0.0 + +# Set the NIS domain name to "welly" +#dhcp-option=40,welly + +# Set the default time-to-live to 50 +#dhcp-option=23,50 + +# Set the "all subnets are local" flag +#dhcp-option=27,1 + +# Send the etherboot magic flag and then etherboot options (a string). +#dhcp-option=128,e4:45:74:68:00:00 +#dhcp-option=129,NIC=eepro100 + +# Specify an option which will only be sent to the "red" network +# (see dhcp-range for the declaration of the "red" network) +# Note that the tag: part must precede the option: part. +#dhcp-option = tag:red, option:ntp-server, 192.168.1.1 + +# The following DHCP options set up dnsmasq in the same way as is specified +# for the ISC dhcpcd in +# http://www.samba.org/samba/ftp/docs/textdocs/DHCP-Server-Configuration.txt +# adapted for a typical dnsmasq installation where the host running +# dnsmasq is also the host running samba. +# you may want to uncomment some or all of them if you use +# Windows clients and Samba. +#dhcp-option=19,0 # option ip-forwarding off +#dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s) +#dhcp-option=45,0.0.0.0 # netbios datagram distribution server +#dhcp-option=46,8 # netbios node type + +# Send an empty WPAD option. This may be REQUIRED to get windows 7 to behave. +#dhcp-option=252,"\n" + +# Send RFC-3397 DNS domain search DHCP option. WARNING: Your DHCP client +# probably doesn't support this...... +#dhcp-option=option:domain-search,eng.apple.com,marketing.apple.com + +# Send RFC-3442 classless static routes (note the netmask encoding) +#dhcp-option=121,192.168.1.0/24,1.2.3.4,10.0.0.0/8,5.6.7.8 + +# Send vendor-class specific options encapsulated in DHCP option 43. +# The meaning of the options is defined by the vendor-class so +# options are sent only when the client supplied vendor class +# matches the class given here. (A substring match is OK, so "MSFT" +# matches "MSFT" and "MSFT 5.0"). This example sets the +# mtftp address to 0.0.0.0 for PXEClients. +#dhcp-option=vendor:PXEClient,1,0.0.0.0 + +# Send microsoft-specific option to tell windows to release the DHCP lease +# when it shuts down. Note the "i" flag, to tell dnsmasq to send the +# value as a four-byte integer - that's what microsoft wants. See +# http://technet2.microsoft.com/WindowsServer/en/library/a70f1bb7-d2d4-49f0-96d6-4b7414ecfaae1033.mspx?mfr=true +#dhcp-option=vendor:MSFT,2,1i + +# Send the Encapsulated-vendor-class ID needed by some configurations of +# Etherboot to allow is to recognise the DHCP server. +#dhcp-option=vendor:Etherboot,60,"Etherboot" + +# Send options to PXELinux. Note that we need to send the options even +# though they don't appear in the parameter request list, so we need +# to use dhcp-option-force here. +# See http://syslinux.zytor.com/pxe.php#special for details. +# Magic number - needed before anything else is recognised +#dhcp-option-force=208,f1:00:74:7e +# Configuration file name +#dhcp-option-force=209,configs/common +# Path prefix +#dhcp-option-force=210,/tftpboot/pxelinux/files/ +# Reboot time. (Note 'i' to send 32-bit value) +#dhcp-option-force=211,30i + +# Set the boot filename for netboot/PXE. You will only need +# this is you want to boot machines over the network and you will need +# a TFTP server; either dnsmasq's built in TFTP server or an +# external one. (See below for how to enable the TFTP server.) +#dhcp-boot=pxelinux.0 + +# The same as above, but use custom tftp-server instead machine running dnsmasq +#dhcp-boot=pxelinux,server.name,192.168.1.100 + +# Boot for Etherboot gPXE. The idea is to send two different +# filenames, the first loads gPXE, and the second tells gPXE what to +# load. The dhcp-match sets the gpxe tag for requests from gPXE. +#dhcp-match=set:gpxe,175 # gPXE sends a 175 option. +#dhcp-boot=tag:!gpxe,undionly.kpxe +#dhcp-boot=mybootimage + +# Encapsulated options for Etherboot gPXE. All the options are +# encapsulated within option 175 +#dhcp-option=encap:175, 1, 5b # priority code +#dhcp-option=encap:175, 176, 1b # no-proxydhcp +#dhcp-option=encap:175, 177, string # bus-id +#dhcp-option=encap:175, 189, 1b # BIOS drive code +#dhcp-option=encap:175, 190, user # iSCSI username +#dhcp-option=encap:175, 191, pass # iSCSI password + +# Test for the architecture of a netboot client. PXE clients are +# supposed to send their architecture as option 93. (See RFC 4578) +#dhcp-match=peecees, option:client-arch, 0 #x86-32 +#dhcp-match=itanics, option:client-arch, 2 #IA64 +#dhcp-match=hammers, option:client-arch, 6 #x86-64 +#dhcp-match=mactels, option:client-arch, 7 #EFI x86-64 + +# Do real PXE, rather than just booting a single file, this is an +# alternative to dhcp-boot. +#pxe-prompt="What system shall I netboot?" +# or with timeout before first available action is taken: +#pxe-prompt="Press F8 for menu.", 60 + +# Available boot services. for PXE. +#pxe-service=x86PC, "Boot from local disk" + +# Loads /pxelinux.0 from dnsmasq TFTP server. +#pxe-service=x86PC, "Install Linux", pxelinux + +# Loads /pxelinux.0 from TFTP server at 1.2.3.4. +# Beware this fails on old PXE ROMS. +#pxe-service=x86PC, "Install Linux", pxelinux, 1.2.3.4 + +# Use bootserver on network, found my multicast or broadcast. +#pxe-service=x86PC, "Install windows from RIS server", 1 + +# Use bootserver at a known IP address. +#pxe-service=x86PC, "Install windows from RIS server", 1, 1.2.3.4 + +# If you have multicast-FTP available, +# information for that can be passed in a similar way using options 1 +# to 5. See page 19 of +# http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf + + +# Enable dnsmasq's built-in TFTP server +#enable-tftp + +# Set the root directory for files available via FTP. +#tftp-root=/var/ftpd + +# Do not abort if the tftp-root is unavailable +#tftp-no-fail + +# Make the TFTP server more secure: with this set, only files owned by +# the user dnsmasq is running as will be send over the net. +#tftp-secure + +# This option stops dnsmasq from negotiating a larger blocksize for TFTP +# transfers. It will slow things down, but may rescue some broken TFTP +# clients. +#tftp-no-blocksize + +# Set the boot file name only when the "red" tag is set. +#dhcp-boot=tag:red,pxelinux.red-net + +# An example of dhcp-boot with an external TFTP server: the name and IP +# address of the server are given after the filename. +# Can fail with old PXE ROMS. Overridden by --pxe-service. +#dhcp-boot=/var/ftpd/pxelinux.0,boothost,192.168.0.3 + +# If there are multiple external tftp servers having a same name +# (using /etc/hosts) then that name can be specified as the +# tftp_servername (the third option to dhcp-boot) and in that +# case dnsmasq resolves this name and returns the resultant IP +# addresses in round robin fasion. This facility can be used to +# load balance the tftp load among a set of servers. +#dhcp-boot=/var/ftpd/pxelinux.0,boothost,tftp_server_name + +# Set the limit on DHCP leases, the default is 150 +#dhcp-lease-max=150 + +# The DHCP server needs somewhere on disk to keep its lease database. +# This defaults to a sane location, but if you want to change it, use +# the line below. +#dhcp-leasefile=/var/lib/misc/dnsmasq.leases + +# Set the DHCP server to authoritative mode. In this mode it will barge in +# and take over the lease for any client which broadcasts on the network, +# whether it has a record of the lease or not. This avoids long timeouts +# when a machine wakes up on a new network. DO NOT enable this if there's +# the slightest chance that you might end up accidentally configuring a DHCP +# server for your campus/company accidentally. The ISC server uses +# the same option, and this URL provides more information: +# http://www.isc.org/files/auth.html +#dhcp-authoritative + +# Run an executable when a DHCP lease is created or destroyed. +# The arguments sent to the script are "add" or "del", +# then the MAC address, the IP address and finally the hostname +# if there is one. +#dhcp-script=/bin/echo + +# Set the cachesize here. +#cache-size=150 + +# If you want to disable negative caching, uncomment this. +#no-negcache + +# Normally responses which come from /etc/hosts and the DHCP lease +# file have Time-To-Live set as zero, which conventionally means +# do not cache further. If you are happy to trade lower load on the +# server for potentially stale date, you can set a time-to-live (in +# seconds) here. +#local-ttl= + +# If you want dnsmasq to detect attempts by Verisign to send queries +# to unregistered .com and .net hosts to its sitefinder service and +# have dnsmasq instead return the correct NXDOMAIN response, uncomment +# this line. You can add similar lines to do the same for other +# registries which have implemented wildcard A records. +#bogus-nxdomain=64.94.110.11 + +# If you want to fix up DNS results from upstream servers, use the +# alias option. This only works for IPv4. +# This alias makes a result of 1.2.3.4 appear as 5.6.7.8 +#alias=1.2.3.4,5.6.7.8 +# and this maps 1.2.3.x to 5.6.7.x +#alias=1.2.3.0,5.6.7.0,255.255.255.0 +# and this maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40 +#alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0 + +# Change these lines if you want dnsmasq to serve MX records. + +# Return an MX record named "maildomain.com" with target +# servermachine.com and preference 50 +#mx-host=maildomain.com,servermachine.com,50 + +# Set the default target for MX records created using the localmx option. +#mx-target=servermachine.com + +# Return an MX record pointing to the mx-target for all local +# machines. +#localmx + +# Return an MX record pointing to itself for all local machines. +#selfmx + +# Change the following lines if you want dnsmasq to serve SRV +# records. These are useful if you want to serve ldap requests for +# Active Directory and other windows-originated DNS requests. +# See RFC 2782. +# You may add multiple srv-host lines. +# The fields are ,,,, +# If the domain part if missing from the name (so that is just has the +# service and protocol sections) then the domain given by the domain= +# config option is used. (Note that expand-hosts does not need to be +# set for this to work.) + +# A SRV record sending LDAP for the example.com domain to +# ldapserver.example.com port 389 +#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389 + +# A SRV record sending LDAP for the example.com domain to +# ldapserver.example.com port 389 (using domain=) +#domain=example.com +#srv-host=_ldap._tcp,ldapserver.example.com,389 + +# Two SRV records for LDAP, each with different priorities +#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,1 +#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,2 + +# A SRV record indicating that there is no LDAP server for the domain +# example.com +#srv-host=_ldap._tcp.example.com + +# The following line shows how to make dnsmasq serve an arbitrary PTR +# record. This is useful for DNS-SD. (Note that the +# domain-name expansion done for SRV records _does_not +# occur for PTR records.) +#ptr-record=_http._tcp.dns-sd-services,"New Employee Page._http._tcp.dns-sd-services" + +# Change the following lines to enable dnsmasq to serve TXT records. +# These are used for things like SPF and zeroconf. (Note that the +# domain-name expansion done for SRV records _does_not +# occur for TXT records.) + +#Example SPF. +#txt-record=example.com,"v=spf1 a -all" + +#Example zeroconf +#txt-record=_http._tcp.example.com,name=value,paper=A4 + +# Provide an alias for a "local" DNS name. Note that this _only_ works +# for targets which are names from DHCP or /etc/hosts. Give host +# "bert" another name, bertrand +#cname=bertand,bert + +# For debugging purposes, log each DNS query as it passes through +# dnsmasq. +#log-queries + +# Log lots of extra information about DHCP transactions. +#log-dhcp + +# Include another lot of configuration options. +#conf-file=/etc/dnsmasq.more.conf +#conf-dir=/etc/dnsmasq.d + +# Include all the files in a directory except those ending in .bak +#conf-dir=/etc/dnsmasq.d,.bak + +# Include all files in a directory which end in .conf +#conf-dir=/etc/dnsmasq.d/,*.conf diff --git a/stage2/03-install-piaizu/files/dts/Makefile b/stage2/03-install-piaizu/files/dts/Makefile new file mode 100644 index 0000000..6f97dca --- /dev/null +++ b/stage2/03-install-piaizu/files/dts/Makefile @@ -0,0 +1,21 @@ +.phony: dts install clean + +TARGET_FS ?= / + +all: dtb + +gpio-key.dtbo: gpio-key.dts + dtc -f -I dts -O dtb -o $@ $^ + +dt-blob.bin: dt-blob.dts + dtc -I dts -O dtb -o $@ $^ + +dtb: dt-blob.bin gpio-key.dtbo + +install: dt-blob.bin gpio-key.dtbo + install -d $(TARGET_FS)/boot/ + cp -v dt-blob.bin $(TARGET_FS)/boot/ + cp -v gpio-key.dtbo $(TARGET_FS)/boot/overlays/ + +clean: + -rm -v dt-blob.bin gpio-key.dtbo diff --git a/stage2/03-install-piaizu/files/dts/dt-blob.dts b/stage2/03-install-piaizu/files/dts/dt-blob.dts new file mode 100644 index 0000000..abbf273 --- /dev/null +++ b/stage2/03-install-piaizu/files/dts/dt-blob.dts @@ -0,0 +1,1811 @@ +/dts-v1/; + +/ { + videocore { + clock_routing { + vco@PLLD { freq = <2000000000>; }; + chan@DPER { div = <8>; }; + }; + + pins_rev1 { + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p2 { function = "i2c1"; termination = "pull_up"; }; // I2C 1 SDA + pin@p3 { function = "i2c1"; termination = "pull_up"; }; // I2C 1 SCL + pin@p5 { function = "output"; termination = "pull_down"; }; // CAM_LED + pin@p6 { function = "output"; termination = "pull_down"; }; // LAN NRESET + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p16 { function = "output"; termination = "pull_up"; polarity="active_low"; }; // activity LED + pin@p27 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p45 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p46 { function = "input"; termination = "no_pulling"; }; // Hotplug + pin@p47 { function = "input"; termination = "no_pulling"; }; // SD_CARD_DETECT + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <2>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <3>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <27>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <5>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "absent"; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <16>; + }; + pin_define@LAN_RUN { + type = "internal"; + number = <6>; + }; + pin_define@SMPS_SDA { + type = "absent"; + }; + pin_define@SMPS_SCL { + type = "absent"; + }; + pin_define@ETH_CLK { + type = "absent"; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <40>; + }; + pin_define@PWMR { + type = "internal"; + number = <45>; + }; + pin_define@SAFE_MODE { + type = "internal"; + number = <1>; + }; + pin_define@SD_CARD_DETECT { + type = "internal"; + number = <47>; + }; + pin_define@ID_SDA { + type = "absent"; + }; + pin_define@ID_SCL { + type = "absent"; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <1>; + }; + }; // pin_defines + }; // pins_rev1 + + pins_rev2 { + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p0 { function = "i2c0"; termination = "pull_up"; }; // I2C 0 SDA + pin@p1 { function = "i2c0"; termination = "pull_up"; }; // I2C 0 SCL + pin@p5 { function = "output"; termination = "pull_down"; }; // CAM_LED + pin@p6 { function = "output"; termination = "pull_down"; }; // LAN NRESET + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p16 { function = "output"; termination = "pull_up"; polarity = "active_low"; }; // activity LED + pin@p21 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p45 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p46 { function = "input"; termination = "no_pulling"; }; // Hotplug + pin@p47 { function = "input"; termination = "no_pulling"; }; // SD_CARD_DETECT + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <21>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <5>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "absent"; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <16>; + }; + pin_define@LAN_RUN { + type = "internal"; + number = <6>; + }; + pin_define@SMPS_SDA { + type = "absent"; + }; + pin_define@SMPS_SCL { + type = "absent"; + }; + pin_define@ETH_CLK { + type = "absent"; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <40>; + }; + pin_define@PWMR { + type = "internal"; + number = <45>; + }; + pin_define@SAFE_MODE { + type = "internal"; + number = <3>; + }; + pin_define@SD_CARD_DETECT { + type = "internal"; + number = <47>; + }; + pin_define@ID_SDA { + type = "absent"; + }; + pin_define@ID_SCL { + type = "absent"; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <2>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <3>; + }; + }; // pin_defines + }; // pins + + pins_bplus1 { // Pi 1 Model B+ rev 1.1 + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p28 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p29 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p31 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Power low + pin@p32 { function = "output"; termination = "pull_down"; }; // Camera LED + pin@p35 { function = "output"; termination = "pull_down"; }; // LAN_RUN + pin@p38 { function = "output"; termination = "no_pulling"; }; // USB current limit (0=600mA, 1=1200mA) + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p41 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p44 { function = "gp_clk"; termination = "pull_down"; }; // ETH_CLK - Ethernet 25MHz output + pin@p45 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p46 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p47 { function = "output"; termination = "pull_down"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <28>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <29>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <41>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <32>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "internal"; + number = <31>; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "internal"; + number = <35>; + }; + pin_define@SMPS_SDA { + type = "absent"; + }; + pin_define@SMPS_SCL { + type = "absent"; + }; + pin_define@ETH_CLK { + type = "internal"; + number = <44>; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "internal"; + number = <38>; + }; + pin_define@PWML { + type = "internal"; + number = <45>; + }; + pin_define@PWMR { + type = "internal"; + number = <40>; + }; + pin_define@SAFE_MODE { + type = "internal"; + number = <3>; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <28>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <29>; + }; + }; // pin_defines + }; // pins + + pins_bplus2 { // Pi 1 Model B+ rev 1.2 + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p28 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p29 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p31 { function = "output"; termination = "pull_down"; }; // LAN_RUN + pin@p32 { function = "output"; termination = "pull_down"; }; // Camera LED + pin@p35 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Power low + pin@p38 { function = "output"; termination = "no_pulling"; }; // USB current limit (0=600mA, 1=1200mA) + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p41 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p44 { function = "gp_clk"; termination = "pull_down"; }; // ETH_CLK - Ethernet 25MHz output + pin@p45 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p46 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p47 { function = "output"; termination = "pull_down"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <28>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <29>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <41>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <32>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "internal"; + number = <35>; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "internal"; + number = <31>; + }; + pin_define@SMPS_SDA { + type = "absent"; + }; + pin_define@SMPS_SCL { + type = "absent"; + }; + pin_define@ETH_CLK { + type = "internal"; + number = <44>; + }; + pin_define@USB_LIMIT_1A2 { + type = "internal"; + number = <38>; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <45>; + }; + pin_define@PWMR { + type = "internal"; + number = <40>; + }; + pin_define@SAFE_MODE { + type = "internal"; + number = <3>; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <28>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <29>; + }; + }; // pin_defines + }; // pins + + pins_aplus { + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p28 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p29 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p32 { function = "output"; termination = "pull_down"; }; // Camera LED + pin@p35 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Power low + pin@p38 { function = "output"; termination = "no_pulling"; }; // USB current limit (0=600mA, 1=1200mA) + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p41 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p45 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p46 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p47 { function = "output"; termination = "pull_down"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <28>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <29>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <41>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <32>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "internal"; + number = <35>; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "absent"; + }; + pin_define@SMPS_SDA { + type = "absent"; + }; + pin_define@SMPS_SCL { + type = "absent"; + }; + pin_define@ETH_CLK { + type = "absent"; + }; + pin_define@USB_LIMIT_1A2 { + type = "internal"; + number = <38>; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <45>; + }; + pin_define@PWMR { + type = "internal"; + number = <40>; + }; + pin_define@SAFE_MODE { + type = "internal"; + number = <3>; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <28>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <29>; + }; + }; // pin_defines + }; // pins + + pins_2b1 { // Pi 2 Model B rev 1.0 + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p28 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA / SMPS_SDA + pin@p29 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL / SMPS_SCL + pin@p31 { function = "output"; termination = "pull_down"; }; // LAN_RUN + pin@p32 { function = "output"; termination = "pull_down"; }; // Camera LED + pin@p35 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Power low + pin@p38 { function = "output"; termination = "no_pulling"; }; // USB current limit (0=600mA, 1=1200mA) + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p41 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p44 { function = "gp_clk"; termination = "pull_down"; }; // ETH_CLK - Ethernet 25MHz output + pin@p45 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p46 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p47 { function = "output"; termination = "pull_down"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <28>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <29>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <41>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <32>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "internal"; + number = <35>; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "internal"; + number = <31>; + }; + pin_define@SMPS_SDA { + type = "internal"; + number = <28>; + }; + pin_define@SMPS_SCL { + type = "internal"; + number = <29>; + }; + pin_define@ETH_CLK { + type = "internal"; + number = <44>; + }; + pin_define@USB_LIMIT_1A2 { + type = "internal"; + number = <38>; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <45>; + }; + pin_define@PWMR { + type = "internal"; + number = <40>; + }; + pin_define@SAFE_MODE { + type = "internal"; + number = <3>; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <28>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <29>; + }; + }; // pin_defines + }; // pins + + pins_2b2 { // Pi 2 Model B rev 1.1 + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p28 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p29 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p31 { function = "output"; termination = "pull_down"; }; // LAN_RUN + pin@p32 { function = "output"; termination = "pull_down"; }; // Camera LED + pin@p35 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Power low + pin@p38 { function = "output"; termination = "no_pulling"; }; // USB current limit (0=600mA, 1=1200mA) + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p41 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + // Communicate with the SMPS by "bit-bashing" the I2C protocol on GPIOs 42 and 43 + pin@p42 { function = "output"; termination = "pull_up"; }; // SMPS_SCL + pin@p43 { function = "input"; termination = "no_pulling"; }; // SMPS_SDA + pin@p44 { function = "gp_clk"; termination = "pull_down"; }; // ETH_CLK - Ethernet 25MHz output + pin@p45 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p46 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p47 { function = "output"; termination = "pull_down"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <28>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <29>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <41>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <32>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "internal"; + number = <35>; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "internal"; + number = <31>; + }; + pin_define@SMPS_SDA { + type = "internal"; + number = <43>; + }; + pin_define@SMPS_SCL { + type = "internal"; + number = <42>; + }; + pin_define@ETH_CLK { + type = "internal"; + number = <44>; + }; + pin_define@USB_LIMIT_1A2 { + type = "internal"; + number = <38>; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <45>; + }; + pin_define@PWMR { + type = "internal"; + number = <40>; + }; + pin_define@SAFE_MODE { + type = "internal"; + number = <3>; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <28>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <29>; + }; + }; // pin_defines + }; // pins + + pins_3b1 { // Pi 3 Model B rev 1.0 + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p0 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //CLK + pin@p1 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //DEN + pin@p2 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //VSYN + pin@p3 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //HSYN +// pin@p4 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL0 +// pin@p5 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL1 +// pin@p6 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL2 +// pin@p7 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL3 +// pin@p8 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL4 +// pin@p9 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL5 +// pin@p10 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL6 +// pin@p11 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL7 + pin@p12 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR0 + pin@p13 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR1 + pin@p14 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR2 + pin@p15 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR3 + pin@p16 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR4 + pin@p17 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR5 + pin@p18 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR6 + pin@p19 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR7 +// pin@p20 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD0 +// pin@p21 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD1 +// pin@p22 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD2 +// pin@p23 { function = "input"; termination = "pull_up"; drive_strength_mA = < 0 >; }; //RD3 +// pin@p24 { function = "input"; termination = "pull_up"; drive_strength_mA = < 0 >; }; //RD4 +// pin@p25 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD5 +// pin@p26 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD6 +// pin@p27 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD7 + + + pin@p34 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p35 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p36 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p37 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p38 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p39 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p41 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p42 { function = "gp_clk"; termination = "pull_down"; }; // ETH_CLK - Ethernet 25MHz output + pin@p43 { function = "gp_clk"; termination = "pull_down"; }; // WIFI_CLK - Wifi 32kHz output + pin@p44 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p45 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p47 { function = "output"; termination = "pull_down"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + pin@p128 { function = "output"; termination = "no_pulling"; }; // BT_ON + pin@p129 { function = "output"; termination = "no_pulling"; }; // WL_ON + pin@p130 { function = "output"; termination = "no_pulling"; }; // Status LED + pin@p131 { function = "output"; termination = "no_pulling"; }; // LAN_RUN + pin@p132 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p133 { function = "output"; termination = "no_pulling"; }; // Camera LED + pin@p134 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p135 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Power low + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "external"; + number = <4>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <44>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <45>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "external"; + number = <6>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "external"; + number = <5>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "external"; + number = <7>; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "external"; + number = <3>; + }; + pin_define@BT_ON { + type = "external"; + number = <0>; + }; + pin_define@WL_ON { + type = "external"; + number = <1>; + }; + pin_define@SMPS_SDA { + type = "internal"; + number = <44>; + }; + pin_define@SMPS_SCL { + type = "internal"; + number = <45>; + }; + pin_define@ETH_CLK { + type = "internal"; + number = <42>; + }; + pin_define@WL_LPO_CLK { + type = "internal"; + number = <43>; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <41>; + }; + pin_define@PWMR { + type = "internal"; + number = <40>; + }; + pin_define@SAFE_MODE { + type = "absent"; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <44>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <45>; + }; + }; // pin_defines + }; // pins + + pins_3b2 { // Pi 3 Model B rev 1.2 + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p0 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //CLK + pin@p1 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //DEN + pin@p2 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //VSYN + pin@p3 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //HSYN +// pin@p4 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL0 +// pin@p5 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL1 +// pin@p6 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL2 +// pin@p7 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL3 +// pin@p8 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL4 +// pin@p9 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL5 +// pin@p10 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL6 +// pin@p11 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL7 + pin@p12 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR0 + pin@p13 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR1 + pin@p14 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR2 + pin@p15 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR3 + pin@p16 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR4 + pin@p17 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR5 + pin@p18 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR6 + pin@p19 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR7 +// pin@p20 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD0 +// pin@p21 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD1 +// pin@p22 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD2 +// pin@p23 { function = "input"; termination = "pull_up"; drive_strength_mA = < 0 >; }; //RD3 +// pin@p24 { function = "input"; termination = "pull_up"; drive_strength_mA = < 0 >; }; //RD4 +// pin@p25 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD5 +// pin@p26 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD6 +// pin@p27 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD7 + + pin@p34 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p35 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p36 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p37 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p38 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p39 { function = "input"; termination = "pull_up"; drive_strength_mA = < 8 >; }; + pin@p40 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Right audio + pin@p41 { function = "pwm"; termination = "no_pulling"; drive_strength_mA = < 16 >; }; // Left audio + pin@p42 { function = "gp_clk"; termination = "pull_down"; }; // ETH_CLK - Ethernet 25MHz output + pin@p43 { function = "gp_clk"; termination = "pull_down"; }; // WIFI_CLK - Wifi 32kHz output + pin@p44 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p45 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p46 { function = "input"; termination = "pull_up"; }; // SMPS_SCL + pin@p47 { function = "input"; termination = "pull_up"; }; // SMPS_SDA + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + pin@p128 { function = "output"; termination = "no_pulling"; }; // BT_ON + pin@p129 { function = "output"; termination = "no_pulling"; }; // WL_ON + pin@p130 { function = "output"; termination = "no_pulling"; }; // ACT_LED + pin@p131 { function = "output"; termination = "no_pulling"; }; // LAN_RUN + pin@p132 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p133 { function = "output"; termination = "no_pulling"; }; // Camera LED + pin@p134 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p135 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Power low + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "external"; + number = <4>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <44>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <45>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "external"; + number = <5>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "external"; + number = <6>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "external"; + number = <7>; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "external"; + number = <2>; + }; + pin_define@LAN_RUN { + type = "external"; + number = <3>; + }; + pin_define@BT_ON { + type = "external"; + number = <0>; + }; + pin_define@WL_ON { + type = "external"; + number = <1>; + }; + pin_define@SMPS_SDA { + type = "internal"; + number = <46>; + }; + pin_define@SMPS_SCL { + type = "internal"; + number = <47>; + }; + pin_define@ETH_CLK { + type = "internal"; + number = <42>; + }; + pin_define@WL_LPO_CLK { + type = "internal"; + number = <43>; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "internal"; + number = <41>; + }; + pin_define@PWMR { + type = "internal"; + number = <40>; + }; + pin_define@SAFE_MODE { + type = "absent"; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@DISPLAY_SDA { + type = "internal"; + number = <44>; + }; + pin_define@DISPLAY_SCL { + type = "internal"; + number = <45>; + }; + }; // pin_defines + }; // pins + + pins_cm3 { // Pi 3 CM3 + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p14 { function = "uart0"; termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0 + pin@p46 { function = "input"; termination = "pull_up"; }; // SMPS_SCL + pin@p47 { function = "input"; termination = "pull_up"; }; // SMPS_SDA + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + pin@p128 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p129 { function = "output"; termination = "no_pulling"; polarity = "active_low"; }; // EMMC_ENABLE_N + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "external"; + number = <0>; + }; + pin_define@EMMC_ENABLE { + type = "external"; + number = <1>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <0>; + }; + pin_define@POWER_LOW { + type = "absent"; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "absent"; + }; + pin_define@LAN_RUN { + type = "absent"; + }; + pin_define@SMPS_SDA { + type = "internal"; + number = <46>; + }; + pin_define@SMPS_SCL { + type = "internal"; + number = <47>; + }; + pin_define@ETH_CLK { + type = "absent"; + }; + pin_define@WL_LPO_CLK { + type = "absent"; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "absent"; + }; + pin_define@PWMR { + type = "absent"; + }; + pin_define@SAFE_MODE { + type = "absent"; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "absent"; + }; + pin_define@ID_SCL { + type = "absent"; + }; + }; // pin_defines + }; // pins + + pins_pi0 { // Pi zero + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p0 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //CLK + pin@p1 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //DEN + pin@p2 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //VSYN + pin@p3 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //HSYN +// pin@p4 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL0 +// pin@p5 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL1 +// pin@p6 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL2 +// pin@p7 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL3 +// pin@p8 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL4 +// pin@p9 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL5 +// pin@p10 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL6 +// pin@p11 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL7 + pin@p12 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR0 + pin@p13 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR1 + pin@p14 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR2 + pin@p15 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR3 + pin@p16 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR4 + pin@p17 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR5 + pin@p18 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR6 + pin@p19 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR7 +// pin@p20 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD0 +// pin@p21 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD1 +// pin@p22 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD2 +// pin@p23 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD3 +// pin@p24 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD4 +// pin@p25 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD5 +// pin@p26 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD6 +// pin@p27 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD7 + + pin@p28 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p29 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p32 { function = "output"; termination = "pull_down"; }; // Camera LED + pin@p41 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p46 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p47 { function = "output"; termination = "pull_up"; polarity="active_low"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <28>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <29>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <41>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <32>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "absent"; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "absent"; + }; + pin_define@SMPS_SDA { + type = "absent"; + }; + pin_define@SMPS_SCL { + type = "absent"; + }; + pin_define@ETH_CLK { + type = "absent"; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "absent"; + }; + pin_define@PWMR { + type = "absent"; + }; + pin_define@SAFE_MODE { + type = "absent"; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "absent"; + }; + pin_define@DISPLAY_SDA { + type = "absent"; + }; + pin_define@DISPLAY_SCL { + type = "absent"; + }; + }; // pin_defines + }; // pins + + + + pins_pi0w { // Pi zero W + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p0 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //CLK + pin@p1 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //DEN + pin@p2 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //VSYN + pin@p3 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //HSYN +// pin@p4 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL0 +// pin@p5 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL1 +// pin@p6 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL2 +// pin@p7 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL3 +// pin@p8 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL4 +// pin@p9 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL5 +// pin@p10 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL6 +// pin@p11 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //BL7 + pin@p12 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR0 + pin@p13 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR1 + pin@p14 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR2 + pin@p15 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR3 + pin@p16 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR4 + pin@p17 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR5 + pin@p18 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR6 + pin@p19 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //GR7 +// pin@p20 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD0 +// pin@p21 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD1 +// pin@p22 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD2 +// pin@p23 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD3 +// pin@p24 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD4 +// pin@p25 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD5 +// pin@p26 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD6 +// pin@p27 { function = "dpi"; termination = "no_pulling"; drive_strength_mA = < 0 >; }; //RD7 + + pin@p28 { function = "input"; termination = "pull_up"; }; // I2C 0 SDA + pin@p29 { function = "input"; termination = "pull_up"; }; // I2C 0 SCL + pin@p32 { function = "output"; termination = "pull_down"; }; // Camera LED + pin@p41 { function = "output"; termination = "no_pulling"; }; // Camera shutdown + pin@p46 { function = "input"; termination = "no_pulling"; polarity = "active_low"; }; // Hotplug + pin@p47 { function = "output"; termination = "pull_up"; polarity="active_low"; }; // activity LED + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@HDMI_CONTROL_ATTACHED { + type = "internal"; + number = <46>; + }; + pin_define@NUM_CAMERAS { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_I2C_PORT { + type = "internal"; + number = <0>; + }; + pin_define@CAMERA_0_SDA_PIN { + type = "internal"; + number = <28>; + }; + pin_define@CAMERA_0_SCL_PIN { + type = "internal"; + number = <29>; + }; + pin_define@CAMERA_0_SHUTDOWN { + type = "internal"; + number = <44>; + }; + pin_define@CAMERA_0_UNICAM_PORT { + type = "internal"; + number = <1>; + }; + pin_define@CAMERA_0_LED { + type = "internal"; + number = <40>; + }; + pin_define@FLASH_0_ENABLE { + type = "absent"; + }; + pin_define@FLASH_0_INDICATOR { + type = "absent"; + }; + pin_define@FLASH_1_ENABLE { + type = "absent"; + }; + pin_define@FLASH_1_INDICATOR { + type = "absent"; + }; + pin_define@POWER_LOW { + type = "absent"; + }; + pin_define@LEDS_DISK_ACTIVITY { + type = "internal"; + number = <47>; + }; + pin_define@LAN_RUN { + type = "absent"; + }; + pin_define@BT_ON { + type = "internal"; + number = <45>; + }; + pin_define@WL_ON { + type = "internal"; + number = <41>; + }; + pin_define@WL_LPO_CLK { + type = "internal"; + number = <43>; + }; + pin_define@SMPS_SDA { + type = "absent"; + }; + pin_define@SMPS_SCL { + type = "absent"; + }; + pin_define@ETH_CLK { + type = "absent"; + }; + pin_define@USB_LIMIT_1A2 { + type = "absent"; + }; + pin_define@SIO_1V8_SEL { + type = "absent"; + }; + pin_define@PWML { + type = "absent"; + }; + pin_define@PWMR { + type = "absent"; + }; + pin_define@SAFE_MODE { + type = "absent"; + }; + pin_define@SD_CARD_DETECT { + type = "absent"; + }; + pin_define@ID_SDA { + type = "internal"; + number = <0>; + }; + pin_define@ID_SCL { + type = "internal"; + number = <1>; + }; + pin_define@DISPLAY_I2C_PORT { + type = "absent"; + }; + pin_define@DISPLAY_SDA { + type = "absent"; + }; + pin_define@DISPLAY_SCL { + type = "absent"; + }; + }; // pin_defines + }; // pins + + + + pins_cm { + pin_config { + pin@default { + polarity = "active_high"; + termination = "pull_down"; + startup_state = "inactive"; + function = "input"; + }; // pin + pin@p14 { function = "uart0"; termination = "no_pulling"; }; // TX uart0 + pin@p15 { function = "uart0"; termination = "pull_up"; }; // RX uart0 + pin@p47 { function = "output"; termination = "no_pulling"; polarity = "active_low"; }; // EMMC_ENABLE_N + pin@p48 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CLK + pin@p49 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD CMD + pin@p50 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D0 + pin@p51 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D1 + pin@p52 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D2 + pin@p53 { function = "sdcard"; termination = "pull_up"; drive_strength_mA = < 8 >; }; // SD D3 + }; // pin_config + + pin_defines { + pin_define@EMMC_ENABLE { + type = "internal"; + number = <47>; + }; + }; // pin_defines + }; // pins_cm + }; +}; diff --git a/stage2/03-install-piaizu/files/dts/gpio-key.dts b/stage2/03-install-piaizu/files/dts/gpio-key.dts new file mode 100644 index 0000000..31784eb --- /dev/null +++ b/stage2/03-install-piaizu/files/dts/gpio-key.dts @@ -0,0 +1,30 @@ +/dts-v1/; + +/plugin/; + + / { + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; + + fragment@0 { + target-path = "/soc"; + __overlay__ { + keypad: piaizu_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + button@21 { + label = "right key"; + linux,code = <106>; + gpios = <&gpio 21 1>; + }; + button@10 { + label = "left left"; + linux,code = <105>; + gpios = <&gpio 10 1>; + }; + + }; + }; + }; + }; diff --git a/stage2/03-install-piaizu/files/fb/.clang-format b/stage2/03-install-piaizu/files/fb/.clang-format new file mode 100644 index 0000000..42687ba --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/.clang-format @@ -0,0 +1,90 @@ +--- +Language: Cpp +# BasedOnStyle: LLVM +AccessModifierOffset: -2 +AlignAfterOpenBracket: false +AlignConsecutiveAssignments: true +AlignConsecutiveDeclarations: true +AlignEscapedNewlinesLeft: false +AlignOperands: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: false +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +ColumnLimit: 120 +CommentPragmas: '^ IWYU pragma:' +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + - Regex: '^(<|"(gtest|isl|json)/)' + Priority: 3 + - Regex: '.*' + Priority: 1 +IndentCaseLabels: true +IndentWidth: 4 +IndentWrappedFunctionNames: false +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 4 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 80 +PointerAlignment: Right +ReflowComments: true +SortIncludes: true +SpaceAfterCStyleCast: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp11 +TabWidth: 8 +UseTab: Never +... + diff --git a/stage2/03-install-piaizu/files/fb/Makefile b/stage2/03-install-piaizu/files/fb/Makefile new file mode 100644 index 0000000..a1970ab --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/Makefile @@ -0,0 +1,62 @@ +.phony: clean format install dbg doc all analyze liblmx cgi + +include settings.mk + +VERSION = $(shell git rev-parse HEAD) +DATE = $(shell date) + +SOURCE = $(wildcard *.c) +OBJS = $(SOURCE:.c=.o) +HEADERS = $(wildcard lib/*.h) $(wildcard cgi-src/*.h) $(wildcard ./*.h) + +CFLAGS +=-Wall -std=c11 -D_DEFAULT_SOURCE -D_GNU_SOURCE -Wextra -Werror +CFLAGS += -DGITSHA='"$(VERSION)"' -DDATE='"$(DATE)"' -I./cgi-src/ -I./lib/ $(DBG_FLAGS) + +LDFLAGS = -L./lib/ -llmx $(LDEXTRA) +PREFIX ?= / + +CC ?= gcc + +all: liblmx cgi lmx + +liblmx: + $(MAKE) -C ./lib/ all + +cgi: + $(MAKE) -C ./cgi-src/ all + +dbg: + $(MAKE) -C ./cgi-src/ $@ + $(MAKE) -C ./lib/ $@ + $(MAKE) lmx DBG_FLAGS="-DDBG -O0 -save-temps -g" + +$(OBJS): $(SOURCE) $(HEADERS) + +lmx: $(OBJS) + $(CC) -o $@ $^ $(LDFLAGS) + +format: $(SOURCE) $(HEADERS) + clang-format -i $^ + +$(PREFIX)/usr/bin/graphics/: + mkdir -p $@ + +install: clean all $(PREFIX)/usr/bin/graphics/ + $(MAKE) -C ./lib/ install PREFIX="$(PREFIX)" + $(MAKE) -C ./cgi-src/ install PREFIX="$(PREFIX)" + cp -rfv graphics/* $(PREFIX)/usr/bin/graphics/ + install -m 755 lmx $(PREFIX)/usr/bin + install -m 755 lmx001 $(PREFIX)/etc/init.d + update-rc.d lmx001 defaults + update-rc.d lmx001 enable + +analyze: clean + scan-build -analyze-headers -enable-checker alpha -enable-checker unix -enable-checker security -enable-checker deadcode -enable-checker nullability $(MAKE) + +doc: + doxygen doxy.cfg + +clean: + -rm lmx *.o *.i *.s + $(MAKE) -C ./lib/ $@ + $(MAKE) -C ./cgi-src/ $@ diff --git a/stage2/03-install-piaizu/files/fb/cgi-src/.clang-format b/stage2/03-install-piaizu/files/fb/cgi-src/.clang-format new file mode 100644 index 0000000..44c0ad4 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/cgi-src/.clang-format @@ -0,0 +1,90 @@ +--- +Language: Cpp +# BasedOnStyle: LLVM +AccessModifierOffset: -2 +AlignAfterOpenBracket: false +AlignConsecutiveAssignments: true +AlignConsecutiveDeclarations: true +AlignEscapedNewlinesLeft: false +AlignOperands: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: false +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +ColumnLimit: 120 +CommentPragmas: '^ IWYU pragma:' +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + - Regex: '^(<|"(gtest|isl|json)/)' + Priority: 3 + - Regex: '.*' + Priority: 1 +IndentCaseLabels: false +IndentWidth: 4 +IndentWrappedFunctionNames: false +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 4 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 80 +PointerAlignment: Right +ReflowComments: true +SortIncludes: true +SpaceAfterCStyleCast: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp11 +TabWidth: 8 +UseTab: Never +... + diff --git a/stage2/03-install-piaizu/files/fb/cgi-src/.fuse_hidden0000001e00000001 b/stage2/03-install-piaizu/files/fb/cgi-src/.fuse_hidden0000001e00000001 new file mode 100755 index 0000000000000000000000000000000000000000..cdf141d461476b09e6b3a3c5647b656f82fd8f41 GIT binary patch literal 25120 zcmeHvd3apKm2dTJsdZ&pn^$?08}AUbVjIVJ>6X-X3uH^kGS~^ub*sB2HEwk)-M4Lv zC71{iIznJE10jLLCX+8Pd6REElLceOw!j3D43iip0h4V!84MCjMug3e0D8YuOY5qw zp5*=UzW0yI);)Djopb8csZ(|Dt*%?Qc^WopHXBn(V;dM@2l8E~g0Mz&@r;7=1(_+REF?(vjVG7P3K(7} zPz4!mq(pLL>u4Ea1b0t>!(!)X-mxY+sA! z0!Fxt0ITEIaj2?oI%ftb|L_9A@bCf`&nVa;$V@>ccP-?|&c8MlNycVbUnaj4N&6L) z&1DtgQ0wZI72!ZxI21|jFWbLnb=m5bdz4M4XA9^~{H3Sz406tNO^rfT(65c^IQ}3e3jD+*bhr4(jNf5n9X5lWxbV33iCyqzdb}V zL?tuoTecX1U@X`kikrb$%a+=3G!ks_wT6StFxoq#5hHH;Vy0m*F9ys36`z2WxzgIy-$`LYtxVnP4jwpg^2`OIjD`NPq8ki~vnG$-KV`h=L@{ab9?6Y!Pr?a-$6vS z>l8&vTe-qdQ2BQ6?SJG7p8C`d1>WSS_o?BHUfZ+Y7d|y-rnKcLZG{V=N7R2{{VTAa zC5pF0a5#bv*!67ovmn{tk>@<*cp0dHT{(iL!oH|aTFHR$c(g)A}UCXb0wQqyHZK${C&tqdY=I!Sh zZ_l81EKCYlK*F0G8s7ae%iam+wl+|56yh3zJW!B%1WT?C)RVgpYqjK6XDr?W|8e_XGfgVV{sP zxN+IZ!IY{bRP|-=gA^Fv0)z1B*CB!KqfTY!t-Ndcvabb~xBo|@;Bs@F^~uv59;3HR z$WMi`Wbagz_Z+7y`%+CGN8wQv{|+Q?@@d#hdcDaaS?E8lNPW=XPx|3Wl6VN&zU)_= z+`6qmcn5gRd^Oh?u2!}k+qb+R6bCyEOJLDNIA=tnDw71`L z)|-5Z>bVRZlJq>^bL;cWEIc`y^3EPIrO$JkLbdSZx_K)2wt;@~+7wy`bjb4@)iZK8 zX@^MP_UF9*7rjsYAshWyPp%3LvnA=GtM5*b2f0F z?sFAg<$12~-T+47$)OZmKe18k;DM_D4NrTXPj~HCK^CrcZ+EwB^WOf}T^RLN7oVvb zJoyf$&*A?#Pu(^&yct@Py&bsr9H%QQyk|AS<92}{cbneFi{H#XI)+Mr{T^g=$Y~uO$4NKG0Yh14UjhS@hcGP<0t~FZ^lmsX?_-RvP1s>0dKOm3la!p z0<7?kZ%h!&5@OJPKUv=21Xl?G^i{HVKR1f1q&mi#J9smn_4eIQ97-hl0s{Nw>6B}$ z$(`InJXaL-oVOL;5l8%ul)!|c-os=MHEpQ(F=RzR-ajbxk=oScG)1)I02TEdC%_Vy z_w{ntej(BG^bP3zPg7Mt4g-(!`Suyq2m?v##LW3F?#WlU`Mq}ug#?(H4<^d>VU9Kb zg7%#$?QKFk37(iIwcjkX9~9aNFtY&KDc8q(&fEWz`j0+T#^+enFOcfz3-u2Q^#p`^ z%KcU9A4;izjHX;+7zJ4D1Kb3Xy+=rMUoWo!)Efl#pFu5ryq7>-;p4-|5+AZ>y?x(& zj70i*m!^8{H?TALtO#jOa>SE7i&;AP>yu8jgU?{Y(_n~HS@`&Asj=|!LGoPc4`wP#!5jbAXO~4>2~xgM|;Iq2A}fTqIh)pW7`$sQ>DsWAuWC zyOcNii{Vx8kBvRs`wNUhxagZCg9cK_r5Z@x1YSYK(7{YjgBVX&?&P31`3l!|@<^&B zi>W1&yJrwjBF~;I#agTIg#(2L-?Sa<;p4^DbDRd9R(Q``+)X%#w{O=O%=h!veE?~F7ZTyN1P$gD2=N(BPT0U>K{dGPX3B!sP!a=ClfE8ZB7KiKz=Jh zF+JnRenF$(tmF(gN`?<1HO}w=2IQNCCnG8KUdRtG<~-fWA9=M&@o?E+MsQnw@`L*1ud062a49|O>E5S4u@5hxT6^C%OV#seL-LJ=-toh_c`P3~G$Cpfk>Zfd#S-RyzlEsZT6!(CU`tny8b%_&WsuC!X{++1%< zOVc*iuw{qQ)QHB{Ha0fbjiW7|9WCP+ZxzMGx~2{5YBqRcv1rU0?FvRhk#;9747JC6 zoldcWwXULO1FJAQyDGw+`?0jeSG5#w`1zV1(aM*G11!ij(ZUsJ63lCzOXF&-0`+af zG7}Xp4LDo7&ER--dqX}c0Rg8Ob($SPC+aM#tgLdzeVtw5pwrjY6%P4*W(X^F zfr}ov=z)tKxafh49=Pa%iypY>fr}ov=z)tK`2XR7rUDnQwo*c61HD>PN{5F8IYl3l z_*4nizCg8yNbLulBg@r3YqeK~Hi}T1D*!uRwwveZJ)e>)fB)05DB%xkE&{1N-yIHt ztG!icG=cNQHSqmRHbCuxDglj>b&n9?_|Z!wxerIZs~?sbweF$zYNXBDf*zq zmEDz6Ev?y5QuSl!0B_F$$&X*dIIjGSv8UJcY@UmgUXt)N2|tj~ zF;$e$l5m-Xt0mkd;dK(WNw`V+o&?@FfXflkfux9r?0;371K@TEa~d zUMFFjgnK3Ajr%Ju&*4`ZO7v?DrB@}S-njqG5dLpiL9(_?7oFS_Gf`ki67 z+YHdNb%%bxP+&uub{h=Ju6z`f96yTBINo0liv9@nI6i0vndwt-as2sS%IfsthvQ?) z7wNx+yyFwfm*_f1xZ_jGJM}l9z%fSo6}cOs)4^NWPdKL={jcFHUT-1`vaL{`8fwrF9?~;P~wwr<6mHTIs zS!%l(3&8eaM<@#Nu zvvxB|EA?)o*X=@njs6qT=^?keVDv`7d^ZXT=mNqajjpSKC?_-5Fs6~BtBy_mL$W);7Ue0K4@)EUKlV8N7WK2S*gbf19QWgtwMzX@2* zE#N51yZ>^q>mKCuzDCNK{xn$f9wf3Rx@sM=yaV%LW)6@UM44F%K8L=U@CL$nK!-!W zp70w8e+gDP^mf9-gn!J-_Yr;z;dgTRuMmDW;Sr91jqryFui^5K68;Z_&*4sgobZ1k z+`;t?5&k^kRI@{WnegA@lJg>36PdbTD%kYTKz8av(LVY?WvcT-kTvkXPW;3(b1K(A z8`&B2adGHnxX#L<^5q;~PxxlSujKd^!l~97n>oIV@OHwl=XfXK`v`C6_^pJ0h46hG zry!a2HNwBb@oy6TDB)k@`1c8aobX3Eew^?j!XM}OzY+d2;X@q%9pSGN{xZkkCVVz7 zGhWAqkGdTAn0MtKHk(IO{HKZm9jooS~?Ztj&Nmz6*NZorcLEPnybWUQo{<(E

*W(o>)mI`cmhL>*+%o7l=}tm*o6(pN$Gsd^sK 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 ZpNhK@QH&Ma$?HEaC!V&n2`9b&{{v!CgaiNp literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/cgi-src/Makefile b/stage2/03-install-piaizu/files/fb/cgi-src/Makefile new file mode 100644 index 0000000..27ad471 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/cgi-src/Makefile @@ -0,0 +1,41 @@ +.phony: clean format install dbg all analyze + +VERSION = $(shell git rev-parse HEAD) +DATE = $(shell date) + +SOURCE = lmxjson.c +OBJS = $(SOURCE:.c=.o) +HEADERS = $(wildcard *.h) + +CFLAGS +=-Wall -std=c11 -D_DEFAULT_SOURCE -D_GNU_SOURCE -pthread -Wextra -Werror -save-temps -I../src +CFLAGS += -DGITSHA='"$(VERSION)"' -DDATE='"$(DATE)"' $(DBG_FLAGS) + +LDFLAGS = -lfcgi -ljansson +PREFIX ?= / + +CC ?= gcc + +all: lmx.cgi + +dbg: + $(MAKE) lmx.cgi DBG_FLAGS="-DDBG -O0 -save-temps -g" + +$(OBJS): $(SOURCE) $(HEADERS) + +lmx.cgi: $(OBJS) + $(CC) -o $@ $^ $(LDFLAGS) + +format: $(SOURCE) $(HEADERS) + clang-format -i $^ + +install: clean lmx.cgi + -mkdir -p $(PREFIX)/var/www/html/cgi-bin/ + cp -rfv lmxindex.html $(PREFIX)/var/www/html/ + install -m 755 lmx.cgi $(PREFIX)/var/www/html/cgi-bin/ + +analyze: clean + scan-build -analyze-headers -enable-checker alpha -enable-checker unix -enable-checker security -enable-checker deadcode -enable-checker nullability make + +clean: + -rm lmx.cgi *.o *.i *.s + diff --git a/stage2/03-install-piaizu/files/fb/cgi-src/lighttpd.conf b/stage2/03-install-piaizu/files/fb/cgi-src/lighttpd.conf new file mode 100644 index 0000000..090b2cb --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/cgi-src/lighttpd.conf @@ -0,0 +1,39 @@ +server.modules = ( + "mod_access", + "mod_alias", + "mod_compress", + "mod_redirect", +# "mod_rewrite", + "mod_cgi", +) + +server.document-root = "/var/www/html" +server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) +server.errorlog = "/var/log/lighttpd/error.log" +server.pid-file = "/var/run/lighttpd.pid" +server.username = "www-data" +server.groupname = "www-data" +server.port = 80 + + +index-file.names = ( "index.php", "index.html", "index.lighttpd.html" ) +url.access-deny = ( "~", ".inc" ) +static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi" ) + +compress.cache-dir = "/var/cache/lighttpd/compress/" +compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" ) + +# default listening port for IPv6 falls back to the IPv4 port +include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port +include_shell "/usr/share/lighttpd/create-mime.assign.pl" +include_shell "/usr/share/lighttpd/include-conf-enabled.pl" + +$HTTP["url"] =~ "/cgi-bin/" { + cgi.assign = ( "" => "" ) +} + +cgi.assign = ( + ".cgi" => "" +) + + diff --git a/stage2/03-install-piaizu/files/fb/cgi-src/lmxindex.html b/stage2/03-install-piaizu/files/fb/cgi-src/lmxindex.html new file mode 100644 index 0000000..0ab8f37 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/cgi-src/lmxindex.html @@ -0,0 +1,91 @@ + + +LMX send data text page + +

+This page will post data to the PiAIZU Raspberry Pi.
+A webserver will receive the POST data and call the script: /var/www/html/cgi-bin/lmx.cgi
+
+This script will parse the received the data and if it's valid the data will be repacked into
+binary c structures. These structures will the be passed further through a UNIX socket.
+
+The lmx sample application will listen in the "other end" of the socket for incoming packages
+and handle the requests.
+
+ +

+ + + + +Send text to LMX-001 +

+ Data: + +
+

+ +Show cross hair: +

+ Data: + + +
+ +

+ +

+ + + Move the cross-hair cursor by using the buttons:
+ Container: + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ + +

+ + +

+The text below is a response from the LMX sample application on a regular GET request. +


+

+ + + + + + +

+ + + + + diff --git a/stage2/03-install-piaizu/files/fb/cgi-src/lmxjson.c b/stage2/03-install-piaizu/files/fb/cgi-src/lmxjson.c new file mode 100644 index 0000000..ae4ad84 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/cgi-src/lmxjson.c @@ -0,0 +1,312 @@ +#include "fcgi_stdio.h" +#include "lmxsocket.h" +#include +#include +#include +#include +#include +#include + +static char *nfo[] = { + "QUERY_STRING", "REQUEST_METHOD", "CONTENT_TYPE", "CONTENT_LENGTH", "SCRIPT_FILENAME", "SCRIPT_NAME", "PATH_INFO", + "PATH_TRANSLATED", "REQUEST_URI", "DOCUMENT_URI", "DOCUMENT_ROOT", "SERVER_PROTOCOL", "GATEWAY_INTERFACE", + "SERVER_SOFTWARE", "REMOTE_ADDR", "REMOTE_PORT", "SERVER_ADDR", "SERVER_PORT", "SERVER_NAME", "HTTPS", +}; +#if DBG + +#define HTML_COMMENT HTML_PRE +#define HTML_COMMENT_END HTML_PRE_END + + +#else + +#define HTML_COMMENT "" + +#endif + +#define HTML_PRE "
"
+#define HTML_PRE_END "
" + + +#define ARRAY_SIZE(x) sizeof(x) / sizeof(x[0]) + +#define FOR_EACH_WEB_REQUEST_STR(x) "LMX_POST_" #x, + +static char *webrequest_cmd[] = {WEBREQUEST(FOR_EACH_WEB_REQUEST_STR)}; +static int sock; + +int send_datagram(socket_datagram_header_t *data, void **response_data) { + + struct sockaddr_un name; + struct sockaddr_un my_name; + + if (!data) { + return -1; + } + + if (!data->size) { + return -1; + } + + sock = socket(AF_UNIX, SOCK_DGRAM, 0); + if (sock < 0) { + printf("

Error opening datagram socket"); + return -1; + } + + /* Server name */ + name.sun_family = AF_UNIX; + strncpy(name.sun_path, SOCKET_NAME, sizeof(name.sun_path)); + + /* Client name*/ + memset(&my_name, 0, sizeof(struct sockaddr_un)); + my_name.sun_family = AF_UNIX; + snprintf(my_name.sun_path, sizeof(my_name.sun_path), "/tmp/lmx_cgi.socket.%ld", (long)getpid()); + + if (bind(sock, (struct sockaddr *)&my_name, sizeof(struct sockaddr_un)) == -1) { + printf("error binding socket: %s\n", my_name.sun_path); + } + + chmod(my_name.sun_path, 0777); + + /* Send message. */ + printf(HTML_COMMENT "Sending %d byte datagram via socket %s to the lmx-001 sample " + "application.." HTML_COMMENT_END, + data->size, name.sun_path); + + if (sendto(sock, data, data->size, 0, &name, sizeof(struct sockaddr_un)) < 0) { + printf("

Error sending datagram message"); + close(sock); + return -1; + } + + if (response_data != NULL) { + int readsize; + char receive_buf[DATAGRAM_SIZE]; + readsize = recvfrom(sock, receive_buf, DATAGRAM_SIZE, 0, NULL, NULL); + if (readsize > 0) { + *response_data = malloc(readsize); + memcpy(*response_data, receive_buf, readsize); + } + } + + close(sock); + unlink(my_name.sun_path); + return 0; +} + +int handle_request_get() { + socket_datagram_lmx_info_t lmx_info; + socket_datagram_lmx_info_t *response = NULL; + + int i; + int ret = 0; + + lmx_info.header.type = SOCKET_DATAGRAM_TYPE_INFO; + lmx_info.header.size = sizeof(socket_datagram_lmx_info_t); + + ret = send_datagram((socket_datagram_header_t *)&lmx_info, (void **)&response); + if (ret != 0) { + printf("

Error sending datagram socket, lmx sample app most probably not " + "started\n"); + return -1; + } + if (response == NULL) { + printf("

Response is NULL\n"); + return -1; + } + printf("

Current container setup in the LMX sample application

\n");
+
+    printf("Index, "
+           "offset x, "
+           "offset y, "
+           "width, "
+           "height,  "
+           "transparent,"
+           "visible, "
+           "frame,  "
+           "framesize_mem,"
+           "Description\n========================================================================================\n");
+
+    for (i = 0; i < response->n_containers; i++) {
+        container_info_t *ci = &response->containers[i];
+
+        printf("%02d "
+               "      %3d "
+               "      %3d "
+               "     %3d "
+               "     %3d "
+               "   %d "
+               "           %d "
+               "        %d "
+               "   %8d"
+               "    %s\n",
+            i, ci->x, ci->y, ci->width, ci->height, ci->transparent, ci->visible, ci->frame, ci->framesize_mem,
+            ci->description);
+    }
+    printf(" 
\n"); + free(response); + return ret; +} + +int handle_request_post() { + + int postlen = atoi(getenv("CONTENT_LENGTH")); + socket_datagram_type_t i; + int container = 0; + if (postlen > 0) { + + char buf[1024]; + char *cmd; + char *data; + int len = postlen > 1024 ? 1024 - 1 : postlen; + FCGI_fread(buf, len, 1, FCGI_stdin); + printf(HTML_COMMENT "Raw post data:\n=================\n%s\n=================\n" HTML_COMMENT_END, buf); + for (i = 0; i < SOCKET_DATAGRAM_TYPE_LAST; i++) { + cmd = strstr(buf, webrequest_cmd[i]); + printf(HTML_COMMENT "Testing cmd %s against \n{%s}\nResult: %s" HTML_COMMENT_END, webrequest_cmd[i],buf, cmd); + if (cmd == NULL) { + continue; + } else { + data = cmd + strlen(webrequest_cmd[i]) + 1; + printf(HTML_COMMENT "Found command: %.*s and data: " HTML_COMMENT_END, + strlen(webrequest_cmd[i]), cmd, data); + switch (i) { + case SOCKET_DATAGRAM_TYPE_CONTAINER: + container = atoi(data); + printf(HTML_COMMENT "Will use container: %d\n" HTML_COMMENT_END, container); + break; + case SOCKET_DATAGRAM_TYPE_MOVE: { + movment_e x; + static char *web_move_sub_cmd[] = {"MOVE_UP", "MOVE_DOWN", "MOVE_LEFT", "MOVE_RIGHT", + "MOVE_UP_LEFT", "MOVE_UP_RIGHT", "MOVE_DOWN_LEFT", "MOVE_DOWN_RIGHT", "MOVE_CLEAR"}; + + for (x = 0; x < sizeof(web_move_sub_cmd) / sizeof(web_move_sub_cmd[0]); x++) { + int y; + y = strcmp(data, web_move_sub_cmd[x]); + if (y != 0) { + continue; + } else { + socket_datagram_lmx_move_t req; + req.header.type = SOCKET_DATAGRAM_TYPE_MOVE; + req.header.size = sizeof(socket_datagram_lmx_move_t); + req.header.container = container; + req.move = x; + printf(HTML_PRE "%s container %d" HTML_PRE_END,data, req.header.container); + printf(HTML_COMMENT "

Sending move :%s result: %d" HTML_COMMENT_END, data, + send_datagram((socket_datagram_header_t *)&req, NULL)); + } + } + + break; + } + case SOCKET_DATAGRAM_TYPE_COORD: { + socket_datagram_lmx_coordinate_t dgcoord; + json_t * jcoord; + json_t * c; + json_t * x; + json_t * y; + + dgcoord.header.type = SOCKET_DATAGRAM_TYPE_COORD; + dgcoord.header.size = sizeof(socket_datagram_lmx_coordinate_t); + + json_error_t error; + jcoord = json_loads(data, 0, &error); + + if (!jcoord) { + printf("error: on line %d: %s\n", error.line, error.text); + return -1; + } + + c = json_object_get(jcoord, "coord"); + if (!json_is_object(c)) { + printf("error: on line %d: %s\n", error.line, error.text); + return -1; + } + + x = json_object_get(c, "x"); + if (!json_is_integer(x)) { + printf("error: on line %d: %s\n", error.line, error.text); + return -1; + } + + y = json_object_get(c, "y"); + if (!json_is_integer(y)) { + printf("error: on line %d: %s\n", error.line, error.text); + return -1; + } + dgcoord.coord.x = json_integer_value(x); + dgcoord.coord.y = json_integer_value(y); + + printf(HTML_COMMENT "

Sending coordinates datagram %d " + "struct size %d bytes, stream len %d " + "data

 x:%d "
+                                        "y:%d

" HTML_COMMENT_END, + send_datagram((socket_datagram_header_t *)&dgcoord, NULL), dgcoord.header.size, len, + dgcoord.coord.x, dgcoord.coord.y); + printf("

x:%d y:%d
", dgcoord.coord.x, dgcoord.coord.y); + + json_decref(x); + json_decref(y); + json_decref(c); + json_decref(jcoord); + } + + break; + case SOCKET_DATAGRAM_TYPE_TEXT: { + socket_datagram_lmx_text_t dgdata; + dgdata.header.type = SOCKET_DATAGRAM_TYPE_TEXT; + dgdata.header.size = sizeof(socket_datagram_lmx_text_t); + strncpy((char *)&dgdata.text, data, TEXT_LENGTH); + dgdata.text[TEXT_LENGTH - 1] = '\0'; + printf(HTML_COMMENT "\n

Sending text datagram %d data %d struct size %d " + "bytes, stream len %d, data " + "

%s

" HTML_COMMENT_END, + send_datagram((socket_datagram_header_t *)&dgdata, NULL), TEXT_LENGTH, dgdata.header.size, len, + dgdata.text); + printf("

%s
", dgdata.text); + break; + } + case SOCKET_DATAGRAM_TYPE_INFO: + case SOCKET_DATAGRAM_TYPE_LAST: + default: + break; + + } + } + } + } + return 0; +} + +int main(void) { + + int count = 0; + unsigned int i; + + /* Response loop. */ + while (FCGI_Accept() >= 0) { + printf("Content-type: text/html\r\n" + "\r\n" + "PiAIZU CGI"); + + char *method = getenv("REQUEST_METHOD"); + + if (!strcmp(method, "POST")) { + handle_request_post(); + } else if (!strcmp(method, "GET")) { + handle_request_get(); + } else { + + printf("

No data posted
"); + } + } + + printf(HTML_COMMENT); + for (i = 0; i < sizeof(nfo) / sizeof(nfo[0]); i++) { + printf("%02d: %s: %s" "\n", ++count, nfo[i], getenv(nfo[i])); + } + printf(HTML_COMMENT_END); + return 0; +} diff --git a/stage2/03-install-piaizu/files/fb/cgi-src/lmxsocket.h b/stage2/03-install-piaizu/files/fb/cgi-src/lmxsocket.h new file mode 100644 index 0000000..b908f0c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/cgi-src/lmxsocket.h @@ -0,0 +1,75 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +#define SOCKET_NAME "/tmp/lmx.socket" +#define DATAGRAM_SIZE (10 * 1024) +#define TEXT_LENGTH 0x100 +#define DESCRIPTION_LENGHT 256 + +#define WEBREQUEST(x) x(CONTAINER) x(COORD) x(TEXT) x(INFO) x(MOVE) + +#define FOR_EACH_WEBREQUEST_ENUM(x) SOCKET_DATAGRAM_TYPE_##x, + +typedef enum { WEBREQUEST(FOR_EACH_WEBREQUEST_ENUM) FOR_EACH_WEBREQUEST_ENUM(LAST) } socket_datagram_type_t; + +typedef struct { + socket_datagram_type_t type; + int container; + size_t size; +} socket_datagram_header_t; + +typedef struct { + uint16_t x; + uint16_t y; +} coordinate_t; + +typedef struct { + socket_datagram_header_t header; + coordinate_t coord; +} socket_datagram_lmx_coordinate_t; + +typedef enum { + MOVE_UP, + MOVE_DOWN, + MOVE_LEFT, + MOVE_RIGHT, + MOVE_UP_LEFT, + MOVE_UP_RIGHT, + MOVE_DOWN_LEFT, + MOVE_DOWN_RIGHT, + MOVE_CLEAR, +} movment_e; + +typedef struct { + socket_datagram_header_t header; + movment_e move; +} socket_datagram_lmx_move_t; + +typedef struct { + socket_datagram_header_t header; + char text[TEXT_LENGTH]; +} socket_datagram_lmx_text_t; + +typedef struct { + int x; + int y; + unsigned int width; + unsigned int height; + bool transparent; + bool visible; + char frame; + size_t framesize_mem; + char description[DESCRIPTION_LENGHT]; +} container_info_t; + +typedef struct { + socket_datagram_header_t header; + int n_containers; + container_info_t containers[]; +} socket_datagram_lmx_info_t; diff --git a/stage2/03-install-piaizu/files/fb/define_containers.h b/stage2/03-install-piaizu/files/fb/define_containers.h new file mode 100644 index 0000000..316c02a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/define_containers.h @@ -0,0 +1,75 @@ +#pragma once + +#if DBG +#define FRAME(x) 1 +#else +#define FRAME(x) x +#endif + +#if DBG +#define FRAMES_VISIBLE(x) 1 +#else +#define FRAMES_VISIBLE(x) x +#endif + +// clang-format off +/* HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) */ +#define CONTAINER_DEFINE(x) \ + /* 00 */ x(FB_COPY , 0 ,0 , LMX_W, LMX_H, false, true, FRAME(0), "Master container, copy of HW framebuffer") \ + /* 01 */ x(FULL_SCREEN , 0 ,0 , LMX_W, LMX_H, false, true, FRAME(0), "Full screen, not used") \ + /* 02 */ x(SONY_LOGO , 20 ,10 , 246 , 52, true , true, FRAME(0), "Master container, copy of HW framebuffer") \ + /* 03 */ x(AP_A , 360 , 1 , 57 , 70, false, true, FRAME(0), "Access point symbol A") \ + /* 04 */ x(AP_B , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol B") \ + /* 05 */ x(AP_C , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol C") \ + /* 06 */ x(AP_D , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol D") \ + /* 07 */ x(TEXT , 375 ,75 , 30 , 30, true , true, FRAME(0), "Text") \ + /* 08 */ x(WIFI_TEXTBOX , 20 ,80 , 280 , 48, true , true, FRAME(0), "Connect to wifi textbox") \ + /* 09 */ x(KEY_INFO , 290 ,10 , 65 , 62, true , true, FRAME(0), "Key event information") \ + /* 10 */ x(WEB_MESSAGES , 0 ,LMX_H - 21, LMX_W, 20, true , true, FRAME(0), "Web message area") \ + /* 11 */ x(POINTER , 0 ,0 , LMX_W, LMX_H, true , true, FRAME(0), "Cross-hair area") + +#define CONTAINER_HANDLE_ENUM(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) HANDLE, +#define CONTAINER_HANDLE_STR(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) #HANDLE , + +typedef enum { + CONTAINER_DEFINE(CONTAINER_HANDLE_ENUM) + N_CONTAINERS +} container_handle_e; + +#define CONTAINER_ARRAY(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) \ + { \ + .x = X, \ + .y = Y, \ + .width = WIDTH, \ + .height = HEIGHT, \ + .bits_per_pixel = 32, \ + .transparent = TRANSPARENT, \ + .visible = VISIBLE, \ + .frame = SHOW_FRAME, \ + .bg_color = {0x00, 0x00, 0x00, 0x00}, \ + .description = DESCRIPTION, \ + .data = NULL, \ + }, + +#if 0 + +typedef struct { + size_t n; + container_t c[]; +} containers_t; + + +static container_t containers[] = { + CONTAINER_DEFINE(CONTAINER_ARRAY) +}; + +#endif + +static containers_t containers = { + .n = N_CONTAINERS, + .c = + { + CONTAINER_DEFINE(CONTAINER_ARRAY) + } +}; +// clang-format on diff --git a/stage2/03-install-piaizu/files/fb/docs/html/annotated.html b/stage2/03-install-piaizu/files/fb/docs/html/annotated.html new file mode 100644 index 0000000..240db67 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/annotated.html @@ -0,0 +1,118 @@ + + + + + + +PiAIZU: Data Structures + + + + + + + + + + +

+ +
+
+ + +
+ +
+ +
+
+
Data Structures
+
+ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/arrowdown.png b/stage2/03-install-piaizu/files/fb/docs/html/arrowdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/arrowright.png b/stage2/03-install-piaizu/files/fb/docs/html/arrowright.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zcmV^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bc_s.png b/stage2/03-install-piaizu/files/fb/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bdwn.png b/stage2/03-install-piaizu/files/fb/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + +PiAIZU: lib/bmp.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
bmp.c File Reference
+
+
+
#include "container.h"
+#include "framebuffer.h"
+#include "log.h"
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+Include dependency graph for bmp.c:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  bmp_header_t
 
+ + + +

+Macros

#define GRAY_SCALE(rgb)   (rgb)
 
+ + + + + + + +

+Functions

int bmp_open_path (const char *path, const char *file, gimp_bitmap_t **bitmap)
 
int bmp_open (const char *file, gimp_bitmap_t **bitmap)
 
void bmp_free (gimp_bitmap_t **bitmap)
 
+

Macro Definition Documentation

+ +
+
+ + + + + + + + +
#define GRAY_SCALE( rgb)   (rgb)
+
+ +

Definition at line 47 of file bmp.c.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void bmp_free (gimp_bitmap_t ** bitmap)
+
+
Parameters
+ + +
bitmapbitmap to destroy and free
 Frees the bitmap and sets the pointer to null.
+
+
+ +

Definition at line 183 of file bmp.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int bmp_open (const char * file,
gimp_bitmap_t ** bitmap 
)
+
+
Parameters
+ + + +
filefilename to open, like logo.bmp
bitmapbitmap that later can be used in a container
+
+
+
Returns
Returns 0 on success, -1 on failure.
 Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap
+ that can be printed in a container.
+ +

Definition at line 179 of file bmp.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int bmp_open_path (const char * path,
const char * file,
gimp_bitmap_t ** bitmap 
)
+
+
Parameters
+ + + + +
pathpath to file
filefilename to open, like logo.bmp
bitmapbitmap that later can be used in a container
+
+
+
Returns
Returns 0 on success, -1 on failure.
 Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap
+ that can be printed in a container.
+ +

Definition at line 74 of file bmp.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.map new file mode 100644 index 0000000..0c6bbbc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.md5 new file mode 100644 index 0000000..7bf71ac --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.md5 @@ -0,0 +1 @@ +14080f40dcee1f3d5c7b66c4f07c607c \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..79e1c0b2d15155d438b3b29988d513ab254f7d2a GIT binary patch literal 23373 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 + + + + + +PiAIZU: lib/bmp.c Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bmp.c
+
+
+Go to the documentation of this file.
1 #include "container.h"
2 #include "framebuffer.h"
3 #include "log.h"
4 #include <fcntl.h>
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <unistd.h>
8 /*
9  offset size description
10  00 2 signature, must be 4D42 hex
11  02 4 size of BMP file in bytes (unreliable)
12  06 2 reserved, must be zero
13  08 2 reserved, must be zero
14  10 4 offset to start of image data in bytes
15  14 4 size of BITMAPINFOHEADER structure, must be 40.
16  18 4 image width in pixels
17  22 4 image height in pixels
18  26 2 number of planes in the image, must be 1.
19  28 2 number of bits per pixel (1, 4, 8, or 24)
20  30 4 compression type (0=none, 1=RLE-8, 2=RLE-4)
21  34 4 size of image data in bytes (including padding)
22  38 4 horizontal resolution in pixels per meter (unreliable)
23  42 4 vertical resolution in pixels per meter (unreliable)
24  46 4 number of colors in image, or zero
25  50 4 number of important colors, or zero
26 */
27 
28 // clang-format off
29 #if GRAYSCALE_LUMINOSITY
30 
31  #define GRAY_SCALE(rgb) \
32  (((((((rgb) & 0x000000FF) * 7) + /*B*/ \
33  ((((rgb) >> 8) & 0x000000FF) * 72) + /*G*/ \
34  ((((rgb) >> 16) & 0x000000FF) * 21) ) / 100) << 8) & /*R*/ \
35  0x0000FF00)
36 
37 #elif GRAYSCALE_AVERAGE
38 
39  #define GRAY_SCALE(rgb) \
40  (((((((rgb) & 0x000000FF)) + /*B*/ \
41  ((((rgb) >> 8) & 0x000000FF)) + /*G*/ \
42  ((((rgb) >> 16) & 0x000000FF)) ) / 3) << 8) & /*R*/ \
43  0x0000FF00)
44 
45 #else
46 
47  #define GRAY_SCALE(rgb) (rgb)
48 
49 #endif
50 // clang-format on
51 
52 #pragma pack(2)
53 typedef struct {
54 
55  uint8_t signature[2];
56  uint32_t filesize;
57  uint16_t reserved_a;
58  uint16_t reserved_b;
59  uint32_t data_offset;
60  uint32_t header_size;
61  uint32_t width;
62  uint32_t height;
63  uint16_t planes;
64  uint16_t bits_per_pixel;
65  uint32_t compression;
66  uint32_t img_size_bytes;
67  uint32_t x_res;
68  uint32_t y_res;
69  uint32_t n_colors;
71 
72 } bmp_header_t;
73 
74 int bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap) {
75  bmp_header_t header;
76  char filepath[255];
77  ssize_t n;
78  unsigned char *bmp_data = NULL;
79 
80  int fd;
81 
82  if (bitmap == NULL) {
83  return -1;
84  }
85  sprintf(filepath, "%s/%s", path, file);
86  fd = open(filepath, O_RDONLY);
87  if (fd == -1) {
88  LOG("Couldn't open %s %m\n", filepath);
89  return -1;
90  }
91 
92  lseek(fd, 0L, SEEK_SET);
93 
94  n = read(fd, &header, sizeof(header));
95  if (n == -1) {
96  LOG("Error reading filepath: %m");
97  }
98 
99  bmp_data = calloc(header.img_size_bytes + sizeof(gimp_bitmap_t), 1);
100  if (bmp_data == NULL) {
101  return -1;
102  }
103 
104  *bitmap = calloc((header.height * (header.width + 2) * 4) + sizeof(gimp_bitmap_t), 1);
105  if (*bitmap == NULL) {
106 
107  free(bmp_data);
108  return -1;
109  }
110 
111  (*bitmap)->width = header.width;
112  (*bitmap)->height = header.height;
113 
114  (*bitmap)->bytes_per_pixel = 4; /* We use RGBA in as STD */
115 
116  lseek(fd, header.data_offset, SEEK_SET);
117  n = read(fd, bmp_data, header.img_size_bytes);
118  if (n == -1) {
119  LOG("Error reading file %m\n");
120  return n;
121  }
122  close(fd);
123 
124 #ifdef DBG
125  LOG("\nFilename: %s\nsignature: %c%c \n"
126  "filesize: %d\n"
127  "reserved_a: %d\n"
128  "reserved_b: %d\n"
129  "data_offset: 0x%x\n"
130  "header_size: %d\n"
131  "width: %d\n"
132  "height: %d\n"
133  "planes: %d\n"
134  "bits_per_pixel: %d\n"
135  "compression: %d\n"
136  "img_size_bytes: %d\n"
137  "x_res: %d\n"
138  "y_res: %d\n"
139  "n_colors: %d\n"
140  "n_important_colors: %d\n",
141  filepath, header.signature[0], header.signature[1], header.filesize, header.reserved_a, header.reserved_b,
142  header.data_offset, header.header_size, header.width, header.height, header.planes, header.bits_per_pixel,
143  header.compression, header.img_size_bytes, header.x_res, header.y_res, header.n_colors,
144  header.n_important_colors);
145 #endif
146  {
147  unsigned int x, y;
148  int padding = 0;
149 
150  if ((header.width * (header.bits_per_pixel / 8)) % 4) {
151  padding = 4 - (header.width * (header.bits_per_pixel / 8)) % 4;
152  }
153 
154  for (y = 0; y < ((*bitmap)->height); y++) {
155  for (x = 0; x < (*bitmap)->width; x++) {
156 
157  uint32_t *src;
158  uint32_t *dst;
159 
160  src = (uint32_t *)&bmp_data[(x * (header.bits_per_pixel / 8)) +
161  ((((header.height - 1) - y) * header.width) * (header.bits_per_pixel / 8)) +
162  (((header.height - 1) - y) * padding)];
163 
164  dst = (uint32_t *)&(*bitmap)->pixel_data[(y * ((*bitmap)->width) + x) * (*bitmap)->bytes_per_pixel];
165 
166  if (header.bits_per_pixel == 32) {
167  *dst = GRAY_SCALE((*src >> 8));
168  } else {
169  *dst = GRAY_SCALE((*src));
170  }
171  }
172  }
173  free(bmp_data);
174  }
175 
176  return 0;
177 }
178 
179 int bmp_open(const char *file, gimp_bitmap_t **bitmap) {
180  return bmp_open_path(".", file, bitmap);
181 }
182 
183 void bmp_free(gimp_bitmap_t **bitmap) {
184  if (bitmap) {
185  free(*bitmap);
186  *bitmap = NULL;
187  }
188 }
+
uint16_t planes
Definition: bmp.c:63
+
uint32_t n_important_colors
Definition: bmp.c:70
+
#define GRAY_SCALE(rgb)
Definition: bmp.c:47
+
#define LOG(str,...)
Definition: log.h:7
+
uint32_t height
Definition: bmp.c:62
+ +
uint8_t signature[2]
Definition: bmp.c:55
+
uint32_t img_size_bytes
Definition: bmp.c:66
+
uint32_t filesize
Definition: bmp.c:56
+
uint32_t header_size
Definition: bmp.c:60
+
uint16_t bits_per_pixel
Definition: bmp.c:64
+
uint32_t n_colors
Definition: bmp.c:69
+ +
int bmp_open(const char *file, gimp_bitmap_t **bitmap)
Definition: bmp.c:179
+
int bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap)
Definition: bmp.c:74
+
uint16_t reserved_a
Definition: bmp.c:57
+ +
uint32_t compression
Definition: bmp.c:65
+
uint32_t x_res
Definition: bmp.c:67
+
uint32_t width
Definition: bmp.c:61
+
uint16_t reserved_b
Definition: bmp.c:58
+
uint32_t y_res
Definition: bmp.c:68
+
void bmp_free(gimp_bitmap_t **bitmap)
Definition: bmp.c:183
+
uint32_t data_offset
Definition: bmp.c:59
+ +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h.html new file mode 100644 index 0000000..dfe24ba --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h.html @@ -0,0 +1,239 @@ + + + + + + +PiAIZU: lib/bmp.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
bmp.h File Reference
+
+
+
#include "container.h"
+
+Include dependency graph for bmp.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

int bmp_open (const char *file, gimp_bitmap_t **bitmap)
 
int bmp_open_path (const char *path, const char *file, gimp_bitmap_t **bitmap)
 
void bmp_free (gimp_bitmap_t **bitmap)
 
+

Function Documentation

+ +
+
+ + + + + + + + +
void bmp_free (gimp_bitmap_t ** bitmap)
+
+
Parameters
+ + +
bitmapbitmap to destroy and free
 Frees the bitmap and sets the pointer to null.
+
+
+ +

Definition at line 183 of file bmp.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int bmp_open (const char * file,
gimp_bitmap_t ** bitmap 
)
+
+
Parameters
+ + + +
filefilename to open, like logo.bmp
bitmapbitmap that later can be used in a container
+
+
+
Returns
Returns 0 on success, -1 on failure.
 Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap
+ that can be printed in a container.
+ +

Definition at line 179 of file bmp.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int bmp_open_path (const char * path,
const char * file,
gimp_bitmap_t ** bitmap 
)
+
+
Parameters
+ + + + +
pathpath to file
filefilename to open, like logo.bmp
bitmapbitmap that later can be used in a container
+
+
+
Returns
Returns 0 on success, -1 on failure.
 Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap
+ that can be printed in a container.
+ +

Definition at line 74 of file bmp.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.map new file mode 100644 index 0000000..21cf91c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.md5 new file mode 100644 index 0000000..e9f1546 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.md5 @@ -0,0 +1 @@ +040d3470c2197882a955d2d07abb0439 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4de4550959f1c2b60c8b3083bf2d5f8c6717614e GIT binary patch literal 3964 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 + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.md5 new file mode 100644 index 0000000..31538aa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.md5 @@ -0,0 +1 @@ +70f62fde35c5bd148323543c398a520e \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4778dc55dca547585203e7518daf627cdf28b029 GIT binary patch literal 10241 zcmd6N2Uk>0motCh)onEOKLJmZbXtTARsw5ARveY1q75RNo;ZsA|P4GIX5{- zh9>6>Q_Rfwta)eNAMjPLUR~?1+jY;aI_K2cdsm2-h7utj9UcY-2BC_wybcD&Ee7z# z#>E6z>NWco!OtBtH6?kB>zmK_y6k8S3>FL(d0Cie^5(RM4Ef46&d!Pe#;v=Qw`no) zaB&SU^I{GCW=C$#-yx-7C@(~qI=?ei!XL3=d`>B!X_o&Ei}Np(G$(ETXcF=sU*6&) zxBqQ|&(00fy{$Bjs=QVAeO~ybw1xLc&Lq{~A3yoy#Gr(MvDcr&i-Dnzg~WXKiUfk8 zeCMV^kcW?PU+w8l%c#b~P8(WlxY!E|4<|$g{ltT2T9c8Jm;LyWoRX5uE3f_I$B)|D zS{9g0F1R2Eh2|7NZ?5I=A{lp{Vqz8WC}ZQ|BItxv(ei4Pl$4Vd_O|A? z#KP%>@_zn=ks4*;1?H&@jgB7g@7sDOY;0_NVN-%+GxcB~(Sy&qN8V%OPrO*}O_7lM zK%}Q3nRp9|%2b&ewy?B3J3sgK^4gjx&(F=h%L>!i&rVNIFD#s%z)V*RuXdVi)Q7(n zLZF9#{rdIk6M>)KbqM(bCUH0ApO^F^4&6y2eM3X8$6M1qJv}^KCo8FbHxF^1Z)Q`9 z;9Mx71TQcn;juM!v^iPnFnxAB>(|!Y%o11xZ;&!;{wPc(gKJXb&Lbe;GS?XNfrzoQ zvokaz;zg~ev#~KlQV$1}vWCXhDH!#1DZa*In@PgGV9B=_-r)Q9xBqs-_0`T?69Rz< zmDXx`ujPLn$7^C^ZN0X-deS2@Yh3Mim(^{5SzTX$^yWG0sZu7OJ3Y}<(#*`v=;)z~(|tifL8Gns=V6{M`NhThJK7M2K)hNjYipIK&kYRp z^z~h%5Ogs93VXKYb#B65Nq9GejH4#>Vm-s}%&9(&Q@1(c)5i7H4Dxe&yul z6&4bzdwYKLAk}BE6;r@2u08U0cnJ9|Ff)@4ety8(u5w{V z>2cBr;$cL|=3ubU{?obG)yL9pCDhrl}#$U9?=)cVTT17Gxu-L*|V;`v+szfk%orv5+Z%x2(<^E^IyWiVc| z%~qIe&BZmpZf1hJ_K^Y!mSz_kW19ADh3iW#nQ@Z zuo%uq&~$%Ukmevk@Pn>Sl&ZhhErXLYqV$3LnoLsg)itrNQC={-K)m+Gp?zs6Qp<-Z zJeZK?rL~2Hyq-!P78LuHse^;4XNgew(G}5W#U@~Z_VXz8JFQ!^AQE5~rK+6GH75_& z?vX%P(jV&1D1B6HlDZr&vg+HS7)cigX-QGiYc-s~S~I&rA}C9fS=C7|@SQz!Z>|FiZw{N>TJ2|;!FauRL z54WZ#+uA;$A-}!C^$;o1C8}m-f-<^VrijJPXvh*DiIhQD8 z8}lp@9RM!l1~sD5XkjXTVd0r-ME)RJ`z;Bir)^~)q~L;r0;f z-|T-159i_G2?z+Fr>7@{(gd@!vlB8s`PyQ3c`&4j%c`%hAE;IQqV8jPRCF{B0Zo6Q zkq8%8{?3lm!Q3Xi3q=Zj!sIwzjfjhj10j3s)-82)^=1e)-;19W6}`Q^ahxafEnyK6 z5!_U^3$5XJj*JT5&ti#KsF`nCYDN5bsriSnu&w|cViy+|snf-15Zz{11qNlUpJ?|t z#>dP^%SVZG7S)#7&ob`MA4@i8&YEiJ5p zdHMM*)UT_=BNmJ*>~@cicp;F^jt<%db#5fRbDhYy<%nm!OmM@Ks|I663F4XuH+)qJtI z_)0=T;>N0YUXyzu1K*fqm6e;jHju7#cz6g!?o5>1^8A-2M@L6s{ASFxwKXgpqWjM} zIy$Tkc%YnIT=;Fy{xU2R&`B5%Y$q{l+52=aGbM%b(dOb!3nYQ?@loU6uBfPJ_K}dN ziHagKo0ytnU~PUSVC0~xrnbJ+6|WZ0TUcD|;qD$+T@#m2O--GYP{&O0xy6i>98A2u z9dhZlIvQ%SeuvS@!QpDY1>fupWZxtaM@8I(#Kgh1gT_Xv*;ScUA2&Dm$2H;J<*Y0Y zKE7fw^6W2XHUR-0v;dF3h=>TaiIa_ujl)c>N_TvsQ6NbObH6SoH1l-1JE6??@(e7? z;?fe2Np%b^O>{@{BXh-{i zWZ?=e@bEa^**V!L>jQ3F z;W(?&JzL{ZTvc^iV%qdEwaBFA8E|`H;i96VW*&n`CdmrBaRJxmr&d;0Mn*=`($d6{ zM-p!f;0-gKoi@!MNx=sGv#gAql4WnRa`xG?XPq7~klXdDN_D4aXZHfh$jEYd1665) zTiV*l)sc9ARsShe{%z;)v~;=0LMtKal$=n81cJy;CcREfT5D;UwzosC9%$4;ey#iRx>XpDAwJLWNN>Nv$8OdEdS3p`5GUBAfG$g6{>)e(ZCt)7*-A+tCAy zfOI7Z9>ar{YJ}hNN__MWS-m@bFd4E`zJonHM+d58$(rPjjOgm|kHNuNt}D-0SCyGl zpn|_+@sua3g$@VOf3&xY-RHn#ZGPEL#PId}3}NzmRfS9>|2+%rFP4bIld#avv(pu8 zcXy5q$En8obVdmubF-rCj0^R%Ry`c>=EpO&)--~aZT(1L9O7QxsTU)K=Yo%Rw}S9x zK@|g=dck=ciMjn(^a`clu(BNY%Cbn{@vz=hL}JouG{EW^^w$Fbu1-3 zd^duz9*6ivl@qJ}-5Om1P>tl|hDe(>7Hv%^il})OI184r`2-jbSruJ<)to7&WAFj ze-rZ7$q;Mmn#5TZx~+qm&iX}9I@+IG*x1OJ(!TQN(i>$*530Qp$+n;LdCook?%i{L znbLFvPMpBJu&6RMzN&+RpKNSavvucY+cOP0MM1Yo@``eh$cHQ}TV;J4D}C2|sPbAt zrkop0GA*oDbWOqlQZONXXyTj)f|3$A+SoK96O_8`A`D zP6$Q+`Hp>uNpHQc5Bvdt&BUvt#cXYBR{9u?%5J!HPe2>K!eP$!U`^w#v+Cs@8q}Ho z6T)^+ps8^%DmtEs)=Un;^Wz}AkE@G#z^6AJ3c2vW~MF9S5N77zmQ&#%{;cK zhzgbYg+u7@>OHm+H;*)gE1z=u#H6lzWaL@-RWhMIgwT0w3Tpt1GGYORIxH`rIzJA} zEethwoD~*KI2bLSeGuA_k^i^dp9G@5gVx(Dv!a}L^?V|0GCjFA#O8Oxs(^I|!`5yQ z8>fvA?wj03zT>$qo&0w{$f|cLyM#ZN1(wLd#uljco7R?VlA<;40$%u0KeWH9CFQ+qBp1EpqS4)Y9BB#b`VVJQBd}J zU_sC{IHb2uL;}q`qN9H^T11H(6ooY7e?47oy*Vx6JzA6yL!lTa_15b}L;aso4;rYl z&GohGic8E3m=O!iX1g=?K~GPVrut(#VV__2?ne{WL%~`)lvM--)j>f$A4AW6czZC0 zIL?yd1?d+r=MQ&*cQ21mIQ`t=bA8?ZvOnSJ*+e<{!UFX%x+SfIe^C9~6HW>5=^X6{ znxj9IYAhr#>My=lSKpV-8K#d|u(qyB>pNa`Gi>n9^1Cb-XLP#5p`q89=SGv>f+L&zYog&5bTRn8)xj`ryfH+;AsnDGUrSc>s(lxjG*1RdJ ztPoC7Oh=81%v9?sBeb`F+p0$0fZvsfi30&#{H}+*Mb`(qx_o@}_V$^rAsX45U-@N~ zl$3fmhfydY5s|K1FK6eTv%~D|S-un@+c7k1_`vCrfI!;73_O(u7IkrPp^+>qi=br8 zEWW-QsXsn^kQ`O_fSp}ENm#u%+_>Jypf_5JvsqB!o5yyMkXc}6a!Y&b_;{67-?ucs zyaO%07!usups2ii*G4QNQoxj^b!C5PmMCK3^88rj(U)~Gr-N1PJ^g!01qIw8aJ+w4 zowKJ~bj8uq(Lo%}v9YlkulG22&0g^mG?l!6k4gIsCL});LRYdRPp@o!8#k6aFE8)j zy?ZV$u=%CeyJoOF{vZf9_hVtbPZW%yWOa$JyB#>~%u?{9`4iSfv<|ZQ#}vKoKC3rZO@zxlp@<7F$LexI#>%jJv3mPo~?=wpbsWY3EgEdoyy7Z?BWyda!j1X6M;&d1IU z##c~M%66QsFD)%yZDOOu3nC>Y)zHv5J39k)*=VufPRboJkGEv%6E5)kk1>g)78h>X z(2>CD>1kRPTbAULCtyXj4GlYA^4DLTtw%*g{rV*u2=+Chhy`3$K0ZF-Bt}NYaFRp; z3%sPBh|o~z4HB3Wt+(i+a&+8IOG`^mPW}^sgM*Dtn#3sSbug5z3E+u^qvQ4E@oeQ( z@vxaZqN2he&5-B=o3GaYMgWuljQ~8GDwYQ`)s~i)?74r>IemS)e06ya5E~Jrc=Jns z^!j>Bq+8!NNe&JUP|1VZRaITRyre`1x7?07SAAmdyEqD0XZ?egN)!)FOiWBPLPSUi z*pgFU|ALd^MU8v-NpXua!{xaE(QZ`I$>Y*@b#-qI3}{RL92^|@W8s84Qnl>{1_nyK zJ#!O=Z8|(-I6Gd#05AbkK&XnZXK!CvQQ_|CDLPQXK%~S%@{u_=AfRck>4QQSV4r@H zLP9v~-)N=S+|E60+GG}EU}PkP8X6k%!RwR75$NnxU$51E)?MuGo*q)@Qx09TL@i@u zJ4?%8Q<`AYt*tF^-~Hvu$w_i@fPMgKnWt}-*r_+RO=8cp58-@zF|DQd+pP3QSs7So zdw?P5=A4hWOhWL&LPG%&bN_7Rw?Ee8m?6Eo>gNVhSpMlS^_S28iYR`No6{sDC58Du z92p*-s(lmvRrA6{0ax_f;#ZEDUtB!)*G5T(lLemNS`ZgXYSG$`ISl2TB>w6vU7dQ%YVBRznNXfb0AG&3_Bv#WSb zODoJp#>jZXs#OJKyiZD^Ck5dPp$pH-JaiZ{NqYluU$qS?Pd8hm&i7KBhi9{m+0V{g zmrOmBVgPq@M!;R@hoo+Z?@!>GRACn8=H!%=03%wNnY~{SC99E$7w=heiRUo_JEzU- z*PD=mSPJX_G+p5;QZqEo9KsfhF zI7_+jswR8K=qNSoZ4>EyHbP84En7Zx42uf;!!mdAhkpaOC^55CjGr#-i>T4x za6A<}#v|G`ZA;6w(|v`aB98j{3P$7gj_3(NtI+oWlU}EWQ>lJZ4ZfF$iyb3yAJeQ~ zvqTVqjWWn*nj_koOWkjwconI$x481Zmz3;d`j;$leG@;7Oc>vb;NzpfBW9|#v!Fa! ziXSL1Crl}(XvhAR8?y*@Vh0C_Z<6`S8dtoW?Q%#sQ;_M{#p$)W@^hDK-_j(bv01+c z*i^lY8VMw5VfVI#N7m`N5+Sog(w9=3c9Ms0Jt<62cIp!n{!~6o;8p~1N)`wuL zKCKmWn9`sNcb|iP-XmA|&Cd-sYoCj#eEn1}&x^CwFOAYRy*euBJpfXXL#nDMEwPtvS(FoaQOCj3=Z;9zJ=PcMG@t+uVPkzY{oIf6{# zCI4$#Sth@WU3JCQriZ$X@YU%x6k@wUQh|8%e9KW+Q*vr3TxKGn@E?K|2M771*T zlgW7%pXfE)!&6Wck(5|%c6D*BV-oSn&R$(dSN{{U^vmAl0O^a*n3eDM0<=2PO1~U8 z5kH*u^&aafyguFMN>1(uFUcz|-d$2cTjO!gDB%u@=*y)gyF4x(N0K}Z@4dytz`HeM z}5A9hlGK_WFGVa}5a_EY$8Cpv`Jy(Xq z&wu;#EzCO|1KtsQ-YZ8+<&@C9?2H-Hgkj?q^)$zSY&MI1;KV)&JzB<~_ z)J%Qx3V|BIl&{~ZL zd}DmU@nwHFI&B!kIM*;X?&#&l7$d0pt@?OVrLP-Ic(iY)S^4^0%zGb)wnomz#*bc& zieTc#QmCt6F#9T>E+ZbbysC_&pGSP3V`g_} zEH|^|mlG>48N0tmHo#@cqNS@KIWRFvFiQu2I~|nGnVEBkoKr zn0`i@V#G##T*Y9&mgC-{q~d*oIbDit@(2bCZz{TI&IuSZyQIr($VO;Pb%^HT)v2ZKE4h2(_p zkt+{=5fQ7*XKc}cgt?)X79w?o%ot#W^ zJ!2R}q0ZKeQ6nRY&D|Rt7u)p`oiF>3Hj~nM(_2HkI=wcwnb{AO&d$W&ypa}6aAS|Z zUk02VtjRqR-1M~NkgIpQo0T7QbzKPv03SJOJH}6AiAK=VNSpS$p#ekroz|$_IGu0JrUUB3+zYA>G!78M3VF_ z?Tr*&Mx!xR6p0B5Gpp~6-wisceKP((= z(h+(e<_Yr^!_1QTktD=~DK^%*gQ+?{hYOS9;zvmWwVpqp2*6?YyKoK{Ub9z>qMr}<`?6a!B?#o|yy;t7eQg~bRZUGZez~rk4(HC12?8egs!y68 zb&R}j48oC>-9;e6G5^$1C-M`l&zL-r@J?x+x}CSX3HS9qaD`V@@?iCvh^gMKacOST<-iNXq@K|Z4=D4`w%By)rt=_F`1-~!3D*I9D?L6BY zP;)e~ zqfvJe2*=DTSY3`q&ed^4JSiz{VV$93`Tz;^{1^^%(8ilveC1$k3nhqXeI?-I6Rd6W zWdjcnLej`j5G`I`to5;MJe*!QgR_BuFc+TlYijx3JDR}zsa!M!bit;&I^%U17&v)1 zX8{QA*e@!d^B84iXX9w=FsnUwPdQ&t1r#~lu ziLrd@Sstzdrn3sBr%ZKte&Dz{Aq{qqkG#51Ia1olSJ&5lc7poIK=@JNs7jUt;I(K>jQFp65fS|e#04- z$ZDU{kOn`B2sUv>a@@eTXEd70C%eC#c>{2a^0%$bHtD2&S1!-l!G?`b-26M;L)o#ty;*EZ z6Thkr6A}Vi6bL zd$BL!tGIjG=zaXcq-t*-janfj>}iWUr=`v9Y{@Gt+?CCNKp;#~KAhKL*`g?vBf{;g zmzO~OgFlvKgaic1DNAqZh4}a)$6}Hv*I1r&$9bTwLeJ+m2@UwwWwM z(*vOwD6WdkOuV|wsqvA|0$ZsUE6JUmUC}<#CYBk2WeZYQ&#h~qxJW=RkX4S12h;Jt zYfg#&URH?oO})DH9WVj^qXI7&LPCK2SFfw}ST+;@-QxN)Jl3B;<&cwWB6485KiR7R}DIVoG3CV3oa1X`1SB=l%%9zqSIL&xhi4LpTD*v zfDaDUyVK`w4n7IDU25q5Gl&r(~qvzjH|BGvg9pwA_KSe_U=CJn}85!V&#_HAt5R*E_?a<#o#am4>vanw2<-e-)Nw@f-RMNMP-DDwZY82Jr{$-WjRK% z^hIkrccT?=~YWE9e4RbzHf~SUHIq<-MTnd!g8_iJz|9xfUF;M-StdT$uWxY!H z{JB3{leq&;3XY{TIw!AwOG!HnI_=jQeeEYUei*wOQ6w_bk0)vr(frwd(+fa&w zL(#2BnE~PI3WA?{^O2a?cyF%;x?32E$_>`B%(*d0V=_B6uvZv+=5&N*lMUSJ8b}iT zaH;T#@x~z(cq}$P)s0&CqW0@oT{ygNVOQ#Gl`S`^yt48E2Ll5`XJ>|wt6(WS%{)!j zwDkG-_;{t`EKos@c6NSw9~a4gQBY6_xI;*G=?ad@q*;fg^ZuigKK(D9G*@skM~RJI zH6whexIBn*lp@1k-zLOIikTH=Xb4HvH8!sG*q$jhZ@YtCw=VxRE^c{lZeYSP1TKb) z%+^dbG*Uag_mE6_=B6_uX?{eV&muEIo)3Y|D+eT z`zq;OF`O{(y^TkR5;j9*Tx5|nP{*t!sJb~q5{d5KeZIv77r`TY5%t*xz{9Rm%`7-$pq_p^-ByR9G$Z42}Bc6N3@ zfBrl>-uByDRAFd)^Wt zqr^IAx?g@Ug0PEKF!O^Tq|?PG=^)2rc<-vg(HPjgM%R ll@8z1di#I5;f?EC>1BP)9f_Csz?nV_6$K6XBIwKa{{e~j1F--A literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h_source.html b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h_source.html new file mode 100644 index 0000000..c90c62e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/bmp_8h_source.html @@ -0,0 +1,105 @@ + + + + + + +PiAIZU: lib/bmp.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bmp.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 #include "container.h"
3 
4 /**
5  *
6  * @param file filename to open, like logo.bmp
7  * @param bitmap bitmap that later can be used in a container
8  * @return Returns 0 on success, -1 on failure.
9  *
10  * Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap
11  * that can be printed in a container.
12  */
13 int bmp_open(const char *file, gimp_bitmap_t **bitmap);
14 
15 /**
16  * @param path path to file
17  * @param file filename to open, like logo.bmp
18  * @param bitmap bitmap that later can be used in a container
19  * @return Returns 0 on success, -1 on failure.
20  *
21  * Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap
22  * that can be printed in a container.
23  */
24 int bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap);
25 
26 /**
27  *
28  * @param bitmap bitmap to destroy and free
29  *
30  * Frees the bitmap and sets the pointer to null.
31  */
32 void bmp_free(gimp_bitmap_t **bitmap);
int bmp_open(const char *file, gimp_bitmap_t **bitmap)
Definition: bmp.c:179
+
int bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap)
Definition: bmp.c:74
+
void bmp_free(gimp_bitmap_t **bitmap)
Definition: bmp.c:183
+ + +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/classes.html b/stage2/03-install-piaizu/files/fb/docs/html/classes.html new file mode 100644 index 0000000..03dcc25 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/classes.html @@ -0,0 +1,115 @@ + + + + + + +PiAIZU: Data Structure Index + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Data Structure Index
+
+
+
B | C | F | G | K | S
+ + + + + + + + + +
  b  
+
container_t   frame_buffer   
  k  
+
socket_datagram_lmx_coordinate_t   
containers_t   fwatch_client_t   socket_datagram_lmx_info_t   
bmp_header_t   coordinate_t   fwatch_t   key_action_t   socket_datagram_lmx_move_t   
  c  
+
  f  
+
  g  
+
key_press_event_t   socket_datagram_lmx_text_t   
  s  
+
container_info_t   font_character_t   gimp_bitmap_t   
socket_datagram_header_t   
+
B | C | F | G | K | S
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/closed.png b/stage2/03-install-piaizu/files/fb/docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/container_8c.html new file mode 100644 index 0000000..d930891 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8c.html @@ -0,0 +1,633 @@ + + + + + + +PiAIZU: lib/container.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
container.c File Reference
+
+
+
#include "container.h"
+#include "log.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+Include dependency graph for container.c:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Macros

#define ALPHA   3
 
#define RED   2
 
#define GREEN   1
 
#define BLUE   0
 
#define FRAMES_VISIBLE(x)   x
 
#define RGB_BITMASK   0x00FFFFFF
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

int container_valid (unsigned int container)
 
container_tcontainer_get (int container)
 
void container_reset (unsigned int container)
 
void container_visible (unsigned int container, bool visible)
 
int container_compile ()
 
int container_bitmap_at_xy (unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent)
 
int container_fill_bitmap (unsigned int container, gimp_bitmap_t *bm, bool transparent)
 
int container_get_n (void)
 
void container_close ()
 
void container_new (containers_t *containers)
 
void container_move (unsigned int container, int delta_x, int delta_y)
 
int container_draw_line (unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y)
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define ALPHA   3
+
+ +

Definition at line 7 of file container.c.

+ +
+
+ +
+
+ + + + +
#define BLUE   0
+
+ +

Definition at line 10 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
#define FRAMES_VISIBLE( x)   x
+
+ +

Definition at line 15 of file container.c.

+ +
+
+ +
+
+ + + + +
#define GREEN   1
+
+ +

Definition at line 9 of file container.c.

+ +
+
+ +
+
+ + + + +
#define RED   2
+
+ +

Definition at line 8 of file container.c.

+ +
+
+ +
+
+ + + + +
#define RGB_BITMASK   0x00FFFFFF
+
+ +

Definition at line 58 of file container.c.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int container_bitmap_at_xy (unsigned int container,
int x,
int y,
gimp_bitmap_tbm,
bool transparent 
)
+
+
Parameters
+ + + + + + +
containerContainer to fill with bitmap
xStart filling at offset x
yStart filling at offset y
bmbitmap image to fill
transparentDark pixels are not overwriting background for transparancy
 Calls container_bitmap_at_xy with x,y set to 0.
+
+ Places a bitmap image at coordinates x,y in container at index
+
"container"
+
+
+ +

Definition at line 156 of file container.c.

+ +
+
+ +
+
+ + + + + + + +
void container_close ()
+
+

Closes the framebuffer, frees all memory used for containers etc. Use this on exit.

+ +

Definition at line 197 of file container.c.

+ +
+
+ +
+
+ + + + + + + +
int container_compile ()
+
+

Will compile all containers into container 0 which is a copy of the framebuffer, and then the data is set to the real framebuffer to be displayed on the screen.

+ +

Definition at line 121 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int container_draw_line (unsigned int container,
unsigned int from_x,
unsigned int from_y,
unsigned int to_x,
unsigned int to_y 
)
+
+
Parameters
+ + + + + + +
containerContainer to draw in
from_xStart x point of line
from_yStart y point of line
to_xEnd x point of line
to_yEnd y point of line
+
+
+
Returns
0 on success, -1 on error.
+

This function will draw a line in a container

+ +

Definition at line 271 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int container_fill_bitmap (unsigned int container,
gimp_bitmap_tbm,
bool transparent 
)
+
+
Parameters
+ + + + +
containerContainer to fill with bitmap
bmbitmap image to fill
transparentDark pixels are not overwriting background for transparancy
 Calls container_bitmap_at_xy with x,y set to 0.
+
+
+ +

Definition at line 186 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
container_t * container_get (int container)
+
+
Parameters
+ + +
containerContainer to container_get
+
+
+
Returns
pointer to container.
+ +

Definition at line 190 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
int container_get_n (void )
+
+
Returns
returns amount of defined containers.
+ +

Definition at line 193 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void container_move (unsigned int container,
int delta_x,
int delta_y 
)
+
+
Parameters
+ + + + +
containerContainer to move
delta_xMove steps in x axis
delta_yMove steps in y axis
 Move container with delta_x and delta_y
+
+
+ +

Definition at line 263 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
void container_new (containers_tcontainers)
+
+

Creates a new set of containers, allocates memory, reads out the current framebuffer size etc..

+

todo Do not allocate this amount for each container.

+ +

Definition at line 209 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
void container_reset (unsigned int container)
+
+
Parameters
+ + +
containerContainer to reset to inital value
 Resets the container to initial state. Destroys
+ all contents.
+
+
+ +

Definition at line 73 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
int container_valid (unsigned int container)
+
+ +

Definition at line 62 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void container_visible (unsigned int container,
bool visible 
)
+
+
Parameters
+ + + +
containerContainer to show/hide
visibleSet to true to show and false hide.
  Set a container to be visible or hidden.
+  Content of container is not destroyed
+
+
+ +

Definition at line 109 of file container.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.map new file mode 100644 index 0000000..630a03d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.md5 new file mode 100644 index 0000000..e7a9b10 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.md5 @@ -0,0 +1 @@ +8c47f00e606c940d761badbef2a8b799 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/container_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2eea1097eb72da98a0ba0e009426952c29dc5e GIT binary patch literal 20149 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8c_source.html b/stage2/03-install-piaizu/files/fb/docs/html/container_8c_source.html new file mode 100644 index 0000000..1474e80 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8c_source.html @@ -0,0 +1,147 @@ + + + + + + +PiAIZU: lib/container.c Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
container.c
+
+
+Go to the documentation of this file.
1 #include "container.h"
2 #include "log.h"
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <string.h>
6 
7 #define ALPHA 3
8 #define RED 2
9 #define GREEN 1
10 #define BLUE 0
11 
12 #if DBG
13 #define FRAMES_VISIBLE(x) 1
14 #else
15 #define FRAMES_VISIBLE(x) x
16 #endif
17 
18 static containers_t default_container_data = {
19  .n = 2,
20  .c =
21  {
22  {
23  /* 0 master layer */
24  .x = 0,
25  .y = 0,
26  .width = LMX_PIXEL_WIDTH,
27  .height = LMX_PIXEL_HEIGHT,
28  .bits_per_pixel = 32,
29  .transparent = false,
30  .visible = true,
31  .frame = FRAMES_VISIBLE(0),
32  .bg_color = {0x00, 0x00, 0x00, 0x00},
33  .description = "Master container, copy of HW framebuffer",
34  .data = NULL,
35  },
36  {
37  /* 1 */
38  .x = 0,
39  .y = 0,
40  .width = LMX_PIXEL_WIDTH,
41  .height = LMX_PIXEL_HEIGHT,
42  .bits_per_pixel = 32,
43  .transparent = false,
44  .visible = true,
45  .frame = FRAMES_VISIBLE(0),
46  .bg_color = {0x00, 0x00, 0x00, 0x00},
47  .description = "Full screen",
48  .data = NULL,
49  },
50  },
51 };
52 
53 static containers_t *container_data;
54 
55 #ifdef GREEN_MONOCHROME
56 #define RGB_BITMASK 0x0000FF00
57 #else
58 #define RGB_BITMASK 0x00FFFFFF
59 #endif
60 
61 /* Static functions*/
62 int container_valid(unsigned int container) {
63  if (container == 0 || container >= container_data->n) {
64  return -1;
65  } else {
66  return 0;
67  }
68 }
69 
70 /* Public functions */
71 container_t *container_get(int container);
72 
73 void container_reset(unsigned int container) {
74 
75  memset(container_get(container)->data, 0x00, container_get(container)->framesize_mem);
76 
77  if (container_get(container)->frame) {
78  container_draw_line(container, 0, 0, container_get(container)->width - 1, 0);
79  container_draw_line(container, 0, container_get(container)->height - 1, container_get(container)->width - 1,
80  container_get(container)->height - 1);
81  container_draw_line(container, 0, 1, 0, container_get(container)->height - 1);
82 
83  container_draw_line(container, container_get(container)->width - 1, 0, container_get(container)->width - 1,
84  container_get(container)->height - 1);
85  }
86 }
87 
88 static inline int container_get_pixel(unsigned int c, int col, int row, uint32_t *rgba) {
89  uint32_t *px;
90 
91  px = (uint32_t *)container_data->c[c].data;
92 
93  *rgba = px[(col + row * (container_data->c[c].width + container_data->c[c].padding))];
94 
95  return 0;
96 }
97 
98 static inline int container_set_pixel(unsigned int c, int col, int row, uint32_t rgba) {
99 
100  uint32_t *px;
101 
102  px = (uint32_t *)container_data->c[c].data;
103 
104  px[(col + row * (container_data->c[c].width + container_data->c[c].padding))] = rgba & RGB_BITMASK;
105 
106  return 0;
107 }
108 
109 void container_visible(unsigned int container, bool visible) {
110  if (container_valid(container)) {
111  return;
112  }
113 
114 #ifdef DBG
115  LOG("Container: %d is %s\n", container, visible ? "Visible" : "Invisible");
116 #endif
117  container_data->c[container].visible = visible;
118  return;
119 }
120 
122 
123  unsigned int c = 0;
124 
125  for (c = 1; c < container_data->n; c++) {
126  if (!container_data->c[c].visible) {
127  continue;
128  }
129 
130  for (unsigned int row = 0; row < container_data->c[c].height; row++) {
131  for (unsigned int col = 0; col < container_data->c[c].width; col++) {
132  uint32_t rgba;
133 
134  container_get_pixel(c, col, row, &rgba);
135  if (container_data->c[c].transparent) {
136  if ((rgba & 0x00FFFFFF) == 0x00) {
137  continue;
138  }
139  }
140 #ifdef ROTATE_180
141  container_set_pixel(0, (container_data->c[0].width - 1) - (container_data->c[c].x + col),
142  (container_data->c[0].height - 1) - (container_data->c[c].y + row), rgba);
143 #else
144  container_set_pixel(0, container_data->c[c].x + col, container_data->c[c].y + row, rgba);
145 #endif
146  }
147  }
148  }
149 
150  framebuffer_update(container_data->c[0].data);
151  memset(container_data->c[0].data, 0x00,
152  container_data->c[0].width * container_data->c[0].height * sizeof(uint8_t) * 4);
153  return 0;
154 }
155 
156 int container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent) {
157  unsigned int w;
158  unsigned int h;
159 
160  uint32_t *px;
161 
162  if (container_valid(container)) {
163  return -1;
164  }
165  if (bm == NULL) {
166  return -1;
167  }
168 
169  for (h = 0; h < bm->height; h++) {
170 
171  for (w = 0; w < bm->width; w++) {
172  px = (uint32_t *)bm->pixel_data;
173  if (transparent) {
174  if ((px[(w + h * bm->width)] & 0x00FFFFFF) == 0x00) {
175  continue;
176  }
177  }
178 
179  container_set_pixel(container, w + x, y + h, px[(w + h * bm->width)]);
180  }
181  }
182 
183  return 0;
184 }
185 
186 int container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent) {
187  return container_bitmap_at_xy(container, 0, 0, bm, transparent);
188 }
189 
190 container_t *container_get(int container) {
191  return &container_data->c[container];
192 }
193 int container_get_n(void) {
194  return container_data->n;
195 }
196 
198  unsigned int i;
199  for (i = 0; i < container_data->n; i++) {
200  container_t *l = &container_data->c[i];
201  if (l->data) {
202  free(l->data);
203  }
204  }
205  free(container_data);
207 }
208 
209 void container_new(containers_t *containers) {
210  /* Initialise all containers */
211  unsigned int i;
212  struct frame_buffer fb;
213  size_t total_bytes = 0;
214 
215  fb = new_frame_buffer();
216 
217  if (containers == NULL) {
218  size_t s = sizeof(containers_t) + default_container_data.n * sizeof(container_t);
219  container_data = malloc(s);
220  memcpy(container_data, &default_container_data, s);
221 
222  } else {
223  size_t s = sizeof(containers_t) + containers->n * sizeof(container_t);
224 
225  container_data = malloc(s);
226  memcpy(container_data, containers, s);
227  }
228 
229  for (i = 0; i < container_data->n; i++) {
230  void * data;
231  size_t allocsize = 0;
232  container_t *l = &container_data->c[i];
233 
234  /* Layer 0 must have same dimension than the framebuffer */
235  if (i == 0) {
236  allocsize = fb.buffer_size;
237  l->width = fb.width;
238  l->height = fb.height;
239  l->padding = fb.padding;
240  } else {
241  allocsize = (l->width) * l->height * (fb.var_info.bits_per_pixel / 8);
242  l->padding = 0;
243  }
244 
245  data = calloc(allocsize, 1); /** todo Do not allocate this amount for each container. */
246 
247  l->framesize_mem = allocsize;
248  total_bytes += l->framesize_mem;
249  LOG("Container %02d: % 5d x% 5d bits/pix %d Visible: %s Transparent: %s "
250  "size: % 8zd bytes padding: %2d %s\n",
251  i, l->width, l->height, fb.var_info.bits_per_pixel, l->visible ? "True " : "False",
252  l->transparent ? "True " : "False", l->framesize_mem, l->padding, l->description);
253 
254  /* All containers must have same color format, at least to start with */
255  l->bits_per_pixel = fb.var_info.bits_per_pixel;
256  l->data = data;
257 
258  container_reset(i);
259  }
260  LOG("Total bytes allocated to %zd containers is: %zd bytes\n", container_data->n - 1, total_bytes);
261 }
262 
263 void container_move(unsigned int container, int delta_x, int delta_y) {
264  if (container_valid(container)) {
265  return;
266  }
267  container_data->c[container].x += delta_x;
268  container_data->c[container].y += delta_y;
269 }
270 
272  unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y) {
273  double k;
274  int m;
275  unsigned int x, y;
276  uint32_t rgba = 0x0;
277 
278  if (container_valid(container)) {
279  return -1;
280  }
281  if (to_x >= container_data->c[container].width || to_y >= container_data->c[container].height ||
282  from_x >= container_data->c[container].width || from_y >= container_data->c[container].height) {
283  return -1;
284  }
285 
286  rgba = 0x0000FF00;
287 
288  if ((to_x - from_x) == 0) {
289 
290  for (y = from_y; y < to_y; y++) {
291  container_set_pixel(container, to_x, y, rgba);
292  }
293 
294  return 0;
295  }
296 
297  k = (double)to_y - from_y;
298  k = k / (to_x - from_x);
299 
300  m = (to_y - k * to_x);
301 
302  for (x = from_x; x <= to_x; x++) {
303  y = (k * x) + m;
304  container_set_pixel(container, x, y, rgba);
305  }
306 
307  return 0;
308 }
unsigned char pixel_data[]
Definition: container.h:41
+ + +
container_t c[]
Definition: container.h:33
+ +
bool visible
Definition: container.h:23
+
#define LOG(str,...)
Definition: log.h:7
+ +
int bits_per_pixel
Definition: container.h:20
+
int container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent)
Definition: container.c:186
+ +
#define RGB_BITMASK
Definition: container.c:58
+
#define LMX_PIXEL_WIDTH
Definition: container.h:8
+
struct frame_buffer new_frame_buffer()
Definition: framebuffer.c:13
+
bool transparent
Definition: container.h:22
+
container_t * container_get(int container)
Definition: container.c:190
+
int container_get_n(void)
Definition: container.c:193
+
long int buffer_size
Definition: framebuffer.h:17
+
void container_visible(unsigned int container, bool visible)
Definition: container.c:109
+
#define LMX_PIXEL_HEIGHT
Definition: container.h:9
+
int container_draw_line(unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y)
Definition: container.c:271
+
unsigned int width
Definition: container.h:18
+ +
unsigned int width
Definition: container.h:38
+
uint8_t(* data)[]
Definition: container.h:28
+
void container_move(unsigned int container, int delta_x, int delta_y)
Definition: container.c:263
+
void container_reset(unsigned int container)
Definition: container.c:73
+
int container_compile()
Definition: container.c:121
+
size_t n
Definition: container.h:32
+
size_t framesize_mem
Definition: container.h:25
+
#define FRAMES_VISIBLE(x)
Definition: container.c:15
+ + +
int container_valid(unsigned int container)
Definition: container.c:62
+
void container_new(containers_t *containers)
Definition: container.c:209
+
unsigned int height
Definition: container.h:19
+ +
int container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent)
Definition: container.c:156
+
void container_close()
Definition: container.c:197
+ +
unsigned int height
Definition: container.h:39
+
void framebuffer_update(void *mem)
Definition: framebuffer.c:60
+
char * description
Definition: container.h:27
+
struct fb_var_screeninfo var_info
Definition: framebuffer.h:10
+ +
int padding
Definition: container.h:21
+
void destroy_frame_buffer()
Definition: framebuffer.c:55
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/container_8h.html new file mode 100644 index 0000000..389887a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8h.html @@ -0,0 +1,617 @@ + + + + + + +PiAIZU: lib/container.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
container.h File Reference
+
+
+
#include "framebuffer.h"
+#include <stdlib.h>
+
+Include dependency graph for container.h:
+
+
+ + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

struct  container_t
 
struct  containers_t
 
struct  gimp_bitmap_t
 
+ + + + + + + + + +

+Macros

#define LMX_PIXEL_WIDTH   419
 
#define LMX_PIXEL_HEIGHT   138
 
#define LMX_W   LMX_PIXEL_WIDTH
 
#define LMX_H   LMX_PIXEL_HEIGHT
 
+ + + +

+Typedefs

typedef uint8_t rgba_t[4]
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void container_new (containers_t *containers)
 
int container_bitmap_at_xy (unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent)
 
int container_fill_bitmap (unsigned int container, gimp_bitmap_t *bm, bool transparent)
 
int container_compile ()
 
void container_visible (unsigned int container, bool visible)
 
void container_move (unsigned int container, int delta_x, int delta_y)
 
void container_reset (unsigned int container)
 
void container_close ()
 
int container_draw_line (unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y)
 
int container_get_n (void)
 
container_tcontainer_get (int container)
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define LMX_H   LMX_PIXEL_HEIGHT
+
+ +

Definition at line 12 of file container.h.

+ +
+
+ +
+
+ + + + +
#define LMX_PIXEL_HEIGHT   138
+
+ +

Definition at line 9 of file container.h.

+ +
+
+ +
+
+ + + + +
#define LMX_PIXEL_WIDTH   419
+
+ +

Definition at line 8 of file container.h.

+ +
+
+ +
+
+ + + + +
#define LMX_W   LMX_PIXEL_WIDTH
+
+ +

Definition at line 11 of file container.h.

+ +
+
+

Typedef Documentation

+ +
+
+ + + + +
typedef uint8_t rgba_t[4]
+
+ +

Definition at line 6 of file container.h.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int container_bitmap_at_xy (unsigned int container,
int x,
int y,
gimp_bitmap_tbm,
bool transparent 
)
+
+
Parameters
+ + + + + + +
containerContainer to fill with bitmap
xStart filling at offset x
yStart filling at offset y
bmbitmap image to fill
transparentDark pixels are not overwriting background for transparancy
 Calls container_bitmap_at_xy with x,y set to 0.
+
+ Places a bitmap image at coordinates x,y in container at index
+
"container"
+
+
+ +

Definition at line 156 of file container.c.

+ +
+
+ +
+
+ + + + + + + +
void container_close ()
+
+

Closes the framebuffer, frees all memory used for containers etc. Use this on exit.

+ +

Definition at line 197 of file container.c.

+ +
+
+ +
+
+ + + + + + + +
int container_compile ()
+
+

Will compile all containers into container 0 which is a copy of the framebuffer, and then the data is set to the real framebuffer to be displayed on the screen.

+ +

Definition at line 121 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int container_draw_line (unsigned int container,
unsigned int from_x,
unsigned int from_y,
unsigned int to_x,
unsigned int to_y 
)
+
+
Parameters
+ + + + + + +
containerContainer to draw in
from_xStart x point of line
from_yStart y point of line
to_xEnd x point of line
to_yEnd y point of line
+
+
+
Returns
0 on success, -1 on error.
+

This function will draw a line in a container

+ +

Definition at line 271 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int container_fill_bitmap (unsigned int container,
gimp_bitmap_tbm,
bool transparent 
)
+
+
Parameters
+ + + + +
containerContainer to fill with bitmap
bmbitmap image to fill
transparentDark pixels are not overwriting background for transparancy
 Calls container_bitmap_at_xy with x,y set to 0.
+
+
+ +

Definition at line 186 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
container_t* container_get (int container)
+
+
Parameters
+ + +
containerContainer to container_get
+
+
+
Returns
pointer to container.
+ +

Definition at line 190 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
int container_get_n (void )
+
+
Returns
returns amount of defined containers.
+ +

Definition at line 193 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void container_move (unsigned int container,
int delta_x,
int delta_y 
)
+
+
Parameters
+ + + + +
containerContainer to move
delta_xMove steps in x axis
delta_yMove steps in y axis
 Move container with delta_x and delta_y
+
+
+ +

Definition at line 263 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
void container_new (containers_tcontainers)
+
+

Creates a new set of containers, allocates memory, reads out the current framebuffer size etc..

+

todo Do not allocate this amount for each container.

+ +

Definition at line 209 of file container.c.

+ +
+
+ +
+
+ + + + + + + + +
void container_reset (unsigned int container)
+
+
Parameters
+ + +
containerContainer to reset to inital value
 Resets the container to initial state. Destroys
+ all contents.
+
+
+ +

Definition at line 73 of file container.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void container_visible (unsigned int container,
bool visible 
)
+
+
Parameters
+ + + +
containerContainer to show/hide
visibleSet to true to show and false hide.
  Set a container to be visible or hidden.
+  Content of container is not destroyed
+
+
+ +

Definition at line 109 of file container.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.map new file mode 100644 index 0000000..01314e0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.md5 new file mode 100644 index 0000000..789118a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.md5 @@ -0,0 +1 @@ +8690c24bdf9e8cc0554d9f8d60a8d7f0 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..d0d0e1895e5506f08c91c94ef393cc9bd3db11e7 GIT binary patch literal 19978 zcma&ObyU@B)bG3K?v`!|K}Bf+K}uRuX^@g`M7kRR0Ra)|QbLrJZV_okx=WDmx^wOG zo^k)UXPj}zc5D$?zj$KS_cNbJbyax++#9$E1cE?O;n5QW0_76EZotNb|2x*ptH58F zW=isp5ZB26J~S34ArMRm#YYddyxwh2zch%MWW?GT;LTT%W#@W)lqqO2F!9xb>ra(| z?Ne6Uw&aZa27i+ctyw=m@_78bzl@k!_I&1^tDpaYZJG7(=nruL_nGoks*SXLpVc(0 z6|sSrKTjDbnL`3{Zbs!4egB!&?}kn;t3fW?i>Y#k{6brHFi#Est)Y$nzrW#>Mi`K@ zq+w^ro5K4PRU&J^?WPva=GK;}qvL=ZHF>_1^>ASk=~RO!5vS@qsd$D5ZwW)sdiPfc zPy#r7qqwos54cLm|NZ-?94>YFe5^zp{?@>ao*5}bJ_2_T{0=-!2@721|N9M`lZ#V< zkDop%UDn);jEvN)amXAszsUUD!Hx6l*Dv^C)#$N|#%MY6!#J9nn(ajzx!=ECZcWw< z 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 + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.md5 new file mode 100644 index 0000000..76423cd --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.md5 @@ -0,0 +1 @@ +744326d8a5114a3e15d346567b1ef23b \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/container_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..0e58edbb6e0c1552aa8c180174d4bba6d280f7de GIT binary patch literal 10053 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

X zMX{%Ep&QgDWB|G{LR5fCLI&T3-Mk2)X3^9EHB-PQBXyKa@Y?Xqd>w5JSp=Qft=QPu z!}ZDG$K4TU-++e)H@I&-(F74eHUba2{MbUp!oq^}>B}l-k0v|87-RpI;P>zK$hjq2 zEI)Dc@!9QHtxs6@`)la2^(M0?5E8rMTMf@kYiI}pehq>{rXr1KQ&IL7V^&rc^(?~A zfHR2gV`wO!0%PaQ@&Jn-Xb#xD?*(wolz8>Zzm5gu)&<5L{x0l$?)TMJ506HvpAMy2 zSwua(V!fYV_$BX-fs~RIKuw~}Gk59shK!uQjD?R+>rA1Qf5&i*C4BSx z=&x07!&6p^g2=%ZzpF;6fZaE-c}l6AH4P2gy3l9He_fsr-M{zsv47hm08a$j!c=C;0ysyc|klBj;F*FulU0XAssLm{S@=LF@ z{H~U-&gT)YE1*Q)-rn2dcNh2%I$c~{w<=y; zod7U71+1e7q%toIX8NkiFp+bnBS0K%n3Ri_%}MD9Jd6JR{_UU1>=ghx{F<3Du-t}B zt^X;|Gc~2V+G$!KhopS`IJ#`Frl@H4;>8OUqmGsg1Ah$-LQq0BxxKyRU|OKK8 zOiIVl(6G3&(Q#o2h*dp6+W>8%h>4AT11jY>5(PT|*lInuo8mrQ{PrLvE$zqU+1@ai z^XTH2>66KcX#^bfA`JZe`4$kQ@!1=xc|VQH(yJtnN_+EO{e>YcHTbxNww9IxRZVT^ z$JEq5K;))6gB}zbFTWic8rlXO5Io|qZiHYkjY}hIYu36iUp`O>Lr7_8hRMy9IY^b3 zY@b>v!7nZ@l$DfXE-o(thB9MLRL});A&&X(K3%4kE4B?D$S+3o__5ZK5@$J-{pr)R z*4B4%%>YvA0g6CnIFS@Ont@Pn3}x6uluV5IDFRRhGp}^C3cKTQu+%vT%nc8hYu~ET zZ&IWpCpVe@>fP*j^_-MLm)5VNxtScm#P!)0*ARC=sgy1~bH)7LCno-}_KkkGo}dJ9 z1;CVmHopQb1yMl$|GPZd;%R!u&rcG9j$3vx4+dxZHDx>=kSx%l0v0L4?S52=IXUx- zUy42Ghc;DUnZ7cvcsHv~7@O*9I1F7X#R8rCaCy zSazVVBb& zz5`ZPYu_9@?Nva9Za%E7u1cw>;AUi0=fqb(+3lK}gASx}$;-$*FDY816Z8~I-ATZHmT>q zOa4wx)x<-EzkCaMR0j$el#{rdwtYY@)qsW!UceMB-@g3`mXGQ+pas92?WLnIZM|C|3mZD0S}9zhq#jR>I)t;fH^ ZmvmEE6MS + + + + + +PiAIZU: lib/container.h Source File + + + + + + + + + + +

+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
container.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 #include "framebuffer.h"
4 #include <stdlib.h>
5 
6 typedef uint8_t rgba_t[4];
7 
8 #define LMX_PIXEL_WIDTH 419
9 #define LMX_PIXEL_HEIGHT 138
10 
11 #define LMX_W LMX_PIXEL_WIDTH
12 #define LMX_H LMX_PIXEL_HEIGHT
13 
14 typedef struct {
15  int handle;
16  int x;
17  int y;
18  unsigned int width;
19  unsigned int height;
21  int padding;
23  bool visible;
24  char frame;
25  size_t framesize_mem;
27  char * description;
28  uint8_t (*data)[];
29 } container_t;
30 
31 typedef struct {
32  size_t n;
34 } containers_t;
35 
36 #pragma pack(2)
37 typedef struct {
38  unsigned int width;
39  unsigned int height;
40  unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */
41  unsigned char pixel_data[];
43 
44 /**
45  *
46  * Creates a new set of containers, allocates memory,
47  * reads out the current framebuffer size etc..
48  */
49 void container_new(containers_t *containers);
50 
51 /**
52  *
53  * @param container Container to fill with bitmap
54  * @param x Start filling at offset x
55  * @param y Start filling at offset y
56  * @param bm bitmap image to fill
57  * @param transparent Dark pixels are not overwriting background for
58  * transparancy
59  *
60  * Calls container_bitmap_at_xy with x,y set to 0.
61  *
62  * Places a bitmap image at coordinates x,y in container at index
63  * "container"
64  */
65 int container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent);
66 
67 /**
68  *
69  * @param container Container to fill with bitmap
70  * @param bm bitmap image to fill
71  * @param transparent Dark pixels are not overwriting background for
72  * transparancy
73  *
74  * Calls container_bitmap_at_xy with x,y set to 0.
75  */
76 int container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent);
77 
78 /**
79  *
80  * Will compile all containers into container 0 which is a copy of the
81  * framebuffer, and then the data is set to the real framebuffer
82  * to be displayed on the screen.
83  */
84 int container_compile();
85 
86 /**
87  * @param container Container to show/hide
88  * @param visible Set to true to show and false hide.
89  *
90  * Set a container to be visible or hidden.
91  * Content of container is not destroyed
92  */
93 void container_visible(unsigned int container, bool visible);
94 
95 /**
96  * @param container Container to move
97  * @param delta_x Move steps in x axis
98  * @param delta_y Move steps in y axis
99  *
100  * Move container with delta_x and delta_y
101  */
102 void container_move(unsigned int container, int delta_x, int delta_y);
103 
104 /**
105  * @param container Container to reset to inital value
106  *
107  * Resets the container to initial state. Destroys
108  * all contents.
109  */
110 void container_reset(unsigned int container);
111 
112 /**
113  *
114  * Closes the framebuffer, frees all memory used for containers etc.
115  * Use this on exit.
116  */
117 void container_close();
118 
119 /**
120  * @param container Container to draw in
121  * @param from_x Start x point of line
122  * @param from_y Start y point of line
123  * @param to_x End x point of line
124  * @param to_y End y point of line
125  *
126  * @return 0 on success, -1 on error.
127  *
128  * This function will draw a line in a container
129  */
130 
132  unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y);
133 
134 /**
135  *
136  * @return returns amount of defined containers.
137  */
138 int container_get_n(void);
139 
140 /**
141  * @param container Container to container_get
142  *
143  * @return pointer to container.
144  */
145 container_t *container_get(int container);
+ +
bool visible
Definition: container.h:23
+
int container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent)
Definition: container.c:186
+
int bits_per_pixel
Definition: container.h:20
+ +
int container_get_n(void)
Definition: container.c:193
+
int container_draw_line(unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y)
Definition: container.c:271
+
uint8_t rgba_t[4]
Definition: container.h:6
+
unsigned int bytes_per_pixel
Definition: container.h:40
+
void container_visible(unsigned int container, bool visible)
Definition: container.c:109
+
bool transparent
Definition: container.h:22
+
void container_reset(unsigned int container)
Definition: container.c:73
+
unsigned int width
Definition: container.h:18
+
void container_new(containers_t *containers)
Definition: container.c:209
+
container_t * container_get(int container)
Definition: container.c:190
+ +
unsigned int width
Definition: container.h:38
+
size_t n
Definition: container.h:32
+
size_t framesize_mem
Definition: container.h:25
+
void container_move(unsigned int container, int delta_x, int delta_y)
Definition: container.c:263
+
unsigned int height
Definition: container.h:19
+ +
int container_compile()
Definition: container.c:121
+ +
char frame
Definition: container.h:24
+
unsigned int height
Definition: container.h:39
+
char * description
Definition: container.h:27
+
void container_close()
Definition: container.c:197
+
rgba_t bg_color
Definition: container.h:26
+
int handle
Definition: container.h:15
+
int padding
Definition: container.h:21
+
int container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent)
Definition: container.c:156
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h.html new file mode 100644 index 0000000..28f657c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h.html @@ -0,0 +1,418 @@ + + + + + + +PiAIZU: define_containers.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
define_containers.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Macros

#define FRAME(x)   x
 
#define FRAMES_VISIBLE(x)   x
 
#define CONTAINER_DEFINE(x)
 
#define CONTAINER_HANDLE_ENUM(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION)   HANDLE,
 
#define CONTAINER_HANDLE_STR(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION)   #HANDLE ,
 
#define CONTAINER_ARRAY(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION)
 
+ + + +

+Enumerations

enum  container_handle_e { N_CONTAINERS + }
 
+

Macro Definition Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#define CONTAINER_ARRAY( HANDLE,
 X,
 Y,
 WIDTH,
 HEIGHT,
 TRANSPARENT,
 VISIBLE,
 SHOW_FRAME,
 DESCRIPTION 
)
+
+Value:
{ \
.x = X, \
.y = Y, \
.width = WIDTH, \
.height = HEIGHT, \
.bits_per_pixel = 32, \
.transparent = TRANSPARENT, \
.visible = VISIBLE, \
.frame = SHOW_FRAME, \
.bg_color = {0x00, 0x00, 0x00, 0x00}, \
.description = DESCRIPTION, \
.data = NULL, \
},
+

Definition at line 39 of file define_containers.h.

+ +
+
+ +
+
+ + + + + + + + +
#define CONTAINER_DEFINE( x)
+
+Value:
/* 00 */ x(FB_COPY , 0 ,0 , LMX_W, LMX_H, false, true, FRAME(0), "Master container, copy of HW framebuffer") \
/* 01 */ x(FULL_SCREEN , 0 ,0 , LMX_W, LMX_H, false, true, FRAME(0), "Full screen, not used") \
/* 02 */ x(SONY_LOGO , 20 ,10 , 246 , 52, true , true, FRAME(0), "Master container, copy of HW framebuffer") \
/* 03 */ x(AP_A , 360 , 1 , 57 , 70, false, true, FRAME(0), "Access point symbol A") \
/* 04 */ x(AP_B , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol B") \
/* 05 */ x(AP_C , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol C") \
/* 06 */ x(AP_D , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol D") \
/* 07 */ x(TEXT , 375 ,75 , 30 , 30, true , true, FRAME(0), "Text") \
/* 08 */ x(WIFI_TEXTBOX , 20 ,80 , 280 , 48, true , true, FRAME(0), "Connect to wifi textbox") \
/* 09 */ x(KEY_INFO , 290 ,10 , 65 , 62, true , true, FRAME(0), "Key event information") \
/* 10 */ x(WEB_MESSAGES , 0 ,LMX_H - 21, LMX_W, 20, true , true, FRAME(0), "Web message area") \
/* 11 */ x(POINTER , 0 ,0 , LMX_W, LMX_H, true , true, FRAME(0), "Cross-hair area")
#define LMX_H
Definition: container.h:12
+
#define FRAME(x)
+
#define LMX_W
Definition: container.h:11
+
+

Definition at line 17 of file define_containers.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#define CONTAINER_HANDLE_ENUM( HANDLE,
 X,
 Y,
 WIDTH,
 HEIGHT,
 TRANSPARENT,
 VISIBLE,
 SHOW_FRAME,
 DESCRIPTION 
)   HANDLE,
+
+ +

Definition at line 31 of file define_containers.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#define CONTAINER_HANDLE_STR( HANDLE,
 X,
 Y,
 WIDTH,
 HEIGHT,
 TRANSPARENT,
 VISIBLE,
 SHOW_FRAME,
 DESCRIPTION 
)   #HANDLE ,
+
+ +

Definition at line 32 of file define_containers.h.

+ +
+
+ +
+
+ + + + + + + + +
#define FRAME( x)   x
+
+ +

Definition at line 6 of file define_containers.h.

+ +
+
+ +
+
+ + + + + + + + +
#define FRAMES_VISIBLE( x)   x
+
+ +

Definition at line 12 of file define_containers.h.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum container_handle_e
+
+ + +
Enumerator
N_CONTAINERS  +
+ +

Definition at line 34 of file define_containers.h.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.map new file mode 100644 index 0000000..6a700cc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.md5 new file mode 100644 index 0000000..b02f244 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.md5 @@ -0,0 +1 @@ +1d719b03c3bc49f52477b18d25433750 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/define__containers_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..82435d87c5a40ff13413ca52d19307284c91d74a GIT binary patch literal 2667 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 + + + + + +PiAIZU: define_containers.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
define_containers.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 #if DBG
4 #define FRAME(x) 1
5 #else
6 #define FRAME(x) x
7 #endif
8 
9 #if DBG
10 #define FRAMES_VISIBLE(x) 1
11 #else
12 #define FRAMES_VISIBLE(x) x
13 #endif
14 
15 // clang-format off
16 /* HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) */
17 #define CONTAINER_DEFINE(x) \
18  /* 00 */ x(FB_COPY , 0 ,0 , LMX_W, LMX_H, false, true, FRAME(0), "Master container, copy of HW framebuffer") \
19  /* 01 */ x(FULL_SCREEN , 0 ,0 , LMX_W, LMX_H, false, true, FRAME(0), "Full screen, not used") \
20  /* 02 */ x(SONY_LOGO , 20 ,10 , 246 , 52, true , true, FRAME(0), "Master container, copy of HW framebuffer") \
21  /* 03 */ x(AP_A , 360 , 1 , 57 , 70, false, true, FRAME(0), "Access point symbol A") \
22  /* 04 */ x(AP_B , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol B") \
23  /* 05 */ x(AP_C , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol C") \
24  /* 06 */ x(AP_D , 360 , 1 , 57 , 70, true , true, FRAME(0), "Access point symbol D") \
25  /* 07 */ x(TEXT , 375 ,75 , 30 , 30, true , true, FRAME(0), "Text") \
26  /* 08 */ x(WIFI_TEXTBOX , 20 ,80 , 280 , 48, true , true, FRAME(0), "Connect to wifi textbox") \
27  /* 09 */ x(KEY_INFO , 290 ,10 , 65 , 62, true , true, FRAME(0), "Key event information") \
28  /* 10 */ x(WEB_MESSAGES , 0 ,LMX_H - 21, LMX_W, 20, true , true, FRAME(0), "Web message area") \
29  /* 11 */ x(POINTER , 0 ,0 , LMX_W, LMX_H, true , true, FRAME(0), "Cross-hair area")
30 
31 #define CONTAINER_HANDLE_ENUM(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) HANDLE,
32 #define CONTAINER_HANDLE_STR(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) #HANDLE ,
33 
34 typedef enum {
38 
39 #define CONTAINER_ARRAY(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION) \
40  { \
41  .x = X, \
42  .y = Y, \
43  .width = WIDTH, \
44  .height = HEIGHT, \
45  .bits_per_pixel = 32, \
46  .transparent = TRANSPARENT, \
47  .visible = VISIBLE, \
48  .frame = SHOW_FRAME, \
49  .bg_color = {0x00, 0x00, 0x00, 0x00}, \
50  .description = DESCRIPTION, \
51  .data = NULL, \
52  },
53 
54 #if 0
55 
56 typedef struct {
57  size_t n;
58  container_t c[];
59 } containers_t;
60 
61 
62 static container_t containers[] = {
64 };
65 
66 #endif
67 
68 static containers_t containers = {
69  .n = N_CONTAINERS,
70  .c =
71  {
73  }
74 };
75 // clang-format on
+
#define CONTAINER_DEFINE(x)
+ + +
#define CONTAINER_HANDLE_ENUM(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION)
+
#define CONTAINER_ARRAY(HANDLE, X, Y, WIDTH, HEIGHT, TRANSPARENT, VISIBLE, SHOW_FRAME, DESCRIPTION)
+
container_handle_e
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/dir_000001_000000.html b/stage2/03-install-piaizu/files/fb/docs/html/dir_000001_000000.html new file mode 100644 index 0000000..2c782a9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/dir_000001_000000.html @@ -0,0 +1,90 @@ + + + + + + +PiAIZU: lib -> cgi-src Relation + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+

lib → cgi-src Relation

File in libIncludes file in cgi-src
webrequest.clmxsocket.h
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/dir_13f8d8320159c08b3eb7e184323c9bd9.html b/stage2/03-install-piaizu/files/fb/docs/html/dir_13f8d8320159c08b3eb7e184323c9bd9.html new file mode 100644 index 0000000..3289646 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/dir_13f8d8320159c08b3eb7e184323c9bd9.html @@ -0,0 +1,108 @@ + + + + + + +PiAIZU: cgi-src Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
cgi-src Directory Reference
+
+
+ + + + + + +

+Files

file  lmxjson.c [code]
 
file  lmxsocket.h [code]
 
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html b/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html new file mode 100644 index 0000000..ecf21b2 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html @@ -0,0 +1,148 @@ + + + + + + +PiAIZU: lib Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
lib Directory Reference
+
+
+
+Directory dependency graph for lib:
+
+
lib
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  bmp.c [code]
 
file  bmp.h [code]
 
file  container.c [code]
 
file  container.h [code]
 
file  framebuffer.c [code]
 
file  framebuffer.h [code]
 
file  fwatch.c [code]
 
file  fwatch.h [code]
 
file  keys.c [code]
 
file  keys.h [code]
 
file  log.h [code]
 
file  text.c [code]
 
file  text.h [code]
 
file  version.c [code]
 
file  version.h [code]
 
file  webrequest.c [code]
 
file  webrequest.h [code]
 
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.map b/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.map new file mode 100644 index 0000000..7d12f46 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.map @@ -0,0 +1,5 @@ + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.md5 b/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.md5 new file mode 100644 index 0000000..a67b72e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.md5 @@ -0,0 +1 @@ +30b8493800ced9027a53a59c870408d9 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.png b/stage2/03-install-piaizu/files/fb/docs/html/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..b539a576f56204441723de5cae4bc35a7f70a52e GIT binary patch literal 1938 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/documentation_8txt.html b/stage2/03-install-piaizu/files/fb/docs/html/documentation_8txt.html new file mode 100644 index 0000000..fe2a1a3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/documentation_8txt.html @@ -0,0 +1,96 @@ + + + + + + +PiAIZU: documentation.txt File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
documentation.txt File Reference
+
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/doxygen.css b/stage2/03-install-piaizu/files/fb/docs/html/doxygen.css new file mode 100644 index 0000000..1425ec5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/doxygen.css @@ -0,0 +1,1475 @@ +/* The standard CSS for doxygen 1.8.11 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/doxygen.png b/stage2/03-install-piaizu/files/fb/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/dynsections.js b/stage2/03-install-piaizu/files/fb/docs/html/dynsections.js new file mode 100644 index 0000000..1e6bf07 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/dynsections.js @@ -0,0 +1,104 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +PiAIZU: File List + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/folderclosed.png b/stage2/03-install-piaizu/files/fb/docs/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c.html new file mode 100644 index 0000000..78e5bab --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c.html @@ -0,0 +1,185 @@ + + + + + + +PiAIZU: lib/framebuffer.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
framebuffer.c File Reference
+
+
+
#include "framebuffer.h"
+#include "log.h"
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+Include dependency graph for framebuffer.c:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

struct frame_buffer new_frame_buffer ()
 
void destroy_frame_buffer ()
 
void framebuffer_update (void *mem)
 
+

Function Documentation

+ +
+
+ + + + + + + +
void destroy_frame_buffer ()
+
+ +

Definition at line 55 of file framebuffer.c.

+ +
+
+ +
+
+ + + + + + + + +
void framebuffer_update (void * mem)
+
+ +

Definition at line 60 of file framebuffer.c.

+ +
+
+ +
+
+ + + + + + + +
struct frame_buffer new_frame_buffer ()
+
+ +

Definition at line 13 of file framebuffer.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.map new file mode 100644 index 0000000..2af6dd6 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.md5 new file mode 100644 index 0000000..edb4d68 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.md5 @@ -0,0 +1 @@ +64c6412664960cb3e3b84d1dc5263f81 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4417bff573920d92560f8a76a1a783a07cd9ff85 GIT binary patch literal 27866 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 + + + + + +PiAIZU: lib/framebuffer.c Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
framebuffer.c
+
+
+Go to the documentation of this file.
1 #include "framebuffer.h"
2 #include "log.h"
3 #include <fcntl.h>
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <sys/ioctl.h>
8 #include <sys/mman.h>
9 #include <unistd.h>
10 
11 static struct frame_buffer fb = {0};
12 
14 
15  fb.file_descriptor = open("/dev/fb0", O_RDWR);
16  if (fb.file_descriptor == -1) {
17  perror("Error: cannot open framebuffer device");
18  exit(1);
19  }
20 
21  if (ioctl(fb.file_descriptor, FBIOGET_FSCREENINFO, &fb.fixed_info) == -1) {
22  perror("Error reading fixed information");
23  exit(2);
24  }
25 
26  if (ioctl(fb.file_descriptor, FBIOGET_VSCREENINFO, &fb.var_info) == -1) {
27  perror("Error reading variable information");
28  exit(3);
29  }
30 
31  fb.width = fb.var_info.xres;
32  fb.height = fb.var_info.yres;
33  fb.linelength = fb.fixed_info.line_length;
34  fb.padding = (fb.fixed_info.line_length / (fb.var_info.bits_per_pixel / 8)) - (fb.var_info.xres);
35 
36  LOG("Framebuffer: (width %d, height %d) bpp %d, bytesize %d (%d) linelength "
37  "%d, padding %d\n",
38  fb.var_info.xres, fb.var_info.yres, fb.var_info.bits_per_pixel, fb.fixed_info.smem_len,
39  fb.width * fb.height * fb.var_info.bits_per_pixel / 8, fb.fixed_info.line_length, fb.padding);
40 
41  fb.buffer_size = fb.fixed_info.smem_len;
42  fb.buffer = (char *)mmap(0, fb.buffer_size, PROT_READ | PROT_WRITE, MAP_SHARED, fb.file_descriptor, 0);
43 
44  if (fb.buffer == (void *)-1) {
45  perror("Error: failed to map framebuffer device to memory");
46  exit(5);
47  }
48 
49  memset(fb.buffer, 0x00, fb.buffer_size);
50 
51  /* Return a copy of the frambuffer struct */
52  return fb;
53 }
54 
56  munmap(fb.buffer, fb.buffer_size);
57  close(fb.file_descriptor);
58 }
59 
60 void framebuffer_update(void *mem) {
61  memcpy(fb.buffer, mem, fb.buffer_size);
62 }
+ + +
#define LOG(str,...)
Definition: log.h:7
+ +
struct frame_buffer new_frame_buffer()
Definition: framebuffer.c:13
+
int file_descriptor
Definition: framebuffer.h:7
+
char * buffer
Definition: framebuffer.h:18
+
long int buffer_size
Definition: framebuffer.h:17
+ +
struct fb_fix_screeninfo fixed_info
Definition: framebuffer.h:9
+
void framebuffer_update(void *mem)
Definition: framebuffer.c:60
+ +
struct fb_var_screeninfo var_info
Definition: framebuffer.h:10
+ +
void destroy_frame_buffer()
Definition: framebuffer.c:55
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h.html new file mode 100644 index 0000000..3199cd4 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h.html @@ -0,0 +1,197 @@ + + + + + + +PiAIZU: lib/framebuffer.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
framebuffer.h File Reference
+
+
+
#include <linux/fb.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+Include dependency graph for framebuffer.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  frame_buffer
 
+ + + + + + + +

+Functions

struct frame_buffer new_frame_buffer ()
 
void framebuffer_update (void *mem)
 
void destroy_frame_buffer ()
 
+

Function Documentation

+ +
+
+ + + + + + + +
void destroy_frame_buffer ()
+
+ +

Definition at line 55 of file framebuffer.c.

+ +
+
+ +
+
+ + + + + + + + +
void framebuffer_update (void * mem)
+
+ +

Definition at line 60 of file framebuffer.c.

+ +
+
+ +
+
+ + + + + + + +
struct frame_buffer new_frame_buffer ()
+
+ +

Definition at line 13 of file framebuffer.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.map new file mode 100644 index 0000000..21023bc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.md5 new file mode 100644 index 0000000..c1067e5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.md5 @@ -0,0 +1 @@ +b7e5f8d70b90a558a32d400840a30a1d \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..2e515a2f5ed9f689675e4693ce74c8289145ee00 GIT binary patch literal 27924 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 M`B0`<$~55r0Nou!UjP6A literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.map new file mode 100644 index 0000000..30af2cf --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.map @@ -0,0 +1,2 @@ + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.md5 new file mode 100644 index 0000000..cfd3668 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.md5 @@ -0,0 +1 @@ +8330de214dbac5cca23c342a9874a8d1 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..e2fbea47978dae2cec1565faa6a5bde4fe62b3e6 GIT binary patch literal 5631 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h_source.html b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h_source.html new file mode 100644 index 0000000..6a8d3ab --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/framebuffer_8h_source.html @@ -0,0 +1,113 @@ + + + + + + +PiAIZU: lib/framebuffer.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
framebuffer.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 #include <linux/fb.h>
3 #include <stdbool.h>
4 #include <stdint.h>
5 
6 struct frame_buffer {
8 
9  struct fb_fix_screeninfo fixed_info;
10  struct fb_var_screeninfo var_info;
11 
12  int padding;
14  int width;
15  int height;
16 
17  long int buffer_size;
18  char * buffer;
19 };
20 
22 
23 void framebuffer_update(void *mem);
24 
+ + +
void destroy_frame_buffer()
Definition: framebuffer.c:55
+
int file_descriptor
Definition: framebuffer.h:7
+
char * buffer
Definition: framebuffer.h:18
+
long int buffer_size
Definition: framebuffer.h:17
+
struct frame_buffer new_frame_buffer()
Definition: framebuffer.c:13
+ +
struct fb_fix_screeninfo fixed_info
Definition: framebuffer.h:9
+ +
void framebuffer_update(void *mem)
Definition: framebuffer.c:60
+
struct fb_var_screeninfo var_info
Definition: framebuffer.h:10
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/functions.html b/stage2/03-install-piaizu/files/fb/docs/html/functions.html new file mode 100644 index 0000000..3212ec1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/functions.html @@ -0,0 +1,411 @@ + + + + + + +PiAIZU: Data Fields + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+ + +

- x -

+ + +

- y -

+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/functions_vars.html b/stage2/03-install-piaizu/files/fb/docs/html/functions_vars.html new file mode 100644 index 0000000..0889cde --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/functions_vars.html @@ -0,0 +1,411 @@ + + + + + + +PiAIZU: Data Fields - Variables + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+ + +

- x -

+ + +

- y -

+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c.html new file mode 100644 index 0000000..fa9db0a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c.html @@ -0,0 +1,285 @@ + + + + + + +PiAIZU: lib/fwatch.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
fwatch.c File Reference
+
+
+
#include "fwatch.h"
+#include "log.h"
+#include <fcntl.h>
+#include <linux/input.h>
+#include <pthread.h>
+#include <signal.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/select.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+Include dependency graph for fwatch.c:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  fwatch_client_t
 
struct  fwatch_t
 
+ + + + + +

+Macros

#define max(a, b)
 
#define FWATCH_CLIENTS_MAX   5
 
+ + + + + + + +

+Functions

int fwatch_add (fwatch_cb_f cb, int fd, char *fname)
 
int fwatch_start ()
 
int fwatch_do (int us)
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define FWATCH_CLIENTS_MAX   5
+
+ +

Definition at line 25 of file fwatch.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define max( a,
 
)
+
+Value:
({ \
__typeof__(a) _a = (a); \
__typeof__(b) _b = (b); \
_a > _b ? _a : _b; \
})
+

Definition at line 18 of file fwatch.c.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int fwatch_add (fwatch_cb_f cb,
int fd,
char * fname 
)
+
+
Parameters
+ + + + +
cbcallback to be called when file is ready
fdfile descriptor, if zero, fname will be used to open file
fnamefilename of the file to select on
+
+
+
Returns
0 on success, -1 on error
 This function will call function cb when select notifies that
+ the file in fd has data to be read.
+ +

Definition at line 42 of file fwatch.c.

+ +
+
+ +
+
+ + + + + + + + +
int fwatch_do (int us)
+
+
Parameters
+ + +
usTimeout time for select in µS
+
+
+
Returns
0 on success, -1 on error.
+ +

Definition at line 83 of file fwatch.c.

+ +
+
+ +
+
+ + + + + + + +
int fwatch_start ()
+
+
Returns
0
 Will start the module. No more registration should be done after start has been called.
+ +

Definition at line 67 of file fwatch.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.map new file mode 100644 index 0000000..2dd18d7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.md5 new file mode 100644 index 0000000..c799f32 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.md5 @@ -0,0 +1 @@ +15a215206001bb38ab960c8c25d4d00b \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..a50177ec636da5e8a686c522ab41392ef4fb9258 GIT binary patch literal 39539 zcmbSzcRbep+xJN}*(;keLdf1qRRc0^@Qzi`q_kB6$@`a%E3HC8d|uH>ZlBvP?!&oyMGuJt+bSH!Yqu;0H=dSBg? z8xew^LDYD5QCpjUP`LkAh8S_;J=oIH$l&0JVt{&d>Xml%{CT<>8=5}@)_;4u&iq5{ z4k6mz|MC`N{n|nCzq}9sMsx)`_rHD2UBcV{^Mmf`e{%Qz`}Ivlgk63T;?s(fZqMlM zzkU05u3`4v{*!yazu#S(#*mE^r{e|dKM!M{VDvj+&z7>0i27xF3p6I}b^y6^=T-@cwsgbqoJp zo%VWGAt8#ii{H5kUYD_~stbc++kvAt9WS;UgVWA8too|CsUk6=r7n&uo<{$>I3bS$ z0w4bULSqur>4ZKPt3IEXPTk$zGpnk|@Pn_Ut6>p`nok}wQ{uH+R^FOA{LhZo3Ml-$ zN;8$Z&o8>@eIi!hzra@&-$gTgu_@poPKWRvwUM>7WI6Vd{Ja-eia@;g{B;x2tkd*I zi$>H13t?O{<+$B=v=A(H#)yz3oM~|99(*r>i}<;*(Y`8m`CR<>mwO(ElUBQ14cn;A z{!cMbQ9hllB>(+i?Ifym^q0Hz^A5rphX)HC;l~?RQsJuJd$GqSLq4B>+8Xq_{pU#& zga3VnA+pCiZ3Mfi+g_NZpZ~CP8Pxh3oh?uxe81+ZnvIt{M)=a7&0!*%L*Gx;JnIU= zr9dFg&(FJids{ogDNqoZnVCDDjT4`q^QEY;!bu?G=jWf>teNdh`23sM>+*Cqc*fqS zY#=HM-^I;sVN}Pc!@cSBv68Cl;#^CB`l;ui-%md6c2aw+Whd;6J$lw+Q^n;W@n91F zKi6UZKZm>=%V(Fu$M4M>V&r$gH9AJUIPQ`{MZoHW(~7xq{z-)2=SH$0?3|we+}!Ml zRh0}44aF9w!8iEiL6j`?3?pqwUQQ0f`>--?zVzZ(shXxHTAcwtB0T;ly@(T9+U41* zx}IKWK>_=x-y;vK?d_xLhbo68!#6hUrk}5-BFge&U2aY>{=0yt?>~BMBmO?+gRc1< z20|>(+JS8XxfwyBRlnJ$9dExo4lPe{w^!vD2SZV_(<;EyZ3W_y)B&kbIAVc zP-bZ<0R^{V`(UaV3gXF=CtucFJkAfs=bh@*)YTma&f$GFF0PfazP>(nLqj^(w2TZU z1Y%qCS+hp(dY;|BL z?psuZXKp@ycGF)iv8t$b*>u9r9xWg|yq->#F8(2=X1-=#K>;d)ElyD(Tf@cGHNCia z^Ii1(uE#{V8K%m6aqMi3(C^>%?ItVGB_t$}uYJ7f!WH2=wAxnl`QX;4v%Nm#M|w%p zdmlB--l`vfmuOw3uc@t#YOHuM1gGH&CcccscBJnAIP6R}cTNKmlbzcvo!i!aw=VCs z+Pk-H6SU4dI5XvREe1?ACjRWfvez!eZ863YOvd$VJ~LZg`LyG?iawD2`rSMKX@k!5 z?$ul-4vs5`*Qu#~zg<>X1-YZ6-@YZ?@es!f(nI*Bq~Iyscs}2ieVvalwED4l2T7&rZTo+(@`X)Tw9*jFuh@68WP{f!+W(n^@G6Y_@39M ztx>>?eHUC_66BQ^cKtUf?CSikA!f6R>>+`Ao z($doOm>bjl?uc<^9U~#<*4f``@6QlY)%uckE%%In67k~SefKI7NaB=s9omG|}@ z6WFG%8@x!JslM~N>P7;6`5qjR{=vbPHG>~t-~BCDokE}e>gq(M-Dh8V{8`K0?d2$S zu-F~XfbwftNAfH3anD$BgfNE}qxU*n2Hf&-zYnc1F>P*|YtqIQuGfP9pg9dtgdR%G7t2 z8zLgb*4D?{)1qlt@Dcw>^2LpL_?%q@ADaHA8X2WteRvtAFbocCnp-9_G_t+&UNR_pQ=H@FdmI$tR#-!M`kas61 zdW2XN45XIVg%SwLg$blh1X=AXj>5^Mu9fp~gsU>Giu$_x4#JL`I<}fRn!1f$D;KYs z6AbUD`{1ahuaC30U)i=GN}rUp*4?deB`poVT=;5GP#qiBVG#NYf|S7|;l_mn^fV*C z%fngkfnwaC$=8bLggBM2(}p;8w8P*#-(&0dS7Hg2VY=h(O)irmo|Tj15N*-nRP*A8 z-(dZ)S?XH(QMvwON~#gAT7s|BoV61r@}Dp|nfpR2*NE1Kx5lZ@8_ReS!pHwb1Y>l6 zi{=d;Zy!QSzUz0A2Ap}4X?dtP%{07z>IaKapQFqZ+>2U8bIU>grtPyo?nUyv>U!xvHwA3u2Yt zjt#-XKQ5F!qywWPA~bhApxT`~G@Mh?jm`Hb-A+`(*X10{>&nT=`B27#DJxsY#@X+u z@V4s~1^LPyPRp^rUbKl%bu>XiA~j2dRg=>@9+c`c_R)rxL2kiqR~u3tdqqiT@fe9W{-|=sY;4{0 zGJ^{Xs47blq;g5Pl_~*Fs0eX7sR%hS*1&hL1xbl!uOC~XJ&>bx70pbx*gc8(`tXJ+ z7reN7d zijxy>Onm1(2ExFZt(NH&3ei+D_EAn2*2tf~-p!dZYCNorNq%54!J*9a^X|(=8mdTi zGc(V;(Mt7L0o1!JOM6~+Gy3>-;`Fe7-MtIfSy``mdFy*fcelv$=4o1{NJ(L*4&uc2 zpfpM8dqhhJ2DWl4WVf;C1nlM*xTonF_o`6xna|ZT;yNo2TkEkBU`(9vtRv40SsVck}AV5$bwS#|06Ox7xT$ z7ghyDOK=ov>l{y1{`hvAQcrteN#4?TNHwT$Ie2_Mpl^9`I;V*Go4IMqmzXJKRaIFy zhwTgEgS70#%XgWGKIDZsl81Ff>@4pdr)wnL7O+@2bhqgZTzf+DR*{c_wgt!9!a|mf z+lp(WLX*AO=wdm+n1_;W(FOfKJOce%r+p29XzJCkUsK-%RO>KT(PX74^kJr=%&IgY{8t2P!gIC z%MM+pZf>0gpPrRZ*l`KdL?r%l;Mvki9zbuHp>?Hh7@VG^J)le;a2?phMN3NQizCwI zi%AeNx(j8*v6W-pH_~9JFEdo|pPKJWgQQ{O?dDE*N^6{%5YA77wQcjiOA~j05kBeblFB)%3F@25YH8NlQC=>ptbv zXQko9a@iX5zZy^41@1o}nI8~R&B(v+*C~gN=C5RKnd5AFSOs_spVVV=4<05 zAXs-eJJ$N?A~+b@zqrc~vy@(2i*R}_x#Yyy+b26wo=JrxD;XA!3lHAB$fzhIki7a~ zd`hHTE4R|b_|8>0_5m%`&6`O8cw$0`bg!|x8XljDuyTIFsombp$e`Kr=v%b5EI`=L zUh9>?E<-I0cJ8QHV0Ui76{L1f3&p-}CrII5J~e|oJ&V}Cs6;Ki!^52?hg+;?a#xV# zf(7F?b3R+ zQrq_NoMyP)7N1WFZtaNm;R$6ryT0(=394G5m57Op=Xbp95wtiPa>eXx7y%N$o-01U zRnylGdGkj4Z9I8KQG_1X&6}S#g+qaDzoNvcKU+i|0AmX6cg ztE_}MS#fI%@bH=GF|czTHnj@IgcXqkAGl-BbxA(EJlX+>*U~w-uvLd6&=@XKaRC6-6^6Mp{wDB|_hU(Rg# zy$(aS%#$ZXy}gv`Z;9l>)igAG-@IwH;JzGPEBd+qFul+g_3`6HwR{W)!id)n_5L#P zzt&x}@d(y=__Jh<(uiNaWRHkkBf>(9fi>$@ysfXV_+>;R?2qTQckf8q*n1m`SC39m z4c3|z1#qk0IhGWRMyQo)%gdvZk}iFy6{g2Qzdk`hLE#WJ`sNKP!20oX`{$Z0Y2+7>!QTeRBpY&ex=o3aWWi6MMWIO1YE}0 z0q)qsAYFDzBVT9sO4EUUJm-OUT6rASCr@q?hVC)Ihmhl{8Ke-zuo1u=#KCcT9UJQh zGE+hyMO--b&CYhg85F`r;m1Ek;}p<@UfOlVf2~Aa`}P)lanVyHL{U{WNIHf-?sji| z+2oXVSe*y~*JF)^)}Wivu|jbvasYQA7cYkez1l9nxz4#MNY0t=^k~~?MDX0(x9f_= zc=~;DN^`C!LVC&)!ond@QAfj5V*V>Drdc_1;aieMh{Z*W-v>8uix;)+l#x?#s{rgl zAhI-AK4+DvbcPlP2)sd`s-tDv*QV$j&?>a5!_W+`(_YPFM9V99!#OGP%f+*<7B}`u zRQQN7ukWTopzrX{kUzz!lreFU7{-MZ6S{ciiJ=6>W@uyj7uIZ~{-eLbh#%e}AKU!3 z^e#m9N0()?k)a*ibwYEeNTSuC(dRL7jS^B))KE3p*o>*TG)QFsR(4ayd8iqIt>#V+ z8P*#Xp5M`;y9kU8n`8R+)iqiz=aw^T6CH_r%%w@mSK3cT345gBdl^0pQ0y@0;x)~? zMim)HB7Z%Z-NHO8C|atsya(quzz_vxixd@L%^3Gw$F)Lwj?-}6#Ry!2@e!;;u{30ae2qwqID^Y@s|&Ob&Qq^r!O??AfZhM^P?7P^TRfCr)Kka0fx_ldfJz& zY^t<(ci>r*Jm4I@(jX_;A0A<(+kf8s zgNq!ud-<=%XiJI&le$`7pAk7ZN{NX)#-^>^0>LIh>VjWy3kWc8n3_HC&g}EC;GHkP z7M9st+&!){Q_AOe9#q$+8MR)i#CxdWK^TtCcJt<3yLu8QP_s3K2M=Ul#8%wk*wM<>Zubo#M!|)jF$<>-zPpPA3bgYtK3#*Q5y3(Ba`1 z49^T;Wm9k|wU|3G+`5IXtlTjHJy}t+K@X(F`UcjWA1^2zjvcrytx~O@7B|PL+IN^m zKdoo>E6KG&HM-d2ZeHBo$)taY|ET)y>~BHDo%CbTA0CU&9vkJ#Lgy3ZwABNH*Ftlkdy#+6cq~|o)n3Q zWtHa<6AK2mDfo;_{>2O0!;SnlTKBgGHD_M8-Punkugu9fb*8h!!MbTy;BX!y4$wa{cUlywrejiAU}<0g6gBcEv-SFUajLr!T1C;#A?nx9_wEL04F zt@m#9K1yiH7b1Rq-T7Gpd##){%Cv%m@?i)D^1A5~Aa%X=3KEW}it*T3xxCT+NQoP7 z#NQ@_t7&VKlFQ%<$GC`Kylel{vQ1!WX&G;;l%+Z7q@tMp<_Uk>o3yk63mSIPlkTA* z)U>py-!5{bu65!mxDjO6@i4^3PiSl1>b#czIMKIl*rufLn>vjI=HI+tBQEiDLGjPm z5e+p11K$x1ZBh#-xugg4Ppy==Fdsf-adC~zEL9EK+QP=e%Ok{lC7fPVTueMwt!28{ z$-8q>vz16qHL?&u;JG^}wt8FSiOl0vycb9I?O#=EGBTuH9!%i{NguDNitQfxTuN?z zZa|qm{gJD#=CD54Jw>E~B6obUA~f4k>g|dTVj~^U_C=xoqDTvCh482-y0g6mE0c2J z@)z#6VBb1^G$wRx8-e9q7% zl}2(Qr(zW)O5+;&25mD|_KEHAcT_jWCpO(ol8rh9>%$^Zl9ECP{Vk4e@4Zk0qV}#` zR^_6su5bMse7Q-z71MIzwyRy_C6zVh>*Zx4>vjeRYFahj#DLaT8i3FlAAI$=*^I~b z_t(ymjzP$1AW}ZI552>Hl|2$MtS-^nbu}@C-`LB`(eY!22F>RXHFZX5tvE_DGNz@a z8}eNyOt)*V$!7y6HyC{TX?4Z&RiD;9lk&DCHGk_HbkS0Zgpmf?`TZ$<_dyns4ZfEED^=4oCy%`Xn z@$J5AhJnys36)i-@oMRK^yS$Qii^wdxoDqH{u_3ZbT8~kB=?gZ*DglAVSdI+h_$e1 zAy8k>g4`IX^Cw8T(A1I6Z6mMqy@V@V_`RIzwwSGNpC!p&1y@nhq}<1H|5at&RH;kE zx7T3nG(s5{O2bhkCwHajEy;0J*#ZeedyE8g^U)_lNo<+9DfIvBeHa@)2p8MB3yH?F;Rvu?sdNl5zRBPlT zKx_de4J|DV#}~6S!O{0tJa(;aolRD3L6O~o!5|&MzG!f86)u`__DDZ=-FP3>;~o~J z8X(W@KlA8bzEp&*F_#He3vrCCuF`U}I7${u;GQ~tS|#eZF=2sR)ukRlWqKZSek>ca zO;_E2=rwR=mqBkk-b?U7N#phv`fJ1h*`1o*09^`KdZR%SFeS@pw;;KBiF?oAp(;k4^#OG8Zjj5@1 zHEp;3E?3^#ho$I`yoc&FuLo&qH=Bo^Ng6jbO>FzeT@)Xj2Jj?pd|9(I2;hk9M9myV zX?$NdU|e=Dx6)}9os&tOE1`)hX|aDv2!PkBQwB%5Ftm5_zG;79l(G9XFOmVbdUNYB zIX}97{R)#AI@7b*zMyp``UIqq6pxDB9fYxg2?+^?l5$cj(@j1?3(OC9T!fYYl=k+8 zfBBZB5He!KBmzxdjeUTUUMLWK$&5U#U-_^T`odFaBmw^# zOrDoK7U;W>n0Gt<0?h%Il1Act^jlK8?^EmL&x|-EcSFVEmES(z8adOAe<+NexV_hO zl5Dit9U}?ybl+mw=K8~hxfVW;?M7U9+}d@nm6zVf^YM?Igig=zLMN=NxF{)c^bq$} zF_^8)#dn{bap=QeGIz=4!dS!8!N?8fFWyM8u+E zUVcnQj-3B@ePr{S7LA)GdJyF5cU#X#E+Xoe!$AQ#AD<-}YX6XmrzaIJuLcng3SBgJ zFC$fQF@;!&CHlxzPt&KzOh#r|Y@(7Ss})zietnp(w#5C5vbZqz)=ep1b>k*6O4c=D zRt1zh&!4ML-0#K8rWSl#6oN&Dh35F@Hyb|fug>AjbB8*wiK@a^B)jpC>F$3HXsgyEl5-qZNWFg0gJ+qXLpZQe1poyhJ@Q?4EVi7@J9)Ye9wmxq^v+hUVkMs`@|vS)g_dTN8xm|D}81 zjT4)qNOdbgyGU4dCNbL|-zTx;O(FzC?X-@W-7d4JgUVDEXLjRhxw=sEnIj9SrL4g9 zaPf=4R=e)yRxOf!*dnY2HzWujh7U5v+FCwr&xdk#KcFJN zewpVL$7Ou{$TM#sBx9QKRnKv`7w^yMDCoJSE}GFv*KqqSF@+Kp@6R)m;xO(dum}mo z_Ax}#e5?#82*YudmgZB`{7)7@Sm%?W6bnnle2O{=3+vT+Tb3^O@=xk3`t8e6z2>c1 zn~6oE`T*)`6}Sx&rG1)k;Azm&MJ6h;@g7xc8n2Hz+5Is1ybwbJb&p2$Tfot56Bbb6 z_;`(tsqwHb`dK`PlvlaKv^lm~iLlUeY3UB--DPQ{YpUxBYRi=~G5|Z}KFSb*= zo_T-03LO17zWhGy*(x_de@=%qTS{-+=n8m zh6arV*x~uVcDA!I+#0BF-b5m)GLw6^;i6Ax*B&2Mdgxq%vXT8JR8&3Rvd*^ZU7a!r zSVv@76>1u-{MP2wJ+gvv;kksMeKd<|n~h(0F7c!8s#LgvN=iX-BdAg;#zZPvp~dxf zx>jM8oW&p1;a!w)fg9lw_#ZwQz}_*vMd+DN{JJ=hm4&@&>G)6W*ndU<(=k&PnMMA*V>v=hR_duh4I|L zNhTp|mOfBlf_izvbl*#>;Dp7hCsD|guPmzR{rmgBe=B7)yg;=%;M92dP|b+Dt@>#k zYzz%R=gfNj3ieZe{;Up6`riww?t{+PlK(GQ`)E4UFp_;zUXMoidOS9CAKFBT4U3dk(6Bl!D0QHzeH-snHyV-|FS}OIv&4W&*~NYxm~o*Z z^P;u@N3l zVKV%w)aT3;7?}sfl~F+8qU#1o3gvM9uTE3)Q{XeEuLZ ztptoUOyFDda64Sw@Xd_x1R3*?GG|rSjNdvfx2GmveKD{ zD(Orsa~NEU!R7K_2X2&+hdZ-0Al!s|+If1in)IuCJ& z02xWC)V>y5d#=tL;fu*)OB|LPE0oAm7lEm^Rr0(CKVMaHW5LY z2H*8A?2ZSabUdOGYaVWIhRitpSZIozJDwu|b>F4ITe zgI5l{PAmPCkV!FO5KE4xzdRlSETUV!N<}r2k(r6vba5b(IN%J#pZxT&YGGJji0f1a zO^k@}X4amEIKL2ubJyWx_tDZ2T^cO3bd3R14_)ffh_I)qtfZFmSozF(r3vZjcR#a; z#&eIMMW3f$qZ@18JVY_3lImG*m7Vz$N<2Uu4i3%ahAu;1XURHP6t99F5b2V*zPX)b zBFUYz7T01N3_Yi(-2iORe#;z_B*SNqcy6b>e~$wYm^TT*M07nzF*~A}Jr0MFoUi8o z4gbJFaTb7G+W4RnF!`0~ru^J`-+Zzk`*TxkVT73(WOU?lc*L>TJ{(E?V0gMnm*fh! z>6%BQH*Aq?NV;GNc6XK24=1N%$h+K8#37JOqZdq0=6Lv4VNXq`i~n9ebfM4hd+L;z zUR?zS5F6W>=lAE!Yw~;ds0Pp51u31m;2*|QZxuifxXjz3-? zv2{fo$;!(UKp;ZW+{$XMyi3q*_VXB-Gf}bFd7qoB8>atbqm#hyZ) zEYI|mt$bdr&8o8?Wwccq*tNJ?a8H-9szl}0tw+6!hnKY)oGe8ZeSj8{iyrkC_u@o` z{*W13-jfrkF-_L*5NrrbDKZZdh03cH89a$?G08HMYHRgY0`uEpkM%Ve>H} z#T&B`a$Ww`!DnY1=>8rbja7E>;ZE3IMea&eL^L&Us1^a^YuAQR5Cw%DU_y#>zKzeQ zt4mb*FfI(&l#h?xnqM2dHW1mIYllCCXR3d1~hOg z8-GNtJ(1HzN91ez0!!rQ?-udR7zuVkZ&JArN9oBm<8#x*Kq;;sq z;(m;FxHL4m+{cDo3ph-!b+gsQ#L0qj9j+D3!1aEwsY7dz%#=T!cRDGv)wznK=xqcw z?aLk!@=v@u3vZ>M_FL^XZqv5emeRI8RDIe}Sh{6I#u}$$)i&SOc)ZL#w9rd-6@be` zQxn;cWCJbJaBt`<06JEK5gCQyCykriI*bBw!8tjmB}Gle#Wo!rf}m;vtp=eRE>rNl z$t^C!6#wC$2*j38e9~_dgMzB65rLDJ)!Jr=lAyNv`9RI$_(n?^vEnftU@paDRLg

Y*`y_5`RC7DBu4f=ox)8C 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 IYv-TzH%!k@p#T5? literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c_source.html b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c_source.html new file mode 100644 index 0000000..b73f33b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8c_source.html @@ -0,0 +1,117 @@ + + + + + + +PiAIZU: lib/fwatch.c Source File + + + + + + + + + + +

+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
fwatch.c
+
+
+Go to the documentation of this file.
1 #include "fwatch.h"
2 #include "log.h"
3 
4 #include <fcntl.h>
5 #include <linux/input.h>
6 #include <pthread.h>
7 #include <signal.h>
8 #include <stdbool.h>
9 #include <stdint.h>
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <string.h>
13 #include <sys/select.h>
14 #include <sys/time.h>
15 #include <sys/types.h>
16 #include <unistd.h>
17 
18 #define max(a, b) \
19  ({ \
20  __typeof__(a) _a = (a); \
21  __typeof__(b) _b = (b); \
22  _a > _b ? _a : _b; \
23  })
24 
25 #define FWATCH_CLIENTS_MAX 5
26 
27 typedef struct {
29  int fd;
31 
32 typedef struct {
33  unsigned int n_registered;
34  fd_set rfds;
35  struct timeval timeout;
36  int maxfd;
38 } fwatch_t;
39 
40 static fwatch_t fwatch;
41 
42 int fwatch_add(fwatch_cb_f cb, int fd, char *fname) {
43 
44  if (!cb) {
45  return -1;
46  }
47  if (fwatch.n_registered >= FWATCH_CLIENTS_MAX) {
48  return -1;
49  }
50  if (fd == -1) {
51  fd = open(fname, O_RDONLY);
52  if (fd == -1) {
53  LOG("Registered %s fd:%d callback %p\n", fname, fd, cb);
54  return -1;
55  }
56  }
57 
58  LOG("Registered %s fd:%d callback %p\n", fname, fd, cb);
59  fwatch.clients[fwatch.n_registered].cb = cb;
60  fwatch.clients[fwatch.n_registered].fd = fd;
61 
62  fwatch.n_registered++;
63 
64  return 0;
65 }
66 
67 int fwatch_start() {
68 
69  unsigned int i;
70  int maxfd = 0;
71 
72  FD_ZERO(&fwatch.rfds);
73 
74  for (i = 0; i < fwatch.n_registered; i++) {
75  int fd = fwatch.clients[i].fd;
76  maxfd = max(maxfd, fd);
77  FD_SET(fd, &fwatch.rfds);
78  }
79  fwatch.maxfd = maxfd;
80  return 0;
81 }
82 
83 int fwatch_do(int us) {
84 
85  int retval;
86  struct timeval timeout;
87  unsigned int i;
88 
89  timeout.tv_sec = us / 1000000;
90  timeout.tv_usec = us % 1000000;
91 
92  for (i = 0; i < fwatch.n_registered; i++) {
93  int fd = fwatch.clients[i].fd;
94  FD_SET(fd, &fwatch.rfds);
95  }
96 
97  retval = select(fwatch.maxfd + 1, &fwatch.rfds, NULL, NULL, &timeout);
98 
99  if (retval == -1) {
100  LOG("Error occured while waiting for select %m\n");
101  return -1;
102  }
103 
104  if (retval == 0) {
105  return 0;
106  }
107 
108  if (retval > 0) {
109 
110  for (i = 0; i < fwatch.n_registered; i++) {
111 
112  int fd = fwatch.clients[i].fd;
113 
114  if (FD_ISSET(fd, &fwatch.rfds)) {
115 
116  if (fwatch.clients[i].cb) {
117  fwatch.clients[i].cb(fd);
118  }
119  }
120  }
121  }
122  return 0;
123 }
+
#define LOG(str,...)
Definition: log.h:7
+ +
fwatch_client_t clients[FWATCH_CLIENTS_MAX]
Definition: fwatch.c:37
+ +
fd_set rfds
Definition: fwatch.c:34
+
int fwatch_add(fwatch_cb_f cb, int fd, char *fname)
Definition: fwatch.c:42
+
#define max(a, b)
Definition: fwatch.c:18
+
int maxfd
Definition: fwatch.c:36
+
fwatch_cb_f cb
Definition: fwatch.c:28
+
void(* fwatch_cb_f)(int fd)
Definition: fwatch.h:3
+
#define FWATCH_CLIENTS_MAX
Definition: fwatch.c:25
+
int fwatch_do(int us)
Definition: fwatch.c:83
+ +
unsigned int n_registered
Definition: fwatch.c:33
+ +
int fwatch_start()
Definition: fwatch.c:67
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h.html new file mode 100644 index 0000000..a41e74d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h.html @@ -0,0 +1,234 @@ + + + + + + +PiAIZU: lib/fwatch.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
fwatch.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Typedefs

typedef void(* fwatch_cb_f) (int fd)
 
+ + + + + + + +

+Functions

int fwatch_do (int us)
 
int fwatch_start ()
 
int fwatch_add (fwatch_cb_f cb, int fd, char *fname)
 
+

Typedef Documentation

+ +
+
+ + + + +
typedef void(* fwatch_cb_f) (int fd)
+
+ +

Definition at line 3 of file fwatch.h.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int fwatch_add (fwatch_cb_f cb,
int fd,
char * fname 
)
+
+
Parameters
+ + + + +
cbcallback to be called when file is ready
fdfile descriptor, if zero, fname will be used to open file
fnamefilename of the file to select on
+
+
+
Returns
0 on success, -1 on error
 This function will call function cb when select notifies that
+ the file in fd has data to be read.
+ +

Definition at line 42 of file fwatch.c.

+ +
+
+ +
+
+ + + + + + + + +
int fwatch_do (int us)
+
+
Parameters
+ + +
usTimeout time for select in µS
+
+
+
Returns
0 on success, -1 on error.
+ +

Definition at line 83 of file fwatch.c.

+ +
+
+ +
+
+ + + + + + + +
int fwatch_start ()
+
+
Returns
0
 Will start the module. No more registration should be done after start has been called.
+ +

Definition at line 67 of file fwatch.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.map new file mode 100644 index 0000000..69f4be3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.md5 new file mode 100644 index 0000000..98234f8 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.md5 @@ -0,0 +1 @@ +077f080395e100a31922f25c699158a4 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..db36428ccab5742c2f6c22837f722bb964100f4d GIT binary patch literal 7803 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 Z-^-}a-1|^ist=xlD9WnJR7kxJ{C|xOQW*dM literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h_source.html b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h_source.html new file mode 100644 index 0000000..2ffa105 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/fwatch_8h_source.html @@ -0,0 +1,104 @@ + + + + + + +PiAIZU: lib/fwatch.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
fwatch.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 typedef void (*fwatch_cb_f)(int fd);
4 
5 /**
6  * @param us Timeout time for select in µS
7  *
8  * @returns 0 on success, -1 on error.
9  */
10 int fwatch_do(int us);
11 
12 /**
13  *
14  * @returns 0
15  *
16  * Will start the module. No more registration should be done after start has been called.
17  */
18 int fwatch_start();
19 
20 /**
21  * @param cb callback to be called when file is ready
22  * @param fd file descriptor, if zero, fname will be used to open file
23  * @param fname filename of the file to select on
24  *
25  * @returns 0 on success, -1 on error
26  *
27  * This function will call function cb when select notifies that
28  * the file in fd has data to be read.
29  */
30 int fwatch_add(fwatch_cb_f cb, int fd, char *fname);
int fwatch_start()
Definition: fwatch.c:67
+
int fwatch_add(fwatch_cb_f cb, int fd, char *fname)
Definition: fwatch.c:42
+
void(* fwatch_cb_f)(int fd)
Definition: fwatch.h:3
+
int fwatch_do(int us)
Definition: fwatch.c:83
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/globals.html b/stage2/03-install-piaizu/files/fb/docs/html/globals.html new file mode 100644 index 0000000..0f67128 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/globals.html @@ -0,0 +1,579 @@ + + + + + + +PiAIZU: Globals + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- _ -

    +
  • __FILENAME__ +: log.h +
  • +
+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

    +
  • EVENT_FILE +: keys.c +
  • +
  • event_key_handle_e +: main.c +
  • +
  • EVENT_LEFT_PRESS_LONG +: main.c +
  • +
  • EVENT_LEFT_PRESS_SHORT +: main.c +
  • +
  • EVENT_N +: main.c +
  • +
  • EVENT_RIGHT_PRESS_LONG +: main.c +
  • +
  • EVENT_RIGHT_PRESS_SHORT +: main.c +
  • +
  • EVENT_TEXT_SIZE +: main.c +
  • +
+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/globals_defs.html b/stage2/03-install-piaizu/files/fb/docs/html/globals_defs.html new file mode 100644 index 0000000..d96fb01 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/globals_defs.html @@ -0,0 +1,318 @@ + + + + + + +PiAIZU: Globals + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- _ -

    +
  • __FILENAME__ +: log.h +
  • +
+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- l -

+ + +

- m -

+ + +

- n -

    +
  • N_BUTTONS +: keys.c +
  • +
  • N_KEY_PRESS_CALLBACKS +: keys.c +
  • +
+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- w -

+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/globals_enum.html b/stage2/03-install-piaizu/files/fb/docs/html/globals_enum.html new file mode 100644 index 0000000..f1a1052 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/globals_enum.html @@ -0,0 +1,119 @@ + + + + + + +PiAIZU: Globals + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/globals_eval.html b/stage2/03-install-piaizu/files/fb/docs/html/globals_eval.html new file mode 100644 index 0000000..2b8c450 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/globals_eval.html @@ -0,0 +1,158 @@ + + + + + + +PiAIZU: Globals + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/globals_func.html b/stage2/03-install-piaizu/files/fb/docs/html/globals_func.html new file mode 100644 index 0000000..c984946 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/globals_func.html @@ -0,0 +1,347 @@ + + + + + + +PiAIZU: Globals + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

    +
  • animate_sony_logi() +: main.c +
  • +
  • animate_wifi_ap() +: main.c +
  • +
+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- m -

+ + +

- n -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/globals_type.html b/stage2/03-install-piaizu/files/fb/docs/html/globals_type.html new file mode 100644 index 0000000..40a002d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/globals_type.html @@ -0,0 +1,113 @@ + + + + + + +PiAIZU: Globals + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.html b/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.html new file mode 100644 index 0000000..7f09930 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.html @@ -0,0 +1,119 @@ + + + + + + +PiAIZU: Graph Legend + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

1 /*! Invisible class because of truncation */
2 class Invisible { };
3 
4 /*! Truncated class, inheritance relation is hidden */
5 class Truncated : public Invisible { };
6 
7 /* Class not documented with doxygen comments */
8 class Undocumented { };
9 
10 /*! Class that is inherited using public inheritance */
11 class PublicBase : public Truncated { };
12 
13 /*! A template class */
14 template<class T> class Templ { };
15 
16 /*! Class that is inherited using protected inheritance */
17 class ProtectedBase { };
18 
19 /*! Class that is inherited using private inheritance */
20 class PrivateBase { };
21 
22 /*! Class that is used by the Inherited class */
23 class Used { };
24 
25 /*! Super class that inherits a number of other classes */
26 class Inherited : public PublicBase,
27  protected ProtectedBase,
28  private PrivateBase,
29  public Undocumented,
30  public Templ<int>
31 {
32  private:
33  Used *m_usedClass;
34 };

This will result in the following graph:

+
+ +
+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • +
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.md5 b/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.md5 new file mode 100644 index 0000000..a06ed05 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.md5 @@ -0,0 +1 @@ +387ff8eb65306fa251338d3c9bd7bfff \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.png b/stage2/03-install-piaizu/files/fb/docs/html/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..37f264eaab188569820fd1b8761b533912cb628f GIT binary patch literal 18535 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

fNjgbJgY_y35mAe_0T`p?8$!+tNGVZ zBPszmSZAlkYGNg%W1!=T3#!>KYv$H>P~qfXFfIMCO_uC>i2e-?pLDj@u+(s@ zGaMhM{GGXQwbf+(O>g4od>}RP#3gE=YHHF;M!gd+GnlZ(H^jlg0lma(iwdqLxIkQS zJSz_XimnuUZ#ArH(ArmW;+ty%ogYChEd-L0yJ!v$AFlp*`#+QNDQ>}K_p^t*gP3s( z5t_!KqBB!?NKm7NeU`V*lK*y3$D$CT@+W&{3)b3wdp4;kuR{b*f)jK?UG(IGG&*5(`e<06>ZXJEaSygc+U1lWY}wLKZz# z2xtcE-&!PM>(zmSS%};l$tcp`@o^<4t#Szd3x%Ncbi-h93ZX6f)%$HDz_8BMIizp9 z=ct5(cTZpgl-31aAQ4&Cc29~PEP9%E4c_YjYn=t1oIh@%KH$_M#BbKXvt-mY3>Ca? zA({UJi-8A}mPw}?m7Se^q+9~52^3~6?96~+=+HFu4wi@@T=#vrF$^wB2UHDG@Jiyf8zyBsN18d5unR+*F%-9H(3KzcEqMSobJEPv~+Y#Zm&)t zkOsX{_Yp7$aO9m>$cq>9gq0Ns; zt|EF}{^%AyQyN`Y|MfvnXDlC;$WkYc5h?zpRwN!RxOSxF)zvrg_71*xEjo#`GU$l#Qb(Fa3BUi`{%BI7b9Rdsr?woqQ%_yC z|4_}yC{v+zQ2Z6L#?#3F(Hq}+;xU?RuI=INJ-xY^m7UICnzlpH>r3SIkgHHMJz>ku zkDh<}=l1UxqTwKZW0mv8e5uhZtE)9yOjB<;qenB-D(7wQwO%9*6)fA^aFPz33Pkmp zx-=~x>0m?j9`hGL)~ZwrXl7m1i>9lW?Gt2ke)5j~__b%b?x=O*rWY*wI8Nj%``Adq&gAa(GAIHDZ(QXf-X4e+566PPIk5-FjD1cCTfpu%49!$xRK z0DkmtATvT@odH>~?wG&sxch;z*Tci(cM}psGmNYlA~Io8F>dzqqzNmF77uN{_V5E4 pq;!bv?^km-8etw%{4exeN_zkR literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/index.html b/stage2/03-install-piaizu/files/fb/docs/html/index.html new file mode 100644 index 0000000..dad4a7a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/index.html @@ -0,0 +1,167 @@ + + + + + + +PiAIZU: PiAIZU webserver + + + + + + + + + + +

+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
PiAIZU webserver
+
+
+

LMX interactive page

+
Build date:
Git describe:

+Introduction

+

You have now successfully connected to the Raspberry PIs webserver. This documentation has been compiled with Doxygen and will describe how to use this Raspberry PI to control the Sony LMX-001 display. This setup is called the PiAIZU.

+

When this PiAIZU is powered up it boots Linux (Raspbian lite) and an sample application is started. This app will display an animation in the LMX-001 and some basic information. The PiAIZU will also act as a WiFi access point and since you can read this document you have probably already successfully connected to it.

+

This setup has all the nescessary tools and compilers pre-installed to be able to both edit and recompile this sample application.

+

A few useful tools that has been added:

    +
  • GCC
  • +
  • Python
  • +
  • sshfs
  • +
  • gdb
  • +
  • gdb-server
  • +
+

+How to access the Raspberry

+

The Raspberry Pi has a SSH server running and it has been configured with a static IP address that is 192.168.1.1 To connect to the Raspberry Pi via ssh:

+

In Linux

+

Open a terminal and type:

+
ssh pi@192.168.1.1

In Windows

+

Download and install Putty and setup a SSH connection.

+

Password is: raspberry

+

+About the sample application

+

The sample application and library provided with source code and resides in:

/home/pi/lmx_example
+

It basically starts with memory mapping the framebuffer:

/dev/fb0
+

and then a software layer is put over that to enable the user to specifiy layers or containers that the user then can put various kind of information in. This could be text, shapes like lines or dots, or fill the container with a bitmap image. Each container has x,y coordinate together with height and width. Each container can be set to be visible or hidden runtime.

+

To start working the framebuffer needs to be mapped to memory, memory has to be allocated for the containers and some initialisation has do be done, this is done by calling the function:

+

In the first version the containers are statically defined before compile time. This is done in the file: define_containers.h Every time a containers contents has been updated the whole container system needs to be compiled before the actual change is displayed on the screen. This is done by calling the funcion:

To close the system the funcion

must be called to free all the allocated memory and to unmap the framebuffer. Similar approach has been used in the text/font system regarding init and close.

+

There are various function to add or manipulate the contents of the containers. The handle for each container is basically an integer that is an index that points out which container it is in the array or container_t in define_containers.h.

+

Functions to decode .bmp files has been implemented and tested on both 24 bit and 32 bit bmp files. The difference is basically that in the 32 bit case you have RGBA and in 24 bit it's only RGB information stored The 'A' in RGBA is not being used at the moment.

+

A simple font has been added that supports uppercase and lower case letters together with numbers and only a few special characters.

+

+Buttons

+

The shield connected to the Raspberry has two small button, a lib has been written to be able to register events from these buttons. Try to click the buttons while running the sample application to see, for events has been registered that will be trigged depending on how long each key press is and on what button.

+

+Webinterface

+

The sample application has an interface to be able to receive commands from the web. To evaluate this functionality enter LMX interactive page. From here it is possible to send text and show a cross-hair cursor directly on the LMX-001 display.

+

This functionality works like this:

+

The web server (lighttpd) shows the LMX interactive page. When a button is clicked, a cgi script is called. The source code of this script is available in the sample applicationlication folder under /hopme/pi/lmx_example/cgi-src. This cgi script will via a UNIX socket in /tmp/lmx.socket connect to the LMX sample application. The sample application can also reply with data.

+

+Compilation

+

The application consist of a library and two sample applicationlications. One written in C and one written in Python, they are called main.c and main.py. Both the main.c and main.py use the provided library. The whole buildsystem can be configured by changing the settings in settings.mk. For development it can be convenient to to set the flag

LDEXTRA=-Wl,-rpath,./lib/

to tell the linker to use the locally built liblmx.so instead of the pre-installed one. This is done in settings.mk.

+

The Makefile contains a few targets:

    +
  • all Will build the sample application
  • +
  • clean Will remove all build files, binaries, object files. Compiled documentation is not affected
  • +
  • format Runs clang-format on all source, this requires clang-format to be installed which it isn't on the Raspberry
  • +
  • install Installs the lmx binary into /usr/bin and activates startup scripts in init.d
  • +
  • dbg Compiles the all with extra prints for debugging, forces a frame to be printed around all containers
  • +
  • doc Will run Doxygen to recompile this documentation, requires Doxygen to be installed
  • +
  • analyze Runs scan-build to perform a static code analysis

    +

    It is possible to run this program on a Linux computer too. Then the sample applicationlication will use the PC:s framebuffer. On Ubuntu you will have to press Ctrl+Alt+F1 to get into a console. From there you can start the sample application and you will see the same output as if the program was used on the PiAIZU. Example app must first be recompiled for the x86 architecture for that to work, that is a matter of rebuilding it but doing that on the host computer.

    +
  • +
+

To simply rebuild the sample application, type:

make

to install your changes on the Raspberry Pi rootfs:

sudo make install

There are a few buildflags that can be added to get special functions:

+

The following buildflag will mask out red and blue color, this is usefull when testing the software on a PC to get a picture more similar to the one in LMX-001.

SETTING+=-DGREEN_MONOCHROME

To convert a RGB BMP to green scale two methods are implemented, Average and Luminosity. To activate try one of the following:

SETTING+=-DGRAYSCALE_LUMINOSITY
SETTING+=-DGRAYSCALE_AVERAGE

+Rebuilding Raspbian

+

To update or add new packages to the Raspbian rootfs you either have to provide Internet to the Raspberry Pi or recompile the whole Raspbian.

+

The modified Raspbian buildsystem is provided on the PiAIZU SD card image, it resides under:

/home/pi/piaizu_"v2.0.0"

the postfix is the git describe –tags output. In this directory you will find more information on how to rebuild the SD card image.

+

Second option is to provide a Internet connection If you have two network connections on your PC you could most probably share your one Internet connection with while your WLAN is connected to the Raspberry Pi AP PiAIZU. To do that successfully you need to enable ip forwarding and setup your iptables for NAT. The Internet is full information on how to do this.

+

+Change log

+
Version
v2.1.0
    +
  • Minor changes to the container api
  • +
  • Added python sample application
  • +
  • Created a lib, (liblmx.so) of almost all sample application, leaving only main.c outside
  • +
+
+
+v2.0.0
    +
  • New webinterface
  • +
+
+
+v1.0.0
    +
  • First release
  • +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/jquery.js b/stage2/03-install-piaizu/files/fb/docs/html/jquery.js new file mode 100644 index 0000000..d52a1c7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/jquery.js @@ -0,0 +1,68 @@ +/* + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/* + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/* + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/* + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/* + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + + + +
+ +
+
keys.c File Reference
+
+
+
#include "keys.h"
+#include "fwatch.h"
+#include "log.h"
+#include <fcntl.h>
+#include <linux/input.h>
+#include <pthread.h>
+#include <signal.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/select.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+Include dependency graph for keys.c:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+
+ + + + + +

+Data Structures

struct  key_action_t
 
struct  key_press_event_t
 
+ + + + + + + + + +

+Macros

#define N_KEY_PRESS_CALLBACKS   10
 
#define N_BUTTONS   2
 
#define WAIT_TIMEOUT_S   30
 
#define EVENT_FILE   "/dev/input/event0"
 
+ + + + + + + + + + + +

+Functions

int key_time_down (key_action_t *key)
 
int keys_register_cb (key_press_f cb, key_e key, double time, int handle)
 
void keys_file_watch_callback (int fd)
 
void keys_sort_registered_callbacks ()
 
int keys_start ()
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define EVENT_FILE   "/dev/input/event0"
+
+ +

Definition at line 21 of file keys.c.

+ +
+
+ +
+
+ + + + +
#define N_BUTTONS   2
+
+ +

Definition at line 19 of file keys.c.

+ +
+
+ +
+
+ + + + +
#define N_KEY_PRESS_CALLBACKS   10
+
+ +

Definition at line 18 of file keys.c.

+ +
+
+ +
+
+ + + + +
#define WAIT_TIMEOUT_S   30
+
+ +

Definition at line 20 of file keys.c.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
int key_time_down (key_action_tkey)
+
+ +

Definition at line 44 of file keys.c.

+ +
+
+ +
+
+ + + + + + + + +
void keys_file_watch_callback (int fd)
+
+ +

Definition at line 103 of file keys.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int keys_register_cb (key_press_f cb,
key_e key,
double time,
int handle 
)
+
+
Parameters
+ + + + + +
cbCallback function pointer
keyKey to register, aka "button"
timeTime the key has to be held low before an event is triggered
handlepassed as parameter into the callback function
 This function must be called before start. After start has been called
+ no new events can be registered.
+
+
+ +

Definition at line 81 of file keys.c.

+ +
+
+ +
+
+ + + + + + + +
void keys_sort_registered_callbacks ()
+
+ +

Definition at line 156 of file keys.c.

+ +
+
+ +
+
+ + + + + + + +
int keys_start ()
+
+

Call this function to start the thread watching the low level events.

+ +

Definition at line 171 of file keys.c.

+ +
+
+ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.map new file mode 100644 index 0000000..a186aa9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.md5 new file mode 100644 index 0000000..004dc6d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.md5 @@ -0,0 +1 @@ +3a33af055a95741b67f7996812acf9bc \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/keys_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..f56e797079fc447483b25832b8f40ba210a7cf35 GIT binary patch literal 42852 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 + + + + + +PiAIZU: lib/keys.c Source File + + + + + + + + + + +

+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
keys.c
+
+
+Go to the documentation of this file.
1 #include "keys.h"
2 #include "fwatch.h"
3 #include "log.h"
4 #include <fcntl.h>
5 #include <linux/input.h>
6 #include <pthread.h>
7 #include <signal.h>
8 #include <stdbool.h>
9 #include <stdint.h>
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <string.h>
13 #include <sys/select.h>
14 #include <sys/time.h>
15 #include <sys/types.h>
16 #include <unistd.h>
17 
18 #define N_KEY_PRESS_CALLBACKS 10
19 #define N_BUTTONS 2
20 #define WAIT_TIMEOUT_S 30
21 #define EVENT_FILE "/dev/input/event0"
22 
23 /* internal typedefs */
24 typedef struct {
26  struct timeval time_pressed;
27  struct timeval time_released;
28  double time_hold;
29 } key_action_t;
30 
31 typedef struct {
34  double time;
35  int handle;
37 
38 static bool already_started = false;
39 
40 static key_press_event_t client_callbacks[N_KEY_PRESS_CALLBACKS] = {{0}};
41 
42 static unsigned int key_press_callback_index = 0;
43 
45 
46  struct timeval result;
47  if (key == NULL) {
48  return -1;
49  }
50 
51  timersub(&key->time_released, &key->time_pressed, &result);
52  key->time_hold = (double)result.tv_sec + ((double)result.tv_usec / 1000000);
53 
54  return 0;
55 }
56 
57 static int keys_parse_callbacks(key_action_t *keyaction) {
58  unsigned int i;
59  if (!keyaction) {
60  return -1;
61  }
62 
63  for (i = 0; i < key_press_callback_index && i < N_KEY_PRESS_CALLBACKS; i++) {
64 
65  if (keyaction->key == client_callbacks[i].key) {
66 
67  if (keyaction->time_hold >= client_callbacks[i].time) {
68  if (client_callbacks[i].cb != NULL) {
69  client_callbacks[i].cb(keyaction->time_hold, keyaction->key, client_callbacks[i].handle);
70 
71  keyaction->time_hold = 0.0;
72  return 0;
73  }
74  }
75  }
76  }
77 
78  return 1;
79 }
80 
81 int keys_register_cb(key_press_f cb, key_e key, double time, int handle) {
82 
83  if (!cb)
84  return -1;
85 
86  if (already_started) {
87  return -1;
88  }
89 
90  if (key_press_callback_index < N_KEY_PRESS_CALLBACKS) {
91 
92  client_callbacks[key_press_callback_index].cb = cb;
93  client_callbacks[key_press_callback_index].key = key;
94  client_callbacks[key_press_callback_index].time = time;
95  client_callbacks[key_press_callback_index].handle = handle;
96 
97  key_press_callback_index++;
98  return 0;
99  }
100  return -1;
101 }
102 
104  struct input_event evt;
105 
106  // clang-format off
107  static key_action_t buttons[N_BUTTONS] = {
108  {
109  .key = KEY_CHAR_LEFT, .time_pressed = {0}, .time_released = {0}, .time_hold = 0,
110  },
111  {
112  .key = KEY_CHAR_RIGHT, .time_pressed = {0}, .time_released = {0}, .time_hold = 0,
113  }};
114  // clang-format on
115 
116  read(fd, &evt, sizeof(struct input_event));
117  if (evt.type == EV_SYN && evt.code == SYN_DROPPED) {
118 
119  } else if (evt.type == EV_KEY) {
120 
121  if (evt.value == 1) {
122 
123  switch (evt.code) {
124  case KEY_CHAR_LEFT:
125  case KEY_CHAR_RIGHT:
126  buttons[evt.code - KEY_CHAR_LEFT].time_pressed.tv_sec = evt.time.tv_sec;
127  buttons[evt.code - KEY_CHAR_LEFT].time_pressed.tv_usec = evt.time.tv_usec;
128  buttons[evt.code - KEY_CHAR_LEFT].time_hold = 0;
129 
130  break;
131  default:
132  // continue;
133  break;
134  }
135 
136  } else {
137 
138  switch (evt.code) {
139  case KEY_CHAR_LEFT:
140  case KEY_CHAR_RIGHT:
141  buttons[evt.code - KEY_CHAR_LEFT].time_released.tv_sec = evt.time.tv_sec;
142  buttons[evt.code - KEY_CHAR_LEFT].time_released.tv_usec = evt.time.tv_usec;
143  key_time_down(&buttons[evt.code - KEY_CHAR_LEFT]);
144  keys_parse_callbacks(&buttons[evt.code - KEY_CHAR_LEFT]);
145  break;
146  default:
147  // continue;
148  break;
149  }
150  }
151  }
152 
153  return;
154 }
155 
157  unsigned int a;
158  unsigned int b;
159  key_press_event_t tmp;
160  for (a = 0; a < key_press_callback_index; a++) {
161  for (b = a + 1; b < key_press_callback_index; b++) {
162  if (client_callbacks[a].time < client_callbacks[b].time) {
163  memcpy(&tmp, &client_callbacks[b], sizeof(key_press_event_t));
164  memcpy(&client_callbacks[b], &client_callbacks[a], sizeof(key_press_event_t));
165  memcpy(&client_callbacks[a], &tmp, sizeof(key_press_event_t));
166  }
167  }
168  }
169 }
170 
171 int keys_start() {
172 
173  if (already_started) {
174 
175  return -1;
176  }
177  already_started = true;
178 
181  return 0;
182  }
183 
184  return 0;
185 }
double time
Definition: keys.c:34
+ +
void keys_file_watch_callback(int fd)
Definition: keys.c:103
+
int keys_register_cb(key_press_f cb, key_e key, double time, int handle)
Definition: keys.c:81
+
struct timeval time_released
Definition: keys.c:27
+
int keys_start()
Definition: keys.c:171
+
#define EVENT_FILE
Definition: keys.c:21
+
int fwatch_add(fwatch_cb_f cb, int fd, char *fname)
Definition: fwatch.c:42
+
void(* key_press_f)(double downtime, key_e key, int handle)
Definition: keys.h:16
+
key_press_f cb
Definition: keys.c:32
+ + + + +
key_e key
Definition: keys.c:33
+ +
key_e key
Definition: keys.c:25
+
struct timeval time_pressed
Definition: keys.c:26
+
key_e
Definition: keys.h:7
+ +
double time_hold
Definition: keys.c:28
+
void keys_sort_registered_callbacks()
Definition: keys.c:156
+
int key_time_down(key_action_t *key)
Definition: keys.c:44
+
#define N_BUTTONS
Definition: keys.c:19
+ +
#define N_KEY_PRESS_CALLBACKS
Definition: keys.c:18
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h.html new file mode 100644 index 0000000..f24dc95 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h.html @@ -0,0 +1,260 @@ + + + + + + +PiAIZU: lib/keys.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
keys.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Typedefs

typedef void(* key_press_f) (double downtime, key_e key, int handle)
 
+ + + +

+Enumerations

enum  key_e { KEY_CHAR_LEFT = 105, +KEY_CHAR_RIGHT + }
 
+ + + + + + + +

+Functions

int keys_register_cb (key_press_f cb, key_e key, double time, int handle)
 
int keys_start ()
 
int keys_close ()
 
+

Typedef Documentation

+ +
+
+ + + + +
typedef void(* key_press_f) (double downtime, key_e key, int handle)
+
+

The callback format to be used when registering for an event.

+ +

Definition at line 16 of file keys.h.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum key_e
+
+

Two buttons exist on the PiAIZU EXT shield.

+ + + +
Enumerator
KEY_CHAR_LEFT  +
KEY_CHAR_RIGHT  +
+ +

Definition at line 7 of file keys.h.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + +
int keys_close ()
+
+

Clean up and close down thread

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int keys_register_cb (key_press_f cb,
key_e key,
double time,
int handle 
)
+
+
Parameters
+ + + + + +
cbCallback function pointer
keyKey to register, aka "button"
timeTime the key has to be held low before an event is triggered
handlepassed as parameter into the callback function
 This function must be called before start. After start has been called
+ no new events can be registered.
+
+
+ +

Definition at line 81 of file keys.c.

+ +
+
+ +
+
+ + + + + + + +
int keys_start ()
+
+

Call this function to start the thread watching the low level events.

+ +

Definition at line 171 of file keys.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.map new file mode 100644 index 0000000..437ab84 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.md5 new file mode 100644 index 0000000..3c80dd2 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.md5 @@ -0,0 +1 @@ +7f1e4907f0ec034522a4a0971d118841 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ab5492029afa5ac957570cda62eeb11d33dec0cb GIT binary patch literal 4349 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/keys_8h_source.html b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h_source.html new file mode 100644 index 0000000..33be0ae --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/keys_8h_source.html @@ -0,0 +1,107 @@ + + + + + + +PiAIZU: lib/keys.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
keys.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 /**
4  *
5  * Two buttons exist on the PiAIZU EXT shield.
6  */
7 typedef enum {
8  KEY_CHAR_LEFT = 105,
10 } key_e;
11 
12 /**
13  * The callback format to be used when registering for an
14  * event.
15  */
16 typedef void (*key_press_f)(double downtime, key_e key, int handle);
17 
18 /**
19  * @param cb Callback function pointer
20  * @param key Key to register, aka "button"
21  * @param time Time the key has to be held low before an event is
22  * triggered
23  * @param handle passed as parameter into the callback function
24  *
25  * This function must be called before start. After start has been called
26  * no new events can be registered.
27  */
28 int keys_register_cb(key_press_f cb, key_e key, double time, int handle);
29 
30 /**
31  *
32  * Call this function to start the thread watching the low level events.
33  */
34 int keys_start();
35 
36 /**
37  * Clean up and close down thread
38  */
39 int keys_close();
int keys_close()
+
int keys_start()
Definition: keys.c:171
+
int keys_register_cb(key_press_f cb, key_e key, double time, int handle)
Definition: keys.c:81
+
void(* key_press_f)(double downtime, key_e key, int handle)
Definition: keys.h:16
+ +
key_e
Definition: keys.h:7
+ +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxindex.html b/stage2/03-install-piaizu/files/fb/docs/html/lmxindex.html new file mode 100644 index 0000000..0ab8f37 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxindex.html @@ -0,0 +1,91 @@ + + +LMX send data text page + +
+This page will post data to the PiAIZU Raspberry Pi.
+A webserver will receive the POST data and call the script: /var/www/html/cgi-bin/lmx.cgi
+
+This script will parse the received the data and if it's valid the data will be repacked into
+binary c structures. These structures will the be passed further through a UNIX socket.
+
+The lmx sample application will listen in the "other end" of the socket for incoming packages
+and handle the requests.
+
+ +

+ + + + +Send text to LMX-001 +

+ Data: + +
+

+ +Show cross hair: +

+ Data: + + +
+ +

+ +

+ + + Move the cross-hair cursor by using the buttons:
+ Container: + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ + +

+ + +

+The text below is a response from the LMX sample application on a regular GET request. +


+

+ + + + + + +

+ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c.html new file mode 100644 index 0000000..6300bac --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c.html @@ -0,0 +1,322 @@ + + + + + + +PiAIZU: cgi-src/lmxjson.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
lmxjson.c File Reference
+
+
+
#include "fcgi_stdio.h"
+#include "lmxsocket.h"
+#include <jansson.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+Include dependency graph for lmxjson.c:
+
+
+ + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Macros

#define HTML_COMMENT   "<!--"
 
#define HTML_COMMENT_END   "-->"
 
#define HTML_PRE   "<PRE>"
 
#define HTML_PRE_END   "</PRE>"
 
#define ARRAY_SIZE(x)   sizeof(x) / sizeof(x[0])
 
#define FOR_EACH_WEB_REQUEST_STR(x)   "LMX_POST_" #x,
 
+ + + + + + + + + +

+Functions

int send_datagram (socket_datagram_header_t *data, void **response_data)
 
int handle_request_get ()
 
int handle_request_post ()
 
int main (void)
 
+

Macro Definition Documentation

+ +
+
+ + + + + + + + +
#define ARRAY_SIZE( x)   sizeof(x) / sizeof(x[0])
+
+ +

Definition at line 32 of file lmxjson.c.

+ +
+
+ +
+
+ + + + + + + + +
#define FOR_EACH_WEB_REQUEST_STR( x)   "LMX_POST_" #x,
+
+ +

Definition at line 34 of file lmxjson.c.

+ +
+
+ +
+
+ + + + +
#define HTML_COMMENT   "<!--"
+
+ +

Definition at line 23 of file lmxjson.c.

+ +
+
+ +
+
+ + + + +
#define HTML_COMMENT_END   "-->"
+
+ +

Definition at line 24 of file lmxjson.c.

+ +
+
+ +
+
+ + + + +
#define HTML_PRE   "<PRE>"
+
+ +

Definition at line 28 of file lmxjson.c.

+ +
+
+ +
+
+ + + + +
#define HTML_PRE_END   "</PRE>"
+
+ +

Definition at line 29 of file lmxjson.c.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + +
int handle_request_get ()
+
+ +

Definition at line 99 of file lmxjson.c.

+ +
+
+ +
+
+ + + + + + + +
int handle_request_post ()
+
+ +

Definition at line 153 of file lmxjson.c.

+ +
+
+ +
+
+ + + + + + + + +
int main (void )
+
+ +

Definition at line 283 of file lmxjson.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int send_datagram (socket_datagram_header_tdata,
void ** response_data 
)
+
+ +

Definition at line 39 of file lmxjson.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.map new file mode 100644 index 0000000..06684fa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.md5 new file mode 100644 index 0000000..35e2c32 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.md5 @@ -0,0 +1 @@ +8a3db9922ac2088ccd20e9588bba998a \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/lmxjson_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3fe71dda1dee0d616fd97b877f48e6f59ee650 GIT binary patch literal 28625 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 + + + + + +PiAIZU: cgi-src/lmxjson.c Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
lmxjson.c
+
+
+Go to the documentation of this file.
1 #include "fcgi_stdio.h"
2 #include "lmxsocket.h"
3 #include <jansson.h>
4 #include <stdint.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <sys/stat.h>
8 #include <unistd.h>
9 
10 static char *nfo[] = {
11  "QUERY_STRING", "REQUEST_METHOD", "CONTENT_TYPE", "CONTENT_LENGTH", "SCRIPT_FILENAME", "SCRIPT_NAME", "PATH_INFO",
12  "PATH_TRANSLATED", "REQUEST_URI", "DOCUMENT_URI", "DOCUMENT_ROOT", "SERVER_PROTOCOL", "GATEWAY_INTERFACE",
13  "SERVER_SOFTWARE", "REMOTE_ADDR", "REMOTE_PORT", "SERVER_ADDR", "SERVER_PORT", "SERVER_NAME", "HTTPS",
14 };
15 #if DBG
16 
17 #define HTML_COMMENT HTML_PRE
18 #define HTML_COMMENT_END HTML_PRE_END
19 
20 
21 #else
22 
23 #define HTML_COMMENT "<!--"
24 #define HTML_COMMENT_END "-->"
25 
26 #endif
27 
28 #define HTML_PRE "<PRE>"
29 #define HTML_PRE_END "</PRE>"
30 
31 
32 #define ARRAY_SIZE(x) sizeof(x) / sizeof(x[0])
33 
34 #define FOR_EACH_WEB_REQUEST_STR(x) "LMX_POST_" #x,
35 
36 static char *webrequest_cmd[] = {WEBREQUEST(FOR_EACH_WEB_REQUEST_STR)};
37 static int sock;
38 
39 int send_datagram(socket_datagram_header_t *data, void **response_data) {
40 
41  struct sockaddr_un name;
42  struct sockaddr_un my_name;
43 
44  if (!data) {
45  return -1;
46  }
47 
48  if (!data->size) {
49  return -1;
50  }
51 
52  sock = socket(AF_UNIX, SOCK_DGRAM, 0);
53  if (sock < 0) {
54  printf("<P><B>Error opening datagram socket</B>");
55  return -1;
56  }
57 
58  /* Server name */
59  name.sun_family = AF_UNIX;
60  strncpy(name.sun_path, SOCKET_NAME, sizeof(name.sun_path));
61 
62  /* Client name*/
63  memset(&my_name, 0, sizeof(struct sockaddr_un));
64  my_name.sun_family = AF_UNIX;
65  snprintf(my_name.sun_path, sizeof(my_name.sun_path), "/tmp/lmx_cgi.socket.%ld", (long)getpid());
66 
67  if (bind(sock, (struct sockaddr *)&my_name, sizeof(struct sockaddr_un)) == -1) {
68  printf("error binding socket: %s\n", my_name.sun_path);
69  }
70 
71  chmod(my_name.sun_path, 0777);
72 
73  /* Send message. */
74  printf(HTML_COMMENT "Sending %d byte datagram via socket %s to the lmx-001 sample "
75  "application.." HTML_COMMENT_END,
76  data->size, name.sun_path);
77 
78  if (sendto(sock, data, data->size, 0, &name, sizeof(struct sockaddr_un)) < 0) {
79  printf("<P><B>Error sending datagram message</B>");
80  close(sock);
81  return -1;
82  }
83 
84  if (response_data != NULL) {
85  int readsize;
86  char receive_buf[DATAGRAM_SIZE];
87  readsize = recvfrom(sock, receive_buf, DATAGRAM_SIZE, 0, NULL, NULL);
88  if (readsize > 0) {
89  *response_data = malloc(readsize);
90  memcpy(*response_data, receive_buf, readsize);
91  }
92  }
93 
94  close(sock);
95  unlink(my_name.sun_path);
96  return 0;
97 }
98 
101  socket_datagram_lmx_info_t *response = NULL;
102 
103  int i;
104  int ret = 0;
105 
106  lmx_info.header.type = SOCKET_DATAGRAM_TYPE_INFO;
107  lmx_info.header.size = sizeof(socket_datagram_lmx_info_t);
108 
109  ret = send_datagram((socket_datagram_header_t *)&lmx_info, (void **)&response);
110  if (ret != 0) {
111  printf("<P>Error sending datagram socket, lmx sample app most probably not "
112  "started\n");
113  return -1;
114  }
115  if (response == NULL) {
116  printf("<P>Response is NULL\n");
117  return -1;
118  }
119  printf("<P>Current container setup in the LMX sample application <PRE>\n");
120 
121  printf("Index, "
122  "offset x, "
123  "offset y, "
124  "width, "
125  "height, "
126  "transparent,"
127  "visible, "
128  "frame, "
129  "framesize_mem,"
130  "Description\n========================================================================================\n");
131 
132  for (i = 0; i < response->n_containers; i++) {
133  container_info_t *ci = &response->containers[i];
134 
135  printf("%02d "
136  " %3d "
137  " %3d "
138  " %3d "
139  " %3d "
140  " %d "
141  " %d "
142  " %d "
143  " %8d"
144  " %s\n",
145  i, ci->x, ci->y, ci->width, ci->height, ci->transparent, ci->visible, ci->frame, ci->framesize_mem,
146  ci->description);
147  }
148  printf(" </PRE>\n");
149  free(response);
150  return ret;
151 }
152 
154 
155  int postlen = atoi(getenv("CONTENT_LENGTH"));
157  int container = 0;
158  if (postlen > 0) {
159 
160  char buf[1024];
161  char *cmd;
162  char *data;
163  int len = postlen > 1024 ? 1024 - 1 : postlen;
164  FCGI_fread(buf, len, 1, FCGI_stdin);
165  printf(HTML_COMMENT "Raw post data:\n=================\n%s\n=================\n" HTML_COMMENT_END, buf);
166  for (i = 0; i < SOCKET_DATAGRAM_TYPE_LAST; i++) {
167  cmd = strstr(buf, webrequest_cmd[i]);
168  printf(HTML_COMMENT "Testing cmd %s against \n{%s}\nResult: %s" HTML_COMMENT_END, webrequest_cmd[i],buf, cmd);
169  if (cmd == NULL) {
170  continue;
171  } else {
172  data = cmd + strlen(webrequest_cmd[i]) + 1;
173  printf(HTML_COMMENT "Found command: <B>%.*s</B> and data: " HTML_COMMENT_END,
174  strlen(webrequest_cmd[i]), cmd, data);
175  switch (i) {
176  case SOCKET_DATAGRAM_TYPE_CONTAINER:
177  container = atoi(data);
178  printf(HTML_COMMENT "Will use container: %d\n" HTML_COMMENT_END, container);
179  break;
180  case SOCKET_DATAGRAM_TYPE_MOVE: {
181  movment_e x;
182  static char *web_move_sub_cmd[] = {"MOVE_UP", "MOVE_DOWN", "MOVE_LEFT", "MOVE_RIGHT",
183  "MOVE_UP_LEFT", "MOVE_UP_RIGHT", "MOVE_DOWN_LEFT", "MOVE_DOWN_RIGHT", "MOVE_CLEAR"};
184 
185  for (x = 0; x < sizeof(web_move_sub_cmd) / sizeof(web_move_sub_cmd[0]); x++) {
186  int y;
187  y = strcmp(data, web_move_sub_cmd[x]);
188  if (y != 0) {
189  continue;
190  } else {
192  req.header.type = SOCKET_DATAGRAM_TYPE_MOVE;
193  req.header.size = sizeof(socket_datagram_lmx_move_t);
194  req.header.container = container;
195  req.move = x;
196  printf(HTML_PRE "%s container %d" HTML_PRE_END,data, req.header.container);
197  printf(HTML_COMMENT "<P> Sending move :%s result: %d" HTML_COMMENT_END, data,
198  send_datagram((socket_datagram_header_t *)&req, NULL));
199  }
200  }
201 
202  break;
203  }
204  case SOCKET_DATAGRAM_TYPE_COORD: {
206  json_t * jcoord;
207  json_t * c;
208  json_t * x;
209  json_t * y;
210 
211  dgcoord.header.type = SOCKET_DATAGRAM_TYPE_COORD;
212  dgcoord.header.size = sizeof(socket_datagram_lmx_coordinate_t);
213 
214  json_error_t error;
215  jcoord = json_loads(data, 0, &error);
216 
217  if (!jcoord) {
218  printf("error: on line %d: %s\n", error.line, error.text);
219  return -1;
220  }
221 
222  c = json_object_get(jcoord, "coord");
223  if (!json_is_object(c)) {
224  printf("error: on line %d: %s\n", error.line, error.text);
225  return -1;
226  }
227 
228  x = json_object_get(c, "x");
229  if (!json_is_integer(x)) {
230  printf("error: on line %d: %s\n", error.line, error.text);
231  return -1;
232  }
233 
234  y = json_object_get(c, "y");
235  if (!json_is_integer(y)) {
236  printf("error: on line %d: %s\n", error.line, error.text);
237  return -1;
238  }
239  dgcoord.coord.x = json_integer_value(x);
240  dgcoord.coord.y = json_integer_value(y);
241 
242  printf(HTML_COMMENT "<P><B>Sending coordinates datagram %d "
243  "struct size %d bytes, stream len %d "
244  "data</B><PRE> x:%d "
245  "y:%d<PRE><P>" HTML_COMMENT_END,
246  send_datagram((socket_datagram_header_t *)&dgcoord, NULL), dgcoord.header.size, len,
247  dgcoord.coord.x, dgcoord.coord.y);
248  printf("<P><PRE>x:%d y:%d</PRE>", dgcoord.coord.x, dgcoord.coord.y);
249 
250  json_decref(x);
251  json_decref(y);
252  json_decref(c);
253  json_decref(jcoord);
254  }
255 
256  break;
257  case SOCKET_DATAGRAM_TYPE_TEXT: {
259  dgdata.header.type = SOCKET_DATAGRAM_TYPE_TEXT;
260  dgdata.header.size = sizeof(socket_datagram_lmx_text_t);
261  strncpy((char *)&dgdata.text, data, TEXT_LENGTH);
262  dgdata.text[TEXT_LENGTH - 1] = '\0';
263  printf(HTML_COMMENT "\n<P><B>Sending text datagram %d data %d struct size %d "
264  "bytes, stream len %d, data "
265  "</B><PRE>%s</PRE><P>" HTML_COMMENT_END,
266  send_datagram((socket_datagram_header_t *)&dgdata, NULL), TEXT_LENGTH, dgdata.header.size, len,
267  dgdata.text);
268  printf("<P><PRE>%s</PRE>", dgdata.text);
269  break;
270  }
271  case SOCKET_DATAGRAM_TYPE_INFO:
272  case SOCKET_DATAGRAM_TYPE_LAST:
273  default:
274  break;
275 
276  }
277  }
278  }
279  }
280  return 0;
281 }
282 
283 int main(void) {
284 
285  int count = 0;
286  unsigned int i;
287 
288  /* Response loop. */
289  while (FCGI_Accept() >= 0) {
290  printf("Content-type: text/html\r\n"
291  "\r\n"
292  "<title>PiAIZU CGI</title>");
293 
294  char *method = getenv("REQUEST_METHOD");
295 
296  if (!strcmp(method, "POST")) {
298  } else if (!strcmp(method, "GET")) {
300  } else {
301 
302  printf("<P>No data posted<BR>");
303  }
304  }
305 
306  printf(HTML_COMMENT);
307  for (i = 0; i < sizeof(nfo) / sizeof(nfo[0]); i++) {
308  printf("%02d: %s: %s" "\n", ++count, nfo[i], getenv(nfo[i]));
309  }
310  printf(HTML_COMMENT_END);
311  return 0;
312 }
#define FOR_EACH_WEB_REQUEST_STR(x)
Definition: lmxjson.c:34
+
container_info_t containers[]
Definition: lmxsocket.h:74
+
socket_datagram_header_t header
Definition: lmxsocket.h:33
+
#define HTML_PRE_END
Definition: lmxjson.c:29
+
char description[DESCRIPTION_LENGHT]
Definition: lmxsocket.h:68
+
int send_datagram(socket_datagram_header_t *data, void **response_data)
Definition: lmxjson.c:39
+ +
int handle_request_post()
Definition: lmxjson.c:153
+ + +
uint16_t y
Definition: lmxsocket.h:29
+
int main(void)
Definition: lmxjson.c:283
+
socket_datagram_type_t
Definition: lmxsocket.h:19
+
#define HTML_COMMENT
Definition: lmxjson.c:23
+
size_t framesize_mem
Definition: lmxsocket.h:67
+
unsigned int height
Definition: lmxsocket.h:63
+
socket_datagram_type_t type
Definition: lmxsocket.h:22
+ + + +
#define DATAGRAM_SIZE
Definition: lmxsocket.h:11
+ + + +
char text[TEXT_LENGTH]
Definition: lmxsocket.h:56
+
#define SOCKET_NAME
Definition: lmxsocket.h:10
+
uint16_t x
Definition: lmxsocket.h:28
+ +
socket_datagram_header_t header
Definition: lmxsocket.h:50
+
#define TEXT_LENGTH
Definition: lmxsocket.h:12
+ + +
socket_datagram_header_t header
Definition: lmxsocket.h:55
+ + + +
socket_datagram_header_t header
Definition: lmxsocket.h:72
+ +
#define HTML_PRE
Definition: lmxjson.c:28
+ +
#define HTML_COMMENT_END
Definition: lmxjson.c:24
+
movment_e
Definition: lmxsocket.h:37
+
unsigned int width
Definition: lmxsocket.h:62
+
int handle_request_get()
Definition: lmxjson.c:99
+ +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h.html new file mode 100644 index 0000000..a392ac0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h.html @@ -0,0 +1,326 @@ + + + + + + +PiAIZU: cgi-src/lmxsocket.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
lmxsocket.h File Reference
+
+
+
#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <sys/un.h>
+
+Include dependency graph for lmxsocket.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Data Structures

struct  socket_datagram_header_t
 
struct  coordinate_t
 
struct  socket_datagram_lmx_coordinate_t
 
struct  socket_datagram_lmx_move_t
 
struct  socket_datagram_lmx_text_t
 
struct  container_info_t
 
struct  socket_datagram_lmx_info_t
 
+ + + + + + + + + + + + + +

+Macros

#define SOCKET_NAME   "/tmp/lmx.socket"
 
#define DATAGRAM_SIZE   (10 * 1024)
 
#define TEXT_LENGTH   0x100
 
#define DESCRIPTION_LENGHT   256
 
#define WEBREQUEST(x)   x(CONTAINER) x(COORD) x(TEXT) x(INFO) x(MOVE)
 
#define FOR_EACH_WEBREQUEST_ENUM(x)   SOCKET_DATAGRAM_TYPE_##x,
 
+ + + + + +

+Enumerations

enum  socket_datagram_type_t { WEBREQUEST =(FOR_EACH_WEBREQUEST_ENUM) FOR_EACH_WEBREQUEST_ENUM(LAST) + }
 
enum  movment_e {
+  MOVE_UP, +MOVE_DOWN, +MOVE_LEFT, +MOVE_RIGHT, +
+  MOVE_UP_LEFT, +MOVE_UP_RIGHT, +MOVE_DOWN_LEFT, +MOVE_DOWN_RIGHT, +
+  MOVE_CLEAR +
+ }
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define DATAGRAM_SIZE   (10 * 1024)
+
+ +

Definition at line 11 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
#define DESCRIPTION_LENGHT   256
+
+ +

Definition at line 13 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + + + + + +
#define FOR_EACH_WEBREQUEST_ENUM( x)   SOCKET_DATAGRAM_TYPE_##x,
+
+ +

Definition at line 17 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
#define SOCKET_NAME   "/tmp/lmx.socket"
+
+ +

Definition at line 10 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
#define TEXT_LENGTH   0x100
+
+ +

Definition at line 12 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + + + + + +
#define WEBREQUEST( x)   x(CONTAINER) x(COORD) x(TEXT) x(INFO) x(MOVE)
+
+ +

Definition at line 15 of file lmxsocket.h.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum movment_e
+
+ + + + + + + + + + +
Enumerator
MOVE_UP  +
MOVE_DOWN  +
MOVE_LEFT  +
MOVE_RIGHT  +
MOVE_UP_LEFT  +
MOVE_UP_RIGHT  +
MOVE_DOWN_LEFT  +
MOVE_DOWN_RIGHT  +
MOVE_CLEAR  +
+ +

Definition at line 37 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
enum socket_datagram_type_t
+
+ + +
Enumerator
WEBREQUEST  +
+ +

Definition at line 19 of file lmxsocket.h.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.map new file mode 100644 index 0000000..4eb6390 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.md5 new file mode 100644 index 0000000..2e34f27 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.md5 @@ -0,0 +1 @@ +93da2ff7d01f5a12fa068307442c1f86 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..c26db611f74e3f88262489fd29dd10f295b2eae9 GIT binary patch literal 5299 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 X{E|}Ol;jb}LPAgFRpp9gjQ#%$nc^#B literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.map new file mode 100644 index 0000000..938b2b7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.map @@ -0,0 +1,2 @@ + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.md5 new file mode 100644 index 0000000..6770986 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.md5 @@ -0,0 +1 @@ +215a3b93ea43e77f771bdec46b1d2118 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..6920e8637ad119b59cfcd405e8a30c31e03dac63 GIT binary patch literal 12258 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 Kh?k2Ref}Semcq{f literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h_source.html b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h_source.html new file mode 100644 index 0000000..47eab02 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/lmxsocket_8h_source.html @@ -0,0 +1,142 @@ + + + + + + +PiAIZU: cgi-src/lmxsocket.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
lmxsocket.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdbool.h>
4 #include <stdint.h>
5 #include <stdio.h>
6 #include <sys/socket.h>
7 #include <sys/types.h>
8 #include <sys/un.h>
9 
10 #define SOCKET_NAME "/tmp/lmx.socket"
11 #define DATAGRAM_SIZE (10 * 1024)
12 #define TEXT_LENGTH 0x100
13 #define DESCRIPTION_LENGHT 256
14 
15 #define WEBREQUEST(x) x(CONTAINER) x(COORD) x(TEXT) x(INFO) x(MOVE)
16 
17 #define FOR_EACH_WEBREQUEST_ENUM(x) SOCKET_DATAGRAM_TYPE_##x,
18 
20 
21 typedef struct {
23  int container;
24  size_t size;
26 
27 typedef struct {
28  uint16_t x;
29  uint16_t y;
30 } coordinate_t;
31 
32 typedef struct {
36 
37 typedef enum {
47 } movment_e;
48 
49 typedef struct {
53 
54 typedef struct {
56  char text[TEXT_LENGTH];
58 
59 typedef struct {
60  int x;
61  int y;
62  unsigned int width;
63  unsigned int height;
65  bool visible;
66  char frame;
67  size_t framesize_mem;
68  char description[DESCRIPTION_LENGHT];
70 
71 typedef struct {
74  container_info_t containers[];
socket_datagram_header_t header
Definition: lmxsocket.h:33
+ + + + +
uint16_t y
Definition: lmxsocket.h:29
+ +
socket_datagram_type_t
Definition: lmxsocket.h:19
+ +
size_t framesize_mem
Definition: lmxsocket.h:67
+
unsigned int height
Definition: lmxsocket.h:63
+
socket_datagram_type_t type
Definition: lmxsocket.h:22
+ + + +
#define DESCRIPTION_LENGHT
Definition: lmxsocket.h:13
+ + + + +
#define WEBREQUEST(x)
Definition: lmxsocket.h:15
+
uint16_t x
Definition: lmxsocket.h:28
+ +
socket_datagram_header_t header
Definition: lmxsocket.h:50
+ +
#define TEXT_LENGTH
Definition: lmxsocket.h:12
+ + +
#define FOR_EACH_WEBREQUEST_ENUM(x)
Definition: lmxsocket.h:17
+
socket_datagram_header_t header
Definition: lmxsocket.h:55
+ + + + + +
socket_datagram_header_t header
Definition: lmxsocket.h:72
+ + + +
movment_e
Definition: lmxsocket.h:37
+
unsigned int width
Definition: lmxsocket.h:62
+ +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/log_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/log_8h.html new file mode 100644 index 0000000..7a43fed --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/log_8h.html @@ -0,0 +1,178 @@ + + + + + + +PiAIZU: lib/log.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
log.h File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+
+Include dependency graph for log.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define __FILENAME__   (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
 
#define LOG(str, ...)   printf("[%s:%d] " str, __FILENAME__, __LINE__, ##__VA_ARGS__)
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define __FILENAME__   (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
+
+ +

Definition at line 5 of file log.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define LOG( str,
 ... 
)   printf("[%s:%d] " str, __FILENAME__, __LINE__, ##__VA_ARGS__)
+
+ +

Definition at line 7 of file log.h.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.map new file mode 100644 index 0000000..3b81707 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.md5 new file mode 100644 index 0000000..cbe2a31 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.md5 @@ -0,0 +1 @@ +25ad103b92f7c49246b05f4ab4baebc0 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ac4a23ccd9bfadf3412c370d95396986aeb7c29b GIT binary patch literal 15591 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 HFW~ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.md5 new file mode 100644 index 0000000..d3ba4dd --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.md5 @@ -0,0 +1 @@ +7bbeeb08c3f320d4f82e5ce13aeaee7d \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/log_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..daf3139ae4a89b2ddd36bce0a80e7ee0c799dccc GIT binary patch literal 3836 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 Pv!LhlYI5bWW + + + + + +PiAIZU: lib/log.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
log.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 #include <stdio.h>
3 #include <string.h>
4 
5 #define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
6 
7 #define LOG(str, ...) printf("[%s:%d] " str, __FILENAME__, __LINE__, ##__VA_ARGS__)
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/main_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/main_8c.html new file mode 100644 index 0000000..5a97b35 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/main_8c.html @@ -0,0 +1,345 @@ + + + + + + +PiAIZU: main.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
main.c File Reference
+
+
+
#include "bmp.h"
+#include "container.h"
+#include "define_containers.h"
+#include "fwatch.h"
+#include "keys.h"
+#include "log.h"
+#include "text.h"
+#include "webrequest.h"
+#include <pthread.h>
+#include <signal.h>
+#include <stdatomic.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <unistd.h>
+
+Include dependency graph for main.c:
+
+
+ + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Macros

#define START_FRAME   0
 
#define AP_ANIM_EVERY_FRAME   45
 
#define EVENT_TEXT_SIZE   50
 
+ + + +

+Enumerations

enum  event_key_handle_e {
+  EVENT_LEFT_PRESS_SHORT, +EVENT_LEFT_PRESS_LONG, +EVENT_RIGHT_PRESS_SHORT, +EVENT_RIGHT_PRESS_LONG, +
+  EVENT_N +
+ }
 
+ + + + + + + + + + + +

+Functions

void animate_wifi_ap ()
 
void animate_sony_logi (bool fade_out)
 
void intShutdown (int sign)
 
void key_press_callback (double presstime, key_e key, int handle)
 
int main ()
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define AP_ANIM_EVERY_FRAME   45
+
+ +

Definition at line 18 of file main.c.

+ +
+
+ +
+
+ + + + +
#define EVENT_TEXT_SIZE   50
+
+ +

Definition at line 74 of file main.c.

+ +
+
+ +
+
+ + + + +
#define START_FRAME   0
+
+ +

Definition at line 17 of file main.c.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum event_key_handle_e
+
+ + + + + + +
Enumerator
EVENT_LEFT_PRESS_SHORT  +
EVENT_LEFT_PRESS_LONG  +
EVENT_RIGHT_PRESS_SHORT  +
EVENT_RIGHT_PRESS_LONG  +
EVENT_N  +
+ +

Definition at line 66 of file main.c.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void animate_sony_logi (bool fade_out)
+
+ +

Definition at line 223 of file main.c.

+ +
+
+ +
+
+ + + + + + + +
void animate_wifi_ap ()
+
+ +

Definition at line 205 of file main.c.

+ +
+
+ +
+
+ + + + + + + + +
void intShutdown (int sign)
+
+ +

Definition at line 61 of file main.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void key_press_callback (double presstime,
key_e key,
int handle 
)
+
+ +

Definition at line 75 of file main.c.

+ +
+
+ +
+
+ + + + + + + + +
int main (void )
+
+ +

Definition at line 105 of file main.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.map new file mode 100644 index 0000000..e9995dd --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.md5 new file mode 100644 index 0000000..65a8ae6 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.md5 @@ -0,0 +1 @@ +793e5e5cd342b1f739115d01c64f2e44 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/main_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..242f54a8b24e78583739dc120cf0d65b0db08a46 GIT binary patch literal 54738 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 {m;T^pT< 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/main_8c_source.html b/stage2/03-install-piaizu/files/fb/docs/html/main_8c_source.html new file mode 100644 index 0000000..25357e5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/main_8c_source.html @@ -0,0 +1,140 @@ + + + + + + +PiAIZU: main.c Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
main.c
+
+
+Go to the documentation of this file.
1 #include "bmp.h"
2 #include "container.h"
3 #include "define_containers.h"
4 #include "fwatch.h"
5 #include "keys.h"
6 #include "log.h"
7 #include "text.h"
8 #include "webrequest.h"
9 #include <pthread.h>
10 #include <signal.h>
11 #include <stdatomic.h>
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <time.h>
15 #include <unistd.h>
16 
17 #define START_FRAME 0
18 #define AP_ANIM_EVERY_FRAME 45
19 
20 void animate_wifi_ap();
21 void animate_sony_logi(bool fade_out);
22 static bool shutdown = false;
23 
24 static const char *logoanim[] = {
25  "sonylogo_00001.bmp", "sonylogo_00002.bmp", "sonylogo_00003.bmp", "sonylogo_00004.bmp", "sonylogo_00005.bmp",
26  "sonylogo_00006.bmp", "sonylogo_00007.bmp", "sonylogo_00008.bmp", "sonylogo_00009.bmp", "sonylogo_00010.bmp",
27  "sonylogo_00011.bmp", "sonylogo_00012.bmp", "sonylogo_00013.bmp", "sonylogo_00014.bmp", "sonylogo_00015.bmp",
28  "sonylogo_00016.bmp", "sonylogo_00017.bmp", "sonylogo_00018.bmp", "sonylogo_00019.bmp", "sonylogo_00020.bmp",
29  "sonylogo_00021.bmp", "sonylogo_00022.bmp", "sonylogo_00023.bmp", "sonylogo_00024.bmp", "sonylogo_00025.bmp",
30  "sonylogo_00026.bmp", "sonylogo_00027.bmp", "sonylogo_00028.bmp", "sonylogo_00029.bmp", "sonylogo_00030.bmp",
31  "sonylogo_00031.bmp", "sonylogo_00032.bmp", "sonylogo_00033.bmp", "sonylogo_00034.bmp", "sonylogo_00035.bmp",
32  "sonylogo_00036.bmp", "sonylogo_00037.bmp", "sonylogo_00038.bmp", "sonylogo_00039.bmp", "sonylogo_00040.bmp",
33  "sonylogo_00041.bmp", "sonylogo_00042.bmp", "sonylogo_00043.bmp", "sonylogo_00044.bmp", "sonylogo_00045.bmp",
34  "sonylogo_00046.bmp", "sonylogo_00047.bmp", "sonylogo_00048.bmp", "sonylogo_00049.bmp", "sonylogo_00050.bmp",
35  "sonylogo_00051.bmp", "sonylogo_00052.bmp", "sonylogo_00053.bmp", "sonylogo_00054.bmp", "sonylogo_00055.bmp",
36  "sonylogo_00056.bmp", "sonylogo_00057.bmp", "sonylogo_00058.bmp", "sonylogo_00059.bmp", "sonylogo_00060.bmp",
37  "sonylogo_00061.bmp", "sonylogo_00062.bmp", "sonylogo_00063.bmp", "sonylogo_00064.bmp", "sonylogo_00065.bmp",
38  "sonylogo_00066.bmp", "sonylogo_00067.bmp", "sonylogo_00068.bmp", "sonylogo_00069.bmp", "sonylogo_00070.bmp",
39  "sonylogo_00071.bmp", "sonylogo_00072.bmp", "sonylogo_00073.bmp", "sonylogo_00074.bmp", "sonylogo_00075.bmp",
40  "sonylogo_00076.bmp", "sonylogo_00077.bmp", "sonylogo_00078.bmp", "sonylogo_00079.bmp", "sonylogo_00080.bmp",
41  "sonylogo_00081.bmp", "sonylogo_00082.bmp", "sonylogo_00083.bmp", "sonylogo_00084.bmp", "sonylogo_00085.bmp",
42  "sonylogo_00086.bmp", "sonylogo_00087.bmp", "sonylogo_00088.bmp", "sonylogo_00089.bmp", "sonylogo_00090.bmp",
43  "sonylogo_00091.bmp", "sonylogo_00092.bmp", "sonylogo_00093.bmp", "sonylogo_00094.bmp", "sonylogo_00095.bmp",
44  "sonylogo_00096.bmp", "sonylogo_00097.bmp", "sonylogo_00098.bmp", "sonylogo_00099.bmp", "sonylogo_00100.bmp",
45  "sonylogo_00101.bmp", "sonylogo_00102.bmp", "sonylogo_00103.bmp", "sonylogo_00104.bmp", "sonylogo_00105.bmp",
46  "sonylogo_00106.bmp", "sonylogo_00107.bmp", "sonylogo_00108.bmp", "sonylogo_00109.bmp", "sonylogo_00110.bmp",
47  "sonylogo_00111.bmp", "sonylogo_00112.bmp", "sonylogo_00113.bmp", "sonylogo_00114.bmp", "sonylogo_00115.bmp",
48  "sonylogo_00116.bmp", "sonylogo_00117.bmp", "sonylogo_00118.bmp", "sonylogo_00119.bmp", "sonylogo_00120.bmp",
49  "sonylogo_00121.bmp", "sonylogo_00122.bmp", "sonylogo_00123.bmp", "sonylogo_00124.bmp", "sonylogo_00125.bmp",
50  "sonylogo_00126.bmp", "sonylogo_00127.bmp", "sonylogo_00128.bmp", "sonylogo_00129.bmp", "sonylogo_00130.bmp",
51  "sonylogo_00131.bmp", "sonylogo_00132.bmp", "sonylogo_00133.bmp", "sonylogo_00134.bmp", "sonylogo_00135.bmp",
52  "sonylogo_00136.bmp", "sonylogo_00137.bmp", "sonylogo_00138.bmp", "sonylogo_00139.bmp", "sonylogo_00140.bmp",
53  "sonylogo_00141.bmp", "sonylogo_00142.bmp", "sonylogo_00143.bmp", "sonylogo_00144.bmp", "sonylogo_00145.bmp",
54  "sonylogo_00146.bmp", "sonylogo_00147.bmp", "sonylogo_00148.bmp", "sonylogo_00149.bmp", "sonylogo_00150.bmp",
55  "sonylogo_00151.bmp", "sonylogo_00152.bmp", "sonylogo_00153.bmp", "sonylogo_00154.bmp", "sonylogo_00155.bmp",
56  "sonylogo_00156.bmp", "sonylogo_00157.bmp", "sonylogo_00158.bmp", "sonylogo_00159.bmp",
57 };
58 
59 static gimp_bitmap_t *sony_bm[sizeof(logoanim) / sizeof(logoanim[0])];
60 
61 void intShutdown(int sign) {
62  (void)sign;
63  shutdown = true;
64 }
65 
66 typedef enum {
73 
74 #define EVENT_TEXT_SIZE 50
75 void key_press_callback(double presstime, key_e key, int handle) {
76 
77  char testtext[EVENT_TEXT_SIZE] = "";
78 
79  (void)presstime;
80  (void)key;
81 
82  container_reset(9);
83  switch (handle) {
85  snprintf(testtext, EVENT_TEXT_SIZE, "Left\nShort\n%0.2fs", presstime);
86  break;
88  snprintf(testtext, EVENT_TEXT_SIZE, "Left\nLong\n%0.2fs", presstime);
89 
90  break;
92  snprintf(testtext, EVENT_TEXT_SIZE, "Right\nShort\n%0.2fs", presstime);
93 
94  break;
96  snprintf(testtext, EVENT_TEXT_SIZE, "Right\nLong\n%0.2fs", presstime);
97 
98  break;
99  default:
100  break;
101  }
102  text_put(KEY_INFO, testtext);
103 }
104 
105 int main() {
106 
107  gimp_bitmap_t *bitmap;
108 
109  /* Catch a whole bunch of signals and shutdown properly */
110  signal(SIGINT, intShutdown);
111  signal(SIGTERM, intShutdown);
112  signal(SIGSTOP, intShutdown);
113  signal(SIGKILL, intShutdown);
114 
115  LOG("Git sha: %s\nBuild date: %s\n\n", GITSHA, DATE);
116 
117  /* Initialize the framebuffer and container lib */
118  container_new(&containers);
119 
120  /* Initialize the text/font lib */
121  text_init();
122 
125 
128 
129  if (keys_start()) {
130  goto on_err;
131  }
132 
133  if (webrequest_init()) {
134  goto on_err;
135  }
136 
137  if (fwatch_start()) {
138  goto on_err;
139  }
140 
141  container_visible(SONY_LOGO, true);
142  container_visible(AP_A, true);
143  container_visible(AP_B, false);
144  container_visible(AP_C, false);
145  container_visible(AP_D, false);
146 
147  if (bmp_open_path("graphics", "wifi_ap_a.bmp", &bitmap) != 0)
148  return -1;
149  container_fill_bitmap(AP_A, bitmap, true);
150  bmp_free(&bitmap);
151 
152  if (bmp_open_path("graphics", "wifi_ap_b.bmp", &bitmap) != 0)
153  return -1;
154  container_fill_bitmap(AP_B, bitmap, true);
155  bmp_free(&bitmap);
156 
157  if (bmp_open_path("graphics", "wifi_ap_c.bmp", &bitmap) != 0)
158  return -1;
159  container_fill_bitmap(AP_C, bitmap, true);
160  bmp_free(&bitmap);
161 
162  if (bmp_open_path("graphics", "wifi_ap_d.bmp", &bitmap) != 0)
163  return -1;
164  container_fill_bitmap(AP_D, bitmap, true);
165  bmp_free(&bitmap);
166 
167  text_put(WIFI_TEXTBOX, "Connect to WiFi SSID: PiAIZU\nGoto: http://192.168.1.1/");
168 
169  container_visible(WIFI_TEXTBOX, true);
171 
172  container_fill_bitmap(AP_D, bitmap, true);
173  bmp_free(&bitmap);
174 
175  text_put(TEXT, "AP");
177  for (unsigned int anim = START_FRAME; anim < sizeof(logoanim) / sizeof(logoanim[0]); anim++) {
178  bmp_open_path("graphics/anim", logoanim[anim], &sony_bm[anim]);
179  }
180 
181  animate_sony_logi(true);
182 
183  bool do_anim = true;
184  do {
185 
186  do_anim = !do_anim;
187  animate_sony_logi(do_anim);
188  fwatch_do(25000);
189 
190  } while (!shutdown);
191  LOG("Cleaning up and shutting down...\n");
192 
193 on_err:
194  for (unsigned int anim = START_FRAME; anim < sizeof(logoanim) / sizeof(logoanim[0]); anim++) {
195  bmp_free(&sony_bm[anim]);
196  }
197 
199  container_close();
200  text_close();
201 
202  return 0;
203 }
204 static int wifi = AP_B;
206 
207  do {
208  if (wifi <= AP_D) {
209  container_visible(wifi, true);
210 
211  wifi++;
212  } else {
213  container_visible(AP_A, true);
214  container_visible(AP_B, false);
215  container_visible(AP_C, false);
216  container_visible(AP_D, false);
217 
218  wifi = AP_B;
219  }
220  } while (0);
221 }
222 
223 void animate_sony_logi(bool fade_out) {
224  unsigned int anim;
225 
226  if (fade_out) {
227  for (anim = START_FRAME; anim < sizeof(logoanim) / sizeof(logoanim[0]) && !shutdown; anim++) {
228 
229  container_fill_bitmap(SONY_LOGO, sony_bm[anim], true);
230 
231  if (anim % AP_ANIM_EVERY_FRAME == 0) {
232  animate_wifi_ap();
233  }
235  fwatch_do(4000);
236  }
237  } else {
238  for (anim = (sizeof(logoanim) / sizeof(logoanim[0])) - 1; anim > START_FRAME && !shutdown; anim--) {
239 
240  container_fill_bitmap(SONY_LOGO, sony_bm[anim], true);
241 
242  if (anim % AP_ANIM_EVERY_FRAME == 0) {
243  animate_wifi_ap();
244  }
246  fwatch_do(4000);
247  }
248  }
249 }
#define AP_ANIM_EVERY_FRAME
Definition: main.c:18
+
event_key_handle_e
Definition: main.c:66
+
int webrequest_init()
Definition: webrequest.c:165
+
#define LOG(str,...)
Definition: log.h:7
+
int container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent)
Definition: container.c:186
+
int main()
Definition: main.c:105
+ + +
void text_close()
Definition: text.c:88
+
void text_put(int container, char *string)
Definition: text.c:175
+ + + +
void container_visible(unsigned int container, bool visible)
Definition: container.c:109
+
void key_press_callback(double presstime, key_e key, int handle)
Definition: main.c:75
+
void text_init()
Definition: text.c:99
+ +
void container_reset(unsigned int container)
Definition: container.c:73
+
int container_compile()
Definition: container.c:121
+
Definition: main.c:71
+ +
int keys_register_cb(key_press_f cb, key_e key, double time, int handle)
Definition: keys.c:81
+
void intShutdown(int sign)
Definition: main.c:61
+ +
void container_new(containers_t *containers)
Definition: container.c:209
+
int bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap)
Definition: bmp.c:74
+
int keys_start()
Definition: keys.c:171
+ +
void container_close()
Definition: container.c:197
+
void animate_wifi_ap()
Definition: main.c:205
+
void webrequest_close()
Definition: webrequest.c:193
+ +
#define START_FRAME
Definition: main.c:17
+ + +
void bmp_free(gimp_bitmap_t **bitmap)
Definition: bmp.c:183
+
int fwatch_do(int us)
Definition: fwatch.c:83
+
#define EVENT_TEXT_SIZE
Definition: main.c:74
+
key_e
Definition: keys.h:7
+ + + +
void animate_sony_logi(bool fade_out)
Definition: main.c:223
+
int fwatch_start()
Definition: fwatch.c:67
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/nav_f.png b/stage2/03-install-piaizu/files/fb/docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/nav_g.png b/stage2/03-install-piaizu/files/fb/docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_0.js new file mode 100644 index 0000000..dcb9811 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5f_5ffilename_5f_5f',['__FILENAME__',['../log_8h.html#a5fccb4fc71e44089a1b1a77fc76c0b68',1,'log.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_1.html new file mode 100644 index 0000000..8cc6a1d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_1.js new file mode 100644 index 0000000..7ab38f5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['alpha',['ALPHA',['../container_8c.html#af5abd28c44c29b7397c84f1fec4b1d84',1,'container.c']]], + ['animate_5fsony_5flogi',['animate_sony_logi',['../main_8c.html#a2ab8c93790d4e1eab20bceb8083ed5fb',1,'main.c']]], + ['animate_5fwifi_5fap',['animate_wifi_ap',['../main_8c.html#a15ce6192d420dcd6e231a59d721aefc0',1,'main.c']]], + ['ap_5fanim_5fevery_5fframe',['AP_ANIM_EVERY_FRAME',['../main_8c.html#a964b765595375d21a5ddf317666b52d7',1,'main.c']]], + ['array_5fsize',['ARRAY_SIZE',['../lmxjson_8c.html#a6242a25f9d996f0cc4f4cdb911218b75',1,'lmxjson.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_10.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_10.html new file mode 100644 index 0000000..c25484f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_10.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_10.js new file mode 100644 index 0000000..e3e60b3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_10.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['red',['RED',['../container_8c.html#a8d23feea868a983c8c2b661e1e16972f',1,'container.c']]], + ['reserved_5fa',['reserved_a',['../structbmp__header__t.html#a1b1b1cb513d2f42a1e6efbd79f4bdec8',1,'bmp_header_t']]], + ['reserved_5fb',['reserved_b',['../structbmp__header__t.html#af5bbd61d1ac8839a59415368aecfa1c7',1,'bmp_header_t']]], + ['rfds',['rfds',['../structfwatch__t.html#a958354695787d34346b02a9948d08968',1,'fwatch_t']]], + ['rgb_5fbitmask',['RGB_BITMASK',['../container_8c.html#ae31c7b5654038d07c0d4ac6a9b8b685d',1,'container.c']]], + ['rgba_5ft',['rgba_t',['../container_8h.html#a677f336708895229045de5be0052a3a3',1,'container.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_11.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_11.html new file mode 100644 index 0000000..3615c28 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_11.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_11.js new file mode 100644 index 0000000..cb03155 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_11.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['send_5fdatagram',['send_datagram',['../lmxjson_8c.html#a4818cd27c1a79914d937d05dfcf6acf6',1,'lmxjson.c']]], + ['signature',['signature',['../structbmp__header__t.html#a0990e32df654060facbca342d5381712',1,'bmp_header_t']]], + ['size',['size',['../structsocket__datagram__header__t.html#a77e3868728a23b3f23e162c1a477954f',1,'socket_datagram_header_t']]], + ['socket_5fdatagram_5fheader_5ft',['socket_datagram_header_t',['../structsocket__datagram__header__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5fcoordinate_5ft',['socket_datagram_lmx_coordinate_t',['../structsocket__datagram__lmx__coordinate__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5finfo_5ft',['socket_datagram_lmx_info_t',['../structsocket__datagram__lmx__info__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5fmove_5ft',['socket_datagram_lmx_move_t',['../structsocket__datagram__lmx__move__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5ftext_5ft',['socket_datagram_lmx_text_t',['../structsocket__datagram__lmx__text__t.html',1,'']]], + ['socket_5fdatagram_5ftype_5ft',['socket_datagram_type_t',['../lmxsocket_8h.html#a361754699a759ce3449219476b6f227f',1,'lmxsocket.h']]], + ['socket_5fname',['SOCKET_NAME',['../lmxsocket_8h.html#a8bef388d9b2673363c0069157d3beab3',1,'lmxsocket.h']]], + ['start_5fframe',['START_FRAME',['../main_8c.html#a0b51846c82f364ec10db44ad8c251bd8',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_12.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_12.html new file mode 100644 index 0000000..abd082a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_12.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_12.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_12.js new file mode 100644 index 0000000..8f643b4 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_12.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['text',['text',['../structsocket__datagram__lmx__text__t.html#a270dceb9979d751a37804537c3b3c8d9',1,'socket_datagram_lmx_text_t']]], + ['text_2ec',['text.c',['../text_8c.html',1,'']]], + ['text_2eh',['text.h',['../text_8h.html',1,'']]], + ['text_5fclose',['text_close',['../text_8c.html#a4dac91da42d307349880be6953933667',1,'text_close(): text.c'],['../text_8h.html#a4dac91da42d307349880be6953933667',1,'text_close(): text.c']]], + ['text_5fget_5fchar_5fbitmap',['text_get_char_bitmap',['../text_8c.html#a5c3bac04613ceb735332fcf3e54bfe36',1,'text.c']]], + ['text_5fget_5fchar_5ffont',['text_get_char_font',['../text_8c.html#aafdbf9301217d95e8e76b9946b1ffc16',1,'text.c']]], + ['text_5finit',['text_init',['../text_8c.html#a8e5b8db4a9381a196dca3500d0b4c862',1,'text_init(): text.c'],['../text_8h.html#a8e5b8db4a9381a196dca3500d0b4c862',1,'text_init(): text.c']]], + ['text_5flength',['TEXT_LENGTH',['../lmxsocket_8h.html#a14608b60296aeb2c56a375285a108c34',1,'lmxsocket.h']]], + ['text_5fput',['text_put',['../text_8c.html#a2c3d471149c5f168689e8b4a2416fb1e',1,'text_put(int container, char *string): text.c'],['../text_8h.html#a2c3d471149c5f168689e8b4a2416fb1e',1,'text_put(int container, char *string): text.c']]], + ['time',['time',['../structkey__press__event__t.html#a8e4d38d0be3e97ef0e33f87e6b2efdfd',1,'key_press_event_t']]], + ['time_5fhold',['time_hold',['../structkey__action__t.html#a985440e879772fcd7f3a1d74d35c39f6',1,'key_action_t']]], + ['time_5fpressed',['time_pressed',['../structkey__action__t.html#a3b9f04eed18e3f4900c38b0e22301f31',1,'key_action_t']]], + ['time_5freleased',['time_released',['../structkey__action__t.html#a200f2f1e9407b325f1535d80a9cc5ba4',1,'key_action_t']]], + ['timeout',['timeout',['../structfwatch__t.html#a261f6a9bc1b13ce714cbcfe4d8620a59',1,'fwatch_t']]], + ['transparent',['transparent',['../structcontainer__t.html#a9a90fbf05f28a066739f31e6fa6ebcf6',1,'container_t::transparent()'],['../structcontainer__info__t.html#a9b5e40e1889b51ea591ccea809af8880',1,'container_info_t::transparent()']]], + ['type',['type',['../structsocket__datagram__header__t.html#a61b4d7c63d263e3c00f02c7e13a82715',1,'socket_datagram_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_13.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_13.html new file mode 100644 index 0000000..88fa653 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_13.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_13.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_13.js new file mode 100644 index 0000000..6f8eede --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_13.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['var_5finfo',['var_info',['../structframe__buffer.html#a3cd2175d95cfe0d2ab3f4d8d1ffc0bf2',1,'frame_buffer']]], + ['version_2ec',['version.c',['../version_8c.html',1,'']]], + ['version_2eh',['version.h',['../version_8h.html',1,'']]], + ['version_5fdate_5fget',['version_date_get',['../version_8c.html#ac1d7273561ab179045ec7ffbbf26dd15',1,'version_date_get(void): version.c'],['../version_8h.html#ac1d7273561ab179045ec7ffbbf26dd15',1,'version_date_get(void): version.c']]], + ['version_5fgit_5fget',['version_git_get',['../version_8c.html#a312ed7725aab60a5d9a525276cd8d2c9',1,'version_git_get(void): version.c'],['../version_8h.html#a312ed7725aab60a5d9a525276cd8d2c9',1,'version_git_get(void): version.c']]], + ['visible',['visible',['../structcontainer__t.html#abc4f1b4dc74d94c2dd01a1316ac84cc7',1,'container_t::visible()'],['../structcontainer__info__t.html#a20328df479ee65c6a5e78cd1a4cd31cc',1,'container_info_t::visible()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_14.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_14.html new file mode 100644 index 0000000..518db1d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_14.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_14.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_14.js new file mode 100644 index 0000000..2f81e1f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_14.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['wait_5ftimeout_5fs',['WAIT_TIMEOUT_S',['../keys_8c.html#ab8ba58644f9627d46b7cbb7134863b66',1,'keys.c']]], + ['webrequest',['WEBREQUEST',['../lmxsocket_8h.html#adc0148621a4198473edf3a2075f288f4',1,'WEBREQUEST(): lmxsocket.h'],['../lmxsocket_8h.html#a361754699a759ce3449219476b6f227fa366b0ceddad9a22be728ac0a559b2bb4',1,'WEBREQUEST(): lmxsocket.h']]], + ['webrequest_2ec',['webrequest.c',['../webrequest_8c.html',1,'']]], + ['webrequest_2eh',['webrequest.h',['../webrequest_8h.html',1,'']]], + ['webrequest_5fclose',['webrequest_close',['../webrequest_8c.html#a71593d09142e24733934de92b987363a',1,'webrequest_close(): webrequest.c'],['../webrequest_8h.html#a71593d09142e24733934de92b987363a',1,'webrequest_close(): webrequest.c']]], + ['webrequest_5fhandle',['webrequest_handle',['../webrequest_8c.html#ae180a90304442ccf67822992faf62779',1,'webrequest.c']]], + ['webrequest_5finit',['webrequest_init',['../webrequest_8c.html#a9b6c87e8646937e58d20e244528eb89c',1,'webrequest_init(): webrequest.c'],['../webrequest_8h.html#a9b6c87e8646937e58d20e244528eb89c',1,'webrequest_init(): webrequest.c']]], + ['webrequest_5fupdate_5fcrosshair',['webrequest_update_crosshair',['../webrequest_8c.html#a7b9b2c0614c1feedd25cbdb7354b2cd3',1,'webrequest.c']]], + ['webrequest_5fupdate_5ftext',['webrequest_update_text',['../webrequest_8c.html#a20a24ed4bb1c585c45381b2c9e56a5d0',1,'webrequest.c']]], + ['width',['width',['../structbmp__header__t.html#a5e2c8f9c3af00a7b3a7eddb65674fb3d',1,'bmp_header_t::width()'],['../structcontainer__t.html#a1ddd859b73bb396b91c3660d28d690e9',1,'container_t::width()'],['../structgimp__bitmap__t.html#a7c67871cc4a591dccdad8364e097729d',1,'gimp_bitmap_t::width()'],['../structframe__buffer.html#ac97cd489d8421b7a1faa897c2774ff1e',1,'frame_buffer::width()'],['../structfont__character__t.html#afc04f5ee227cbf2ba84b243d3438aee6',1,'font_character_t::width()'],['../structcontainer__info__t.html#a73f40909c3718ccadf18fe34f34f6d83',1,'container_info_t::width()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_15.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_15.html new file mode 100644 index 0000000..1331c0d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_15.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_15.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_15.js new file mode 100644 index 0000000..b03c903 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_15.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['x',['x',['../structcontainer__t.html#ae4abec600666b4289eb4cff6df72b40c',1,'container_t::x()'],['../structcoordinate__t.html#a8afa92b641bc97ce4e6e1ab1c5074f1b',1,'coordinate_t::x()'],['../structcontainer__info__t.html#ab412aa9e3782e5a2cbcffac58cdd7fa8',1,'container_info_t::x()']]], + ['x_5fres',['x_res',['../structbmp__header__t.html#a10f1a21504ea598dba94172983928ef0',1,'bmp_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_16.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_16.html new file mode 100644 index 0000000..bec9d5d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_16.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_16.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_16.js new file mode 100644 index 0000000..7399fc1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_16.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['y',['y',['../structcontainer__t.html#a03a8dfe23a6b69d788c496b8c9d8bd05',1,'container_t::y()'],['../structcoordinate__t.html#a31eef5de4d41d2c29ff62c5a19c10879',1,'coordinate_t::y()'],['../structcontainer__info__t.html#ac633ff02409cd5fe500dc6c5ef1b82da',1,'container_info_t::y()']]], + ['y_5fres',['y_res',['../structbmp__header__t.html#a48850a410b7409fedf12501a2676d3ae',1,'bmp_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_2.html new file mode 100644 index 0000000..d15ac65 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_2.js new file mode 100644 index 0000000..cb207ac --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_2.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['bg_5fcolor',['bg_color',['../structcontainer__t.html#aa15998595ab97a9183bf59d6ffb7067f',1,'container_t']]], + ['bits_5fper_5fpixel',['bits_per_pixel',['../structbmp__header__t.html#a6f5786a0568050a2cbeac4e890b6b05f',1,'bmp_header_t::bits_per_pixel()'],['../structcontainer__t.html#ac0a9423a0a24c984c671fcddc73e0a3e',1,'container_t::bits_per_pixel()']]], + ['blue',['BLUE',['../container_8c.html#a79d10e672abb49ad63eeaa8aaef57c38',1,'container.c']]], + ['bmp_2ec',['bmp.c',['../bmp_8c.html',1,'']]], + ['bmp_2eh',['bmp.h',['../bmp_8h.html',1,'']]], + ['bmp_5ffree',['bmp_free',['../bmp_8c.html#a87e64490794ece5944cc5e15c434022a',1,'bmp_free(gimp_bitmap_t **bitmap): bmp.c'],['../bmp_8h.html#a87e64490794ece5944cc5e15c434022a',1,'bmp_free(gimp_bitmap_t **bitmap): bmp.c']]], + ['bmp_5fheader_5ft',['bmp_header_t',['../structbmp__header__t.html',1,'']]], + ['bmp_5fopen',['bmp_open',['../bmp_8c.html#a8d159e5a75c98825f9213b7d66ffcd90',1,'bmp_open(const char *file, gimp_bitmap_t **bitmap): bmp.c'],['../bmp_8h.html#a8d159e5a75c98825f9213b7d66ffcd90',1,'bmp_open(const char *file, gimp_bitmap_t **bitmap): bmp.c']]], + ['bmp_5fopen_5fpath',['bmp_open_path',['../bmp_8c.html#a866d4063788055b00820d13ad0059c08',1,'bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap): bmp.c'],['../bmp_8h.html#a866d4063788055b00820d13ad0059c08',1,'bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap): bmp.c']]], + ['buffer',['buffer',['../structframe__buffer.html#a4a758afb19d7c8d39ab8c6a85340ad2f',1,'frame_buffer']]], + ['buffer_5fsize',['buffer_size',['../structframe__buffer.html#a4236734c858183aeabad4757e5bb8f6b',1,'frame_buffer']]], + ['bytes_5fper_5fpixel',['bytes_per_pixel',['../structgimp__bitmap__t.html#aeaa419d34acb373c53381fcb63a4393f',1,'gimp_bitmap_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_3.html new file mode 100644 index 0000000..9f526c6 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_3.js new file mode 100644 index 0000000..679c42f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_3.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['c',['c',['../structcontainers__t.html#a2df26961e28840e62f03b0c9be470a5b',1,'containers_t']]], + ['cb',['cb',['../structfwatch__client__t.html#aaf2058ea1b2e1c302f3d005ed7b8bc07',1,'fwatch_client_t::cb()'],['../structkey__press__event__t.html#a7087512eb1b5bf16ce0aa29eb5406464',1,'key_press_event_t::cb()']]], + ['character',['character',['../structfont__character__t.html#aba6941cad88d51dd7f343173e2491b44',1,'font_character_t']]], + ['clients',['clients',['../structfwatch__t.html#aad584654423c11412c137cc6764540c6',1,'fwatch_t']]], + ['compression',['compression',['../structbmp__header__t.html#a9e5884647d8d3bd37f2f2cb37b74f8ce',1,'bmp_header_t']]], + ['container',['container',['../structsocket__datagram__header__t.html#afbcf59d680b48498ac82b13ad658cdde',1,'socket_datagram_header_t']]], + ['container_2ec',['container.c',['../container_8c.html',1,'']]], + ['container_2eh',['container.h',['../container_8h.html',1,'']]], + ['container_5farray',['CONTAINER_ARRAY',['../define__containers_8h.html#a15fe0688335d918632aaa055c8653cee',1,'define_containers.h']]], + ['container_5fbitmap_5fat_5fxy',['container_bitmap_at_xy',['../container_8c.html#a4293d6a88aaee4b3a3975c77b8bbc124',1,'container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent): container.c'],['../container_8h.html#a4293d6a88aaee4b3a3975c77b8bbc124',1,'container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent): container.c']]], + ['container_5fclose',['container_close',['../container_8c.html#a34b18ff42f14b31ed2cf2863e785ed97',1,'container_close(): container.c'],['../container_8h.html#a34b18ff42f14b31ed2cf2863e785ed97',1,'container_close(): container.c']]], + ['container_5fcompile',['container_compile',['../container_8c.html#a1f44a225b43ddd4356ffc184bc66b6e2',1,'container_compile(): container.c'],['../container_8h.html#a1f44a225b43ddd4356ffc184bc66b6e2',1,'container_compile(): container.c']]], + ['container_5fdefine',['CONTAINER_DEFINE',['../define__containers_8h.html#ae1d1fd3b33d349b1483d48c95af76c86',1,'define_containers.h']]], + ['container_5fdraw_5fline',['container_draw_line',['../container_8c.html#a8cc0e24ac54388d6d234fed12847fd63',1,'container_draw_line(unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y): container.c'],['../container_8h.html#a8cc0e24ac54388d6d234fed12847fd63',1,'container_draw_line(unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y): container.c']]], + ['container_5ffill_5fbitmap',['container_fill_bitmap',['../container_8c.html#aafbadfbbeb4e49b5a3462d604594d682',1,'container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent): container.c'],['../container_8h.html#aafbadfbbeb4e49b5a3462d604594d682',1,'container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent): container.c']]], + ['container_5fget',['container_get',['../container_8c.html#ad22ccb4b0b0ef32226ade3db74f7aa2b',1,'container_get(int container): container.c'],['../container_8h.html#ab1dce72829611df6ead098c0cd19c391',1,'container_get(int container): container.c']]], + ['container_5fget_5fn',['container_get_n',['../container_8c.html#a47a34fad8fbdc9e9b2860cdffd27f6db',1,'container_get_n(void): container.c'],['../container_8h.html#a47a34fad8fbdc9e9b2860cdffd27f6db',1,'container_get_n(void): container.c']]], + ['container_5fhandle_5fe',['container_handle_e',['../define__containers_8h.html#a354e2962e23cb44197a9013e0ede85d5',1,'define_containers.h']]], + ['container_5fhandle_5fenum',['CONTAINER_HANDLE_ENUM',['../define__containers_8h.html#a7fb111704a02359a42fe360c36f1f7f5',1,'define_containers.h']]], + ['container_5fhandle_5fstr',['CONTAINER_HANDLE_STR',['../define__containers_8h.html#a89ad2b41b8ca4e3745d9d08b0c2177d7',1,'define_containers.h']]], + ['container_5finfo_5ft',['container_info_t',['../structcontainer__info__t.html',1,'']]], + ['container_5fmove',['container_move',['../container_8c.html#aa5f96f030a324b8f61fcdfb7aae14306',1,'container_move(unsigned int container, int delta_x, int delta_y): container.c'],['../container_8h.html#aa5f96f030a324b8f61fcdfb7aae14306',1,'container_move(unsigned int container, int delta_x, int delta_y): container.c']]], + ['container_5fnew',['container_new',['../container_8c.html#a744f004610e0afbb44f3dd05743cea16',1,'container_new(containers_t *containers): container.c'],['../container_8h.html#a744f004610e0afbb44f3dd05743cea16',1,'container_new(containers_t *containers): container.c']]], + ['container_5freset',['container_reset',['../container_8c.html#a38e5aed314dcb5b84228ef4889ead292',1,'container_reset(unsigned int container): container.c'],['../container_8h.html#a38e5aed314dcb5b84228ef4889ead292',1,'container_reset(unsigned int container): container.c']]], + ['container_5ft',['container_t',['../structcontainer__t.html',1,'']]], + ['container_5fvalid',['container_valid',['../container_8c.html#abc054f35bf0ad9a78aa7e180691da095',1,'container.c']]], + ['container_5fvisible',['container_visible',['../container_8c.html#aca08f5445082218d15d1789879b8752a',1,'container_visible(unsigned int container, bool visible): container.c'],['../container_8h.html#aca08f5445082218d15d1789879b8752a',1,'container_visible(unsigned int container, bool visible): container.c']]], + ['containers',['containers',['../structsocket__datagram__lmx__info__t.html#a69fbe939f97ba7bd6289c873ba9c1ac6',1,'socket_datagram_lmx_info_t']]], + ['containers_5ft',['containers_t',['../structcontainers__t.html',1,'']]], + ['coord',['coord',['../structsocket__datagram__lmx__coordinate__t.html#a6fd0fe21d7fb8bb9d8ed88e59af14d6c',1,'socket_datagram_lmx_coordinate_t']]], + ['coordinate_5ft',['coordinate_t',['../structcoordinate__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_4.html new file mode 100644 index 0000000..7b814aa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_4.js new file mode 100644 index 0000000..66cab3a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_4.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['data',['data',['../structcontainer__t.html#a914bee105b6a3e9d0910afb5c15cee90',1,'container_t']]], + ['data_5foffset',['data_offset',['../structbmp__header__t.html#a5d2584a7c0bc3cc0670062b4eb6438c6',1,'bmp_header_t']]], + ['datagram_5fsize',['DATAGRAM_SIZE',['../lmxsocket_8h.html#aad21eecef5c8ad4215d7eab8d0d0abd9',1,'lmxsocket.h']]], + ['define_5fcontainers_2eh',['define_containers.h',['../define__containers_8h.html',1,'']]], + ['description',['description',['../structcontainer__t.html#a342a4ee9fcdb7a78395037aa6118925a',1,'container_t::description()'],['../structcontainer__info__t.html#abfb73cb6bd1a190467c43954806d73f8',1,'container_info_t::description()']]], + ['description_5flenght',['DESCRIPTION_LENGHT',['../lmxsocket_8h.html#a02e9d4115ecbca62fac8e7de381d2125',1,'lmxsocket.h']]], + ['destroy_5fframe_5fbuffer',['destroy_frame_buffer',['../framebuffer_8c.html#a21f951a0f716a5d75c31468588b70d06',1,'destroy_frame_buffer(): framebuffer.c'],['../framebuffer_8h.html#a21f951a0f716a5d75c31468588b70d06',1,'destroy_frame_buffer(): framebuffer.c']]], + ['documentation_2etxt',['documentation.txt',['../documentation_8txt.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_5.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_5.html new file mode 100644 index 0000000..d8de556 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_5.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_5.js new file mode 100644 index 0000000..91127b6 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_5.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['event_5ffile',['EVENT_FILE',['../keys_8c.html#aa2532a4f186824136b91f59a28c6e22b',1,'keys.c']]], + ['event_5fkey_5fhandle_5fe',['event_key_handle_e',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37b',1,'main.c']]], + ['event_5fleft_5fpress_5flong',['EVENT_LEFT_PRESS_LONG',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba5e8e73a2fb11ae47b48954aa6136682b',1,'main.c']]], + ['event_5fleft_5fpress_5fshort',['EVENT_LEFT_PRESS_SHORT',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37baab6fa24218ec996a68c97b667264e1f4',1,'main.c']]], + ['event_5fn',['EVENT_N',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba7be496f4b0f98d4253cf2ecf1a6da9d3',1,'main.c']]], + ['event_5fright_5fpress_5flong',['EVENT_RIGHT_PRESS_LONG',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba6ce6539034179d10c5e9b6cbaf9abc1d',1,'main.c']]], + ['event_5fright_5fpress_5fshort',['EVENT_RIGHT_PRESS_SHORT',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba7ad46440c086e01b0dfa464ca67e8661',1,'main.c']]], + ['event_5ftext_5fsize',['EVENT_TEXT_SIZE',['../main_8c.html#aa96cae48a068f6d727ec70f82eafc0b0',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_6.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_6.html new file mode 100644 index 0000000..9ba0cc2 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_6.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_6.js new file mode 100644 index 0000000..9e447dc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_6.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['fd',['fd',['../structfwatch__client__t.html#ac39ab2a370564b8e2158fe6d86dc21f4',1,'fwatch_client_t']]], + ['file_5fdescriptor',['file_descriptor',['../structframe__buffer.html#aa98bc0af2c02af8185b15a6b3d6b638a',1,'frame_buffer']]], + ['filesize',['filesize',['../structbmp__header__t.html#a0ac493084a0fdf620a79fa6c11892ea7',1,'bmp_header_t']]], + ['fixed_5finfo',['fixed_info',['../structframe__buffer.html#a69e6d92e1c13f76c92102946ec022406',1,'frame_buffer']]], + ['font',['font',['../structfont__character__t.html#a559fc4e9efa9f7ed71447a58965d894e',1,'font_character_t']]], + ['font_5fcharacter_5ft',['font_character_t',['../structfont__character__t.html',1,'']]], + ['for_5feach_5fweb_5frequest_5fstr',['FOR_EACH_WEB_REQUEST_STR',['../lmxjson_8c.html#a2d068c1ff29dc84c6d441731aed4a224',1,'lmxjson.c']]], + ['for_5feach_5fwebrequest_5fenum',['FOR_EACH_WEBREQUEST_ENUM',['../lmxsocket_8h.html#ab9e023185b0ed2389f00359f94f2e686',1,'lmxsocket.h']]], + ['frame',['frame',['../structcontainer__t.html#a00651855b92ac7eea6cc0558c646713a',1,'container_t::frame()'],['../structcontainer__info__t.html#ae3dbd50c7e635a2f0591b08a137346c4',1,'container_info_t::frame()'],['../define__containers_8h.html#a7062c0eec0a974699c8658097e3d3e9d',1,'FRAME(): define_containers.h']]], + ['frame_5fbuffer',['frame_buffer',['../structframe__buffer.html',1,'']]], + ['framebuffer_2ec',['framebuffer.c',['../framebuffer_8c.html',1,'']]], + ['framebuffer_2eh',['framebuffer.h',['../framebuffer_8h.html',1,'']]], + ['framebuffer_5fupdate',['framebuffer_update',['../framebuffer_8c.html#ad40ec39dd2c7a1362b24453da7b955c9',1,'framebuffer_update(void *mem): framebuffer.c'],['../framebuffer_8h.html#ad40ec39dd2c7a1362b24453da7b955c9',1,'framebuffer_update(void *mem): framebuffer.c']]], + ['frames_5fvisible',['FRAMES_VISIBLE',['../container_8c.html#aad158c29e08aeb55580406fa0efdbfbd',1,'FRAMES_VISIBLE(): container.c'],['../define__containers_8h.html#aad158c29e08aeb55580406fa0efdbfbd',1,'FRAMES_VISIBLE(): define_containers.h']]], + ['framesize_5fmem',['framesize_mem',['../structcontainer__t.html#a8647652c5768fe052ce672eedbcf32b9',1,'container_t::framesize_mem()'],['../structcontainer__info__t.html#ad62c9074277fd5ae12fcb927f4897288',1,'container_info_t::framesize_mem()']]], + ['fwatch_2ec',['fwatch.c',['../fwatch_8c.html',1,'']]], + ['fwatch_2eh',['fwatch.h',['../fwatch_8h.html',1,'']]], + ['fwatch_5fadd',['fwatch_add',['../fwatch_8c.html#ac306d4fe403cd34ca791825f2f4a031f',1,'fwatch_add(fwatch_cb_f cb, int fd, char *fname): fwatch.c'],['../fwatch_8h.html#ac306d4fe403cd34ca791825f2f4a031f',1,'fwatch_add(fwatch_cb_f cb, int fd, char *fname): fwatch.c']]], + ['fwatch_5fcb_5ff',['fwatch_cb_f',['../fwatch_8h.html#adc207692eccbe66157caf12f69465f4d',1,'fwatch.h']]], + ['fwatch_5fclient_5ft',['fwatch_client_t',['../structfwatch__client__t.html',1,'']]], + ['fwatch_5fclients_5fmax',['FWATCH_CLIENTS_MAX',['../fwatch_8c.html#a8ab1f8b985fa2397695165f2ff7982d5',1,'fwatch.c']]], + ['fwatch_5fdo',['fwatch_do',['../fwatch_8c.html#a396353d3bfc79e0589141b0f623654b4',1,'fwatch_do(int us): fwatch.c'],['../fwatch_8h.html#a396353d3bfc79e0589141b0f623654b4',1,'fwatch_do(int us): fwatch.c']]], + ['fwatch_5fstart',['fwatch_start',['../fwatch_8c.html#a1790dbc376c1519df52065d1f5482854',1,'fwatch_start(): fwatch.c'],['../fwatch_8h.html#a1790dbc376c1519df52065d1f5482854',1,'fwatch_start(): fwatch.c']]], + ['fwatch_5ft',['fwatch_t',['../structfwatch__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_7.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_7.html new file mode 100644 index 0000000..9384ec9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_7.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_7.js new file mode 100644 index 0000000..6aa8c2a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['gimp_5fbitmap_5ft',['gimp_bitmap_t',['../structgimp__bitmap__t.html',1,'']]], + ['gray_5fscale',['GRAY_SCALE',['../bmp_8c.html#a09a0117bd95a07e61228e1bd30e001a3',1,'bmp.c']]], + ['green',['GREEN',['../container_8c.html#acfbc006ea433ad708fdee3e82996e721',1,'container.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_8.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_8.html new file mode 100644 index 0000000..37566c5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_8.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_8.js new file mode 100644 index 0000000..16dd630 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_8.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['handle',['handle',['../structcontainer__t.html#a959c54d525acae38b7c8fdedd3f71d73',1,'container_t::handle()'],['../structkey__press__event__t.html#a2b948a37090366d7b0833b0b1c14fc38',1,'key_press_event_t::handle()']]], + ['handle_5frequest_5fget',['handle_request_get',['../lmxjson_8c.html#a6536f282f71fb734c0332788de3eade0',1,'lmxjson.c']]], + ['handle_5frequest_5fpost',['handle_request_post',['../lmxjson_8c.html#ae2aa88221ea8ddbd596cec765429bd47',1,'lmxjson.c']]], + ['header',['header',['../structsocket__datagram__lmx__coordinate__t.html#ae3db6d27096f31d1c34fe156f532200d',1,'socket_datagram_lmx_coordinate_t::header()'],['../structsocket__datagram__lmx__move__t.html#aeaa0755956fb5bd09a18b19f03cda685',1,'socket_datagram_lmx_move_t::header()'],['../structsocket__datagram__lmx__text__t.html#aad81c43f54858e3d63ef763a339fd8e4',1,'socket_datagram_lmx_text_t::header()'],['../structsocket__datagram__lmx__info__t.html#a7affdfe5653bace80a1e4453bc7537db',1,'socket_datagram_lmx_info_t::header()']]], + ['header_5fsize',['header_size',['../structbmp__header__t.html#aeb398c15a82e333f11496dfd6b9f4c92',1,'bmp_header_t']]], + ['height',['height',['../structbmp__header__t.html#a6cad50f0cb95db0248af3a6bc9f95b6e',1,'bmp_header_t::height()'],['../structcontainer__t.html#a32496ae57dd9e39e810c8039aa85732a',1,'container_t::height()'],['../structgimp__bitmap__t.html#a73cce8d827839dd84cc33219d2c7a3e6',1,'gimp_bitmap_t::height()'],['../structframe__buffer.html#a0972a7ceb6ee6bf655a9c50e01aab6da',1,'frame_buffer::height()'],['../structfont__character__t.html#aa196e439501895029ba1c53636a00554',1,'font_character_t::height()'],['../structcontainer__info__t.html#a3d11c78eb308964beb296edbd2e68d49',1,'container_info_t::height()']]], + ['html_5fcomment',['HTML_COMMENT',['../lmxjson_8c.html#a909183b2eae1638afd71a364d7f0fda6',1,'lmxjson.c']]], + ['html_5fcomment_5fend',['HTML_COMMENT_END',['../lmxjson_8c.html#a98c5a5572472d27db6b4aed8b195776e',1,'lmxjson.c']]], + ['html_5fpre',['HTML_PRE',['../lmxjson_8c.html#aeb4351c9b4289c39e9cd0255867242da',1,'lmxjson.c']]], + ['html_5fpre_5fend',['HTML_PRE_END',['../lmxjson_8c.html#a794fd6a355435cb45568fb65591b47a0',1,'lmxjson.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_9.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_9.html new file mode 100644 index 0000000..c8c5102 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_9.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_9.js new file mode 100644 index 0000000..0c7ecf6 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['img_5fsize_5fbytes',['img_size_bytes',['../structbmp__header__t.html#a21c4b001c5630a131618d1e2bd63e12b',1,'bmp_header_t']]], + ['intshutdown',['intShutdown',['../main_8c.html#a674eb6cd8a26bbc00d70b74a65605877',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_a.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_a.html new file mode 100644 index 0000000..4cb31f0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_a.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_a.js new file mode 100644 index 0000000..d3251f5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_a.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['key',['key',['../structkey__action__t.html#a49952147e37371755211376d109ed68c',1,'key_action_t::key()'],['../structkey__press__event__t.html#aa85af3aa911eb62b8d04f67def041bec',1,'key_press_event_t::key()']]], + ['key_5faction_5ft',['key_action_t',['../structkey__action__t.html',1,'']]], + ['key_5fchar_5fleft',['KEY_CHAR_LEFT',['../keys_8h.html#addd66edca463e37a3728efa21eb0967cab8a1df682e2d0a5282a3bc2aaa5343e7',1,'keys.h']]], + ['key_5fchar_5fright',['KEY_CHAR_RIGHT',['../keys_8h.html#addd66edca463e37a3728efa21eb0967ca4f66b0186ee3297bf4cec7fbc8bce39a',1,'keys.h']]], + ['key_5fe',['key_e',['../keys_8h.html#addd66edca463e37a3728efa21eb0967c',1,'keys.h']]], + ['key_5fpress_5fcallback',['key_press_callback',['../main_8c.html#a5f2e5df8533a2910763da4132f7b60bf',1,'main.c']]], + ['key_5fpress_5fevent_5ft',['key_press_event_t',['../structkey__press__event__t.html',1,'']]], + ['key_5fpress_5ff',['key_press_f',['../keys_8h.html#ac7fb011a894bbe4eb7c98335226199f3',1,'keys.h']]], + ['key_5ftime_5fdown',['key_time_down',['../keys_8c.html#a611b629c512aab4b85ff9c24a652c63a',1,'keys.c']]], + ['keys_2ec',['keys.c',['../keys_8c.html',1,'']]], + ['keys_2eh',['keys.h',['../keys_8h.html',1,'']]], + ['keys_5fclose',['keys_close',['../keys_8h.html#a504f53b9e379e53d13acfc52e62ac5f4',1,'keys.h']]], + ['keys_5ffile_5fwatch_5fcallback',['keys_file_watch_callback',['../keys_8c.html#a9f2c5250941159efb47013f9fe7dda45',1,'keys.c']]], + ['keys_5fregister_5fcb',['keys_register_cb',['../keys_8c.html#a3d3d1b2fb60401b9a059248f52ca8e9b',1,'keys_register_cb(key_press_f cb, key_e key, double time, int handle): keys.c'],['../keys_8h.html#a3d3d1b2fb60401b9a059248f52ca8e9b',1,'keys_register_cb(key_press_f cb, key_e key, double time, int handle): keys.c']]], + ['keys_5fsort_5fregistered_5fcallbacks',['keys_sort_registered_callbacks',['../keys_8c.html#ab4b0bf52caaeaacfec66607f34fd0783',1,'keys.c']]], + ['keys_5fstart',['keys_start',['../keys_8c.html#a47be8bc596020849db6d45df05c1dfba',1,'keys_start(): keys.c'],['../keys_8h.html#a47be8bc596020849db6d45df05c1dfba',1,'keys_start(): keys.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_b.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_b.html new file mode 100644 index 0000000..d34a612 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_b.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_b.js new file mode 100644 index 0000000..6d00e7c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_b.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['linelength',['linelength',['../structframe__buffer.html#aabfa500e4bf5da00a8fc443e984385eb',1,'frame_buffer']]], + ['lmx_5fh',['LMX_H',['../container_8h.html#a32eb74376930d527a3ca66cd199890bd',1,'container.h']]], + ['lmx_5fpixel_5fheight',['LMX_PIXEL_HEIGHT',['../container_8h.html#a9ae062eeb4ad92b085e787fd2f539853',1,'container.h']]], + ['lmx_5fpixel_5fwidth',['LMX_PIXEL_WIDTH',['../container_8h.html#a5d3d2593b204b4e5b5cbea5edf2a38a6',1,'container.h']]], + ['lmx_5fw',['LMX_W',['../container_8h.html#a712af9d094d3e21b85ecdc794d5c20f5',1,'container.h']]], + ['lmxjson_2ec',['lmxjson.c',['../lmxjson_8c.html',1,'']]], + ['lmxsocket_2eh',['lmxsocket.h',['../lmxsocket_8h.html',1,'']]], + ['log',['LOG',['../log_8h.html#a23e86ba0a2b90581f552cc3d0692be21',1,'log.h']]], + ['log_2eh',['log.h',['../log_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_c.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_c.html new file mode 100644 index 0000000..c1ae2ca --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_c.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_c.js new file mode 100644 index 0000000..8c3882d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_c.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['main',['main',['../main_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): main.c'],['../lmxjson_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): lmxjson.c']]], + ['main_2ec',['main.c',['../main_8c.html',1,'']]], + ['max',['max',['../fwatch_8c.html#affe776513b24d84b39af8ab0930fef7f',1,'fwatch.c']]], + ['maxfd',['maxfd',['../structfwatch__t.html#ad404f91f44e504c3ab57710ee952159e',1,'fwatch_t']]], + ['move',['move',['../structsocket__datagram__lmx__move__t.html#a9c4c749ddf22aec99c09bb65a96ef578',1,'socket_datagram_lmx_move_t']]], + ['move_5fclear',['MOVE_CLEAR',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca0feb673f2c0f9320114eb5e145f9643a',1,'lmxsocket.h']]], + ['move_5fdown',['MOVE_DOWN',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34cac306ffa7a0ee9849d5c7cb1dc9654e96',1,'lmxsocket.h']]], + ['move_5fdown_5fleft',['MOVE_DOWN_LEFT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca2fa8da2a59cb0b185b2bba5eae4355dd',1,'lmxsocket.h']]], + ['move_5fdown_5fright',['MOVE_DOWN_RIGHT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34caa0da783fbea638f455846bf904873589',1,'lmxsocket.h']]], + ['move_5fleft',['MOVE_LEFT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34cae890746014b644c289999b83d5287c11',1,'lmxsocket.h']]], + ['move_5fright',['MOVE_RIGHT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca05e150c88137543939f82e607e3a77e3',1,'lmxsocket.h']]], + ['move_5fup',['MOVE_UP',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34cad1c2df17d4a2cdc3b734e4554ebbced6',1,'lmxsocket.h']]], + ['move_5fup_5fleft',['MOVE_UP_LEFT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca8c123a43a87bc00c197329afe27f0031',1,'lmxsocket.h']]], + ['move_5fup_5fright',['MOVE_UP_RIGHT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34caf3e1c73e08cb94413e5804c13a7b56ae',1,'lmxsocket.h']]], + ['movment_5fe',['movment_e',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34c',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_d.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_d.html new file mode 100644 index 0000000..712223c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_d.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_d.js new file mode 100644 index 0000000..40eae08 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['n',['n',['../structcontainers__t.html#ac36922501ee1230ed68680e5f1476b21',1,'containers_t']]], + ['n_5fbuttons',['N_BUTTONS',['../keys_8c.html#a271dda243b0f5bd7d2053d258eb71962',1,'keys.c']]], + ['n_5fcolors',['n_colors',['../structbmp__header__t.html#ab53c0642fd5b9fe854f88bf4f5be64d0',1,'bmp_header_t']]], + ['n_5fcontainers',['n_containers',['../structsocket__datagram__lmx__info__t.html#a90c667a7d12e18262e0c3ce8d22f9f10',1,'socket_datagram_lmx_info_t::n_containers()'],['../define__containers_8h.html#a354e2962e23cb44197a9013e0ede85d5ad89ddd0453b81e1d59e048726a059949',1,'N_CONTAINERS(): define_containers.h']]], + ['n_5fimportant_5fcolors',['n_important_colors',['../structbmp__header__t.html#a4364880be164aea309daba74f47464a1',1,'bmp_header_t']]], + ['n_5fkey_5fpress_5fcallbacks',['N_KEY_PRESS_CALLBACKS',['../keys_8c.html#aa945195906c215172e6aa00bd1d36f19',1,'keys.c']]], + ['n_5fregistered',['n_registered',['../structfwatch__t.html#a52c3e0b276766bc3398c1f2a1ad1c49e',1,'fwatch_t']]], + ['new_5fframe_5fbuffer',['new_frame_buffer',['../framebuffer_8c.html#a9350cf3a23da4ec1aeee3f7bf279c54b',1,'new_frame_buffer(): framebuffer.c'],['../framebuffer_8h.html#a9350cf3a23da4ec1aeee3f7bf279c54b',1,'new_frame_buffer(): framebuffer.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_e.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_e.html new file mode 100644 index 0000000..d553ffa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_e.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_e.js new file mode 100644 index 0000000..d3ff326 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_e.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['offset_5fcol',['offset_col',['../structfont__character__t.html#ab6be791ac2612bfb97fb46a3dc45d6dc',1,'font_character_t']]], + ['offset_5flowercase',['OFFSET_LOWERCASE',['../text_8c.html#a76645f773315d40c0e394a4946c92c93',1,'text.c']]], + ['offset_5fnumbers',['OFFSET_NUMBERS',['../text_8c.html#a24c20b1b223e4ab1481a13085fb68c63',1,'text.c']]], + ['offset_5frow',['offset_row',['../structfont__character__t.html#a235302c9e5108ae9680d2976f664c325',1,'font_character_t']]], + ['offset_5fspecial',['OFFSET_SPECIAL',['../text_8c.html#ad7e4aa73261a4e3e8e00ca37e90a15ae',1,'text.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_f.html b/stage2/03-install-piaizu/files/fb/docs/html/search/all_f.html new file mode 100644 index 0000000..c77391a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/all_f.js b/stage2/03-install-piaizu/files/fb/docs/html/search/all_f.js new file mode 100644 index 0000000..5f51a36 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/all_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['piaizu_20webserver',['PiAIZU webserver',['../index.html',1,'']]], + ['padding',['padding',['../structcontainer__t.html#a475bff7f994d1b11346434406ee9698b',1,'container_t::padding()'],['../structframe__buffer.html#a931e563e396d5dcb628cd63350dce29a',1,'frame_buffer::padding()']]], + ['pixel_5fdata',['pixel_data',['../structgimp__bitmap__t.html#a658a59a49fde102387788ac759790609',1,'gimp_bitmap_t']]], + ['planes',['planes',['../structbmp__header__t.html#a99795c81232a5c8c0bb0d1724092ef7b',1,'bmp_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.html new file mode 100644 index 0000000..025587a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.js new file mode 100644 index 0000000..d516092 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bmp_5fheader_5ft',['bmp_header_t',['../structbmp__header__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.html new file mode 100644 index 0000000..86dc4ff --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.js new file mode 100644 index 0000000..bbd7fa4 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['container_5finfo_5ft',['container_info_t',['../structcontainer__info__t.html',1,'']]], + ['container_5ft',['container_t',['../structcontainer__t.html',1,'']]], + ['containers_5ft',['containers_t',['../structcontainers__t.html',1,'']]], + ['coordinate_5ft',['coordinate_t',['../structcoordinate__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.html new file mode 100644 index 0000000..014caf8 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.js new file mode 100644 index 0000000..33da521 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['font_5fcharacter_5ft',['font_character_t',['../structfont__character__t.html',1,'']]], + ['frame_5fbuffer',['frame_buffer',['../structframe__buffer.html',1,'']]], + ['fwatch_5fclient_5ft',['fwatch_client_t',['../structfwatch__client__t.html',1,'']]], + ['fwatch_5ft',['fwatch_t',['../structfwatch__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.html new file mode 100644 index 0000000..2e97201 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.js new file mode 100644 index 0000000..442a10d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gimp_5fbitmap_5ft',['gimp_bitmap_t',['../structgimp__bitmap__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.html new file mode 100644 index 0000000..776fee3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.js new file mode 100644 index 0000000..ad62260 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['key_5faction_5ft',['key_action_t',['../structkey__action__t.html',1,'']]], + ['key_5fpress_5fevent_5ft',['key_press_event_t',['../structkey__press__event__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.html b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.html new file mode 100644 index 0000000..69bbcc8 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.js b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.js new file mode 100644 index 0000000..5944175 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/classes_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['socket_5fdatagram_5fheader_5ft',['socket_datagram_header_t',['../structsocket__datagram__header__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5fcoordinate_5ft',['socket_datagram_lmx_coordinate_t',['../structsocket__datagram__lmx__coordinate__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5finfo_5ft',['socket_datagram_lmx_info_t',['../structsocket__datagram__lmx__info__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5fmove_5ft',['socket_datagram_lmx_move_t',['../structsocket__datagram__lmx__move__t.html',1,'']]], + ['socket_5fdatagram_5flmx_5ftext_5ft',['socket_datagram_lmx_text_t',['../structsocket__datagram__lmx__text__t.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/close.png b/stage2/03-install-piaizu/files/fb/docs/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.html new file mode 100644 index 0000000..17cfaa2 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.js new file mode 100644 index 0000000..dcb9811 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5f_5ffilename_5f_5f',['__FILENAME__',['../log_8h.html#a5fccb4fc71e44089a1b1a77fc76c0b68',1,'log.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.html new file mode 100644 index 0000000..5c0025e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.js new file mode 100644 index 0000000..e749b4d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['alpha',['ALPHA',['../container_8c.html#af5abd28c44c29b7397c84f1fec4b1d84',1,'container.c']]], + ['ap_5fanim_5fevery_5fframe',['AP_ANIM_EVERY_FRAME',['../main_8c.html#a964b765595375d21a5ddf317666b52d7',1,'main.c']]], + ['array_5fsize',['ARRAY_SIZE',['../lmxjson_8c.html#a6242a25f9d996f0cc4f4cdb911218b75',1,'lmxjson.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.html new file mode 100644 index 0000000..26f83fa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.js new file mode 100644 index 0000000..9dc9e37 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['wait_5ftimeout_5fs',['WAIT_TIMEOUT_S',['../keys_8c.html#ab8ba58644f9627d46b7cbb7134863b66',1,'keys.c']]], + ['webrequest',['WEBREQUEST',['../lmxsocket_8h.html#adc0148621a4198473edf3a2075f288f4',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.html new file mode 100644 index 0000000..a206bfc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.js new file mode 100644 index 0000000..b70bc9f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['blue',['BLUE',['../container_8c.html#a79d10e672abb49ad63eeaa8aaef57c38',1,'container.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.html new file mode 100644 index 0000000..3826e1f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.js new file mode 100644 index 0000000..545e077 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['container_5farray',['CONTAINER_ARRAY',['../define__containers_8h.html#a15fe0688335d918632aaa055c8653cee',1,'define_containers.h']]], + ['container_5fdefine',['CONTAINER_DEFINE',['../define__containers_8h.html#ae1d1fd3b33d349b1483d48c95af76c86',1,'define_containers.h']]], + ['container_5fhandle_5fenum',['CONTAINER_HANDLE_ENUM',['../define__containers_8h.html#a7fb111704a02359a42fe360c36f1f7f5',1,'define_containers.h']]], + ['container_5fhandle_5fstr',['CONTAINER_HANDLE_STR',['../define__containers_8h.html#a89ad2b41b8ca4e3745d9d08b0c2177d7',1,'define_containers.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.html new file mode 100644 index 0000000..c6864f7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.js new file mode 100644 index 0000000..d0ffc9f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['datagram_5fsize',['DATAGRAM_SIZE',['../lmxsocket_8h.html#aad21eecef5c8ad4215d7eab8d0d0abd9',1,'lmxsocket.h']]], + ['description_5flenght',['DESCRIPTION_LENGHT',['../lmxsocket_8h.html#a02e9d4115ecbca62fac8e7de381d2125',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.html new file mode 100644 index 0000000..eff6551 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.js new file mode 100644 index 0000000..10cc12e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['event_5ffile',['EVENT_FILE',['../keys_8c.html#aa2532a4f186824136b91f59a28c6e22b',1,'keys.c']]], + ['event_5ftext_5fsize',['EVENT_TEXT_SIZE',['../main_8c.html#aa96cae48a068f6d727ec70f82eafc0b0',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.html new file mode 100644 index 0000000..5782e69 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.js new file mode 100644 index 0000000..b4f409d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['for_5feach_5fweb_5frequest_5fstr',['FOR_EACH_WEB_REQUEST_STR',['../lmxjson_8c.html#a2d068c1ff29dc84c6d441731aed4a224',1,'lmxjson.c']]], + ['for_5feach_5fwebrequest_5fenum',['FOR_EACH_WEBREQUEST_ENUM',['../lmxsocket_8h.html#ab9e023185b0ed2389f00359f94f2e686',1,'lmxsocket.h']]], + ['frame',['FRAME',['../define__containers_8h.html#a7062c0eec0a974699c8658097e3d3e9d',1,'define_containers.h']]], + ['frames_5fvisible',['FRAMES_VISIBLE',['../container_8c.html#aad158c29e08aeb55580406fa0efdbfbd',1,'FRAMES_VISIBLE(): container.c'],['../define__containers_8h.html#aad158c29e08aeb55580406fa0efdbfbd',1,'FRAMES_VISIBLE(): define_containers.h']]], + ['fwatch_5fclients_5fmax',['FWATCH_CLIENTS_MAX',['../fwatch_8c.html#a8ab1f8b985fa2397695165f2ff7982d5',1,'fwatch.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.html new file mode 100644 index 0000000..5911e54 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.js new file mode 100644 index 0000000..3c593e1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['gray_5fscale',['GRAY_SCALE',['../bmp_8c.html#a09a0117bd95a07e61228e1bd30e001a3',1,'bmp.c']]], + ['green',['GREEN',['../container_8c.html#acfbc006ea433ad708fdee3e82996e721',1,'container.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.html new file mode 100644 index 0000000..943c11e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.js new file mode 100644 index 0000000..f866394 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['html_5fcomment',['HTML_COMMENT',['../lmxjson_8c.html#a909183b2eae1638afd71a364d7f0fda6',1,'lmxjson.c']]], + ['html_5fcomment_5fend',['HTML_COMMENT_END',['../lmxjson_8c.html#a98c5a5572472d27db6b4aed8b195776e',1,'lmxjson.c']]], + ['html_5fpre',['HTML_PRE',['../lmxjson_8c.html#aeb4351c9b4289c39e9cd0255867242da',1,'lmxjson.c']]], + ['html_5fpre_5fend',['HTML_PRE_END',['../lmxjson_8c.html#a794fd6a355435cb45568fb65591b47a0',1,'lmxjson.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.html new file mode 100644 index 0000000..f68b51b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.js new file mode 100644 index 0000000..936c882 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['lmx_5fh',['LMX_H',['../container_8h.html#a32eb74376930d527a3ca66cd199890bd',1,'container.h']]], + ['lmx_5fpixel_5fheight',['LMX_PIXEL_HEIGHT',['../container_8h.html#a9ae062eeb4ad92b085e787fd2f539853',1,'container.h']]], + ['lmx_5fpixel_5fwidth',['LMX_PIXEL_WIDTH',['../container_8h.html#a5d3d2593b204b4e5b5cbea5edf2a38a6',1,'container.h']]], + ['lmx_5fw',['LMX_W',['../container_8h.html#a712af9d094d3e21b85ecdc794d5c20f5',1,'container.h']]], + ['log',['LOG',['../log_8h.html#a23e86ba0a2b90581f552cc3d0692be21',1,'log.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.html new file mode 100644 index 0000000..8236596 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.js new file mode 100644 index 0000000..8433f7a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['max',['max',['../fwatch_8c.html#affe776513b24d84b39af8ab0930fef7f',1,'fwatch.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.html new file mode 100644 index 0000000..06064aa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.js new file mode 100644 index 0000000..a5fbd90 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['n_5fbuttons',['N_BUTTONS',['../keys_8c.html#a271dda243b0f5bd7d2053d258eb71962',1,'keys.c']]], + ['n_5fkey_5fpress_5fcallbacks',['N_KEY_PRESS_CALLBACKS',['../keys_8c.html#aa945195906c215172e6aa00bd1d36f19',1,'keys.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.html new file mode 100644 index 0000000..29bd2b3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.js new file mode 100644 index 0000000..0c119f8 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['offset_5flowercase',['OFFSET_LOWERCASE',['../text_8c.html#a76645f773315d40c0e394a4946c92c93',1,'text.c']]], + ['offset_5fnumbers',['OFFSET_NUMBERS',['../text_8c.html#a24c20b1b223e4ab1481a13085fb68c63',1,'text.c']]], + ['offset_5fspecial',['OFFSET_SPECIAL',['../text_8c.html#ad7e4aa73261a4e3e8e00ca37e90a15ae',1,'text.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.html new file mode 100644 index 0000000..977da06 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.js new file mode 100644 index 0000000..48cde92 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['red',['RED',['../container_8c.html#a8d23feea868a983c8c2b661e1e16972f',1,'container.c']]], + ['rgb_5fbitmask',['RGB_BITMASK',['../container_8c.html#ae31c7b5654038d07c0d4ac6a9b8b685d',1,'container.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.html new file mode 100644 index 0000000..bdf8b21 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.js new file mode 100644 index 0000000..817b474 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['socket_5fname',['SOCKET_NAME',['../lmxsocket_8h.html#a8bef388d9b2673363c0069157d3beab3',1,'lmxsocket.h']]], + ['start_5fframe',['START_FRAME',['../main_8c.html#a0b51846c82f364ec10db44ad8c251bd8',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.html b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.html new file mode 100644 index 0000000..8179336 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.js b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.js new file mode 100644 index 0000000..b24a8e0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/defines_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['text_5flength',['TEXT_LENGTH',['../lmxsocket_8h.html#a14608b60296aeb2c56a375285a108c34',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.html new file mode 100644 index 0000000..aba8d79 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.js new file mode 100644 index 0000000..c167dfc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['container_5fhandle_5fe',['container_handle_e',['../define__containers_8h.html#a354e2962e23cb44197a9013e0ede85d5',1,'define_containers.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.html new file mode 100644 index 0000000..a8d3843 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.js new file mode 100644 index 0000000..b6c85c2 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['event_5fkey_5fhandle_5fe',['event_key_handle_e',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37b',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.html new file mode 100644 index 0000000..ef7d632 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.js new file mode 100644 index 0000000..38860fb --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_5fe',['key_e',['../keys_8h.html#addd66edca463e37a3728efa21eb0967c',1,'keys.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.html new file mode 100644 index 0000000..57bac2e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.js new file mode 100644 index 0000000..b9119d9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['movment_5fe',['movment_e',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34c',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.html new file mode 100644 index 0000000..f35d7a7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.js new file mode 100644 index 0000000..3e41159 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enums_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['socket_5fdatagram_5ftype_5ft',['socket_datagram_type_t',['../lmxsocket_8h.html#a361754699a759ce3449219476b6f227f',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.html new file mode 100644 index 0000000..83192d3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.js new file mode 100644 index 0000000..f2d2c97 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['event_5fleft_5fpress_5flong',['EVENT_LEFT_PRESS_LONG',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba5e8e73a2fb11ae47b48954aa6136682b',1,'main.c']]], + ['event_5fleft_5fpress_5fshort',['EVENT_LEFT_PRESS_SHORT',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37baab6fa24218ec996a68c97b667264e1f4',1,'main.c']]], + ['event_5fn',['EVENT_N',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba7be496f4b0f98d4253cf2ecf1a6da9d3',1,'main.c']]], + ['event_5fright_5fpress_5flong',['EVENT_RIGHT_PRESS_LONG',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba6ce6539034179d10c5e9b6cbaf9abc1d',1,'main.c']]], + ['event_5fright_5fpress_5fshort',['EVENT_RIGHT_PRESS_SHORT',['../main_8c.html#a2f529a1100a1ad7c50486cebd796b37ba7ad46440c086e01b0dfa464ca67e8661',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.html new file mode 100644 index 0000000..0715ef5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.js new file mode 100644 index 0000000..b31cd0d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['key_5fchar_5fleft',['KEY_CHAR_LEFT',['../keys_8h.html#addd66edca463e37a3728efa21eb0967cab8a1df682e2d0a5282a3bc2aaa5343e7',1,'keys.h']]], + ['key_5fchar_5fright',['KEY_CHAR_RIGHT',['../keys_8h.html#addd66edca463e37a3728efa21eb0967ca4f66b0186ee3297bf4cec7fbc8bce39a',1,'keys.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.html new file mode 100644 index 0000000..0f9b5e9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.js new file mode 100644 index 0000000..dcc6f3c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_2.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['move_5fclear',['MOVE_CLEAR',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca0feb673f2c0f9320114eb5e145f9643a',1,'lmxsocket.h']]], + ['move_5fdown',['MOVE_DOWN',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34cac306ffa7a0ee9849d5c7cb1dc9654e96',1,'lmxsocket.h']]], + ['move_5fdown_5fleft',['MOVE_DOWN_LEFT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca2fa8da2a59cb0b185b2bba5eae4355dd',1,'lmxsocket.h']]], + ['move_5fdown_5fright',['MOVE_DOWN_RIGHT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34caa0da783fbea638f455846bf904873589',1,'lmxsocket.h']]], + ['move_5fleft',['MOVE_LEFT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34cae890746014b644c289999b83d5287c11',1,'lmxsocket.h']]], + ['move_5fright',['MOVE_RIGHT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca05e150c88137543939f82e607e3a77e3',1,'lmxsocket.h']]], + ['move_5fup',['MOVE_UP',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34cad1c2df17d4a2cdc3b734e4554ebbced6',1,'lmxsocket.h']]], + ['move_5fup_5fleft',['MOVE_UP_LEFT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34ca8c123a43a87bc00c197329afe27f0031',1,'lmxsocket.h']]], + ['move_5fup_5fright',['MOVE_UP_RIGHT',['../lmxsocket_8h.html#a40090aa4ce0eccc6b13f1a6155c6d34caf3e1c73e08cb94413e5804c13a7b56ae',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.html new file mode 100644 index 0000000..9ebb356 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.js new file mode 100644 index 0000000..2ea2d6d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['n_5fcontainers',['N_CONTAINERS',['../define__containers_8h.html#a354e2962e23cb44197a9013e0ede85d5ad89ddd0453b81e1d59e048726a059949',1,'define_containers.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.html new file mode 100644 index 0000000..daa496d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.js new file mode 100644 index 0000000..f463f34 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['webrequest',['WEBREQUEST',['../lmxsocket_8h.html#a361754699a759ce3449219476b6f227fa366b0ceddad9a22be728ac0a559b2bb4',1,'lmxsocket.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_0.html new file mode 100644 index 0000000..0b637cf --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_0.js new file mode 100644 index 0000000..280ecf5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['bmp_2ec',['bmp.c',['../bmp_8c.html',1,'']]], + ['bmp_2eh',['bmp.h',['../bmp_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_1.html new file mode 100644 index 0000000..1094e74 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_1.js new file mode 100644 index 0000000..f657a5a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['container_2ec',['container.c',['../container_8c.html',1,'']]], + ['container_2eh',['container.h',['../container_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_2.html new file mode 100644 index 0000000..a08dbd3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_2.js new file mode 100644 index 0000000..aaf40c0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['define_5fcontainers_2eh',['define_containers.h',['../define__containers_8h.html',1,'']]], + ['documentation_2etxt',['documentation.txt',['../documentation_8txt.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_3.html new file mode 100644 index 0000000..647fc8d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_3.js new file mode 100644 index 0000000..3f477b9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['framebuffer_2ec',['framebuffer.c',['../framebuffer_8c.html',1,'']]], + ['framebuffer_2eh',['framebuffer.h',['../framebuffer_8h.html',1,'']]], + ['fwatch_2ec',['fwatch.c',['../fwatch_8c.html',1,'']]], + ['fwatch_2eh',['fwatch.h',['../fwatch_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_4.html new file mode 100644 index 0000000..186557a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_4.js new file mode 100644 index 0000000..7e9005c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['keys_2ec',['keys.c',['../keys_8c.html',1,'']]], + ['keys_2eh',['keys.h',['../keys_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_5.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_5.html new file mode 100644 index 0000000..671abd3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_5.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_5.js new file mode 100644 index 0000000..4ade474 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['lmxjson_2ec',['lmxjson.c',['../lmxjson_8c.html',1,'']]], + ['lmxsocket_2eh',['lmxsocket.h',['../lmxsocket_8h.html',1,'']]], + ['log_2eh',['log.h',['../log_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_6.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_6.html new file mode 100644 index 0000000..73aff18 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_6.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_6.js new file mode 100644 index 0000000..1fe57ff --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_2ec',['main.c',['../main_8c.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_7.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_7.html new file mode 100644 index 0000000..364f420 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_7.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_7.js new file mode 100644 index 0000000..6fcfb5f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['text_2ec',['text.c',['../text_8c.html',1,'']]], + ['text_2eh',['text.h',['../text_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_8.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_8.html new file mode 100644 index 0000000..f9f7943 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_8.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_8.js new file mode 100644 index 0000000..2add766 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['version_2ec',['version.c',['../version_8c.html',1,'']]], + ['version_2eh',['version.h',['../version_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_9.html b/stage2/03-install-piaizu/files/fb/docs/html/search/files_9.html new file mode 100644 index 0000000..306f000 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/files_9.js b/stage2/03-install-piaizu/files/fb/docs/html/search/files_9.js new file mode 100644 index 0000000..f7a4be5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/files_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['webrequest_2ec',['webrequest.c',['../webrequest_8c.html',1,'']]], + ['webrequest_2eh',['webrequest.h',['../webrequest_8h.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.html new file mode 100644 index 0000000..6bc52b6 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.js new file mode 100644 index 0000000..e417066 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['animate_5fsony_5flogi',['animate_sony_logi',['../main_8c.html#a2ab8c93790d4e1eab20bceb8083ed5fb',1,'main.c']]], + ['animate_5fwifi_5fap',['animate_wifi_ap',['../main_8c.html#a15ce6192d420dcd6e231a59d721aefc0',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.html new file mode 100644 index 0000000..648831f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.js new file mode 100644 index 0000000..7832baa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['bmp_5ffree',['bmp_free',['../bmp_8c.html#a87e64490794ece5944cc5e15c434022a',1,'bmp_free(gimp_bitmap_t **bitmap): bmp.c'],['../bmp_8h.html#a87e64490794ece5944cc5e15c434022a',1,'bmp_free(gimp_bitmap_t **bitmap): bmp.c']]], + ['bmp_5fopen',['bmp_open',['../bmp_8c.html#a8d159e5a75c98825f9213b7d66ffcd90',1,'bmp_open(const char *file, gimp_bitmap_t **bitmap): bmp.c'],['../bmp_8h.html#a8d159e5a75c98825f9213b7d66ffcd90',1,'bmp_open(const char *file, gimp_bitmap_t **bitmap): bmp.c']]], + ['bmp_5fopen_5fpath',['bmp_open_path',['../bmp_8c.html#a866d4063788055b00820d13ad0059c08',1,'bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap): bmp.c'],['../bmp_8h.html#a866d4063788055b00820d13ad0059c08',1,'bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap): bmp.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.html new file mode 100644 index 0000000..c93d089 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.js new file mode 100644 index 0000000..d2ac4f0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_2.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['container_5fbitmap_5fat_5fxy',['container_bitmap_at_xy',['../container_8c.html#a4293d6a88aaee4b3a3975c77b8bbc124',1,'container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent): container.c'],['../container_8h.html#a4293d6a88aaee4b3a3975c77b8bbc124',1,'container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent): container.c']]], + ['container_5fclose',['container_close',['../container_8c.html#a34b18ff42f14b31ed2cf2863e785ed97',1,'container_close(): container.c'],['../container_8h.html#a34b18ff42f14b31ed2cf2863e785ed97',1,'container_close(): container.c']]], + ['container_5fcompile',['container_compile',['../container_8c.html#a1f44a225b43ddd4356ffc184bc66b6e2',1,'container_compile(): container.c'],['../container_8h.html#a1f44a225b43ddd4356ffc184bc66b6e2',1,'container_compile(): container.c']]], + ['container_5fdraw_5fline',['container_draw_line',['../container_8c.html#a8cc0e24ac54388d6d234fed12847fd63',1,'container_draw_line(unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y): container.c'],['../container_8h.html#a8cc0e24ac54388d6d234fed12847fd63',1,'container_draw_line(unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y): container.c']]], + ['container_5ffill_5fbitmap',['container_fill_bitmap',['../container_8c.html#aafbadfbbeb4e49b5a3462d604594d682',1,'container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent): container.c'],['../container_8h.html#aafbadfbbeb4e49b5a3462d604594d682',1,'container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent): container.c']]], + ['container_5fget',['container_get',['../container_8c.html#ad22ccb4b0b0ef32226ade3db74f7aa2b',1,'container_get(int container): container.c'],['../container_8h.html#ab1dce72829611df6ead098c0cd19c391',1,'container_get(int container): container.c']]], + ['container_5fget_5fn',['container_get_n',['../container_8c.html#a47a34fad8fbdc9e9b2860cdffd27f6db',1,'container_get_n(void): container.c'],['../container_8h.html#a47a34fad8fbdc9e9b2860cdffd27f6db',1,'container_get_n(void): container.c']]], + ['container_5fmove',['container_move',['../container_8c.html#aa5f96f030a324b8f61fcdfb7aae14306',1,'container_move(unsigned int container, int delta_x, int delta_y): container.c'],['../container_8h.html#aa5f96f030a324b8f61fcdfb7aae14306',1,'container_move(unsigned int container, int delta_x, int delta_y): container.c']]], + ['container_5fnew',['container_new',['../container_8c.html#a744f004610e0afbb44f3dd05743cea16',1,'container_new(containers_t *containers): container.c'],['../container_8h.html#a744f004610e0afbb44f3dd05743cea16',1,'container_new(containers_t *containers): container.c']]], + ['container_5freset',['container_reset',['../container_8c.html#a38e5aed314dcb5b84228ef4889ead292',1,'container_reset(unsigned int container): container.c'],['../container_8h.html#a38e5aed314dcb5b84228ef4889ead292',1,'container_reset(unsigned int container): container.c']]], + ['container_5fvalid',['container_valid',['../container_8c.html#abc054f35bf0ad9a78aa7e180691da095',1,'container.c']]], + ['container_5fvisible',['container_visible',['../container_8c.html#aca08f5445082218d15d1789879b8752a',1,'container_visible(unsigned int container, bool visible): container.c'],['../container_8h.html#aca08f5445082218d15d1789879b8752a',1,'container_visible(unsigned int container, bool visible): container.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.html new file mode 100644 index 0000000..caa48ea --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.js new file mode 100644 index 0000000..a52d9e5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['destroy_5fframe_5fbuffer',['destroy_frame_buffer',['../framebuffer_8c.html#a21f951a0f716a5d75c31468588b70d06',1,'destroy_frame_buffer(): framebuffer.c'],['../framebuffer_8h.html#a21f951a0f716a5d75c31468588b70d06',1,'destroy_frame_buffer(): framebuffer.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.html new file mode 100644 index 0000000..a9c64ad --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.js new file mode 100644 index 0000000..a528267 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['framebuffer_5fupdate',['framebuffer_update',['../framebuffer_8c.html#ad40ec39dd2c7a1362b24453da7b955c9',1,'framebuffer_update(void *mem): framebuffer.c'],['../framebuffer_8h.html#ad40ec39dd2c7a1362b24453da7b955c9',1,'framebuffer_update(void *mem): framebuffer.c']]], + ['fwatch_5fadd',['fwatch_add',['../fwatch_8c.html#ac306d4fe403cd34ca791825f2f4a031f',1,'fwatch_add(fwatch_cb_f cb, int fd, char *fname): fwatch.c'],['../fwatch_8h.html#ac306d4fe403cd34ca791825f2f4a031f',1,'fwatch_add(fwatch_cb_f cb, int fd, char *fname): fwatch.c']]], + ['fwatch_5fdo',['fwatch_do',['../fwatch_8c.html#a396353d3bfc79e0589141b0f623654b4',1,'fwatch_do(int us): fwatch.c'],['../fwatch_8h.html#a396353d3bfc79e0589141b0f623654b4',1,'fwatch_do(int us): fwatch.c']]], + ['fwatch_5fstart',['fwatch_start',['../fwatch_8c.html#a1790dbc376c1519df52065d1f5482854',1,'fwatch_start(): fwatch.c'],['../fwatch_8h.html#a1790dbc376c1519df52065d1f5482854',1,'fwatch_start(): fwatch.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.html new file mode 100644 index 0000000..9d135fa --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.js new file mode 100644 index 0000000..2a7e344 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handle_5frequest_5fget',['handle_request_get',['../lmxjson_8c.html#a6536f282f71fb734c0332788de3eade0',1,'lmxjson.c']]], + ['handle_5frequest_5fpost',['handle_request_post',['../lmxjson_8c.html#ae2aa88221ea8ddbd596cec765429bd47',1,'lmxjson.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.html new file mode 100644 index 0000000..5fca897 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.js new file mode 100644 index 0000000..92a1b46 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['intshutdown',['intShutdown',['../main_8c.html#a674eb6cd8a26bbc00d70b74a65605877',1,'main.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.html new file mode 100644 index 0000000..02631a3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.js new file mode 100644 index 0000000..b0a9998 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_7.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['key_5fpress_5fcallback',['key_press_callback',['../main_8c.html#a5f2e5df8533a2910763da4132f7b60bf',1,'main.c']]], + ['key_5ftime_5fdown',['key_time_down',['../keys_8c.html#a611b629c512aab4b85ff9c24a652c63a',1,'keys.c']]], + ['keys_5fclose',['keys_close',['../keys_8h.html#a504f53b9e379e53d13acfc52e62ac5f4',1,'keys.h']]], + ['keys_5ffile_5fwatch_5fcallback',['keys_file_watch_callback',['../keys_8c.html#a9f2c5250941159efb47013f9fe7dda45',1,'keys.c']]], + ['keys_5fregister_5fcb',['keys_register_cb',['../keys_8c.html#a3d3d1b2fb60401b9a059248f52ca8e9b',1,'keys_register_cb(key_press_f cb, key_e key, double time, int handle): keys.c'],['../keys_8h.html#a3d3d1b2fb60401b9a059248f52ca8e9b',1,'keys_register_cb(key_press_f cb, key_e key, double time, int handle): keys.c']]], + ['keys_5fsort_5fregistered_5fcallbacks',['keys_sort_registered_callbacks',['../keys_8c.html#ab4b0bf52caaeaacfec66607f34fd0783',1,'keys.c']]], + ['keys_5fstart',['keys_start',['../keys_8c.html#a47be8bc596020849db6d45df05c1dfba',1,'keys_start(): keys.c'],['../keys_8h.html#a47be8bc596020849db6d45df05c1dfba',1,'keys_start(): keys.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.html new file mode 100644 index 0000000..ff37095 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.js new file mode 100644 index 0000000..6698dc1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main',['main',['../main_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): main.c'],['../lmxjson_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): lmxjson.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.html new file mode 100644 index 0000000..1d34583 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.js new file mode 100644 index 0000000..8ad838a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['new_5fframe_5fbuffer',['new_frame_buffer',['../framebuffer_8c.html#a9350cf3a23da4ec1aeee3f7bf279c54b',1,'new_frame_buffer(): framebuffer.c'],['../framebuffer_8h.html#a9350cf3a23da4ec1aeee3f7bf279c54b',1,'new_frame_buffer(): framebuffer.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.html new file mode 100644 index 0000000..8eb5e56 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.js new file mode 100644 index 0000000..587f448 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['send_5fdatagram',['send_datagram',['../lmxjson_8c.html#a4818cd27c1a79914d937d05dfcf6acf6',1,'lmxjson.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.html new file mode 100644 index 0000000..fa9cff5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.js new file mode 100644 index 0000000..267033a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['text_5fclose',['text_close',['../text_8c.html#a4dac91da42d307349880be6953933667',1,'text_close(): text.c'],['../text_8h.html#a4dac91da42d307349880be6953933667',1,'text_close(): text.c']]], + ['text_5fget_5fchar_5fbitmap',['text_get_char_bitmap',['../text_8c.html#a5c3bac04613ceb735332fcf3e54bfe36',1,'text.c']]], + ['text_5fget_5fchar_5ffont',['text_get_char_font',['../text_8c.html#aafdbf9301217d95e8e76b9946b1ffc16',1,'text.c']]], + ['text_5finit',['text_init',['../text_8c.html#a8e5b8db4a9381a196dca3500d0b4c862',1,'text_init(): text.c'],['../text_8h.html#a8e5b8db4a9381a196dca3500d0b4c862',1,'text_init(): text.c']]], + ['text_5fput',['text_put',['../text_8c.html#a2c3d471149c5f168689e8b4a2416fb1e',1,'text_put(int container, char *string): text.c'],['../text_8h.html#a2c3d471149c5f168689e8b4a2416fb1e',1,'text_put(int container, char *string): text.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.html new file mode 100644 index 0000000..fce7a6b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.js new file mode 100644 index 0000000..60f7415 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['version_5fdate_5fget',['version_date_get',['../version_8c.html#ac1d7273561ab179045ec7ffbbf26dd15',1,'version_date_get(void): version.c'],['../version_8h.html#ac1d7273561ab179045ec7ffbbf26dd15',1,'version_date_get(void): version.c']]], + ['version_5fgit_5fget',['version_git_get',['../version_8c.html#a312ed7725aab60a5d9a525276cd8d2c9',1,'version_git_get(void): version.c'],['../version_8h.html#a312ed7725aab60a5d9a525276cd8d2c9',1,'version_git_get(void): version.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.html b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.html new file mode 100644 index 0000000..82b2b0c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.js b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.js new file mode 100644 index 0000000..6d3fb3f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/functions_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['webrequest_5fclose',['webrequest_close',['../webrequest_8c.html#a71593d09142e24733934de92b987363a',1,'webrequest_close(): webrequest.c'],['../webrequest_8h.html#a71593d09142e24733934de92b987363a',1,'webrequest_close(): webrequest.c']]], + ['webrequest_5fhandle',['webrequest_handle',['../webrequest_8c.html#ae180a90304442ccf67822992faf62779',1,'webrequest.c']]], + ['webrequest_5finit',['webrequest_init',['../webrequest_8c.html#a9b6c87e8646937e58d20e244528eb89c',1,'webrequest_init(): webrequest.c'],['../webrequest_8h.html#a9b6c87e8646937e58d20e244528eb89c',1,'webrequest_init(): webrequest.c']]], + ['webrequest_5fupdate_5fcrosshair',['webrequest_update_crosshair',['../webrequest_8c.html#a7b9b2c0614c1feedd25cbdb7354b2cd3',1,'webrequest.c']]], + ['webrequest_5fupdate_5ftext',['webrequest_update_text',['../webrequest_8c.html#a20a24ed4bb1c585c45381b2c9e56a5d0',1,'webrequest.c']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/mag_sel.png b/stage2/03-install-piaizu/files/fb/docs/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/nomatches.html b/stage2/03-install-piaizu/files/fb/docs/html/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.html new file mode 100644 index 0000000..0db7267 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.js new file mode 100644 index 0000000..18461ea --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['piaizu_20webserver',['PiAIZU webserver',['../index.html',1,'']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/search.css b/stage2/03-install-piaizu/files/fb/docs/html/search/search.css new file mode 100644 index 0000000..4d7612f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/search.js b/stage2/03-install-piaizu/files/fb/docs/html/search/search.js new file mode 100644 index 0000000..dedce3b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/search.js @@ -0,0 +1,791 @@ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/search_r.png b/stage2/03-install-piaizu/files/fb/docs/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_0.js new file mode 100644 index 0000000..b1f25ca --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fwatch_5fcb_5ff',['fwatch_cb_f',['../fwatch_8h.html#adc207692eccbe66157caf12f69465f4d',1,'fwatch.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.html new file mode 100644 index 0000000..6edac96 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.js new file mode 100644 index 0000000..0521dde --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_5fpress_5ff',['key_press_f',['../keys_8h.html#ac7fb011a894bbe4eb7c98335226199f3',1,'keys.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.html new file mode 100644 index 0000000..cc5cc40 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.js new file mode 100644 index 0000000..b9481f7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/typedefs_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rgba_5ft',['rgba_t',['../container_8h.html#a677f336708895229045de5be0052a3a3',1,'container.h']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.html new file mode 100644 index 0000000..3835278 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.js new file mode 100644 index 0000000..0e3b06a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['bg_5fcolor',['bg_color',['../structcontainer__t.html#aa15998595ab97a9183bf59d6ffb7067f',1,'container_t']]], + ['bits_5fper_5fpixel',['bits_per_pixel',['../structbmp__header__t.html#a6f5786a0568050a2cbeac4e890b6b05f',1,'bmp_header_t::bits_per_pixel()'],['../structcontainer__t.html#ac0a9423a0a24c984c671fcddc73e0a3e',1,'container_t::bits_per_pixel()']]], + ['buffer',['buffer',['../structframe__buffer.html#a4a758afb19d7c8d39ab8c6a85340ad2f',1,'frame_buffer']]], + ['buffer_5fsize',['buffer_size',['../structframe__buffer.html#a4236734c858183aeabad4757e5bb8f6b',1,'frame_buffer']]], + ['bytes_5fper_5fpixel',['bytes_per_pixel',['../structgimp__bitmap__t.html#aeaa419d34acb373c53381fcb63a4393f',1,'gimp_bitmap_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.html new file mode 100644 index 0000000..3c65cf2 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.js new file mode 100644 index 0000000..dccda06 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_1.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['c',['c',['../structcontainers__t.html#a2df26961e28840e62f03b0c9be470a5b',1,'containers_t']]], + ['cb',['cb',['../structfwatch__client__t.html#aaf2058ea1b2e1c302f3d005ed7b8bc07',1,'fwatch_client_t::cb()'],['../structkey__press__event__t.html#a7087512eb1b5bf16ce0aa29eb5406464',1,'key_press_event_t::cb()']]], + ['character',['character',['../structfont__character__t.html#aba6941cad88d51dd7f343173e2491b44',1,'font_character_t']]], + ['clients',['clients',['../structfwatch__t.html#aad584654423c11412c137cc6764540c6',1,'fwatch_t']]], + ['compression',['compression',['../structbmp__header__t.html#a9e5884647d8d3bd37f2f2cb37b74f8ce',1,'bmp_header_t']]], + ['container',['container',['../structsocket__datagram__header__t.html#afbcf59d680b48498ac82b13ad658cdde',1,'socket_datagram_header_t']]], + ['containers',['containers',['../structsocket__datagram__lmx__info__t.html#a69fbe939f97ba7bd6289c873ba9c1ac6',1,'socket_datagram_lmx_info_t']]], + ['coord',['coord',['../structsocket__datagram__lmx__coordinate__t.html#a6fd0fe21d7fb8bb9d8ed88e59af14d6c',1,'socket_datagram_lmx_coordinate_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.html new file mode 100644 index 0000000..52b5fe8 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.js new file mode 100644 index 0000000..b57b98a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['width',['width',['../structbmp__header__t.html#a5e2c8f9c3af00a7b3a7eddb65674fb3d',1,'bmp_header_t::width()'],['../structcontainer__t.html#a1ddd859b73bb396b91c3660d28d690e9',1,'container_t::width()'],['../structgimp__bitmap__t.html#a7c67871cc4a591dccdad8364e097729d',1,'gimp_bitmap_t::width()'],['../structframe__buffer.html#ac97cd489d8421b7a1faa897c2774ff1e',1,'frame_buffer::width()'],['../structfont__character__t.html#afc04f5ee227cbf2ba84b243d3438aee6',1,'font_character_t::width()'],['../structcontainer__info__t.html#a73f40909c3718ccadf18fe34f34f6d83',1,'container_info_t::width()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.html new file mode 100644 index 0000000..476f36e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.js new file mode 100644 index 0000000..b03c903 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_11.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['x',['x',['../structcontainer__t.html#ae4abec600666b4289eb4cff6df72b40c',1,'container_t::x()'],['../structcoordinate__t.html#a8afa92b641bc97ce4e6e1ab1c5074f1b',1,'coordinate_t::x()'],['../structcontainer__info__t.html#ab412aa9e3782e5a2cbcffac58cdd7fa8',1,'container_info_t::x()']]], + ['x_5fres',['x_res',['../structbmp__header__t.html#a10f1a21504ea598dba94172983928ef0',1,'bmp_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.html new file mode 100644 index 0000000..ff143dc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.js new file mode 100644 index 0000000..7399fc1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['y',['y',['../structcontainer__t.html#a03a8dfe23a6b69d788c496b8c9d8bd05',1,'container_t::y()'],['../structcoordinate__t.html#a31eef5de4d41d2c29ff62c5a19c10879',1,'coordinate_t::y()'],['../structcontainer__info__t.html#ac633ff02409cd5fe500dc6c5ef1b82da',1,'container_info_t::y()']]], + ['y_5fres',['y_res',['../structbmp__header__t.html#a48850a410b7409fedf12501a2676d3ae',1,'bmp_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.html new file mode 100644 index 0000000..7b43e0a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.js new file mode 100644 index 0000000..7fb694d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['data',['data',['../structcontainer__t.html#a914bee105b6a3e9d0910afb5c15cee90',1,'container_t']]], + ['data_5foffset',['data_offset',['../structbmp__header__t.html#a5d2584a7c0bc3cc0670062b4eb6438c6',1,'bmp_header_t']]], + ['description',['description',['../structcontainer__t.html#a342a4ee9fcdb7a78395037aa6118925a',1,'container_t::description()'],['../structcontainer__info__t.html#abfb73cb6bd1a190467c43954806d73f8',1,'container_info_t::description()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.html new file mode 100644 index 0000000..ea0392d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.js new file mode 100644 index 0000000..fdd24c4 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_3.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['fd',['fd',['../structfwatch__client__t.html#ac39ab2a370564b8e2158fe6d86dc21f4',1,'fwatch_client_t']]], + ['file_5fdescriptor',['file_descriptor',['../structframe__buffer.html#aa98bc0af2c02af8185b15a6b3d6b638a',1,'frame_buffer']]], + ['filesize',['filesize',['../structbmp__header__t.html#a0ac493084a0fdf620a79fa6c11892ea7',1,'bmp_header_t']]], + ['fixed_5finfo',['fixed_info',['../structframe__buffer.html#a69e6d92e1c13f76c92102946ec022406',1,'frame_buffer']]], + ['font',['font',['../structfont__character__t.html#a559fc4e9efa9f7ed71447a58965d894e',1,'font_character_t']]], + ['frame',['frame',['../structcontainer__t.html#a00651855b92ac7eea6cc0558c646713a',1,'container_t::frame()'],['../structcontainer__info__t.html#ae3dbd50c7e635a2f0591b08a137346c4',1,'container_info_t::frame()']]], + ['framesize_5fmem',['framesize_mem',['../structcontainer__t.html#a8647652c5768fe052ce672eedbcf32b9',1,'container_t::framesize_mem()'],['../structcontainer__info__t.html#ad62c9074277fd5ae12fcb927f4897288',1,'container_info_t::framesize_mem()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.html new file mode 100644 index 0000000..1ed95cb --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.js new file mode 100644 index 0000000..e6c9d12 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['handle',['handle',['../structcontainer__t.html#a959c54d525acae38b7c8fdedd3f71d73',1,'container_t::handle()'],['../structkey__press__event__t.html#a2b948a37090366d7b0833b0b1c14fc38',1,'key_press_event_t::handle()']]], + ['header',['header',['../structsocket__datagram__lmx__coordinate__t.html#ae3db6d27096f31d1c34fe156f532200d',1,'socket_datagram_lmx_coordinate_t::header()'],['../structsocket__datagram__lmx__move__t.html#aeaa0755956fb5bd09a18b19f03cda685',1,'socket_datagram_lmx_move_t::header()'],['../structsocket__datagram__lmx__text__t.html#aad81c43f54858e3d63ef763a339fd8e4',1,'socket_datagram_lmx_text_t::header()'],['../structsocket__datagram__lmx__info__t.html#a7affdfe5653bace80a1e4453bc7537db',1,'socket_datagram_lmx_info_t::header()']]], + ['header_5fsize',['header_size',['../structbmp__header__t.html#aeb398c15a82e333f11496dfd6b9f4c92',1,'bmp_header_t']]], + ['height',['height',['../structbmp__header__t.html#a6cad50f0cb95db0248af3a6bc9f95b6e',1,'bmp_header_t::height()'],['../structcontainer__t.html#a32496ae57dd9e39e810c8039aa85732a',1,'container_t::height()'],['../structgimp__bitmap__t.html#a73cce8d827839dd84cc33219d2c7a3e6',1,'gimp_bitmap_t::height()'],['../structframe__buffer.html#a0972a7ceb6ee6bf655a9c50e01aab6da',1,'frame_buffer::height()'],['../structfont__character__t.html#aa196e439501895029ba1c53636a00554',1,'font_character_t::height()'],['../structcontainer__info__t.html#a3d11c78eb308964beb296edbd2e68d49',1,'container_info_t::height()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.html new file mode 100644 index 0000000..ecc883b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.js new file mode 100644 index 0000000..97e8759 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['img_5fsize_5fbytes',['img_size_bytes',['../structbmp__header__t.html#a21c4b001c5630a131618d1e2bd63e12b',1,'bmp_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.html new file mode 100644 index 0000000..0c1a66b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.js new file mode 100644 index 0000000..2e0ac75 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key',['key',['../structkey__action__t.html#a49952147e37371755211376d109ed68c',1,'key_action_t::key()'],['../structkey__press__event__t.html#aa85af3aa911eb62b8d04f67def041bec',1,'key_press_event_t::key()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.html new file mode 100644 index 0000000..e0da2ef --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.js new file mode 100644 index 0000000..c05ca04 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['linelength',['linelength',['../structframe__buffer.html#aabfa500e4bf5da00a8fc443e984385eb',1,'frame_buffer']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.html new file mode 100644 index 0000000..0c3d1df --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.js new file mode 100644 index 0000000..d48fc42 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['maxfd',['maxfd',['../structfwatch__t.html#ad404f91f44e504c3ab57710ee952159e',1,'fwatch_t']]], + ['move',['move',['../structsocket__datagram__lmx__move__t.html#a9c4c749ddf22aec99c09bb65a96ef578',1,'socket_datagram_lmx_move_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.html new file mode 100644 index 0000000..e14a107 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.js new file mode 100644 index 0000000..25fd0cc --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['n',['n',['../structcontainers__t.html#ac36922501ee1230ed68680e5f1476b21',1,'containers_t']]], + ['n_5fcolors',['n_colors',['../structbmp__header__t.html#ab53c0642fd5b9fe854f88bf4f5be64d0',1,'bmp_header_t']]], + ['n_5fcontainers',['n_containers',['../structsocket__datagram__lmx__info__t.html#a90c667a7d12e18262e0c3ce8d22f9f10',1,'socket_datagram_lmx_info_t']]], + ['n_5fimportant_5fcolors',['n_important_colors',['../structbmp__header__t.html#a4364880be164aea309daba74f47464a1',1,'bmp_header_t']]], + ['n_5fregistered',['n_registered',['../structfwatch__t.html#a52c3e0b276766bc3398c1f2a1ad1c49e',1,'fwatch_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.html new file mode 100644 index 0000000..4e38be7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.js new file mode 100644 index 0000000..3cb10c5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['offset_5fcol',['offset_col',['../structfont__character__t.html#ab6be791ac2612bfb97fb46a3dc45d6dc',1,'font_character_t']]], + ['offset_5frow',['offset_row',['../structfont__character__t.html#a235302c9e5108ae9680d2976f664c325',1,'font_character_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.html new file mode 100644 index 0000000..c98ef41 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.js new file mode 100644 index 0000000..f8209b6 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['padding',['padding',['../structcontainer__t.html#a475bff7f994d1b11346434406ee9698b',1,'container_t::padding()'],['../structframe__buffer.html#a931e563e396d5dcb628cd63350dce29a',1,'frame_buffer::padding()']]], + ['pixel_5fdata',['pixel_data',['../structgimp__bitmap__t.html#a658a59a49fde102387788ac759790609',1,'gimp_bitmap_t']]], + ['planes',['planes',['../structbmp__header__t.html#a99795c81232a5c8c0bb0d1724092ef7b',1,'bmp_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.html new file mode 100644 index 0000000..d5f4449 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.js new file mode 100644 index 0000000..a8923a1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['reserved_5fa',['reserved_a',['../structbmp__header__t.html#a1b1b1cb513d2f42a1e6efbd79f4bdec8',1,'bmp_header_t']]], + ['reserved_5fb',['reserved_b',['../structbmp__header__t.html#af5bbd61d1ac8839a59415368aecfa1c7',1,'bmp_header_t']]], + ['rfds',['rfds',['../structfwatch__t.html#a958354695787d34346b02a9948d08968',1,'fwatch_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.html new file mode 100644 index 0000000..a57e383 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.js new file mode 100644 index 0000000..7000f14 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['signature',['signature',['../structbmp__header__t.html#a0990e32df654060facbca342d5381712',1,'bmp_header_t']]], + ['size',['size',['../structsocket__datagram__header__t.html#a77e3868728a23b3f23e162c1a477954f',1,'socket_datagram_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.html new file mode 100644 index 0000000..d1502e0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.js new file mode 100644 index 0000000..9d530d8 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_e.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['text',['text',['../structsocket__datagram__lmx__text__t.html#a270dceb9979d751a37804537c3b3c8d9',1,'socket_datagram_lmx_text_t']]], + ['time',['time',['../structkey__press__event__t.html#a8e4d38d0be3e97ef0e33f87e6b2efdfd',1,'key_press_event_t']]], + ['time_5fhold',['time_hold',['../structkey__action__t.html#a985440e879772fcd7f3a1d74d35c39f6',1,'key_action_t']]], + ['time_5fpressed',['time_pressed',['../structkey__action__t.html#a3b9f04eed18e3f4900c38b0e22301f31',1,'key_action_t']]], + ['time_5freleased',['time_released',['../structkey__action__t.html#a200f2f1e9407b325f1535d80a9cc5ba4',1,'key_action_t']]], + ['timeout',['timeout',['../structfwatch__t.html#a261f6a9bc1b13ce714cbcfe4d8620a59',1,'fwatch_t']]], + ['transparent',['transparent',['../structcontainer__t.html#a9a90fbf05f28a066739f31e6fa6ebcf6',1,'container_t::transparent()'],['../structcontainer__info__t.html#a9b5e40e1889b51ea591ccea809af8880',1,'container_info_t::transparent()']]], + ['type',['type',['../structsocket__datagram__header__t.html#a61b4d7c63d263e3c00f02c7e13a82715',1,'socket_datagram_header_t']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.html b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.html new file mode 100644 index 0000000..f777e71 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.js b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.js new file mode 100644 index 0000000..b2f6f1a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/search/variables_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['var_5finfo',['var_info',['../structframe__buffer.html#a3cd2175d95cfe0d2ab3f4d8d1ffc0bf2',1,'frame_buffer']]], + ['visible',['visible',['../structcontainer__t.html#abc4f1b4dc74d94c2dd01a1316ac84cc7',1,'container_t::visible()'],['../structcontainer__info__t.html#a20328df479ee65c6a5e78cd1a4cd31cc',1,'container_info_t::visible()']]] +]; diff --git a/stage2/03-install-piaizu/files/fb/docs/html/sonylogo.jpg b/stage2/03-install-piaizu/files/fb/docs/html/sonylogo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b93bfa0269c7c23c02ff73c0c1aa718913c14130 GIT binary patch literal 7398 zcmZWt1xy^=vfgEJ*u~wg6fcyeNO4&x6n81^P~6>hafjko3KWN8#ob+sdvS{E>%I5C zFL`-$CMPH7OeUF3<~#Gv%fib#0Q-ZKj1&L}L;#TgU4WNmfH(kz@Gtq-4*DyI$cXT-$$Hc|M#m4)4#(wDnV4wot1C@Y4 z9KcHtfC2#c>k0@20{$x~r~qUj5*i{1;bjSc`tJvzWsr!K@X)5=LVRUy4-$szPdDR$ zmg5q#O>7%tQmb>+?sSHwsdqEx3IvtF58oTC+^BhWP zT-|p;iZoK1PecZri4kkdBl;@G-ig0#?R?&M_A9t1e8A!_7v#Eg>>MRPaAkjD@Y>%_ z!^)qi4`j5S5Zj1g^lAE2YdS|t zBUuj*0_rjWRsc_zIixpf=UQ*2C7I2xG!5=%Gq7@6m_L6D-YeVS``sbW#ypDpQ?09Z*8V?M=mWT#`KoRS4cM)8F95YJ zr&;^*-5HG2?`5)VDjMW`of!c+w%Cm)>W+5519g%SwWc_g!HaV7!~U+Kyc*L;#W&F@(_A(`6rjY`;V6}W}nq2ZPvCA%|G)AvKHe|X5i zw=oeT$OE|tnXR5^)69pmlC7yvn54kVD|9OdWCl=O8&~R6T*s9uSaMIx6#6cy6sjF- zAk;kE<*rO@a-;Ff3*d(}QW1WGs!3T*aRt3l~; zBOlc-)moBbE{x+^@Kt-`*w5?&vf?S>1=q!QV)|KB`VG@*C5J;HHCUinYnOHYK3vEa zMG#djqtwX@AOr7W&G43s{+RroR@vyhR?W7$YTYHhjrC$!UfxJ>!DGBOynolA&`5qm ze-=3Ix*H#RNL083jrpyDyc8dq5TV2LBUv$BNr*sRUQqJ~g@H|%Q&9Hs2g}#hHYm|2 znkD#89e{3fB2*a?o#8}NyCZ$Tb(i<^@AIA$Uj4QI-iR1iwhyn5YkjdTL{fY_E!~?6! z)egtG9m;GDR$abN(b_|RFxz$Fqc!rg_;F3UEg_aL6jCc=;j*w$EC(I!&>#Dvy({nG zesz?vC4z|P69cItfsa08S_RX4C59!1>D8u!32aR=cs6#z&2EzMl|FAs?S>O#mM_HI zeDCxQD$T1r#`|=;Dw=@IOeHE*gH67J&%XMCH`=4VTUK zm-VI5KF#E=WiQmINhnED5{MF!3j?wJBBujCIIreIV01m9`HdNm?rV2384d24_f62} zZEIBI$e!7tae>&1?yZIdCYt^*@Pu>hQn$x-)v8bVyXcL4Vva5M69~oqS1gf6{e_(Z z^RG`Wpq$Sgd&^aP*GCZAK(^^We{lhZ4L|@QARr=xQPKZ{3_t`B01*iX8<$22k5kmp zVGX;z|CU=^#mG2+BQT-s>>u1f7DiaItT>J`B4XJU z^Xl+e`^GQ$b?I7WfbOI5F*GafY47XBt-59G>fWCp6C0oNn)Rlogy`tRSdE5s7%wNz zBIcObjw+BD$a)wyjG6$Le-?XR0E-j72@}gfbg)u=ov0jH-IcMpo=mNk8iZ(Gw%Rq> zgX{~TT3BF97*EbQ((icLLvdGjGVe)=yE(O9D zhxqjH+1Z9bh{1j;?oY=!k+-fOA?=Ik_LC>I9TK0F`)@;B4=q=UZCxk9lN6cZ0^!@! z>}27e1`@mDT(D~$%?CdzrLL@%wH9!+{8aOhvUBq-;~k0dQkCpJG~G4LA@GpW|9kcS z9IDoCyycF-_|5rR!|uC8+Gjd1S_MMw4zd2||LYM^S4>%RTUf)l>^!z6r#hNTg|w8S z?y#>vRzu=%V7~^Yr1P3kV?;e7DsO-h?K*G0Kbow>>R=_N-6|cspV(qu@6!9FIM2JQ z{w$={E6;OGg2d>nnOF+Nvqx~UiayLPguk~WnF7tj4IDXI>tu9_Py@G)X?|n%kq$EyWGPR{Wf&=+% zp%2ewF95g4x&_?#MowmISFuqQ-;#Y_0HH5{l@|b;Oz7sDGbhO-I``d42m#`mIQ@2r zrM&DHJ?*toL^yYsu?9=O{WY1z_vGk4XJ{@tzX zhmPCRJL_AQDEr()*Xi@ieOX-m z`Y-89T~&jq-TAhKeiV(DpG(hq9MrB!}{-_!G(AKhJnXxvtQ16FF7PNb1 zZ?Ej7IyJcu1ZTF7llxR%*{hp8G16n-SR8_6ob2de^tR>YB^FR*Yz==t--dlZyOvzL z(y9kkZLJ-?*94ugq(;Z+y__k5uy+m)!9rN{#lHe78HNSZ=k4@1>}w9|%$WQWRU_Fb zvgU#>I+tp~lS1ex za_^K#@IS}<%{foW&$_%4`ahA1gTeJ$i++7uPgn!C)QKTZ}}>+uB%Z~ulz z3)Wm*>%ZSAEUXLajd$ESC}%v7S&@y^vg-A)BuUUe=@X{FS=K3TO{kJ28?3NI81~~m zn>u+8*}Z)b$dcV*{DnWrY72$;9~+Zf`OxU{5c%P6O`^0@&?PoCMUk#=bLA19-|fna zwKO{mF_gNq@anWbH!Psk3Zm55a8a164V^&Aq_-Vz_ZjJ+Nj>&wFMtD&eccVWuWyE} z_SQJ0x2H^cK8K;DSR&ZQx2Z0K?0FWnMN+#;wftN`0&&TUGxHYH5o+8R_X>B#y2(F* zC-b)s#&7UswO74KZB(35C+v!0Y3*z zZLLEJU!pFAC~T1DW|;m{%4T5?C!x;p`R37?gR|ZHdyaDq5?;RbC@nJ9>q+sb*K;H` z0sM8)Y&>t;khNfDWA)QE$jCF_hsxmVAwy?zsx`?-j2uQvzIKx~ptOoH=#G7K6FM{ka?@fs`JbbFLt^A2&!vwE+v~Dbcvr>ck1qU*F;?WHx1poY;+Ob3p!tJF&duw{w>4 zG(=o-!UWI_+Lorf!509#DmVsgONJ$&qSaQ?{6=rNpWA#i-X(;P*h{A@833kkHLf)q^BF+S`=7FKF(uWaNK z#Pql0YV(|*q-yR%zSC*>h|R~Bx93?8%;_uERf&@JlY%1)s0CvGwn?wCfq(lX5CY0y zLi-;|3k2ZMaEdA!I$#IH=T&!}QBQ8XIsY$z5~eYjaN=B1WyBDl1c6(z=GF|Nt+l2f z8O)ngtCLJ_4j(gmmx-^2OLA{gVzO{BQpeceT2Au64HyqkjKpcFsU%39dgc)rP0_Ua zYw74i)TJe$&}h${-K78F&+5)=?imV5wuJDGJPNJ#y03I^AP8Bvo$))@RKp>oBZ=Nl ze7HjgjmSU+-tBvLz!$iV>tG8^T4#%8zG~cPeDtaO z_qsIjw>ROizN{&XW8gX*SV~x4aVHQbd~$$=j~VVM9*!{U;ghh~FTQK7q2p3&j5+gD z`D8_p+h@l!`Kf1-TP9XRgdgj5yHuvg)G2N=c{`EksGY)WUq0%$Gy(aTV!A95`GAAC zsw-JK2~W~o!ph`1wPZ!s0s%1>p_}*~wxT)StQ`y{Nr9tGm+_!<8fT<$C~S&OEW)`W z>G|yQ<-Q)=GGrs~CzPiP2YTlkD=mC!J->pB`GvC;A2_dh1oMm6Uo*S%Tc}JSyek4N zA5fsItyT(g82#)@HRirD6p_`kn94uZ>t!`vEyG{rD0K9ICU}O=`=6orlLryoRd=od zKhY)ycW{ZQi*XkWPfXkN+0+%IxgRkdx%=MWSuDAviJSnKR#oRDi(5v|QH-6|Vp`gl zJAdvfq$iE&-1wQl4G^bz0Z^prkcYgUg>BOX0%XWIh$%Z~VpplSDwyFCv@lMMXaQo4V}@iv{v+#_*CALl5Nlt5sLC zp#)7f4j7)$p`X&7zd}s4d{0nSL2(Ph1C%`1vn5{%=dstBUDv`+9X6ba5$DnP@C-S+ z%^vIQIOe4XpT96zwiib~wb1_D7k*{b035$>IL7*ckxzUMs`=<H;CS%X=*tM@AS#R?-j{Q$lvldq%=5NF@| z;qj|KOcz5f**XLB*e&Z0;w^Z(bt|#o`2r~C-@`J8wU^V(cUZj|=_V1rc=$2m$6#OO zSlnlpTPk<7CT$GDvLKgZS!nd&XjY@lvs+TJGm<#!94c1!G~>fe5jxYW9+C{DH1O-T z16rhf&w99{6imeDC<|MlNQ$WVUX_@HFQxAGOQ?Er^Xs_iNd$i7nPX*@nJQ^#v*FLe zAwre-K_6JMsEC1Wl~f9k1BO8a#&)kB?dLIZfDTOb07JX{gH*@K*(8UKc~~Q*(AN-G zh9?mG!!(7cJk1$I^R?z@Rx_x1qt*OZ=-T*_@;MGTllU2BfYK7(Ikk|i!i`%tgg?DC zEiz_&4AEKAC2mNbs;4GfC{yNzkoOQn**P9o>D)Qs&#@OwSIKpcI zySktpqQAKQ3i~gb|DAaPk$`}I=r0c7-?$!tP3;h$cUC=l-ub_%j*T7692YR`iN&X7 zFGgf_nMt;|VNMGWWWhL%?|Zk#?RW_wIXNMC!XyGOD-1s?g;(?%9r}Ok5zk>)q0LL6 zLC2SV1xq!-z>E=mRSaf#ioWSWeBW`q)Bg^=!nK$339xyDcSipLh%?1fpNfrm!{)#< zd?p@^0oZOk^X>3-$Q$TYx4;4g)qY;@7qCAI#4;8N|5WEM+Dw70u@Aw<%cMK{QoTxi z;?LB2ZGyZQ?{~R_TvlN)LU0wRg^XEjb#~&22+lol%EUYXooe4ZKokM=ODF1JuDkUI4{idfL0)*U*pO9D}79JBOnWvmkMt zg(B{s?EAd6y`aLOel;O#eh%T1HCQc)Gba70>io)7w7XKO#Rvux^02*w;4N$mw`(Mp zp=5VN|1F;PBpfIn>|_4c=UmKS6B8|oQs}Au@%qF)R8eB zW10%>>W|@gqLOAP?t;<G`hixuAJhPx2PB{PT_V*!&w$}tAj_AJPxU%;eKcvPIw?4x#x*jh;=hy38I3@ z5fJyaKsImYPcSV=G=|i1)*C&yaP=bs6HH-i4oO*;h%Rk9Kpm*qN1euu?w?rx0$8@! zz$dHoX2zT8k5@3RUB#7mm0Oo;ps3h`k`&fo2IgQo=W%1L$|KO6+)nKAcf`-9Ih>OF zfwT&$rmW~964Y{K2~`|shwxQtytmtVk8pL_vtz;J)?QmILtC0ExY>~8 z`v=0Jii4t~Pn~Hstm2yi=KdKQ1Fu{4`v?NQgj> zJCq|J!$VN={Gf6)L}0uXd{Nhk5Be$%$KV!`@mb1&?L_Yu!db94B;zxF=9!x-~i zpj~OKcm(MCZ3hpY%?WyO3<(>O zTcMm&597{Dc{zTq($IK(m^}6(Ib7+OxaE^eZh~l`MK%n#=v6sdo!~Z3Jd*BAXy~j= zC#m1!gKFKoY=*h$H8sM;MR&RbxzEv6w7W`pderD3w;j>lvZ)QeV7op>ltSwzG3Hd2*F>QZTM!;h93ynYnf)ihdesHjVL5L5& zM+X8Pj`#1+VDuiJz>Rf^eFqC_z7E#l>ws{{AXd>K&yT&CjA3A4t+0oj&b>Z!>V+K-C`rNAxPOfL+d%etQBsox zZ^>IMRg~0hym}!$gB(2c{glpaS5v}Lo6YoRzp!Nm#^?maiaWP0L(hS=zTxx@p;^wT z{Siz_-ar(Iz}t%AIq5S2QOIZ-jj4Rp5_yn`wZ#qS`AxPV;B=5GD=OZ-wm5H{+9*uN zUZ*@^U~JOLV%-Smp$)4N zh^Jb}kcx!y&4k=sSIC>3$+$vHJ2Y0};DsMxp6R$cl-|3kl;Iu}{CuOGKgZ7oK^Y;C z`ds8zAGk6^6&|?nw8g`oJjsguw6%897a(Wmr~u29y=!U;@0O1N?d}C)3$sw>D#}p0 zNu2;hO`!AcGfr2UA$hHf0Ik=TC4b)KVTWy9iY70rP59tJLt6-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structbmp__header__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structbmp__header__t.html new file mode 100644 index 0000000..d0bd452 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structbmp__header__t.html @@ -0,0 +1,366 @@ + + + + + + +PiAIZU: bmp_header_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
bmp_header_t Struct Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

uint8_t signature [2]
 
uint32_t filesize
 
uint16_t reserved_a
 
uint16_t reserved_b
 
uint32_t data_offset
 
uint32_t header_size
 
uint32_t width
 
uint32_t height
 
uint16_t planes
 
uint16_t bits_per_pixel
 
uint32_t compression
 
uint32_t img_size_bytes
 
uint32_t x_res
 
uint32_t y_res
 
uint32_t n_colors
 
uint32_t n_important_colors
 
+

Detailed Description

+
+

Definition at line 53 of file bmp.c.

+

Field Documentation

+ +
+
+ + + + +
uint16_t bmp_header_t::bits_per_pixel
+
+ +

Definition at line 64 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::compression
+
+ +

Definition at line 65 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::data_offset
+
+ +

Definition at line 59 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::filesize
+
+ +

Definition at line 56 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::header_size
+
+ +

Definition at line 60 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::height
+
+ +

Definition at line 62 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::img_size_bytes
+
+ +

Definition at line 66 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::n_colors
+
+ +

Definition at line 69 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::n_important_colors
+
+ +

Definition at line 70 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint16_t bmp_header_t::planes
+
+ +

Definition at line 63 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint16_t bmp_header_t::reserved_a
+
+ +

Definition at line 57 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint16_t bmp_header_t::reserved_b
+
+ +

Definition at line 58 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint8_t bmp_header_t::signature[2]
+
+ +

Definition at line 55 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::width
+
+ +

Definition at line 61 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::x_res
+
+ +

Definition at line 67 of file bmp.c.

+ +
+
+ +
+
+ + + + +
uint32_t bmp_header_t::y_res
+
+ +

Definition at line 68 of file bmp.c.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structcontainer__info__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structcontainer__info__t.html new file mode 100644 index 0000000..07133b1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structcontainer__info__t.html @@ -0,0 +1,256 @@ + + + + + + +PiAIZU: container_info_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
container_info_t Struct Reference
+
+
+ +

#include <lmxsocket.h>

+ + + + + + + + + + + + + + + + + + + + +

+Data Fields

int x
 
int y
 
unsigned int width
 
unsigned int height
 
bool transparent
 
bool visible
 
char frame
 
size_t framesize_mem
 
char description [DESCRIPTION_LENGHT]
 
+

Detailed Description

+
+

Definition at line 59 of file lmxsocket.h.

+

Field Documentation

+ +
+
+ + + + +
char container_info_t::description[DESCRIPTION_LENGHT]
+
+ +

Definition at line 68 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
char container_info_t::frame
+
+ +

Definition at line 66 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
size_t container_info_t::framesize_mem
+
+ +

Definition at line 67 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
unsigned int container_info_t::height
+
+ +

Definition at line 63 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
bool container_info_t::transparent
+
+ +

Definition at line 64 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
bool container_info_t::visible
+
+ +

Definition at line 65 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
unsigned int container_info_t::width
+
+ +

Definition at line 62 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
int container_info_t::x
+
+ +

Definition at line 60 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
int container_info_t::y
+
+ +

Definition at line 61 of file lmxsocket.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structcontainer__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structcontainer__t.html new file mode 100644 index 0000000..8abae6a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structcontainer__t.html @@ -0,0 +1,336 @@ + + + + + + +PiAIZU: container_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
container_t Struct Reference
+
+
+ +

#include <container.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

int handle
 
int x
 
int y
 
unsigned int width
 
unsigned int height
 
int bits_per_pixel
 
int padding
 
bool transparent
 
bool visible
 
char frame
 
size_t framesize_mem
 
rgba_t bg_color
 
char * description
 
uint8_t(* data )[]
 
+

Detailed Description

+
+

Definition at line 14 of file container.h.

+

Field Documentation

+ +
+
+ + + + +
rgba_t container_t::bg_color
+
+ +

Definition at line 26 of file container.h.

+ +
+
+ +
+
+ + + + +
int container_t::bits_per_pixel
+
+ +

Definition at line 20 of file container.h.

+ +
+
+ +
+
+ + + + +
uint8_t(* container_t::data)[]
+
+ +

Definition at line 28 of file container.h.

+ +
+
+ +
+
+ + + + +
char* container_t::description
+
+ +

Definition at line 27 of file container.h.

+ +
+
+ +
+
+ + + + +
char container_t::frame
+
+ +

Definition at line 24 of file container.h.

+ +
+
+ +
+
+ + + + +
size_t container_t::framesize_mem
+
+ +

Definition at line 25 of file container.h.

+ +
+
+ +
+
+ + + + +
int container_t::handle
+
+ +

Definition at line 15 of file container.h.

+ +
+
+ +
+
+ + + + +
unsigned int container_t::height
+
+ +

Definition at line 19 of file container.h.

+ +
+
+ +
+
+ + + + +
int container_t::padding
+
+ +

Definition at line 21 of file container.h.

+ +
+
+ +
+
+ + + + +
bool container_t::transparent
+
+ +

Definition at line 22 of file container.h.

+ +
+
+ +
+
+ + + + +
bool container_t::visible
+
+ +

Definition at line 23 of file container.h.

+ +
+
+ +
+
+ + + + +
unsigned int container_t::width
+
+ +

Definition at line 18 of file container.h.

+ +
+
+ +
+
+ + + + +
int container_t::x
+
+ +

Definition at line 16 of file container.h.

+ +
+
+ +
+
+ + + + +
int container_t::y
+
+ +

Definition at line 17 of file container.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t.html new file mode 100644 index 0000000..7069600 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t.html @@ -0,0 +1,152 @@ + + + + + + +PiAIZU: containers_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
containers_t Struct Reference
+
+
+ +

#include <container.h>

+
+Collaboration diagram for containers_t:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + + + +

+Data Fields

size_t n
 
container_t c []
 
+

Detailed Description

+
+

Definition at line 31 of file container.h.

+

Field Documentation

+ +
+
+ + + + +
container_t containers_t::c[]
+
+ +

Definition at line 33 of file container.h.

+ +
+
+ +
+
+ + + + +
size_t containers_t::n
+
+ +

Definition at line 32 of file container.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.map b/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.map new file mode 100644 index 0000000..46a5132 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.md5 b/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.md5 new file mode 100644 index 0000000..e2a0ddf --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.md5 @@ -0,0 +1 @@ +3320c24dc2eb07e2d0b269cfa255e4c2 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.png b/stage2/03-install-piaizu/files/fb/docs/html/structcontainers__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..26221e3184ebea7f6e70dcc9ca8d7d7e6be4ccbc GIT binary patch literal 3119 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structcoordinate__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structcoordinate__t.html new file mode 100644 index 0000000..6e98b85 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structcoordinate__t.html @@ -0,0 +1,144 @@ + + + + + + +PiAIZU: coordinate_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
coordinate_t Struct Reference
+
+
+ +

#include <lmxsocket.h>

+ + + + + + +

+Data Fields

uint16_t x
 
uint16_t y
 
+

Detailed Description

+
+

Definition at line 27 of file lmxsocket.h.

+

Field Documentation

+ +
+
+ + + + +
uint16_t coordinate_t::x
+
+ +

Definition at line 28 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
uint16_t coordinate_t::y
+
+ +

Definition at line 29 of file lmxsocket.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t.html new file mode 100644 index 0000000..ce4a593 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t.html @@ -0,0 +1,214 @@ + + + + + + +PiAIZU: font_character_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
font_character_t Struct Reference
+
+
+
+Collaboration diagram for font_character_t:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + + + + + + + + + + + +

+Data Fields

char character
 
int offset_col
 
int offset_row
 
int width
 
int height
 
gimp_bitmap_tfont
 
+

Detailed Description

+
+

Definition at line 9 of file text.c.

+

Field Documentation

+ +
+
+ + + + +
char font_character_t::character
+
+ +

Definition at line 10 of file text.c.

+ +
+
+ +
+
+ + + + +
gimp_bitmap_t* font_character_t::font
+
+ +

Definition at line 15 of file text.c.

+ +
+
+ +
+
+ + + + +
int font_character_t::height
+
+ +

Definition at line 14 of file text.c.

+ +
+
+ +
+
+ + + + +
int font_character_t::offset_col
+
+ +

Definition at line 11 of file text.c.

+ +
+
+ +
+
+ + + + +
int font_character_t::offset_row
+
+ +

Definition at line 12 of file text.c.

+ +
+
+ +
+
+ + + + +
int font_character_t::width
+
+ +

Definition at line 13 of file text.c.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.map b/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.map new file mode 100644 index 0000000..e9c6447 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.md5 b/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.md5 new file mode 100644 index 0000000..3d673c9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.md5 @@ -0,0 +1 @@ +4f7dd090e3a2463d514106fc83edff37 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.png b/stage2/03-install-piaizu/files/fb/docs/html/structfont__character__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b2af8fa9e6448ee14d1880ebab0e59019736a6f9 GIT binary patch literal 3373 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 H>$m>}{JXn? literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structframe__buffer.html b/stage2/03-install-piaizu/files/fb/docs/html/structframe__buffer.html new file mode 100644 index 0000000..a3c7735 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structframe__buffer.html @@ -0,0 +1,256 @@ + + + + + + +PiAIZU: frame_buffer Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
frame_buffer Struct Reference
+
+
+ +

#include <framebuffer.h>

+ + + + + + + + + + + + + + + + + + + + +

+Data Fields

int file_descriptor
 
struct fb_fix_screeninfo fixed_info
 
struct fb_var_screeninfo var_info
 
int padding
 
int linelength
 
int width
 
int height
 
long int buffer_size
 
char * buffer
 
+

Detailed Description

+
+

Definition at line 6 of file framebuffer.h.

+

Field Documentation

+ +
+
+ + + + +
char* frame_buffer::buffer
+
+ +

Definition at line 18 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
long int frame_buffer::buffer_size
+
+ +

Definition at line 17 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
int frame_buffer::file_descriptor
+
+ +

Definition at line 7 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
struct fb_fix_screeninfo frame_buffer::fixed_info
+
+ +

Definition at line 9 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
int frame_buffer::height
+
+ +

Definition at line 15 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
int frame_buffer::linelength
+
+ +

Definition at line 13 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
int frame_buffer::padding
+
+ +

Definition at line 12 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
struct fb_var_screeninfo frame_buffer::var_info
+
+ +

Definition at line 10 of file framebuffer.h.

+ +
+
+ +
+
+ + + + +
int frame_buffer::width
+
+ +

Definition at line 14 of file framebuffer.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__client__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__client__t.html new file mode 100644 index 0000000..ac7cf63 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__client__t.html @@ -0,0 +1,142 @@ + + + + + + +PiAIZU: fwatch_client_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
fwatch_client_t Struct Reference
+
+
+ + + + + + +

+Data Fields

fwatch_cb_f cb
 
int fd
 
+

Detailed Description

+
+

Definition at line 27 of file fwatch.c.

+

Field Documentation

+ +
+
+ + + + +
fwatch_cb_f fwatch_client_t::cb
+
+ +

Definition at line 28 of file fwatch.c.

+ +
+
+ +
+
+ + + + +
int fwatch_client_t::fd
+
+ +

Definition at line 29 of file fwatch.c.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t.html new file mode 100644 index 0000000..e713862 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t.html @@ -0,0 +1,198 @@ + + + + + + +PiAIZU: fwatch_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
fwatch_t Struct Reference
+
+
+
+Collaboration diagram for fwatch_t:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + + + + + + + + + +

+Data Fields

unsigned int n_registered
 
fd_set rfds
 
struct timeval timeout
 
int maxfd
 
fwatch_client_t clients [FWATCH_CLIENTS_MAX]
 
+

Detailed Description

+
+

Definition at line 32 of file fwatch.c.

+

Field Documentation

+ +
+
+ + + + +
fwatch_client_t fwatch_t::clients[FWATCH_CLIENTS_MAX]
+
+ +

Definition at line 37 of file fwatch.c.

+ +
+
+ +
+
+ + + + +
int fwatch_t::maxfd
+
+ +

Definition at line 36 of file fwatch.c.

+ +
+
+ +
+
+ + + + +
unsigned int fwatch_t::n_registered
+
+ +

Definition at line 33 of file fwatch.c.

+ +
+
+ +
+
+ + + + +
fd_set fwatch_t::rfds
+
+ +

Definition at line 34 of file fwatch.c.

+ +
+
+ +
+
+ + + + +
struct timeval fwatch_t::timeout
+
+ +

Definition at line 35 of file fwatch.c.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.map b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.map new file mode 100644 index 0000000..e9d44da --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.md5 b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.md5 new file mode 100644 index 0000000..799ddef --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.md5 @@ -0,0 +1 @@ +6884cafe3444fc4215c01b892f6eec3c \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.png b/stage2/03-install-piaizu/files/fb/docs/html/structfwatch__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf0a4f35d83a3a18bac6ccb3d1e80b389fbb1ba GIT binary patch literal 3155 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 + + + + + +PiAIZU: gimp_bitmap_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
gimp_bitmap_t Struct Reference
+
+
+ +

#include <container.h>

+ + + + + + + + + + +

+Data Fields

unsigned int width
 
unsigned int height
 
unsigned int bytes_per_pixel
 
unsigned char pixel_data []
 
+

Detailed Description

+
+

Definition at line 37 of file container.h.

+

Field Documentation

+ +
+
+ + + + +
unsigned int gimp_bitmap_t::bytes_per_pixel
+
+ +

Definition at line 40 of file container.h.

+ +
+
+ +
+
+ + + + +
unsigned int gimp_bitmap_t::height
+
+ +

Definition at line 39 of file container.h.

+ +
+
+ +
+
+ + + + +
unsigned char gimp_bitmap_t::pixel_data[]
+
+ +

Definition at line 41 of file container.h.

+ +
+
+ +
+
+ + + + +
unsigned int gimp_bitmap_t::width
+
+ +

Definition at line 38 of file container.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structkey__action__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structkey__action__t.html new file mode 100644 index 0000000..5280e9e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structkey__action__t.html @@ -0,0 +1,174 @@ + + + + + + +PiAIZU: key_action_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
key_action_t Struct Reference
+
+
+ + + + + + + + + + +

+Data Fields

key_e key
 
struct timeval time_pressed
 
struct timeval time_released
 
double time_hold
 
+

Detailed Description

+
+

Definition at line 24 of file keys.c.

+

Field Documentation

+ +
+
+ + + + +
key_e key_action_t::key
+
+ +

Definition at line 25 of file keys.c.

+ +
+
+ +
+
+ + + + +
double key_action_t::time_hold
+
+ +

Definition at line 28 of file keys.c.

+ +
+
+ +
+
+ + + + +
struct timeval key_action_t::time_pressed
+
+ +

Definition at line 26 of file keys.c.

+ +
+
+ +
+
+ + + + +
struct timeval key_action_t::time_released
+
+ +

Definition at line 27 of file keys.c.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structkey__press__event__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structkey__press__event__t.html new file mode 100644 index 0000000..2f3b679 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structkey__press__event__t.html @@ -0,0 +1,174 @@ + + + + + + +PiAIZU: key_press_event_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
key_press_event_t Struct Reference
+
+
+ + + + + + + + + + +

+Data Fields

key_press_f cb
 
key_e key
 
double time
 
int handle
 
+

Detailed Description

+
+

Definition at line 31 of file keys.c.

+

Field Documentation

+ +
+
+ + + + +
key_press_f key_press_event_t::cb
+
+ +

Definition at line 32 of file keys.c.

+ +
+
+ +
+
+ + + + +
int key_press_event_t::handle
+
+ +

Definition at line 35 of file keys.c.

+ +
+
+ +
+
+ + + + +
key_e key_press_event_t::key
+
+ +

Definition at line 33 of file keys.c.

+ +
+
+ +
+
+ + + + +
double key_press_event_t::time
+
+ +

Definition at line 34 of file keys.c.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__header__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__header__t.html new file mode 100644 index 0000000..0242771 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__header__t.html @@ -0,0 +1,160 @@ + + + + + + +PiAIZU: socket_datagram_header_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
socket_datagram_header_t Struct Reference
+
+
+ +

#include <lmxsocket.h>

+ + + + + + + + +

+Data Fields

socket_datagram_type_t type
 
int container
 
size_t size
 
+

Detailed Description

+
+

Definition at line 21 of file lmxsocket.h.

+

Field Documentation

+ +
+
+ + + + +
int socket_datagram_header_t::container
+
+ +

Definition at line 23 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
size_t socket_datagram_header_t::size
+
+ +

Definition at line 24 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
socket_datagram_type_t socket_datagram_header_t::type
+
+ +

Definition at line 22 of file lmxsocket.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t.html new file mode 100644 index 0000000..a81d912 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t.html @@ -0,0 +1,153 @@ + + + + + + +PiAIZU: socket_datagram_lmx_coordinate_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
socket_datagram_lmx_coordinate_t Struct Reference
+
+
+ +

#include <lmxsocket.h>

+
+Collaboration diagram for socket_datagram_lmx_coordinate_t:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + +

+Data Fields

socket_datagram_header_t header
 
coordinate_t coord
 
+

Detailed Description

+
+

Definition at line 32 of file lmxsocket.h.

+

Field Documentation

+ +
+
+ + + + +
coordinate_t socket_datagram_lmx_coordinate_t::coord
+
+ +

Definition at line 34 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
socket_datagram_header_t socket_datagram_lmx_coordinate_t::header
+
+ +

Definition at line 33 of file lmxsocket.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.map b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.map new file mode 100644 index 0000000..845744b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.md5 b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.md5 new file mode 100644 index 0000000..2564d7c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.md5 @@ -0,0 +1 @@ +b3437ae7286568fdedccbe4cd37e7418 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.png b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__coordinate__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..93bfd5166d8c37f06961197e801b351365815365 GIT binary patch literal 8045 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 Z+N-g?oAK<)eK0?Vs3>YGRLj2z`+q3|oxA`5 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t.html new file mode 100644 index 0000000..ae4fb23 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t.html @@ -0,0 +1,169 @@ + + + + + + +PiAIZU: socket_datagram_lmx_info_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
socket_datagram_lmx_info_t Struct Reference
+
+
+ +

#include <lmxsocket.h>

+
+Collaboration diagram for socket_datagram_lmx_info_t:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + +

+Data Fields

socket_datagram_header_t header
 
int n_containers
 
container_info_t containers []
 
+

Detailed Description

+
+

Definition at line 71 of file lmxsocket.h.

+

Field Documentation

+ +
+
+ + + + +
container_info_t socket_datagram_lmx_info_t::containers[]
+
+ +

Definition at line 74 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
socket_datagram_header_t socket_datagram_lmx_info_t::header
+
+ +

Definition at line 72 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
int socket_datagram_lmx_info_t::n_containers
+
+ +

Definition at line 73 of file lmxsocket.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.map b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.map new file mode 100644 index 0000000..93e9ce3 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.md5 b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.md5 new file mode 100644 index 0000000..155a78c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.md5 @@ -0,0 +1 @@ +f68d8a40152b11f6f9d3656940ae2e5e \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.png b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__info__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..487f9dd377d31816e9e17fdf735af688ad511b6c GIT binary patch literal 7568 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t.html b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t.html new file mode 100644 index 0000000..2001c04 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t.html @@ -0,0 +1,152 @@ + + + + + + +PiAIZU: socket_datagram_lmx_move_t Struct Reference + + + + + + + + + + +

+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
socket_datagram_lmx_move_t Struct Reference
+
+
+ +

#include <lmxsocket.h>

+
+Collaboration diagram for socket_datagram_lmx_move_t:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + + + +

+Data Fields

socket_datagram_header_t header
 
movment_e move
 
+

Detailed Description

+
+

Definition at line 49 of file lmxsocket.h.

+

Field Documentation

+ +
+
+ + + + +
socket_datagram_header_t socket_datagram_lmx_move_t::header
+
+ +

Definition at line 50 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
movment_e socket_datagram_lmx_move_t::move
+
+ +

Definition at line 51 of file lmxsocket.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.map b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.map new file mode 100644 index 0000000..8edab45 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.md5 b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.md5 new file mode 100644 index 0000000..4c65b3b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.md5 @@ -0,0 +1 @@ +9b902bc2e32b50611498dc5997c1a14f \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.png b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__move__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..d9e6c19d24f6b07695f33cebf79a019f817190e9 GIT binary patch literal 4653 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 mPYM~;AacVV|Jyly59()u2W7n;SO@QaAR4MVD& + + + + + +PiAIZU: socket_datagram_lmx_text_t Struct Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
socket_datagram_lmx_text_t Struct Reference
+
+
+ +

#include <lmxsocket.h>

+
+Collaboration diagram for socket_datagram_lmx_text_t:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + + + +

+Data Fields

socket_datagram_header_t header
 
char text [TEXT_LENGTH]
 
+

Detailed Description

+
+

Definition at line 54 of file lmxsocket.h.

+

Field Documentation

+ +
+
+ + + + +
socket_datagram_header_t socket_datagram_lmx_text_t::header
+
+ +

Definition at line 55 of file lmxsocket.h.

+ +
+
+ +
+
+ + + + +
char socket_datagram_lmx_text_t::text[TEXT_LENGTH]
+
+ +

Definition at line 56 of file lmxsocket.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.map b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.map new file mode 100644 index 0000000..3ce2379 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.md5 b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.md5 new file mode 100644 index 0000000..3f267ba --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.md5 @@ -0,0 +1 @@ +36465ec3a879c50eee59b83278d26d21 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.png b/stage2/03-install-piaizu/files/fb/docs/html/structsocket__datagram__lmx__text__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..74efd5793711617524c7332dcc75793bfe630eb5 GIT binary patch literal 4526 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 S```f#&OKEfl}eaRoT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/sync_on.png b/stage2/03-install-piaizu/files/fb/docs/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/tab_a.png b/stage2/03-install-piaizu/files/fb/docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/tab_b.png b/stage2/03-install-piaizu/files/fb/docs/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/tabs.css b/stage2/03-install-piaizu/files/fb/docs/html/tabs.css new file mode 100644 index 0000000..9cf578f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/text_8c.html new file mode 100644 index 0000000..7bf99e7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8c.html @@ -0,0 +1,295 @@ + + + + + + +PiAIZU: lib/text.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
text.c File Reference
+
+
+
#include "text.h"
+#include "bmp.h"
+#include "container.h"
+#include "log.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+Include dependency graph for text.c:
+
+
+ + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  font_character_t
 
+ + + + + + + +

+Macros

#define OFFSET_LOWERCASE   ('Z' - 'A') + 1
 
#define OFFSET_NUMBERS   OFFSET_LOWERCASE + ('z' - 'a') + 1
 
#define OFFSET_SPECIAL   OFFSET_NUMBERS + ('9' - '0') + 1
 
+ + + + + + + + + + + +

+Functions

void text_close ()
 
void text_init ()
 
font_character_ttext_get_char_font (char c)
 
gimp_bitmap_ttext_get_char_bitmap (char c)
 
void text_put (int container, char *string)
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define OFFSET_LOWERCASE   ('Z' - 'A') + 1
+
+ +

Definition at line 147 of file text.c.

+ +
+
+ +
+
+ + + + +
#define OFFSET_NUMBERS   OFFSET_LOWERCASE + ('z' - 'a') + 1
+
+ +

Definition at line 148 of file text.c.

+ +
+
+ +
+
+ + + + +
#define OFFSET_SPECIAL   OFFSET_NUMBERS + ('9' - '0') + 1
+
+ +

Definition at line 149 of file text.c.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + +
void text_close ()
+
+ +

Definition at line 88 of file text.c.

+ +
+
+ +
+
+ + + + + + + + +
gimp_bitmap_t* text_get_char_bitmap (char c)
+
+ +

Definition at line 166 of file text.c.

+ +
+
+ +
+
+ + + + + + + + +
font_character_t* text_get_char_font (char c)
+
+ +

Definition at line 151 of file text.c.

+ +
+
+ +
+
+ + + + + + + +
void text_init ()
+
+ +

Definition at line 99 of file text.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void text_put (int container,
char * string 
)
+
+ +

Definition at line 175 of file text.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.map new file mode 100644 index 0000000..baf2e2f --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.md5 new file mode 100644 index 0000000..fcb6e14 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.md5 @@ -0,0 +1 @@ +5c8c5684f806ffef5953d7c635173dfa \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/text_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c5860c0af8006921716f14fec0c71df8d4b961 GIT binary patch literal 26413 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

xm}YJrFS287|xznGje>36oQV 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8c_source.html b/stage2/03-install-piaizu/files/fb/docs/html/text_8c_source.html new file mode 100644 index 0000000..0d44b8b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8c_source.html @@ -0,0 +1,128 @@ + + + + + + +PiAIZU: lib/text.c Source File + + + + + + + + + + +

+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
text.c
+
+
+Go to the documentation of this file.
1 #include "text.h"
2 #include "bmp.h"
3 #include "container.h"
4 #include "log.h"
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8 
9 typedef struct {
10  char character;
13  int width;
14  int height;
17 
18 static font_character_t alphabet_tbl[] = {
19  {.character = 'A', .offset_col = 0, .offset_row = 1, .width = 12, .height = 13, .font = NULL},
20  {.character = 'B', .offset_col = 14, .offset_row = 1, .width = 8, .height = 13, .font = NULL},
21  {.character = 'C', .offset_col = 25, .offset_row = 1, .width = 11, .height = 13, .font = NULL},
22  {.character = 'D', .offset_col = 39, .offset_row = 1, .width = 11, .height = 13, .font = NULL},
23  {.character = 'E', .offset_col = 53, .offset_row = 1, .width = 8, .height = 13, .font = NULL},
24  {.character = 'F', .offset_col = 64, .offset_row = 1, .width = 9, .height = 13, .font = NULL},
25  {.character = 'G', .offset_col = 73, .offset_row = 1, .width = 12, .height = 13, .font = NULL},
26  {.character = 'H', .offset_col = 88, .offset_row = 1, .width = 13, .height = 13, .font = NULL},
27  {.character = 'I', .offset_col = 102, .offset_row = 1, .width = 2, .height = 13, .font = NULL},
28  {.character = 'J', .offset_col = 105, .offset_row = 1, .width = 6, .height = 16, .font = NULL},
29  {.character = 'K', .offset_col = 114, .offset_row = 1, .width = 12, .height = 13, .font = NULL},
30  {.character = 'L', .offset_col = 125, .offset_row = 1, .width = 8, .height = 13, .font = NULL},
31  {.character = 'M', .offset_col = 135, .offset_row = 1, .width = 14, .height = 13, .font = NULL},
32  {.character = 'N', .offset_col = 152, .offset_row = 1, .width = 10, .height = 13, .font = NULL},
33  {.character = 'O', .offset_col = 164, .offset_row = 1, .width = 13, .height = 13, .font = NULL},
34  {.character = 'P', .offset_col = 180, .offset_row = 1, .width = 10, .height = 13, .font = NULL},
35  {.character = 'Q', .offset_col = 190, .offset_row = 1, .width = 13, .height = 15, .font = NULL},
36  {.character = 'R', .offset_col = 205, .offset_row = 1, .width = 11, .height = 13, .font = NULL},
37  {.character = 'S', .offset_col = 216, .offset_row = 1, .width = 11, .height = 13, .font = NULL},
38  {.character = 'T', .offset_col = 227, .offset_row = 1, .width = 13, .height = 13, .font = NULL},
39  {.character = 'U', .offset_col = 241, .offset_row = 1, .width = 11, .height = 13, .font = NULL},
40  {.character = 'V', .offset_col = 251, .offset_row = 1, .width = 14, .height = 13, .font = NULL},
41  {.character = 'W', .offset_col = 266, .offset_row = 1, .width = 16, .height = 13, .font = NULL},
42  {.character = 'X', .offset_col = 285, .offset_row = 1, .width = 12, .height = 13, .font = NULL},
43  {.character = 'Y', .offset_col = 297, .offset_row = 1, .width = 12, .height = 13, .font = NULL},
44  {.character = 'Z', .offset_col = 310, .offset_row = 1, .width = 12, .height = 13, .font = NULL},
45  /* Lower case */
46  {.character = 'a', .offset_col = 1, .offset_row = 22, .width = 9, .height = 16, .font = NULL},
47  {.character = 'b', .offset_col = 11, .offset_row = 22, .width = 10, .height = 16, .font = NULL},
48  {.character = 'c', .offset_col = 22, .offset_row = 22, .width = 9, .height = 16, .font = NULL},
49  {.character = 'd', .offset_col = 31, .offset_row = 22, .width = 9, .height = 16, .font = NULL},
50  {.character = 'e', .offset_col = 41, .offset_row = 22, .width = 10, .height = 16, .font = NULL},
51  {.character = 'f', .offset_col = 52, .offset_row = 22, .width = 7, .height = 16, .font = NULL},
52  {.character = 'g', .offset_col = 59, .offset_row = 22, .width = 10, .height = 20, .font = NULL},
53  {.character = 'h', .offset_col = 71, .offset_row = 22, .width = 8, .height = 16, .font = NULL},
54  {.character = 'i', .offset_col = 82, .offset_row = 22, .width = 3, .height = 16, .font = NULL},
55  {.character = 'j', .offset_col = 87, .offset_row = 22, .width = 4, .height = 20, .font = NULL},
56  {.character = 'k', .offset_col = 92, .offset_row = 22, .width = 8, .height = 16, .font = NULL},
57  {.character = 'l', .offset_col = 102, .offset_row = 22, .width = 4, .height = 16, .font = NULL},
58  {.character = 'm', .offset_col = 107, .offset_row = 22, .width = 15, .height = 16, .font = NULL},
59  {.character = 'n', .offset_col = 124, .offset_row = 22, .width = 8, .height = 16, .font = NULL},
60  {.character = 'o', .offset_col = 134, .offset_row = 22, .width = 10, .height = 16, .font = NULL},
61  {.character = 'p', .offset_col = 146, .offset_row = 22, .width = 10, .height = 20, .font = NULL},
62  {.character = 'q', .offset_col = 155, .offset_row = 22, .width = 12, .height = 20, .font = NULL},
63  {.character = 'r', .offset_col = 168, .offset_row = 22, .width = 7, .height = 16, .font = NULL},
64  {.character = 's', .offset_col = 175, .offset_row = 22, .width = 8, .height = 16, .font = NULL},
65  {.character = 't', .offset_col = 183, .offset_row = 22, .width = 8, .height = 16, .font = NULL},
66  {.character = 'u', .offset_col = 191, .offset_row = 22, .width = 9, .height = 16, .font = NULL},
67  {.character = 'v', .offset_col = 201, .offset_row = 22, .width = 10, .height = 16, .font = NULL},
68  {.character = 'w', .offset_col = 213, .offset_row = 22, .width = 12, .height = 16, .font = NULL},
69  {.character = 'x', .offset_col = 227, .offset_row = 22, .width = 12, .height = 16, .font = NULL},
70  {.character = 'y', .offset_col = 239, .offset_row = 22, .width = 10, .height = 20, .font = NULL},
71  {.character = 'z', .offset_col = 250, .offset_row = 22, .width = 12, .height = 16, .font = NULL},
72  {.character = '0', .offset_col = 0, .offset_row = 42, .width = 12, .height = 16, .font = NULL},
73  {.character = '1', .offset_col = 13, .offset_row = 42, .width = 8, .height = 16, .font = NULL},
74  {.character = '2', .offset_col = 23, .offset_row = 42, .width = 10, .height = 16, .font = NULL},
75  {.character = '3', .offset_col = 34, .offset_row = 42, .width = 9, .height = 16, .font = NULL},
76  {.character = '4', .offset_col = 44, .offset_row = 42, .width = 9, .height = 16, .font = NULL},
77  {.character = '5', .offset_col = 55, .offset_row = 42, .width = 9, .height = 16, .font = NULL},
78  {.character = '6', .offset_col = 66, .offset_row = 42, .width = 10, .height = 16, .font = NULL},
79  {.character = '7', .offset_col = 78, .offset_row = 42, .width = 10, .height = 16, .font = NULL},
80  {.character = '8', .offset_col = 89, .offset_row = 42, .width = 10, .height = 16, .font = NULL},
81  {.character = '9', .offset_col = 99, .offset_row = 42, .width = 10, .height = 16, .font = NULL},
82  {.character = '.', .offset_col = 230, .offset_row = 42, .width = 3, .height = 16, .font = NULL},
83  {.character = '/', .offset_col = 234, .offset_row = 44, .width = 7, .height = 16, .font = NULL},
84  {.character = ':', .offset_col = 248, .offset_row = 42, .width = 5, .height = 16, .font = NULL},
85 
86 };
87 
88 void text_close() {
89  unsigned int i;
90  for (i = 0; i < sizeof(alphabet_tbl) / sizeof(alphabet_tbl[0]); i++) {
91  if (alphabet_tbl[i].font != NULL) {
92  free(alphabet_tbl[i].font);
93  } else {
94  continue;
95  }
96  }
97 }
98 
99 void text_init() {
100  unsigned int i;
101  size_t charsize;
102  int x;
103  int y;
104  uint32_t(*destfont)[];
105  uint32_t(*srcfont)[];
106  gimp_bitmap_t *alphabet;
107 
108  long int dest_px = 0;
109  long int src_px = 0;
110 
111  i = bmp_open("graphics/alphabet.bmp", &alphabet);
112  if (i) {
113 
114  return;
115  }
116 
117  for (i = 0; i < sizeof(alphabet_tbl) / sizeof(alphabet_tbl[0]); i++) {
118  charsize = alphabet_tbl[i].width * alphabet_tbl[i].height * sizeof(rgba_t);
119  alphabet_tbl[i].font = calloc(charsize + sizeof(gimp_bitmap_t), 1);
120 
121  alphabet_tbl[i].font->width = alphabet_tbl[i].width;
122  alphabet_tbl[i].font->height = alphabet_tbl[i].height;
123  alphabet_tbl[i].font->bytes_per_pixel = sizeof(rgba_t);
124 
125  destfont = (uint32_t(*)[])alphabet_tbl[i].font->pixel_data;
126 
127  for (y = 0; y < alphabet_tbl[i].height; y++) {
128  for (x = 0; x < alphabet_tbl[i].width; x++) {
129 
130  src_px = (alphabet_tbl[i].offset_row + y) * alphabet->width;
131  src_px += alphabet_tbl[i].offset_col + x;
132 
133  srcfont = (uint32_t(*)[]) & alphabet->pixel_data;
134 
135  dest_px = y * alphabet_tbl[i].font->width;
136  dest_px += x;
137 
138  if (((*srcfont)[src_px] & 0xFFFF00) != 00) {
139  (*destfont)[dest_px] = (*srcfont)[src_px];
140  }
141  }
142  }
143  }
144  bmp_free(&alphabet);
145 }
146 
147 #define OFFSET_LOWERCASE ('Z' - 'A') + 1
148 #define OFFSET_NUMBERS OFFSET_LOWERCASE + ('z' - 'a') + 1
149 #define OFFSET_SPECIAL OFFSET_NUMBERS + ('9' - '0') + 1
150 
152  if (c >= 'a' && c <= 'z') {
153  return &alphabet_tbl[(c - 'a') + OFFSET_LOWERCASE];
154  } else if (c >= 'A' && c <= 'Z') {
155  return &alphabet_tbl[c - 'A'];
156  } else if (c >= '0' && c <= '9') {
157  return &alphabet_tbl[(c - '0') + OFFSET_NUMBERS];
158  } else if (c >= '.' && c <= '/') {
159  return &alphabet_tbl[(c - '.') + OFFSET_SPECIAL];
160  } else if (c == ':') {
161  return &alphabet_tbl[(c - ':') + OFFSET_SPECIAL + 2];
162  }
163  return NULL;
164 }
165 
167  font_character_t *f;
168  f = text_get_char_font(c);
169  if (f) {
170  return f->font;
171  }
172  return NULL;
173 }
174 
175 void text_put(int container, char *string) {
176  int strsize;
177  int i;
178  font_character_t *c;
179  int x = 0;
180  int y = 2;
181 
182  strsize = strlen(string);
183  for (i = 0; i < strsize; i++) {
184  if (string[i] == ' ') {
185  x = x + 7;
186  continue;
187  }
188  if (string[i] == '\n') {
189  y = y + 20;
190  x = 0;
191  continue;
192  }
193  c = text_get_char_font(string[i]);
194  if (c == NULL) {
195  continue;
196  }
197 
198  container_bitmap_at_xy(container, x, y, c->font, true);
199  x += c->width;
200  x++;
201  x++;
202  }
203 }
unsigned char pixel_data[]
Definition: container.h:41
+
gimp_bitmap_t * text_get_char_bitmap(char c)
Definition: text.c:166
+ +
uint8_t rgba_t[4]
Definition: container.h:6
+
unsigned int bytes_per_pixel
Definition: container.h:40
+
void text_close()
Definition: text.c:88
+
void text_put(int container, char *string)
Definition: text.c:175
+
void text_init()
Definition: text.c:99
+
unsigned int width
Definition: container.h:38
+ + +
int bmp_open(const char *file, gimp_bitmap_t **bitmap)
Definition: bmp.c:179
+ +
#define OFFSET_SPECIAL
Definition: text.c:149
+ +
int container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent)
Definition: container.c:156
+
gimp_bitmap_t * font
Definition: text.c:15
+
unsigned int height
Definition: container.h:39
+
font_character_t * text_get_char_font(char c)
Definition: text.c:151
+
char character
Definition: text.c:10
+
void bmp_free(gimp_bitmap_t **bitmap)
Definition: bmp.c:183
+
int height
Definition: text.c:14
+ +
#define OFFSET_LOWERCASE
Definition: text.c:147
+
int offset_row
Definition: text.c:12
+ +
int offset_col
Definition: text.c:11
+
#define OFFSET_NUMBERS
Definition: text.c:148
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/text_8h.html new file mode 100644 index 0000000..5ccbdb8 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8h.html @@ -0,0 +1,197 @@ + + + + + + +PiAIZU: lib/text.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
text.h File Reference
+
+
+
#include "container.h"
+
+Include dependency graph for text.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

void text_init ()
 
void text_put (int container, char *string)
 
void text_close ()
 
+

Function Documentation

+ +
+
+ + + + + + + +
void text_close ()
+
+ +

Definition at line 88 of file text.c.

+ +
+
+ +
+
+ + + + + + + +
void text_init ()
+
+ +

Definition at line 99 of file text.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void text_put (int container,
char * string 
)
+
+ +

Definition at line 175 of file text.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.map new file mode 100644 index 0000000..f861dd7 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.md5 new file mode 100644 index 0000000..d500c00 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.md5 @@ -0,0 +1 @@ +2d232837d0beac601ac9e12403785344 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..67540ba9e33e3234f94cc2807ee3211e0f235067 GIT binary patch literal 6142 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 + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.md5 new file mode 100644 index 0000000..3300958 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.md5 @@ -0,0 +1 @@ +798da4692c54ca6023d90d1de24987b0 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/text_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..d64f8e297bd42569a5aaead8040d44feda747535 GIT binary patch literal 10325 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 + + + + + +PiAIZU: lib/text.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
text.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 #include "container.h"
4 
5 void text_init();
6 
7 void text_put(int container, char *string);
8 
9 void text_close();
void text_put(int container, char *string)
Definition: text.c:175
+
void text_init()
Definition: text.c:99
+
void text_close()
Definition: text.c:88
+ +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/version_8c.html new file mode 100644 index 0000000..b2cda91 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/version_8c.html @@ -0,0 +1,160 @@ + + + + + + +PiAIZU: lib/version.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
version.c File Reference
+
+
+
#include "version.h"
+#include "log.h"
+
+Include dependency graph for version.c:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

char * version_git_get (void)
 
char * version_date_get (void)
 
+

Function Documentation

+ +
+
+ + + + + + + + +
char* version_date_get (void )
+
+ +

Definition at line 9 of file version.c.

+ +
+
+ +
+
+ + + + + + + + +
char* version_git_get (void )
+
+ +

Definition at line 4 of file version.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.map new file mode 100644 index 0000000..d959e44 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.md5 new file mode 100644 index 0000000..e308836 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.md5 @@ -0,0 +1 @@ +a3ed38198218cf6465dd81ac2a9f33b6 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/version_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..97056ea3c21dfa6ae10b40cdda9e5a533751fc00 GIT binary patch literal 8179 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8c_source.html b/stage2/03-install-piaizu/files/fb/docs/html/version_8c_source.html new file mode 100644 index 0000000..15ec1f9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/version_8c_source.html @@ -0,0 +1,104 @@ + + + + + + +PiAIZU: lib/version.c Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
version.c
+
+
+Go to the documentation of this file.
1 #include "version.h"
2 #include "log.h"
3 
4 char *version_git_get(void) {
5 
6  return GITSHA;
7 }
8 
9 char *version_date_get(void) {
10 
11  return DATE;
12 }
char * version_git_get(void)
Definition: version.c:4
+ + +
char * version_date_get(void)
Definition: version.c:9
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/version_8h.html new file mode 100644 index 0000000..c404fcb --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/version_8h.html @@ -0,0 +1,157 @@ + + + + + + +PiAIZU: lib/version.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
version.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

char * version_git_get (void)
 
char * version_date_get (void)
 
+

Function Documentation

+ +
+
+ + + + + + + + +
char* version_date_get (void )
+
+ +

Definition at line 9 of file version.c.

+ +
+
+ +
+
+ + + + + + + + +
char* version_git_get (void )
+
+ +

Definition at line 4 of file version.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.map new file mode 100644 index 0000000..c9160b4 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.md5 new file mode 100644 index 0000000..b3b317c --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.md5 @@ -0,0 +1 @@ +13b5b91ca54bd9d5b499675ee2f5d74d \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/version_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..23f51f05e447e9220a7a73507a0ba79daecc2290 GIT binary patch literal 3265 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 + + + + + +PiAIZU: lib/version.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
version.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 char *version_git_get(void);
4 char *version_date_get(void);
char * version_git_get(void)
Definition: version.c:4
+
char * version_date_get(void)
Definition: version.c:9
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c.html b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c.html new file mode 100644 index 0000000..90b65e4 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c.html @@ -0,0 +1,254 @@ + + + + + + +PiAIZU: lib/webrequest.c File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
webrequest.c File Reference
+
+
+
#include "fwatch.h"
+#include "lmxsocket.h"
+#include "log.h"
+#include "text.h"
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/un.h>
+#include <unistd.h>
+
+Include dependency graph for webrequest.c:
+
+
+ + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + +

+Functions

void webrequest_update_text (unsigned int c, char *text)
 
void webrequest_update_crosshair (unsigned int c, coordinate_t *coord)
 
void webrequest_handle (int sock)
 
int webrequest_init ()
 
void webrequest_close ()
 
+

Function Documentation

+ +
+
+ + + + + + + +
void webrequest_close ()
+
+

Will close and clean used resources.

+ +

Definition at line 193 of file webrequest.c.

+ +
+
+ +
+
+ + + + + + + + +
void webrequest_handle (int sock)
+
+ +

Definition at line 31 of file webrequest.c.

+ +
+
+ +
+
+ + + + + + + +
int webrequest_init ()
+
+

Initiate the webrequest api. This function will register it self in the fwatch module.

+ +

Definition at line 165 of file webrequest.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void webrequest_update_crosshair (unsigned int c,
coordinate_tcoord 
)
+
+ +

Definition at line 22 of file webrequest.c.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void webrequest_update_text (unsigned int c,
char * text 
)
+
+ +

Definition at line 17 of file webrequest.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.map new file mode 100644 index 0000000..2b16c3e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.md5 new file mode 100644 index 0000000..18a4d0d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.md5 @@ -0,0 +1 @@ +3ccdc1cb94bc4b047a96d5aedf056273 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0e4d609ccb615d09cb8d296967744c828085cf GIT binary patch literal 53300 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 bUwDNb-QZ788}VA``W??C + + + + + +PiAIZU: lib/webrequest.c Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
webrequest.c
+
+
+Go to the documentation of this file.
1 #include "fwatch.h"
2 #include "lmxsocket.h"
3 #include "log.h"
4 #include "text.h"
5 #include <fcntl.h>
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <sys/socket.h>
9 #include <sys/stat.h>
10 #include <sys/types.h>
11 #include <sys/un.h>
12 #include <unistd.h>
13 
14 static int sock_fd; /* Just to be used when closing the file */
15 static coordinate_t current_coords = {.x = LMX_PIXEL_WIDTH / 2, .y = LMX_PIXEL_HEIGHT / 2};
16 
17 void webrequest_update_text(unsigned int c, char *text) {
18  container_reset(c);
19  text_put(c, text);
20 }
21 
22 void webrequest_update_crosshair(unsigned int c, coordinate_t *coord) {
23  container_reset(c);
24 
25  container_draw_line(c, 0, coord->y, LMX_PIXEL_WIDTH - 1, coord->y); /* Horisontal line */
26  container_draw_line(c, coord->x, 0, coord->x, LMX_PIXEL_HEIGHT - 1); /* Vertical line */
27  current_coords.x = coord->x;
28  current_coords.y = coord->y;
29 }
30 
31 void webrequest_handle(int sock) {
32  ssize_t readsize;
33  struct sockaddr_un src_addr;
34  socklen_t src_addr_len;
35  char buf[DATAGRAM_SIZE];
37 
38  src_addr_len = sizeof(struct sockaddr_un);
39  readsize = recvfrom(sock, buf, DATAGRAM_SIZE, 0, (struct sockaddr *)&src_addr, &src_addr_len);
40 
41  if (readsize < 0) {
42  LOG("Receiving datagram packet %d %m", sock);
43  exit(1);
44  }
45 
46  sdh = (void *)buf;
47 
48  switch (sdh->type) {
49  case SOCKET_DATAGRAM_TYPE_COORD: {
51  LOG("Received coordinate: %zd bytes \n=======\nx:%d y:%d\n=======\n", readsize, coord->coord.x,
52  coord->coord.y);
54  break;
55  }
56  case SOCKET_DATAGRAM_TYPE_MOVE: {
58  coordinate_t new_coord;
59  new_coord.x = current_coords.x;
60  new_coord.y = current_coords.y;
61 
62  switch (coord->move) {
63  case MOVE_UP:
64  if (new_coord.y) {
65  new_coord.y--;
66  }
67  break;
68  case MOVE_DOWN:
69  new_coord.y++;
70  break;
71  case MOVE_LEFT:
72  if (new_coord.x) {
73  new_coord.x--;
74  }
75  break;
76  case MOVE_RIGHT:
77  new_coord.x++;
78  break;
79  case MOVE_UP_LEFT:
80  if (new_coord.y) {
81  new_coord.y--;
82  }
83  if (new_coord.x) {
84  new_coord.x--;
85  }
86  break;
87  case MOVE_UP_RIGHT:
88  if (new_coord.y) {
89  new_coord.y--;
90  }
91  new_coord.x++;
92  break;
93  case MOVE_DOWN_LEFT:
94  if (new_coord.x) {
95  new_coord.x--;
96  }
97  new_coord.y++;
98  break;
99  case MOVE_DOWN_RIGHT:
100  new_coord.x++;
101  new_coord.y++;
102  break;
103  case MOVE_CLEAR:
104  container_reset(11);
105  return;
106  }
107  LOG("Received move: %zd bytes \n=======\nx:%d y:%d Container: %d\n=======\n", readsize, new_coord.x,
108  new_coord.y, coord->header.container);
109  webrequest_update_crosshair(coord->header.container, &new_coord);
110  break;
111  }
112  case SOCKET_DATAGRAM_TYPE_TEXT: {
114  LOG("Received text: %zd bytes \n=======\n%s\n=======\n", readsize, text->text);
115  webrequest_update_text(10, text->text);
116  break;
117  }
118 
119  case SOCKET_DATAGRAM_TYPE_INFO: {
120  int i, n;
121  socket_datagram_lmx_info_t *response;
122  container_t * c;
123  size_t s;
124 
125  n = container_get_n();
126  s = sizeof(socket_datagram_lmx_info_t) + (n * sizeof(container_info_t));
127 
128  response = malloc(s);
129 
130  response->header.type = SOCKET_DATAGRAM_TYPE_INFO;
131  response->header.size = s;
132  response->n_containers = n;
133  for (i = 0; i < n; i++) {
134  container_info_t *ci = &response->containers[i];
135  c = container_get(i);
136 
137  ci->x = c->x;
138  ci->y = c->y;
139  ci->width = c->width;
140  ci->height = c->height;
141  ci->transparent = c->transparent;
142  ci->visible = c->visible;
143  ci->frame = c->frame;
144  ci->framesize_mem = c->framesize_mem;
145  strncpy(ci->description, c->description, DESCRIPTION_LENGHT);
146  }
147 
148  LOG("Received info request: %zd bytes, sending response %zd bytes to "
149  "src_addr %s\n",
150  readsize, s, src_addr.sun_path);
151  if (sendto(sock, response, s, 0, (struct sockaddr *)&src_addr, src_addr_len) < 0) {
152  LOG("Error sending datagram message: %m\n");
153  }
154  free(response);
155  break;
156  }
157  default: {
158  LOG("Received: %zd bytes but command is not supported: %d\n", readsize, sdh->type);
159  break;
160  }
161  }
162  return;
163 }
164 
166 
167  int sock;
168  struct sockaddr_un name;
169 
170  /* Create socket from which to read. */
171  sock = socket(AF_UNIX, SOCK_DGRAM, 0);
172  if (sock < 0) {
173  perror("opening datagram socket");
174  return -1;
175  }
176 
177  /* Create name. */
178  name.sun_family = AF_UNIX;
179  strncpy(name.sun_path, SOCKET_NAME, sizeof(name.sun_path));
180 
181  /* Bind the UNIX domain address to the created socket */
182  if (bind(sock, (struct sockaddr *)&name, sizeof(struct sockaddr_un))) {
183  perror("binding name to datagram socket");
184  return -1;
185  }
186  chmod(SOCKET_NAME, 0777);
187 
189  sock_fd = sock;
190  return 0;
191 }
192 
194  close(sock_fd);
195  unlink(SOCKET_NAME);
196 }
container_info_t containers[]
Definition: lmxsocket.h:74
+
bool visible
Definition: container.h:23
+
char description[DESCRIPTION_LENGHT]
Definition: lmxsocket.h:68
+
int webrequest_init()
Definition: webrequest.c:165
+
#define LOG(str,...)
Definition: log.h:7
+ + +
#define LMX_PIXEL_WIDTH
Definition: container.h:8
+ + +
bool transparent
Definition: container.h:22
+ +
void text_put(int container, char *string)
Definition: text.c:175
+ +
container_t * container_get(int container)
Definition: container.c:190
+
int container_get_n(void)
Definition: container.c:193
+ +
uint16_t y
Definition: lmxsocket.h:29
+ +
void webrequest_update_crosshair(unsigned int c, coordinate_t *coord)
Definition: webrequest.c:22
+ +
size_t framesize_mem
Definition: lmxsocket.h:67
+
unsigned int height
Definition: lmxsocket.h:63
+
socket_datagram_type_t type
Definition: lmxsocket.h:22
+ + +
#define LMX_PIXEL_HEIGHT
Definition: container.h:9
+
int container_draw_line(unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y)
Definition: container.c:271
+ +
unsigned int width
Definition: container.h:18
+
#define DATAGRAM_SIZE
Definition: lmxsocket.h:11
+ +
void container_reset(unsigned int container)
Definition: container.c:73
+ +
#define DESCRIPTION_LENGHT
Definition: lmxsocket.h:13
+ +
size_t framesize_mem
Definition: container.h:25
+
char text[TEXT_LENGTH]
Definition: lmxsocket.h:56
+
#define SOCKET_NAME
Definition: lmxsocket.h:10
+ + + +
uint16_t x
Definition: lmxsocket.h:28
+ +
unsigned int height
Definition: container.h:19
+
socket_datagram_header_t header
Definition: lmxsocket.h:50
+ + +
int fwatch_add(fwatch_cb_f cb, int fd, char *fname)
Definition: fwatch.c:42
+ + +
char frame
Definition: container.h:24
+
void webrequest_close()
Definition: webrequest.c:193
+ + +
char * description
Definition: container.h:27
+ + +
void webrequest_handle(int sock)
Definition: webrequest.c:31
+
void webrequest_update_text(unsigned int c, char *text)
Definition: webrequest.c:17
+ +
socket_datagram_header_t header
Definition: lmxsocket.h:72
+ + + + +
unsigned int width
Definition: lmxsocket.h:62
+ +
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h.html b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h.html new file mode 100644 index 0000000..90d56b1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h.html @@ -0,0 +1,157 @@ + + + + + + +PiAIZU: lib/webrequest.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
webrequest.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

int webrequest_init ()
 
void webrequest_close ()
 
+

Function Documentation

+ +
+
+ + + + + + + +
void webrequest_close ()
+
+

Will close and clean used resources.

+ +

Definition at line 193 of file webrequest.c.

+ +
+
+ +
+
+ + + + + + + +
int webrequest_init ()
+
+

Initiate the webrequest api. This function will register it self in the fwatch module.

+ +

Definition at line 165 of file webrequest.c.

+ +
+
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.map b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.map new file mode 100644 index 0000000..d1ac3c0 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.md5 b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.md5 new file mode 100644 index 0000000..64c2cdd --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.md5 @@ -0,0 +1 @@ +637930801d834a81f804c0a539ae25f3 \ No newline at end of file diff --git a/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.png b/stage2/03-install-piaizu/files/fb/docs/html/webrequest_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ff4534a80200ff02ea030d1a7f31ecf4d2f396ff GIT binary patch literal 2578 zcmbtWc{H0@AAX}^D{5-0YAdQnV=1+j7ExLiiiA|`u{9}DCbq`XgpR6W2vtjMK~Zas zt!k$jYiy--iqeu=(h5fG^UnFsneY3~`TqOvJ@0$Zd+&Si`Td^r{GR8=SXr0|@QLvO z03cv`(-;Mg6!7um;Q-%uL*Jsnfy>Rz#27gGyXQ6+B?AC&kEyYt&Hc=^EN^q+4 z0t9kOmVLQHrmvGbmqU$G98)YK8iu}Z1%aL`PRxy&-zXdr|FPXTUp7zk2P1yyg?08- z2_iiArjSC-51RP5-u6}>un!$P{B8SD#E`0nm;iQI z4H^h(y@CPUUIA~hkjJiHAB>ES5_dQ6*4oFHWSE{v?rjSAI=a8JQESp7Y-MeooSIr6 zv^M>-%E~satSoNuPJ#j@vh!1%%k|bXo}Qkazs~6aYX2O!;|W2%)VO^4J=Q3vuCA^> z_2P4@XVgsL=(#!UOB>xjxk5VS?pWd4O!Eh}PD)BjscofJLu?G(+k0iA++i?vHUJV7 z6tup+-c2WMEDk<7rD)D{lZ7XF`1)4vu%4@6-@}k7)NeR?HsM2^Q*#LVr40wgT>iOk zU`a{}+Re?)&=3M_Zf%u2)T<~e9tUnF{n1474-C`W4SRf%igyBfy!b8?cbMc`M)3F50Yd3my0T3T{)9`tOz zuC6Y?@AL0J0PkDE8`}+q_@dO*)LdO%b#!zJ1s2i>9rPRnOR$-ll~z`gzt2Gc8#EdU zg+kz93lG-=9(TEUdwbKYc!0A84di~)>Xk07GvniLzYtCOcmWcL z6fG!83=W=52w9(pruN6j#`X^merzR^LqgtABeyzF@pVNVKmFb($l2LBARr(lWOr_E z4$K{((3ix`QD}7F-k)pMMHb)|7y0CL)qC#p(iblDPEC>4=exKCB@~pEp_Jw2<+e6B zz{Ah){-{Gc>&=BqTUEI0PjwV+*hceo1m?__+*)Kmchpnq~G?TA%tg zW8+`q;{|HzyeQ}L^LQftK&YgC_V*XRUBJva+Uz6{ z2)=*3Mq)5&$;s7zpE{aDw|CiW(N-^RZf*dpD%x$S-jT-3-rXuKEmZ_=$|dReFOH9o zv-kF_XWdjqBO)R|ik^&l3(|&8udJ)PEq7A#N>H3Gn6k{dbDh1tyufE7$<{WtJ#!Xz zr|QNN-OxW*i!5_$77lkda0HT9ZAPz0P(T1aff22kf_Q-_*{$l!dV zb52%vdU`q_bUY#N+3JUS-}?IciJIH(d>pwxvl2jHYMqkV+4v zc?}bf_BZP4gM|p_LPImiMd!!7k>h%Kx0A_7$~Vw-eC`WMM~D4E>m!2@o7jRhTgvEthW&_+Rea zAbV0BftQENe)aNsnpgmVh{YFHA!Vrn@nm#8$oTebrO`qo4M$B-NI!;9FxL-hkxtW=fQx`s6fkTx4 zhK0qiAeHm;-MzfL?%k^>EnSH_qYm=lB&%&{BUQ!8i$GYLpC=yd2C^UUg8C5^71h$x z0{Yo$6-Uu$nbJIh(F^nQm%Jy+($dnhv$NNmYR+PrF0~+e>6;vYk5*%SeQHR;r)SCz zA)%qw)zy&P{Cp$%({SAYgk-d)lfDLz_zjFEgW@S%YLjr&7S zFPwAkZz65j+uIih85tRQd6noq(GUpXVSM{$tMH?eh#Aew@3I8ISlL@YcCx`yW$Vcl zgTVmB=}Fgoz3;62`SW)@%{dt|*u{bL(-)oN;^H=0ETX^vhvv{=Jf3kPUr_4m`g8IM?piV8aI_nJv=;IWJb-L_?FH2-xr> + + + + + +PiAIZU: lib/webrequest.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
PiAIZU +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
webrequest.h
+
+
+Go to the documentation of this file.
1 #pragma once
2 
3 /**
4  * Initiate the webrequest api. This function will register it self in the fwatch module.
5  */
6 int webrequest_init();
7 
8 /**
9  *
10  * Will close and clean used resources.
11  */
12 void webrequest_close();
int webrequest_init()
Definition: webrequest.c:165
+
void webrequest_close()
Definition: webrequest.c:193
+
+ + + + diff --git a/stage2/03-install-piaizu/files/fb/documentation.txt b/stage2/03-install-piaizu/files/fb/documentation.txt new file mode 100644 index 0000000..5e30884 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/documentation.txt @@ -0,0 +1,176 @@ +/*! \mainpage PiAIZU webserver + * LMX interactive page + * + * ``` + * Build date: Tue Nov 21 16:36:36 CET 2017 + * Git describe: 2017-07-05-raspbian-jessie-6-g68cdf34 + * ``` + * + * \section intro_sec Introduction + * + * You have now successfully connected to the Raspberry PIs webserver. + * This documentation has been compiled with Doxygen and will describe how to use + * this Raspberry PI to control the Sony LMX-001 display. This setup is called the PiAIZU. + * + * When this PiAIZU is powered up it boots Linux (Raspbian lite) and an sample application is started. This app will display an animation in the LMX-001 and some basic information. + * The PiAIZU will also act as a WiFi access point and since you can read this document you have probably already successfully connected to it. + * + * This setup has all the nescessary tools and compilers pre-installed to be able to both edit and recompile this sample application. + * + * A few useful tools that has been added: + * * GCC + * * Python + * * sshfs + * * gdb + * * gdb-server + * + * \subsection access How to access the Raspberry + * The Raspberry Pi has a SSH server running and it has been configured with a static IP address that is 192.168.1.1 + * To connect to the Raspberry Pi via ssh: + * + * **In Linux** + * + * Open a terminal and type: + * + * ``` + * ssh pi@192.168.1.1 + * ``` + * + * **In Windows** + * + * Download and install Putty and setup a SSH connection. + * + * **Password is: raspberry** + * + * \subsection about_sw About the sample application + * The sample application and library provided with source code and resides in: + * + * /home/pi/lmx_example + * + * It basically starts with memory mapping the framebuffer: + * + * /dev/fb0 + * + * and then a software layer is put over that to enable the user to specifiy layers or containers that the user then can put various + * kind of information in. This could be text, shapes like lines or dots, or fill the container with a bitmap image. + * Each container has x,y coordinate together with height and width. Each container can be set to be visible or hidden runtime. + * + * To start working the framebuffer needs to be mapped to memory, memory has to be allocated for the containers and some + * initialisation has do be done, this is done by calling the function: + * + * ``` + * container_new() + * ``` + * + * In the first version the containers are statically defined before compile time. This is done in the file: define_containers.h + * Every time a containers contents has been updated the whole container system needs to be compiled before the actual change is + * displayed on the screen. This is done by calling the funcion: + * ``` + * container_compile() + * ``` + * To close the system the funcion + * ``` + * container_close() + * ``` + * must be called to free all the allocated memory and to unmap the framebuffer. Similar approach has been used in the text/font system regarding init and close. + * + * There are various function to add or manipulate the contents of the containers. The handle for each container is basically an integer that is an index that points out which container it is in the array or container_t in define_containers.h. + * + * Functions to decode .bmp files has been implemented and tested on both 24 bit and 32 bit bmp files. The difference is basically that in the 32 bit case you have RGBA and in 24 bit it's only RGB information stored + * The 'A' in RGBA is not being used at the moment. + * + * A simple font has been added that supports uppercase and lower case letters together with numbers and only a few special characters. + * + * \subsection buttons_sec Buttons + * + * The shield connected to the Raspberry has two small button, a lib has been written to be able to register events from these buttons. + * Try to click the buttons while running the sample application to see, for events has been registered that will be trigged depending on + * how long each key press is and on what button. + * + * \subsection web_interface Webinterface + * + * The sample application has an interface to be able to receive commands from the web. To evaluate this functionality enter LMX interactive page. + * From here it is possible to send text and show a cross-hair cursor directly on the LMX-001 display. + * + * This functionality works like this: + * + * The web server (lighttpd) shows the LMX interactive page. When a button is clicked, a cgi script is called. + * The source code of this script is available in the sample applicationlication folder under /hopme/pi/lmx_example/cgi-src. + * This cgi script will via a UNIX socket in /tmp/lmx.socket connect to the LMX sample application. The sample application can also reply with data. + * + * \section install_sec Compilation + * + * The application consist of a library and two sample applicationlications. One written in C and one written in Python, they are called main.c and main.py. + * Both the main.c and main.py use the provided library. The whole buildsystem can be configured by changing the settings in settings.mk. + * For development it can be convenient to to set the flag + * ``` + * LDEXTRA=-Wl,-rpath,./lib/ + * ``` + * to tell the linker to use the locally built liblmx.so instead of the pre-installed one. This is done in settings.mk. + * + * The Makefile contains a few targets: + * - **all** Will build the sample application + * - **clean** Will remove all build files, binaries, object files. Compiled documentation is not affected + * - **format** Runs clang-format on all source, this requires clang-format to be installed which it isn't on the Raspberry + * - **install** Installs the lmx binary into /usr/bin and activates startup scripts in init.d + * - **dbg** Compiles the all with extra prints for debugging, forces a frame to be printed around all containers + * - **doc** Will run Doxygen to recompile this documentation, requires Doxygen to be installed + * - **analyze** Runs scan-build to perform a static code analysis + * + * It is possible to run this program on a Linux computer too. Then the sample applicationlication will + * use the PC:s framebuffer. On Ubuntu you will have to press Ctrl+Alt+F1 to get into a console. From there you can start the sample + * application and you will see the same output as if the program was used on the PiAIZU. + * Example app must first be recompiled for the x86 architecture for that to work, that is a matter of rebuilding it but doing that on + * the host computer. + * + * To simply rebuild the sample application, type: + * ``` + * make + * ``` + * + * to install your changes on the Raspberry Pi rootfs: + * ``` + * sudo make install + * ``` + * + * There are a few buildflags that can be added to get special functions: + * + * The following buildflag will mask out red and blue color, this is usefull when testing the software on a PC to get a + * picture more similar to the one in LMX-001. + * ``` + * SETTING+=-DGREEN_MONOCHROME + * ``` + * + * To convert a RGB BMP to green scale two methods are implemented, Average and Luminosity. To activate try one of the following: + * ``` + * SETTING+=-DGRAYSCALE_LUMINOSITY + * SETTING+=-DGRAYSCALE_AVERAGE + * ``` + * + * \section rebuild_sec Rebuilding Raspbian + * + * To update or add new packages to the Raspbian rootfs you either have to provide Internet to the Raspberry Pi or recompile the whole Raspbian. + * + * The modified Raspbian buildsystem is provided on the PiAIZU SD card image, it resides under: + * ``` + * /home/pi/piaizu_"v2.0.0" + * ``` + * the postfix is the git describe --tags output. In this directory you will find more information on how to rebuild the SD card image. + * + * + * Second option is to provide a Internet connection + * If you have two network connections on your PC you could most probably share your one Internet connection with while your WLAN is connected to the Raspberry Pi AP PiAIZU. + * To do that successfully you need to enable ip forwarding and setup your iptables for NAT. The Internet is full information on how to do this. + * + * \section changelog_sec Change log + * \version v2.1.0 + * - Minor changes to the container api + * - Added python sample application + * - Created a lib, (liblmx.so) of almost all sample application, leaving only main.c outside + * \version v2.0.0 + * - New webinterface + * \version v1.0.0 + * - First release + * + * + */ diff --git a/stage2/03-install-piaizu/files/fb/doxy.cfg b/stage2/03-install-piaizu/files/fb/doxy.cfg new file mode 100644 index 0000000..c513230 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/doxy.cfg @@ -0,0 +1,319 @@ +# Doxyfile 1.8.11 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "PiAIZU" +PROJECT_NUMBER = +PROJECT_BRIEF = +PROJECT_LOGO = graphics/sonylogo.jpg +OUTPUT_DIRECTORY = ./docs +CREATE_SUBDIRS = NO +ALLOW_UNICODE_NAMES = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 4 +ALIASES = +TCL_SUBST = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +MARKDOWN_SUPPORT = YES +AUTOLINK_SUPPORT = YES +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +GROUP_NESTED_COMPOUNDS = NO +SUBGROUPING = YES +INLINE_GROUPED_CLASSES = NO +INLINE_SIMPLE_STRUCTS = NO +TYPEDEF_HIDES_STRUCT = NO +LOOKUP_CACHE_SIZE = 0 +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_PACKAGE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +HIDE_COMPOUND_REFERENCE= NO +SHOW_INCLUDE_FILES = YES +SHOW_GROUPED_MEMB_INC = NO +FORCE_LOCAL_INCLUDES = NO +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_MEMBERS_CTORS_1ST = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +STRICT_PROTO_MATCHING = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +CITE_BIB_FILES = +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_AS_ERROR = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ./lib/ ./ ./cgi-src/ +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = +RECURSIVE = NO +EXCLUDE = main.py +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +FILTER_SOURCE_PATTERNS = +USE_MDFILE_AS_MAINPAGE = +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = NO +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +SOURCE_TOOLTIPS = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +CLANG_ASSISTED_PARSING = NO +CLANG_OPTIONS = +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_EXTRA_STYLESHEET = +HTML_EXTRA_FILES = cgi-src/lmxindex.html +HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_GAMMA = 80 +HTML_TIMESTAMP = NO +HTML_DYNAMIC_SECTIONS = NO +HTML_INDEX_NUM_ENTRIES = 100 +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +DOCSET_PUBLISHER_ID = org.doxygen.Publisher +DOCSET_PUBLISHER_NAME = Publisher +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = org.doxygen.Project +QHP_VIRTUAL_FOLDER = doc +QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +GENERATE_ECLIPSEHELP = NO +ECLIPSE_DOC_ID = org.doxygen.Project +DISABLE_INDEX = NO +GENERATE_TREEVIEW = NO +ENUM_VALUES_PER_LINE = 4 +TREEVIEW_WIDTH = 250 +EXT_LINKS_IN_WINDOW = NO +FORMULA_FONTSIZE = 10 +FORMULA_TRANSPARENT = YES +USE_MATHJAX = NO +MATHJAX_FORMAT = HTML-CSS +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest +MATHJAX_EXTENSIONS = +MATHJAX_CODEFILE = +SEARCHENGINE = YES +SERVER_BASED_SEARCH = NO +EXTERNAL_SEARCH = NO +SEARCHENGINE_URL = +SEARCHDATA_FILE = searchdata.xml +EXTERNAL_SEARCH_ID = +EXTRA_SEARCH_MAPPINGS = +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +LATEX_FOOTER = +LATEX_EXTRA_STYLESHEET = +LATEX_EXTRA_FILES = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +LATEX_SOURCE_CODE = NO +LATEX_BIB_STYLE = plain +LATEX_TIMESTAMP = NO +#--------------------------------------------------------------------------- +# Configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +RTF_SOURCE_CODE = NO +#--------------------------------------------------------------------------- +# Configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_SUBDIR = +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- +GENERATE_DOCBOOK = NO +DOCBOOK_OUTPUT = docbook +DOCBOOK_PROGRAMLISTING = NO +#--------------------------------------------------------------------------- +# Configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# Configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = ./src/ +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +EXTERNAL_PAGES = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +DIA_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +DOT_NUM_THREADS = 0 +DOT_FONTNAME = Helvetica +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +UML_LIMIT_NUM_FIELDS = 10 +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +INTERACTIVE_SVG = NO +DOT_PATH = +DOTFILE_DIRS = +MSCFILE_DIRS = +DIAFILE_DIRS = +PLANTUML_JAR_PATH = +PLANTUML_INCLUDE_PATH = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES diff --git a/stage2/03-install-piaizu/files/fb/graphics/alphabet.bmp b/stage2/03-install-piaizu/files/fb/graphics/alphabet.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4d434761737ea961148cb929f9cef0dc49cad5a3 GIT binary patch literal 79194 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/alphabet.xcf b/stage2/03-install-piaizu/files/fb/graphics/alphabet.xcf new file mode 100644 index 0000000000000000000000000000000000000000..af1faa539254ce7d3312fbe63c0a82a749d3f813 GIT binary patch literal 36526 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00007.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00007.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d15bc8c742b786e9d7ef76f8b574636c3d8aa9e0 GIT binary patch literal 37138 zcmeI1u})M$7)I~1%ffD{F|jfh#!yRZL1?UOtSzke1!yg3OpFa!((xG9zJw29tt}30 z<}7i-Fq3=Txx_PJmoGE_+!^u_zL>&r4` zB!dJbAc0#1CUGzqCnn4oB=C?4q(-MR5BcZw>=Hngs4AfLwTr$WienGXx#KpR5&Q zA)w=9`6N8YKPQmN&O>*&YlmlaZtEdrp3u1tq3Y=DB2;a+SORwwz$qSDa6CMEuQiYV z8r|3NyFt1#S^^ozgY|38gX!y`l?Jy-z&WGAF|c5dhdZu;yZ6!hGbu#2!+Gf7|= z0?0*39gp|(&37FihQ3$X1_9J2q>l3kPlAqbmIyT+td&4p0%%L%KM@Hm5!#;F?h>dWfVKqGCa^@P>0qq{+7dup0%{Xj zBD6iT-6c>%0Bs4VO<;*o)4^H^v?YMH1k@(5L}+_vyGx*k0NN5zo4^vGrh~N-XiETX zGokGX?Jj|S1Tt!~)USiPCD4`tB41gh7)95y6NpnFfsm*W1wz!MrHIl{(NI&Q@(a*Xq(MS7K$(umpynlb2x@4< zI?woL-U!J~r_2&HB&!=Z!AKriT?#Jxp`1s!WYW3t~wL186adG&3`F;NQ^~d$L zj0MRc0SQQ;ea{IDIZ0rb2?P|M?efp(-6f#oI}H$yoS zy0%FI+Yq=ZmyT~k&^1#hpyN}2g}h%i0?3{|bnKyRPE_v{oiUAmccHMbYtzyjWhN9|2@1@Xk))59Pj(_k-=~ zQ3#+m0ksJ_KFUkup_K@rHUYH>I$jC3+f0@KvJ?2sPGE}PmB^1nnGjiJM*_78;4cBS z2}~8)N|{jm?(Qdn2m$;hpf-W2B3mgFBKNT)f!YKR5Rp-vz!c@kEhrNrtL#XiHUR`g zWYi`wMLBW{%7n-&I})f(009vhwFyj7j@*JWA+pMj1ZopNKtx7u0v$r+7L*B*Rdys$ zn*ajpcx|-qHxU9lK9Lu~Yy2|;8OM2Nr$dNbhcY3u%8mqT6F@+W=3_YDp+kt=f-)hp z%8mqT6F@+W*74em-EUk1sGSM?9uUU8v!_d-gg{1Zrcj$ua)Mn6j7tEKGXb>;}( u2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uuPY3H%1qXfw+I literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00009.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00009.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a241752e47936a152c9ce9cf6ee4ea2be13338dc GIT binary patch literal 37138 zcmeI0y>1gh6h_yv^J7DZ6w4A7qCkk6v=mVqsx;ITRDOZ96lstU4N#`zF{pV79)cR$ zFiCVjON=ra4|{j)-E$S&S35s<_w4cN#%JfpUz^+b6yD#5*Prlu8D692ad>Z|AAXHaPfq5S%jNUa<#O-a)z$RX?C1E|+s`-K zDkjQEAOL~E5ExnPL}4SV&%sdPLi|5+w*p!LB5Mv7+$>FBSIZ4ij%z?oD1QL!vu$WpLSeW#?rubO4-d}1pqRBbQY8e>> zN(dwzKe9NqcxYkLPjS2iI%_&5Ajd=1(29fyb$EIQx##ow!Xo5%@yNp3nVGdS``Sl| zp3(93XecL%mvaOH>kyEVVG)k6Lyo!ILIB6NJ{ZfeIVnVXb1k|C& zi8>RtG4T<7A@rqDlAxkFagtcY5Cn<{#A@rvo&}BI0UWQ2pW+=5 z!0`?sQ=%$?gyR}2>pIF-RfR$EUJ{VVaT~6oGF!`5^%61{Rh585#__86f#QAy}__MP=frQ!`!g2rmKm|Vn5;>9JxF3IZ_9u`~ zTSGYRe;=sO7J=B-oFi>jXCDao6UZ?-p5uRBRDeKR1Y&=4j literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00010.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00010.bmp new file mode 100644 index 0000000000000000000000000000000000000000..43e107930dadd277b9c4dbacb1f0b625f854b228 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00013.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00013.bmp new file mode 100644 index 0000000000000000000000000000000000000000..32a2cd408a4bc1adb5fdc00acd3afd0927a2643c GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00016.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00016.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5598647b12b04a2a3df0fcd06d44b2a643c3ddd5 GIT binary patch literal 37138 zcmeI4O;b}z6owO$5C|kO1Q7@X`H)YYiBh0Is7N+o6+=x~l;vWmnic$j+0Md^RhAod z>CT_w+CSlsnDxxoIoj2)l!x1OZ|<$w32)a)Jazix^nLqD+qt>g{%!1C>RWj&?|;kd zKY2ZnS2{H*@2S+Qx8MHw;q6N*W$bJGOZ)KYUoSrWyZYzH`pw%f|4BdI+^oJhKVN=) zem?l&{rll&;d5r`k2hb3MajaWLj|Znzbi0cOU9P0DrsB#T?}4dUn*b`AFzmL6yjNn zc)BkY;6?Sj0%W}3SNOVJA9iFoBevx8`BJGgF)=Y~%bYE>sVQSqw{BI+<-*WVE|W1f zn9Ul?q|?R*QmG(AQaJh(hAM}X)T%jBpem_c9H(0fVCmpk#77L^^?Ln|Ei1Mx&d(d0 zpPMt77e_{nk@0RV9rJ`#0BFMj6ATU%Q@4<9~gG}c#Fg>>1_XQroTYc*q| zg@UnsE@v$0pdxW3g@Z4;a8TuNl2Xf&0#!-n;yB$>080nQBA%BGy;`jb>9UOrB}JUnQ%g!Ik(_YLM?e0*%o7#Z)@8ZwVt0iX>Bj7vwkYbd1Wayj|dDZBaU>FL?o z*~P`h^JmX~KRFT7cON}6n1gZI(~XgFxALs@Nr9p*a$BX*XdE0IwD$M+_xAR7cAC4p z!nhn-)>c-Gf$?&&Xv}d!$5rAJ1_w7-w1ZxWJIL;E5>LtjJy1aQaZ?1hLZMKpRO&M` z%S%hY+`TJ+8zbW$EEJ~@UjaF~2SZ7Tc zXcc%T#>a(pGVZ~OaSBlt2*bD>TIBwTkWR*<%FFgYPXV9}NAKe}Y~TiAwNjBMSmgI0 z+(eZ9-Pny%$=Gl{Zw%d$0+)*j9GxAFBRLo_rV}YC8+)mMMnF>rNXfXDYsg8t6(HkU zfy)uMdaUgQ1un0r@g4g(9;uZ>h&*H~&mc}uP8!2mMdHTf5nN;FgsA1aI~@G~6r;A_h=PAShbPnV5y60%03vYE7!Ddc9CU}{Xw0f>uK+M{IAr|VW75+C zIM7BF8Sm*O=H!DF(2U!ACqu)wAcD^Udg*~t71PlpGeQMAQUD}^Ul45(A4UXi&`ak; zRZK^Z%m@|eNCA)tenB)D??_R0@=XB;{Z@nE%B(~Am_@m^dt z&N+$#4#u&eYbQ(wJ#uG}FuB-<3Ir>lxzj}JNbq>yYxKySMZS+nj|z06faXpUts`MF z>5)5&gvrG=R3KOZ&7E$GHoA%tD&V~W;1`abvZG2jW`qiOrU3YbqbKO7(v2CR0-h-V zejScyQ|5H2KqLhmXrn69fNV?!JW~K5I~>oZ%;``8DnJFO02QDDRDcRl0V+TRyiwqP D%Ui6q literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00017.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00017.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f638554b28aada2d63eae33d4eeadbe1b29ef2b2 GIT binary patch literal 37138 zcmeI4OHZ3u5QcrlmjE_kQ$x7e+zcrN9EUbSmE%UpK&mQ`Mbbryvho_K+b*)HRCUvK znO%QI*ZmXy5nZ?2bdu3|K^^(XH>~629gXeLxqt6@I39m?^7xzC-y-krXLLKJp2CjpZ{#X`eUV7{_*c$QEaOwo067_lTnvI&z|!h~p2}vkGcz*_3kzjuo6gEBE9#4-(ri9|CzDCU zV(Jr#gnB$0RgXm?o!rijHxC5(o3o8kGAx-fpeGpCTpVXq3fRpA;|h4CQrUL)nX~P! zE%mi>Suvl?X4T2~sJ4#tbg6)caXG;i@B?Ru&JOnW)OV^?#k?>(t4_wdRG!U7rGRBz zj&C)|P^#7H{{H^a(NVM6Y_(b!7Z<0er;SGAt4EKH9zMK(aPawq2Yb7_TN@jn6pQLO z(9;tW>YWl5DaY(cNRXl+KouI>U|4F|k!{Ja=HfV`Qo!zE##ug}FO^C{daYIy#?Q~s zUpTvX`tTa_!Y2>-z*W_g>-qAq(x5i%gf7lyM1+a_3Guz zZ=XLG(!qFjb5nh3aZ#O&`;}*HNDAPV;o90-y1lQJLegTd5|bjZv!lv(AFu=?dx8O{ zVE2#|z&=~bKx=MlN^Thn={U#9cu0H5wfGh2hH*(+D7NdXVzNKtUI<8}&q*;Sxwz`%~o5-QM_0wB@mDrCGbMcFAd1;}`4 zJHqu0NdcgZ0C@-k{A+$3@!d?00S64anTu_xKxYLkfIu4o8SktgYrAf9 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00018.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00018.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1100d96c44b68fbab2e242479e70e7fbb1cb00db GIT binary patch literal 37138 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 A=Kufz literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00020.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00020.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a6c10d9985a83db62e6f6712eb7cabae3597c468 GIT binary patch literal 37138 zcmeHPT~Ab36rF*Yfni{PL2v+-5BV&g0s)hPfGsht^{drtiPSd4Nz+(k?1O32MElT| z*oU@{zV&DHxqqTRqR;KCJ$iE2fQvcV_uMmc2RSzfSgy18+I#k0kmF^-#Vdv16R)r5 z>ht&N<3IJWpgxj`qWYXj?EUuo%Nw6wCK7tR;$L38^zpaP{`z;~i$BkF5B~U1a$|9^ z>shHZwoxi&{&?{syV~-1VQo+TqI0$LrEzkG~)cpkD z-@xLj=HSW%7h>xE)%XVe1b71QFFf86T>0Qa45xd>Pk<(nq>DnF5mc&7z_x{s4!uqk z3jMvkXNQI+$H(VqXU{J$&&|x}H9mY+uVUAU&epbUDxFRw-&l>wq+aSkQ)!_*s^c50 zkuJm_3&7QYAZP%tY8@vX9%uDlJ=X#Q2f^do;8T;6+Ta@(E?ih$)oc0Of?gA6M+W;( zDW|tJXZ3>9y~nF}ACH*yHLaxH9;{{Ji=Jt_*%@YwOD8%X)2XZ0fbL zusHY5lyZ7^N2gxi5bR=tUhM$7d!c^*YnrrH8e2r-sa~0-QBP6m%hBabLW$rIGDe?ys|huH#IgsJw7oqFnH=@Q9YK? z3ucEPPA}*OZQxrCrxykYM!Fq<4gjhHU<<&mmR%N#0@&%qorU%dK+>Zj9b2q}EdV$X z03KJMyQ^ztcvu}vl&Nogbj5p|N9vHlO#yHyUPCFgZvc{Z4C&Zn9c%%>+5qsl`iY!L zrPNR1T&77qMNwxG?{OZfLk2emz@c~zrO>_sNZK)^V~cgL1psR^NHsL*)zr|a*YN2x z=cZ>iSJ%`*MX&j(Y5mY#Jzm!f58T!Fhh9+TesDM?}2d(0?fT941;dBFoECWDM01h^kaK6RWnQ>mU z3WD4;&KqlFs7ap*5mU3WD4K(ayoeZu*aOHvv@0;Z=Pz$F8d}9G1hSR|y#yLO<=fJL2 z=WXm0wCl(&YhT%lP@-Hh*|@>V-s8rBS#I*2C5&Y;QJSQ_s~AZ`l3EfSj$vi*ah_6i zhUY9{qSvjgAgS*vrg9hM9Z9WnbQr|S@HjwII<1#FuISYjTM3YRDQ+bc32r651yTrzh;9Ak5iD&Rj~ztBMJbvLIJMD zj6{<rphTmGWUawXEi<7V9u`*lV@nSlN5rW{wAQc&Z2Y-TteV)m+tL9cEljiIu&_ zqtBM78eOxp0#{?Ea(1{KR%S+`$XU!tbR;pX9Q+Blbnv&z%U_#<%T5_b6acQyjHFh) zF>&|I^_g)sAy#HaQj4>gk?2TbSlN4AGPnIPJj4CF)yG_)8CPAfGBc7|oW+bpM-s!z z-s6(F?T_IZ?%%CG=K9RI>VlP-k<{WWW+Xb27*@tJ69zbA*eN3&fU7ejsTFTb+&y!B zW?W5(m6?&$;w)w)I+7SxW^03iH|>;>4#3r!k<^MeChnfOJ~OT+#LCP_YH=1b5*HW5tmBG--2e>AcFiNppo}d9dr+4Xz>P8h zyT%QI5w~D%0E3`i^T;wNV++9^)a3+lqYS{Vaf4vQEm#}CAZXV-vJA@DLa+yQIRV@# z1F&n{An0n#;BmX2IZM(iXL+WcCQ!Y5C{d0W<2_zaR;t@xBrdaSUZNZ^#(UiE*7z(x b0Y3ph0Y3ph0Y3ph0Y3ph0Y8CbJ%RrLPSX6V literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00021.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00021.bmp new file mode 100644 index 0000000000000000000000000000000000000000..06eefa4c463d61237cc90b93e7d5cf543c09501b GIT binary patch literal 37138 zcmeHPTW?fV6rSnyHq+AkjnYyIy-G_l+y!o*W;aIy5$ac;>{y;_;&kb}k;7 zo0*&%8#yr8+t=OJ-qP6An6FDr%`Q-3l)MoA+tG+`H7uc2M8VMH()fT-Ff=@VK0;Dq z$uF1r8FxpAZ`H{-%_blmNC_IZ0-u|mHR@hDdFsO2x$~=M?L2p8<<#*LM(MANPaGWH zZw!QO{$OPyx1p|N&zxcEfGb5Di=-7 ztnsdnj=_O}(UFmb`T3K}%V$?s-nn}1){UEYZ{2=)@BaNe?;GRZdv|W%eAlSnT;I)A z-rUJdkByHG4Vw#ke^+;VsinD4-w+L4!FxVeHGjsNl6@4x=^%*fna z&CNZGmHG1Gl9l2{*i^*Bj%cJp03zwe)6<)FdEUDqg{A+)ZFsh$@@Z5l)(mkutDb0 zAm9-Uq=2De_VYmsC&Mq7?mZx1?qr;1L&=!5*BTy;4>X077c_2u9JMkJ8c#bDH%xOn z?BkYW%bS@P+48Q;VrE7(892%haniW?P_mVI(75J|WFNotk~w$Bs%B?gsV0hjn1>Nu zz9DuPSTc_l?KB@Nv2$W5EVARGo#)WASe!KgtQ6{ir&#}X&Ol9Rzaj6ed=6bvk}#`g~mS(yio zb4$Gu&Ea~J*D%m;ADSrk(QFGshO}W|i8XGn)K=y}?p^0K2<`EEtLnbgFHyAtfIJie$31x zAVLZV2f7Oy7dok25*jWnDajRXLXsLRae;nGnMXi`6hY%c-@KQEh6_u+=>$qF`En=Y zKqwf=n6#gPp*t8%$UJ@sGe^Jc)3k?1Yc%k?nnH!l3}+{Uc{DraC`L3q8Xsn6#E(Z4 zm8KxS{F-dc%n0+a4@-c3n8y!c=Ad!cPI3ME%!BOyj;(c>)b;|k}+wo z{i1@#(|Q@lxUcxHBJl8p4ft@lfbhRh8iWbs^>1f$6eHWky5h{th=$WIDrmf1Z@I6~ zFH0K;d^lV{G>T>)CM>t7jdhML2O;i=xqb9Sx}pMb@~6WpQ0(C{#`-@cfKvopd` zjBu0&VIB>lVP+p@W}lbgI?h%5X@Pk(2zN1PT<#lpOoPar+pRKlnkRcPk{0KKF*73? z-k@>rTO85!Fz&ydt>Iyx?bu|Tc{B)frbV$ABWZCy7&9}X;oVt{<4t`wP#EumcghID z1%sm);p~iX6eAp^L6}E_XqefDnb{}YtEBZLj&T=R+CZSqID@sBhY^Ge21hZ%*%{#| zMmS1?Fpmb&FtZOcvro`?T2JB_cM*za1KNx;SetnmLAYRW6eFCS5sqSnqcjNfXb=rE z`!F;6q#+zvOC+tL@>umMWVs2s$`=~*5O{>87=eQ+5DH701VXseQuT7BF*}u(xpP`Y z<+04m0AbL$+nnFh%!yTB7Po_Y{M z$DEc@$rGRxA)FH=n=i4rBSu<9<*^!+8Z@4I3|VzPl{^9Zz>% literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00022.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00022.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6a8433426dfe6cfeab9e442070cb2d3ccd38309d GIT binary patch literal 37138 zcmeHPU2{}L5Z&yCBpX6VLcRzgUnC?zLLdnVU_b~0QWl5^3KpOxR#Z?xDSc2LC@o9G zvd}7hKp*sH`0StXNBFF-IAOSFH}}l;_MN@ig{qkvlHN1jr+a$N-rU?IES>K7Df47J zFdy%lfB%_(Gv;4irq_JTWbXg?R|<=E*fY>1k?e^W-_sfrC@{(JYyYzeqq!{ zL#T9JE@vl{E;xs!(1DtE0MdpLNxZ%x8cj5U#%p?LA$g(>K-w^%@z!Xx(Fht()Z}N< z83$eyBdwNbiqA$P7me1ImhR5Zf&Tt2n>UXP4egwmm>i#&o8I%n{KCO~^LEbfotfUb zYkXu|e@|~$Tlv%88SwUOH~)iK9!04;(Z~H}W4H95PC8 z%{SW#rN^sry+(z|9yE@gC=FL%HJFlqjodU9YJ4>12^u$7a3k;o3kycw=T4t_>%tos zUq5f>g|n}ne)*J9x{?3v?rEd+?)DBlgT^&SHat8(H+Oh(@%XW0S1w+ovERLN_41n+&1L=Q;-Ld``*w_u z4fk*D>+0_5*tD^EeNzti8uciHi$-=_zVYoX5M1J6fDi^V`yn6{3_oT~l#oCoZDh5hE)i@7nMn%FTmG`zKUb5}HQX%=>YQt?(343vr}fmv7rk6<7L41uu1 zC8S7X_$JjP@#T)krIky=BlzH)V*)oXq4DOXroP_Z9pmHXiOTUKN3Fn(#?1^GkDqJu z*TU%tOUd)t2!RqyzTELR5DG>-#`RhV*DPr?ZXR0a>gvqT?^_z1%uV;m)&X+`Hv%_e z4;pu!Nis}xOze{^N5Pw!7%6yHW-&7(nhYG}hv2G>3%b#@oj}ZE6FavJ49-mLHcDTZ znYGh==V|AbXmmsaw;w2s_l36_oY{bnz{AXpfJZQp0tWM>g&;*D!#BGoi7$6NF0EV| z9*s{TjdyNrvoa4FkDqJu*P7E|pX7OL1T!(>%N>tnW=7&MuGbvpha}Rt`K4ql^Pq9p znIyyf&MR4t+IVYr#+7NJ*oS!-!541fCILQpKsY)&IypHxJ3Bi)Jv}}?J~%jNe&fYX z^Yqcq_4&M=xcTAis2SPUMFR+YI2;IkV4&ti2Et(=MHLJr6^tsBQE>{Pd@OMiEG06S zhY?5snu38P7|?isf4`M^&^Wi$8_^uDH+dBU{q~`WVjs=6pkGKE29{tzaA(pW2D%Gn^f} zK+@<|#eARebijwhfxrg_YEEPz90pQU!9Y^Ms6rVPrx41=5+}h@B7=DtfdnE+IX<&b z&^ULpazt~um1kLd2ETo1qS!~X8`dw2oPC1EHN8#h!zai{QqI!;%w0`{>+;LaJOY9g zP&AB8Hfv{HE@!9t#X<9@aprbqAR0Z>z!|yN-La8ti4g*US8k{{X z#ILZlvOjx&8B~RSAO&OsBWOH5Wfhpv@I*!-zEUeu+SHx7dcPFRBOpitX~PH_7y9PC zgoYscWl2l=d zYxGOXJOU!5fV5#4=b&++nVKb`;lh%J+2tcpV#yWfgMm;mn3tXLMHvSBFpnR?%=lxU z4K!M!0Ux14W`=VjgLyPNRO)cJvUX@EQNX1cwVqqRTg&nXufRR@OO+5e<*VhnX4iyge(|-%$%Kh@XI7@pdJkmGb3CuIEoR@&Im^_ z!cmNHlpn&(8iaGXqS%WOSDX*V%#3Jw1qooukD0SG4@(;evTJyl8R3G#QH*eQMmUNQ zj$(wP{19f=Ae_q;#a@iK;(Rb>W<5*Z?8$;Ct|;9QcfXaUX@ z8by>PO}`W_IzOhgqFfb~$I{BqJVE1f_qk(!h@8c)rpN5Zlvb2xuk4dncIF8h=WZ7x z+%Z3-n6s3f9Dk_hqm0jQo8h0Lp(6K~IPVyL-h!D;(k|!^*SQEolQF*Kir3Q^Vk0GtjJIQ09 hU#=KQco{knIuJS#IuJS#IuJS#IuJS#I#AUP{13w*Ec^ff literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00023.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00023.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8f87f18cbcf2a5ece8f20b4bc812dc7f7e65ddf4 GIT binary patch literal 37138 zcmeHPTXR%J5Z+`%$cB)RkPC!BxFjJ2LLh{z0YkXs6)Zu#qNM>9P^2to9*q>IoV*;6O*a2o9C-Q8eOinLSkb6U23nB-bwKJ1h1A4SG-3xHu?|4LFdC8} zRJy2G^b<-Koa0jLz=C!F(uR>pyrD4}O*Ep$7j)BN@=P6ov|&Kwt;twMBWgTTlOIWE zZ1{p0d9_4Se0?&C$!Kk9>F(@Y)7Q6Z<;wMI*NzMikBw~JJ-*|>-hKP`?Dcccj*0DC zMmG%%u36dJ)3Lm*c}ZhkeQIj10u?67i^bt(xC=V0Rj1=L7XjfwO3=6$`1rPMPTfZjPCtF(%g@S|W-9RW6#E zS>v4@9eusM8`iDcH8F8ua`MQbLo=_xap}Uv4=!JE#=A2Yu3ozQ&Ra8YzIOiAb1$Ae za&&tCfqgr7xpT|9zSX^5-Tvs(RBTw343xn|BRg*2czO#2w|E#Jgu%=<1cZWNW7b3o zNrfd1bI3=atie*KA`7M|6)J;*TAG`^%*RGYz094KFJFB7`bQss|MfSwZ+-FkjZZ)O zU)6ddH!(iGWn{$7f%WU%X{Re0i<5yjj9}opP%6IF1Oufa3Otz%@CXJ{ zz{r#$lQU9eGBTwobJip&bDxu$S1t{Y;Ddcm3EVw|##wU137I&oOj$h}Osva@TT zf33TNJB_=$dDM7lPqJZ}ZDOBnIcB|?iIG|FxmnE2h$aI^*$}*ki5ogz4upX_ySt~m z7gbIiKJxhf{kwPWbWc-4jgpk|y^kOByNxOgD&fq~*P83>1g6g4oAR4{5##+*|KqUhQQbHO?(HBbv=Mlh-iNb{(21_R(Ax3t6M_?(S|c^Qdu6 zla)TagN!Jt7SxTaW`ql59}U7hj0hTs*kP2v2jA1vGc+{h4k~`|S;f75>L;Gfa&}w= zQs74g5cqI75ct5rb!9RT4g)D_U?8br)S!$xrx41=5+}h@CWCnxfdrr_!H62?2Ih!p zHaEv~^G0R64owvMXf7gZ9360mt%sUEYkW96BO0EN4>K(+!Zq6JVIBcNit;`8cA>uB z&$?pKPxm`1ZEbDtxZ++>@x%QYk)Q6biu_!X3=j(0;ln>gI0~i0KsXF6&C%fOc_FsK ztl4eZ<}Zq`!Wnl4k48aVTH*pf1jfFK2=4I^q?=$m;7 z4bNm)(`8Ch182StTTLc@h64Rgpxpj?n8 zuF+No^9YEL0@8-zoTJ8tW@?s%h6_s?=8%s-iKS4S1p}dAFfTjfhcXQIVICX8%=kOZ zr8HWS0UuPz*_j#6nGELPT#RrOBOGNzn3)j`vn@*Z|5Y^kH9lM;Bh14-ECKdm9vi~U z&@V}RX(I6!_@GqI&dhMmWH1lsVuYg@;V2uz%#3K5ZBbF<)q2Z)g?^*Pt2OVxb?zY} z8Y){<)OfYta$liw+_jSzQD(p5jemr59xTDgbo+)g!eMYOM&K+M9A!g<6j;(Q!x@Gq zDr&r1m(WfaQRCHmmR?8e1S1_2dd%S=FUB~I5stDU%*+Tgvkz`zFxZEAYzQ+)jc4s7 z_mB|{r!DILa3ANZhqML5+K+TL=D|4xVo(07%Iw!Pi>}YYnWiLiTaTbi38PV`U$bw;G=IqRaUnXG#^=NpQ z8R3G#QH*eQMmUNQj$(wPYzQ-J5Y82fVlPHQaTbi38PV_x62Ov;nX@wwOB)EXYj~I$ z;ex?YjBs{FIEoRDVuYh?2s3LC&J~JcFGfOf7L1u0(eMfqz>IpPA-WpVUU_9_9+n&X07;i6K1Ng~L!_*@ zm?;IEE7FxMzz r8V_zmUY!q;r$Ae-6iIv-I}ke%I}ke%I}ke%I}ke%I}kfi(+>O#fNL_1 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00024.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00024.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5f1e029e3b999dd3cd9c12dca41ac6fb2880e55c GIT binary patch literal 37138 zcmeHPTW?fV6rM{jw6vuROgn99X|X^l7u#}aEnv0Y(kdu5YE)DpP|^U<FlB0 zm#L-kseHX4|NfDG6Y?*eD#+JV>dLjHZ=o;$rc!3!!2g|nXyNR|KmHy$_WMA7@Z-PI z_w3%i?&9L&mU|W#n|}QE+m-{Ze`be|UcEt!(E!UE>0qE00gwigNu@#)OWyDuxWzgE z{laJnhNaS`h6XdU>9m;^=cJZUA&jJ$J)Ek-=E4nH4A*)rlyz8gtvVd1DHRHWxS(+(@TsXOQTM{3!_PeNe}9eMMNqT|1wO#-_$rp~9`TWz*Jb7e6lz#7lgLm!OD@q^i+hAnwHJ;$^Xm(JUj@&fd zwez8J905&*tnqw4-{0RqJUl!;K0Y@$cjCl}x6ZtA{_S@@yzt(|^A|3>^X|K6&&hoA z)z@Bm@$`{L4$a;FfGBseszH;re&qeYgb7*|;*tn6ooLh{{y~e})vHV)II~t$mtokbr zckO)ib=o~O6|%-f>_+Bdw6(S6a=EUxxn0{v8v}Y;5T1)P5)}(SV4}PY@U>_jxX~<+kb5*v%OwsS-haZ*W z%1___aOKiRubzJC*t18UT6p~M-2CjpyQlZ=lY{yAj-BE*w4uK{pEt9mx!KIdRN72= z`Nd510%hPa2ct0QmlEZb7WqX~1a79+c;%g5?t#u%X)I^eUun|n+3cQ4)v9yqBc--bC{s|C5uG6B84oqobQPZ5kXH zFtfK%FmrWFipJ%u} zVsH|Rvt@~S7(qL+^N=78Jif_?Dqqv8+9)e;m23Kuywk$CZBWP$*Wx=b7ma~f2ICrvo z1bYF4H@EsMwP)a}8R06}M}sgABWS1BxO9NK${nj6g1vx|Ts_R>hM+Wyp<(7OYNFVO zc`OLRA$Az4OvcQ#s9>v)GYod->`5V<3uVAyAJ^>6lmUZ%T(dKi8-mg-hK8B%Lleb5%ws_i&czp{9URPs$7|fuOwAG+4ud<7 zB^Vm!C?611X>g5R9t(nSuGwqc(l_TNG#mzZ9!oG>(}5tC;g(I4f|)t0 zmi-9l=j`~bv3yQ0G~@$wX21ufhI!>LThf4YEQ4r@f2@&{0^uk|;9RA_%#3JKxJ5;E znwc2URKz~a!-yt|C7|J9W(~s3&~HfKav4ax4L&H9b1^fVV;RiDxftOnMmWk1VP-}& z%x+O$YBr&ycpv+ z4Z=Jc#EqGw_}PtpH1%kFnAvMw)3;I|?ja+k{^e}9DBbgTxtwuvu8|Q9Cu^J$H)hVx zJi*^8Z}BOJvDN4X))%!r1WqrAqWdQysUU!iBOacLCy#|Z;A@|1((d>qXIf};Z4wX268MwVRKa+mxp zJeH+cDd21&v@9XqVpzgsEm=}vDHb7|5nf_oaYc-hLSmS;E7fbN4k1HJ>k1HJ>k1HJ>k19k1de?1CJssI20 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00025.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00025.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d205926900fb13f1e60d715e9c9122f17df88706 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00026.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00026.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3a9edeb5e400b987832eaa7eef5a48a64c61884b GIT binary patch literal 37138 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 CqH}5h literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00027.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00027.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3ee477f39c2601ee94e87463ed90e2a652ec442e GIT binary patch literal 37138 zcmeI4>vNS?6~=SF5dtKEhTI4cQV29$5<_EJ450TA>x_NUpWXH6&N;@&EtL=i}*t zfJ)WRl6-w~H78d`d;9vXu7SS3U8AGpd-qOHO&vKnd*buQ&YV2;#b;0Wap=J3rYHB0 zkL`YR%hsN*?$(CJb?vL&SNC&Gb6ve3bu~352N@<=)F_bNcwR z$DTfXVCu8GM|TeO^>6H6@7p}~c=0wY^WL&M7Mo?{OVSqY>e-Y`&uC!DPIqeoqLUwZYz^~+b@eB+WISKqkw+RLw;Kl{RSCr=$dIJ)85?D+}P+xeQm8D zDMy#&u)z_fRj%aB(nzX_)8cE+0wrz~YEdykOaT(7a$gZF6XeaK%&=v;=gqp<&yog> z!&#+k-MYSw8(pWnv&!tu%;}RSzxmd+Ti?C$@lS65_Lsl<bNi>i`}J>bfB2DW zb9#Jg;xoR@w+?RdZ615Pct4iDx9pC^W~r+EokhEPHugNjmX-{)#~bSE+S}S(r@J3M zyE{93dwP1i*N;Co_RQfUZ(n`Wb^2fb_@{sV{U5H)-KRM{J~RD+zz|Qs3am=Kg^%96oaW%GE#r{tv(S_|A=Q zzjy8Om6y)F=zjh@dgv+F=8un0xSK6IM;>);J~TMkvth&9j*eBWt$ygCh3EkO&T)G( zxl7*yL#lWc*VOhN9RSe*gaFvIOIslr03-%bjru@PVC-u>Y3wn&!4?~@%7i|Uv)kH{FyJs9=GgKp$(M}05%1n#)X<$ zuqr8&MK5Hl%F2ZNlR5RGFaWiI!6wk-?hbfIYg^~)jz>DX+$Z(ej!}1O#r60rbLV4^ zC;MQ1rSbv5rU2B~8n4(+m6R#=$@^ZFm9c267li?+jWX{3g&#CKw*%W6oBUYS)a=K$ zq0LXv9GpM@HFt)Yee!@ilJmo-JFEDyp}X6UriKPTIJD@xNR`t9KMZq&1sjrAodAOu zIsk$KFa`vaGfg2F03-%b<4i#dj8#dQ0`szT!3B+0@%Nxp$vy za6e*?TQMP_Bve@$i?n)C7=YR+lc~qu$GSVWxKDG}+OEgl zr+Msg%Vs$nt-La996)W1;U1`&X3c^CnxMrCcK}{02!k=-ujzUK_XXQpTKpK>wQF)> z;>qdh$0sNEjE!v{85!QP#Siz3Q$O5O0;^Z8aw4392nrxW?xN^f1sl8+U;|)X02UYk z7^9=Hs>cu=KpKGRMX#JP$pTmqK%-#{z&HRfRzVot*?C$Upgle^JnY*%_BfR+AFvky zb`Vg0l*FoBeQykpAA@ojZ28gNh&S!7e`r`}_THzc}@S?*{}0kRfLk z9%bRa3O0Btzy`p&04y*7Fh)mXRgWP$fHVNri(WZpk_E6JfJVa@fN=m|tb#DOv-7kh zfU`>Maq3nLz+M2@K|nR)R$7x}0W1ihF);>U8~_-rAPnxY$6W=ehNX1Wuu_2N0MY>D zjfFq}5VlMZ2*H%DgDHR|4UAP#8H{Om1)Lw;-IdO@Yuy7}+)i;PbU*Gs)pc*UXIK2- z`+)|9VL2RHh)!YwfH43;fVwlK0An(&I3NTdkOnq+(?B2qG=4rN5P~UP2U7q`bc|I{ z8H{NY1+mAqZn+r>4$wVi3XnG(0s)}$^D%)COzAq90$8GBtb)p5tgQ_bdtB?5o1x$U z-BYFjdBY(P02)6Z69~bSu7fFnB|63`s0_xcOpgQH@x$F(alhqp|GvTx_h79b?jdwP zxUa&4D;gArpo9RBSO8!QKoFqrOew&a3@Z)@0SKglP2MyR2mp@z!Du} z6;uXeRi<$OvB$N5Ss4lr(8@Cf$QmWFM<4(+em*7;f~h30#aE^PmgpES3N4Q?R%Kcn z5PN+2LRx1iI6y1U6u_!pY==OZpjbEUy(NVDsaG}YQ5;{R^G}VF|9EKebxm^dFM3F| zSU2rSC5+1inzJRk#Y=T8j4JB_RY$#)QLi*c{qiws+Qpnjx!A|n3#zO-`50A>J)X6a zTEp1mOKWJUklHNO$p222V~=O8rq(d__|h6$Dx@|`HS)hxWzHeV|CZR1oKV)ZCl^ni z;I0`k1>ndJ&|a`G2m&n8F$SntJ_bR6u0oYD4gmE^V*&!1rqZ;FIg4Pi&%<|Ci9N1+ z6lQeaV~;Pbn59B$vs5GhJ5`Q7p0%1p6UI@YjfUbf=3qWmDke~seUdjaAnNlxh9(2x{kuof(OrXljSVCycl*y;8(N%{= zmKJYg3NHj<0zg+mYXj6q1qm7e>ZMG;ohkKF=0WGI87aep$^@#cj3tEDOqqPj8eMg0 zoUEypy!Je+2vj73*#rc6F%jjlR80n1Zb0H!QDs>~|*)K-8E zKy@^_GU}y_dMTq`%8)8RZB$tq^-@N?VvncQq>$4p(#W(nfT=9;gg$f?4jxw|W9jyQxfa+*; zWzZOc&r7`NK49Nz7dRdsXj7oEXG?=nPR~y^|0I$-C7Fghw z2^0uqfSE#IYzcsInV@>H(v&U91~!~2i;mi)WmK9YXaHy|3lk7z3Z2r47Fghw2^0uq zfSE#IYzcsInV@>H(v&U9vb_Od(NUYUj7oEXG?>y@76$hKK&Nz~1r~T^0tEsYV5Sfl zTLNHQCa7MlG-XS&femNMqN6rx8I|S;8UPxrQcUUm(k${tPg5$*RWDXPW%Vk(2HVe$ zHf6O^CeTVush5SZtW|9Y8UU8)`D`>F3$rp}o;-Q#JEtDY#?gZh z?ce*rp8I!gS-)X?#YkUgS9e>x`=-W?&X(3}v@|sp4pzuN8vjM4qun2VftA-5IT}?l zgfSz+QXA!kV8elJg$=ij611(cm}N0#GkuG9W(~f6-MXy7AKbs+b@%C~o<4u(EaUXk z&pdhRvEz>%bDh5P-uu?Ao*WxqzO1j`b$aUY;*Gh(uTOWTVpZHvL5Ym zcLjG1?k?i)3ho;G;Uh;}YhQf+!fP*Iu8hl9E?#)yyJyb2PIuSzukHHErghU(;}fpa zQ;!#K%pHbhcgk^W3n-`Es4UwWi&>WSXpgU3vu4YtO*^-5-?Mx7iANv3aQ^(YS6_SM z+7E8L@#d`$KK$t2_ul{EkAD2l&FimUyZquy&p&tWsmGsq8(Ow(d~D2hy1Q37Fgttl`0>}TzIyYmw}1BGN5B8|Z+`XZ&p-M2 zr+@hE?>_#?2d>TOad#=t+I)I)Dr@u9`pmO*w@dN({5CjUq!vImi1_lx3#qN z_4K$-ci(&t4-T#z9i3P)vTNJ+Zyh;$<;9oWb^NnG{^{?3{hMoZcQvQS-HmzH=36&x z%-THlczFLTyHk!6_Vu$CZO^UuwNYMtoehA17g?^yYerXVTQ=5Ata7&{S1-N%=g&U> z>1bN7tYP4 z9{2lTeWmgNz@`9{Z1t<@5qMx&?g%k z)~r3W|A2dl`1tV?2fs1vx}I-7-MvaSRtyhkqob`Y8{D+$d9irz7WihE2P|+{yy^rZ zWTB$~cc#b+C`U~p7y!5flpJMRMOGz^RMG2#s;m)<0c8jPRn|yUkGm_odn~?t=ghIg zM_iBZ-Tl?ntX+)Ar22@!i7HO@AMpRiNQ9a(<(K$La?5^hS z8&22b?wX!@+_G7Yqm|c)We1IRLQ^-PG%TQAdS+^7$x0L83?nWgW8>ihTp0~&3g!?I$+hcV3$kP5LUG1Ijb|o8_vM@lpS8>H*F96gBKn)`S z0)R+?2s#!3P6(iKkO7bb0I~`aAw8(T!36o?XgQk5kE5pu59f0N?;(T|6Iw0Km3R5U^m% zudDLPRFpee6`_R@WSU(8pUb$PNEuwZ)ZLZ4?>w_HwQ4dOD@Vq%;cis2(caRQjfKrC zU#79ZorMJeWPlb*)0IO6a$wDMPGJGS9l#WztSJHkfNh;1V8N802UAh*WT~J=Ak!ua zXh3@0edn2t)Z<#xaD;*bbaR;kgf$nQMIZpwzg#3>!IZ9)sVGyjR8S+3wY7<8kMj|J z>TxY;I6}bzy17gN!kP=uA`k%TUoH}`U`kiYRFo-MDyR|2YC(?!+@tgU-d^{+pc5-s zW@Bu{Xg1tOKiL@Q?axNky$Tip78U@I0eTjit{ftewNQ=tm?Hq1nLB}x_R#{7MiD7i&>9ae|6_qjR*bV{|BPV zE5FghQfqbdeo_f?oj})YakpftjwPbXdV;E>SsKx-yolzNi{xq7#w^OUIksLlw+puJ#;APBIyLk4J8xd?&)JquNa8~~b?7YPVNP339V#w>!hIseD^ zD!#KTuc^m%`&>l#J@xqfLRl)LocS8%->GuCj>lG0Yxv*oadp!b#h%kbd{x%SLb=s( zU9(2YDObB>7#%F=@m_!Q_=Bl{4uT4>0C3X+U<#l*7I)GC79ESS>Rsf4zTE0 zlvM`{fO1q>BbtREK(kVh=hdV-MqQ~QjhuSi6^i-<0Hp&cxw_^HVa-AikeACOK$Y_H z%EVMzBNknj8UW>#)m?S?wHXeZHcDHY2poXwSlmemSadAPs)GeUIjXD?%|Z~M zS*geKYEm83y3)wBHh`&Wg$%2XM%XAiS^*q@>R8-K2Uv70%Bq6}Ksl3?SDD7SAhB*|J#6&MU{F zoVTLln0jeM-IY@=f^zXfs~BWOfhvIr7-a$3VgR{Luy|g1%9h2}*$V-SycHG4EbCEI zOO}O$a`8f|7-U6(DuDS!cyMa8jl?&Y!?wPw|^M2c&X z$FL|XCr_z1rdj18wYqul8>ehhvUG=XEXsN3Rvc3=ji|eFG@@A=DPCV5Lv<{XJf-58 oMOit;x?k4oxaG_eCsiO-AXOk$AXOk$AXOk$AXOk$pb-`L59RTT#Q*>R literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00029.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00029.bmp new file mode 100644 index 0000000000000000000000000000000000000000..32dbbcc100effa8ae0f7559a73ff7b8548351d59 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00030.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00030.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4cced8a994faac8fce72ba4f65d92970c648c5cf GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00031.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00031.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8ffd631a25b38c7212f0f2120ffa459e4c4bfc23 GIT binary patch literal 37138 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 KAnm~Hb>M$cRq*@( literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00033.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00033.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7b6fa3d767bd9e14ec6b017655cdc8b8438d95ff GIT binary patch literal 37138 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 Tkai&LK-z({18D~)uLJ)Dn!W{j literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00034.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00034.bmp new file mode 100644 index 0000000000000000000000000000000000000000..17df62db045da3f60b215c8e77889ac150f5ebd5 GIT binary patch literal 37138 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 KAnw5Ib>Kg5sSGOs literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00035.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00035.bmp new file mode 100644 index 0000000000000000000000000000000000000000..85f64c653f7c4c49a65353bf6e17717abc5a6442 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00036.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00036.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7a85f368e61c3ccd71b171f50eb0ed29d5e7dd7a GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00037.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00037.bmp new file mode 100644 index 0000000000000000000000000000000000000000..779482736696cb348fc9b4c5a97837c38b2a911f GIT binary patch literal 37138 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 X=4H&{D>ipyrim+Afn)_Pu@(3qi&lqx literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00041.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00041.bmp new file mode 100644 index 0000000000000000000000000000000000000000..eb893f1ec8be9ffe85987aeb12f685a8e7017daa GIT binary patch literal 37138 zcmeI5e{5Cd8OLvX`}=n<{Y|Z$q3@pikoCv=sgzx3 z?e7n)T({@$*ZwsG7v|L4? zk2fedkJrb$lOO%vsT4l?dpf%V-B&ueih@gbN>piZ;Zqn~_yF)Z58y)~JrDa*3U&%m zA3qBT0Df^7x)<941QJgN5+C`J76`hOU12E+u0Z02Bm@w39>9k}dLH(r6zmkBK7JMw z0Q}-EbT768P>o+4Tr-1fQE*KSuA1OVG=82(&foxX3t)5rQUXv%-T@Tx$|s!SsjxV> z%7UvlxY~oOv!kPD=FG+Y{mYgvT|YE*)0Qo}cYWb2ckDUv^*g_|cb{E5Z@A&QwQE=Q z_s^O(t*x%EJe8^`Dyl6mt}iXEPN(fMUl6jEZiiBXa>}TgTLAqk5_~l&VS_j;m%~C7 z>?8!>;ARORVhNdI|fI{*Ppztd;+lz2^L4|?Di_ugd@!CM*?bD}D z?VB@a#q#A=;9uIk`;B6o2gWF?$kP@#{;?L&O+ znl{NUM>KYr=?7wmfep zzqj}DuC8%vJQG~?awQsPpkctc0Usm~dmmBw00@1YeS9JoJG>>L0C4gBBr@S4Sr=Sg z!8ND1*F3~GZrHG6+qMJy_a8rY?BtVAz4+WuPyPBgZ@l{2Td%+Ihu^;S$2Z^n-K(#@ z{>m%QKKbOa2Om7JZ{KZOw|;K@dZTo6dg*FunN(hG4l2c|g3`h?Cl>8Jt*Z{MK;juB z&R3e?dw`lsx%k{=@5+S*9{~NKEdY)~luDj)0uoXN76#`72nYBT=93$rc%>1pAY!q@ zTOtZTW@hNncw2B?dBqjxtYXgNs|N=+ZQQtX$Bri+J7FH*M%sV-%jv(LK4aFu-+lMb zZ@+D1ZXV^|f8>#G?ccw5*RE}wH($GEjXAf>>*?w4>};&7uP!S$GEX#~Q*_9Nd0}C2 zK7epQPC7CA8LFZ}4liH8mzyz7oT?4#Tq&#zgrVrgIB)G1v?<_O#X zy=YzV7_X*`0PS-wOU`6jM&?8Acpxin_$3s%YRtBU11;t&IFE0>@&b6o z6JDH7+ht^KS5;}5U76~dWs4T?-Tg&#O8M8BGiTm;=l7>hnS=RbM~;|B`B!hh-Mrs& z{knCZS-pDAz`&CE3wmaBceJ#Y6{gG6MU}-R>4E~g3R5Y&*aNMj48AK44pViURoGXg z{y;$#T=a({3V>TgQS&$f^#Gs%uu~lq#SZJtBp z=HOwDALi*iv~s2SZu6g~Pn)Otsh3~2$CWINFP=BQZ`N!h^VUfX^_5jd=849`b5ymU zC;$`GF)?oPgp+$<5;y>bKoSr5P3O1LL!mi4Dg}wDW5jbn2FPPdnR*9TbogOOHIv+ zg$wuW-1&{YdyU4;8|A9;`B%-k?9!?2P0fkM!*fIc02BpalnhtZLU=g22i8n#p^!)< zI0G~@7AQPQPSFM$GjSR>Kj>+!tTalW(%jryTWfy$W8OP78aGFB)%d`|e)}j-G#;KK z0st^>0Hb8MXahiaIJpOggiKffhl)Q#v{`we{&# zAq#c|e1h_JN>y-Cp+;fBXJi+gNCLn)1Q6UA`KZl=BJY3^P_qK|1t2P7JtTkx3xM45 z0C}KLfRBTMD5e467C;ly7%1=|%17ho8%rbY9XH;TXq=Wt1&n~sD_}YRq9W3f01_+! za>oPYfkFX34ho`>Hh^0IO-N&)z=tRwjhlA|S1nt96cCQI0o(#;LTwBbICGBXr$XijI(Ai+l-ku?pP4qLYva(m&tJFc z+G~c^4z60YVsPoACG)PHJG;lcO@4NDPn$8hrLC&GGSXRvAAtr(l`0DJDn4k($oV5c z9ETi$gRp~C%ZO*8^UTWusE4SCq{IP8=>S@hI;)SvLO5k8AUv4m$VYAgG@&*I3Y>j3 z-jbQr**1B_lBJ2pwWXdGI?ucufawtB$r88`2Oy;bXhrI*J`M}vl%as|5p4&ETL4WM z?0DoO6gc~6yse?p$b3%Em5IhjS{V`1dFJH+Ooyn5Y$O0E8(+o72{bbnNBI;6J5dhc zNT?mc833vI8?#x<{EXkM%co6WIk3#Gh4U8JHT}|Qc6D7mrLDQuytPtXSY(%yV&VM2 z5heKTi3-Zl!q_|E`ko25a8{sQg_H`%2}lUgGJGsFA!0qy0+fw5j1y>PEROOi40fU% zz>!cpgfjrrEP08)p>`)2prb@`0T>`FAQy)_n^32+R~af|8XWEtD2v`8s9?8f}4 zd9-}k9p&RgLd~NVN5Zk2k>g)wDJdw-T1NHeud*~}CiQe*W*5>nKl)*{Hnr5()D;z^ z?Q)QEqHvs52*()^ymwN@Sp~r4=myQyj$y$E(s2S30^o`S2xmJ0XNAPUhLq?~JfL}? z0Ko1j79SE4?f{O2j(!jY$P&1DnP}Y6z?`?3Aiyy=$1TE{4j?CQU?h&*NGYDQiPAh! z0AP0%iw_A2cK}DiVCy+P5(P*!o}*0>O-vBr7@Xr4;Yn*k53@IQ~GjT{8;7|}z@qk}x!&Oo> zToeZ27C{uXGKsZs602Jg=3bhdB02+lwqe3;~MTY?Nm0}%0Nz|g@>Jut$7~-R)QX#h# z5U!bhEQl14Xx!a58qT%{tQK|w zAdgN53qAlxX6nJ&0Vo5I%JJ_wXaYz=aavQh1!uw?neibiJ6-614M84y#=rsiI1(y_ zT2O1Eacz#V&|UzY*Xdxv2cXGGh&FI`0HOei#O>~sTCN5`m;a0U1PH1ou1oXn82LF$>v=QwNt3UPo?Y1s|smL_CS04Q+I zPUrVJ(YR^5qg4zAKKq*Mb1aStC84J#YCmPq@jbMMP+-wg6OGfHb3j$5 z(#Dc#+z4uP|IWTbcMhOYiN>`9=PZ1N^VzG-i)2YO9&Q(1b%3zH#SUq6OQUqc3>TnL znovs(y+cDL_0rt&ESgy@x>p~I79X!d)wo*73~8hai6T!VKsX>0I}P_C#ThOI_$Y8t zsI%@O9v4wiBpM$*2vxLNh@hQ1AGP2NAWtMfI6%47f-{r%A;p<+1^6g%P^hz`W=J&( z3tZ})Xq@Jp1FC4X5J5Y2K5D@kK%Pi|aDZ~D1!on7gB@qW72u=5Co@rwnjytm0bJ^= znf)we0{Fz?>;OJ_;`t~kt)fF%93US1g%+jVP)ojQp192UsxViccvWkZT5_@F$EI8e zInlT_$5`^y_grU%d}W@$66Mb6TuEiDhCspuP98 NOiV3F)`{!D{{i+=;A;Q? literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00042.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00042.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f1d1c46c9d971dc80c4b523f1888e9062c5407be GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00043.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00043.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9a7404d44aa1b6be6c7f0daa5dcad9e315055969 GIT binary patch literal 37138 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 K;;e($f&T*1F#OX1 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00044.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00044.bmp new file mode 100644 index 0000000000000000000000000000000000000000..34a961814b9e2970cb03052fca2bd021e33d813d GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00045.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00045.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cd496653a1b38d2ef1cd453fe8c14751ac0c299a GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00046.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00046.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f2e087da3d03b629f7f7805ede4454c00a6e9de6 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00047.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00047.bmp new file mode 100644 index 0000000000000000000000000000000000000000..05b9105919907aaf64a8cb98dd440e0dbcbd65d4 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00048.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00048.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f2ce4477c891fd657e832459b2a75cc2dee881b4 GIT binary patch literal 37138 zcmeI5d2m(L9mij`_g>bQJ%KC+NWv2+i6nq%5*C4gYyye6pn^i24vQ$nP6d$x>{t|8 zf}?qb{i$*F zvzD(p@UP&!mx^;r?*2MvOjT9Znx>}mF-=Y0N49TItV#MPu5|9Ewy<3Bpz|BVM0Lf* z#6%%7)%o4qb8U9#>-xxf#aUOpb;Vj2#@_gNEqu}lEQ-fj6pyzk9-C-g32|{+Vm+QPaXH=-OD>nmpoz8s88X^P z-!DHoFUj$K)>UC$myI2(Wkhwgmi*jYEiT71)*pM3e1GiNo;zp;7Qt?O2cy55EGl?@o4eI#A@++Vzh)k1KM7S zi~cYR0NwD4OL}2!07Rw=8YKb7hJcQSNZLg}VE}t&(6cTAL2>oWKl8<;?G+nt#axNQ zirL}#$YE6z$Bt{fVx}he`n%Tb*xIst$IgAb_aOV9eEjKMzj%DdLmStuzWs+c-!SWn zsT#SzDotSi~Ntb0>rMQ+tFBf%xFYzrO`D&4a^K6(J>UBBuitGwpyj>SUp@Hd>xWw3 zc;)G*9)0iu#q>qjT|aC5gi(Wss103lsA{|j2p6mk(4Uf)rX`S(q2&VWy2!f5)z;0PK4ZZR^M1UddF#ge_dT}vl^0%o z=grm+4;?;o@X*Kae{k%`hkyO#=od%+aP;7NzkB1gUp=w+=UX;ySas*hB}*04r`C-g zJ}_9Eo{<`K+tspd-mzQ z+aKJ1?|sm`VPbu4MP=XYoXnI|MRS+q5lP2-Nx%w9+Asvb-Q{>Y&*eUD?TrEJjF6R| zm7SZBnH@;aNJ-7h%qq(7Gqil*^ojLLn{IyOq3w$7C%*pX)c;PNI`OSy`X`4EzV*_6 zbvA!;=fj%jis{Q2HqD(rV{loyqPg15U5=l#9FOk);bsGHLmEKDCTS&cxaZlvt>0^Y1dA@1IdRg;Ww*Wi%B%nU>M#HJ^7!BX{P~f$ z-+AqsXP@7*Yj?|*mi23Y@}uU}w=B8+=7kM2rq_%dF`&38JCK%^==aCPQmSD(G=bu| z`8c%jT@FiN2*?oG@gfenXcT})AYKIQBA^}sDQE&q$&ra60PYU!A%Fo;k)tFS0}Lq` zGL%moNJ?Ym(shyJ1?ibe3Nx~%jUMyJ)|L~;zxw9W&yF4b{h>EoU*7k`zMb25-nRjc zU(?tyW#R-y^Rki)ax>C>9Tbl-Oou5`yvuR5pf1PTdEN^gFUiRpkl%M;Vey3ph3b3D zhwtC?^|4QnfApu%-v6NW`R}%JI6m*%YZT4ZZa(6o%Hlrx3F=cv*5z_sb--#y$5(bu zZgjS*v&8X^+AL&PI)*IUj;~C}0I(*G1hOA&g@6Q~PfKikycQypU456RCDrHGlAD~W zMeX2Ps>=r|jxU^Z)vlIpY7;-)df=`7FTVKLo;};PZd|?U?%P+~xpeXTxz}FZFni|I zDbps^S62)z%*$10f3;Ssa+1nfFvP0LeH<=Gcc~#DUd)sf^oJt~;Ow4NI86a4p6SRb z+tU!q0B9b-PHc<;h7=58Y)H|Y93NWJPrY-ZXx>;qY3+*UXLjvY1b^yhJ0E?ZMRHu9 zSbh*3=yE)C`B+l`v}N6)Hh>|FLt{F@L^1$M1K7!cF~E?5A&dZHeB=+&kCyXCIx~^{2#V*G~myb0CKwH)wY6BR;I5egcOe6q> zI06(R0g(Y5s0|a6*>UHo3g8ip26sa<_>>`^q)kam(vqH*rllw+SIeOO1GF?o(u>(^V^)S1ew#c)`Lsjg2#=O{~`CiVzzj0f^)XP>2LX2Aqo= z@87pT%Y@px<%<@ty-#3OLj`CmfW;}mV&J8 zORK8yxNW%-wV^M%X~C5Z4b!Jioj87cT}_Raiz+Jmmy~2>WRSv824@xCSK&vpbVIr` zL2O_L-2l)Q04EbPltG_m((ckwGr1_<4ka9xK{iK#(hPuN0T`nJFhm)wApjee1t1p_ zFGD{dpd*gwq^1oiEt`M!HJaczT|3w1xS`1rhgfCS)a7_PW9bLf2J|M!13rIYcFyFn z4jU@$EPM^^nWJ@fnv-(ZX+mYJ#h8I9-m*byOM}PM;kC+#?1*y;3f( z%W>6sI~=bccbS$;M~%{=c5p@TvH=5Jjz?r1By~h>jB$?`{Par6ahBHr*e>k=c6RO_ z0OeDLtdt?@VfzL|w~xzQbdjX~xOgqT*f=fTm{=ucCH=-+TBBuHWu+EHZ7t=crNxDX zx!Kuv&MNeWvr3wEQ3i$4a5;CHz!1j70k8yQM}v**PjniJCo=2q2;fdYfUz+A$Oe@R zfaci&vWv8nq?93xWr%uMLjcQ5J@#fFo((UO8aRG&RkaqELjj3zp0`=@q(8j z4fC>2C}}CyB^%BYO9HyV!V#J5w1pvz$;A*}jsWW=a}k-O0E__`8vw>61%%X05(8lN z24E<}Fhq?2StAaU`|TxEyymt_fq0<1iX>0iYxRCK>?727o&?q9HqsmY~}? z&cEu$p+%iQ)DL&mX@rxB`jnv-rPPv_lM_fy^(7?W&U7STUi>R6{BDl?cE@l;VeSN^ zbtFZD4SSnhZoC`;Qn1Q0vP_DX1jM0c38Ys@&1926mPTyS0%Q`Y!Po%sqDC}im()hX zI+Fr-0y+Ya)aAI%zR_@&KoSYEF@%={#DM@3NUxA;$tD5$Wk}KjWD=>t*Z}aNMl_TG zqa|=Tt~x-YXq};%th-!pyc_|NvdS{DOp2ET#9>|%NUxBZ$;M+54UtF!FoygtIyQI_ zkVyj=3MuWhkP4|;0s@l#wBd{cyfLCSboGzzX9NO$^76E(Pl#(N=+j4wI-+P%rxYzb z24oWYL#gr{A~oFB+|9CwL?$U3x`7w1Lqk2d8vv03xD$|40SsX*QxK4vF@^wW02t%$ z@nFte(MUfTAS6rUK&A*_C_GA}*HlQ&5)hE=ks_U0=W^WKBUTwe=UH5+4PXdk znT3F?AjS{?4FF@@U5?A%cGkEY@7#~@S5OH6-5@g51~7zic-)W=a6wy)9dev(Fh?0HY;vIWFm=G?Ha#zBe4V zbN@t~oK`X+8AoaiaTtdhy)niqtrz%*~(^I59NA!<+Jl4|wK`*(!PsaJZT;3Z8Bl_O?k$m&J zzx!Li^X4*{fzgw?Z}PQYcdD-|)t`T>Keg&lg0E10_4(FrZ2uPZ<%G|t<)r?^=*E`i ztM`3Y-TLdEdF4O)D4}8S;GETMZB-3zZT@XrwxrdkA4=*qf5S<)T*;tsH%N%-N)%Ue zVq%meB_u?N4E62qtyf)_c0ke%)+SpQ2_{(=HYwH>u&&IE3@xdCzZNJD(`8UX#2pYT z?w-5Ep`jd>09}&dH!mpt0Ki|1;vL^DiYKL87i(0Ol9Z&y<2XHuBVbI@Crbcn^PSYt z4}j!&H|wgfuCuLcv~|^4S7~vv7LVhngHVh~I%f$WZJcSimq`FSR#cB4zjb9;SJ1kO3k$XMs;H>x*KbH|?cf0eN7oN;X__=|#>~quXWsvy+l@{ef;ipOQdAq87g| zK}({~7bT=h6L`)*gAH|B)pUF}7_&a=N!dbG>R@90g$Y4=C!=iXla{Royp%cfRKWEx>P4IO;yzP;@@7@03!@Ga_ zII?Hwj@^%L-SNQvcdcG^-I7Zev`ne%Q(aY9l%JYbnibSEcg1lMvz|@5p-Ho@RO_M~ z06nDk=%(2Hj4_RZ(aZ}C#&(`!(Gk=Ypi%&d0i0!n0}04TE=dio0!SOFA%wGJqpheF zKX3u!7&xwP;tS`^S9fql@GW=W^URaGUij71Fa75E{rmo?<+Z)f@BjVY126vWx4U=! zZ1cT}=~pahoj$Jdya59%^YS&#U2#0ex^k_{QsiV?SID|32S5+0J-R7&KVwXzU^MeW zgRz~bSabw+1*jB2VgP5^;2<_YW1IjPf}&kz%`SpM0jQm2T^4V$E5l(eLx&8}GIqqs z8Iz~9wJyB*`Wx=sxM}wjI~BX%eC5@@AAIM~>j&O_<1c@E>)?m)9X|5*n}_$mrkJko z>05uY@vd7|uey5am8}ae7(QZ1RUdV9Nl#A6NbzR|QVnMna#r_hl~PerQGs>kSr@7D zxTG8al{)DdHbiH;^_0=^-FhV{fUz?Mo!SbA5o;hc-+0;O7f+v|m|l{XpOcxTXzp>` zmUPTZ0w}>K0W1O7?s2@G=aS>ym9jLpL}s$b&hR$`Rm40xNg|yYNFS zItE~g#H8ogG~@#yF=Fvd%#n#D0NY)rfdc~|BZ5dE!%7=MeDgWpqkFEBo;i7A>W1F8 zcHM{XzW2!oM~}Sq_M0!g{KD>CySF~Pb>n(CzF^kuDdQ(-nipkvS2U+~*%mZ(19EvB zS4{Uf-cBCwN~iBWUQtlgyZGeMWng)@W$gKn-hI!%j(l+Jz4wnEJoM6@r}eEIj$d-& zMT+K;cXN;9Jd_on8vyQ_JkY!PK2BeB2Br$-@kTC&B1LIf|z>@)x8o)_3i~)o=gE)RxxMIZFgA~o18%C|X z@~WK=KBNf#)V4=<+<%|sxIVGe_UrF)Jdz<0003>F1k?twgmI)#HyBR_KxzOd5ikZ2 z;tb+=-;z>Ab9FaYOdmO@R{a7<-N6;XcRp~xR+WGw3fm3M2&mUU+9ksu(2||eO^bRpQAym-^?Yt?&N)?9z%imR3`yL8DVtqU)jGk50HmZrw>V@EdB5BpwOj~>Cy zO!bx(4oHSHIEq@o_{`-seVS?5PNlRCha6F83qZCGV<$lk`8Zi31UW-(081ECsgn>9 zHh2Qy$rT_G3GfVntrUa?8yOuNIUh94knIt*MnfkY?^RHwrGL+IEls1wC~B`;wHl6V zf;Uf?2*;~>^(x5AQ*TxDI3C^f_MagMWKzsv$k^qd+09cZBprLw6Z8WYp?oUY6l9rsJMZM=lODH`6%EqGmp_p2}zw$lv&HirJt76Tv+WV$b7#1c5*Ry~sa-f6 zxB{eR03-{*7!80WSqB>0AgPV!Yv6cpT1Gg(uzAe+>JF|5-a2EJ$8kGmnRJkixiefz z35;Qa$+gWI4v0n&!b-s3!2vwe0ayY^KLjNWnIe_p86pGVII-9z9iri|%!z_GwD8Hc ztkg6u!L)QO>h+e={DLvVN6eo&OUsOD)0&%_#*H02qP||sfd2h^S622YDdFRw1eJiC zc{#;!R-sX}j@l)lKg^U}1O?DuY-FlmQNvIOVF2U|V7tpSWY2IZDT#*00O$~aB>>w2 zlt>yfeJaBjc0}k_8ZyG-Re!h99U6h>hb>A1jXh zl?|sC^{#L&X-UbEQe9E0K1QTPef(KVzv^l&ef#tYmzAlH`f&J>b)lgy!&!wU&~RBh zO<)OQ+6!O=L`Q=S8Gc1T@_1(M1_0}1VmJgCGn8TRZ2&aS36NbRYf2;ynJjhShZzDG zFZr-bIz;moIbJ_>m==%YwA2ny`vX5x^HUOyP1i(#_1rU@p zth_qDQwM&aHlRy5u8u2Th<6|F7?%xVf=rpY8vyi!Eo{djz$R*k3Qq<=5CbqIYgi&{ zfXo^V(P1uR{k2q8_SO>aSzeT1n4J|$ zPDs*X2t|M7XO}1$z*}J@pc{-5&qSv!EYUG;AuO@W6<}U67M{rvz>;AXHUNwX3W&&= zAO=8#4S=w&0679=j%bL^FaaLN73Jv$qhuBgoIbPUalE}IDH)F@1>ko)Q9`kzhR;N zsTTeX3yvriWnnFac?F@&U}{Pr$(N{wawMR=e29s22sc>(O90sf9MU?1qQM5wr|+!7 z;0OxYSRyeAU<=zNkh>_^<9I|XY@x?-+qM{#&<$=vWVq>ZyuC|wk)F{i?py%xKCW6p z6QB~Ulg-5DyL2C?Rvu%tfd?dj<^kv;fF*X}5VitXV!Hv5DpQpJheS6xG%WG^esx1n zPfhI}3i0o4sdtELDJ?3|qK+t90?B?YiM|9aG6emh2|Q#CfJ!-9u$_|eOi(m*gIzQe z4Sv{e0C)zl9fza}UYvY?rrhG}sW7ApoRjsR^W{ zXbELyY01yc)uKM;qa`QQT}x(qH!U1d0C*-kZ6Q@BM--mJs0)B+VgXo^L76*gNQZ29 z0@%)Q$=OLPL(bAOAy|?b`g~MIe7TRt07%3DFb0qaL1iq1LzdVMqb0zGpmx>cvQyx3 zT=vbZq2UbI<9K^3XiTSMi&%ialGm8vvg8OLSpZ80 z0LuUdW0vS&r>u)uz?kjC0+6#4z#RwRM#c3{PF03RVHGs5{8sY<_jnq((ELv(X z#t*Rot8fD>wC1GNDj$L+aoY3V$G z&I7udfq5&(c^XPY8hAB{diWB3^|=CsSj*0BOUZ3^p<&{IEnC zvS@>bUHFmtz*Ykwc>u;}@JuX2Vk{Xl#39`<0Q>+5VE`DDGr(0W`~dJHfx)vhmdO(W zAa_X(#sH7waJU^nWB}`Epd<~J^N|`_&My1_45VNQKL8m^YA_}`0M8Pz%K-2rfpmyQ z8XIyZy4)o-7z3ndJJw?^0YU6MMeF2tsfpebzn_Uk&S(G(0e~?eei?P8CrUPec;zQU z#LIK6eq=@ljjPEU{IC>j)~DV_2y#XPfZ70z0jG|1CRk9i0mQ2g86sYuWA!65GH6^) z-r$F&ShGI$K0=T)8UWM=U<^2Qq%*;Sk_{kUb;uC$^6dF>-vOopqtO7|d-Zm7Z3q4j DhIGhl literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00050.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00050.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6e912519f78485418ac4e9e646409b7093c14ad8 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00051.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00051.bmp new file mode 100644 index 0000000000000000000000000000000000000000..29b27a48a8ddc90c94c08a4b852c8d3eb53d8244 GIT binary patch literal 37138 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 CWOKFv literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00053.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00053.bmp new file mode 100644 index 0000000000000000000000000000000000000000..84cc66b7ea441181dca045e1330b3913739a1cca GIT binary patch literal 37138 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 N_kLGB55vyDe*xlWQ%?W@ literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00058.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00058.bmp new file mode 100644 index 0000000000000000000000000000000000000000..17986912356e9317b51e13913228d60ad777a233 GIT binary patch literal 37138 zcmeI532;^A700vhc?n5gwwHZ_gb+vqi9kRI1W=Y@0IMP*peP_NK;3WwToFnGwhA&T z;)<;(wknPVaRbJ2p%hE4xDB;c(c0?R8FeZ>=5T*`yzhB?vw-P%?;Mi<`|kIhbG~!_ z_k7>G@8;1sK4o=C>v4)4TnO9)z+pinLWE~*zDO+8`iChZHU_+UUKFyzEjH)0s7H`Q0oW}4ONK@ z4_Aqfj8ut%2s9+j*#uS!}{vPw##MwDO{xvmCg9lGO`Q&rXIAi{- zSywMyxN_ODyVk6E;Ep>sZ`^qQx^*hoEnc)>?yMQ7H;)=xUsu($EH5K3!&Br-Db4fB z&+OE=)P(Si9w{oGm{=7y=4^-XP&}4+csw2g&ncD@_B`lmd+T5Yk%$5OvKk2KgHbCd zQDl-9{0Y?3(bp)%Is~A_1oQ#W2Zhc&Vw?@I!rJzmz}NujM(`Mq*EmZOoOvDC3q2TR z*PNM}rUJ*6;0=QYjUO@M%;x5KGiE5k*RNjv#HLN#wrqLn>8D@Zx>e=%T|0I?yY<

jH zuW^(38;{_(*>2M_%1o&B%A zwEc-k9(eSjyEm+BX<5Ex{_JVvM-8bg%_;Qd_`K=fq~zqdcol9&vd17lQna(OvV`9y z)=_L7B}GLl`MJ3&klmY_s$xwvo`?|*GvS=VdaQLMT8CV7dc;`=Nih|6tObSS3)%p< z)Bv1Hxy$jO=_AYJ3)%pnHh@#`$K`k{&uuuKlbx+nR#GBBmj1$wjDqy^ytK4@ zuea3a>s?q_Q&u)<^yr1>oww=EJNNF~`ORma9X|Zk;Z~X-d~2U*n$8Ya_`Qvx@ zAK1J5mFKr^`|YORJ-p$*J6e9VV(B#(Uvk#OQ-<{I*E=^aFS$o@Sa@`3m`Y?whzib| z(U6NXH8s`e^Rd#fS4olWPfU#5oMF$ya1`1EiULZYtsP3Db^kPp7$#T;qfE^mYr$2V z#{^Xy53Lx{xf0H^3oer!0-+qQObysDs3q;Fx- zY2%yjUEA`HgKvHE{+lWX-+X=F%R63rX3H~M9{kP5wRhgSeErW?U4Q9i^QWIZvaY^Q zenEOntjlq-CV<4b9B-vA@$e6lVotS-9wpk{gP}g@r1)KA(y_Gb2wGw0)3d zY6;dt;)p8m$=R#01OkXE8;M}LJJLqt0GPl-bJN1A&vY2xPAAZWHB{Mw5q$FIC#{;VmdjvIPnX?_9hb~#Ss z04~Q{L($zhe(AhfS1*|R*!_1(1s8(m5cS*;&am|B)e~DyAMH#@%ObO|amxSD^*K?uAi=&a~B4EpUu& z1S>iKH<%!)Y^NJoLnSTfHdSKH1~41|qnQUS-In7+`}Tq6(o8sJuG}*zhb2leDVAXU5=Yn3EBe3T#g&@IsSFLzE_#je9XXlA^XSywWI4#Xj!sU z2(Cr^*6Xg93N8d+H2XZ4<3`4UHymG%Q)B_yH(NMm0v1XDmneYp4QN*#XB4*r0M?!* znUxpkS!vj-0NAT|;}TQ~QoSlYvvX7$`t(+5tgTiVUR^Wel;#aBs~^05t^8bj^YR-n zzv9|U7F;%G?!_}_&6#@Uj7gKnH#OB&Rpn=7v}>=Dmy@HCotdc;8xg4@+Z7c!!@LMM z!DMGbG}wm#=mQ|UtmxS4asYqe2F?R;gU(F3o&LZD04mKEPMLs618^Te6ah@g$zFv~ zP#bXUINrasSY=S}a+SfoE1Mff+;rLHN^q&^O7M$j%v6G(K6aeTaeErVAGiS%04~R& zcPlt{9Iwpvsniq~sthPCYpkigX!_Yw!G++c3uogR6*W@!Am4v8h6*etdo@5oCV37~$ zRVs3FtBXrcJ9+F)S6rzgPoT>)y7Ko#)2B>1ZNh|!qecyD7+l?_vM4V%DlAmRoEI(P zssv5$2=QnQpJefjF8eE@!Fowphz2d}Lx?BgIFDm60YD%8VR$?J zA!aVeh2|#53scinN;5K5iqgD7^NEck=unsAL1_p{;jhc_)Jx3X8yl7jr`@GuqAIxR9miLmTdxShgdlm_Q4FZIww96as8LL;)%>%cQ#spc#O5W^X#nJh~gl�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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00060.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00060.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c5e6c72b8c32a51dd8ffb7ec6d753543ff0fd0c6 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00061.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00061.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a3a36f4618c3687b50e3687f5e57d4a245cfe5a0 GIT binary patch literal 37138 zcmeI53v`v$mB(-1&zr~1`~4&dgeECLLJ8p&6Uswr6R?7`f*=FxI3Q5b(F&HGZ9!@+*im7|7p)dr+k$IGWx6UI?X-66s?KD#cl-Uw%D(;jqhzWD*5k!I0hRaK z`)17SS-bIxKQt`)UU^>S7f!@XYi-ThxMD@!v=u87w{P2)GCB2UakY!Lyl0jx9yBZ< z#<_;Y+Q=AjT#iYMi5(!R@d+xyq-2%sl+*!|m7JoIk(i{C5}%-w6dR`!9~-L@7Zanx zq=1oGtUpV%5n!VL))HL+7aiL*TrGBXS`q>=D#7Fwm9&IJm4fWh`;wVe5SHRlj*9+M z{>)7es$`_3s-z_*shma}CmO>QaBGJt09MCK%MgcqnWCQ#vjO^bz7OdFxaiof;c8*_ z1m{X|E~uTJl≶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 WVAv-;tqj`0oL27p&i>Uz;Qs+587yxA literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00062.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00062.bmp new file mode 100644 index 0000000000000000000000000000000000000000..451829129ca19bb68ba1c05fd865a230b60c728c GIT binary patch literal 37138 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 QQKi`p%uzL6pJHeKAHgI)1ONa4 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00063.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00063.bmp new file mode 100644 index 0000000000000000000000000000000000000000..86385977d890544d4a0fd55962eaeb3cf89d9149 GIT binary patch literal 37138 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 N7UnY*u5;Mg{|DDTaufgn literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00065.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00065.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7bff0c369e6be0cbf41b85194c1516521934560e GIT binary patch literal 37138 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 T;neBR6alA>@2;m`rxo~rrQWV- literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00066.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00066.bmp new file mode 100644 index 0000000000000000000000000000000000000000..95aca2a70f29d722da4e313dd7c6a344abe351f6 GIT binary patch literal 37138 zcmeI433OJ~wa35A1DVG!)0cTBgd`Fn3>g>`5P=ASGFlqJ$0$Yg0Szd9DCG&(KB|oq zb*iNfI25rsQ~_JC_4#O>i%;qBmbk>VXnnq?U3r^q?yoT?z1$21>bqxc;Lo||?7h!E z|GUrr?){R6i{ftabhIt<_d5CWsr;#wKYkvs{O$4FxV___E`POqJSwO9+Z)DDTeacE zKNrn^+LxI1t>b=mRaNmDT3QO~T3Ukdx&8LA5#etH{uUxcv{-qa>8(CXjR$h=%lomfQGr2q`wJghmCom1DMtbg9#wAMezuW;sdzEEQ{hH*uvQ! zZIn5f9-L2zi&M!+OH(PyFHli}kFBep(bV+yS+l;eXps{9!M3(%e*Ex@Pd;^M-?P7b z{somces$p0gU`PF+*5lWd+^pR8<%~3_O!7hM^_K3D)0>{%2JwVB_yag;kXh!)$2`4 zNKoM}^u{NsB*n(5#8@rLY6P=)p@Swc8in+r*%^b*JPL&-ZRug-09*p#JPOZj`_u^N z2EYh_Fqi-$pC=rTv|4&iL9-KuPR5`RwweI4 z0n9Ntk3uKbJsy?_V6CKGdTapGZ2&1Az>UR%oa`85STupLsF37KPgj9T)fJU04I@Vh z!KY7|dez*yYnLzIx?#h8x83&a?%l5+Iwb5q@%{&2e0<_BCq8LE`KR_z|NAe0I{xR6 zj(z<5cYpWJfBgFJiwE{SvFArWcG|%%j*Q7)5FXKnVb@0@!8Nb!OYAMxX!yk@1Kg8^ClMfct>{ z;<%N)BW*Y?Ww^?i+B%i#jg7OXOj$T{=El{lw{O~X_pP@|l_E6%?8D>j|ND9S=U<$X zFHS1WkALviyGIWFa{o_Xe&+G#AODdseb-$(zPq_~{fb2w)z^=ztQ4BN9PgHNF2_4~ zPVR7Wi!z4bC0fmf;|19{DpC*lQc@G5W3m$yGvnhkVq+!w=6Ss(KHreSq8Sq!uUWMC zp|(4Y95^Tmy}kW2rTNJZ-`7ENwyQZjEWZ|^te_gxo;NIO|ocLq=XP|<)iN>)^75!vN(%~AR2wnF@Q? zgNHcJ4nj5vV1hpTW2(gLSA*jz$;m3_8y_2vkEyI0TXliRoGBBe^gj8AqwSxc{GX40 zcl_w<(EOF>_bAPue&GI{+iu=+?V9HLx)CMC`SEd1IL@;}A-mGt<+#a4>2W#Uk;-lI zcx-gE3UBV6zxB#~$>X1Y{D%`Cysb1pa_~8&`A_b< z_o46YkZiu>vRM;{4J}RaI^j6qEeH(`R+_sU|NC&9tPS9EAk}Vvols`2VmekjZQlflz{Fu;O(z+z{-~Rj0r7)MzpOVLg5mh_@OQ3uR27^JZ5c z**E|us1;0h^MHfpbk*zh|4=lRU1U*5spFe{p=>@+4cJ%n0M+6*s;ioS>w(F6*@4S2a&D%G&Zoc-K))mXvENYoN zW=vL6Qfx?wlq)LTE=M~hsYzty#w{)^RFRiNDpJGAJ<9#jZLPuri8E29G67JK&;wu# zNU}CQ_wf?D1O3ceg))Z0y)}vvm*YZn8;&oXJ!{jd6+-jfcisNR{^#F&<>j|ue(~_r zPwac>K9l1!CQT~x`J^g$Io>TXp)K@tIc^2&9Om)GGp7s9C7ZV{xpMCVJ0*i_5`S{% z9VW-;G&h&$=SwPgIc{y;m;ODw9LE}fYJnaArx?c~*`FH{z=v2q-S@6m;Vg#W)=SMq zt5o^xziDY{^1whWvI?eCtMEETY6+F3hzOM;Z;DD~PHs&}X?;cI*b6Ey8ZqpW(RG(M zjaOMPx$&lJR=&D#&w2#Ol=OxFfI;b(sPKx@x$K@> zZdTday8c_&UbBA1vXu+3xN6SjS4?l7G-ixQS$_TisY5yhqqswlBsG1mVttV|+xjAH zI{A)SoU&v<>JXlg0JuaQLM6%OvR?p>ZH)F8V97YozMBA7VJ2(up+77LO;{rg04Qk! zA_TCZHkZ(YQPX__BV*1!$E)(PRjLc~RECul)>oEaIdl3g*SD%D!B;P8QG#D~(L|Ty z<~~XfTj_HA%kd#F=Y->>=_x9MGSgLr@)bFmlWRv@ziNewWN;z)vIX-bgA2i%$DK;z zZXW;gHlF$)TX}XlZdxO^l5NdA&Lsfp8^9$SfOYdwCPD;8#^_@cvsR&K(T6H>I7vKD z3yKU7=I5sp?(eUX7!sgz06zv`Hgt)-GABq6BZ5b?LlmQ!Z_qaB)Lj zV|~3yNlp%$Sp{CuBi>5P#dGTi+cIUD+Bjty%n45UL1hARsekemfvu~Z%P5k+ag~= z!kC(x`7>syG&eS?G}hLtjIJGZ!Qk?|tju74KNZtDJ>sDpqOvHT)vRydq!3I_S?Umi zKo5YyyvFEkO9O&tw!6P-6#~u{;08ubBAMKvheC_#D8vLtS!pMLHJ9VU^d511=H$sL zCdY?gSUs?)FeAn5a$IN#B_S!S1Hfp~9z8C{J97Cs$>USTjZ-l>u1P#GHpb=ndBAZB z67o2=7Jy=dJBm9K!0pHJVFS3I(ad1mL+A8&Yk981_c171=)oTwg_I}&ejX0MFGvXu z@K=#qr7SmBYL#gdCa8=XF+!!Tx>}{Ge2^3>2{F+@ejb%hM`u?k9%`*(JxxjDF_BqF zP@(`RQ5Z}H>}sjg(>u0+eWzBjnQkgHd)P|!V2dIOz$J6P(8DDL0~lko%km|DtFcz7 z4Slg29Dkpsd%sgI@o<6dw>XN3WhM_}MOpbR+;=**B=H_wXEJTK_@Rv(a8^9Q5 zbr)xnwUy5!xW}kNoM^%b0BiJc9&jvT6kE(P0eUD%IHu{5H!0dUmWYt4kP-#J_iyP5 z^!HN<@biR+hQ!5052>o`A~i!VRFVEc14|3?a^>gjY(X3@|mrD0Z2_c7XZlQzmlPGMNCp>zCnqMj96!G~PG;v5X7BPi zvtSvFHuE^POeS{QBS(T9)|}t~I1cMAu6Og3K_&OOy{vhG)!0NF|0_0G9xrKKT$l z%sTNA-3&%I0EPHy0<1#{Cx9>za(08yw-5&aqoF?lYC~jR$CzVC-#v1bwG$rzfdViX zz=k_9%3#8a&jiW|U=|7iXa+b@$a2ukRuFc*mCJ^~!; XqaJtqxr+dM2sn4XxR(DvN8tYe&zHpg literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00067.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00067.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7a707c4aefbdcd6e35e5e53a15e059d2372b7401 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00068.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00068.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6e84d36b5a813fff073fc3b48b798b29d7835a47 GIT binary patch literal 37138 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 E1Glyii2wiq literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00069.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00069.bmp new file mode 100644 index 0000000000000000000000000000000000000000..997dc1da8ec4fe59094d4352f234ca9b7a855514 GIT binary patch literal 37138 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 M&wxDx=XM7EA1aDc<^TWy literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00070.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00070.bmp new file mode 100644 index 0000000000000000000000000000000000000000..92ef474c8402cae5b5a5cfd5e5f37e4b0c69d032 GIT binary patch literal 37138 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 Ion-d@KV56gJOBUy literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00072.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00072.bmp new file mode 100644 index 0000000000000000000000000000000000000000..904e446c454120581ab1ea3677296fa8fc558a10 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00073.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00073.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3e4dcb14814188ee6aba4758524de2a7a544271b GIT binary patch literal 37138 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 XsE{r;Xjead7O>aw^x59-SuF7XyK@z3 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00075.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00075.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0d84a624db21c582dab56ac34dfe4e3f9fdaf3bc GIT binary patch literal 37138 zcmeI433ydSmdCU2`@X#7Wg~eZ3y_cylCT9?OboJ%G}6c*2t*N4(RKkua6u6TMa4l! zT3gXZWg2lqM@7+=c5Ov;+&UXQo ztGCoO#$D&rlCF}!FOoms%bzm&X&|GXL39;}uWfYl?0Z)Z}EwAkfJ{Cs>= z{=UBL6yWEl3JnNUMTUf`5<^2(2_Ye>_~2kwTu_jTyF&Z}R8&Yq_^HeNcW&%m5BOQh z-%3`7ACqYsz1zpu*60R|10Xr!p`og#47^sQ}3sZ%K zgtSv^M5HP@EL@eFoUC#f@BVx+7hS8Wo40qeQHVZ@7>|yOR3*g4srr|es>Y5UtvYGq zB-M%a4WovSs2x;Q_)*;%Uc(vs?mfptS_CyW|3Yx3l?=FGWx@#1S%thjaE zy1Q@L^uQfk9^QJd{H?lX#f2B0wP4{dPp%(YRbA>Sa;N4c#T2B*7iA>(&vALu60+kX z)1x9(nX%ETxX>U~xSx+I$k$ILFNlKu{3W&#qn#o`f>mKbfvP}%KUILAuZl$l!yJ1D zbXi#}P8b1J3bzt9TQ_z0Un&f=QgD|N*ifN&W490wvk(uZCXlockAPPA#V`<$;SzUI zAx(JK$M!xp?;?jL5@TajS*~5Tv{eRf=>a$P2uxsbz4{W{hs>>Fi_RA?_MvSg1tMuel_03bvbCVKO-Y_n7C&k8P zrlzGQCAU{{QhJM06BASkaj~lS*cg=sVt6O#xz&fD&Ac%WVRkDH$;1f=0&_#UNk|nZ&3*e94fB&1$zwq8G zuYUU0{sSL;sQP68>z}>z#-HBZ_tCyrU*Gf8?uWPEx$(M{=Po*RQsb}zMT&V*rc31w z<3e|ztn3m`VOdFOJN3=)qoU8b*;%TbEVnA&N}ZhN_Ke3_DZxs|F5~8E%d*R*C@b;I z+Zectdf*O&nt7hB4Ku)-CzCSFGY@FGm2%ygs=_{bs)7AVRij4?AKy@a^5jWPvt~(@ zvi8zTZ(F~9=e_s7vU~SOZ@l^KM<4&=n{WUA^*7Cb{jT}@AO8ERPgP&OzyF<=U)cK} zk3RO>-~8^b+wa?a)32K5PCsFEb#Z=GQDIr1++ue|znrXsv=nz-OhR~wD#G7KCGm;M zm7G$PUr=39IjF3>y~@i5wWz#bsj9FbUzL}Wt#Y|s0;Tw$71?$PYmYXLO0rUll`Pg1 z@Txa8dsBwVrFGb_$ch39AmI`QXt5taf^9dbn`SY%L?bq6bBT^n552~q=AL3a)=C!Q z={Agy9a*P3si9%!#EEmKPhYuo>Gi8u|Jw~W?0w=%!TiUs{@ncI-g8?Ris{OqRVYpbhEiuz`xJB)Y8n!|Vt=eWU}CzCR) zIH^|hhVi2OJ~Y~eZ%<+7T&Yz*4LkX?xzD^ zH~;j#>c<10>r(#q-sfK1{e+VK(A{_3eanUmnikBOG+}JbV2AM|l5y5n7HigDb{4ip z8^atNByyL$Ae820Z?s~;IJ0%`vZ+um$%7%A0e#LiQeKu@RgjybN{Wq9MFa<_lI4w_ z7G=i7s`{p+mStsEdkTk@l+HhC+V#spo~XO)-ss~FH+aaFR_Jd2`wu@I`24^JZ-4pTn~M2s&+byppZ)jk+iu;oan)s~o;a?i&{LkB z;QLG0rSQw8MA{=STiJZlX;Nj3>v(se*icRNgQ?dSFF;)!=cpLneM4^Tg2L*g$`kfZR^)7|+dgbDUDzw@?)q6CD;3%;##v@Fp>FI0~XogO$A( z7-t4K7~$xeod$zgg}{c}y>UXDGG>)WKI2S_g?NU^xB?y<8PQXWUwPrVJMY=@$-Y-@ z82|P4*R5J|_T0&n%JTDalM@p{f*i($HQ2;(7;kY!o9D3A#6#9v?Y3cDR&W7a-VyI9 z##byk)&(*!G+IZ@cOCbywbW#fo*yFPJ@LQcY=bVn|RzaG;9T zO+z{RbNkmN?sSql7}lgH1H1_Fj0pYneZw-(MlAy-aw5vr=Y`jyOT*1 zysbi51qqyeu;_QSMTc?0+#AN1HOhk6S2aUu$9PhK~aEf9Y>`+8Fc!d5)g|eT@JDFx=LWm-v zOJY(&WK;wp0f!RgU?c>Gs?wukRG#>_{^@B|xjDm&`i?CxJF$B3^f7g_PpqFmb;3pS z=d3(y;hOW8Y`%Kci;ryoa{p_eyuSCnz0bb6d)Et(Y=3m?maVs}|JQ3)-?)0&+Dn$o zJD<}V8zfwDMMnze5gmn0bVGV5k(Io-kk13CJo$Z8Hn9qBVG1~{@+L$vr=T}u6=oSo z%vgmm21FS$Y)!?-0IPMg>$q@OkOB+=tr zx5x@EfbZF{O&9S^Yc7)&TmWCT=yZp1rmsVzcNr)AV9R5VAjUBF5p$;_*f0&7+bPVR z1=0A19OL1A|o2p<$|=_*hkOM!M>_fu$$Z zR!$l@WP1H^sRo^j!#(-zE}F?;Id z+Ww`fk>PTD81Cc48$i7EW5z0lR_bFVnG2a9aRp8wfFwAy4oDJt+W>=86#UFxINY2{ zkYEaW%AoTw#*qh*V1OT8B|^p<-gS%tIgAVDCgZim`HK0(x?0t&@%7Wj)~&td{2h1R zrc%JyUw*LyzGU7h4&xot=P=&#yqb?FIfrE(uju1e%gDIj3NC;*&6?^kek3u@uE8F`zGh>X8=OsHn@en+1ZbvjU|b4kWo5~sL0Yl?Lg z3fo+w*GDYl{oJXlfq9v#nxZ};iOsKFc7aL(Kfh^qFEGy0ti!mF?lAt(UUqu3ju#}y zs)}7ns`A_nk;LYgFI}vX6|z*fIy|Bn5|7K4(Dn_EG$ZkqUhbko(+KkMZ6|`3$lwrFdSsN!6&0^HZ7qAxGv)c2oJ>NT1wXRkqu$;vfL85{H

_`K=U zR5QkpQ%x8(QZ=NaVrXThoaH-=AK8qvHNYm@2YUntFB;jQK-)BALy__<{bF!?M|(|c zo_b3HQX&-V+xV&E=)sHZKvYQUX3g@U)pjC6$B6Y0P{juZsXXba!^-+kJ$}q-)26CU znQ)@&gyBO~HRa{Sd3o|nC?P&RDzkMurmm3qnh+(^TQGNUMq#r<@OBIa zpDMxNcTuE_{76KG`~XXlXJqZ*$&K}mqerU7jI2}D4INT5s8YUqoR*jr9~CXXw@=MB z!;#QJ&sF45NE4wK1H`~}7_5@s%ojdnbzutF$f?KdvzbGML<>x%%}Y&Mr!DHC334#t zhsk9dAZVd5^~krZj6?-C?YF6*)ue6=%8)}JnI9aCW4OySsOPXSF0d!Y#LAET)C?RT zj5i!NV${$Y)v%gsl>%N=klzk)A>B+2$6;JZ!y7n?91QpYQHSvsSM=06u8Vkafk(I& z#z#~S8d6!V(jVfKzhwm%z~!f1+OFWblrwc0Or68{A!eMFl=a-ZXM?F~HJCB>EZ|~4 zpb6frqjet9_Vu>;KTSxUo(b@Vh#9M})-xPBMm+=)7-onfIT67j@*6+$o67zA77eed zt*fb0RShUrRaaIh-8q>V@&n@W(NR>0(PkX2CjAlr$kQktW)wsw3=jh!GA>S07#D4k zgF&N2I7|UGv!_zn8-wZQ?GT!vs~B8@4SHzPc?uKi(0OXc8}wPeWo0FXNO9X3hpx05 z^pUz5G+m>Kqlj?@Tz;#qASYKCmtRw^F7K~`aRpp{DOUjx4-NutjQ0ML&lyF?Z8modUg$Ck z_BC^XpwD?$Dz#EknqIH)n(q8=_$*vE%FI^qrE5N#S}h0G7rOAd|VGjoV$ z4*tO9)a(u86ecQU=J_xmr*{_OdDdsU^K-4FfXkyp=joW)XS1sg0e|uHt8gOg%hm3|0UhCKffqd8DTCW-mK@r` zXWmR5Wf(n-n@zw=HyP(Sz%AWmoO%eE$bk-X#uzeAurWZA$;Cg^Y||Enxt$7`FD_A- z3QdFQrgaRPadF9Pi$*c1keps&9DmU4p<|p0rwKgWO~!ewd7iq-xLFT5%qqjdu(?DT z43ISGfCcx@yi3 z6UCE3VYp*lX3bs8p{p2OtH-&k8y>*-OfLoqU~mb8+q=;PZ*Qe74D(L9YQs2}DC{t9 zdh!^`ffumF009gxVQ_mdxP-Pa%tq-dAhUd9a2JIg#_@?`{JaNjxcm8=oGXq8dddU; E3*yZ#AOHXW literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00076.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00076.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9ac1a7805772c74a080d1d17a7f87108f2a79852 GIT binary patch literal 37138 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 L@(gk^dEoy5*TZ4< literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00078.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00078.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7e288eeb2cd55dc16afb074456d22815cdf7677e GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00079.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00079.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bd14de6412507eb0690232f4ab896702b3205565 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00080.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00080.bmp new file mode 100644 index 0000000000000000000000000000000000000000..62b0a995403973ae42ec55f36fd2c3ab694c56c9 GIT binary patch literal 37138 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 e0FHzK#sMtp=V0Q+AW7km2v literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00081.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00081.bmp new file mode 100644 index 0000000000000000000000000000000000000000..76a7fd7b6da013375cf21118027d69fff481664c GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00083.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00083.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a48e738f5ad24cb7b0f0fd57eb17472d0f0eda4a GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00084.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00084.bmp new file mode 100644 index 0000000000000000000000000000000000000000..493f53bb0fda387d5fb66aa20cf7a639feee66df GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00085.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00085.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3a41ed1800d089bae2a331eec7db7d5c8ba6e397 GIT binary patch literal 37138 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 ag7_WM_XjhlmaC-Lz4+7VI;LmBdj1y>Y2e!c literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00087.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00087.bmp new file mode 100644 index 0000000000000000000000000000000000000000..06c42471ab87b2cf6b83b7e75fddaf7a91e1c10a GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00088.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00088.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0ded5fb8e9f1bbf49131c3256bf01c31600e6812 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00089.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00089.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d1916db93718b154a1059c6486d0bf94a21205ec GIT binary patch literal 37138 zcmeI533OCtw(l#c)SRkRRg$VoQbSTnWu7ak%=0|Y^9Y0hGK&lf2#qKxiXhISh$x5y zP6!Bsihxtw&h5}`x83c1xBGS9yIx=4ee2!z`Yql+Y-&U2VBJcH$@R5o{itkCYB)Ld zt9|zQzVCch+MwSly0F}a+jaQ&zwj>||9nIy+=@h7cU<@}?&iEmM2xLJUs~0=V&mz5 zj~zZ{4GzEg&pyRYXW+)s(dgpQQR$-(JfO%|elCvczjN$qdGX_DY6Bnl;_F_#d46A! zXdK==%KcKFeu{m3#v$|Z9f!hKL@31~LgnK_`1|@2QXk(*AodXnxVSwMv6zraB!o(# zAans5!VnZlL|Dvmj;Pecgo={ljMS7!o7JGx6A@;MDKJQ*Q0kQ`LL-$CYKfFk`ihBh zy8{0mx7)AyUvJ)vAH#jv6K^(_@9Za7gbx?H7k-rRKEhoqypM1VKcR`5~vYYGc=FS>!tgXp%rnBQZe>EXATH)hM$VEN`?+p%wdtSIkxaWVIYgiL+ zHlOb-P~1-{Slo(Zw_aR?FEP3O>V7^?Kl#n{;J8dAB2<1p1gGzrbsT~x#>eI5WH;1Q z&lwuLVb#i?92d&t^&0lXn@8}Sg^p_k%YRwN9ky_yz~v-rN{fiv;$k8>DvFqqJdO+w z!P{F~)?dG7;k?oA_O{B>l9Yt_kl>)7^0+sm{{4LdgY<-2<4>SeBXDj&D3o%-U<@WA zqwGX-N)nNhnoOjor4TW((L}Hzh|p`)N~r{A1aymlkNy&o55f6&LV?srL`Xy;!p~PE zmx{C+X`oIKYSP-nO?l45(p+b4XtrImTokPG2?>yB@%$GEl=~5SnV3*Z#p5uj zl|+bEZPcjvzX+njOoTm5A0HW-79Ww78dF=AJJ8v%V5qyhv8t-T6=N|F#^7KSHmKhf zG8w_A3%n0Gz#b-q`$ys{@>lo;>HPhCM1)EvRV(Bgr9$E(BL3c#$^Xw+>_f0olM7_- zB_JRGq1PK^kBlJ9mN0^iX6sEMM#2#tMIoYQ)1WuoD5`|6Y-B_<~;rKBi})xIeBg4rbaMZ0g`yyx!QVfUfE4;(qT_vG_W5=Woi z_uLZ?9e8-xu3I-Op3_rR;7o`xn)PzESY*=p5fgGe*uWi^{n0&qN|~@xw5FbFw2$bAX1W&!mUJYYZJ|U|xXo-b25AGP z+;OE!L1+Th1gj+s_&&k_YV$G?$J5eN3D#Dp*Ai?!XJoe3nUPL-a6Bv9Mew7F^YgMZ zoMFABCmu%a-b`4eycFgT-pEuBnY(CQ4MpRc;LUUyE$vLj`R}s$C zgxsw3(xTjw!W<$$J1Ze38gI&!JFXAZ5f-bNV6}t+-$xi2-3v^gh~shbvDrCUxQ$PU zBdj(Hk(8WBa7N}J-I+$Pzx-L@z?GFrSf5_J8!x1p&eTfK63B#Pdt3= z*(ct4_3$s>dE?v9KltR_sSi#cfA7?hFMe_6!*j1faF~ANna7aRpLy*5hjwncZR4te zwwm(XRHSt{ZcxcW15`$TIT7fu7>6}jPt=zc->`hitsB?>Y|TpI=5^N-H?3PiY+ire zx|NHrTRd{zHFJn%qeH~(;oDi6AROEDut$AXg)c|g97}`#-J#hIop|9 zoR?i)R_wv?C8I;c!r^Y>rZvm9ZCtZ!>&An-?|%KIr$2x9^uPY@%YXjr<8MBB@0(x# zoHRf8>WifLi%&j+Z2s8&+u{4I8&;0=HYeGw*1!ObSTrHWcWl{AOpoJAiJxBW55aRX zoXvH$|JaUm`QgEF7MagN`P`KQuHyLvA#}W~uqe+pW_pZ05}G3uP0n$A~@qn$qgxoI+Phs>2c;7HH8cZ9)Dq=Ah)rutb}&z9?()aQ7oSZ-wl? z|LpyL{`wQr{QWmyAFY%NYHN1vipd9#~~Gq2&GIMY7C5vwl~#R5$!GYL}yzaG0@xE)n4Dy zSlL=tR^m!ebwmUyBt(cxLYOsjB0{GkVvM?)9OuHmjsp+g{@L5dfBDXdkIx>(?TJH= zo;dUfaq{^`iGBBOy?)VPQ)xzmRclm=A`S9Lqk0^%HUm+S?<9(HGKlKZg1JMzo7Szq z`NpNh`c?A~EScBcT2oP$>&i%oNs0<5Y@uOD2L3WRH>YrLsa8Sdb^+`qYBTXy`6MPp z)Yp~t_B0VKZB;~LbNNN;sw&Hh!Yv`ZdoLaBuP)+NWC<@)Kb&o%wT+WyY_x-jaYS7t zHX7v(iX4g5kMMUd+;r{Tb_r`0cAV=F*o|`roEpm&GUAfk?ugaqKqgHWd+O^CPygnl zH(z`4@i&j`C)n{*FYLodVaH7?8;aATLsT}s-#EeXUv@m&5=4ZD1{10Aj?U(~b*q*O z9Z!t3S%S1`Kaob_a}k9SMIF_3Y&Qi$$04{sKF~Tf1TQPiX2B8s7#(M|Ik;-a`NS4> zi_zZfZZ1dQHv7^~R+|H%<47)~xzO?Qk^<6vLXIPYL-6W~5)Y0egG2CeOE6llA$YJ- z>W$;cR#SXvP_#jtXwxNy>-!puAKtO)t>e#pbmqu=rw$S9IFkF3gAcv<#C_X;wxYc% zCpXD9A;*n6|EiMwRm&C%9e0>b!TxfE=#t|&jfBx!mH#-w@!u;t4#6FED`oKc^9ES+ zAEV=J^i?~K5(Vd+Xj|C`FK|;rK^q4uAgc@l!ACJ^k_%#IdIzCZIX)gL|e%h1w1N z&KOH{sFsMa1{3xWEn(8D39VA%N=;b1a@m%R%ZXbyECcg~TWkhB1lP*MDqj)dNo{vO z8r3IqiBEvPJS{oCt+{@nzm@1{uO%9q%81(fVgh>-Wuzt4Ky?mor+i^qkS0+Opzh^X zl(?8^B0e^TK$`{CDwn#DCb>bvT7?A1$)r>!Aug%y?gHhF^$@Vy9C+h+bW{`?e^HY2 zqqrDn#}!gvl#N*#sU94M;8o@M*_lZYT&tGIC6jcV1kX>2fabG1s_xu$-PSd(h;y$zee|i_x2{`Kl9>>14N8wTC)-WLG&_zQfL(+mTvvPZypiFb92c~Y zLvXZda&a=9jwdH3QY!c0xG7kdk{F8RfR3JB}7+q717&POH`MYngaE5bZ7Yb z5IkC(N75QpVj@f{ClW(+gex+PC`*c{%ZzI)NNX=l@2|`qX)N7-|Kl$m|mw$fp*;CK$AyBdOHy7$IM!cx z&CYFWh;27t3l@#Gg#}@Nj0hVn$HDyqQePi}cMBS!2woEv5mH%}H-GNHU|$>2-O)hc z?1ZSVEhcKK3kh_bfk1pV+#@LK0cYOWgf#Xj-_~kpV2pvCn z^Z;>i_x43YEof#T!Bgx()8II|(9mU!9yJKw(ONq)tLG=jFMKSf!Et6Z_zT{4W?1{oZJ$A+n=!EudJf?ng+ z#u{XB2tI4D^C!nII38iM62XCbf(v18{NrO5H{o9@NZjr7JX(?ai9$_Af?M^oGgFBi zR~mtqKZ0u&Y>ZwTz=a9|J_IAc;7?~tGO84!t-g%tY^o&sJL*A!D+yH!!H)9Lg-=)v1=?Y=;FDCpoG!lj>dZC{+3?a^^IYT+?2CZGZEMIc>METlD5j`@a43 z%y)nI1h?OQb{6HzXXlPk#d7w@{xe4pKC@?MXH6d35z`&UcuPQdu$lO-W;2 zSyO#E>XVwPf~tx<+!E7JtFT%qTBLqrjlU`(E|y42j2#CzupmLA4!}buyFe&Htx^)a zA?!E?E7PKOFFZCeC^(Sdo_n|VknYy^)9;}KXq+y!Mmk(HT2OoQX~75NR71<5hi zsdD`C3=YA6ws7c{RikkH`A2uKT`S7EF72y$C1Gy_^g3$ zWbiS;2f95tjtmaLlj7~M(Pn5)*?ju*I5Ic{$0dE!>o}eB$|Qb#b$GbdLd3;J5zh2v zA~Q3EaJf>6OlLab%5V}n*%?G`P9{;1n>h~d`azJ9mXsLh;FD-!fGx!K6cyxmG*%F} zoPglwl%CcaTtQ<-=OB*n7f|^45PXTIP9`Hv8W~{?QWMFc0WQ0-Fy2<099ip1Xf1Ru zs4rOFUU7YY!_D)1ZeKcl_v-og-?H+#hi^Z3c;CPL>fQ7I_Pf9R_b>nUufO`A|Lv2% z{N}xX`uxn-AH4e6TZcb<_ zR^7K_199ip)nM6zZnHrrLxm>uRft6d+Cd2%yb%}zRkh_=eI3<{MtkPXYA1#V+lk)p zMxwi`t+l10zOE`YCBbG5)ulHeKX>E1YgsS(jF`D7i3 z-T1ViMUp>1{L$i!{KGkp3=YB3k<3O5gPC<4861M|yJhu}$9KJd;;C;xe#3*~Xe`Hagf1L9I?^pg&{K1(=Osn!5#vx%(RQROBAkExJ2PHJTKQZ zj>0?_k)M-66pdXck(!zmhjBv~J%oW4d|VL**i^K-6c-ktAR(v~1-C=pO~hbVV^eie zM5vBS6s4~(!L^EBE+@EFu?1_0lrU{pq^T$&ygDPUIX|ttJZD*3`G(nT+n3M2?}ml@ zZ@uBj1Gk-h>9JqG`^tB}`|$j~{QCUAe|!G_{^k64-~7j)zxeAPKK$cXZ+-LeYhS#3 z^zBy;qFi}!+uE+`Y~=Br_)wwafl4W%^g$m`!sfNB@7cbd*uG^ISUSJUV$`En(a6P0 zKM_HLNzzkd`nsFZK)Cpt*{t@+U<)zO*Fwx5?(FYv?rg7(iMAVpb+}yI52I}_5Mt64 z6=qab<_l{T9$U*QaWLsxg{lNJ+?hi|qU;e6oJdbib#u`=XId(eln_rqaKdV};wm?6 z0}s~qZo^1$N2Gm59EaT)T7`~h2u`C}glhAenRR^6rWJ>FZaVqsPD1Bek#~Cp|5R;DZI%D%@tmYn*9mZZY?E+DK`Lj08k=5ins3>v4^kQZ$& zinmv#$2aAskJh9u6bj)DacVp98K0JOoHQ-v>{Br_=i5TsPbnmXaJ#a4QA}2?+^NQBh{InP-;>2?>da zh=`4ijdL$Nbp)A`Ur0>OiVg52{2$PTw3r6$lPhSW%@?Ntz2C$3$$D%DrW zDU!ReMBz2~d|=`nOc7O6QQXo{-QC`V-s_7rSGQdNjuY0PAoQ&SDil0TCtI(TN(qxn zL4;}i35QmmWYT7an=)+1{1{t#N=$!A;z&)#!sfh{y%osjn-{e2-n#Vkp?m)L>50F7 zeTMkMXQzoT-#hm4nHS!D^&mR(@7Q=PIys|^3c{#T5J7S&!Les1V$M)IG1S*g^mNq|BeT02>WW<%aS`EWG=h(%Z(lcp zawRB8lbf4STAGh?g(xY`N1j7@!;fO!JOrG#IN%{5O1T_w7ChmBD9K521SfR3hu@+= z!h9*16&5eVw(#I6oM%QyN23x)`X+E;4-pm?rc$Xcf7F#W)q~^Q2gIYRg7i9q{~!){ zi@b51hb!>78@yJC(V)axkzn3%UW3;n$4d&bNpla5r$$FpXXaHp-kuXhnlElGAkEov zROQ64-ak%|;HMAo#el4(v)eHm>na`3a5~CLGg@29ym6caw^=a$XsnlK#vLcYBWyMg zj+5XPv&nzLDSAXkoyP=ep8Ja}SP}WMyH$;XLyy9dAgtkmjgZNON}lckdr2J~{g$fea48 zPdxkJe?>t~P(!(plFm=<~*LWN-+MnM|ofnQ_OF!6A4oQm}hWp)ijl zgG2DKrp@oq<2VZ?&4rGmK&Djg(QzIgz)dxrTk+C7tdaBexPVRM7vX@d=K$%Oz@P#2 zsiI*&H#>{S&&@#-CWh+p6M6{DAwig~uePd`X>KehI@)T8_U5{b)P%qQB`N`2CL{L~ z@pP6LR8Hs>Qi5lZwdqtug2hObr`qbXW7>+62WxYBD>GNkZh8Hw`#(By@b^DI{?(Zm ziT6)FPn>-A(YKF1{qhs{&+cf*O>(3~neD-90>>yKP$nT%QVee&L*eHW8yP-#cwp(G zLE@TuJ;cbYHe#s1k>CsKyE^NMf!L_FIAwUg| z5(ULL*D4&~6cnSoad{d){IYGH5yvrZ0Dm9;(8)QjR!X8G%z4>P503YCwv-j+CdNh@ z^lDr@0L>@ocz&#rG_T8whT~hWoAb^~d*S$(Z@%#Ht4|SUUw)E!<>2lY_TIg1?ULGp z%mk|eOoQVjIIeNUrQF2KI!=P)sO-UU5*&Gs1jh%3-4q7wI7BARS#1t53U*v;;!HbE zNxUF0cXE!S!zfsF_PXGUmA^RBY=>*ux~ z-+#|1C!dDnAG~tl-NTO&NZ$l9_=C5tpVd;13?8PDIxz3~51+@8!67(xqS5WlI*!x~ z!Eu7+!Ew4!6R8dvoQ?!SwRsIYj)|s(2@fv<^4!AIPzZ7P?SEK&1Si?)$qCUItlLmq z!LHDGAZg9P`X$P&rJ;?3RR1E+GPyG9uJpN*EPlt5z9p(v#z*$(Bt^ z1|HwB;oOURS?#mWJxm;WWak?%JPyHk-@c)*t}rLgY}F|UbAXHxwyW@^!KhU**KSXH z%iP)R#H_()qQ9q(=(8$Ijab?15SS>gJ!BMheC<(#Zur0iXMM5=#WDS>j z+F72;jpu1WGYfh_@g)2xk%$`zg&P9tNb{?79F-I;_{;ENLSxZXIc_r>Npla5qerx| zv;bET*g`{$dR>50;f>=Ycyf3slKAY#0+cAv+`r|-fqUOOy8rYu4-zL2+(R6H>S6HE zwi_4rH5Md=CtGzM9QVg{_7`BsBg`R~Yj>!(%NxgAnkxwsT#v>h_i%3yjv@FY-7tI0Vm(iCEfK3&Ho^vF_-; zyI$I}{rTP7jz4}E@$#NKi2e88y6dJ@vs)|1GPuUau9tXlJkl6U#Mo^_Ze}{>+Qm7i zH;&ifI?M|ogF|ri?|9=lGA2RSHR9HT;{jTK!tJrApP1B)Kn924F^(&gC_=SHeTL{C=}G1%SG-dI&vQRqsION_QfS_~mN zB@w9dBP?2Zazsc`di+pp?Xo$2n^rE~|KJYd={@%l`ybvx9DH=w6T9!+d;hlObLTXb zl_W*j!UEI;`kn~xZ$d$$^H*SeB`%ws)!#GR*WKIEPK*o<68$~x1kY&K(b7!xcXuJc z*Szt#B>vky?lW5^J97GD13uOytyd}-)alHAL zw#YqQu07mF;7U9K#SFopgGhH@C?Bd=Z4P*d`cyfN4<9xRZA55;EH5poue~TZG-t>A zJDZ5!_6DM=D4VD$$t6a*nidXrt{5HMx^~5#n{L3@UOjTxR$||McMy-*OcNY{Eq2s7A2ySTPqYn>Kxb(UorSy(z@D8&}=7ekBCoxp^HNzhmQ?dvDuFJap&H z#JzWHBvxEAP*d!*85Ec;BO*8u9kt##j&A{2ws1aJFfxbm#&KkD2ws?*bGdG$xrYph zUtLWeFDok}%`bn^ae3V3Uj7R^&gsB?VyJO{>5856I9-K-TUMK8XUExJcAVGXqI`Tr z(3phUAL)LqSL;F_0s2u#lDXX- z^+k!1hR9HLh*r$~J3MZdFE!$kz1-uIpOrDt-7(nH+0))O4*qJM#=1%ZU(iF86&2!J z2=J|V!oOX(hTl`{L#V#6X#sxZBTn2_VPP@^j?IXMo~K3c|+5F1Iv zI>HHjnIM6$8}gUq?9x+T3GWT}TZ*HbNG_K{a|}`)xA1&89s=~B(*nV1z!aX49Ctes z=$?&al0W%*c;kfuy&}qKzB30{Id0)!;iQ3<%N%Ee@RYRhP(pOs5Ui~?d7S;F#0{^Z zFt^W==4cQnf&=w9@yANu3=hE-c7yx->A9~O-w7ZQi_|KyUMmkV21MA5InKo5TxWG@ z9v9~GhPny<7OXW3=MXFB4-<2`8i=aAG|WKj2njF+_+n-&fAJWBN|7ZB#>tblRl78%j5)ilU_1Z zD)aw)lztKdU%)}|e6t)}`q~Hg-1y%7IlL2iw+I8i&s7G(Xa13|;r$`}JJ@l#6uEc| ze3vz$6bwM*`>s#JOiT2&xb(AG7+GZ5n82+ z_{nj8BYw028zlS-*l{+I<>EEMfaUV$&iruUtMeM(LViMT0^STd+~bxV*Q?|Ne_t%C z&4JukO#I|HzY+gG1}xw-1RnO^&+IdE_t|^*UhY4Bt=Ar(AZ*8L!w%>9MfrRr9UUG0 z^q%*8P5G7DdqpG54%}|UzyF1Q3HawEGT>Guy5pXa|0djgBN7o;*ME~=T(|1x*Z&sQ zb1pz{-u7=!xrvFMHxCYm_V3**&r*Em64Y_`)y?wa%B7htIN29x`!bpBJBvgU zn9Q?;kD0I${3#YWO+e!0JOQb*h>*F62#K@P1YDh+zY`ZHr^&-xleoGPa;cP1dw38! zt(LG_%tU-_3}Nu{BE0o_rJEbJ<{^=)q%w_MfdZj$6%#UN7h=Mpz@Ne+CR`&t&OgjG zb~T+Qv-|vDSHU8Dx{H0`X9*uOz2nLof%hu#jb=@ zEG8US%-Zr}cnufCE-nOb&`mBUR7xcQZ3zhO=i_6wSj++bVIjeBG12|KJsoYW$%zRT zlgY>1Tcc8G)oKEQ6K*c9ghb>t0X`aB5FRn%8sX>l!(79fOlJ4_!2-oyC4$ASI6nB% zMfeiaJFfQajr}j&4u6*KF5gf$l)^QR%GCVvyG^Dt2-u(W)MZ-e_ zeZAS489zEMwCKCmuqWU3z^nK3gN2TJ2$t`g;~IA*5p1>)S*b}xaefXlFE@t>3$hX% zb~#213mmNZE?&chDaCO_a0s3d7uVI%J~+_7bn&8wy4uR}vXCI_kB(19)W3g>)>A{c zE8PgBY6Pwg2$@_;=)H7=H7JmXiH#-_65}Tj8Wuw6^qz#)L#dF6kucCL3LG~%kzh?6 z7DO&ie+Nfo@zqTHDz45Vxm2W4N%fv?Mqh1Epl@D!LP>6VO-WvBZCP(?-EeQ)s-d0@ z%NA@|yX=-VOSf-YbI-P$9@@Ee|9v};?AyI(#};DcaCdJ@RZVerY>3h1<*vpyB;vQcbw%iczKuuyuv~P663=&)8h;B(tBEJ z7j(BQThOy&xNqI^;hWd3Ai;NRUVGK4L4xDff#Vv5ln5~ylVc+1WoINug%fG9QABQ9JW*dh zuf4vazrCTWp|ZKMsJhTrke-m05DC+hVq$|$W@tV=$K|dr1PShE@C-Eh53{9`4_Uhf4WvKy6;8;&@zqED;eIPH41hf~^k;4JO!DE;w*JH7$kU z2j^yGrX?lDMMaYAFnz`y*D4i6Y;<`nj?Zk z@Oy9Dbk*)h?mzM5Be478b4M?|_}p9PP7*Jjdg|pDp1yec*gLPBe(~htqx&D+dgIdG z){30e2%}C)OvZ5^t%@kfN^ftdUA<)C%Hcs`>HI!o&C&(LjjI-KSh)y$xVW!<=|Cr< z`HBTS3wv7oT52ncOQ1QT`ScvuxVsUFagiCR3Hdo0dA4*SD=jrLGz1^Yj605C3BjRL zfXSaQ`ulww{sG2s!`r^V^r<)wuhTQqSa1}0N7!Hf9tcBoQgR|OAyL7f?09BY27#kE zfnd}e`1*KhH8`&DUFPcIFh$`iy3s_%)!B(a6(FT3W550Tgg`d6q+HXJm=*p#wAH9D5^2IZs zefZ`_mo7kXn11@1gNW(J4?XnA{kQMjx~8kCG%G38N8_rLxTxh4ol?QUTBVRqz}Hhv zR21fKShalnmd&@`xQ@8(rVXQPT6^0FTQ;mBHY^_|Rxj))277vQGctX3da08$!I_DJ zg1c10SzMsMF+V%2p|*mkttutzsw&Hh3K7k@a%s}Zz;`?lu^UoF$3$`Z8fdi;ob+;v zAT01>0_}^xzdtVjzT;KL?iM=EQQLvzoT~(f1QEO=TnGyfB{+^x5FCFd$Hzs7hrx7c zj!Y1mPtS3k%H8O#3o;qg6610+(@F|*9XP&e%`#%`;sIjoy5&1>UU%OeHy?fE{#Tzr z_St){|LNC1|NR%Ae0AmWuYUGEY5vxQQ>6Lx#~wTO#Dh;feAlyw_ug^ys{Zz>P_w^5 z;~{erP08{5cHBe_m$#na3rjBe_!MhS>D)t& zx)`fpl*t=e$daCx$L`$@*}wkugWr95g*1QvjTcGt7oU6b{Ha41UN{2T&pdkofA+LC z*;12?dhL`PpUpTfb8*%x-Tl1uh~N;stF`4H$#E8$O^k|;Bye&eA|oTMR;$ry)YuoU z7qmBOI&-xm7r5Gt+ccxqN}~WyQ87EtEskRUT$h)Y)GI+=1O=goC#m0m@uj2M6g~} zoEkseT7PiQ_K)8>`;$xOuDo;p?F-LdcY-x!^d13BQU+1>X8@6v*MQq);Waq6ntX|U9URRZs7z?6< z%!J9;&r73qm&&+0g$rZ33Np75aFnRd#KYY+CMu|^VqRx^J<-@yLDbY16UbC-nW?c+ zVSISU&i2<=;+kfqeUV7TxUfWYr^ZeMtVliM!`j&mLYyLCDp zUO;YNrsOzRF{3htG#5IapOZYxQ{o*s-qKiEQ(0J2 zm~AoWd^Jj~Ts#@aVY)%)tZ@>hMVmIR=zsO}kzZbU>!UZ%ymscP*Ula$*zuQ7J$d-y zU3cHQrYtAkYEVFP2aX5%X$g~$j!29SYpt)^yneON@ubL5y}Jx}h@D13oBar^HW!4B zLvVMwSf^1!@WO&jT$jwP<6`?VJ;zyXE?l?ce0dAIv2)lSTQ()fxe*eQrU(a@Ma}Ds&vN zd(7?;%~9nIsnw_+7j(b5rsEJiI4}Sa9D*+#>X}=|S;^@+&QG7B<9yA@xe6jX&KEdM z;8cPu;;U!HX)PRxxqz60$l_8 zT~XZJP|Ybyduuf@JlNIVQd3o45FQd>&?}{`q6xC#PcQi>ejXCS>Zv3me079LCxNpu zR(+{0ZpY>omtQ^g(OWNkdinf?QwLr>bBH)|>`~&`Cmw+2<+%w_X0HIPEY|81Y0?uR z{yM_!?Ll~J+zGWpoDvs#;|$bIE>4KJUvr*wB0&dQuI8xi*4UO^>nb^tS z*DED4wz{GORi{L2b2U+0S3*=&77&H`HV|SpQJ#a_nOd%)51PXiGE`A>uD~^W>>){r zT*cYNiJ0#G2p#8bli+BQy2d_EVil{+g_&|(A$7I{_@pJrIdHtcr=_AaFF7Fsf~%Ec znRuFxli(?l{?NRmwqX0F<(DoTgX6e;=i+hV;`4`y*Uuh({;7T2HZ0DLM@_RjCeScf zj-!^!?C*oHfh@bDwed&CN9xD<`$LJo8qMG`^j^E#oIeSnukjF8n+r4LxQ~}6E;Gi6tM^FVLs!Ug^R*p8!TTUtsoZW;90RLEqUM5Dkx zSh&Fb4R{R~_{<`9aVB_EIQ^l6M3BXZ5KLrcBoNt|i9}LDyuY8XU2=H_x3@S09m5b71gKt{BaL>IPh~0PI09Gw&3ee+D zkxJq+E>{`tE6H6@B+h6)y9ytum@xmEvYeHRdx!g5h_23RqN%Z%s4UMT%1Uem8qR<< zz>j;=^9RR;>17N2^zj9`RH9LNuys+9p%aLSibNl@0HYtb^iA*8MWR`7TqY3{N`=_y zql*l)&Vu8}L)GYFBzBr9$4T(E;*50*+D<>Y2X_C{<%u#PKI~4|P@Mr-hQ> z5oXmaIIfU5`RLVQK_&>^-CDJDsPjk1N4^%b;JDgDNl*|+Pl;J@9F++WTp@LtDaR4P zA$V_9-h!smJ-4m@^v$!sy>f|Q$KQYD1o75OPp@6lQDTcm1c%^OAK5H8?x7IJMTOQ? zl_G*e@I~|6esp}qaf>N{(0ghLPM^6Ehw~7wjUP)$?Dg~9TM>yo;cM_FLW6?{RAdvG zX^8~qDqOHy%sO;maltE0%vEqMMr2NmjX{<|G*uT7oTBu1HFh*tCC7y#OCi{C?sDfQ z5ffet3E`)5BO<(YM0$vo$cZu)C5BXG#x&$5wU=b}*A&3k&AI;T#E~AEe+Mf^LrK#wiAOrjYL~(InmryQd^T> zUY3RYq_jA@xG)p9#4O}0tQL|MoZ1ojq9Y@SnCNgKIx38a3=bplFgzGfneL)hW7O1D zlx_-wcZ3~hf4M&-_f6!MdxMWRflF3`Q?1zOC}I{Ihu{s>MKR&#nR1*2Zz@P3!56iZ zujr|Vl2@?U~qMT%EVFrEGn7?JWyh@7yr_ z$d2{L_TKTcH=qC8Z$A0!*FX8sKYj6+-+l70zkKgEpTGHwk1t$#=Y{uQf9{PJpW3*x zm-BJ6&V%svkP&EcB~Wvc8WXW~!y2S0%(vw#s0Sr*@qTWQNqEGo<_Db6Nxv(o??9ymPUfKOn0 z*}{a4C}dLDjXD$5obY@DTu6wEC1PVDm;iqtrMrxqH@T*Ia{Dtrjze&y` zQN(|r<0N=ku=#uII0?ReSuY8G{;54*UOxX{fA~2NI{x0PCoaEsa@W?CT(2_Yj-z2K zG{|VnOoZSI7qqTi*6YA=2##Q#kro5Nby}I&WzHOj;7E)~@RX!PR+|e#$C0Op1Y4l_ zbvsUi8-0B^ea4gr1c&DTKF1NkAvl7__ttSla0q_Snju7R2>#x=BmaEm^>6? zAvmTPV70j*bR6~O&>S&+x{l*KA{D!O={$McXoVp#n+K7U7)zui$B$x9Q8-sgOHCv) zGg1gnQL?kr2#h=`RY1A6Y|c!&TdIYi$|cZG z%P9&s{cx_Ll*$OsRRTO!M7WnKKEOLY#FQ5kTAC7DYfEj;jvcJ9t?8)RI^4c{-NJ)+ zY&f<5?sv}~{_4Y*k)`~ffBpQMzkK!0U%&c~KYsq_-+uhNU%dUxE3f?Q^4Ygveg+Mp zd+**bZ$HuBaR*K(q=@BW+62DEsvn(I~ET|@+`iIAe8 zk3wrxRbO}W;^E$zLx~ac$=ZgM)H?KT;_bsoT zcZBn49EMC>JpTJn-~4}n{KeG>4#B_qvjfNHWrPR&DZorQjtCCH2YOp?T(^AXvIRr) zM}s&_7sm0Pw#wX$Xp@gSA~*zhSImv$BseNk5W%5YdTNRT$F271?}UzLXJ?bdonrGM=KA(btdDC{?;L#m>tl= z-90HGp{c%{K<`uG9hsY*%+8=Kg~J_nY{RYGVaGQyy6Bm7lrB3P@8_SGi` z`lp9j@?yeEQ{o59Q`WQ>ZClv5du`vr+gCpK;4PoLdi3|7Ui`oR_S0|v_isk|+h|Ju z)u*q0{=thMzxCYfr;ogR^5FW#U2#@@n4i+@DMnoep_54n9?g%5LXx5*ZeG9UfxB)Z z?z(*qST@vb&`aeK5pK0ACrf}jKE}LaQ5UgnxPw?Yzk@*g7t!9<)Ywo{T~!ujHF;`1 zob9b?;|{XOV9?rZX+=f3rKJT#NpV4LPNuJq-W8*VM&L}qL4op+Z@b0t7>okb>(oX+ zZ|n?T&#`R0CMqf_I5?OFBhz$L7?~3k6ofHoxQiBK@dUmHo*Fge;d*Y~foo+`5S-wb zWuvF$c%psDvM<;>TCk_I;G0aiE9AuY-|_Bwu}kZ1H}zHST;9HK^TMNdt$*>zJ)d7X z@gM*E;Wz*O3xcmX+3`2dJazi1eM9Y)Gv&Ciw>%eD2K|kbalEpk1VIaFEChE`NL;RU zl{1@;li-M^Y&6TpYe;atUe9w1V(1xZZdW{t9mn|qsXY{$oZ~nca2&7CFFQTQ?LtRl zXKBF>(qbRPr{pgitIdURA!h8$$?t#)a}vj!vqCA9ZylEru%H0U<4Z~ z7C31^{Vy@Rpc4gj!|?O+L^F`uO~w;2E1g{lwOC4c%N2yLyOIb)zr7LS{0(Wr=G^G8 zj=ZRW(xgQ-nK!f*BAVYi-0<-Bm9L$624*5@qnFSCbote1&K!OC?k%gc zVl7rL8KIX;2~Vk*;9N!FB8m$Sxnb#|9a~ot+cqr$gWXjjR=wF@RhXZ|7na<(Gt}2e z3=gyuNK_hYii`8pEoP%yh4L%=h5dyYN@hkFtW zf2LgEnH`Z>>ODRE{rtFMgd18|Hn@kp8`a;i8xefM3t|n{n@pzA(9oEe7`_~hiU=pL zaZFH+mu6cgY+>Y22afY5ab6%ekLEYT1^Z}J@njr_;8Y#YJB!99RGUI`-dSM*uSJgM z=cJP6LdSc$8sKKJ&j`ke~j$?K# z(wv24ZGr*=@hUjMvn^9}+-i^7oIY~{jY1|PARWQmo{ZxZ!O_@Nke5s3<=CJ(qB-xZ zu)vOIrp1xwLdP+%6OQAu)0Up1S1aA6uGi^!Wr9Cxj*NvgXUBj0$x8&(CJ@0P_=V>l zJ-l~keNkGJNpqc!H`dMDuy%O$ihc)0VT&-4<=0eA@aSG*Z3wt=Oz?lj6j^Qog`jERda=e~U;B9k4!i8}! zGFrsw9zvyb$M_ChLS$v66KL{+@>tKE9eK;bLV%wqs?ac86GM`ThPo1>wYidLs;f*% zh}LV|(e)H#WMr-)u4!?@u$mDxGR#A96`h-m2++uhaHEcx7iX$S3$4$I=_*TaD@tC| zSNqDby&qqA`qv-4^u?tYh!0*pMO-*>;O+Czyl`Z1Ut?uPbZ~r-F;K50gt-b2M?y#6 zh~S_FeZ9ABT0yK^-cNA$jn*7upu36aZmT7_+FFYX@^ML}QMwbtBgUT^%kHJuppkA~ zK@O8`%ZQ1MG?|UgE+Rts2@2QnmN`Yi85-w%G??=xBFAyA4#YJd?!_mLlQ)|7asFm) zgay1PB`sEq8FC^SXGOVyUfkFSc7~rmZdd2Tac{j2?+cH{7uGWT{ats>?wFW@*s{;w_ z73EWkI)IUF_}fMK|LkM z*DUQNrsOyxI0VOFS7vS=eOkc-vgy#N7UM5^=9#?piK%oHyv8fMyW_GXv#hB~@3< ztFJ94I9EX&C(4WS6Jo+K&=J)v7>x_ld5&`Qk0G>j3Bi-X8CB9CZxyCLB**h({I@La zeDa>nmrfl(949WF+E1XG@YUxJLGXRMHn&#TFl#gCJlGB)Yy;vRHJF_#DK@6Rt8@8K zJF#Sb3$dWLf#~a~9;LIPZ-ma4>Y}`~*a!>HZ;kIUA^dcB4Hr=Nf+|LkpO;PK<=YYx zW354E9+1v8V~z@T6UJ&$>_cKW`{kiMs6iyqw-$mUHAM{@!P>AbyoN<`lgrTb1I@Wd zY^Z&R83ZQW+}zL#ijDBIL?Q@Iu-aU}w~;izPRDUMK?~j)b_y>yQ;u5#yhw8gj$?F8 zX<=?gO1#O}+gq!`l*vCdNA*4}cpBZE8Ynh$R4(EmLxQS$i1-Kd@`#*(Y{C|M*=eAK7{C$=$@6gZB`J9@?>c z+uGiSB1CYb$_Xv^4ji|7>xmGHnMjU{t*fk9ws3edj@MPrBM`wMI4-j$<2WKFfuxmi z;J8ZdPS`zm^uOBvdy8YWD0Aw#udgp@KF)CjcC;p;WfHwzXo;{d+;qvKCUB-8xQ2ua zG`j?Dk=_vK>P2ub7j8k#Oiv>+(ozZhiSHBgB0fX$IZIgJ$MC^NI)?8Jegdtvxv9Ca zp{b#sCq3)xXdrsp>YHjxD~ogUGLzyWtR^3=r<*IGkvkjIaw6_sW_0>d6V=ck`lK8#z(GV7J=wvb(T2Ji# zE3)u(T5@u26R_oE6a1S9srH3>`(bN%QH4UG)oQuzF~q*a+Lt){VqXz!H!GTrLYodP z7W*RHd0vC&MKpmTOxpW|1lgO?gLw@XFv0SKWh8CEl%1qGJ=Lyw1n&{2Kj<4tV49x^ zAP*s|_F8p5RS6yE7Sx$?9I**k)@U+A@A8tO!kQ}7AdXJ#$Br*q&_fLNpjUNmb8T5^ zUItNQORXx(X{st-)ZMspuw%p0fnB$(z5k9)kKA+Hfd{q|hxYCw4m`Azc>KZbcWhp{ zVyHb8lS&(n26y+#INsOVbj!LMz~Tji#AF<=sVpVn3mNx4aU5SDTG(j2;&HrYt{q3s zBceK@xjmuq7dp-Zg18cfwdDeL;6n8!!BLwZ!)v(8XQmv-r4-UkRJP*lh_0JuCB;I= zJDRHJ<2SE{`xXy&Lv|GKb1B5e)k|*Oc*D-E8~5FH>qB>L*|YPONAJBIg5%G}b2_nxi94U4=QZpv7le0VP(Cto*oO;F#CmF4!Y#_2 zwBRxL6Pb@NGZC&4ewf_1i!&um*fK9aqr5b)wz{~bsj8=|slBnPzq4u4{H~RY=M(s8 zH{$lq>xkXAZ6qK#vFnx__Uzoe|Nc8*`o6oiJaW&iw{Kdpbbd=?MNX8}%j&E2QM-64 z6ogJDBe?snhl_X=dmT=GdP;v=^FVtG=PK<@jYKO_tPzl&6Ev4BZZWkTX8yv&NW%B- zU=0o(8VQjOuysn&t@`2Su z9ZPx}b5kSY!~77w{j_3YN{$B`eXS4mZX-j^vgWWXjjG*j@8<@Gj_Eg_q+8bHTnBWB>DA zxM-kdoa3w#UyzPPc6%B=CCAxcsEx@iFc<_1bNwu7j*CnJ9T0KhkH_$CI4B5@2RlBl zAd+Ctad%gpR^jKPv08kxQ{(2@QY(sb`Z^j3{DL8|cG(cIWzAw@)5;-Y0~?F|!qouJlxh{B_bPIgXho@YA!n<$D*u)w3*}gCz z1Wj!xeD4m{AbQbZBUWE^+Fvq#2h{?D>Gco*0WdQpBb7kD?gz<2Rj zp=-Vi!Ah<>M88(TQ==iYYBj-kab=RQ=Lrk$pdfhhu@!t695fFJ@8aFSPgoFP!4@Jf zJ$(YU^fV#{&2%GpYds141P{Se$+40=VG9@Ju3|#w;!1E0-&n!H4?);x%NM>KJ_uvS zMNs0$TxUVB;s3!a*m3S<=q8sF3PA@%ZWLg-_=9qwHs9soF!CqH8=OpmcLTp;PT(gJ z3ABh!fMcslA-ChEQe5Rn#~pk$Km5DcaW;|V;x)no%Qcw?^V1z1t?P6gc@n{nqeW~2 zYBvR87hEoNb|HRr+`&il!@r9KoQ1+&0-vca-*tRE{l tyU6~YYy4`Dy)y~-DjEBUDtl%kTqAsg{6(M4f#S#Tv!+zwr~kkU{~xVR{jdN4 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00091.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00091.bmp new file mode 100644 index 0000000000000000000000000000000000000000..055561b9c3b3eca7838d6c4f990bf66a5e9a82bb GIT binary patch literal 37138 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 J7XP6h`hOo;en9{L literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00092.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00092.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ddcefbb0b71973be2f88a02b4979d32ba79bd269 GIT binary patch literal 37138 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 T$KZm^o&O}0>b+mxcfa^DiZusC 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 Q6HnwJ{_X|}_xoV~7j#XyH2?qr literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00094.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00094.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e82c8a84b5c61cb3efd421c1a46a98747929aa80 GIT binary patch literal 37138 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 R!cw-+Ql2Ax=l?e!`M*#-YCQk| literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00095.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00095.bmp new file mode 100644 index 0000000000000000000000000000000000000000..063df772240498c1b5e3db03f8039d50e0fa5875 GIT binary patch literal 37138 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 OOZdorec)qw@&5FYzPT~aF@Wc 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 D+eWu# literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00099.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00099.bmp new file mode 100644 index 0000000000000000000000000000000000000000..869c490ed73148b358116e0c51b3096f31f04aa0 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00101.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00101.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bbfa857662a308033bb387b16456e4156cc58b76 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00102.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00102.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b0805fb7b0d5a949c1f8fe2656c554886adb4336 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00104.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00104.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4249ddd3c02d40d2e61b3d872f692abd30e13422 GIT binary patch literal 37138 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 L#XgWVc)b4)sDwl) literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00106.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00106.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1bd230072f382df4f160ec6e605242fb02df7d91 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00107.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00107.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6d7ef2400d4df3d68f37cda5ac6a4d2fe9564390 GIT binary patch literal 37138 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 F{}1ZjPpJR^ literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00109.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00109.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9fa6be811844fef73eda72442184f5d6e2c66f86 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00110.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00110.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c5dfe63d1806afdec8d4528fb28cc3e7b6fb2cd0 GIT binary patch literal 37138 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 SQdCj2-zwZYazIfmEdC#-RliXH literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00115.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00115.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f80f752b04f68dcac5b2d5b90c28742d79690ecb GIT binary patch literal 37138 zcmeI52Ygk<^2gJALTI5wLI(p%6%ho~htj1ZA}A;z()=p|0s?{$=}n3t2qL{GpnxLM zJJL%+hlKRrd;Z^ZH+OQmCtgAXeEZ>`1|I7~AR#u9%^Vu)I*6HI32NJ8lv#We@?=Qoxo7byXbVC3BRh#$k z@37*VZ=9RBT(Pa(Yqs`SNp`|LWuykIjfv_vC%Nb;^WRH3zu0l@a}b|7m)RH6Zn@XCC8QAMVitWWkFt^3%gT@v&Vk8Iw2Uo-xXCJ9}G2 zQsr{-Q|58hfYh^|c^t1R&@%Y73jf_{w6_m1!JmcOclJ#D{^ypRU}pZ==1UP zi6%85^{i)1t|}O7Z*8T>+1?Ia-NnJ)&elqi3#V+Y+*}}(aGZP?jZJ2}|f*yiZ1 zg^PHUD(&S{v3%2)8no}wvd=r+hkrCs(XinI6!q=bvty@L&0938TklzKpK^sf-CSH9 z?Rcv;{%eBM!QRov+E!71N?~nfV@|r7;W>78c1})C9Qlzy3%R>{moH!Ux#v2xYxhp? z-X9GcwqW7BHEUPx-1YNsyLT%3W&5^G8`iH{xnlOr8J~|GGvvcT9Xqve^g;u&?ds-a z?_fiI9qp0uHmWM94M>t?-aLC`*d%e8o0}U?P^2Eh(bn4PfkXzJU7Vbp9St>Ss6XRd zbKhWPXMI1}TJvy?>}_ow?d_c%9p$Bx4c>2OYtIuU^Tr21-2ZkqHi}%Goq0Gfr4`H) z8F(N`p2@Jvq!jSsGL!>w00*Ew-CVnM>Ns#fKSe`_eDFqxHbn}%n_^rwLIv-#OOS(bv7e zB$qK>dP;WA2&{3D%t4Tr5i9ej3zn5t!n%0y<^3q%k#-w8q9P)qBEl6>*o3&)h_KL4J|4jnot-F)?$O3q_ZBbu2AQtLaR8g!V7iJG;0U7-#D&hz&Rx59U9n0 z!U)EvPMw;WnMtdg0h~Y00M4Ig0O!wwVO*&VqeqUsee-5^CPmAVxBquzJR?0BKxbv9 zQnifQR0c5DhVsk|J;sBAZ=!KuxOj5k{#`qF{kVC{>eXwO?bx~H=&`*wZ(UX-c#+%F zQqz-@QsUzh5T4MP(`QGF7@=VPP#6bd#fla4_4S=HWy+Z|XTrn7qobo^V`DWaNz%#j zTeq(tJ$7izj~l;UFjvu>SuF8`(85tBo(SHNRt*q@0 z#86tYXt9lJ)@G)rD9QlW21-szG9}bnL?nXp?%lhmPoLhjY16c6)86abw{ypis9+Vn zz0K&A7A?AT>hylUeoK}t*|TTQty{N1AGg!gf*@h;+`2Vu#*8whN-^Fs>tKQ;V9#Y3 zs13xR>R>Q)z%+jG`IX->f%=lzV zY0{)prAovmw@K1Pn~*KR1fdE-__x~2>&@nCw)N>5gl5E~gE6A=_}%m1>UqRSU9 z?f+xnyS?8rR_a5~IUfe&4B|1d(YNp1+P;1J`0?Z0v}seLMh&VQg;Z%_)Qy;Ygi#d+ zS}~Z_ty{Ny_wI`pEeZ$-h>wpKXbTe?9gW3fJ-lN;T{d<@+3cz9Xa(vJ3-F@GAr)uTOWR)zTqM9OF@r67* z73y7_U6n13E6bKH-LprJ?OV4Z?9k=)7*9=M=8=Ik-?w)+Fh`o}TSG9e3Z+@jjHynY zIwwz_M3f805p}?P%9oQ17cNW<%hO=^6M*LvLD*6TR5l3cvf1fqU`iE zRBxtUC@0Xe<=?*1u|tWHUWiVS6!Ka@v;{^k2I(bAlo&8zz@Mj2Q1JqA7#Tyqo;MG0 zfe5)v7_17405~0P`_J1%!52$+YFdh-#3TTiwQc*>HmzErMDai|Zi%vNfuUMh72~W8B!!W1?f3)0k0aT9TsECy)BpsN!g6B^VdR!b>gwWC`P$8L5e= zM-f56_a=WisbVD`Qk_!Y`Zm;`k&9K1n5X@|=T{7PscGo@ITmWc_#eOjUaw9a z@FjN%BN+Fo=so}IdBGt;7BCLL>7DiJ*H!tU;tPgx1bVe9Re<@`s~1sWAw9e_-E>O&Ys)BLGiKjMig3F#+>x#-)pA+qG*4#L*~n z^ZW!c{`T8%pFe*d%Mt)*DvK8M-;HrWB8^|7c<~ME)?r>!gfW2;ZO*J&4z~7+WYmzR z6DG&fq3j)oqqqTu!BLIp7_X@s#ah1l%Kig?0199(AeA93JT!#Cn#d5nBB8X=CQX{) zz@!;5Hz(q@G*D7XiXz5nnl~sY=+jR>_3-e(ge_SW#!A=>eZ_XTzZT%OfyDfQov}gYD+*NjA_~PkMW{KJieSf0ndR2j0XhX z{b0~Q1`lKF=3#DC>kVP~v*}gkVY-)3WCutdJY3O@Yu6@x{(0q!742>86cxgtY)hbH zt`Q!!fmysERD+Y&_Kr^K=w8UPbjcDv70TDBR<&`X=i9V;y;sjShYuYxed<@MSABou z+SQ=IfS9OUJzDf}8LwlbquRD^g~XR|En&#`E3dqA@#00a5tZ~9M~)vodbDK8k}}*2 zwB?M#wdv7NCHEbqABe7k@>Hs1u{pD+$3%x?lZyxsR%40j5zFPR+c#Uaew`T%(-$gC zo+FIp=b_}d+@-=}FfJA?RO~t5I;&T%F}ios1=_$|k<8=`;ypViDk?`)Nla7~=+*nDKK*??Bl4qxZcZ^E7#(cS6j7d+p%+(;s5jTsL#es_+ruz->)PV z`{!+2FJHWXtLt9CU2MLZF%oNJdYU2;-+GK6J$$G^y}B9zjg}{22v7asgAeeV7$Kgb z$2cDRdGqF>h6|zv9dgDL-HO*Yq_nwU9Mu<5PT+CSy*pr>d8R446_3F(IwtDF!Gj(j z#?`!?3^%I(!jgqc38c#p#sT|PKR=HD2*%OJ=Y72(BP&}FohQbb@n}=FN0y`waZ-SB z5RD&45oh=lbA({LOv%z!Dps!jOsyV0dVsReKKpF;?AZiBZQZ){)af%9FJHNK<7U9U zpzz43xP(N+G|oCejoBE3FaBxJO^^nYNp+H#CJPu}wscAPvSsqbI9&?gAZA|+7>|sM z?A^OJUME5Hqr$jy*tc!-+KuaeV4UboJ;o_;R(9shSu-9V#xb1(b9|*g|MW|CW_CL9 zL^*DHOLBbck3S9@GUU*K1OEudJ9O-H=G^(rY)cp?u6x|rQI#r|e`FBP!^6Tbft)Jj z;i4L|Liy5_eag0P({j{^;j6!2wqyI2qlfke2i;X9{ZIt4cwvN*pCsr-oRBiA3IjCo zH=Q|qx^jk93lr2|k$Ik8O^4QiDiAN!kZe<{XLC|N=qXgPGuFNSP)hM!F zgn=>>Rr2xPzV#=DB&{narz%QKNmG=TL0m@Wp1pgYty71WSle>3&zuK2(9YD=_G7e{BYp5>!@^0-9GDeXm`-CbSVwr-89St(1*zsyMa895>d@7%pT z{G(yTix%ZZQ_p!GFU!{{$&oP5PPC%7nhXO1qXwPo#L)wHZu+Mr#$=@8GbHphonS;o z(kudGscB*4r~F`?QgYeYabxiBfN_mtsPvTh#5iKY!egUClbF35=#gVQGAd%}w@a$msHTj|9CZ-4dB(T;;UfnytP9Nb z7$+dIe*OBCS<3bQ1LH_=08S*h7ABUJrLAeoha8_heNLqcl`+47@h)$4y?XiDlf-y! zU*FZMRx!~8RKK)2x(3_^XH$0385{EbjcgR4?dd<0s4#910^C zm!Tpj&VxvIqpkwRt5m6yC&o3+!9WkL9itEzX%3@Sv{v-4Ai9bg?m3FCLezRjR@RYY z$DXUJ?cijSS44soM|2gLi6K9z`L}!Z5M717sumQpLUPRL(YJ2g0NsjAhRK|G2&#qN zkM}q{B7|7X@e{^+m-Q*+%92P{N!fMl)IB5+DV40~@#!iQ9IFJauz2A@!bx$rNS+1b zDe(y`Na0UF%_JrwGTam!r%#<~P_G_Kil}xvcYfL{uWO{HRUi+Ov~FEH;>SaLKLLz0 z)Z(U8I@<5Q{l;2(08Ug4WC7!%t60D|x{C7tNC8ET|6jy70Ea49sxoiR97G|qLGYr- zH~?p|!WvXuY$Hc~QrxQu0C%({F#L&P9C=A_DlymqoF+z+NuCAcsR@bM8JS`Cf>2Qe z-HK6*;dcJ=3wjPBkEo8k@SC4=0s(Raz%iH{KC}-xf`EPk7^mnVK|yCvpPoK-Dn-$H ztgZEZ0B0JcOETxQfbp9*Z=$Q@Ip_Sph;igN0AKL+LY89E_)O6SFM5n4!4<%V4Ik|8 z;bLpYltOd%KVghxR30^I6syIN-~gNeN6E8b940L>$^YV|x%1{6I(!hVJQwLHDRgDZ z%Wet;jAG@>51#Y7MkegkBJ1NVO`5Gag>Kn{G8 z#6>8c6}uGu`0?Y*mMvo$K=ta?F@vcjdCWz&HviSg)IQE?du)fY7FN2WFxU<}U6)n@ed2<5$$b(j{``1bFC$>`T1Ixc%TF9MPFcui+(Nm>> zqN~UXETVUbhU?$=U9Y0W>Ey)<7j4?O$&y9iB*kl61(=b^T0T~A#E~C@7+7zG=~N$@ zOKtS;-yaXKm|eLANps=Cg(fdHC7W7KjTJ7HAPku?BdHcSU$~G5<)z@=yLMs8AdZmq z^h7gCW6uKvCB#HuyK?!1_us4JU9nHE-YopdVEJPLqkFD>@z%|&U(cVd1+myz6Y|8v zmAc4LvMP*Z)r65BQT<+P`TB|DCkuvgx|||S_fW)Aw&Y~$8${o`cMoG8D*-ld-i%3o z=+L2WyzvHWf^Z?3E@vlS{Hc;aKyoM;XUIW7utdxP# zR7GIvF^(I6iNV;vDB}xq&JTy2kC_5tyn9J;hh4YB6$&<#H zD&fV$fq6kOPD~)X53o4AU>Ik*s0fR#B37WVfRknDNa{|VI<;ug0_A}?6Wq_#J#kfl zMTG*W7%L^mLA^>AFiz|B?Aa4Prv;1?#DNMzwzgZQ%G5?_le9Gj119POgU>q+Sgft&L@>5`rG=E5pi*RJ=?&=@b z;ExoHi?)kFJUKZQ6$K_TGB_$K1oaBz?EbxbcmMh;;ke%{TEt|3(7=IjcJKar%a+ZW zHf6^b)G?I=WiosSe$^Qk)e=NFa^y(nCu~1LeE)r+u*RWN1Uh%Iu7E`@h*4Tq(};{F zAYp(%g9mZkw6@YNWKvPHR`m4nz|M~;(-boD5~*@I zW6X#4KNH=-g9oE{pxY|Uu358&1)sUs=rGPtbb_&C$KJVfhqgi;5@-uUv(xyC7cchl z@lo$JZ4Jen=2r2NLt*4DX#{%Am@#7jl)yxwEew0GO#Wh`5;_Xzxy8|OdW@r`CdS6> z+`jGhjav-dD5n-MPEOFlQ3wgD;8E14RJiU{Ot&8w#sN4~vs#TMix&Z5%NPgX2lxK* zLWBCHiWdXp+Af6JB(LV&*!T@l73JeTHt6|#!G9zde#w^eLsZVmTGy+TX z_U_%wDjN$JzjfpK>n;C9Qxr^&C&k4w|76;knMTkTn=-KK@Gs>!^+qwLPoK`%M*b=3 zKZ0@U2W&1~yaaTEarWM_Aji*~Jkg^|XLnrc=+}nLWTkrPD9l2bf~;G+iq=%pT#0g= zv&23fIdt&N?%k+cq`5#s3Gu&><8l?Ish_w1!lpjrRTZhk_!t%v+~@6HJXMjMmAx6s zb8?wnlo~nX+?&N}D&n+k`H~-e`2O9%n@K5giV)@K(Uvi8XX~hF)W|VWkw76PE-8l+ zQsNYeqP1!B`seD@V%J%PXh4^%%^CA0&=%B-Z;io8h?q5^L>7KMA2H3=JF>)BB3Cg4 zV;;ky$F4$*H1sXw8* zirA-$eUd#3I~mjygT|Sos^lsw($O{e=UC>-mMOPz!6G&w)MFg&l5GxOc)sDI!nmuO z3oj-nuXWp&r%oS>jgKrC#v48V;>HbI*t5+7#;MeK^JiDDQKg7yAvS9TVg=c-a%k4I24Stf%lN1gU+7&GcqcSyMVc1JRtBI zTd?`os_gFR!REg?NH@S-Dm*WY7b{wP)X33cq2YRrKXN(F%Kl=-iw+q&_~7BaaS2iJ ziO~haxV@dz>#wyrbnvJJjI%Q>Rl98Yl1e__z`Vd12jHVV{q*|Pt4MGF&Jqqi#*yGx z{rs4Cqk}26L8@E?-=o4fa5{hC94qQTx1Bv(3gII82QW@?n2HS@JeVzU=-=pv7BCK4 z=gymj-xX*BaI$Lw;~>)e<>*?ivDgg6*V;qtGa*J0E9X!m= zt<)bwq39}VTwcF+O{>>hvWVD~y-gil9c++^wyY#nq@2wvra~!4XwB$`*aevdVNj;E z$qTWvta4<5%z}kqv)`6LTbTUlDzY6b4eRRS@m{|H=P#d4%}kC@j*U%>Rz%NNBuWe6 zB`-H`R;E-*R5`V#l)R}VeO>^l7zSdni3D%atQk85hXx1ZvNM5pPM8e4%;8_h_eeVr z9yEx7Tc9lr4kl+qT5=7_@$7h=ayQ`4 zoD1#hL8{8_$i*=}9B_+7qCCFGEC3qifE^4sp6FEnn*=M@~RZJccF zob8y}r!97}%u#tEpe2?Vzj3w%-wvfr{AO`nh^_P@o0oDxW}3W!rF+ zXHzWHmC>U2>>xG?G^R5J`vVq0Rb z62&`p?l^1qOau_E#84~H7UrQa?&9pOVE*RY-7j1@Cjf`hW1Re7^Y@$Z`M4KfXjHC@ zwmXp|!MLd2v?N3`R`T&-Q32~(0XRa+peaiPSPld5@qgXCe*NQ*KBC$4#5gB;BQ_|4 zs%rcCvRzlDDphLw`qr&qf62Gs28V{Slqo+L5040ALGbWqo!BkA{OMhk9S2bt5LHm7#}-sw4eVa8dNYY z-*E^E4W7U7>*lYtAZLnjz_6zYc%%3Vds=_Z(Z^NSt>s&L;i3h=oK_Qz18`uDG>2g~ z*Ms}_O`kHOZ|{DrvSPCXMFMTM2~@;;m^xz3dg-N?*!hjkC=VVwaO386bRjiPFjNS% zg?T89J3H}F2My+Ko-Q4`b~tckpTJy?as2DR93A82@ndsm&+68tGu=)l!8jYlDFWK< z+O+xflTUB}pn)J*4H8@%i+P9{5j1(^&>=Q3P-ax3heUh}!+;LP*=KR>>ecK3e&QH* z@1v(qpT2ncGVu=BI@*?XAbN?c=*r}MQhitWn#hPS=nm%I>0a6x9{Dvhx|jtzFxU>iO>!D zH^W$dFwRE`&YeHK`}bY@cK_b5cOOR^zRhAT#}y7yDK>A}aQ?y>zQw>@48}~11>j~lIM;)Jn^=FFS1a@DeJKX18o zwcDDr-}p@gVW=NP82J=Q#E~#ypjoqKJdIZ)wug ze#qc~sJSdUQzWIJ#wgvOL4(*EN833kF%bl+WPEUL_yWJ0C3+j(j%Kas?X8+ant1dl zY(v~|JoX_zxFU65FpMj&7f7#CsUoZYcmKKz6srZLf=$6VXE2NaG*vpHYcL2X!uf)g z&hQhEO5#sF#(@Abi+iylTsU`*iKwbh-v0P7PK5^t-rlfw6#yqFn=#VZTzUNe6yp!V zI5niy=Z+mavIoy4#v`2^M-XGLK$>H|R7Ov6zQ~40fEs9LWUGewH{t6%TN|X~QD!p$J;rgDA>vs>%|5hrd(bL-GyrgB zcZR_w28`1c^cY8JVF&X+PoA7VcP?{LbQ>f%ug2~5_%MF^hX1_T)2mjhfQ+MckWG1D z+j#0J#{UB2BGOe2apVkpQxfvAX6f*No>8DN{$EeMSj7p9^uH0q(i6V&#Y?wyoe0nB2JS+t_U1mmd zd>lvz?_A6++Fk+%|8!7b0OoJL$hY=WrSFLZkuN~UwOYHd}>)5F`R0@I!E zRxDq?Vcmv}>lMK(k~6|=-mpf|Cm#)YpZ{)~;WBAMrsY03bym)Qg-eTDN|!A{5I9CV8na%a?uAxl?=MWOKsWaSj?2 zMjv-ItfC2TSO*{D%`r;^suK%7Ssj3Y0YnUXvU7i#!?gSUG1 zT(o#0GkQ!SU>sGBl<_P67mgl3IBoir_xty4*1QRU`|4Yl%09$* zJ3GA5RuSK-YTA@Q=G;OX3$NL({wfKyg`seY_$C#b7y)*^-SfxqyRTpM2k#)4csSH* zrF96*0k|SfT|tN&KJ5m;(eZcf_+{Rl*?h5+otD&+abWW+~b{`-rCi{@|t`6u>QK78bW-<1oB zP8>h1XwACs7c81P`QH=Tb!gS#`8v4mot*8}b6_0kt#(%UvXo^LUJ=zv(6^M>l=&-w zb6%h=3_g2|;F$7J)s-fLW!$%B4Wi-(4ID6L^e8@4w|V16c7Vn{fa69{z^$A9xV2B6 z-1F8`K4*pYW#&-7$l?WLxsA3Ql1W80zyE;$Iiz zwVV-#Hd5r_>Ilr8O?K~>SLhkRxO%$=QgL+~!zoljEFZaD0i2_X5hCY`J>&`BKhe7OimSvp|OZDJ!?#uN)^?4_E|*; zJ4JX>6zTJ*Kl6Z${EeUGT`15h)vR7!QLEQpQ-pr42t7oR8D8>yzdTu(g4MMCF6pwu z=rf?dOMi_toG=n=mdofgF8y=#XDmQle#+x6<0vbc*I!exGx9)T^7|ZfjO*`{N9vjX zG>jvaRMKZv#IgMJ6yy4~Ha#Oiw!oNPuXw3mVf5D&?2J56nEXD+9OKgRBDwU+srU^4 z(=aZD#uB0k#Y2%~6%9m@lvM80Gg1k{NCgX{ze|5cE*3__w=ns+OMi`sZ((x9x0P|n z&8KqQsL|zUVmbAwZ&eY6dPXj`!06lO@tqMw>lw*>e%>y{k&6YS!pKh+7`a#&fwnOE m+vQ?m^w$Wqg?UsM*S|}DM(Rfx$*M5=y9#zj9w>~J)&Byav>kT< literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00116.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00116.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8f5ccf50a4b9dbf682b3b1302d3f1cf37098cb2d GIT binary patch literal 37138 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 QjPYA{c1CZgjDy4f0c^@prT_o{ literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00117.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00117.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4c10e961d2084d8fff34e23f21a54df90708830b GIT binary patch literal 37138 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 D##_C( literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00119.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00119.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b5598268af57a82f7c88ec2c5317430934c26058 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00121.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00121.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7f6bbc0c8c940bd42641f254b2eb277c74c77b91 GIT binary patch literal 37138 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 ATmS$7 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00122.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00122.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e672aba1b51fd4e2e7258e5735ee0801145fbd35 GIT binary patch literal 37138 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 n+IvDNhx2;}1Ct2Vh7SZRVPFQVg-vWOHM0rOb literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00123.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00123.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8c2c2b44768ba81350de62d39bcea7bb9beebd67 GIT binary patch literal 37138 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%0A&!hBDU8Qh+?D2H?14Nh}WWpgA&+hls%wtE8Vj z%e;eoKpwBTO{U1Q)`oCvgzz!c`USwL?O3-cG*9V4;v|BEf0*-UQ7o!1j|iXYN9SR5 zYxQq5j2a;*W1%J=QK>LYmM4Aasc7UP_XkIW2wm(Z*j{yps1|rsprFqxGsif#%-}Sy z%;J!mb9Lf1_#!%nX$hf`*lBZwb!Dit3*!K;$eRKb!cw7^6%=!k`NqBf=)5y53l9D7*0Nrs;|dofNY02c-E z;QC_F2tiOVZl}R6ScRirQtj_3tN_LxsG;Dj&4KVKJPkiDNGYZTD?V3+H zKCrTFZ$6p4Ry8$Tv{=h3u`9HfCE%)t0XAP7jE|Vg#Iu<;HG*-f8s(bMS|h-j zCRUMm5~X65=CDS^Do|O)%xa;lk38h6^0?WISI>UcT{AxL|M!{w~`pA27uf3 z_vTRYR#an!Y~Cv6 z7wU_}dN~+3>KFh&nO0)O44_vfVrNchD~Bab==C43j9T1kjU~!>6qYq-Ow}qTtdjaj znzJ>}vTM#3j05;yd+lXkNzVfdIE=KN2iJqni8{|y+7?E9t|Z1Cb@zr86!XaCtkX?V zo}S9_#~=TK7rbENXn8#%LCf=jS*dPHZ0b+eyrPFKdUz3eD)#gSonP))h-cJj^D5XH`i`QDPmFl$5(_Z#X_<6FT-wgmu+J>~xS3cU zBO*f3oWb!Alj=3U9^%wARYj_~c_GaQ>w%|AUA5iww5L7IY+9WjC5up51&~cP#-jQA ziBEiDElSIw=Ml}JbA@VRw!ZXE=Ehvmkn*WB!o_;ld*K~3v_$R+%9yrFE|u{#LPEw& zB+;>9!vLmlQ-e#(`&II$QF@kX|)s1!|>J%80wzAUX63W`#eXT_zBE$+{ zyk-l41#sHZCmM$6Aby7Bf@q3*jAJiBU{mQkZRy|a~;4BF7i$Rjz-bwMslJu3cT^tkbs?S-StLohNwuWn!2}DeMwFSzJ zMtbxK0Sohq+5+fqS3SeAs@<85Yq-_B<8iokQt%ofas7G4^nm4Dv zr?e$EGqPEYyLS*1%=->wI*iBmkmWFm9kUoO1R+AavawJ1kZEXndrVHqnHGmP_$;|b zFACXZx7d>_FilsXdzDx^M2$(_oK;BolR~f~(N)`n(QSgzG9h^#K>~B?#U3GQqg4*U z=y88P2N~%TY^VQfu-Y?-eFg~`-kSXvVjDGr@$k_Kv7C(dBOdVxMjnKAZr1$j8Z#xQ zA`ubJEirS9_eE$aYYVF;&K{>z;*;pCQ8vk?$UNe~@bMywz{w2?ujw;Sd9BI(1T)-B zAw3um5k5m^H>;Z5`;l6#SZf&4B;>pyZI9fGwBAFNrE$jjC#_bxd6>P|MCdW&J4(<30&uScna@Lxj(eygd4SB3M;@s&Ykt=(t870yH^IF9%3%qIV7wo@#hewK znlal~az@S2%9*UOwZumc8Y&hOtr@r#KTba1eUBQ07_Z5i6fM%p;oK4|0N@sQ{7vx= z=a$ervt4sW1ktu^YGF)mT1C}#O3>;@Y`jAF& ze_|4bBSc@8hP%^GjvB{;w}==aI29S^eneWnQW((YRYv&alIAd}PYDaT`%-Bk{asZY zBFL3`dBWV;sO0L*MQzeFj(HF%+k4W_`#* z9#T#YJfmvN5`$YdTbW55rgKB!W3j?x;ZP-fS|Xh12`FZ>XcU6(iZFau7$;2>@27Eu zB@+NAbb5@lhh>2nEv*mSLeLx@om2GkP6ZFKV(jtvW|;eyOSxG$0=VreK(0V2_K7St z49JY-p=1ogISkvHv6N{ji%%5Rzf==uE#G)9F2s|B{~zw-7vh@4@7jV(KGN_yz#^>f)Mj^=JEp~ zE|apy!*GPC;iZTDIFN>GNGq$D`*f)!1~^dT)seopr99CRv8ForYi~LZVa6?6O+cyc z(FCb8SgTa{LTaZAqyYT%7%3iSrQ%r{_FDnnzE*f?{pXJ$Kp^HVAf+Aw(*0>*xiS1x z^Y<9n2@=_|R#-AapQW#0F7%Tlgiv0Xj%CHtt~B*Y@hW8opLGeeMcMk(4-Im5l@=Pb z%JdkoDUaIzeucQ(D|#asxA$nG^fPnwl7aHl?Du!Pb=W(j|Ln&fL6FqM$+snX;L8HVBePViyGY^x% zCRgh~fZu@`!8rYyN|(ys%FM1?w@zk;@&=z7yozbGij}+f{+U7|vs>DAAc8^cM#V z-;tqTJqZ_#U^|236ZTZ`INheiI5ngOEbuB2()OUEMEET1>um@A7+gqW%B%w5Wc3q! zdZDDtcUl{9Kklg_8L58@i~w#gkCUt7<)bQ$1Hw4O8Z8lwgQT{zzd6;k(T90jfdD7d zA%!XL{&HP(4kn2pQBfmib5Ga4lV~LY=*{6C#$%We((+~>>R^Bk9sy32m8q;^#*_#0 zGbwg(s(^nL6VvN{Vlx?2zpqino2ZnxYw; z$*NRB$r@o8x;Yzx zqWHHuZBbdP7-y&jFs@plDjg*hWmL{Cpa>Gdr;4enJZ4w1@f9IJhJsp*)zv%>Cc>dF ze({TTE^KNEWBQktfpM*YvP6!iB9VhXD*}V9@~NQ}xsaP0U(wtLku*+f6iT!$QTh;W|!5ekaXRxw_EH_<`U`SHH-7*z;q`gR`CR-}0u zF7!O2=8-}HAcJ!ilB)man?NG`%i1>+R1LN^2p)q1aB9)oFJ=@0C6r<;vtL92k;pJOuB3Qk1v3wVl2 zP2H)=(nyw|iu}f+rMvf7u`qEs#4I5uCCz^~4h(eB#rpN@ufrH+wQTcdsD3*gnFeiNWu6X2Tu)?nB zFb_9sOkX_iK?-*eAB@LiJRKMn3}(-f%)?4YIsI*U2J%kU2xdg?-Gci>Sgyi-a3WlZ zMXn4GkHEKLLW>GrF{g-6YmB}i^!Qwyo5u+aDNx`>b8_W*_JFl)K=*lv8Rc?N-VvpQdgh)m?Ju7!bN0G zWD3_*G$=Oyy|BQV6ZOM}QZ>s)pyY0F6GY>xPlC770 ze6t&Fe(1&5y4!Z!ZFunh`)_r({r6vc`Ekdsv-7%Vues%ZM^CX$Su4~cv1oy7h6S$G zDf4T0*sR$pYcyqkoG1QNqs|)t(v*l;yD7OR?aDoi#6Oz_(uX1D*MdCWf%uxi%ltS` z{HZzVlXgv9jYWnFWr6fzi1|s*ypWQ-F4S3#n)PEt?OR*x*Kk|;f-!|qwTia?(TQL`-2|zp#N^l zGn?|LM?LC(_q*R+?|RoAcieHyEw^+(4tQdML&=SZ=o6x3jrp0UgdymWr#9MXqiwg{ z_MZ2==c6C}=;uHG`LBE3>y|HHe&UHIp4ya;H|5o@e)UUV`qF1S;~9JHwbu?i>~P~7 z-ORJ#i#sax{93l)cAw6HmBqE|7UuT_lQq$%@vG&*b(IcE` zo0>ThBhu+SQZx3~h}C-Cwd=0C?%$LrKJkgLaFd(dB>fq#9N?YreCJ0#@{xxhe)v1y z@s7`b{_{Wk+0TCUt6yDu>7{>b${(BZ=Rg1Xcfb4H#TQ?E{`u#B<};rGs{;-=;J)|0 z?=5a|i!wI05fObtMCdp~o(d$PiJ(3A+!JQs^Pcy7^PAuN{`bHC%U}NTFMs*VUpuAI z{mOr};HN+R>DgzW{pBxz`N$)WeB9$6XQZyb{`!T5Iq6&g_nGm{os3@~rHV(`0X>d2 za!<@sH6D-XEBUUywkd2LoFgJcWL^LI*XLB!N7kH(D24-98vb)9q7jxj9eCh@|KF6~ z|Ni&j@UVwHES(7~4|u=>-1DhVed;^k`3|J~<~P5&?6S*1;)*M-fEsXakp0I12=LwG z(x3kHr^_$D+-*32?|a|-+~+>``q#hy5s!GpO>cVBh=@KR=G3P4Q=4zTxgq$>RFcz zyZ62CeK^!`Z^X|2Z;be+H@#_t4K^4P<0JYkUAk0no^#GQoKr+0kA#S7FY8QGVXUcfb2x!SI~a=)1X#as5Cko%!~+za3auLSdUf{NWFQNr<{S z{27>pzzV}+`@s)>P%vPvSK5vAPoK&w>-2e*>s{}9x4!kQMNns+dFF3_`&*o&VbGeI z(v~t^wbL7UDmohhICunqaoWE7?rS+RtIk(1#yJne>kV&s!>@n+>uT&G#;0MxiI+We zxUPtLgmAlx*}TgCHKn<7abOYxtHQYPg#QH>TyX5M$8Np#*6k(PN+b_bFwUDB zCB$BI(M7lkkiak+2Cbs#Ndy)>`bauMUxFz9w~T$oEjR8!uH6)QM;4nice zY}qm^$=f%DU8|^c$qny%*So&*m9PBb7r%gL2m+J9EwYGs%Uj;U7vJCpHy9^2G#Ugp z@FiU%$TdpJeTQMNS>XYRLKJG8aKZ@>e(;0ua+kYowbfSt-V|#j6Z$Q0dCP}B^r0_* z`OBqSF1+wUdK%@XoEnJX970=!TX(wCos2V@nC^SQ?h-j~eB&E`_`@Im;0Hf2II6HD zR``b@f>7e9Dwg~4kAM85rqC+W#!O>A(h*_?c_EhPPRducrIaAD*iAQKSmEMKoX4rp zG6gDF4?^f)rHnbEKz&U&0RU4Nj!lby^z)zp{G^jkk`PO~#!;j19t=j}@#qryjDe&IWI+8Rn!QyrOk~4W6o&Sc4a1*5PHTL zXULKQveMfd>diD;Y_Wxvup-r31%FForij7O)HcE}yw|<%wfEk8@79#8&!cmfXiF#P zw9`&w8OrnE5fNg#S*r!(fN{6!@}Ety{;Z%k(nF-1jC;K=W!toPH@U1k-tmrnUb|i0 zR*z9L4#tf}nZJiW{NWaLWLAC-48a66%8U7|lJTr>)wluSlP=O!9Hj}Mi}3=!jNM}% z^O*J4TaQ))x))AmF+cjzkMf4>R6XXiYdj0ZgAYE~DzUW1wj3@(O%*doY3OSaG#AM} z;R#Ow;R=DmxlPo-k{N|ck92zjL(OLsMkBG^uKV2QKAc@!XCsLtkxwutMw*XFt#3!_ z+g~HyGE&?H+89=d($=}?)rWCSZfk`Wg}&`=Z)>+S`UK;rpMJW@wf$h(is{m>_SL!2 z7*ML6SBY5W5x#xl3txEBlb%FPW{$KF5tW({-Aiit^n2g?-m=v=*JNGIjnI#M>|>j5 zx@p%=o^5l!+0AbD&Ud~uV)_Fnqd1bcXaQJd#y$MHD`H#>ff* zm;~*#(@wDIsZ15&)=LP?EDPE_k2d9S1C8)C1~d%M+^mBXv+P&D`c;EZ^P^#i*k|Gx z@2Z*_PD^LCTN*W@*!$oAe*I4WJe3BnGJ)kx80T9*@PQB9_O`cWMRFp%O+U@aPAT4eO0BNfPI#?OKc|1f!m=CySYuW*fQ{EbwudKkPjl1ya5|I_)@W0z^vkjOR zC@Q9kwnez4Uhu1za7ZW>ZoS0BG0rR!%IBVYZmG(=BYOH8aMe8%jK{miOwB(q#!o)^ zWLqAB6SJ^hvVRq=L!|do6QX-bh7Wcuz)Tx#+%|c718gNp@@$(3XRi6Y^UlLz0OQtd z!XC1W;5NW944*C$alyD6FgNThFG+-vs2alJlO|y97(?&q4BIv_af}~y&_UK|G~vNH zfUFK;l23T?i(gzZY@KIlZlC?%v}~r1l3=k@Q>(RZCk$Ymi^S7u z8Nn|&=%Vi9)(|*XN^f>u$G9WS(F3NRVT?--IP=w>@VXMha1}A0$w`jh)~;QiMT~c? zJzdkqIE+{m?y<)nJor4ec+-c$xZdDWoeYrB0u#LT)PkpMBO$FgnlPESW$AQ*$ z`q13Hbm>w#O&(wB-ici2>R$7j*L>(h9|Gske)h8t0a>=|a|W)$u0^C}-L_gxa`(M) z8M#J`V?^D@!$*+*-uJ#&YP$`J37Kk%LF{l-E$7Tb5gLMG6tMDKeHgD^;8biRIgY@d z1J-C`+%9Wd=Y_;LhbKWt)fg&7ln0nP0XeD8YVj#w!*U#Ym88Bh4$b>eV{cRL)d&y? z*qOFSIOUX63dMrKI_BZidapcPnV&7i4`p5T2p%vk>$cVI+)SI+I@bB#;a(M}*j3Yz ziDSIXA{l8m(kN|-@*%X2dItLH!#EGl4sz(!sC-V>n9(N~x2Jm4QAb%W+O*=x=aM5BdtHiF*UY3BX>Ic|#Z7@DyDihCY+SCZfscMvKLYfmIz*)su z1uCnUSuJ$+k%&SPoL?SjJ7a=Bq;O7ry|?|Qo&VGaZeq@MW+STVbk+?X5CdH>a48&M zi9{CYp6reC3`iLY7X}cqA;ZdsTKtiPPp`zt>b=@j=B{ERf9>3vP^0q7SS6+k!w}q@gyp1fZO%==201KpzY<~-6pV= z+j0DjNvkX*#_25J6n2_6DAOKTQC_FJWkTWIT$zU7yv(+ zR$|2r3*g7K)#6H;(Ca^58MV088cUSnC@gEvm@0+|A*_=6NSd>2o_W_?Ef@#zop;{Z zzLK5?7H}A7I}ff0ofCDQr?f4M_*_VgJL-P?@yA0kk6g|=y%Xi>shoQ1sjq$QYe$Zj z*CP_NJRey0_E*r`d$p;|UEl!bPCG3@Z8rDjkzP#$!?9bFOJfp-pw+m8eHCkU?NhO*H|YFw z$4oqksu zUk`C=nyMnz+&q)!z4gFTrLNlUIqa~*%%;`pQL+e?RRCGrjYaeK3t#xcT9lSU&m)>c z=L*%tY;Ea{%$2#IKIKzqgp2j8_rg17=n}anC}Y|xxm3o}2niW8kwnLe6)UV2y;$h< zzdg)*+~XeQxZ7IC zsa`S=>usi5>x?ju8Uq;DQr&1bqE3M^X;)U7TtZo!yRWrKM1)uXjMr=dumDb5`b5JJ z4a6_ETo6rBk8$iJ2y7~Sr!DQ9y_~~i)vVlx`5ZA$h!=cJ@!{PyXKHd!Fm41^0pu!t zG&l=F{9=$~w|7#!u_S%vY!}BwyXtdR=c*bvzP{mFWdso;Uu}VMqmdqcLV$yy%N&>P z4To+`E{#LzLuNLC>L^kS;+Q3b5oWHk3s2gApUC;}%pD7>c6Jms|}^ApT)GlleEJVf~Pncb{v za&Jd!v0|-ZNRyEBhO|9$FVcDsRg%w16}|=}+cU@r`v&4G-^Yt075y0&M$A;BrW+)l z@k+)Blaa5)i56@tlt+jaL(m!R1W@;toJb$xIp$Y7JClxi?9(Mohu-P-*6RSzsL{nZ zJD3KXW-yf#q%B<$sR3}bz`%R(vORh`oV!#K`L)(xdqDVa_QTEWbQxxG99FSJHg zHP$+&E*7X|XP&bD6ozr11Tiec2HGLQr_b_^yxOW~-54(febsZ>c9&&QDOEy7*kDhT zOD2?>qw9tNjGH__=9puS(U~>BYnD~EADtUv-u=p935Q_39lOPx6`YzeyRYO7nxQLa zw8qvFAKh!HSWL8L;8y%N`h4>}YV=~fCTmi(NGFGLmtX+^x4`3Xig!473B5DfHD^Q+ zZOf(>#?+=&R86M@t$xJDJ0t^>tG#?j`S5{?JcXee=cD|Z264Q3pdF&EPh;u)D_{`u z;}O+Dm@-WL0z+|Sp}Wg6H6bD`L@pH*+@QcB03sp_;dc=E@jMj`LxhiQX)8}~h#6we z5Kh+sQB8>U`r3vW5RprfWu#I-fS-UdI!6}kDHhmH$D7;gky1Mh(~8vSF+UqR4CG!} z8m`{6#(zziVys@w=^YXZW6h2)d2A}>h$4cIe=;f<^lS2^kPYUBTfcbhpQD8eV z7mtr|bC3AS5KQX>w-Ba0?%wZHR9gi(v107eGQ*W*F6CwyxB<(Bn$^q`F;ryfK(_J& zMFRE_o?)2!)XW>>WcgJdd-DLUU12ytOdR6?t{D1uU+L4k0*|3MWi#v3p7ykIa^M+N zW0n})vf0W^;xL^X0w0SN9t(#m;nO9;d76M?Hj73f=&lIECxvm+MDczaM_4ifa6-q& zID1$Yh|$vez%2yL;n6uoFYi?F5G%$WS2e@bw_M82x)H!_R{?SbLa|R|sbN57EDt4P z5YA!Pt(hOj%@zhzIi4{APKSwOTyx4Yl}T+6{n#f2Y)S#z-e4ctY}+|ziNTEn%L{qA zbZ!WIh%*8Ja)eLp9HP~k`rjJB5q3RR^H;hKOn5^JPQOW9OE?-)lW9v$9@*C_QMRdA zQ!>e&Mmw-E@rb|^LoX5A(=%46T}#k*Fc`x~C0b9&T(Sy7785Gb zv(0eIElp3p>M>^)P<4c{8=^#K;I~K@ z6+V;N=>jPLKRrf@$62X(mWJ(CK)0_IURwY8BM13 zwyYJF%+O}(E0_!Y zw!dE??)Hk_0LJY-nkfAYod8K!Q=2_}Qm^3VGp$fxMiO<%qF7{hLzF1bTne0eQ?SDD zvPm%yPlO)k^<;r95xhjml5lD})DUTp%W&=z1TmeIi`V!Dx_~Tc2S2dn1b{?@gj^Nx zmVk5H+g5yK&`AAS2f|c}l|PItIut|h!K$)~OXfvkwYO^FgjQWuQxlB)kvF+G9JD>a zDEq`>)u-YRYCE4}p5|RFAc*J!Qo2-l!HiA&w($ttiYogsUS3AJOQZwl;fJ6s2};Ek zGIlZ{QqK;AXe+$XNZ(d5{Hi#QQ^g-j5i^?Td0W|D238CjC1z+7<71q8m;^StS_cCB z4$J_?>CaTURQ6V8cG~WbvHzb&itUiIAHh=4E^d! zxL^d^862Omr;5kvHYUcYAvIuuSAmeW2OTBCXJKD&JMhQgLK;(M6#yrzo!HY0C0)ML z+KBscPZh~X{aauJaC>>2Too@LRbdD2zWiVB1wbHSjAo zlQH%C8dbcBN_oq6=RNSz|FLTbY@rh8GL9z5W_djs3I=qpNy2T|77EhjaR{`#`mCBbVZ~&A-ea#4wEuFKQ7?Zzorn)$1^tUJ~d8_kyJmE+uNsPRVtxm z4KR%IAy`R!?VXhmfb?DwOQzlfvcqEhXOLH$B26pjQSx}PEe^8%X8BxFIS-7-BbZB^ z?l9&Ip!mlT<+iS1nMLjuMJ8DrXl^1c~5N#Z*-uv#D75iVz?}K`qAWY90p@;n26f^({LW zHnoH??Mw5(xYj^fB1cn^$ibf#fx)iwsi76QkeeD`(cA~+VVs^_jJwCoWKMMQz*^M& zQQ>ND*bpbOihi8A4msoy;XL;v6cnK?V!Zlpq=Uxu<89+Hsu0rj?L4BbNb@pW=y^oV zBZUG$2IndyR{<78$wU`q#8!e(aiTw_!_f#}g~MLgmXW9;*teCyGq%+TQpP8sz}iV7 z#b2e7T!fJd#wlEdZU`2t^J>< zkt{(K`HfjibMJ{_Vd8LzSwf6Tn*MGa80eyl<;$1Lo6ahz_Xf>ex^$`e$sp$TlM>^RR@dEYkz+%W=Q`z-Q)DMN zG7!-1kXxmIGx7;CfDhLzR;-YkIN^j7gg_SW()*R;DgIVR)}>XPgyGq(i=#%Lj&rEf zKNi|nm_l_+9V4l>M%&64z^g^=CP23)z%~7?#|#$>QR{t+A{ubbRmRb#jOjrM+A5a! zvzF%GjSAq}60?NpmF`Y3=RZ6syqQ%{?+rW5xTLk$iZ}O-j0a?Z76ptX< zk(v_rRJznM29we`qA?FWKv1UcjO`g=){>iX))t@Xoe%>;Y0Kc`&MK()h7wop#fJjX zr}zHxD{EG3_j|h)rFOVAu4Jr#jcgCLRc&*g3tgEupK@)m?Ju7!bN0G zWD3_*G$=Oyy|BQV6ZOM}QZ>s)pyY0F6GY>xPlC770 ze6t&Fe(1&5y4!Z!ZFunh`)_r({r6vc`Ekdsv-7%Vues%ZM^CX$Su4~cv1oy7h6S$G zDf4T0*sR$pYcyqkoG1QNqs|)t(v*l;yD7OR?aDoi#6Oz_(uX1D*MdCWf%uxi%ltS` z{HZzVlXgv9jYWnFWr6fzi1|s*ypWQ-F4S3#n)PEt?OR*x*Kk|;f-!|qwTia?(TQL`-2|zp#N^l zGn?|LM?LC(_q*R+?|RoAcieHyEw^+(4tQdML&=SZ=o6x3jrp0UgdymWr#9MXqiwg{ z_MZ2==c6C}=;uHG`LBE3>y|HHe&UHIp4ya;H|5o@e)UUV`qF1S;~9JHwbu?i>~P~7 z-ORJ#i#sax{93l)cAw6HmBqE|7UuT_lQq$%@vG&*b(IcE` zo0>ThBhu+SQZx3~h}C-Cwd=0C?%$LrKJkgLaFd(dB>fq#9N?YreCJ0#@{xxhe)v1y z@s7`b{_{Wk+0TCUt6yDu>7{>b${(BZ=Rg1Xcfb4H#TQ?E{`u#B<};rGs{;-=;J)|0 z?=5a|i!wI05fObtMCdp~o(d$PiJ(3A+!JQs^Pcy7^PAuN{`bHC%U}NTFMs*VUpuAI z{mOr};HN+R>DgzW{pBxz`N$)WeB9$6XQZyb{`!T5Iq6&g_nGm{os3@~rHV(`0X>d2 za!<@sH6D-XEBUUywkd2LoFgJcWL^LI*XLB!N7kH(D24-98vb)9q7jxj9eCh@|KF6~ z|Ni&j@UVwHES(7~4|u=>-1DhVed;^k`3|J~<~P5&?6S*1;)*M-fEsXakp0I12=LwG z(x3kHr^_$D+-*32?|a|-+~+>``q#hy5s!GpO>cVBh=@KR=G3P4Q=4zTxgq$>RFcz zyZ62CeK^!`Z^X|2Z;be+H@#_t4K^4P<0JYkUAk0no^#GQoKr+0kA#S7FY8QGVXUcfb2x!SI~a=)1X#as5Cko%!~+za3auLSdUf{NWFQNr<{S z{27>pzzV}+`@s)>P%vPvSK5vAPoK&w>-2e*>s{}9x4!kQMNns+dFF3_`&*o&VbGeI z(v~t^wbL7UDmohhICunqaoWE7?rS+RtIk(1#yJne>kV&s!>@n+>uT&G#;0MxiI+We zxUPtLgmAlx*}TgCHKn<7abOYxtHQYPg#QH>TyX5M$8Np#*6k(PN+b_bFwUDB zCB$BI(M7lkkiak+2Cbs#Ndy)>`bauMUxFz9w~T$oEjR8!uH6)QM;4nice zY}qm^$=f%DU8|^c$qny%*So&*m9PBb7r%gL2m+J9EwYGs%Uj;U7vJCpHy9^2G#Ugp z@FiU%$TdpJeTQMNS>XYRLKJG8aKZ@>e(;0ua+kYowbfSt-V|#j6Z$Q0dCP}B^r0_* z`OBqSF1+wUdK%@XoEnJX970=!TX(wCos2V@nC^SQ?h-j~eB&E`_`@Im;0Hf2II6HD zR``b@f>7e9Dwg~4kAM85rqC+W#!O>A(h*_?c_EhPPRducrIaAD*iAQKSmEMKoX4rp zG6gDF4?^f)rHnbEKz&U&0RU4Nj!lby^z)zp{G^jkk`PO~#!;j19t=j}@#qryjDe&IWI+8Rn!QyrOk~4W6o&Sc4a1*5PHTL zXULKQveMfd>diD;Y_Wxvup-r31%FForij7O)HcE}yw|<%wfEk8@79#8&!cmfXiF#P zw9`&w8OrnE5fNg#S*r!(fN{6!@}Ety{;Z%k(nF-1jC;K=W!toPH@U1k-tmrnUb|i0 zR*z9L4#tf}nZJiW{NWaLWLAC-48a66%8U7|lJTr>)wluSlP=O!9Hj}Mi}3=!jNM}% z^O*J4TaQ))x))AmF+cjzkMf4>R6XXiYdj0ZgAYE~DzUW1wj3@(O%*doY3OSaG#AM} z;R#Ow;R=DmxlPo-k{N|ck92zjL(OLsMkBG^uKV2QKAc@!XCsLtkxwutMw*XFt#3!_ z+g~HyGE&?H+89=d($=}?)rWCSZfk`Wg}&`=Z)>+S`UK;rpMJW@wf$h(is{m>_SL!2 z7*ML6SBY5W5x#xl3txEBlb%FPW{$KF5tW({-Aiit^n2g?-m=v=*JNGIjnI#M>|>j5 zx@p%=o^5l!+0AbD&Ud~uV)_Fnqd1bcXaQJd#y$MHD`H#>ff* zm;~*#(@wDIsZ15&)=LP?EDPE_k2d9S1C8)C1~d%M+^mBXv+P&D`c;EZ^P^#i*k|Gx z@2Z*_PD^LCTN*W@*!$oAe*I4WJe3BnGJ)kx80T9*@PQB9_O`cWMRFp%O+U@aPAT4eO0BNfPI#?OKc|1f!m=CySYuW*fQ{EbwudKkPjl1ya5|I_)@W0z^vkjOR zC@Q9kwnez4Uhu1za7ZW>ZoS0BG0rR!%IBVYZmG(=BYOH8aMe8%jK{miOwB(q#!o)^ zWLqAB6SJ^hvVRq=L!|do6QX-bh7Wcuz)Tx#+%|c718gNp@@$(3XRi6Y^UlLz0OQtd z!XC1W;5NW944*C$alyD6FgNThFG+-vs2alJlO|y97(?&q4BIv_af}~y&_UK|G~vNH zfUFK;l23T?i(gzZY@KIlZlC?%v}~r1l3=k@Q>(RZCk$Ymi^S7u z8Nn|&=%Vi9)(|*XN^f>u$G9WS(F3NRVT?--IP=w>@VXMha1}A0$w`jh)~;QiMT~c? zJzdkqIE+{m?y<)nJor4ec+-c$xZdDWoeYrB0u#LT)PkpMBO$FgnlPESW$AQ*$ z`q13Hbm>w#O&(wB-ici2>R$7j*L>(h9|Gske)h8t0a>=|a|W)$u0^C}-L_gxa`(M) z8M#J`V?^D@!$*+*-uJ#&YP$`J37Kk%LF{l-E$7Tb5gLMG6tMDKeHgD^;8biRIgY@d z1J-C`+%9Wd=Y_;LhbKWt)fg&7ln0nP0XeD8YVj#w!*U#Ym88Bh4$b>eV{cRL)d&y? z*qOFSIOUX63dMrKI_BZidapcPnV&7i4`p5T2p%vk>$cVI+)SI+I@bB#;a(M}*j3Yz ziDSIXA{l8m(kN|-@*%X2dItLH!#EGl4sz(!sC-V>n9(N~x2Jm4QAb%W+O*=x=aM5BdtHiF*UY3BX>Ic|#Z7@DyDihCY+SCZfscMvKLYfmIz*)su z1uCnUSuJ$+k%&SPoL?SjJ7a=Bq;O7ry|?|Qo&VGaZeq@MW+STVbk+?X5CdH>a48&M zi9{CYp6reC3`iLY7X}cqA;ZdsTKtiPPp`zt>b=@j=B{ERf9>3vP^0q7SS6+k!w}q@gyp1fZO%==201KpzY<~-6pV= z+j0DjNvkX*#_25J6n2_6DAOKTQC_FJWkTWIT$zU7yv(+ zR$|2r3*g7K)#6H;(Ca^58MV088cUSnC@gEvm@0+|A*_=6NSd>2o_W_?Ef@#zop;{Z zzLK5?7H}A7I}ff0ofCDQr?f4M_*_VgJL-P?@yA0kk6g|=y%Xi>shoQ1sjq$QYe$Zj z*CP_NJRey0_E*r`d$p;|UEl!bPCG3@Z8rDjkzP#$!?9bFOJfp-pw+m8eHCkU?NhO*H|YFw z$4oqksu zUk`C=nyMnz+&q)!z4gFTrLNlUIqa~*%%;`pQL+e?RRCGrjYaeK3t#xcT9lSU&m)>c z=L*%tY;Ea{%$2#IKIKzqgp2j8_rg17=n}anC}Y|xxm3o}2niW8kwnLe6)UV2y;$h< zzdg)*+~XeQxZ7IC zsa`S=>usi5>x?ju8Uq;DQr&1bqE3M^X;)U7TtZo!yRWrKM1)uXjMr=dumDb5`b5JJ z4a6_ETo6rBk8$iJ2y7~Sr!DQ9y_~~i)vVlx`5ZA$h!=cJ@!{PyXKHd!Fm41^0pu!t zG&l=F{9=$~w|7#!u_S%vY!}BwyXtdR=c*bvzP{mFWdso;Uu}VMqmdqcLV$yy%N&>P z4To+`E{#LzLuNLC>L^kS;+Q3b5oWHk3s2gApUC;}%pD7>c6Jms|}^ApT)GlleEJVf~Pncb{v za&Jd!v0|-ZNRyEBhO|9$FVcDsRg%w16}|=}+cU@r`v&4G-^Yt075y0&M$A;BrW+)l z@k+)Blaa5)i56@tlt+jaL(m!R1W@;toJb$xIp$Y7JClxi?9(Mohu-P-*6RSzsL{nZ zJD3KXW-yf#q%B<$sR3}bz`%R(vORh`oV!#K`L)(xdqDVa_QTEWbQxxG99FSJHg zHP$+&E*7X|XP&bD6ozr11Tiec2HGLQr_b_^yxOW~-54(febsZ>c9&&QDOEy7*kDhT zOD2?>qw9tNjGH__=9puS(U~>BYnD~EADtUv-u=p935Q_39lOPx6`YzeyRYO7nxQLa zw8qvFAKh!HSWL8L;8y%N`h4>}YV=~fCTmi(NGFGLmtX+^x4`3Xig!473B5DfHD^Q+ zZOf(>#?+=&R86M@t$xJDJ0t^>tG#?j`S5{?JcXee=cD|Z264Q3pdF&EPh;u)D_{`u z;}O+Dm@-WL0z+|Sp}Wg6H6bD`L@pH*+@QcB03sp_;dc=E@jMj`LxhiQX)8}~h#6we z5Kh+sQB8>U`r3vW5RprfWu#I-fS-UdI!6}kDHhmH$D7;gky1Mh(~8vSF+UqR4CG!} z8m`{6#(zziVys@w=^YXZW6h2)d2A}>h$4cIe=;f<^lS2^kPYUBTfcbhpQD8eV z7mtr|bC3AS5KQX>w-Ba0?%wZHR9gi(v107eGQ*W*F6CwyxB<(Bn$^q`F;ryfK(_J& zMFRE_o?)2!)XW>>WcgJdd-DLUU12ytOdR6?t{D1uU+L4k0*|3MWi#v3p7ykIa^M+N zW0n})vf0W^;xL^X0w0SN9t(#m;nO9;d76M?Hj73f=&lIECxvm+MDczaM_4ifa6-q& zID1$Yh|$vez%2yL;n6uoFYi?F5G%$WS2e@bw_M82x)H!_R{?SbLa|R|sbN57EDt4P z5YA!Pt(hOj%@zhzIi4{APKSwOTyx4Yl}T+6{n#f2Y)S#z-e4ctY}+|ziNTEn%L{qA zbZ!WIh%*8Ja)eLp9HP~k`rjJB5q3RR^H;hKOn5^JPQOW9OE?-)lW9v$9@*C_QMRdA zQ!>e&Mmw-E@rb|^LoX5A(=%46T}#k*Fc`x~C0b9&T(Sy7785Gb zv(0eIElp3p>M>^)P<4c{8=^#K;I~K@ z6+V;N=>jPLKRrf@$62X(mWJ(CK)0_IURwY8BM13 zwyYJF%+O}(E0_!Y zw!dE??)Hk_0LJY-nkfAYod8K!Q=2_}Qm^3VGp$fxMiO<%qF7{hLzF1bTne0eQ?SDD zvPm%yPlO)k^<;r95xhjml5lD})DUTp%W&=z1TmeIi`V!Dx_~Tc2S2dn1b{?@gj^Nx zmVk5H+g5yK&`AAS2f|c}l|PItIut|h!K$)~OXfvkwYO^FgjQWuQxlB)kvF+G9JD>a zDEq`>)u-YRYCE4}p5|RFAc*J!Qo2-l!HiA&w($ttiYogsUS3AJOQZwl;fJ6s2};Ek zGIlZ{QqK;AXe+$XNZ(d5{Hi#QQ^g-j5i^?Td0W|D238CjC1z+7<71q8m;^StS_cCB z4$J_?>CaTURQ6V8cG~WbvHzb&itUiIAHh=4E^d! zxL^d^862Omr;5kvHYUcYAvIuuSAmeW2OTBCXJKD&JMhQgLK;(M6#yrzo!HY0C0)ML z+KBscPZh~X{aauJaC>>2Too@LRbdD2zWiVB1wbHSjAo zlQH%C8dbcBN_oq6=RNSz|FLTbY@rh8GL9z5W_djs3I=qpNy2T|77EhjaR{`#`mCBbVZ~&A-ea#4wEuFKQ7?Zzorn)$1^tUJ~d8_kyJmE+uNsPRVtxm z4KR%IAy`R!?VXhmfb?DwOQzlfvcqEhXOLH$B26pjQSx}PEe^8%X8BxFIS-7-BbZB^ z?l9&Ip!mlT<+iS1nMLjuMJ8DrXl^1c~5N#Z*-uv#D75iVz?}K`qAWY90p@;n26f^({LW zHnoH??Mw5(xYj^fB1cn^$ibf#fx)iwsi76QkeeD`(cA~+VVs^_jJwCoWKMMQz*^M& zQQ>ND*bpbOihi8A4msoy;XL;v6cnK?V!Zlpq=Uxu<89+Hsu0rj?L4BbNb@pW=y^oV zBZUG$2IndyR{<78$wU`q#8!e(aiTw_!_f#}g~MLgmXW9;*teCyGq%+TQpP8sz}iV7 z#b2e7T!fJd#wlEdZU`2t^J>< zkt{(K`HfjibMJ{_Vd8LzSwf6Tn*MGa80eyl<;$1Lo6ahz_Xf>ex^$`e$sp$TlM>^RR@dEYkz+%W=Q`z-Q)DMN zG7!-1kXxmIGx7;CfDhLzR;-YkIN^j7gg_SW()*R;DgIVR)}>XPgyGq(i=#%Lj&rEf zKNi|nm_l_+9V4l>M%&64z^g^=CP23)z%~7?#|#$>QR{t+A{ubbRmRb#jOjrM+A5a! zvzF%GjSAq}60?NpmF`Y3=RZ6syqQ%{?+rW5xTLk$iZ}O-j0a?Z76ptX< zk(v_rRJznM29we`qA?FWKv1UcjO`g=){>iX))t@Xoe%>;Y0Kc`&MK()h7wop#fJjX zr}zHxD{EG3_j|h)rFOVAu4Jr#jcgCLRc&*g3tgEupK@0$@;T*jX zE+T}a@^-x+<#m)tF6FH}BEEZ%*01Hi)?WL+_xYb4pZ5IJ|BU}!YmG7Hn7=vZm}AcM z-@EU<@v%#$%aJ}0^8cm&zpekTv1Bu!OO_mQ%=AAaAAeo4r2d<#|Lg91?(_6R&c0;Z zWgpt&dRrcL(KYV6!w#Dqa=-!G-1UG1)>(PnaqI28{<&*yz5mfuY*W?_wMZ;l;Ob$4 zYjn!|+8s7)b;>oHGC$4}f2vXEn*Y+2h*+m7xhL()J&VLYn+4K`A?DYDJl=u$TEWZw zI8XekIq8#jOT|Kru;`!uGf@*ZA#iTKeH@8^$%cy^dav? zopsk;x9#Sxb**cu3~XI8nXkY8`la~VYp;FnYhQblO*XmV4R5%^4m<3z#~u%S-~<1= zDNk?8BOm$5``-7yyY9N{jyvwS_10Uv9|t@!!J*_vMDz(!vc~+(Q^FAR$Wxncy6LTN zed~MN;~tNC)T5sFyyv~{b+22wa^)$foN{JUKGc*~zxvfLdC5x-Jn+E1_ul*Vx4-@7 zn{Un(#Sp;=Q5X@SAx7l-s-;!XbYp?sJPr|tn2?^YV-gWjkFU4hdZ}r1pji9s{OA$R zv`x*Nh!N>@9;q4oYs6~3?%Hj)-41BV6Q1w{Sh&%RZj}BER}S#bcfRu@9`T5mzVxLh zopjPU=bZDCpZw$(zxc(amtOkUru@DsfBMs(e)F5(Ty)Vz-~H})KlZVYfz>mg`ON#= z=RP;P+0Dw>*hWP32@#>=5P2$)geHRa+;dNuef!(r{-rN{>3iS%-p_yj^FROj&wuHZ zM)xcJ)q)Ezyzty}&;9hLKYiqpM?Utkk2O*^+;GFf!klz2fcwn&=1#^hkW$4X?0_D} z8o4KCsTz+*^c8&9S;rJM56%%0BC@V~-Rp8H>LY7TL=?k;D-Hj-6VV7uoDMqZp#N{m zZ-4t+aCqoLADYetmiyoT{_gq6M?UiPuYVmlzZ`17xk2{t10cY6 zk4u02;~y`(>@v6E{Oxal`>eChdj0EP|L})De5LCmt1lQH44V1jL#}ARq>Vnxu?dias0(EesTHo<%a%EZ+g=?=^Ttd?s1QM z;R|1A3i+S86eFz4gCG20NWpD>X4!1B&Gg{QU;gq4Zx|oB-FDmIxq4`tQYu~WfCoI_ zm9Ko|VTTID6iD}W^{h*V z-8{FYo>ncB| znwsRy^sjo=t1xH4C_iuF8{hbbV0cby^xfRWxPG9N&OGtN6M=;#6t?-@?|v7Ugs7{- zpMgmTtS~IL?|ILA1OwK3rQJyX^r?Jhoj$K}o$FlZmbbj62kV&s!!LjN%WCW*#;0MxiI+We zxUPtLgmAlx*}TgCHKn<7QD71RtHQYPg#Y>HpMUJJ$8Njrw(TX^l}H|>V4OEM zN{Id0&whrR00|7EVbGcyvBx*R`OQy$@{|AD6ao8(Km6g(fBy5@UL{XOXKZo6zijg3 zAOBeNa*JEsg8v#Amsc&uZ*!a59Dn@r+Dr3_Ef+C94TEm?#)Y{gL^b8DTD6L!=O9Ef z%a$#(lDutG*tLpEm)!8yx4!kWpZ)B`7hep~5CkTHTVxUOmbbixFWzXQjmC)$jRt`Y zd`Z^`a*dL5-(eVRR(L?75QQ2mR;+l?gC2C3yWC})ZMOOMrdT7H&~JY8n?K|s4>{_n zqoi9dxZnbM8s(;(8i?T>LR*Aece>M^j5C^;?t8)R5;<>t;~RhQgCBhV``s<0$h z_=h2aP~xa6miy6WI+8Rn!QyrOk~4W6o&Sc4a1*5c<`xepQwf zkd>e;oDu5HG&jESjjeh*e@~i)}evgqkX5j?&QAB4{p>ef;Ae z55g4!g>##zfh98vl^$uMtn|lF^Vx*a)U?}m?|a{yvuo>YBylA23C2V{o=;3_eVdvt z5$TqZ;x5p}utJo!&PA^|jBE0UZlcf=PB@|6(&!V6f95lvF}b!MEL$;MyK-JMPLyir zRU(#ogm0ht#3!Ek#3xddnPbHek(rth-Aiit^n2awUb59V*JNGIjnEH%@PjwF!40~0 z@@$*)O>T0NlTSW5V)_Fnqd1bcXaQJd#y$MHD`H#>ff*m;~*# z(@wDIsZ15&)=LP?EDPE_k2d9S1C8)&4rmyjxmgD(X4%hu?sEp8=10R2vCqUY-c>a< zoR-dNw=`-*v3I@eUHYB=c`6NDZ34@gFwVEW``z!p)va#DisVFin~3~&WzpSB)%g&o zL0a4n0Mb?obg=3jy%AwP;F_&z2QW@~Yhb>z0-HAO!lz3_=KzQQ-G2M+!Ms3GF;%oJ z!X@>BU%iAwLaA`;B_@t>W|2_-*0;V@sxt40p1uZLb>Alp1=w6cHgB=Sn(*_&2O`hHWTS<~U+a|)9YyQr6zJtR6#;w_eJ!Bcd zZGdAKK3yW>f^juqZrE8~k_aPFHH5_{O~BkShThQ`wryhK7(e*ngRRqO!h>@FW#K4U z#MKhxI#VB7wg)fFz&xU6=S=j8>7(5)+Pa*5Hjo_w<1aVo@enS7p`H(vW@z_(s)Yo?Bv1k< zo*+U)sJDx8zx&A8rV);Au6q&5K(BAc>k}aJmo1*ak8l(Txt@<#^pHBx=tUO zyO%CqDyPZgOWiw>>s;MyUh|swzW2T0{PB-}+#w*#c74vkRoJzNw5;1!i%IUjH!dUB zh;fXl`*`>W(%0dP>cdro@)-{)eD@8jU>kr*mJ-d zZH(JxZR@;{80YXL=%^Y)g^2P1QzsxN)mbe*+MSze(^|(m-#gr^0u{Sz8ZvQ= zmsunu%|;rfEm1y%)=|$uUvn7e!P!9$of?(T=^8Wo1mpHpU-61pST5w!LSo$OGb1|z zQ6tK8UGiXpfEG3{D~9PP_(RM8_~)LTDs*S`%Si8S1LSIDjkirU1?zTeWoC9s~v8P9Yp|#1YoOJQgq6 z9+wM%alru}DLtuYP2RdV8ultrJ!8%z<|<_-7|gxCjd1|ihtGfh^PN+rmqkKZ!qFi{ zWx1N*d`=wWUM!OEvkuS#6G^Wl7S@T{n5t``)NmOi#~$WxlKv;IT8z^Pz(qkkxW4E$ zLJ$;;+i9>1R^h0ZRNFfW3xIKls;n4H9<;3z4bxvC+yLWl{?w;FHKD*f(60HE;{z+( z_IBAPj^DH+L=6`$*0M_M3hiYHxT=1DP1gqF1EwSaU5gRhBY^cQ_S@`ryjI7?PO=a#XHuBfbojN+ZCVX_%51~y;nc4O; z_hchurUo@CUm2^!RACr`o0G7dcSl85mne&w=N1y<)Bte1{wJMuQWl zV#N##;K#Mq;!2v(>pxx@wYb$9OO)X#ENjk~DuxLmtdjajnzL)3dDmPe7zgm3ci!2) zlAZ?^a2RMi53UED6Lp@av@MMITu6*N>b`vWawz7J%UP#)qC7p7GtWHpwXc2c$kFn8 zM1q#*1Iyn23VM65HkG*x9KhUZhscjcT_X2n9F(#?a|z)=HKv53Ll{6(L_%gSHb_89 zfLPyFY4jTU*JR^djoyy*w$P%@=H5Kgt7%|3c58BJOu`Vf8h5a-Vy&)yD)#gSonP*l ziD%R>n{&8Wr4?vH-%)h&i4kvIVgV*TEi;aY%Tr7Z`^>_Rn~CKyA|eFM865vGsgCpO zAx=$GRiv7mXVSd49(bzMRogv>AAY#mv^qUX7NN2VAZxp^X#Re|3tmu*(sJl|M04m| zp_-VjExnO>WiF^s`P3QVVm<4<@QxX}MD7X7n6^qTmGLw}LdHxa(XndPDr-eA7CQZJ z4|A`*_A1BS);b=iT{%Ki)h{^I(YjI~LPO|AuEEPhX<(RiYjSB!f~9Sg)hiQP-L+5k zl7U!nGu2vWgn85$z_^y`M!OMp3XDm+veM)d%G%t0twkat!~$TvW($A?aN5!*8ir^f zewpQhXo`A_V=qBqQ|UWxY2WPS93HD?E1~6_9`B~3;mXmARrSnOQh!APA z(dM37r^ykL7!e^B0ONX-2l6f>Z40o`FhnqJJ#4u^J=z-3ygB_nr7gLck=B|iTICRo9{0C%kdZ#ZcKojf zt389*ru4W zJ5q}kYYju1gq$~|?U8$t)_bUud`_zHH6YoZK}Og&5byb2z>5A13nON#QPT|)&v+$c zgvrQP;zSF!70M&TiXrHXb^@sTO3t7eM&$H-rL!~Xn8!X{!gT1JZg0KzJl|ABjV{L7 z!8G7BgQ=V#ZRv_g4S=Hs2Hu00?a|xe+$Gi=#&K4%ZYZrv$#hE43T8IU?d1V@p*5oh!r6=&<+tkjhWm3I`V3(o^@lq5cE~gW!qhrMWs{;X+Ms} zo+y`0C^bjd4FecAd4S9@#~h&4(Bex0swA-$KMq1aPAU%XR>R~ zh#=aQO)ZS6O{=JyP6=B5h>dqh1}0Z~`Hu480~L7+Lp9Dv`85sVc=JFzL|dQ6()m}w zAmYa(s)aCRnEC~V;>tpImt|@~L|TYkDkiu=fkgmBL>9vDAoAmRDjJ3eAKTJap5PEO z#GE0Vt^uN&5bgD~4KpAjmm0ay3UXq_*rR2JE67~R%`R{QmJ2njnI~eX$kKsq z?1tGF!iaKH^#~Gt33AR0bIMnaDbRN#sOS0^zFXVr*{P&LvhMx)~7!8spaIr zGpfccF}P*3m6^n0IyVG97Arg!4pqXZON8?@0mW<pAfJq1!#MNePFX~=a?l1Hx4W> zs^;pec={hjs4J|nRCUGs{Xhcn>Ej4*$U#mpf zreZD0BzGF^#3JY=^Jmx#xYGJIF)PL+0#6LRL~KvbSfO?;LEFJ#3?r3jJt1?+Dhydn zs6@{;!zs5kJ^8A~oLNBC5yoza5}k?TZW!L{2O>JwXc_nl-gx2`L5OKNQ~3cAmr2>< zVK_k4@Y2J697w}8q${hK`*f)!1~^dT)seQhr99CRv8ForYi~LZVa6?6jX1XH!NV=NZ?BSDo1vj5*h59m*s6!UTBC{K!M0w^?;MALf z6^55hig|b<^f0d{3v7wtB|?^jQ`@12NPAp{bC)29>7-n|#y8LfWJx>tfh8vZBqAi_ zs(7~qoZH^E;wytj>eo6Drc$i@VO-In7;+C*l~r6aFAA%@RSPGy>Z+QWVBC+q$;IKI z?EyyFCl;$d6^BsU`5f~!?_vQ#L>G|KrNRqlY}&WIN7zRlL?V}b|6Gs;e|%}wu<3b#d(}6{!ogT(L~SN%Jwp_V$ditLz@^Md*zNJi@40waLi%j4v#c=@Ob5#&d zcYnDqItP~f-+8o>0QBZ?3*#|N2x)n<4|OoW29E$I%F0w$F=NUD`I!_u zI90&Eiizp;(@(cxZ|?oOU$X*ph|8Jca3;|f0Mn+?QEZriP5zOa7E@6ee{jIIt9)wU zS8OI@>i0FOcoUWKmhH}a;G_Rz*AUo3CC+6WO_0s`FV zmpI*F%o#xOk0Z*be@cOv2SJUrt1#8RT6Eoj3D3fPh)*1_17SMMio1DZ9J)Chfui`g zI&D^2ix_9988EI|peh|D6lGM-E}#e!!KaF;syt>>apfyQfD8q-7^|y!9882mU;gr! z?OfQ@62`PI%>(0F17(REO+_LHe^vwryUM4AR^&o%YJ5d=AC!l2dUi4H9y60U(a8gA zQS(QItG!`EoXBeWappSo&_jju+>cODgtmzB>bsE+8qbfnjmM}$NYl6Th_)il%W$FR z5jBq#3IG|LtB_m;SP&%>U62u52|~q*{+JF&BY+hSdtF;bqKaVORszr1RwGCmpMU~u zCy5k)l}2(AMk*Mma22{CSg6)}1@jn8>q>uMuRGmrGz(e<)czcksa9|zil4z#jB4sm zRhCAw1XbiWW-ZOVr-+4#!y#q~F)C^LyK!Kki!N5KTq$oltDxQ+G;`_FrRFDtnA?-5 zj6S{hk6-CeLs~QUYHko)PdIHGZbHHFiv>I-{h>DfQl(Eyj7M5scdtc`4N0Esj5E%V zo#4noK(|9~l>*MlC&&OkT(4TSN@`-oiWNd2i+Ab$%JCF`t0U{uDo(=i?AFCmqff^< z)af4!Z7WQnx}}bhR9mBM^Cz$ge9u(fpDya7c9*7jPV=1r8qEGMr<5wmF-Bq4Am0%uj z)EK{b+=CQuAl@5~$9Ot0Dj3Y3BbkSlj&l0j@(kpitP#wJ+?xgWxv*S?``|>l5{q0J zARd8l#e^0Wx?)ZdpVk;{LFnPRI5!Uy8d9LZjppRa^T=H}<;yLCe3UnNRFQzJVsnZ| z5ba1!341DCY8it`=^W9RhaMm(Q+LMpj4*4-%{Xg|&-6}+0im>IaB^oA)O$mTtM=kU zf#}nF|M-+!|Lh*1tx!2ivN)InRZzOq)-+w<@qxMMADhlT6%roZgs= z@YTJSX{$I2;MjwZ#;C2*G-4+ceU(^xb)_yo|4(Lt45@MOJI*}|+5S1fc1|}hWGfbB vEtCbi_zfsRbnjUx?Pif9_Amtx-;`Di-?n)5>STd`SVUi)I$^P`Z43MjGA2hU literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00127.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00127.bmp new file mode 100644 index 0000000000000000000000000000000000000000..06559b7d0f618479e81eacc96220fa4624b3b013 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00128.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00128.bmp new file mode 100644 index 0000000000000000000000000000000000000000..204733a9fd0241ce165776c5fec874589aede89c GIT binary patch literal 37138 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 Ryn2pB^k&%`D~)D>{{tP%M@j$y literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00131.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00131.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fb66953def8b5497cb80a0b047690cc2d482ca6d GIT binary patch literal 37138 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 Ryn2pB^k&%`D~)D>{{tP%M@j$y literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00132.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00132.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fb66953def8b5497cb80a0b047690cc2d482ca6d GIT binary patch literal 37138 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 Ryn2pB^k&%`D~)D>{{tP%M@j$y literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00133.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00133.bmp new file mode 100644 index 0000000000000000000000000000000000000000..263a49f0566250e5266520d6712bf0cf002f035e GIT binary patch literal 37138 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 Mn`Cb+H<|_h55=2DTmS$7 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00134.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00134.bmp new file mode 100644 index 0000000000000000000000000000000000000000..263a49f0566250e5266520d6712bf0cf002f035e GIT binary patch literal 37138 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 Mn`Cb+H<|_h55=2DTmS$7 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00135.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00135.bmp new file mode 100644 index 0000000000000000000000000000000000000000..263a49f0566250e5266520d6712bf0cf002f035e GIT binary patch literal 37138 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 Mn`Cb+H<|_h55=2DTmS$7 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00136.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00136.bmp new file mode 100644 index 0000000000000000000000000000000000000000..263a49f0566250e5266520d6712bf0cf002f035e GIT binary patch literal 37138 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 Mn`Cb+H<|_h55=2DTmS$7 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00137.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00137.bmp new file mode 100644 index 0000000000000000000000000000000000000000..263a49f0566250e5266520d6712bf0cf002f035e GIT binary patch literal 37138 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 Mn`Cb+H<|_h55=2DTmS$7 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00138.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00138.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a2d5035013c5f0686bcb3d04dbdff973af841df6 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00146.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00146.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e87d7b5a21ad5e1bdad2426887d12196c76eb1a4 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00147.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00147.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e87d7b5a21ad5e1bdad2426887d12196c76eb1a4 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00148.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00148.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e87d7b5a21ad5e1bdad2426887d12196c76eb1a4 GIT binary patch literal 37138 zcmeI*2b^U^l?L!pSdyYHtP3WVQAA7_FoUA3iUACm6?IG))-`8QQ9+Sa2?hjF$E>Jp zP9UO~b*<#sjp6*I#u`eUi)ry zHiC?+TQ1?Rfiri`_IJ3UstWF|7Pm{y4T+OJ^G+i&e~LxqwfA|dBlubje5GxkgI4p31rYx@A zVY5k7F4&dDabEJLI(07iPhE+K&AO6%(yrXILj0pyAbl8OaV^N>4a7GIUKYoB$)8$~ zK55sItFgjxxh#-A46!)LdHf#;4h$Ip>4O__EML+)NZ@&cGH{Q^iFrW(|>m5(OtRE zeeQF++ud%@J@>rMb*{71PCL0D2Rt#sq2xwH^a)Y2ru@uP!VvVtQ`>E~-PNyt^;_QZ zmiN8yeV_ECCmntC(QDVPJ^uLPPwvY5y7IyozVMmPeCDGb^{9RK-S^tpzV@XreQBmB zh6qN8!iWeBF(KF2+>fRk3*_c$h%jU^((`pnA|mSXEw|hwjGwJ;9l_sTm>W zl||=y@0sI%ziQ{gG!yiE6+;h)`8gTBA{rdn2@ZICm zAOHBrbIv)(Z8(498{hcwhd=z1m%QX&_qx~RE_b>fu&ZA6s(7v+n$FV&cf8{r zk2>n8Lk>A4vPOug(GmwAeDLER|M(qt*kM6U9=aJi7>^cRf6u^y|9!#}o?xct2Os&! zM}jtATyV~9MSyUX)OQts`!}c$ffa_>nmaV2;ubD=uE}&r@tHclwYnXYv_ek`Nc7|v zzxc)ILspg47-|r0P=b6FqtI8Cg>IkSL+3_km4^NYKJbBuKJ=kNFWPeJph1ED2%Au~ zE*W-jdCOaHV3bbgRR6|^FMHX`w%KNzDKS2w&+65y_2y}(oyIvus`k={UxR%*b9ED% zFZ63oa%TD$yx;|xGhmcoH1XB1epN8MP)(ZqTa4>)O6knkyyi8)!V(JG{O)(Z3rs@P z)$z~3Bm`C%7TdSI?QMbqYrRr!qJJ8F&r_k#t6bzF7rDw+t|Ef^@|VB->tFvG=V%zT zrlz!|OsjT!BTq$VBLD}F;4efw+w5CSv@wKmg?PDMN*nf9Lz<$CBCw%5JpV9Uzc`7<%iv#{; zlOO)@hoYA&U-`=X*T}d$e=&ZIYh2@1uX>gC(!65J6^zfqpzYqcFqed=ro7WnKb@oJ zAVe~2)~vCTyk=L}waRU7a~rGEM?B&YuYdjPKlQ0k{p@EygJ=i>lfW&qh|z(2CN?x01UB#`T_eafO3HnQVX#T4jwMluLXB6v;uUwk^PO*WqZ{qK^UnX;6>B6D z`jxJ9rMunjZqI%0bER9p_r34Y(Vb~|sn`th4*~?l9D^jgh@V6vpiWnSCZ6gfBTixnb`|Y>iUR}xh zyw7=p4#w3Jbjm5GungsS@Q4U8+pG^qw6^*}6b{o~CsW?g# zK#TDLzF~a7``z!t7rwBkMw(JMmBoC|d)~tv!bSC%&loQlw@^Ijpo6RuOIvI?+~TjM zikYJ{^tA}ei)0`4pa+3)g+SrlCu(5Hj6$VHTAeY}e0E?oSNrYKpPXG^XCsLtkxwut zCRkxo>)VO?{#VSaSVoGwKpVpfQTjR;z2Pvf$$hQRqR>~r`qllGw)$|NH@x8u`wwc1 zuT0mkTojEHrTTf5po4kL@*n-^M<4Q#hftH5*V(Z5Ph|G$){*TcHGKN5Z+&aoYMg7b zuI5JQd*A!sOJ4Glt(`m@5$MZb{_?MT-Rm+|@_3A=hKSF8_Olj;{C=Nd__RcHhV&{t zl2vg<6h3*z$O-|N1ns{2?y%{pOcmiaNL=e$*Rm|2WORlCQw}%K3BTZohT)l;b&z6~ z{q(0lZSdh74MX&05x0b~N~>yWI4zwui18>U@1)=9pQqBm^(L^K3*&t2Ti^QDt6lAC ztVm9T_ld~wR~Fq~s?LYFB+_E?v{eEftOiGKM3@h_W^39Jj8onkn6IqBrjNVuX^H3@ z;PAh@?z$_O>msFMs%Tq8)eC<05)KKa!flXPa*Q*Jg!0$F{`FZ+XX2{~J$;SA>z<7s zDP%X)ej|!Hxx(X@iaXCQomGtt81HC?bMu{^mEoiNgrSt=WV< zWEsJIfa4rKEfKlFxEe4w>?|)ygpsHk!s3%A;O`j2;OGq7KC$E&f67yyVx2}49-IRx z3rEQ!HcE`^OnqqC9=tFE^N5ZH6m+?dm0Wdr8qB_1P`|GrCi#;c7o@;U(*~rjY5k-ouj;&ql}iPTK>5d zjK}gcht0d*^{z49$m1@VFbrRx4qjNUhfnkwA&disCzyzWTZxOVNlT}RRo?vOH(%ls zmk3T4Ep+I?7UN7MpYZgjKfPkuI?pil=x|+HHdjYUu-K`o)mqyLBN*o*@sy7QC2(+O z`#9j^Tq(U_{T5i8=I8;_&p5^<1)cfoPk61gFkDZJCnB;LfB4~t4{iyx_DRjgjd2*U zCcOF0Z_b0ymGf=8E;Z@HV4SbvQk@Kt&;k=_Jn$@s8@mk2Qz0+ zWA(OZz2c&YC?!fxPoz0aA!3mOi>#I~0_0d^-t$x|D3{g~4^4WZtq;_YvLdpifD494bBY!KrUd6lS|r_>1Kbc8OD$q`bHSfc~|jKXF(cShA^ zz za&sOJ!NtGnO>dIg?t@~9Ots1&cDSjQbLOE44M8yqSb1(Zj8`vkDmIcFM_|tpYxFU0 zm$k3+a$=mrlc1w&3>6~E15BNOT&m9M@hM-!avXY<1bP{V=6$HKw<-5(1c(IeOj{(J zbka$MVn=@Jn1@g6z4CNrezp`ply%i3c)+x*ZL8h6xi+nJtn! zWTe?hqqHT;htN9e8R#1h<2*P!$e~lC@;R+BqfanyPxblFf4=2HE-fdF`3eP#@VVp|$CDW(1!We8)SRgk zufZ45F-%Jcjl@nHBCIPzonIISa7Eq}z`0|qmbUFdPyp@}fTssi*fn^xG0DR*B66EXfbZ5 z!7f;Zqh3&3MvV||fN?i}{No>A>cG6_Q;rX;Y}?yqFYx+| z{3R!9xM;DKi7vv#z#!G3>c@XQLYKCSpuB(j8&krika0yS09Neyx+tx zkF=dJ!5>mMC%)d>ezVSh<^wk|XFszMRdqU>$JHT5x?to|IKUE#EYP0pjq(gg844E$ z5HTjhI^1IMM;1PV5+iHyYExNkb-eXMjL5+`FFPoY~^+we`C@r%ZYJ13pjxRNIH`j1yeEpD~O5@kFJ z%bGK$Y86|CHRp0-9KiS3V-NdEdLCH7VWjOmxE^#))OnslL1Dz_a$?+3_v4N`4vKl? za@OglC{Iu2XfPNQ1;RP5;uItNJR;u$rPR|y}ss`D!16C>Wb!~#rwTGq>LMWo4| zDx34;W@34ahzLP*2B&tIRImB<5T~Z8DpJkOb7?+U4?I=ss_mXr3xs{w)_Yq=d7aZznT`3TuA;{$#yiAk^ zhDlqKOH&doZKJGSnb7LiKGjPGV!h2&Yn=(^QDX$-TB;lEM${=VCT(S<$t6_!i@UD_ zRuK_m88BY61;AEblRnWfL8RaNtR=KeNM3K0fI0PI zj}W!dDu-b7xWAu+jP#cClr;vcJ%iY1kdWc6*?%scQKQAUR*2)@B$1w6Bv?EmW zt7|N?&5;rj;oK5Sj`6+-EoE(C)x_E3bV>+1YZU(nAs+Ey_;?XT;N%8{*Yp`r=CvmC z6U=Zkh4f%NMEDGu-K=VI??-B}Vy$6FvlHYEX?x^er1c)EB%hNie2rPAKZ8uL?;t+# zyMPt_85Ty&OrvI-ZUw^KPcWJIN}OoHwnBM?7%v2!(M|xhujGuHVM5NpS2{bBj(P0U z5~f4%bbIS{;Q6j9YP1+<2h)Jl45o5|w51i18URNN47>+#S3_@yb4zSEjN`0i-B4PU zlIfHXU}nQyehk11tx;8twT`Ka1!~zDj9a4!! z-D1TGPR*F@D>qH7o$& z7I^$k$qMI|&^t@J=8OoUZQ0bqnA)_8hUt_Le#FK*BqNiny?jUc@PUe8978n%V85n8 z9B&?Ihv@55*64i-80xi}s20MMVd@tciYp7TH}{CI48gQMa0_9|csaZ6}$?~f__T~XxyTWjUSaOU5xMJwreWlOf z3Ot75l+CPuO{$z6ct+KjB?h-_b_7AlkE@qQXd=sf{&LZ`<#dsr5TZPNO{Edjxq_*60~{9dANw zgw?0o5~N*D%y!5ai2hwm2X=N32pDva700(NkI@0&HlqXsu)>P+y>ZRil zX56wB#6=LI?$HFBT(DND@VV4Z7f1p4>9Km8l?tAvVVL_`vMRi^{_{r=AQ1BwkW!BT z>HajZ%uBu0oEPJ|)TwP*D=e9z&(c>g7y8K&LMSgx$FgE+SDN~yc$Ju{E`hcvTYvhY zLC&tyLW5SB9^)E^Iko-$3URkr^hPjl@6kl*XXpe-x|-VT;S+~~TS2?DRbNIDb;zPv zWVRtnlxHplPQ58uVR+f3n1`XS`0!?`60Vmc`ouknp^0in_k zeqhN70Bc$axhmc*0q4HAt@z5Ik@~d`gsGJJBM4w#b`~30RaSAyyeO>pRxO;+s#P^L z!MNWHkc-1X+rgtO)3*;3MHaQ4&oNK)E*20(w1AW@6<#o7*S=jnV)-Si9KtxHkS5(F z(gE}ELr|6krQ!-1JDCuvXYayjtA5jZeOtxwtKvLP6@Ms2%xI$LZDo5ISTSgnn4wQh zk8uh!32bt;4g~lem=TQApQ&`I?5)h~nl)==W+-p)nZc`=MyrS)y!X!(HfF2UZHN+` z`9Xhi!0;Uz`qh(q!*ONX8J5|?o+=)v+mslmhSY!sUIjwh-j1ijzTS4=kHLjBrpzh; zPF6p$rx!}Pe5bV$_v4-_l9Bos7>UrurYKIXikFY7Fb)Xg5NotVFb|9(?%cW zX+>mFnDXu~*G1=Gk_ZwNHDWgRbnQEhRuX{r9D5iq+xI`E<;_0S!2laP0-Pu-Q(47~ zDG%glQtaSV0skr{ruV=9{TA%qz32HgD=>$+oGA`x5^Vu6Z5rLzZG?tR{*jv&Q&AXy zaKN@zJ~i+wHj^>6>r};?sFb&CH!C1C-B1#@Fw#7lV-z=X?Di?wA zw8mWGbcZnqp7D;HnoH?{Y#6$I7~sA$dSiEn~FpZ{;UWLMxTgC4XsqNN@{#Xm#d=Wpb6b$ zW-=!_d0;JS{wPF?dFI94qA|`~2OoT}1snGx6cnM&D{IA%$MZEVr*Aw)wX`sOJCA59 z(!2~8Iv>#o0w9BPl|GcvW>{bcoQk0YeZqNuRyc1_A%F!9uWQRlRB_c-0?*i2qtS8x z3MjC4l1TAaX(Sh6q=NDC!anI%D6aKh!91YWIyLU0eBJ40qnZ9z75*-hsaA@{tjZIK(U=2BjMZ2D<2C?b@~Srt=CKyg@TpuU-u) zJO{TYPZ@m%@1MTXsU&OWLCsZKPjFG;W@B^uVgXM{f2eIV9*^;A6-uVtEplu~@?0mK zbdu}@M+O4A9dfIn+X6CxZ_QwdB{jj`{!Wzlj6@XLK~S~Q>d3mZijy!ryLEBYn9CAV z*6SY&Z7WP6o~4eFR9mC8?Q}o40A4NXw*tB~0j}w9J!ZIAh#Hy}V5FNls!XFv8PkIj zv{fwc=Plj6+ZDjIC1wdRDBYc4&VP7Ncr&k{!5erWQp}E}JeWtH!TYDLOa{7Do;a1@ z5pL9&zIfb&6rK*_Ixs32%$_5ehn0?U`rGmh@H@>t%V~l*h-rkbV0;=Y r{lC7a#cvQ4qP^$u#3W)5Q}DPlD;OWQ&qjIm?-tP;WpAuBng#w34-rUP literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00149.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00149.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e87d7b5a21ad5e1bdad2426887d12196c76eb1a4 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00150.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00150.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e87d7b5a21ad5e1bdad2426887d12196c76eb1a4 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00151.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00151.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e87d7b5a21ad5e1bdad2426887d12196c76eb1a4 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00152.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00152.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e87d7b5a21ad5e1bdad2426887d12196c76eb1a4 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00153.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00153.bmp new file mode 100644 index 0000000000000000000000000000000000000000..890ec09b316bb6d8c92e6a5c2e871e1096496049 GIT binary patch literal 37138 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 z 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00155.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00155.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9827d3db6c58cebc8bfd6467f9959c7be8ccb114 GIT binary patch literal 37138 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00156.bmp b/stage2/03-install-piaizu/files/fb/graphics/anim/sonylogo_00156.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3f27d11965e3524bac13134e76927104af954b8b GIT binary patch literal 37138 zcmeIup$OOOO%2#Sc} z?wpgHoH@yfbDWGi&N!J&@@eu7Zr;C``*OSK*Zq38;c+ahx~pEjy0?DsR@JR~{pq@l zMw|M(qWynL3;kM{qlGBjWLu0D-#Tiu{ntJaw2%BpHk_UWqXFF3<&9PLz4s|__; z!O}rwF;JA2Kx?L?P~~KEp*-soijR%9Sht>apBQLbkV$Vg1d0vMP8l!ye8}0fD_Be|@%l3I>U};7oz4L)L zFxp)E+9p zWVhQL?jMN0IDPswJ$Ued`uqFUeXd=*M)T&)3ku_bXm6y}kq{THkCEPvv9H$8bm;ej zR6G5o&GW$CI&EDNXr08y#?t-!_o=V1kDfn&9u)3&?%YXNuU@6QckfbfZ?C!+?g!Rq z&2oIs0xjQgs&8~$jN-&w=1~4SZ4D9^9i{ViqBv8Hv*2!1ZmRx$p!69E?zpYd(b3Ar ztz5ZM**~xcJ6Kaw6L7isp2I2jhdUl?v5x(!B3I{kC~zkkh>wq_n>TMN+xO_vBg)Oq zwb=7>-Q+KKuI%Jc;|>gBjREFh_fDQXX>k`q?%r#DmVbXGt+^#a(A-XTW9SdkmM@8++GYGBK?B4mWrE_wU!o+Tp^7KXN9gPN0Rq-AEPN zj!@;cqk1SRt0Hf>`)YMAHOx<^#zNo2AM(f3ym1L+_rcE+Ztmd2!8nWYHZ3hJtk0l7 zJcQ!fJ?#&vrS}cB-1}}&*mSVNEACv)<$V1PWA@y!-ud5*xPxC0c{w>bl$V#Mn813} z8~vgV_@h%&QfTbhv1%=g&$6EC>T2D$hx@pzpX)=rMvfdw_$k?%K4s{lOsCB!A)L4!mOhF*9Y9M;TdOXYTO1 zwzgLJ+ThoNpMwK@Zyg;SibuZQC}npz}`!3 z>}FX!#gaSdv%9;S9zJ|X=vVA7fU|q|?y1k<1_3&sIMH}sx@gfNRR@=U{P?k|>%xT# zibeRRaSzmwx={{kBksT#@=*?T?c2AH=FFL+Y#z%e<+yU?ibweuELfoGL!Eo}>~UEh z9H5;j^X%C(YHn_(4I4JljvYJHchDE|aX;8YZVSio6`{Sj{_NSagYvl?$8~jedYcw5 zT&S1d(s0==bFh2iws+tTYvWHw4Auk7Cu7-P&<}XqxN+m4xz@OG)|xY zp$?Qmz%`kfnGR(!M#A2}9&*3B;|_L(>ofB6NjU<+-QvZIb=F~LVfR=@j!R2Rm90kG z@O<+390!WKJ*WFTbN9y%@@JpS*SVd%?x)&(%1t&m*2@0Ez7^(StT$IN`+A}4rlzJr zWie(kBe!qg9+dA~XG=?qDsRLc+5=mII$;})=1Ecxf4NIePF8z{xF^;-?#?po-o0Br zJ9vJ!Y}w)o+%mLYcf;*$Ryp+RV?&|C7bs6^V-RmHqY&)lUt^m3DJH(;n zuBq#lx;OSxL&=)FS1`H57zsX^t-``W2VG-M%z0+cwtS4-y?F6Lm%+@rFzmHJW;~CW z|1o=^vPM& z<_>cnws%;Iu$~b|I(Jwbux!__Uw4pA$|=+EceB3)Yj4gA7kBXW?P}?vqO#8@H9ec+ z6H_QY$y^v=PgL#KUe;9S0e<;B-}IOrO75@@Wj!N~bnb9QmASig>5_wNQcju19)?`| za9+5$<1zPC-#co5^nuPi{-^11Rx5k5=UXbP-c7csXv#~qn;x%&&0S+-quw_-N6dOg z9O>Li-z|JbQZ}PBeAsO7mSs0Sp=WZKTYrR;|)~%y@T%^CF!)@VdLTSFMrp{)H#@g3TS?|6%U1@4$LS94Xu_ zUAk14LGF`HnlwotGqHDTW<4wIe`{;2t`Bdy+q`+R-X^(EX2x&qt4;HCU8{Ef1^rsB ztxY`nq=U&F{J1=(fIVj)U8Haa*7(`kx^=703Un-e-($v%ambU;7^kr>gSxP$#k-*V zy|>&+KY;^xXFTs$c;d&`eE0?PipwZbduIseo!r^H0q){;`B@LHV(I5MvtJ?S-LBSq z9|L#Tudk@6Fq9vAELev#ch37N*popW$anS=IqMMT2ibS$yhrN|cksu{=NWTGzSqtZ z-5&SJeC5j1b*;T`Y0>X$Ra-o92j5G2g1PsvF^;hQp+B65V|krp>`kzr3fCkhB@HSY zXzsGIvh;Be`%%tq;?MH=0W(-8!D5*ayBbSz_JqqEJb2LMeU~j;rkBAU zGS203dk~{d%s2Fcvy3udrjH&ys@DY_<9r3@<6JSuJ5P)RBVTd1(j0eq7n0j-CdRXN z{``5x6#5G~!Z=h`R;J$bFDWS@`0S8}zJOkEZq8NRf#NPBBZIJJL4UA4!TBqkfkImj z95_JZ$B)cmY~kwc zWQTT38Qi6Dt_NcU`U^TmfUeMY&_DVgdU1Ew5%X$XkFw5lKUeoYa^#4*2kZs-<}!Gn z8~dbuZ?-*X4+7RU@=TQEj?V?44$PU*7M24t!PkcI)9Ab(w*fKEo1hIWJFe$6>cp8s z=W|~2dQLA{vP7MAg>F~|#HfpPi_gx?@%4E{rN7#|(AqsS_71-{_2rUDdf#!Iy^S$1 z!MoKB4Grp?EY8s3IbFYgy(zx}_R`_^cRs7)svQ_lu!h8XMRJO3@f}!1f1qzL&Y~=r zhn?m+U2(^Gh%sKH@0TxMuCAAPp3<;=u=l1Sk;62 zP%q{;uEu*==P3JV+SS@a$2$K;OQe1W6FL??!MK2L*<*Q|A$vqGwCmDW>BH_ z8+)>yLm>_JY&*C&#@p~jXwc`WYCbBA#l{x->tziErRf%%;^&Kh&*%w1dG z_jK;*zo@q^g_PG;8;&h~M*awo@N{8pp< zEYrhjT_NR`X=(53n;hS%npRNalg-1pT~coSPMp-UOk3R9C?+jHHtu-h*@=U-|Q~TYq)n zSL)nK5BOtwPlNX>hNE6$<3{NI5$x$U-uRkM+J@D~enKNe$`QOTvLdH^ZT~s8xp(v7)Xh1U7RT&Z?q@+UKS0W-)GIJx5 zIU$5@=2_-h&w201=RE7~_V0IoXYBl+m-Ra9eAm3b)B3Kp*Is-5F1zDHZhftZd-R^a zV$WZ`7rpf!yw-GKy3QVa`K_)sUGKWn?DwL%S4`9Y{gZIn?e6^GGIoX6-c<0_UhUPU z*L%I!o33-6>rB_W*0pA@>}$NnYfP{Cny#jwW^199rM; z9p7tCC1ExFP@s877?sAvu?svcY^l=~eaWnjwkNKGC^2;xuF1zfq>1H>( z*>wHuUw?Y-*M9A_=3XgH|N4%HuT)?!AspB84oZVRSNq3l>!7|i<>NDcfbqIZ9-o5qT?kss38yw`o**PX|G`Sg9wE6WDd z9+=ILC;Vn__GZ(qZgs2au6Mob^n@ooVfyxO|Mux;e&%PUtFOL#dil#=KK=rN5<4kt;jZ z_%u$GfkSD2%q|vhEE_m;Evwg-uAZB=YRg^&;0t0-}sH`U;p)Ar&qk< z6+8R?{_p>udHWZC@fXvt{_3wzPkG8yrce2lPnm9Wo7+s6Tyn`gkD5#Ib95tq!f+zj z+?Ze5E^t||cyO0CPO?li;X8j?jy&s&KJtfk@OxG9X^AU5vJ2=!&p0o|&(nhX42N)o z51VzGa@3c3ja$khoaW5Ee~o!?S++9Lmw9jUCT}v`bv$xohs z;TL{k`rE(#+pXjNzy9mLrvLoU|J+)JJ$T^@UpQTP<(0E-{g4m&km;s3z3KGEZ~Vsl z`Uy8UG`xm>t#Vfw%i{J`nUzU<4U=RNOvv+W!0CH}CX zc!d|`3IF@Q|NES$48JT>*%AKnAOG?66F>12(}N!Lpy>{GxWjbA8{Tk#tqf;8gXdBw z%R36+(lhOj?glrw!E~b=-Dt)E9;fN+2Q)V?aT)PCZa8`48QRCW>c%&|@kTn$Z{cY? zz5Uz2{VU1gxVRm)K3eb$J=`0-!5d6(^EPiYz2O_a;XD?vcfIRPXW@-|Ycn=Sf8y31 zjjN;5cThd!;jQ2Lt)~Y(-~rQTe&%P+{{HvB|Mcmf{^@i0e)qfI^xy|Sc)HV_?ljLU z_>~^0D?Buum0-k2Y>Jfr!W(_wk3?r2NsJRSV)-~R1+t!%w~7XDX$gG4U`C&=e zxjcR~rnA-3?7#fhZ~fLPo$x~ci(d4iNmw~!%NpxExO5?0KK|oBetOPxo-=*-cYpWv z>}NmwO#Bc0zz8n(A;#KQ902pZ;m$ zt!3CgRN+=%8q4()wQm&etYC2A2~HHT6d#^F7w9lXvgH8w$oo@Nnf6&zx>O;eDZw$cYpVH zGd*Zv0 z7}O@n*-Ky}mUy3b9N)~tx46YEW;{-Uwz;9jKkc%coabF*=db_zuXmz1*{}_stImr{ zcJO(`-umUVWwmSjWcrxLJm%Ed_=X9u|6BqV;$kz9_tJ1W35`mXOfJ?&{vo9!lC(PwUGte~r~{NrXJgsgRhL&5l&(C8 ze`DL`ReRO;P@9v`iJv1)+h||rB?FK*7Qsh9`q48U;dh!an(>D&zx%tt`x4C)i;w&B z!ViD=!{>ef-T=|_a2$&Cq~TB5V^Is`rOa`+*x*L8g-Cfou-d>quv@b zU-*SzIAD4@!S{U6_ngND`rtuk=~ZLvSEA)^$!7zuxZ;X=zr@%#UUT%IHL3J$ZTW|RY%{M-YplFBv}=FM zb8>W$d*N*m57^k|D`n%&2*)4&$>D|PApA0yKj}$Nn(@%*8a|~(FUU*x+`0>I4~h1Xij&{CwtnbCA3EbW$|K#3 zrl2y(W1DO$pWMxL(yA+5A4@$qPo1_~v!U=nQ+xnD@543w31_++T}#}>=?6NaPyKX3 zdiJk0u=e6h<=~K=R%WfvSXcc`-n%G!801f<(}Tt{p3@6?M{(H|knj1|eu($#zx%tt zJL87__&Mss5^uE12g}0?^-HfzalB~m63)lBkypZ_EbC(pj(9pV;l2KwzUiCJY(giS z;W-ok#Iq%v_^1pU4B|ikRbTa0Go9fYtnc)Ij={0?HGE5p{^IIrr@Ejy_PEdT=}fes z8xNXiynpzv@A|G8Z*w7hq9@!&h<3Qg19|7khN2Ix(f!$<{n`7ngDV+%hFQ}uJWmhN zmn=s5mtp0t$HD9q{?*P{UYlS1#a|4?Q*~=LRNvu(2g!KES^7vb8b&^i^^~j4HCpTI zFc41J)!GcdwRV(|A0B`Cmw!2V?r1(Y=7rOR?eUEbwgrmL>HYL;WV znjHZeZkxzBy3yWQ<>)1B{p=jp>g z{KNPChke+GP4~FRJ?8T^_Fui%__?3^xykv)v0Zw|ui;#|aD`iX3!le5?s3 z8~jlmeKK~c@0>&L4fL5VzzzT46rO9aF%)0dcq{ME|NPJA_qMG{up{`8x_ z`J4NFk8LZj-7)Q;aQszoiL*WD&-jebxW*imJ>A5^Y>WJO#qMr&{DF6QFMjchryu!|AK8DF--Po)>1bj@!SNa7{onunC+l|j zksrMAkuHjF!aG@ml{-&1G=3yY-*!CrxzC-x|NFmx`mrDTvH5I{_vJtS<3B#XqX&Qg z_kaHyx`(c%KCSU1p2;IGe6Tm{y}Yvk-nHqMm&VR~)@OZID4rTzv!P_mH{OkNvQBTK z5ADk|d5urc^4{rM-#a7f9g4jmge-R^d` zn|bm^Z}dhpPuVVWL2==?ecQL4&!|}^(6##0E}j%mwws{x_%`NC%a%D`z~Lu6wz<~m z%93q%6yEC6kEN$Cbif%f{DXJ;HsUmftuNo<9o}K)$=IH6G{%0MX@m=X(@*$pqhXmh z>aINPeZ)t6#C%o@PVpHJ@lD#2pCj(^8?5|!v!VD!ejJ$^&wHrY^gjdV6fM!J$|Y3zhK=IKv=`t;Es{n0ZG z+t8+82RS;qEJtQJ-#S`LI?EIuYmlC@J8;f+vA^PQ_Dy8%T1PI&LjCOujq{)W>7Sl) z3b*!$>mN?i;I)SHn5Hb<@jch4ecGq(pV_3R?X`s)z42Znx5mS_c#F4~*Z018Am`d& zlkvNdoCpE0d)_=LBzfBL6?I-k+Cmah-}jra-UGkkK=!Y^1}(46f% zduM=q-?@fEc*B#;8u2TfEml^07cN|wy9uXo4{!KND_>#uYmCng4F8l@#(D-W;Tr$K zbA+P}HMhiz5g%g^UZo9Pt_Gt)X83}oTNi!uCx7x}-yJUFJQ=QFwsgdI4C5^t!T5Zh zY-sX`55{FYkXKl~IDO+flaAJCEIiUbhK=2L;Y=pi{5Q&=@Lb>w{;k>2ktQ^xr^4t+ z2h1hk^iAJ1?_b87GeG$oUEpEPGvL>M{nyVrYfTK#{7Aznmoa?b``&kM3N7Sqj34Ca zNH`eVo|)|f#W($qzW(4f@>06}lFDZ5t?Agf`hd@I*GY|axND0;tLJ0imxLo*+1e66 zOJ9R@CcOyvXFTH>vmM1t^OC;wEj*5`8G%Fo^L~58Bl|L@6=p*{+i{Jrg#v&Mv=gEd{6I;AiCf-QHFY5xlXk5mtUHC&MPxBn_Hk#J*)@*3w zIGL@{<=eB{-~RUdy1CZ&X{C`vo*t742eLKa@-5#o%ZFUjyRp6oKt^`(E% zcfy?YS9%d2mk>_y;VX;B)^X!{rDt}uri1#>-x!y67&o@3ooLpE@3MX0o6K8tZsQ*s zdOlH)4NZ64k)S{8G7fKfX~%JI^;U1SkE1^8FT6)M+R*qGJSqoTk!{(`k}vDna&$A$6is5Z2*LccB+8%p-@ZC#OktyM1k&vP0bwDvknmmKO- z+_>b7Rp%9bb2{3n)>F~22|9nmu`Al$=GagDv1wfA8nsQ{Yd)T?jVo#DUcGmJm1mXq zDw-qoA)G#npM=w1cVG#l+kGc}7t_ASCZ0)$d*#q=UqG5U;Sqb^|8eLUX_*s``0qT} z&}cE=a_-vjo-;o59FHH#b{h}Z^8VL`{=akH_=rariw$kgBl~P9JLDUZo{Q*E;q>T; zL*mfY*sW}rF)z%H!by0vXYKQ?>F6@eS*qMYHdH^YKix~GE&TG_yJkP7;iWS1ckCa3 z-6`SOAjg(-t#?QJc@TcJu?gapc9*U`-{U>rW47n;&Mu7jF2nGzoI2SJYuUd4X&t)k z^RV$(wGG8Lw6qR&Z-jF@@r0bom`8uSD1TR|K3>+AdjGo)J^$;_QC`W~*f7U(*{a5~ zHOyH%_DjFnfb0pJyc2f@Fx^9gaI|cL&LVN_OZ07`4IlLDY(?*0Tf6CRn-2$Nj4xyE zr7wNye6MQ#qb(f3!um9JcUdcM!d<#{%z@cVY1&0s&bcXT`taQZ(SR0q6fMHp5p}%( zZ+~PL-q!yn_^Py__-0L=Jj{9af#OYbs5m}=##H%-f&XhmFOGF+<9?J^^JdW5cIUdX zpT=D})SSFY-%lf5-{BG-`hiQ|xv=|m7~H1A={enYE|)V-_-&3Y;G8ejzJ9!C)!rt* z96!qS&f(I%vjtr90$6y&MVLJrZQWe)5dX9>@=cttKTVmZIPaR!w#0pm%THH&H0Df>K{cpZv)@KG=zLep6p?8}q`^Ihfq0 zzRCx8<=I$g86NpppV6xAz@gmxb$E(VTr#IHG=HO9B(kC#!UMx10oUPZ>BRbX`O&3OV( zmQb1I>G5pSs89MJpY(amJFT#@s_hp>6B&}1?>pe^uBPtc#REJU#~R#5oQ0!B`NNF& z^ffzKf1Bv{?CD!=`?TZS7A+%O%4CewX*9FJ96Z8(lT3^wcN&cPt-o}AY<~R1JXuLUE61LbYchj>a_#)@SA4}+?4x7<3{T+7f&7TG@MvSl zaCJNf_1)*lgSpX_f7;Y9JthNtP{yNgfyQ$r>ERmOB%5ef$N5rDU)k|!T%zSXLf=4l zCP^FP8e^@`aSi9&m3MyUcV0GqF5-AT%I31Y-?c+ey1a`G#f!=rGvwvlvg5k5u%Xe8 z59T<~-nV-mM!6m&@5;6xLPzjoOiw3T=R12XKRbId+E6m?ott^n_YKB9$L7R?XpA4* zVE4z_U*eWJTAFk|J2e+RrGJ<1?ZLGUg**8sYjQ=W-wENCwj|pbuHaa%^1;f@g;xG4 z=d6%-Le{-(%dKyH>**su@+0T_zWpwpZyme8W6A60Gc>IEW%=T0R9?LI@~y$(wC1Ec z`(7K_6>ViR%3DHZ8h2?IzfFC?)j0C|Z|3H+koAcF zrf{+)r|1WHJn`Fq(R3KyM{9hs?=qeR*o4cr^s}&``iG}EGj<)u^fkpA`jlWx&r^*8y0blh*~AJ>pW@Ciu(0{L9mY3m5j!nAZ1sfaoVzE;*CAbL94;&~(sxJG#jOUn=jM6MZ|5 zI}01yw^iN&yUz_hp4rk-G$rrSqInG}n~wMFM~8Y}+wW-9R{9?Q>g!^$q4XwC*6y$B z{+%`c9F)d(;sx0JV_%hg=xX-qIC^#1x{VF>ve%{c{36fTVK+B9Huv4$?cL_z1NGZW z?4$h-w$c6$dea?z%3h8$_2 zjkIlQyL9*_f8PXhcy8`G56*sbI*`oCpXcQF{X%k$woNb@B@=7X>tFx+$0GMEY$ybs zBXGYc+UPS{+Ou5JOAlHjE%U_3HK@3|T|JM|Cuw@*vr$~O(>et0Y-($=_+*dvD73W}qet#6&L*FM zxR2dM&trc7gYIS%(&sgPjCteOx%~3WkA=@k+E8?*@8*rxGk3rH-S^i`$&GDWqjN1S z`-kr8wf=NZ_RVf~vzZ6_goC?RYbU;CJA?Ain+;8e<6*F8Q}+gY_Jn)mEjkZ^bgVU3 zJXx#bOipra{WGoukELuoRHifdV2!~>WJ7||++pjt#;r5`_V*ec=RM83sWS-lx-pIa zAN5fmHFK(OH_4;1gb(zB&xUqh@~AYMJH3<2wdN~+9$`4LE#8IfG9KuC<+4L~*1Nl- z(s@!glx)-U=1X*b-sgSZ{_iEgpFMb2I*-J^DA*k*<#C1>+Y_;bXkw>uI`l zr};u(`Y(Dyixr+?4p~*qKwC<-r zDxJ>d_Zvj|N(WC<-Y3{_nEAbE4f3a1ib3wsLeN z`hDYb9CuPSlsp>))=!Ul%wy(pOIOknxC_&H@G!dGT&)fJ$QSnBA#(LQNA~_*tTvS1 zHYV7Qo>gvm!yC@OITQWXD)9|(x9Lr`Q<-e1y47E+JLW(8+0UN&Y21ced_HMt&dpv# zyEAa^RkltFuV`j}=utGF4{yNI&NCckfEM?2=CWbHaOxRbJ>;b8CkX-|9FEK_(k_R$v&qy8L3w=rS8 zp`86A->Ep`f`^SYefRuvG22iyS${NcydSmamt7d;P8Sa1BO8;QNp}w7w|woYr(f&e zvv93DdlySDtv!=Hyjn+xBN&bG0*}Tz%A7|JPw$o7pVD3=xmyRO*F9ThFS8p%Tc`WI)lJ_yEO~+FrLjxt%>C|nzhjYkQa055b;;h@&whIVuJ$|| z|KjvLyv@A_y+cK_wS~IQ?mg^b51ZdlH&@cF#vY!sqZhLcMOU<0gZX{4_KioofG_be zomfKo>}IwTbbj5KU6vi=+NNLGCiSdy8rR2Cwk?&>T_1GP?>&b5LG(uJLFJ-T`N|4c zzkIOtG3_W}?X1E>7kzXU9(u*-I-h<{U zdCz?2Gv_XyF|+?wnd*^2;rdFB=0V@VgkS4q4X)9$q-~ctThd($f^3O$aN;f|8;VEpMjJZFY7?EMC+AVF&I=yL9oB}9zeQ)RM29_z_H{Su zZ8R()y=tsxGs%=LDC;a_-?Y-T#_=YaFBTh0SMknR;DuXz_|`C;I7lzzAD+c~d=pMz zJQMdVhQ6#@I-eNtcNuf;H|V|teAZTQlRS1!&yM)5X85BEP5e@4c8SM}H8|FnUtFJK zTv%GTjBQm%8X56p-SR=-iF$YLJ5}Q?x#NxJsP-?U$A|PH{uKw68OwQQ(NFjZ!?`gu z;xdLue0^Wr*sjm>4*e$acYMcp%(Oe7g*M}6q;U*KZ?Y0+w~qV!F^9FGJv-wsnfvYT zzL`meOE}W87H<5LyK$fF-T&RU-04@(Je%ZuvDi>^0h%~#u;zbfhCN&16T6ljT;toA zmR?93!^Vc+9ju=@u=me*Fv{Y6eWYV!yJJ|p4}IuE_xJ2h%6^8EHP!F^-tWzL!6o}X z;;?IYse{GQkiKc_AezVilr=`p_1YQp#<2Oxd$317@{#jBCB{s1e-O=No^2E#!`tHO zv7yRy#>7=uT{Yt~;2%vis3&6Q*Rw(!!fj%CTUd@?~>dJz4^mvoC~Z=0(g_`nCw?WG@MU*|21 zr|$5IX7r|?YqXX|j)g(rCmdELOJ3|^L(?<5(mK@H&u~dzn_%VEAUU@F&ThB|;Knz; z@r-I~HM)Y;ivr-j$xXk+7_I=FC%t-t@^fI=lU{ zm%VKMme@1V^Pcy-`PtE)hW!w~?_-XNmm}Ha+E^(+cwz5co^P$lXX$;rI<8g6HihYr zwmI^wO}_y;zN1ASI(pv{Uq;xtYhTA5EXRGWoe?{Of5wh|{p1|I+vJM&(T2Kf=N7lP z#j&wnv!Tnel+Jn1B17|Sx-Bm`Mb8qBa$5^)gICYHkGFffx0~r|%?V~p=}bDbM*MlV zp~eUN(UJbUcdc)4*bR0OFRXLo?Hb?4H1bF$#(QT~@J)Z@Hjcm2;NzY*{Z)T#cMK~7 zzx42Kce~q~2#%EI4m$5!(gXd%N1r1OyN0*bV{7QLJAa=4{O8Yi?fGWIdoyc;```cm z6WV+O<6da*Y@9R8CXNK+FCK#NI{6m&tVoA@hC`>{%p~&{z34?VbZ?S7l-(;uhqbZh z;GiA(wXdB0Zu>Uz2mSm(GNoV2w13vS+qJ&WQyM;@mCbBD9nJAz3FAfjYtBwK$DwV_ zhAwqC9(zA-4>!Ei_vW)`Si&VOV_X~BH#X@oe7M$1bg%sxHh|u2bK7jFzVdKzhwHXE ze_KCC&1(*b4r8?Q4ER7F@B*IJ2ZcwTt%a4B&MvUY+&Iqg5v_Qb{TAlfucz*vUrM*u z+9%U+VS|L>+qd0wL&x|>?w&vNtuOQ(w5HI%^2)8@F3tD!?(lG~*nNTS`14JUJC$#A zqZ`e8#q19qiywz21E2F_U1^-Q@m}1X${K%5gJ<=YP+Rl{p5;l)xkI2iH@i~1n_x1H z*DrqYi|6mcY7;yvU&c0$8rFAf4Qk~im6X&*%OW&Fe z4UhOPKH8o!UAXaE`VwYi;ZA1qg_E0SP~X+}eIxxyM@IU_^i48hd%Hh0dj$WHr_ty9 z_}bcHQ`@_yk2sHOh3sef);Fy`vj_1e9>&`x|C5P&*$>a1&S~INbd5X{hEMjpJoxw? zs&!2Fxr9^ltIu#0x9{Nh1Z%T?>H4Vq2l38(FZ&N8-Dpl$rLV#4fIPb7`zr4`{f>C+ zNBD%}LAab`zVBu6gl==}+(^TcKF@eL^5K$G>6@VU20!_eKY5Mz$G$d&$$8W-ZE*36 z{l`CefM?}8>!v?Ah}&1b`s%B<(nue&mrI(nz0R>)gVO!u(zIqnm;IhZyn6xIP4Au4 z9b?eD1oJaz9hr@p6At+guiL9#8-w+WCN`tzt3!6PQ*k=CMvHXs9sF)%@8EagF?zCV z%A@^`l+)+>4KUZQ-g6&vsiIH0J7e8xEBT z(nHU)`sDRz-W%zy-ymITFVFhR_i^2wQM({KMtaA*(+oE@>45&ZajlIGv_=njR2!NM z&1a1-{G&5t`(wDg=18zK_ebIz+uyth|HH^s`IB(*j{UUP7mgz>h4B*|*hxi~j;>GqAcWIw>3M{IM3dQr?>W$PjelLE;Oavpm*f% z495dDqPf4hWt4y6@|2gxzN8PrS6p$0uI7H&kMwR%T=@qNI%$5d>^MHGN1Y4TSNaME zp8Uci{EENiB`?`O3$W7dfk{u@+mo#=GK%i{S;F=(JmZYNWx^h#FB?`kS`S3zgbL^v zU-9|&x4-@V_hERL4hEy`I5sr<=H0&cinX~3)^}ra zG-evpXbIm)#rWhhun#*CvRE^0G6++T-X&`ys~dE_xAucpbl`!PB#j zvm^AiF<%%QaY(-K@jTw|&DQ3O;12&hhvEr&ZIao@o5nmlf7#w0Xy|UuSKlC-#`q4X zoJbLUvOCU5m|x)D+P<+JjIN{FP_&P7w=eGZahhjpe}wcYIl_Zn<)>%(E8X++C3|PM zxcGY_3_73@{If^Yy}57;$B~Y;FuKNZrJmoraF01hCz=z4kK@k5hN3ZjcgD`|_Hf23 zK4nAGb9qOli_OYTr5|fNmiCitt;FN3p;Xhwp-zM5;&>uX5WVzI3V>KC@Bb`q(pY7`OiC4Zc zs2`Bu#*>~y?|a|-&RxMDeIUBVwT85_cJ2hqj*%aFvZLr)(sxuFiq2@qOX2Z%FE{a! z%$DOsJid~%xNjc34?9ce9+bY}gacfc{Mtm9^yor^_b%>uYHZ>cKBeo&q08?vjd;}W zn0DN7I^%a{oh@EE@=m{<18II(mfI!nIqpeMdeSv$qPz4seTW{vo#O@lzZh)_A;$hwAWL?YY0mH+J#lAP7ge)04t*k2dc`cR9;UZgA(=5f0w; zGW{4~`(~b>e8U-@@F;v3m|W;~c0xE>*fsk!9G>&>Zcg0rFL}V1%`iTA>nOgs_tDGy ziqqfdNJqrkF5X=b+O54M#7px`dXnvdt}vSg2eudv;pDxJbkOg8wXYa1M}h20YZ~{= zd$%9``W2_s{H8p5;%tQT`go9i z7lwCZL^%9|@%JQbD170_qlNx0zn!h$V0?u~&HOt*)?awc?%S^u zzIyMxm^HsX(_6SC2auQ6Sj-lI+S%l_{p2S<`5Noh=rI2{)9Agm{_Q_G=flGb?6-OG zWogsbbYoi@zLHOLv28DX=}TviAM}OIJ7~{}uAm`0@ZS9mSMA+ffe+fUo`iq=q#v7b zgHL*czlGJ^#8-Xr&wAFg=D9B$1}ER&^&7C;`VF6CDozIOt!B%*YXyDA@>1VM`jr{o zw!F&Wqdg1X8Mq77K2`X}gEbtbWtW1LJ82sluFlJLp9^`>#pWJ;k1`aO2RBe&Wu=8P z`I^gpFMQX#-gVX?cStoS*Y_GUS38I1dEIYbnE%-5_@KY~ENz74g`+&-XcKqm+a2z3 zhq-&QU&?=pS2id7>7;uQ#(p=2*^y)(+*Ec`dc2JWacgMyGo0W|m($NNeMwL8==SYR zeSjk#%Q#z^jU3C3dVc#a!qEt4x;D-c z>ZVin-|)9NH9oFEyhRshkA)4^PkoIz9c2IYUp=^GOU5?V!tR8&27zyD7Wmk^YRuOz zx|clEPqYX1V}3Ee`7IH5Vfh}+v%*mwnR~C|o=4w;KJkf9oWD(VzNGa6okP3+;S3*o zvBbIj5eoB1wV{ovC4JciytTjJ9e{q|hIb?X;0k|vBQMc1(jd+&o8B7-zF+lD(Yspf zRCjy&&1&A74Qxb3~fl0ReI zSir}g(eZBEHw&%H@yhss3%m|GtGJ0K>DuAZLx(&2i3a%5Lq2(v>m~<(`PnOTmUj82 zJjKZpEzJj&l_rmuRyp`qW*bz_9uPb{e{$i?hO#^LG4e(lyuh*jvCLt@^`R~Gv>hMn zOL})IZL^_xn~N6fDeKN~8vDsEl(&TRrtuW5aFV{Hf6N!A>&~RYBfRjLj#xujXV+hC zij!mMLHY1lu4lwO*Es{_yD;CVJmVS9m>&Ds$IicvV0?QvV;ep9y5G;*$aAGVe0H8b zTbt8wedtTS(I|`_c#(@WTKHC0zVhi}b;2J!stv`v##OQnmQIJwBg^*%$wdG0HJrmO zeUq-d^s!#LSh_e~nP1oxd)xRXT^qG8zFhC5OZB}5t3TqPoVw0IS?4w{qo4iRHYV_j zox(?D8yB794(AcZ2mPX>cyJBxZE5PkUm0_fwLND%ggaW`mQ3dY8~#BkTr+r1_ANy1!zo{T@|wF# z!!v0kf0p$sy9*>cZE6FJWI-R%Uc2EqwpSf#>V=Ow(t_1Fjty-NN~U0TL>}L>6g_d@ zNjSq(7=CD7;w68i1-{CrE8^-e>qS@X*I(&DeB3lfD>Fj8A9YQ;=Hq@FiGHKiyn${y zwZ@-#6@MD%+0kq$x|SY3a31kirv2m*-@}CM|Ji%VEyt?(GOe;}kPdjy;8`pgj`F}e z@$%4+EaR~>GGgO|(NmoFS^pZponb)}T7xAG!O38*wIcdd%JACO4TL|MW=lKDU*(g zYkS0{J~l!9*+Z~*;GGM{4yHTeJP@Z|sei4U; z-fh4KT_7BV*`sXI8eQtkS5_V8DVF_@_>Xz`D&BY@x8zx#x|`~cZ3!>W;-`zw{d8yY zT6^^=4=&4gca7KfsHfJ8)i*b!o7vE9dISGxpeOk3+a&LJY7-p!lN}lJ3&&Gqq47{! zWi~)<8NX0N*f^=^7^eEP`#k?#kGSU z_6XhKV2t~=ME;T=^*!F(L@vp3+gRDeyMxjjhrXwH%2S@Q|9cc`xUJ!g*2udPItP~E7=|G?9%48{tlbRhE~Tp40vwS zCHc`}{-rNBz3EN&*GRQ>7SNvkwtIi!7p`cs&*lDS`iXN`3* zTbR7E$;GuPt@%&-*q3%IQ~zV1zVEsB-d)Z1q0CjBvp{2+W!PR`4!y09w#l>dhlTXG zHH|$t=Q4du?tON6p?%~B9-_7UV7#g9n2y)+UAp?kl`o&%Jo_|X*XEM9=1{-EaLZfX za(~~)T$|lFEFUV57kI+Aj`bUk=Do}IzJpuy=AXlQ@5j~AZf%P@o5|_BcQ0@{s#ABY zZ!g^Ma67Ytmc!z`t-SAXHhE{@e5+?1!-p=1m-B$`>9zKb*W3CzjlA35_O`PetkKvO zV|2;8r3~cLlWdcGXI;^98aS@CNru+(^eOwY#IrbDomT}p__Hn6b!?9PcVlxLmyJ{7 zu`${BT^r|YW#fJqs15CodtvIiN7?u$2Yb8m*tjqcJ8$Lr(EUxkGd=tZUhslB?hIm1 z-Ds|z@=gMFjy8ROBQM=|U*mHuTGwnRnwR`Mh<~F^%uZIPw#ahXpLcuC?%}I(h$rkO z9--m5P8;aw#%E}8d23$YQJl8mKiU)R=)ZNaxN^;-;zxDHn7$fo+C3?^OIy*4zMd`7 z&+d$KU+3LVL*LivUE*FG9*w=VddoER^2@x_j^oufT;)d>TGp;W%dWsZMPj7KfvjPfxe;AD+=>?7&lh z&8O*pZTRNQGlg?YY%2Tadk5!|jQ8dE-8If$I>*MA*tdGz;~qEPgWmhF`X3>F!V|u^ z&Zx>8`8~!fTbj7=NjtcOgSPQ9J(f4>5gOQ2Yiz$|fd}>@ofliK#dqbYa^@`c@z%Q` z-*|d|c%S>+XWru(b!6nnQh%3va9CcA{Zv<*bZ?srr^7()Ez3*OUt>wX$zs$W<#u)Y z;6^&6)$S69(~6@74IsJIKge^@2%Z)mYwhaWI;Z}X;lg*0to*AjS#)RApYqNE*6+AR zTS0f`JG;-}dF7MES{-R@fM;rZ>Ar_C{+;`D&YOL87RLQ3o~fPr_Dn7AJ(n}V&WBoq z`JV3{_qfNrhh*i(9r?dgV_FhO734!(pVc^s!Ip zRQ#TbJ*0c@?fE|JVGo<%?|3)mJdiVM_~`kY$5(b&I^JJ-<(0E6oW;H8J?}a1hxvWJ z_7}#!gyDy$;kCvOX=~}rw$|dC>Y<&h?Inyihk@EqJ{?)=vApn6<{&%1Mvt`kr7dAj z+v(w9a6WF?x%0h$BOco1&>xL#tTOTFxc%-@9}e}ed^#4CzjVsQN4TmFo+aLJ2=66+ zyT;*rSQqW~)a+-ovFzdqo%8a|qWNhXAN3vIMqJ|Kn5JxP1*N?z-4Z|X((oxKO`I>k zyb+>{Ua_x!qYEFMxxiaq+*x3}Zw)-wAHyRqrH^Ub@TmO%5AZm2o=1L-dX;=e8b_SV ZKMOeG6+XdD{g2~etiP%JX`~N0{vTUPPagmP literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/sonylogo.jpg b/stage2/03-install-piaizu/files/fb/graphics/sonylogo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b93bfa0269c7c23c02ff73c0c1aa718913c14130 GIT binary patch literal 7398 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 literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/wifi_ap_b.bmp b/stage2/03-install-piaizu/files/fb/graphics/wifi_ap_b.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b597a81cae3118647110cc16f7a8f1ac7a6bdc7a GIT binary patch literal 16098 zcmeHOTZm0j7~X?ia=*vZ3=>9)B=<~BGR*^JcpxUGd6*h$iiF~gTuMp^nM{-tdGO#x z(Ucc=k;a2)TvE)CklcNr*-O9OY3;T4WzN~B^*7(_%YR$n`qx=|t=VU)mOfwP{gwUr zy#tsBECEWqQm;3TtDtWm+znhR`R#e#KfF;@UAtK+Opm=x4O6k(hNx)2cMj;6N{0Lf z9g6gK0dnjFrU1nz!$9Z`K#p&L3ZU4;aV(CCx;nZ#W~B$*Sj|eM^zC$Y)b~$Tw62a> zsg%B*u8#Wt$%@w1F)NkQx6{>8-#=N=x;kd1Qu=nfI_mo;D_U2_tW-+hPMbPr^>64l z9P|6eLSHML)`p`lPCj)dA<2t@BPsID+hbrpF9Kr1u?#*Zfw2MKLbx1`MjQk9zNQ1H z1cGA1u?9|`0mfMm6w2q4@7QhwY}a96B9Kc=IMQzca2;U0Q$W6jW9t?06KDo>{cg$; zVZ8pp8Gt;m0b!qYn4}_j$^EZ>>kKm3a8%(~NAf(VZuIc+f}el2VcsYl8Ty2uXQg4D zIA(GjHu`y6aFq9T@uPAafuIlkd?R%UV(R!U3?-aHp8#FJXm!)z7?mSK*8&`~XL*s5 z^c8XIaL#-i#XXbLI2;+DbN4%7DlZZiIj3=4UIsoz$Pt(0T;ycmHbuxC<{~-r`zOq^ zE6gc}o*dP4^bO9Ve0Svq{MrE1IRK_cA~`OH2RY6$^8DY39NPiTO=TwxIVL49d43T(nL`)10!ogFEjptJ zI+>q)9`1q1Sj17|OY&0ZY;V0qtQoMS?^+9=FjMlA963h50F%NT1NsfPR(oH?kG19g z$wpSdnEqupP6oDeTvqxy7902lO=jW7Uf>eIXHYd@E8K&81^U=JhSFk zT59q;4O-z)?g5OuHBP{Y zzHEn_XBp-Q!1i9z-*up mh5Le;F&j1x{@hnPaXsLA!1aLZ0oMbr2MW6f)Ha5&OxmW*h5zY|K5!&T?=IT^ltoG(Zc0pB>e{#89e;7uNo-o}SV$1zvJ65FM zOtEVGxkbVO6^XESNe@%_)dD$g68Z@HnjEf#Rte)v{8B$5~s)!t+xtt+jQmmX#_z z&e}Q_o}X%It>$%XuSuRDOcKyrlGGgQMFjXpy)C6(CfG35mkNAmx>e{Zv?M7x@_q9c z0=#pC?m}BgHa~vB*d{Ozz&aNCr6DCp_5;6?7&qTJ4;CsZK0kh^XcCCOLwH;0CbT9g zIU3g(DH{dL^+Ic?aQT9Zd8>=%=fRnGtHtDq^HIXfg5@~{V+CcgxGfgHvSkI^r^1kI zgX%Fk)~nx>!qIvBn`E=tg{NPw8z`Kl!lX~eJgujJpg3Y_s|4D3)ICc~k3Kr9kr;F@=gtq%s7AyWP zpCuAveJ2pxL_c!xUcW2MSfEVF(P)~a5c>f$gmPT4)7C4~mRjZRwLRL9aklgIl8n8j zYB4#&HCG^)3#d4GMmqL)oUIu3!N9XdWoJilRj|)fS!jPcm#8zx_c#4WDIW^tYPv9(W8VE=@2?|R@(3PH#-9CYlY21$}?Z=Iue@qVRC$qN{~90uM61c2OEWdcAYt| zI!M;P1US079+wB(RA-A(OUV&_&h8(D{#1fYR>}B27Ho|EED7EIQ}{W!NiFyu;$2z(}&*>i4T~kL%AqGd^c- zRUHxh*qc7bFIC6J`5G&;)R8@DUg)XSl|vCEu_j^ zIdHbLcaF2AGtP&dEmnOg_)c*Sb<%lqCuPVRgPpd{nYLo9ZwAiQD*b-v-JJW5 zSmetyT#6X?K#{yJzM{K^L7Eg z^D;!NndQzJmpZ2z`klW45Eo2#jW+k#z7;s1{Mq2TwyH9BD+TWL!I|EjR9_?zpU*!7 zgi6Q^ky@U!^91NC+n_x56cgvS-F4>2Ij}?^Hurt0dqos23iEuYK&&0YvqA@psE2ANXryyd<# JVq&KC`4=jG@*MyG literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/graphics/wifi_ap_d.bmp b/stage2/03-install-piaizu/files/fb/graphics/wifi_ap_d.bmp new file mode 100644 index 0000000000000000000000000000000000000000..07de33db687967fa5852dca7699aaa0d758da09f GIT binary patch literal 16098 zcmeI13y_v&6~~uQTfCqmL7&E1S~8mJPZy-QNw&@o_K$Y;Cj)39SU?_;)Z8Y;Dw+|4j$^V3_bee2j;R;uN= zijF@5_Nq95M%Qs0;*SP8P7Neh2di zFt@-Z6=OD<z9Ula&$lVD@nw*{{ulL`wRP1$YZjxg6xkm@x1%< zi1duVQ!Fm*|AGG!3l>2oeB_|0 zPth*(MshU9tH4bl^0dBZiuu;QBpbSrJ=5O>5${vTdF(eQo4>M^N!@*5Y}r7&N{-eT zYd~i;JLhstioYH5uYhB=7M%uak-rc|&H5ekZpqm@$~YUrw4_(u6~z7W5b}7HC90C6 zHSM3kerAC<-!acu7dGv=56`N1iF)tt&gKYpJKe*leqvI)rsLxf*mFSrIUTA^pCgd& z0@}U?UJE*-DmnVxIB+{K-eQo+T5t={c0X_*2hB%NFJ_0b#J%If$32(%c8|V>oi`(V57Z zqQ1_^${KPbIT~&OaLncUer=(*-URK4@EFklZ@?NFbPeqtZfwU`#-|s)!uIczt zzXm)3@|o|jcKz9Cjz*jc9N)KW6x1JnD^P!Bp_9E6Yyj$gSCU>0Vm~fz*K~Z0hPkf# z4(U*}e;!-tPEEQhVs~;hzP0-w;Po~NItlLheh*@d){?&#`XzAxrypOm^*sv&%|TGN zEEI6}!Vkf-Nmo_uZjNuGBgbQ2LGD3y;w_GKCL7*r+a%XgvZGjr?y z*s6i>GdG_IQ*d_C{Ee!C z@be6B1lEwCRs`d12t~o8j|H^jez+<5OheY^Hjs0CiuMX%J+4Y|Cr6)U{u2TXs2I%p z@eKHU@^_y_%%t9=a}GOO#|g!A?#-OzpJ}VJzE-8VIJzfe9A$nZw%kXpxFa#TC(cez z+anwEUrDDJ{kV>g6m9Ezkb6R(H6WkI+iBki;=V=PEXDqcJ~MZ`$89#kOAezDef|S4 zsao0!o%c%6AcW}W%gA>YZQmh+c0|y}xyd=YN1g|-1NG3!ILBQSeY>{T)Dr~XI754- z=Z-`+ru!@CO$gD?X~@0i}LIL;v!WwlI*b-!Z*Mq#b?xpQGXM&(y=h{$? z1Nw+LAjsU*{WcVEV_yZ-?*Lv-dOw}nuRLfNf;w~e-Va)dpx!&v+M(amK;0c6=nV+I zbE)4ql<>)gZc);`9O7C!v91hHot=y9_{_oX^UOx9%e z#%v}%NO1evuhfa}N9wIXLGH`QV_hf{|0A-`h&_}3qlL~j9+LEm-f#N54|@!Nw<>qJ_zC-H!0Lc5`oIr?+Q*2$f_yTHBR zz|ymxwd;WW`~S}YAZRi|tgX)u3PUH{v0V*fJ}xc!pXkssCVyw6Ko5bNxKt#6|m3ez)>L69W=Cw z8?#|Ea;`rd8QQU@{qAENh&@|!ZMf;ZI}^kmXdRhSinf4u)E8#yY4JWFT$t z70<{l(350NYrqAa1YL+O@_!Mzynj1+q^2szGwvCnyeEd&jL>t&VTAHMEb@C2c}5R} zH=j8vuIsuKo?)9D@b5NE?2&F_#N?)78Di#sUhv8T^qS3}NoY~R+OM$cbYeT3fg y_zMs@u0{48s+lx^;LAbu={r>`XeMn>@RNb>8dm^oe6z`Sp83GN8FjUKpZ^0G7byY& literal 0 HcmV?d00001 diff --git a/stage2/03-install-piaizu/files/fb/lib/Makefile b/stage2/03-install-piaizu/files/fb/lib/Makefile new file mode 100644 index 0000000..f46465b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/Makefile @@ -0,0 +1,44 @@ +.phony: clean format install dbg doc all analyze + +VERSION = $(shell git rev-parse HEAD) +DATE = $(shell date) + +SOURCE = $(wildcard *.c) +OBJS = $(SOURCE:.c=.o) +HEADERS = $(wildcard ./*.h) $(wildcard ../cgi-src/*.h) + +CFLAGS +=-Wall -std=c11 -D_DEFAULT_SOURCE -D_GNU_SOURCE -Wextra -Werror -fPIC +CFLAGS += -DGITSHA='"$(VERSION)"' -DDATE='"$(DATE)"' -I../cgi-src/ $(DBG_FLAGS) $(SETTING) + +include ../settings.mk + +LDFLAGS = -shared +PREFIX ?= / + +LIBLMX=liblmx.so + +CC ?= gcc + +all: $(LIBLMX) + +dbg: + $(MAKE) $(LIBLMX) DBG_FLAGS="-DDBG -O0 -save-temps -g" + +$(OBJS): $(SOURCE) $(HEADERS) + +$(LIBLMX): $(OBJS) + $(CC) -o $@ $^ $(LDFLAGS) + +format: $(SOURCE) $(HEADERS) + clang-format -i $^ + +install: $(LIBLMX) + install -vm 755 $(LIBLMX) $(PREFIX)/usr/lib/ + install -vm 444 *.h $(PREFIX)/usr/include/ + ldconfig + +analyze: clean + scan-build -analyze-headers -enable-checker alpha -enable-checker unix -enable-checker security -enable-checker deadcode -enable-checker nullability make + +clean: + -rm $(LIBLMX) *.o *.i *.s diff --git a/stage2/03-install-piaizu/files/fb/lib/bmp.c b/stage2/03-install-piaizu/files/fb/lib/bmp.c new file mode 100644 index 0000000..ee8ef2a --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/bmp.c @@ -0,0 +1,188 @@ +#include "container.h" +#include "framebuffer.h" +#include "log.h" +#include +#include +#include +#include +/* + offset size description + 00 2 signature, must be 4D42 hex + 02 4 size of BMP file in bytes (unreliable) + 06 2 reserved, must be zero + 08 2 reserved, must be zero + 10 4 offset to start of image data in bytes + 14 4 size of BITMAPINFOHEADER structure, must be 40. + 18 4 image width in pixels + 22 4 image height in pixels + 26 2 number of planes in the image, must be 1. + 28 2 number of bits per pixel (1, 4, 8, or 24) + 30 4 compression type (0=none, 1=RLE-8, 2=RLE-4) + 34 4 size of image data in bytes (including padding) + 38 4 horizontal resolution in pixels per meter (unreliable) + 42 4 vertical resolution in pixels per meter (unreliable) + 46 4 number of colors in image, or zero + 50 4 number of important colors, or zero +*/ + +// clang-format off +#if GRAYSCALE_LUMINOSITY + + #define GRAY_SCALE(rgb) \ + (((((((rgb) & 0x000000FF) * 7) + /*B*/ \ + ((((rgb) >> 8) & 0x000000FF) * 72) + /*G*/ \ + ((((rgb) >> 16) & 0x000000FF) * 21) ) / 100) << 8) & /*R*/ \ + 0x0000FF00) + +#elif GRAYSCALE_AVERAGE + + #define GRAY_SCALE(rgb) \ + (((((((rgb) & 0x000000FF)) + /*B*/ \ + ((((rgb) >> 8) & 0x000000FF)) + /*G*/ \ + ((((rgb) >> 16) & 0x000000FF)) ) / 3) << 8) & /*R*/ \ + 0x0000FF00) + +#else + + #define GRAY_SCALE(rgb) (rgb) + +#endif +// clang-format on + +#pragma pack(2) +typedef struct { + + uint8_t signature[2]; + uint32_t filesize; + uint16_t reserved_a; + uint16_t reserved_b; + uint32_t data_offset; + uint32_t header_size; + uint32_t width; + uint32_t height; + uint16_t planes; + uint16_t bits_per_pixel; + uint32_t compression; + uint32_t img_size_bytes; + uint32_t x_res; + uint32_t y_res; + uint32_t n_colors; + uint32_t n_important_colors; + +} bmp_header_t; + +int bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap) { + bmp_header_t header; + char filepath[255]; + ssize_t n; + unsigned char *bmp_data = NULL; + + int fd; + + if (bitmap == NULL) { + return -1; + } + sprintf(filepath, "%s/%s", path, file); + fd = open(filepath, O_RDONLY); + if (fd == -1) { + LOG("Couldn't open %s %m\n", filepath); + return -1; + } + + lseek(fd, 0L, SEEK_SET); + + n = read(fd, &header, sizeof(header)); + if (n == -1) { + LOG("Error reading filepath: %m"); + } + + bmp_data = calloc(header.img_size_bytes + sizeof(gimp_bitmap_t), 1); + if (bmp_data == NULL) { + return -1; + } + + *bitmap = calloc((header.height * (header.width + 2) * 4) + sizeof(gimp_bitmap_t), 1); + if (*bitmap == NULL) { + + free(bmp_data); + return -1; + } + + (*bitmap)->width = header.width; + (*bitmap)->height = header.height; + + (*bitmap)->bytes_per_pixel = 4; /* We use RGBA in as STD */ + + lseek(fd, header.data_offset, SEEK_SET); + n = read(fd, bmp_data, header.img_size_bytes); + if (n == -1) { + LOG("Error reading file %m\n"); + return n; + } + close(fd); + +#ifdef DBG + LOG("\nFilename: %s\nsignature: %c%c \n" + "filesize: %d\n" + "reserved_a: %d\n" + "reserved_b: %d\n" + "data_offset: 0x%x\n" + "header_size: %d\n" + "width: %d\n" + "height: %d\n" + "planes: %d\n" + "bits_per_pixel: %d\n" + "compression: %d\n" + "img_size_bytes: %d\n" + "x_res: %d\n" + "y_res: %d\n" + "n_colors: %d\n" + "n_important_colors: %d\n", + filepath, header.signature[0], header.signature[1], header.filesize, header.reserved_a, header.reserved_b, + header.data_offset, header.header_size, header.width, header.height, header.planes, header.bits_per_pixel, + header.compression, header.img_size_bytes, header.x_res, header.y_res, header.n_colors, + header.n_important_colors); +#endif + { + unsigned int x, y; + int padding = 0; + + if ((header.width * (header.bits_per_pixel / 8)) % 4) { + padding = 4 - (header.width * (header.bits_per_pixel / 8)) % 4; + } + + for (y = 0; y < ((*bitmap)->height); y++) { + for (x = 0; x < (*bitmap)->width; x++) { + + uint32_t *src; + uint32_t *dst; + + src = (uint32_t *)&bmp_data[(x * (header.bits_per_pixel / 8)) + + ((((header.height - 1) - y) * header.width) * (header.bits_per_pixel / 8)) + + (((header.height - 1) - y) * padding)]; + + dst = (uint32_t *)&(*bitmap)->pixel_data[(y * ((*bitmap)->width) + x) * (*bitmap)->bytes_per_pixel]; + + if (header.bits_per_pixel == 32) { + *dst = GRAY_SCALE((*src >> 8)); + } else { + *dst = GRAY_SCALE((*src)); + } + } + } + free(bmp_data); + } + + return 0; +} + +int bmp_open(const char *file, gimp_bitmap_t **bitmap) { + return bmp_open_path(".", file, bitmap); +} + +void bmp_free(gimp_bitmap_t **bitmap) { + if (bitmap) { + free(*bitmap); + *bitmap = NULL; + } +} diff --git a/stage2/03-install-piaizu/files/fb/lib/bmp.h b/stage2/03-install-piaizu/files/fb/lib/bmp.h new file mode 100644 index 0000000..ab54d88 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/bmp.h @@ -0,0 +1,32 @@ +#pragma once +#include "container.h" + +/** + * + * @param file filename to open, like logo.bmp + * @param bitmap bitmap that later can be used in a container + * @return Returns 0 on success, -1 on failure. + * + * Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap + * that can be printed in a container. + */ +int bmp_open(const char *file, gimp_bitmap_t **bitmap); + +/** + * @param path path to file + * @param file filename to open, like logo.bmp + * @param bitmap bitmap that later can be used in a container + * @return Returns 0 on success, -1 on failure. + * + * Opens a .bmp file, decodes it and creates a gimp_bitmap_t bitmap + * that can be printed in a container. + */ +int bmp_open_path(const char *path, const char *file, gimp_bitmap_t **bitmap); + +/** + * + * @param bitmap bitmap to destroy and free + * + * Frees the bitmap and sets the pointer to null. + */ +void bmp_free(gimp_bitmap_t **bitmap); diff --git a/stage2/03-install-piaizu/files/fb/lib/container.c b/stage2/03-install-piaizu/files/fb/lib/container.c new file mode 100644 index 0000000..a79993e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/container.c @@ -0,0 +1,308 @@ +#include "container.h" +#include "log.h" +#include +#include +#include + +#define ALPHA 3 +#define RED 2 +#define GREEN 1 +#define BLUE 0 + +#if DBG +#define FRAMES_VISIBLE(x) 1 +#else +#define FRAMES_VISIBLE(x) x +#endif + +static containers_t default_container_data = { + .n = 2, + .c = + { + { + /* 0 master layer */ + .x = 0, + .y = 0, + .width = LMX_PIXEL_WIDTH, + .height = LMX_PIXEL_HEIGHT, + .bits_per_pixel = 32, + .transparent = false, + .visible = true, + .frame = FRAMES_VISIBLE(0), + .bg_color = {0x00, 0x00, 0x00, 0x00}, + .description = "Master container, copy of HW framebuffer", + .data = NULL, + }, + { + /* 1 */ + .x = 0, + .y = 0, + .width = LMX_PIXEL_WIDTH, + .height = LMX_PIXEL_HEIGHT, + .bits_per_pixel = 32, + .transparent = false, + .visible = true, + .frame = FRAMES_VISIBLE(0), + .bg_color = {0x00, 0x00, 0x00, 0x00}, + .description = "Full screen", + .data = NULL, + }, + }, +}; + +static containers_t *container_data; + +#ifdef GREEN_MONOCHROME +#define RGB_BITMASK 0x0000FF00 +#else +#define RGB_BITMASK 0x00FFFFFF +#endif + +/* Static functions*/ +int container_valid(unsigned int container) { + if (container == 0 || container >= container_data->n) { + return -1; + } else { + return 0; + } +} + +/* Public functions */ +container_t *container_get(int container); + +void container_reset(unsigned int container) { + + memset(container_get(container)->data, 0x00, container_get(container)->framesize_mem); + + if (container_get(container)->frame) { + container_draw_line(container, 0, 0, container_get(container)->width - 1, 0); + container_draw_line(container, 0, container_get(container)->height - 1, container_get(container)->width - 1, + container_get(container)->height - 1); + container_draw_line(container, 0, 1, 0, container_get(container)->height - 1); + + container_draw_line(container, container_get(container)->width - 1, 0, container_get(container)->width - 1, + container_get(container)->height - 1); + } +} + +static inline int container_get_pixel(unsigned int c, int col, int row, uint32_t *rgba) { + uint32_t *px; + + px = (uint32_t *)container_data->c[c].data; + + *rgba = px[(col + row * (container_data->c[c].width + container_data->c[c].padding))]; + + return 0; +} + +static inline int container_set_pixel(unsigned int c, int col, int row, uint32_t rgba) { + + uint32_t *px; + + px = (uint32_t *)container_data->c[c].data; + + px[(col + row * (container_data->c[c].width + container_data->c[c].padding))] = rgba & RGB_BITMASK; + + return 0; +} + +void container_visible(unsigned int container, bool visible) { + if (container_valid(container)) { + return; + } + +#ifdef DBG + LOG("Container: %d is %s\n", container, visible ? "Visible" : "Invisible"); +#endif + container_data->c[container].visible = visible; + return; +} + +int container_compile() { + + unsigned int c = 0; + + for (c = 1; c < container_data->n; c++) { + if (!container_data->c[c].visible) { + continue; + } + + for (unsigned int row = 0; row < container_data->c[c].height; row++) { + for (unsigned int col = 0; col < container_data->c[c].width; col++) { + uint32_t rgba; + + container_get_pixel(c, col, row, &rgba); + if (container_data->c[c].transparent) { + if ((rgba & 0x00FFFFFF) == 0x00) { + continue; + } + } +#ifdef ROTATE_180 + container_set_pixel(0, (container_data->c[0].width - 1) - (container_data->c[c].x + col), + (container_data->c[0].height - 1) - (container_data->c[c].y + row), rgba); +#else + container_set_pixel(0, container_data->c[c].x + col, container_data->c[c].y + row, rgba); +#endif + } + } + } + + framebuffer_update(container_data->c[0].data); + memset(container_data->c[0].data, 0x00, + container_data->c[0].width * container_data->c[0].height * sizeof(uint8_t) * 4); + return 0; +} + +int container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent) { + unsigned int w; + unsigned int h; + + uint32_t *px; + + if (container_valid(container)) { + return -1; + } + if (bm == NULL) { + return -1; + } + + for (h = 0; h < bm->height; h++) { + + for (w = 0; w < bm->width; w++) { + px = (uint32_t *)bm->pixel_data; + if (transparent) { + if ((px[(w + h * bm->width)] & 0x00FFFFFF) == 0x00) { + continue; + } + } + + container_set_pixel(container, w + x, y + h, px[(w + h * bm->width)]); + } + } + + return 0; +} + +int container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent) { + return container_bitmap_at_xy(container, 0, 0, bm, transparent); +} + +container_t *container_get(int container) { + return &container_data->c[container]; +} +int container_get_n(void) { + return container_data->n; +} + +void container_close() { + unsigned int i; + for (i = 0; i < container_data->n; i++) { + container_t *l = &container_data->c[i]; + if (l->data) { + free(l->data); + } + } + free(container_data); + destroy_frame_buffer(); +} + +void container_new(containers_t *containers) { + /* Initialise all containers */ + unsigned int i; + struct frame_buffer fb; + size_t total_bytes = 0; + + fb = new_frame_buffer(); + + if (containers == NULL) { + size_t s = sizeof(containers_t) + default_container_data.n * sizeof(container_t); + container_data = malloc(s); + memcpy(container_data, &default_container_data, s); + + } else { + size_t s = sizeof(containers_t) + containers->n * sizeof(container_t); + + container_data = malloc(s); + memcpy(container_data, containers, s); + } + + for (i = 0; i < container_data->n; i++) { + void * data; + size_t allocsize = 0; + container_t *l = &container_data->c[i]; + + /* Layer 0 must have same dimension than the framebuffer */ + if (i == 0) { + allocsize = fb.buffer_size; + l->width = fb.width; + l->height = fb.height; + l->padding = fb.padding; + } else { + allocsize = (l->width) * l->height * (fb.var_info.bits_per_pixel / 8); + l->padding = 0; + } + + data = calloc(allocsize, 1); /** todo Do not allocate this amount for each container. */ + + l->framesize_mem = allocsize; + total_bytes += l->framesize_mem; + LOG("Container %02d: % 5d x% 5d bits/pix %d Visible: %s Transparent: %s " + "size: % 8zd bytes padding: %2d %s\n", + i, l->width, l->height, fb.var_info.bits_per_pixel, l->visible ? "True " : "False", + l->transparent ? "True " : "False", l->framesize_mem, l->padding, l->description); + + /* All containers must have same color format, at least to start with */ + l->bits_per_pixel = fb.var_info.bits_per_pixel; + l->data = data; + + container_reset(i); + } + LOG("Total bytes allocated to %zd containers is: %zd bytes\n", container_data->n - 1, total_bytes); +} + +void container_move(unsigned int container, int delta_x, int delta_y) { + if (container_valid(container)) { + return; + } + container_data->c[container].x += delta_x; + container_data->c[container].y += delta_y; +} + +int container_draw_line( + unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y) { + double k; + int m; + unsigned int x, y; + uint32_t rgba = 0x0; + + if (container_valid(container)) { + return -1; + } + if (to_x >= container_data->c[container].width || to_y >= container_data->c[container].height || + from_x >= container_data->c[container].width || from_y >= container_data->c[container].height) { + return -1; + } + + rgba = 0x0000FF00; + + if ((to_x - from_x) == 0) { + + for (y = from_y; y < to_y; y++) { + container_set_pixel(container, to_x, y, rgba); + } + + return 0; + } + + k = (double)to_y - from_y; + k = k / (to_x - from_x); + + m = (to_y - k * to_x); + + for (x = from_x; x <= to_x; x++) { + y = (k * x) + m; + container_set_pixel(container, x, y, rgba); + } + + return 0; +} diff --git a/stage2/03-install-piaizu/files/fb/lib/container.h b/stage2/03-install-piaizu/files/fb/lib/container.h new file mode 100644 index 0000000..21a2558 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/container.h @@ -0,0 +1,145 @@ +#pragma once + +#include "framebuffer.h" +#include + +typedef uint8_t rgba_t[4]; + +#define LMX_PIXEL_WIDTH 419 +#define LMX_PIXEL_HEIGHT 138 + +#define LMX_W LMX_PIXEL_WIDTH +#define LMX_H LMX_PIXEL_HEIGHT + +typedef struct { + int handle; + int x; + int y; + unsigned int width; + unsigned int height; + int bits_per_pixel; + int padding; + bool transparent; + bool visible; + char frame; + size_t framesize_mem; + rgba_t bg_color; + char * description; + uint8_t (*data)[]; +} container_t; + +typedef struct { + size_t n; + container_t c[]; +} containers_t; + +#pragma pack(2) +typedef struct { + unsigned int width; + unsigned int height; + unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */ + unsigned char pixel_data[]; +} gimp_bitmap_t; + +/** + * + * Creates a new set of containers, allocates memory, + * reads out the current framebuffer size etc.. + */ +void container_new(containers_t *containers); + +/** + * + * @param container Container to fill with bitmap + * @param x Start filling at offset x + * @param y Start filling at offset y + * @param bm bitmap image to fill + * @param transparent Dark pixels are not overwriting background for + * transparancy + * + * Calls container_bitmap_at_xy with x,y set to 0. + * + * Places a bitmap image at coordinates x,y in container at index + * "container" + */ +int container_bitmap_at_xy(unsigned int container, int x, int y, gimp_bitmap_t *bm, bool transparent); + +/** + * + * @param container Container to fill with bitmap + * @param bm bitmap image to fill + * @param transparent Dark pixels are not overwriting background for + * transparancy + * + * Calls container_bitmap_at_xy with x,y set to 0. + */ +int container_fill_bitmap(unsigned int container, gimp_bitmap_t *bm, bool transparent); + +/** + * + * Will compile all containers into container 0 which is a copy of the + * framebuffer, and then the data is set to the real framebuffer + * to be displayed on the screen. + */ +int container_compile(); + +/** + * @param container Container to show/hide + * @param visible Set to true to show and false hide. + * + * Set a container to be visible or hidden. + * Content of container is not destroyed + */ +void container_visible(unsigned int container, bool visible); + +/** + * @param container Container to move + * @param delta_x Move steps in x axis + * @param delta_y Move steps in y axis + * + * Move container with delta_x and delta_y + */ +void container_move(unsigned int container, int delta_x, int delta_y); + +/** + * @param container Container to reset to inital value + * + * Resets the container to initial state. Destroys + * all contents. + */ +void container_reset(unsigned int container); + +/** + * + * Closes the framebuffer, frees all memory used for containers etc. + * Use this on exit. + */ +void container_close(); + +/** + * @param container Container to draw in + * @param from_x Start x point of line + * @param from_y Start y point of line + * @param to_x End x point of line + * @param to_y End y point of line + * + * @return 0 on success, -1 on error. + * + * This function will draw a line in a container + */ + +int container_draw_line( + unsigned int container, unsigned int from_x, unsigned int from_y, unsigned int to_x, unsigned int to_y); + +/** + * + * @return returns amount of defined containers. + */ +int container_get_n(void); + +/** + * @param container Container to container_get + * + * @return pointer to container. + */ +container_t *container_get(int container); diff --git a/stage2/03-install-piaizu/files/fb/lib/framebuffer.c b/stage2/03-install-piaizu/files/fb/lib/framebuffer.c new file mode 100644 index 0000000..2def145 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/framebuffer.c @@ -0,0 +1,62 @@ +#include "framebuffer.h" +#include "log.h" +#include +#include +#include +#include +#include +#include +#include + +static struct frame_buffer fb = {0}; + +struct frame_buffer new_frame_buffer() { + + fb.file_descriptor = open("/dev/fb0", O_RDWR); + if (fb.file_descriptor == -1) { + perror("Error: cannot open framebuffer device"); + exit(1); + } + + if (ioctl(fb.file_descriptor, FBIOGET_FSCREENINFO, &fb.fixed_info) == -1) { + perror("Error reading fixed information"); + exit(2); + } + + if (ioctl(fb.file_descriptor, FBIOGET_VSCREENINFO, &fb.var_info) == -1) { + perror("Error reading variable information"); + exit(3); + } + + fb.width = fb.var_info.xres; + fb.height = fb.var_info.yres; + fb.linelength = fb.fixed_info.line_length; + fb.padding = (fb.fixed_info.line_length / (fb.var_info.bits_per_pixel / 8)) - (fb.var_info.xres); + + LOG("Framebuffer: (width %d, height %d) bpp %d, bytesize %d (%d) linelength " + "%d, padding %d\n", + fb.var_info.xres, fb.var_info.yres, fb.var_info.bits_per_pixel, fb.fixed_info.smem_len, + fb.width * fb.height * fb.var_info.bits_per_pixel / 8, fb.fixed_info.line_length, fb.padding); + + fb.buffer_size = fb.fixed_info.smem_len; + fb.buffer = (char *)mmap(0, fb.buffer_size, PROT_READ | PROT_WRITE, MAP_SHARED, fb.file_descriptor, 0); + + if (fb.buffer == (void *)-1) { + perror("Error: failed to map framebuffer device to memory"); + exit(5); + } + + memset(fb.buffer, 0x00, fb.buffer_size); + + /* Return a copy of the frambuffer struct */ + return fb; +} + +void destroy_frame_buffer() { + munmap(fb.buffer, fb.buffer_size); + close(fb.file_descriptor); +} + +void framebuffer_update(void *mem) { + memcpy(fb.buffer, mem, fb.buffer_size); +} diff --git a/stage2/03-install-piaizu/files/fb/lib/framebuffer.h b/stage2/03-install-piaizu/files/fb/lib/framebuffer.h new file mode 100644 index 0000000..db9435e --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/framebuffer.h @@ -0,0 +1,25 @@ +#pragma once +#include +#include +#include + +struct frame_buffer { + int file_descriptor; + + struct fb_fix_screeninfo fixed_info; + struct fb_var_screeninfo var_info; + + int padding; + int linelength; + int width; + int height; + + long int buffer_size; + char * buffer; +}; + +struct frame_buffer new_frame_buffer(); + +void framebuffer_update(void *mem); + +void destroy_frame_buffer(); diff --git a/stage2/03-install-piaizu/files/fb/lib/fwatch.c b/stage2/03-install-piaizu/files/fb/lib/fwatch.c new file mode 100644 index 0000000..4aa6438 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/fwatch.c @@ -0,0 +1,123 @@ +#include "fwatch.h" +#include "log.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define max(a, b) \ + ({ \ + __typeof__(a) _a = (a); \ + __typeof__(b) _b = (b); \ + _a > _b ? _a : _b; \ + }) + +#define FWATCH_CLIENTS_MAX 5 + +typedef struct { + fwatch_cb_f cb; + int fd; +} fwatch_client_t; + +typedef struct { + unsigned int n_registered; + fd_set rfds; + struct timeval timeout; + int maxfd; + fwatch_client_t clients[FWATCH_CLIENTS_MAX]; +} fwatch_t; + +static fwatch_t fwatch; + +int fwatch_add(fwatch_cb_f cb, int fd, char *fname) { + + if (!cb) { + return -1; + } + if (fwatch.n_registered >= FWATCH_CLIENTS_MAX) { + return -1; + } + if (fd == -1) { + fd = open(fname, O_RDONLY); + if (fd == -1) { + LOG("Registered %s fd:%d callback %p\n", fname, fd, cb); + return -1; + } + } + + LOG("Registered %s fd:%d callback %p\n", fname, fd, cb); + fwatch.clients[fwatch.n_registered].cb = cb; + fwatch.clients[fwatch.n_registered].fd = fd; + + fwatch.n_registered++; + + return 0; +} + +int fwatch_start() { + + unsigned int i; + int maxfd = 0; + + FD_ZERO(&fwatch.rfds); + + for (i = 0; i < fwatch.n_registered; i++) { + int fd = fwatch.clients[i].fd; + maxfd = max(maxfd, fd); + FD_SET(fd, &fwatch.rfds); + } + fwatch.maxfd = maxfd; + return 0; +} + +int fwatch_do(int us) { + + int retval; + struct timeval timeout; + unsigned int i; + + timeout.tv_sec = us / 1000000; + timeout.tv_usec = us % 1000000; + + for (i = 0; i < fwatch.n_registered; i++) { + int fd = fwatch.clients[i].fd; + FD_SET(fd, &fwatch.rfds); + } + + retval = select(fwatch.maxfd + 1, &fwatch.rfds, NULL, NULL, &timeout); + + if (retval == -1) { + LOG("Error occured while waiting for select %m\n"); + return -1; + } + + if (retval == 0) { + return 0; + } + + if (retval > 0) { + + for (i = 0; i < fwatch.n_registered; i++) { + + int fd = fwatch.clients[i].fd; + + if (FD_ISSET(fd, &fwatch.rfds)) { + + if (fwatch.clients[i].cb) { + fwatch.clients[i].cb(fd); + } + } + } + } + return 0; +} diff --git a/stage2/03-install-piaizu/files/fb/lib/fwatch.h b/stage2/03-install-piaizu/files/fb/lib/fwatch.h new file mode 100644 index 0000000..1c6e930 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/fwatch.h @@ -0,0 +1,30 @@ +#pragma once + +typedef void (*fwatch_cb_f)(int fd); + +/** + * @param us Timeout time for select in µS + * + * @returns 0 on success, -1 on error. + */ +int fwatch_do(int us); + +/** + * + * @returns 0 + * + * Will start the module. No more registration should be done after start has been called. + */ +int fwatch_start(); + +/** + * @param cb callback to be called when file is ready + * @param fd file descriptor, if zero, fname will be used to open file + * @param fname filename of the file to select on + * + * @returns 0 on success, -1 on error + * + * This function will call function cb when select notifies that + * the file in fd has data to be read. + */ +int fwatch_add(fwatch_cb_f cb, int fd, char *fname); diff --git a/stage2/03-install-piaizu/files/fb/lib/keys.c b/stage2/03-install-piaizu/files/fb/lib/keys.c new file mode 100644 index 0000000..b9a4145 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/keys.c @@ -0,0 +1,185 @@ +#include "keys.h" +#include "fwatch.h" +#include "log.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define N_KEY_PRESS_CALLBACKS 10 +#define N_BUTTONS 2 +#define WAIT_TIMEOUT_S 30 +#define EVENT_FILE "/dev/input/event0" + +/* internal typedefs */ +typedef struct { + key_e key; + struct timeval time_pressed; + struct timeval time_released; + double time_hold; +} key_action_t; + +typedef struct { + key_press_f cb; + key_e key; + double time; + int handle; +} key_press_event_t; + +static bool already_started = false; + +static key_press_event_t client_callbacks[N_KEY_PRESS_CALLBACKS] = {{0}}; + +static unsigned int key_press_callback_index = 0; + +int key_time_down(key_action_t *key) { + + struct timeval result; + if (key == NULL) { + return -1; + } + + timersub(&key->time_released, &key->time_pressed, &result); + key->time_hold = (double)result.tv_sec + ((double)result.tv_usec / 1000000); + + return 0; +} + +static int keys_parse_callbacks(key_action_t *keyaction) { + unsigned int i; + if (!keyaction) { + return -1; + } + + for (i = 0; i < key_press_callback_index && i < N_KEY_PRESS_CALLBACKS; i++) { + + if (keyaction->key == client_callbacks[i].key) { + + if (keyaction->time_hold >= client_callbacks[i].time) { + if (client_callbacks[i].cb != NULL) { + client_callbacks[i].cb(keyaction->time_hold, keyaction->key, client_callbacks[i].handle); + + keyaction->time_hold = 0.0; + return 0; + } + } + } + } + + return 1; +} + +int keys_register_cb(key_press_f cb, key_e key, double time, int handle) { + + if (!cb) + return -1; + + if (already_started) { + return -1; + } + + if (key_press_callback_index < N_KEY_PRESS_CALLBACKS) { + + client_callbacks[key_press_callback_index].cb = cb; + client_callbacks[key_press_callback_index].key = key; + client_callbacks[key_press_callback_index].time = time; + client_callbacks[key_press_callback_index].handle = handle; + + key_press_callback_index++; + return 0; + } + return -1; +} + +void keys_file_watch_callback(int fd) { + struct input_event evt; + + // clang-format off + static key_action_t buttons[N_BUTTONS] = { + { + .key = KEY_CHAR_LEFT, .time_pressed = {0}, .time_released = {0}, .time_hold = 0, + }, + { + .key = KEY_CHAR_RIGHT, .time_pressed = {0}, .time_released = {0}, .time_hold = 0, + }}; + // clang-format on + + read(fd, &evt, sizeof(struct input_event)); + if (evt.type == EV_SYN && evt.code == SYN_DROPPED) { + + } else if (evt.type == EV_KEY) { + + if (evt.value == 1) { + + switch (evt.code) { + case KEY_CHAR_LEFT: + case KEY_CHAR_RIGHT: + buttons[evt.code - KEY_CHAR_LEFT].time_pressed.tv_sec = evt.time.tv_sec; + buttons[evt.code - KEY_CHAR_LEFT].time_pressed.tv_usec = evt.time.tv_usec; + buttons[evt.code - KEY_CHAR_LEFT].time_hold = 0; + + break; + default: + // continue; + break; + } + + } else { + + switch (evt.code) { + case KEY_CHAR_LEFT: + case KEY_CHAR_RIGHT: + buttons[evt.code - KEY_CHAR_LEFT].time_released.tv_sec = evt.time.tv_sec; + buttons[evt.code - KEY_CHAR_LEFT].time_released.tv_usec = evt.time.tv_usec; + key_time_down(&buttons[evt.code - KEY_CHAR_LEFT]); + keys_parse_callbacks(&buttons[evt.code - KEY_CHAR_LEFT]); + break; + default: + // continue; + break; + } + } + } + + return; +} + +void keys_sort_registered_callbacks() { + unsigned int a; + unsigned int b; + key_press_event_t tmp; + for (a = 0; a < key_press_callback_index; a++) { + for (b = a + 1; b < key_press_callback_index; b++) { + if (client_callbacks[a].time < client_callbacks[b].time) { + memcpy(&tmp, &client_callbacks[b], sizeof(key_press_event_t)); + memcpy(&client_callbacks[b], &client_callbacks[a], sizeof(key_press_event_t)); + memcpy(&client_callbacks[a], &tmp, sizeof(key_press_event_t)); + } + } + } +} + +int keys_start() { + + if (already_started) { + + return -1; + } + already_started = true; + + keys_sort_registered_callbacks(); + if (fwatch_add(keys_file_watch_callback, -1, EVENT_FILE) == 0) { + return 0; + } + + return 0; +} diff --git a/stage2/03-install-piaizu/files/fb/lib/keys.h b/stage2/03-install-piaizu/files/fb/lib/keys.h new file mode 100644 index 0000000..8d68016 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/keys.h @@ -0,0 +1,39 @@ +#pragma once + +/** + * + * Two buttons exist on the PiAIZU EXT shield. + */ +typedef enum { + KEY_CHAR_LEFT = 105, + KEY_CHAR_RIGHT, +} key_e; + +/** + * The callback format to be used when registering for an + * event. + */ +typedef void (*key_press_f)(double downtime, key_e key, int handle); + +/** + * @param cb Callback function pointer + * @param key Key to register, aka "button" + * @param time Time the key has to be held low before an event is + * triggered + * @param handle passed as parameter into the callback function + * + * This function must be called before start. After start has been called + * no new events can be registered. + */ +int keys_register_cb(key_press_f cb, key_e key, double time, int handle); + +/** + * + * Call this function to start the thread watching the low level events. + */ +int keys_start(); + +/** + * Clean up and close down thread + */ +int keys_close(); diff --git a/stage2/03-install-piaizu/files/fb/lib/log.h b/stage2/03-install-piaizu/files/fb/lib/log.h new file mode 100644 index 0000000..923625d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/log.h @@ -0,0 +1,7 @@ +#pragma once +#include +#include + +#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) + +#define LOG(str, ...) printf("[%s:%d] " str, __FILENAME__, __LINE__, ##__VA_ARGS__) diff --git a/stage2/03-install-piaizu/files/fb/lib/text.c b/stage2/03-install-piaizu/files/fb/lib/text.c new file mode 100644 index 0000000..766c4c1 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/text.c @@ -0,0 +1,203 @@ +#include "text.h" +#include "bmp.h" +#include "container.h" +#include "log.h" +#include +#include +#include + +typedef struct { + char character; + int offset_col; + int offset_row; + int width; + int height; + gimp_bitmap_t *font; +} font_character_t; + +static font_character_t alphabet_tbl[] = { + {.character = 'A', .offset_col = 0, .offset_row = 1, .width = 12, .height = 13, .font = NULL}, + {.character = 'B', .offset_col = 14, .offset_row = 1, .width = 8, .height = 13, .font = NULL}, + {.character = 'C', .offset_col = 25, .offset_row = 1, .width = 11, .height = 13, .font = NULL}, + {.character = 'D', .offset_col = 39, .offset_row = 1, .width = 11, .height = 13, .font = NULL}, + {.character = 'E', .offset_col = 53, .offset_row = 1, .width = 8, .height = 13, .font = NULL}, + {.character = 'F', .offset_col = 64, .offset_row = 1, .width = 9, .height = 13, .font = NULL}, + {.character = 'G', .offset_col = 73, .offset_row = 1, .width = 12, .height = 13, .font = NULL}, + {.character = 'H', .offset_col = 88, .offset_row = 1, .width = 13, .height = 13, .font = NULL}, + {.character = 'I', .offset_col = 102, .offset_row = 1, .width = 2, .height = 13, .font = NULL}, + {.character = 'J', .offset_col = 105, .offset_row = 1, .width = 6, .height = 16, .font = NULL}, + {.character = 'K', .offset_col = 114, .offset_row = 1, .width = 12, .height = 13, .font = NULL}, + {.character = 'L', .offset_col = 125, .offset_row = 1, .width = 8, .height = 13, .font = NULL}, + {.character = 'M', .offset_col = 135, .offset_row = 1, .width = 14, .height = 13, .font = NULL}, + {.character = 'N', .offset_col = 152, .offset_row = 1, .width = 10, .height = 13, .font = NULL}, + {.character = 'O', .offset_col = 164, .offset_row = 1, .width = 13, .height = 13, .font = NULL}, + {.character = 'P', .offset_col = 180, .offset_row = 1, .width = 10, .height = 13, .font = NULL}, + {.character = 'Q', .offset_col = 190, .offset_row = 1, .width = 13, .height = 15, .font = NULL}, + {.character = 'R', .offset_col = 205, .offset_row = 1, .width = 11, .height = 13, .font = NULL}, + {.character = 'S', .offset_col = 216, .offset_row = 1, .width = 11, .height = 13, .font = NULL}, + {.character = 'T', .offset_col = 227, .offset_row = 1, .width = 13, .height = 13, .font = NULL}, + {.character = 'U', .offset_col = 241, .offset_row = 1, .width = 11, .height = 13, .font = NULL}, + {.character = 'V', .offset_col = 251, .offset_row = 1, .width = 14, .height = 13, .font = NULL}, + {.character = 'W', .offset_col = 266, .offset_row = 1, .width = 16, .height = 13, .font = NULL}, + {.character = 'X', .offset_col = 285, .offset_row = 1, .width = 12, .height = 13, .font = NULL}, + {.character = 'Y', .offset_col = 297, .offset_row = 1, .width = 12, .height = 13, .font = NULL}, + {.character = 'Z', .offset_col = 310, .offset_row = 1, .width = 12, .height = 13, .font = NULL}, + /* Lower case */ + {.character = 'a', .offset_col = 1, .offset_row = 22, .width = 9, .height = 16, .font = NULL}, + {.character = 'b', .offset_col = 11, .offset_row = 22, .width = 10, .height = 16, .font = NULL}, + {.character = 'c', .offset_col = 22, .offset_row = 22, .width = 9, .height = 16, .font = NULL}, + {.character = 'd', .offset_col = 31, .offset_row = 22, .width = 9, .height = 16, .font = NULL}, + {.character = 'e', .offset_col = 41, .offset_row = 22, .width = 10, .height = 16, .font = NULL}, + {.character = 'f', .offset_col = 52, .offset_row = 22, .width = 7, .height = 16, .font = NULL}, + {.character = 'g', .offset_col = 59, .offset_row = 22, .width = 10, .height = 20, .font = NULL}, + {.character = 'h', .offset_col = 71, .offset_row = 22, .width = 8, .height = 16, .font = NULL}, + {.character = 'i', .offset_col = 82, .offset_row = 22, .width = 3, .height = 16, .font = NULL}, + {.character = 'j', .offset_col = 87, .offset_row = 22, .width = 4, .height = 20, .font = NULL}, + {.character = 'k', .offset_col = 92, .offset_row = 22, .width = 8, .height = 16, .font = NULL}, + {.character = 'l', .offset_col = 102, .offset_row = 22, .width = 4, .height = 16, .font = NULL}, + {.character = 'm', .offset_col = 107, .offset_row = 22, .width = 15, .height = 16, .font = NULL}, + {.character = 'n', .offset_col = 124, .offset_row = 22, .width = 8, .height = 16, .font = NULL}, + {.character = 'o', .offset_col = 134, .offset_row = 22, .width = 10, .height = 16, .font = NULL}, + {.character = 'p', .offset_col = 146, .offset_row = 22, .width = 10, .height = 20, .font = NULL}, + {.character = 'q', .offset_col = 155, .offset_row = 22, .width = 12, .height = 20, .font = NULL}, + {.character = 'r', .offset_col = 168, .offset_row = 22, .width = 7, .height = 16, .font = NULL}, + {.character = 's', .offset_col = 175, .offset_row = 22, .width = 8, .height = 16, .font = NULL}, + {.character = 't', .offset_col = 183, .offset_row = 22, .width = 8, .height = 16, .font = NULL}, + {.character = 'u', .offset_col = 191, .offset_row = 22, .width = 9, .height = 16, .font = NULL}, + {.character = 'v', .offset_col = 201, .offset_row = 22, .width = 10, .height = 16, .font = NULL}, + {.character = 'w', .offset_col = 213, .offset_row = 22, .width = 12, .height = 16, .font = NULL}, + {.character = 'x', .offset_col = 227, .offset_row = 22, .width = 12, .height = 16, .font = NULL}, + {.character = 'y', .offset_col = 239, .offset_row = 22, .width = 10, .height = 20, .font = NULL}, + {.character = 'z', .offset_col = 250, .offset_row = 22, .width = 12, .height = 16, .font = NULL}, + {.character = '0', .offset_col = 0, .offset_row = 42, .width = 12, .height = 16, .font = NULL}, + {.character = '1', .offset_col = 13, .offset_row = 42, .width = 8, .height = 16, .font = NULL}, + {.character = '2', .offset_col = 23, .offset_row = 42, .width = 10, .height = 16, .font = NULL}, + {.character = '3', .offset_col = 34, .offset_row = 42, .width = 9, .height = 16, .font = NULL}, + {.character = '4', .offset_col = 44, .offset_row = 42, .width = 9, .height = 16, .font = NULL}, + {.character = '5', .offset_col = 55, .offset_row = 42, .width = 9, .height = 16, .font = NULL}, + {.character = '6', .offset_col = 66, .offset_row = 42, .width = 10, .height = 16, .font = NULL}, + {.character = '7', .offset_col = 78, .offset_row = 42, .width = 10, .height = 16, .font = NULL}, + {.character = '8', .offset_col = 89, .offset_row = 42, .width = 10, .height = 16, .font = NULL}, + {.character = '9', .offset_col = 99, .offset_row = 42, .width = 10, .height = 16, .font = NULL}, + {.character = '.', .offset_col = 230, .offset_row = 42, .width = 3, .height = 16, .font = NULL}, + {.character = '/', .offset_col = 234, .offset_row = 44, .width = 7, .height = 16, .font = NULL}, + {.character = ':', .offset_col = 248, .offset_row = 42, .width = 5, .height = 16, .font = NULL}, + +}; + +void text_close() { + unsigned int i; + for (i = 0; i < sizeof(alphabet_tbl) / sizeof(alphabet_tbl[0]); i++) { + if (alphabet_tbl[i].font != NULL) { + free(alphabet_tbl[i].font); + } else { + continue; + } + } +} + +void text_init() { + unsigned int i; + size_t charsize; + int x; + int y; + uint32_t(*destfont)[]; + uint32_t(*srcfont)[]; + gimp_bitmap_t *alphabet; + + long int dest_px = 0; + long int src_px = 0; + + i = bmp_open("graphics/alphabet.bmp", &alphabet); + if (i) { + + return; + } + + for (i = 0; i < sizeof(alphabet_tbl) / sizeof(alphabet_tbl[0]); i++) { + charsize = alphabet_tbl[i].width * alphabet_tbl[i].height * sizeof(rgba_t); + alphabet_tbl[i].font = calloc(charsize + sizeof(gimp_bitmap_t), 1); + + alphabet_tbl[i].font->width = alphabet_tbl[i].width; + alphabet_tbl[i].font->height = alphabet_tbl[i].height; + alphabet_tbl[i].font->bytes_per_pixel = sizeof(rgba_t); + + destfont = (uint32_t(*)[])alphabet_tbl[i].font->pixel_data; + + for (y = 0; y < alphabet_tbl[i].height; y++) { + for (x = 0; x < alphabet_tbl[i].width; x++) { + + src_px = (alphabet_tbl[i].offset_row + y) * alphabet->width; + src_px += alphabet_tbl[i].offset_col + x; + + srcfont = (uint32_t(*)[]) & alphabet->pixel_data; + + dest_px = y * alphabet_tbl[i].font->width; + dest_px += x; + + if (((*srcfont)[src_px] & 0xFFFF00) != 00) { + (*destfont)[dest_px] = (*srcfont)[src_px]; + } + } + } + } + bmp_free(&alphabet); +} + +#define OFFSET_LOWERCASE ('Z' - 'A') + 1 +#define OFFSET_NUMBERS OFFSET_LOWERCASE + ('z' - 'a') + 1 +#define OFFSET_SPECIAL OFFSET_NUMBERS + ('9' - '0') + 1 + +font_character_t *text_get_char_font(char c) { + if (c >= 'a' && c <= 'z') { + return &alphabet_tbl[(c - 'a') + OFFSET_LOWERCASE]; + } else if (c >= 'A' && c <= 'Z') { + return &alphabet_tbl[c - 'A']; + } else if (c >= '0' && c <= '9') { + return &alphabet_tbl[(c - '0') + OFFSET_NUMBERS]; + } else if (c >= '.' && c <= '/') { + return &alphabet_tbl[(c - '.') + OFFSET_SPECIAL]; + } else if (c == ':') { + return &alphabet_tbl[(c - ':') + OFFSET_SPECIAL + 2]; + } + return NULL; +} + +gimp_bitmap_t *text_get_char_bitmap(char c) { + font_character_t *f; + f = text_get_char_font(c); + if (f) { + return f->font; + } + return NULL; +} + +void text_put(int container, char *string) { + int strsize; + int i; + font_character_t *c; + int x = 0; + int y = 2; + + strsize = strlen(string); + for (i = 0; i < strsize; i++) { + if (string[i] == ' ') { + x = x + 7; + continue; + } + if (string[i] == '\n') { + y = y + 20; + x = 0; + continue; + } + c = text_get_char_font(string[i]); + if (c == NULL) { + continue; + } + + container_bitmap_at_xy(container, x, y, c->font, true); + x += c->width; + x++; + x++; + } +} diff --git a/stage2/03-install-piaizu/files/fb/lib/text.h b/stage2/03-install-piaizu/files/fb/lib/text.h new file mode 100644 index 0000000..7ea0fca --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/text.h @@ -0,0 +1,9 @@ +#pragma once + +#include "container.h" + +void text_init(); + +void text_put(int container, char *string); + +void text_close(); diff --git a/stage2/03-install-piaizu/files/fb/lib/version.c b/stage2/03-install-piaizu/files/fb/lib/version.c new file mode 100644 index 0000000..edee5e5 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/version.c @@ -0,0 +1,12 @@ +#include "version.h" +#include "log.h" + +char *version_git_get(void) { + + return GITSHA; +} + +char *version_date_get(void) { + + return DATE; +} diff --git a/stage2/03-install-piaizu/files/fb/lib/version.h b/stage2/03-install-piaizu/files/fb/lib/version.h new file mode 100644 index 0000000..e4fb17d --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/version.h @@ -0,0 +1,4 @@ +#pragma once + +char *version_git_get(void); +char *version_date_get(void); diff --git a/stage2/03-install-piaizu/files/fb/lib/webrequest.c b/stage2/03-install-piaizu/files/fb/lib/webrequest.c new file mode 100644 index 0000000..462ddef --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/webrequest.c @@ -0,0 +1,196 @@ +#include "fwatch.h" +#include "lmxsocket.h" +#include "log.h" +#include "text.h" +#include +#include +#include +#include +#include +#include +#include +#include + +static int sock_fd; /* Just to be used when closing the file */ +static coordinate_t current_coords = {.x = LMX_PIXEL_WIDTH / 2, .y = LMX_PIXEL_HEIGHT / 2}; + +void webrequest_update_text(unsigned int c, char *text) { + container_reset(c); + text_put(c, text); +} + +void webrequest_update_crosshair(unsigned int c, coordinate_t *coord) { + container_reset(c); + + container_draw_line(c, 0, coord->y, LMX_PIXEL_WIDTH - 1, coord->y); /* Horisontal line */ + container_draw_line(c, coord->x, 0, coord->x, LMX_PIXEL_HEIGHT - 1); /* Vertical line */ + current_coords.x = coord->x; + current_coords.y = coord->y; +} + +void webrequest_handle(int sock) { + ssize_t readsize; + struct sockaddr_un src_addr; + socklen_t src_addr_len; + char buf[DATAGRAM_SIZE]; + socket_datagram_header_t *sdh; + + src_addr_len = sizeof(struct sockaddr_un); + readsize = recvfrom(sock, buf, DATAGRAM_SIZE, 0, (struct sockaddr *)&src_addr, &src_addr_len); + + if (readsize < 0) { + LOG("Receiving datagram packet %d %m", sock); + exit(1); + } + + sdh = (void *)buf; + + switch (sdh->type) { + case SOCKET_DATAGRAM_TYPE_COORD: { + socket_datagram_lmx_coordinate_t *coord = (socket_datagram_lmx_coordinate_t *)sdh; + LOG("Received coordinate: %zd bytes \n=======\nx:%d y:%d\n=======\n", readsize, coord->coord.x, + coord->coord.y); + webrequest_update_crosshair(11, &coord->coord); + break; + } + case SOCKET_DATAGRAM_TYPE_MOVE: { + socket_datagram_lmx_move_t *coord = (socket_datagram_lmx_move_t *)sdh; + coordinate_t new_coord; + new_coord.x = current_coords.x; + new_coord.y = current_coords.y; + + switch (coord->move) { + case MOVE_UP: + if (new_coord.y) { + new_coord.y--; + } + break; + case MOVE_DOWN: + new_coord.y++; + break; + case MOVE_LEFT: + if (new_coord.x) { + new_coord.x--; + } + break; + case MOVE_RIGHT: + new_coord.x++; + break; + case MOVE_UP_LEFT: + if (new_coord.y) { + new_coord.y--; + } + if (new_coord.x) { + new_coord.x--; + } + break; + case MOVE_UP_RIGHT: + if (new_coord.y) { + new_coord.y--; + } + new_coord.x++; + break; + case MOVE_DOWN_LEFT: + if (new_coord.x) { + new_coord.x--; + } + new_coord.y++; + break; + case MOVE_DOWN_RIGHT: + new_coord.x++; + new_coord.y++; + break; + case MOVE_CLEAR: + container_reset(11); + return; + } + LOG("Received move: %zd bytes \n=======\nx:%d y:%d Container: %d\n=======\n", readsize, new_coord.x, + new_coord.y, coord->header.container); + webrequest_update_crosshair(coord->header.container, &new_coord); + break; + } + case SOCKET_DATAGRAM_TYPE_TEXT: { + socket_datagram_lmx_text_t *text = (socket_datagram_lmx_text_t *)sdh; + LOG("Received text: %zd bytes \n=======\n%s\n=======\n", readsize, text->text); + webrequest_update_text(10, text->text); + break; + } + + case SOCKET_DATAGRAM_TYPE_INFO: { + int i, n; + socket_datagram_lmx_info_t *response; + container_t * c; + size_t s; + + n = container_get_n(); + s = sizeof(socket_datagram_lmx_info_t) + (n * sizeof(container_info_t)); + + response = malloc(s); + + response->header.type = SOCKET_DATAGRAM_TYPE_INFO; + response->header.size = s; + response->n_containers = n; + for (i = 0; i < n; i++) { + container_info_t *ci = &response->containers[i]; + c = container_get(i); + + ci->x = c->x; + ci->y = c->y; + ci->width = c->width; + ci->height = c->height; + ci->transparent = c->transparent; + ci->visible = c->visible; + ci->frame = c->frame; + ci->framesize_mem = c->framesize_mem; + strncpy(ci->description, c->description, DESCRIPTION_LENGHT); + } + + LOG("Received info request: %zd bytes, sending response %zd bytes to " + "src_addr %s\n", + readsize, s, src_addr.sun_path); + if (sendto(sock, response, s, 0, (struct sockaddr *)&src_addr, src_addr_len) < 0) { + LOG("Error sending datagram message: %m\n"); + } + free(response); + break; + } + default: { + LOG("Received: %zd bytes but command is not supported: %d\n", readsize, sdh->type); + break; + } + } + return; +} + +int webrequest_init() { + + int sock; + struct sockaddr_un name; + + /* Create socket from which to read. */ + sock = socket(AF_UNIX, SOCK_DGRAM, 0); + if (sock < 0) { + perror("opening datagram socket"); + return -1; + } + + /* Create name. */ + name.sun_family = AF_UNIX; + strncpy(name.sun_path, SOCKET_NAME, sizeof(name.sun_path)); + + /* Bind the UNIX domain address to the created socket */ + if (bind(sock, (struct sockaddr *)&name, sizeof(struct sockaddr_un))) { + perror("binding name to datagram socket"); + return -1; + } + chmod(SOCKET_NAME, 0777); + + fwatch_add(webrequest_handle, sock, SOCKET_NAME); + sock_fd = sock; + return 0; +} + +void webrequest_close() { + close(sock_fd); + unlink(SOCKET_NAME); +} diff --git a/stage2/03-install-piaizu/files/fb/lib/webrequest.h b/stage2/03-install-piaizu/files/fb/lib/webrequest.h new file mode 100644 index 0000000..42ddaa9 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lib/webrequest.h @@ -0,0 +1,12 @@ +#pragma once + +/** + * Initiate the webrequest api. This function will register it self in the fwatch module. + */ +int webrequest_init(); + +/** + * + * Will close and clean used resources. + */ +void webrequest_close(); diff --git a/stage2/03-install-piaizu/files/fb/lmx001 b/stage2/03-install-piaizu/files/fb/lmx001 new file mode 100755 index 0000000..ba842db --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/lmx001 @@ -0,0 +1,35 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: lmx +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start of LMX-001 example app +# Description: LMX-001 framebuffer app for PiAIZU +# Authenticator +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON_SBIN=/usr/bin/lmx +DAEMON_CONF= +NAME=lmx +DESC="PiAIZU example app" +PIDFILE=/run/lmx.pid + +[ -x "$DAEMON_SBIN" ] || exit 0 + + +case "$1" in + start) + cd /usr/bin/ + /usr/bin/lmx & + ;; + stop) + killall lmx + ;; +esac + +exit 0 diff --git a/stage2/03-install-piaizu/files/fb/main.c b/stage2/03-install-piaizu/files/fb/main.c new file mode 100644 index 0000000..e541d36 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/main.c @@ -0,0 +1,249 @@ +#include "bmp.h" +#include "container.h" +#include "define_containers.h" +#include "fwatch.h" +#include "keys.h" +#include "log.h" +#include "text.h" +#include "webrequest.h" +#include +#include +#include +#include +#include +#include +#include + +#define START_FRAME 0 +#define AP_ANIM_EVERY_FRAME 45 + +void animate_wifi_ap(); +void animate_sony_logi(bool fade_out); +static bool shutdown = false; + +static const char *logoanim[] = { + "sonylogo_00001.bmp", "sonylogo_00002.bmp", "sonylogo_00003.bmp", "sonylogo_00004.bmp", "sonylogo_00005.bmp", + "sonylogo_00006.bmp", "sonylogo_00007.bmp", "sonylogo_00008.bmp", "sonylogo_00009.bmp", "sonylogo_00010.bmp", + "sonylogo_00011.bmp", "sonylogo_00012.bmp", "sonylogo_00013.bmp", "sonylogo_00014.bmp", "sonylogo_00015.bmp", + "sonylogo_00016.bmp", "sonylogo_00017.bmp", "sonylogo_00018.bmp", "sonylogo_00019.bmp", "sonylogo_00020.bmp", + "sonylogo_00021.bmp", "sonylogo_00022.bmp", "sonylogo_00023.bmp", "sonylogo_00024.bmp", "sonylogo_00025.bmp", + "sonylogo_00026.bmp", "sonylogo_00027.bmp", "sonylogo_00028.bmp", "sonylogo_00029.bmp", "sonylogo_00030.bmp", + "sonylogo_00031.bmp", "sonylogo_00032.bmp", "sonylogo_00033.bmp", "sonylogo_00034.bmp", "sonylogo_00035.bmp", + "sonylogo_00036.bmp", "sonylogo_00037.bmp", "sonylogo_00038.bmp", "sonylogo_00039.bmp", "sonylogo_00040.bmp", + "sonylogo_00041.bmp", "sonylogo_00042.bmp", "sonylogo_00043.bmp", "sonylogo_00044.bmp", "sonylogo_00045.bmp", + "sonylogo_00046.bmp", "sonylogo_00047.bmp", "sonylogo_00048.bmp", "sonylogo_00049.bmp", "sonylogo_00050.bmp", + "sonylogo_00051.bmp", "sonylogo_00052.bmp", "sonylogo_00053.bmp", "sonylogo_00054.bmp", "sonylogo_00055.bmp", + "sonylogo_00056.bmp", "sonylogo_00057.bmp", "sonylogo_00058.bmp", "sonylogo_00059.bmp", "sonylogo_00060.bmp", + "sonylogo_00061.bmp", "sonylogo_00062.bmp", "sonylogo_00063.bmp", "sonylogo_00064.bmp", "sonylogo_00065.bmp", + "sonylogo_00066.bmp", "sonylogo_00067.bmp", "sonylogo_00068.bmp", "sonylogo_00069.bmp", "sonylogo_00070.bmp", + "sonylogo_00071.bmp", "sonylogo_00072.bmp", "sonylogo_00073.bmp", "sonylogo_00074.bmp", "sonylogo_00075.bmp", + "sonylogo_00076.bmp", "sonylogo_00077.bmp", "sonylogo_00078.bmp", "sonylogo_00079.bmp", "sonylogo_00080.bmp", + "sonylogo_00081.bmp", "sonylogo_00082.bmp", "sonylogo_00083.bmp", "sonylogo_00084.bmp", "sonylogo_00085.bmp", + "sonylogo_00086.bmp", "sonylogo_00087.bmp", "sonylogo_00088.bmp", "sonylogo_00089.bmp", "sonylogo_00090.bmp", + "sonylogo_00091.bmp", "sonylogo_00092.bmp", "sonylogo_00093.bmp", "sonylogo_00094.bmp", "sonylogo_00095.bmp", + "sonylogo_00096.bmp", "sonylogo_00097.bmp", "sonylogo_00098.bmp", "sonylogo_00099.bmp", "sonylogo_00100.bmp", + "sonylogo_00101.bmp", "sonylogo_00102.bmp", "sonylogo_00103.bmp", "sonylogo_00104.bmp", "sonylogo_00105.bmp", + "sonylogo_00106.bmp", "sonylogo_00107.bmp", "sonylogo_00108.bmp", "sonylogo_00109.bmp", "sonylogo_00110.bmp", + "sonylogo_00111.bmp", "sonylogo_00112.bmp", "sonylogo_00113.bmp", "sonylogo_00114.bmp", "sonylogo_00115.bmp", + "sonylogo_00116.bmp", "sonylogo_00117.bmp", "sonylogo_00118.bmp", "sonylogo_00119.bmp", "sonylogo_00120.bmp", + "sonylogo_00121.bmp", "sonylogo_00122.bmp", "sonylogo_00123.bmp", "sonylogo_00124.bmp", "sonylogo_00125.bmp", + "sonylogo_00126.bmp", "sonylogo_00127.bmp", "sonylogo_00128.bmp", "sonylogo_00129.bmp", "sonylogo_00130.bmp", + "sonylogo_00131.bmp", "sonylogo_00132.bmp", "sonylogo_00133.bmp", "sonylogo_00134.bmp", "sonylogo_00135.bmp", + "sonylogo_00136.bmp", "sonylogo_00137.bmp", "sonylogo_00138.bmp", "sonylogo_00139.bmp", "sonylogo_00140.bmp", + "sonylogo_00141.bmp", "sonylogo_00142.bmp", "sonylogo_00143.bmp", "sonylogo_00144.bmp", "sonylogo_00145.bmp", + "sonylogo_00146.bmp", "sonylogo_00147.bmp", "sonylogo_00148.bmp", "sonylogo_00149.bmp", "sonylogo_00150.bmp", + "sonylogo_00151.bmp", "sonylogo_00152.bmp", "sonylogo_00153.bmp", "sonylogo_00154.bmp", "sonylogo_00155.bmp", + "sonylogo_00156.bmp", "sonylogo_00157.bmp", "sonylogo_00158.bmp", "sonylogo_00159.bmp", +}; + +static gimp_bitmap_t *sony_bm[sizeof(logoanim) / sizeof(logoanim[0])]; + +void intShutdown(int sign) { + (void)sign; + shutdown = true; +} + +typedef enum { + EVENT_LEFT_PRESS_SHORT, + EVENT_LEFT_PRESS_LONG, + EVENT_RIGHT_PRESS_SHORT, + EVENT_RIGHT_PRESS_LONG, + EVENT_N, +} event_key_handle_e; + +#define EVENT_TEXT_SIZE 50 +void key_press_callback(double presstime, key_e key, int handle) { + + char testtext[EVENT_TEXT_SIZE] = ""; + + (void)presstime; + (void)key; + + container_reset(9); + switch (handle) { + case EVENT_LEFT_PRESS_SHORT: + snprintf(testtext, EVENT_TEXT_SIZE, "Left\nShort\n%0.2fs", presstime); + break; + case EVENT_LEFT_PRESS_LONG: + snprintf(testtext, EVENT_TEXT_SIZE, "Left\nLong\n%0.2fs", presstime); + + break; + case EVENT_RIGHT_PRESS_SHORT: + snprintf(testtext, EVENT_TEXT_SIZE, "Right\nShort\n%0.2fs", presstime); + + break; + case EVENT_RIGHT_PRESS_LONG: + snprintf(testtext, EVENT_TEXT_SIZE, "Right\nLong\n%0.2fs", presstime); + + break; + default: + break; + } + text_put(KEY_INFO, testtext); +} + +int main() { + + gimp_bitmap_t *bitmap; + + /* Catch a whole bunch of signals and shutdown properly */ + signal(SIGINT, intShutdown); + signal(SIGTERM, intShutdown); + signal(SIGSTOP, intShutdown); + signal(SIGKILL, intShutdown); + + LOG("Git sha: %s\nBuild date: %s\n\n", GITSHA, DATE); + + /* Initialize the framebuffer and container lib */ + container_new(&containers); + + /* Initialize the text/font lib */ + text_init(); + + keys_register_cb(key_press_callback, KEY_CHAR_RIGHT, 1, EVENT_RIGHT_PRESS_LONG); + keys_register_cb(key_press_callback, KEY_CHAR_LEFT, 1, EVENT_LEFT_PRESS_LONG); + + keys_register_cb(key_press_callback, KEY_CHAR_LEFT, 0.1, EVENT_LEFT_PRESS_SHORT); + keys_register_cb(key_press_callback, KEY_CHAR_RIGHT, 0.1, EVENT_RIGHT_PRESS_SHORT); + + if (keys_start()) { + goto on_err; + } + + if (webrequest_init()) { + goto on_err; + } + + if (fwatch_start()) { + goto on_err; + } + + container_visible(SONY_LOGO, true); + container_visible(AP_A, true); + container_visible(AP_B, false); + container_visible(AP_C, false); + container_visible(AP_D, false); + + if (bmp_open_path("graphics", "wifi_ap_a.bmp", &bitmap) != 0) + return -1; + container_fill_bitmap(AP_A, bitmap, true); + bmp_free(&bitmap); + + if (bmp_open_path("graphics", "wifi_ap_b.bmp", &bitmap) != 0) + return -1; + container_fill_bitmap(AP_B, bitmap, true); + bmp_free(&bitmap); + + if (bmp_open_path("graphics", "wifi_ap_c.bmp", &bitmap) != 0) + return -1; + container_fill_bitmap(AP_C, bitmap, true); + bmp_free(&bitmap); + + if (bmp_open_path("graphics", "wifi_ap_d.bmp", &bitmap) != 0) + return -1; + container_fill_bitmap(AP_D, bitmap, true); + bmp_free(&bitmap); + + text_put(WIFI_TEXTBOX, "Connect to WiFi SSID: PiAIZU\nGoto: http://192.168.1.1/"); + + container_visible(WIFI_TEXTBOX, true); + container_compile(); + + container_fill_bitmap(AP_D, bitmap, true); + bmp_free(&bitmap); + + text_put(TEXT, "AP"); + container_compile(); + for (unsigned int anim = START_FRAME; anim < sizeof(logoanim) / sizeof(logoanim[0]); anim++) { + bmp_open_path("graphics/anim", logoanim[anim], &sony_bm[anim]); + } + + animate_sony_logi(true); + + bool do_anim = true; + do { + + do_anim = !do_anim; + animate_sony_logi(do_anim); + fwatch_do(25000); + + } while (!shutdown); + LOG("Cleaning up and shutting down...\n"); + +on_err: + for (unsigned int anim = START_FRAME; anim < sizeof(logoanim) / sizeof(logoanim[0]); anim++) { + bmp_free(&sony_bm[anim]); + } + + webrequest_close(); + container_close(); + text_close(); + + return 0; +} +static int wifi = AP_B; +void animate_wifi_ap() { + + do { + if (wifi <= AP_D) { + container_visible(wifi, true); + + wifi++; + } else { + container_visible(AP_A, true); + container_visible(AP_B, false); + container_visible(AP_C, false); + container_visible(AP_D, false); + + wifi = AP_B; + } + } while (0); +} + +void animate_sony_logi(bool fade_out) { + unsigned int anim; + + if (fade_out) { + for (anim = START_FRAME; anim < sizeof(logoanim) / sizeof(logoanim[0]) && !shutdown; anim++) { + + container_fill_bitmap(SONY_LOGO, sony_bm[anim], true); + + if (anim % AP_ANIM_EVERY_FRAME == 0) { + animate_wifi_ap(); + } + container_compile(); + fwatch_do(4000); + } + } else { + for (anim = (sizeof(logoanim) / sizeof(logoanim[0])) - 1; anim > START_FRAME && !shutdown; anim--) { + + container_fill_bitmap(SONY_LOGO, sony_bm[anim], true); + + if (anim % AP_ANIM_EVERY_FRAME == 0) { + animate_wifi_ap(); + } + container_compile(); + fwatch_do(4000); + } + } +} diff --git a/stage2/03-install-piaizu/files/fb/main.py b/stage2/03-install-piaizu/files/fb/main.py new file mode 100644 index 0000000..283306b --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/main.py @@ -0,0 +1,115 @@ +from ctypes import * +from time import gmtime, strftime +import sys, time + +class container(Structure): + _fields_ = [ + ( "handle", c_int ), + ( "x", c_int ), + ( "y", c_int ), + ( "width", c_uint), + ( "height", c_uint), + ( "bits_per_pixel", c_int ), + ( "padding", c_int ), + ( "transparent", c_bool ), + ( "visible", c_bool ), + ( "frame", c_bool ), + ( "framesize_mem", c_long ), + ( "bg_color", c_int ), + ( "description", c_char_p), + ( "(*data)[]", c_void_p) + ] + +class containers(Structure): + _fields_ = [ + ( "n", c_int ), + ( "c", container * 10 ), + ] + +class lmx_lib(): + global lib + def __init__(self): + self.lib = CDLL("lib/liblmx.so") + n = 0 + c = containers() + c.c[n] = container(n,1,1,419,150,32,0,1,1,0,0,0,"Master Copy of FB",None) + n += 1 + c.c[n] = container(n,1,1,419,70,32,0,1,1,0,0,0,"Clock frame",None) + n += 1 + c.c[n] = container(n,1,71,419,65,32,0,1,1,0,0,0,"Build date",None) + n += 1 + c.c[n] = container(n,419-159,1,159,47,32,0,1,1,0,0,0,"Python logo",None) + n += 1 + c.c[n] = container(n,1,110,419,65,15,0,1,1,0,0,0,"Buttons",None) + n += 1 + c.n = n + self.lib.container_new(pointer(c)) + self.lib.text_init() + + def __del__(self): + self.lib.container_close() + self.lib.text_close() + +class lmx_button(object): + KEY_CHAR_LEFT = 105 + KEY_CHAR_RIGHT = 106 + + def callback(self, presstime, key, handle): + + if key == self.KEY_CHAR_LEFT: + s = "Left key" + elif key == self.KEY_CHAR_RIGHT: + s = "Right key" + + s2 = s + " {:03f} s".format(presstime) + print(s2) + self.lib.lib.container_reset(4) + self.lib.lib.text_put(4, s2) + + def __init__(self, lib): + CMPFUNC = CFUNCTYPE(None, c_double, c_int, c_int) + self.button_callback = CMPFUNC(self.callback) + self.lib = lib + + lib.lib.keys_register_cb(self.button_callback, self.KEY_CHAR_LEFT, 1, 0); + lib.lib.keys_register_cb(self.button_callback, self.KEY_CHAR_RIGHT, 2, 1); + + lib.lib.keys_start() + + def __del__(self): + lib.lib.keys_close() + +class show_bmp(): + def __init__(self, lib, filename, layer): + pyth_bmp = c_void_p() + lib.bmp_open(filename, pointer(pyth_bmp)) + lib.container_fill_bitmap(3,pyth_bmp,1) + lib.bmp_free(pointer(pyth_bmp)) + +def main(): + print("Starting LMX sample application") + + lmx = lmx_lib() + button = lmx_button(lmx) + lmx.lib.fwatch_start(); + + t = cast(lmx.lib.version_date_get(), c_char_p).value + + lmx.lib.text_put(2, "Lib build\n" + t); + + show_bmp(lmx.lib, "graphics/python.bmp", 3) + + while True: + try: + timenow = strftime("%Y %m %d\n%H:%M:%S", gmtime()) + lmx.lib.text_put(1, timenow); + lmx.lib.container_compile() + lmx.lib.container_reset(1) + lmx.lib.fwatch_do(1000) + + except KeyboardInterrupt: + print("Cleaning up and closing down\n") + sys.exit() + +if __name__ == '__main__': + main() diff --git a/stage2/03-install-piaizu/files/fb/settings.mk b/stage2/03-install-piaizu/files/fb/settings.mk new file mode 100644 index 0000000..791ee20 --- /dev/null +++ b/stage2/03-install-piaizu/files/fb/settings.mk @@ -0,0 +1,14 @@ +# ROTATE_180 flag will rotate the whole screen 180 degrees, to be used when use left eye LMX-001 for right side eye. + +#SETTING+=-DROTATE_180 + + +#Gray scale calculation, either use Luminosity, Average or Monochrome, commenting out both will use RGB + +#SETTING+=-DGRAYSCALE_LUMINOSITY +#SETTING+=-DGRAYSCALE_AVERAGE +#SETTING+=-DGREEN_MONOCHROME + +#Extra linker flags, this will tell the linker to use the "local" liblmx.so file from ./lib/ + +#LDEXTRA=-Wl,-rpath,./lib/ diff --git a/stage2/03-install-piaizu/files/hostapd.conf b/stage2/03-install-piaizu/files/hostapd.conf new file mode 100644 index 0000000..f7686d9 --- /dev/null +++ b/stage2/03-install-piaizu/files/hostapd.conf @@ -0,0 +1,48 @@ +# This is the name of the WiFi interface we configured above +interface=wlan0 + +# Use the nl80211 driver with the brcmfmac driver +driver=nl80211 + +# This is the name of the network +ssid=PiAIZU + +# Use the 2.4GHz band +hw_mode=g + +# Use channel 6 +channel=6 + +# Enable 802.11n +ieee80211n=1 + +# Enable WMM +wmm_enabled=0 +#wmm_enabled=1 +# Enable 40MHz channels with 20ns guard interval +ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] + +# Accept all MAC addresses +macaddr_acl=0 + +# Use WPA authentication +#auth_algs=1 + +# Require clients to know the network name +ignore_broadcast_ssid=0 + +# Use WPA2 +#wpa=2 + +# Use a pre-shared key +#wpa_key_mgmt=WPA-PSK + +# The network passphrase +#wpa_passphrase=raspberry + +# Use AES, instead of TKIP +#rsn_pairwise=CCMP + +ctrl_interface=/var/run/hostapd +ctrl_interface_group=0 + diff --git a/stage2/03-install-piaizu/files/interfaces b/stage2/03-install-piaizu/files/interfaces new file mode 100644 index 0000000..f7c0b88 --- /dev/null +++ b/stage2/03-install-piaizu/files/interfaces @@ -0,0 +1,24 @@ +# interfaces(5) file used by ifup(8) and ifdown(8) + +# Please note that this file is written to be used with dhcpcd +# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' + +# Include files from /etc/network/interfaces.d: +source-directory /etc/network/interfaces.d + +auto lo +iface lo inet loopback + +iface eth0 inet manual + +allow-hotplug wlan0 +iface wlan0 inet manual + wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf + +allow-hotplug wlan1 +iface wlan1 inet manual + wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf +auto wlan0 +iface wlan0 inet static + address 192.168.1.1 + netmask 255.255.255.0 diff --git a/stage2/03-install-piaizu/files/lighttpd.conf b/stage2/03-install-piaizu/files/lighttpd.conf new file mode 100644 index 0000000..090b2cb --- /dev/null +++ b/stage2/03-install-piaizu/files/lighttpd.conf @@ -0,0 +1,39 @@ +server.modules = ( + "mod_access", + "mod_alias", + "mod_compress", + "mod_redirect", +# "mod_rewrite", + "mod_cgi", +) + +server.document-root = "/var/www/html" +server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) +server.errorlog = "/var/log/lighttpd/error.log" +server.pid-file = "/var/run/lighttpd.pid" +server.username = "www-data" +server.groupname = "www-data" +server.port = 80 + + +index-file.names = ( "index.php", "index.html", "index.lighttpd.html" ) +url.access-deny = ( "~", ".inc" ) +static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi" ) + +compress.cache-dir = "/var/cache/lighttpd/compress/" +compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" ) + +# default listening port for IPv6 falls back to the IPv4 port +include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port +include_shell "/usr/share/lighttpd/create-mime.assign.pl" +include_shell "/usr/share/lighttpd/include-conf-enabled.pl" + +$HTTP["url"] =~ "/cgi-bin/" { + cgi.assign = ( "" => "" ) +} + +cgi.assign = ( + ".cgi" => "" +) + + diff --git a/stage2/03-install-piaizu/files/lmx001_init.py b/stage2/03-install-piaizu/files/lmx001_init.py new file mode 100644 index 0000000..881f3e0 --- /dev/null +++ b/stage2/03-install-piaizu/files/lmx001_init.py @@ -0,0 +1,181 @@ +#!/usr/bin/python + +import smbus +import time + +bus = smbus.SMBus(3) # 3 = /dev/i2c-3 + +DEVICE_ADDRESS_C = 0x47 #Common address(0x8E)=>1000 1110=>100 0111(0x47) +DEVICE_ADDRESS_L = 0x38 #Address bit=L (0x70)=>0111 0000=>011 1000(0x38) + +#bus.write_byte_data(device address, register address, value) + +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, 0x16) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x92) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4B, 0x3C) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x12) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, 0x16) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x92) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x4C, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x4E, 0x16) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x12) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, 0x1A) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x92) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x4F, 0x92) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x12) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, 0x1E) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x92) + + +time.sleep(10.0/1000.0) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x12) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, 0x22) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x92) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x12) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, 0x26) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x92) + +time.sleep(10.0/1000.0) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x1A, 0x89) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x1B, 0x12) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x1C, 0x0B) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x1D, 0x7E) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x1E, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x1F, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x20, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x21, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x22, 0x0F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x23, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x24, 0x5A) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x25, 0x80) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x26, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x27, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x28, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x29, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x2A, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x2B, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x2C, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x2D, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x2E, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x2F, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x30, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x31, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x32, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x33, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x34, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x35, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x36, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x37, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x38, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x39, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x3A, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x3B, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x3C, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x3D, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x3E, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x3F, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x40, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x41, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x42, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x43, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x44, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x45, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x46, 0x01) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x47, 0xE2) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x48, 0x7E) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x49, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x4A, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4B, 0x3C) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x4C, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x4E, 0x26) +bus.write_byte_data(DEVICE_ADDRESS_C, 0x4F, 0x92) + +time.sleep(10.0/1000.0) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x00, 0x04) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x01, 0x56) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x02, 0x32) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x03, 0xA2) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x04, 0x41) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x05, 0x42) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x06, 0x03) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x07, 0x41) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x08, 0x80) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x09, 0x80) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x0A, 0x9F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x0B, 0x17) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x0C, 0x04) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x0D, 0x23) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x0E, 0x06) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x0F, 0x06) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x10, 0x0F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x11, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x12, 0x04) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x13, 0x17) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x14, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x15, 0x2F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x16, 0x10) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x17, 0x4A) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x18, 0x46) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x19, 0xA2) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x1A, 0x89) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x1B, 0x12) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x1C, 0x0B) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x1D, 0x7E) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x1E, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x1F, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x20, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x21, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x22, 0x0F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x23, 0x05) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x24, 0x5A) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x25, 0x80) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x26, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x27, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x28, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x29, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x2A, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x2B, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x2C, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x2D, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x2E, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x2F, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x30, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x31, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x32, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x33, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x34, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x35, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x36, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x37, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x38, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x39, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x3A, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x3B, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x3C, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x3D, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x3E, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x3F, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x40, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x41, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x42, 0x07) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x43, 0x8F) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x44, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x45, 0x86) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x46, 0x01) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x47, 0xE2) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x48, 0x7E) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x49, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4A, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4B, 0x3C) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4C, 0x00) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4D, 0x02) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4E, 0x80) +bus.write_byte_data(DEVICE_ADDRESS_L, 0x4F, 0x92) diff --git a/stage2/03-install-piaizu/files/modules b/stage2/03-install-piaizu/files/modules new file mode 100644 index 0000000..c696796 --- /dev/null +++ b/stage2/03-install-piaizu/files/modules @@ -0,0 +1,6 @@ +# /etc/modules: kernel modules to load at boot time. +# +# This file contains the names of kernel modules that should be loaded +# at boot time, one per line. Lines beginning with "#" are ignored. + +i2c-dev diff --git a/stage2/03-install-piaizu/files/rc.local b/stage2/03-install-piaizu/files/rc.local new file mode 100755 index 0000000..24b14b5 --- /dev/null +++ b/stage2/03-install-piaizu/files/rc.local @@ -0,0 +1,22 @@ +#!/bin/sh -e +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + +# Print the IP address +_IP=$(hostname -I) || true +if [ "$_IP" ]; then + printf "My IP address is %s\n" "$_IP" +fi + + +/usr/sbin/lmx001_init.py +exit 0 diff --git a/stage4/SKIP b/stage4/SKIP new file mode 100644 index 0000000..e69de29 diff --git a/stage5/SKIP b/stage5/SKIP new file mode 100644 index 0000000..e69de29