From ad999db44c6ffddf91c04dc76cf90354bf3ba217 Mon Sep 17 00:00:00 2001 From: Rohan Sircar Date: Fri, 25 Oct 2019 18:21:16 +0530 Subject: [PATCH] first commit --- .gitignore | 10 + .travis.yml | 67 ++ .vscode/extensions.json | 7 + .vscode/settings.json | 6 + data/NotoSansBold15.vlw | Bin 0 -> 10766 bytes data/NotoSansBold36.vlw | Bin 0 -> 44169 bytes data/Nunito-Light20.vlw | Bin 0 -> 13671 bytes data/Nunito-Light28.vlw | Bin 0 -> 23569 bytes data/Nunito-Light32.vlw | Bin 0 -> 29150 bytes data/Nunito-Regular20.vlw | Bin 0 -> 13942 bytes data/WebSocket.js.gz | Bin 0 -> 528 bytes data/colors.css.gz | Bin 0 -> 597 bytes data/combinedSettingsFile.txt | 27 + data/edit.html.gz | Bin 0 -> 620 bytes data/favicon.ico.gz | Bin 0 -> 7130 bytes data/index.html.gz | Bin 0 -> 971 bytes data/ledcontrol.html.gz | Bin 0 -> 636 bytes data/loadMenu.js.gz | Bin 0 -> 101 bytes data/main.css.gz | Bin 0 -> 236 bytes data/main.js.gz | Bin 0 -> 990 bytes data/manifest.json.gz | Bin 0 -> 148 bytes data/manualMode-ajax.html.gz | Bin 0 -> 1514 bytes data/manualMode.html.gz | Bin 0 -> 983 bytes data/menu.html.gz | Bin 0 -> 353 bytes data/nunito-regular-webfont.woff | Bin 0 -> 27376 bytes data/nunito-regular-webfont.woff2 | Bin 0 -> 20960 bytes data/settings-ajax.html.gz | Bin 0 -> 1077 bytes data/settings-success.html.gz | Bin 0 -> 420 bytes data/settings.html.gz | Bin 0 -> 935 bytes data/settings.js.gz | Bin 0 -> 567 bytes data/settingsFile1.txt | 7 + data/settingsFile2.txt | 7 + data/settingsFile3.txt | 7 + data/success.html.gz | Bin 0 -> 413 bytes data/temperatures.txt.gz | Bin 0 -> 72 bytes include.js | 10 + include/README | 39 + lib/README | 46 + platformio.ini | 24 + src/sketch_oct17esp.cpp | 943 ++++++++++++++++++ src/sketch_oct17esp.hpp | 39 + test/README | 11 + website-zipped_bak/index.html.gz | Bin 0 -> 1239 bytes website-zipped_bak/ledcontrol.html.gz | Bin 0 -> 636 bytes website-zipped_bak/main.css.gz | Bin 0 -> 940 bytes website-zipped_bak/manifest.json.gz | Bin 0 -> 148 bytes website-zipped_bak/manualMode-ajax.html.gz | Bin 0 -> 1336 bytes website-zipped_bak/manualMode.html.gz | Bin 0 -> 775 bytes website-zipped_bak/menu.html.gz | Bin 0 -> 607 bytes .../nunito-regular-webfont.woff.gz | Bin 0 -> 27352 bytes .../nunito-regular-webfont.woff2.gz | Bin 0 -> 21012 bytes website-zipped_bak/settings-ajax.html.gz | Bin 0 -> 1389 bytes website-zipped_bak/settings-success.html.gz | Bin 0 -> 420 bytes website-zipped_bak/settings.html.gz | Bin 0 -> 935 bytes website-zipped_bak/success.html.gz | Bin 0 -> 413 bytes 55 files changed, 1250 insertions(+) create mode 100755 .gitignore create mode 100755 .travis.yml create mode 100755 .vscode/extensions.json create mode 100755 .vscode/settings.json create mode 100755 data/NotoSansBold15.vlw create mode 100755 data/NotoSansBold36.vlw create mode 100755 data/Nunito-Light20.vlw create mode 100755 data/Nunito-Light28.vlw create mode 100755 data/Nunito-Light32.vlw create mode 100755 data/Nunito-Regular20.vlw create mode 100755 data/WebSocket.js.gz create mode 100644 data/colors.css.gz create mode 100755 data/combinedSettingsFile.txt create mode 100755 data/edit.html.gz create mode 100755 data/favicon.ico.gz create mode 100755 data/index.html.gz create mode 100755 data/ledcontrol.html.gz create mode 100644 data/loadMenu.js.gz create mode 100644 data/main.css.gz create mode 100644 data/main.js.gz create mode 100755 data/manifest.json.gz create mode 100755 data/manualMode-ajax.html.gz create mode 100755 data/manualMode.html.gz create mode 100755 data/menu.html.gz create mode 100755 data/nunito-regular-webfont.woff create mode 100755 data/nunito-regular-webfont.woff2 create mode 100755 data/settings-ajax.html.gz create mode 100755 data/settings-success.html.gz create mode 100755 data/settings.html.gz create mode 100644 data/settings.js.gz create mode 100755 data/settingsFile1.txt create mode 100755 data/settingsFile2.txt create mode 100755 data/settingsFile3.txt create mode 100755 data/success.html.gz create mode 100644 data/temperatures.txt.gz create mode 100755 include.js create mode 100755 include/README create mode 100755 lib/README create mode 100755 platformio.ini create mode 100755 src/sketch_oct17esp.cpp create mode 100755 src/sketch_oct17esp.hpp create mode 100755 test/README create mode 100755 website-zipped_bak/index.html.gz create mode 100755 website-zipped_bak/ledcontrol.html.gz create mode 100755 website-zipped_bak/main.css.gz create mode 100755 website-zipped_bak/manifest.json.gz create mode 100755 website-zipped_bak/manualMode-ajax.html.gz create mode 100755 website-zipped_bak/manualMode.html.gz create mode 100755 website-zipped_bak/menu.html.gz create mode 100755 website-zipped_bak/nunito-regular-webfont.woff.gz create mode 100755 website-zipped_bak/nunito-regular-webfont.woff2.gz create mode 100755 website-zipped_bak/settings-ajax.html.gz create mode 100755 website-zipped_bak/settings-success.html.gz create mode 100755 website-zipped_bak/settings.html.gz create mode 100755 website-zipped_bak/success.html.gz diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..7087456 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.pio +.pioenvs +.piolibdeps +.vscode/.browse.c_cpp.db* +.vscode/c_cpp_properties.json +.vscode/launch.json +website-source +website-source-copy +website-zipped +website-zipped-bak \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100755 index 0000000..7c486f1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,67 @@ +# Continuous Integration (CI) is the practice, in software +# engineering, of merging all developer working copies with a shared mainline +# several times a day < https://docs.platformio.org/page/ci/index.html > +# +# Documentation: +# +# * Travis CI Embedded Builds with PlatformIO +# < https://docs.travis-ci.com/user/integration/platformio/ > +# +# * PlatformIO integration with Travis CI +# < https://docs.platformio.org/page/ci/travis.html > +# +# * User Guide for `platformio ci` command +# < https://docs.platformio.org/page/userguide/cmd_ci.html > +# +# +# Please choose one of the following templates (proposed below) and uncomment +# it (remove "# " before each line) or use own configuration according to the +# Travis CI documentation (see above). +# + + +# +# Template #1: General project. Test it using existing `platformio.ini`. +# + +# language: python +# python: +# - "2.7" +# +# sudo: false +# cache: +# directories: +# - "~/.platformio" +# +# install: +# - pip install -U platformio +# - platformio update +# +# script: +# - platformio run + + +# +# Template #2: The project is intended to be used as a library with examples. +# + +# language: python +# python: +# - "2.7" +# +# sudo: false +# cache: +# directories: +# - "~/.platformio" +# +# env: +# - PLATFORMIO_CI_SRC=path/to/test/file.c +# - PLATFORMIO_CI_SRC=examples/file.ino +# - PLATFORMIO_CI_SRC=path/to/test/directory +# +# install: +# - pip install -U platformio +# - platformio update +# +# script: +# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100755 index 0000000..8281e64 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100755 index 0000000..4af0465 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "terminal.integrated.env.linux": { + "PATH": "/home/rohan/.platformio/penv/bin:/home/rohan/.platformio/penv:/home/rohan/.cargo/bin:/home/rohan/bin:/home/rohan/.local/bin:/home/rohan/.nvm/versions/node/v12.10.0/bin:/home/rohan/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/rohan/.cargo/bin", + "PLATFORMIO_CALLER": "vscode" + } +} \ No newline at end of file diff --git a/data/NotoSansBold15.vlw b/data/NotoSansBold15.vlw new file mode 100755 index 0000000000000000000000000000000000000000..803a1bd9748c922e455e4952f08368ce634f96f4 GIT binary patch literal 10766 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 literal 0 HcmV?d00001 diff --git a/data/NotoSansBold36.vlw b/data/NotoSansBold36.vlw new file mode 100755 index 0000000000000000000000000000000000000000..66003f6e1c9915e71f571ade912b9eb899323db6 GIT binary patch literal 44169 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 K_&W^#+W!ZD7G}`^ literal 0 HcmV?d00001 diff --git a/data/Nunito-Light20.vlw b/data/Nunito-Light20.vlw new file mode 100755 index 0000000000000000000000000000000000000000..55a6e41921eed50ce44cd9b7df82be53424f55cf GIT binary patch literal 13671 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 literal 0 HcmV?d00001 diff --git a/data/Nunito-Light32.vlw b/data/Nunito-Light32.vlw new file mode 100755 index 0000000000000000000000000000000000000000..a2e3b0734a5a54c21f6918fdd8e67131e4ed1a63 GIT binary patch literal 29150 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 literal 0 HcmV?d00001 diff --git a/data/colors.css.gz b/data/colors.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..c174ba3a70ff387c101872cf76ebcac08d99916b GIT binary patch literal 597 zcmV-b0;>HViwFoz-mzT(17mM&Z*p@kV{>x=wO7e*+b|Hl>nm9Fk_3_>$C6{HKrRJ( zDiEO8q6bQ%7DOfmicV4#{r5`N60VVGr!-)IGk$#YW;n$7_QqSW91nbb{Qmd@Fhnt= zznwLpn_I{6VT~yBMi}_xfNrIvCNu`0gJ84WgkMg!1g1{~B}bfjlRHZDD9=YXp&6pH zE4}Gk%s7 z<-g*RJR|DreK|>wtp!&ut!NjeBXc2zZj2OsstygI3}SYILJm6xE7(p!x=wOrj9|@= zRR=F?r3yJJf2y!3O1vm~L4LyU1$8v?D2ERTu%g&SyF^RzPGvd5u@t<`7m`h0y|#oI zd5J+VeEd6#4uBR3yb4^f*+$)0xOF>6bgdBhS=GX%Mw!SFPv-xdPE6RI zW>iF<-IN!U*18?fk*#UV1@V`+XI-_->+{rj6+?&f#x#BwGaRVcd&vaPgO4RlHxn%c z$&Y?^Y-4$>ZW|#6l^&MD99HL%o3Glw1eQ!P<8AyIRl9=KZdJdW^Qu8e; zj4LBe$AD-(YG1IA>vi@yYu?1qo6$kkzAb8`G%y|)D-c?E!DZ|!F0r^u)+F_&Tg6bRte(oTfDo=KO7 z@>=W{6c$ErQAfy7F_&VezktNXv+}_q_*OWuG#T&)`cVcn9-tBA#{r{8!tJlS?9=si zl5e}Td^9~&Tn|N4@09J(IjrHL#zu0F_2qQ-B0LVlx4x+fPZLWiXtZX_OxP_KM2`EFfZZk6FOjJoz za85Ggocso=bOVqXkbvmWr=Z;GS^XynQ|y=|*>O_04X%(yK==$I69{=7&?Ukp^~Omh z9+UI~5a#zR`0NSf$mOUD-ws4p0a3+3td+3w{7qgP&UYmNa!=GL4&SAsu=EPB=^U{SSh|+)mm52n4docQ>+tDhnJ(bw5?Wxh0o98^NacX2Yh}lpWnp262~qa#QD9aaB$OUe3p9@ z?@l~~jOP!)7+a0MhF74MWasl^$v>I=lgZym{^K#XAq$(oF2H%`$GEzw97mT{U`JLZ zibiin-oRo^iCT|gA?wj!+O$i-?`Xe3S0p;(FWg^l7=fIlucLBD7QX**5w0yN!0D`y zu>187uzo}#-s`yp*^%>L)@8WfP%`xrd&6uqCFPcqOjz>p4d8XAnJ!d z2iJ2$aeUx7?4bkgj!MC*_G6GCzg1_JEt47@82YeyyOQ(fG`Vi(jBw1$j>Jx56kwpU z#TsxX>aW-p`2x0w{}o&1K6Uv@a?W`DJik8h&IEm!#jH#+o28S}-qN{_JQ@PD3Rj)& z`;hxlrt9spOTAB)D)Ezc>U;P->)EDF3st5}3y7ZgnlAIg@8l{v={bR)S}=q>q-GvT*?$IoqTb|N%n zBf1C8#A|vBmg+1hQ!MygK%DE-u{7u{ycY5|bZ_${LVvv^|BYi`L{KSS)|FzD@)^!6 zbI`!?4;=seVF8qhXi)m$ye=M_f)epE$Ha(VE4Oty0s~6%EXU3rvK@6CKOrD<+`FB8 z*~DXS4RUXehw<1Ekcekn4?y7E$POw)Tk4xdxtBe11#}#YWQ> z7xK4%@SYcV??67&$B&0g>4nuTJL8Xck{t-NRT{9Ga}K03O?Fs0(3x@#oIf}`!myiI z0mS6;Xw?uSj&q1td5@7tqBG}&umNuQz33Yc5&>8psK2!xLV-Yq!#U?1m&Ex-aERCe zJnC@Eb>p!;K;kAKX*n?H0}V+ldF^ffHcFE%5KCWpl=E7|e`&HMMV*^mih``r(B}TY zx%OGkmzOCY0ukg8Q_J^M^GLbfc})5oc1o(%4g^cu}>3meAj>Sovr*hR0IWi`zCcy=H)seo9E~(WD}gy(TjE%@hx@y z(kp)q&(qj8mTd%mGmRX^WP9bCh!GR`EZaVYFNx*LI`gH}+ry!b=gF$SGYn$WY;3eU zVQ`~6!SDtq+QIZ4FzN_kre9>A1#IMCqi@*Q7B=$8rVY&byoY_!lt!fT*}EfErg)7=zY{f4dq#ysfc)?LVF({bk3Fp3;zUIMI)J*;dK>v6^~l%31| zVBJgohS1ApkI$Ek={Ux7_RF2TxMEoY z@~tSq?Qx4!}l z{m(-A>2CjEzX?TiJ!i3pw6)mKhObB7CPay z?uNtaKvniGY#g%*YmJ+*(zp#X6F?uZo1GjS zu$%2DHWs6VSohLeYl`1$W9^tyM7c_oScc>PAeQl%{D6(&B+9DikwzuF$b-QeE4b05b2)dmyh)UY>v zJPP)0X6&lU#+eeU*5Pe7{AgW?GueeW!2!5t)H|p&<)eg?;+kP=kk>s=lTXZIkR)Ua zSQPWd=`GSjwE0KR`A4b~@_Ekrr!#F3OFxW3e0?v>IP`ZEZJ_*Oql(QN#^Bp54)RmX z>R@*@Z7PnAnTHxqJ_3hLSt$Q|9`buFL2is&_s-c!XOQfcU&r%g@BAAap+Kqd*q{|X z;XgS8|G7REMn^323VLGgnqiv!5+k;(GUBJP99&aURNORv@PgNu{hS)&<;UYdc=8GuwX0CC2oz!95@qL?X|9g*26+bo+eQ+L1k zLu_FPWBjEs{*qjJwglI0m@y{;i*g?2m`)B>gNnuPK86Eh6M?^SVjDC_11Guji9=D% z0L;nYO9cZk$D=P}d&D3VD9K1?&`$X-i(<*5Ep8c)bG_R(s7_feWKYiEs4zvs^yy*9 z&hD(qx5Z+~LIY}(IH5+zcqeuS8J7*cu*Wb`l`G^|F#s)R0Lrx?wn+)#+7cPcl+~8N zsdtRS`)qIV$H~)_)fThVz%?fX($hIh&uWYL3p!!d^l1FlBi6l!^}v9-*zPzO{Q`D% zdJz?E2cnb#xRC8e!&W76bwLZ$9pi7$mXQ(M)?(3Rna%QL4+nuM89EdV4TVbtGWXrb z#m560#5u3kgc@Mi`N@S{?tQsbmylH!-1ir)KRnxv8R3EH=>dZ+7NwFr>O34Av9dRa zYJyt%kG^v2>`HuPX+YxO^6&w7wf^$m*!~e289~YBblu0Z-cZih{z0j~o&3v6tNIG% zFX!#LgpbRD`X-l$_5aoD&!*dycfv!KjBeTOYIx8%==22)(O9Jns?j z6z>)?RC@`Tlr8cUQN#$zCr{DwE(~)QTj#Y1z9$orA=B`5PzELjq$7t|%VGIb0dX#_ ziQmLM_sl@#pC%&s-^1pYZ4Xx=pjA1#2A5-8&}J0rGjUAjl*6Ia)hq|$g-f>Js{UU% z7Wg!Zf)g>WReyAS=miA)fAMZ#fuPVbBm|an__gDl$S25Kxfag8P5$Io`JAy_CndP^ z2k|%;n23VVr;yP883g^ict7rd98!j8eJPg8c3kq!zc6HjQg9dileOG~Up^)tmpC*p z4S5pLkEh}eS-rd8T9+e~_8v=npYr4F%fFBu(lw3>InwVD;D$IC*Tiq~TRb1!oWBQb zk5g=qv8@OEHo3kQWw>9b+5E;Wxr_W4`G;|>c`w&@9p-X9OJ90;A<)$gaW1ZPc!&37 z@ZM*d=fj%h#%|~mu(U-#-2Z>#z6}r2=38&an{9%2m0BJv%E7hpYXAJ1Cy(WuPm9as zy(wBAs~z>At#7M`l7Ou(`s1Nr#T|Gk-~=k=vgW+?Zr)vX`{duM$?an==i4D}GLI=* z9!%uJx{T2D&?nrY9q3~Lk*I7DaCbTc1NSSy7P*1#e1h-s(IKQ9h}`AF+XM2C<$Z=c zEr%FmZ4N^Y?-{T0Z_MYpkD}fc@{~V!-JjIj6{lis2@d{cz7zt4@{s~h-pN;oHrs(m zb~oYehR6lR(T^Tq3G{vs=(h~$|Goxs-aDVav46yk=Dj}ree;r!a9nEhv_E%G7^Bmn zASC4H`?MYy%iC{y_NFteI>=2GY{U-34 zSG8QGpB^TyX4uZ)&)toidOf+_VGCmP&M5MvFL!}9qSol5?P@hY@opD0{MjyX11T$-GTSr{C1n{WgMtu!EADMM6!`j$2lOXA z;>lh5=pgdOgAcfQ*LZWNrq79wn{zjD@UL{8lJA(7?f--tPU z7w5Mgf76yuo~4^uK1D|Q<%T_NaFK10;LH6%?Y8`;wr}Ul+b4HClscq-N7+8PYtas= z#Q39tc@L1uacWMbhD`Q*a}j^zJeE2~^B-RwQvbzwHpwY_(5_wcHXzyj2Oosq$M#)m z`?J2>1Bot8Y|o~}U{CJXo%{CaAb4l8kLS?8Y{%UBZ-)=qCOPcanJYCtRPM92oVd}X z<%9?G<#BQTZP0}z0t1`1!CAIJ*Cu1m9c?da27QSXpWL<4-41ETfdwLWU+d1HpC;G_ zR)-s$FRUMHd2}0nX#r!Uw8fg;J=~4%v`gQGAzK8Fh`^bw0HY z5C3kSnu9NYB8@ua{zzV){J#Kou^!NB0J(yH1ySOy1=xt(<$U&EUhV=SZ8Mxgx^?q! z15qQ<`OXC#(8KgUt$XbE$AVg5dPg1Rex+a;dE24jD8ld~qS4@I`+iMqFU~oYs`-1H zPyN87Lq7d!`F;)gu=NUAQOg2JTTV;6YBN zQCu27q1*XY-xlQ^1CX91W6Bj#XVB^mQ*kfy=F;`_vz- z)M3fjz=rRE3ZjbbP<4jqhk0!$f7{4=R(k6ZLWfMgBsJBi9VleT5ccJ`di09Df&p>o zF(mF7`rliPo>G}spAeAkR}uqClk~7mkYH}`eP zzfQG%j)%J&?@@;F$6NmANVXr&C@4)jNeCi7t8WQxS6BJk$_;Tmp=!ERXdP59#=#BR<66?vk znEW>r6};;xZGVxt&bwSH{|%!4;;F$<2gkPr$0SFMR*P}+#|<0Ywr7LAYpcgn+cnI$ zTtJ5D6f#Xm@iqsu*&`2QTyJt`aN?;?ywIsi)P?+XNKi@_=wMmx%U_RlJdA}t{H^r; zWh!?MMExQYi7$Wl2XrNWgAf1y zc;AnIDoQYiY(?$Ks@9)&V>$Mr3bp*}JaLhFXmzN4q7LP}i35&nIOMp3LsdWGv*qM1 z>Ot)2q9*m>oYTlk{nC&Br2hN8{D~1=cZ2@!??bZvli!BFgZw`y|1&&0MI6=YSmJvs zPaVr~0Y@B{aJcFRm48ug?Qg=L{+}9BKylW}B ze@Nu>4x3s-+d#dXE+@G=QCsW4wS!t6?MHTCp~E?6Exz3FrCLkdZFORoZ7(Wp2T^F* zhaA&hykq)8mlq}Qmyj$V0TUxHjm$o z^~McYWBLRuQp=E=yb}|jsKBd+D!2Ws@mz;pw;VqMk-_=Paz)fBHN46BD~)s3{}3an z#{eFCaQ+%X?w+chk-DVPhcc<5W_zuMXoYj{5`6jP2An@q0oQIWD66V)rD89>;{RbZZ^V6uVfSuj(7aWxZwmC5 zORppbmL|18I^&1e89%(p_#vMD^C!j+zi0dqP20z)5PLuFDQ@nX7Abg*`vUHZT{gA; zsn#GJR`poBi3{HM8RRT~AD8n*9kN(OV?C7IcP*gpU)zl0l;TGI;(Qqw%+{D(*bEvL zMd!jC_BO^U^YOB-0M9Cg=&$?at0!BOcDxru8NWp^ehYx7MyBKLsTF!^mfg4y=WcSh zf~O_kY)HfUvx~^trg9f>?zZC62b`o9aiY!5#dT`|&bj%kU=VtE(Kc*N`^?K*fVN*d zd@UAtTijUNY^*WrEU-vZRJt4Ngb&wW6>&8m(-`jCF`0Sz$`f~SegVY8i z=G3I()2(T!+O>e(ZE6kp^GYjjyk~6;66&pa_{O@fk^5N&&|jtHp)$1qCB~vg{zWN8 zSlV|fZEyARCuX;s?X45Kk*>Fl^{!uny2y~v`tlFt-i5nw8^m!R%-ze~g!LQTwcE|F zVf*$>RPD~e(JeN(7Hc(R0hettF4$J%EEh1RGFRZ}YYVk{E*FoLCa(^w2CsrG&gN(P zgNSNqk(?`-?@{COSc`F)+vHsJbQ zzUa$e)XXEf`?W#60smdy10Ss&ijrbq{u(wG8u8sf-GQ(Oj0H?a{A3)9BgR>cynS(S zXa+X+n5OnsU)#@*obOv(_tcp$()NDqcd^mdf$X=<+8~7cBis$tL2x%Y&cx7aB{v$`?V)8f~ z9AZ{^S9g0A&KRTjy8!ju0HgZN_y_I&fpmFFQ~o#UOJnZDU2LHU4W%CyH1+{{Cx^5a+#n;p*dw*cUglIdAuO4Z9yn z#`ZQz*d`~SK=-nr4)mLXX`$18QB5Wo!S^drw)k=v-#myq`?P5xm_I+#&D*O-uFZhL zj9A=w%-~*pH%GnU&o~_Wg6b!}HW$ZTk;73Q@>FA;-d6{UV%d@roN-sR7#YD2^(hUg zm^{_X-TU2y4zp*|pB8p$)FYSuqGC*3^8{KGoQ@l$@pt?E?k*!x+3p#X>Jt3FZy>e` z9RgmdFbB{4RW+E*DJ>qdn3XNQ+J{}n6qR>iVl&tGIi%sZ(3tZ?WhL%x3w3Dh4z8{7WVe}#^Xk*KB1tj<&*!X`kiN+F(W*bwjN`# zD5q}4|E+WhOaHE*F2MZ_ilS&4;eY@Q;#|=_^lp%K*r!Bcn-qU*?n?YAw#k_C@BzQs z|4N80FYgJNeK#sSU0*;wE;Z%9wU5#~NqHL_R~~H6Ux~j|s_#=!7V>12v&X34w0`Zo z&7S>-py|_F#b;y$2|a4b-!*lzj3b?XIsfmKwkVT(3EnR9t}P8pEGTc)Kfdx0gZ^#b z4>a8tEa(z2V@9hkmT5s_v&RRnzjTlOD@gJc$a2GNxr^Uq`O0;D$X8W?J=T{7^&4B> zdO(+|E-(GReZO(5tzvj&aDBu*9T5_egrJ}a^!bIv8t8PNs1WDkn)r?PH2m(Kj;A{I z{7t@}Q9l+^jbqk2pXWm&@nMnrUw(QgBejdF&cJSDx(M~7acJtV=@dGWl Qo!xf-U!+t76Ye?y0Ax>g=>Px# literal 0 HcmV?d00001 diff --git a/data/index.html.gz b/data/index.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..57f432c4ae6116c65f1e1ac4818ea19e758ae81c GIT binary patch literal 971 zcmV;+12p^}iwFpq%(7ho18Ht#Wq2-VbZu+^?O4f<<2Dez2gpBgGzfGVik9t0oIv&= z3y@2Y023g{k(Npp9a7YgRNKziPl=MewHG#vgTZ?giP;fmlVal%Ph{Gt^ktX+2pQj~ua19Bels**sRuG4~wRF?s<;vcZ{ zAfAo3_zg&5AfE^9T#DJy2bAvJm=3XW-I?!nA6#I zIy*;<@aF=O;-$#Jx?a8CM{A2FdVK|slaebm=L%3jQ!TX#2;w>@-8^_d8qL0)<);_= z({Lj)SIjd&M}Ydx2O>)01eesNT*5q#MjwdcTcK)oEUGOSzvoL7jl$N6@L9m7(#D0S z_6lw+pf|P4=`8Rp@TWF4qH@HVbRI~}vtOaCF~ERikb_wytW{WCP*+@(H&hRav~DNC z76AKH7S2`nd&bhNT-zv>y3TUR4MeF{jIa5YNwKudZG>|eBo#7RmMw2LJskLk` zixj$nlHih$0}ZV|)nImP5={}k-FR4x?q&+UFpl+k7?C}!xklUuyu{^ z;gIzBRoSAv_^Q9&1ceQFDjj6`nzGTGYiciX`qv9 zFZLrMJbHfZ?2^2t_6rsy7Se{1L&?#QtaI(T8rf`QBLuxUsclB{QusNKhI z=ZEXnf?qYtP3B8=lFCL(b8S>#bfUJD*Vq&XUOd>t9RmYI&Ow001>=>!bhx literal 0 HcmV?d00001 diff --git a/data/ledcontrol.html.gz b/data/ledcontrol.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..ae99f868bb0b6f3e07d06ff4a2894d3741560bc2 GIT binary patch literal 636 zcmV-?0)zb@iwFoN9P(TM18ikvV{dMBa&K%dXmo9C0M%7ZZ`&{oy${%b(A0xBppKm_ zz|z#tp&#gFz=m$Xu%j$9wi;OyBsq2a>qlF0+NAAe9WX3_W9gB6;*&@@dw22m{Kv0v zm!$TMT)usi?cTsjd=va-UU&)1FP9hOTq|$2%#r|Y?NX>UsV%JXs9{1)xN{M)AoIxi zI|;4^@DcHM2J*;5=ab%HFSvK6%oqu=*DbGO!L_2qiFQqEI86-mV{AXZppUZa9HT_Zsg>cJJ{`PKzhGDB%ss%^2GV0nB+-NR*KCbhwt?r zfWdIM+=HbgLxtyb*wMvwHkq03l=M<#CPk$d#EPm$vDXXC!j{_4VFiKe z(&@e>xF2ZLiuv>JGF>Ohs(S7+}(oKmu3vV}fm z`9cy1Kd18VXuo=m_UixEe)bye#lO&w&@-KonNf1XY$eoUZaR{h4w;MAd#ysD;`LwX zTRN%HrQqvb_~mK^-1h>O*8$0rz=Sf)US~h_ahB{Z W3-k_m2zGw>oc#tBKg>_xc% literal 0 HcmV?d00001 diff --git a/data/loadMenu.js.gz b/data/loadMenu.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d20f9503f7b30e8a147ba71632d3eb19dbed56a3 GIT binary patch literal 101 zcmV-r0Gj_FiwFob=&@Y@18i?$WKCsmbuMai08`OO$xklLP0cIO)GJC&OsUjJE6qzT z$;{8w&{U}AQUC%K4Rz(b#InrvM3At$re02dVv2@3P*15|MoDgtx~4T(t)?{q{eed` HN&o-=u=*?_ literal 0 HcmV?d00001 diff --git a/data/main.css.gz b/data/main.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..94afda08a3600e9c1c252bb37a8d5069b53ccaad GIT binary patch literal 236 zcmV;Il z>JzZ^jiMI_R|b6vZ#<D?H0)-seSe8=-avq*(@DPSG^AX#)Z8ZMCJUuS!Fdg5S})Ck_03si!Xa)3_4 m!eYxubQi~`b~)-(Yy67c{jAar^#A$OaCZY$yMI>M0RRAONpNTY literal 0 HcmV?d00001 diff --git a/data/main.js.gz b/data/main.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3806cae86309e343ffccd2a51c10ad5d2ef2e510 GIT binary patch literal 990 zcmV<410nn$iwFoc%d%Yn18rexZZ2wb0M%GckJ~m7z57?N+k<4dki6^NOWhP`k_|RM z3k2BQf*iQgXvJ10U6NX_5%|A%C`uHquf~Qi@xhYGH*Y@3d6b-$Jkd;W!g%rk>^axr zoP3)R{Jc;}pdfEZDw1*oTu0BK?+Y-uZ}%V5Fxc!Lp|TF?z6R^rVK%c7(G;Yg z$iF2>jJ?3LU+EnCFeM``#it`d*QgwzGpKwpT{xYSDV=U_I9G{WtEFvqu=FRr|!oEhh zxl1`h)QiLt{l$2xVSsAG_z2Ug%k%-C9myw9bRUKNNx@RN0-2zYF<*Z0Uv*zEAtycIn_=)VR)8MzK!S4oJX3WAgQQx3` zmFQq=h7Q~|<9qfp^-lKGwpiU;7m~~~_3})yJX0ypl*tn`@`5sV8I8M;z+F<^E+K7a z>so(-uw(vDrG`L5@-&9~UcRm%jp4dVG=}pf=-}>-UQ(*5q4$#h17!W2S>wEagy!r2 M0G+@TcPJ7705~7~9{>OV literal 0 HcmV?d00001 diff --git a/data/manifest.json.gz b/data/manifest.json.gz new file mode 100755 index 0000000000000000000000000000000000000000..46e531981ab2127b7550aa4c4655b9986a786a26 GIT binary patch literal 148 zcmV;F0BipriwFoN9P(TM18re$X=Y_}bS`RhZ*Bmq=2B3~OUzAGvQkj;adlB}&d)0; z%Fj{K0g7iP=jRmzC8D_$6smz(L8-VX8Kf{qKP|BgB&%y^Vp0LbdIfpuAT1yznN_JE zO-fKHsBlST0oabr+{ETv`OCgr4mJ0x>nWlc40002L C6hDyw literal 0 HcmV?d00001 diff --git a/data/manualMode-ajax.html.gz b/data/manualMode-ajax.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..d120536cb4784324a1585786aca7059e3d79b777 GIT binary patch literal 1514 zcmV`-i0DZy)?V#Q(fnxzHfNH?2lv?J1 z_X(SVuhrJrz1{-<*4Ps^vyfJP3}mmr==JM>9{x0e5|+jjkZPs9diEY9&QPi+pcqM6 zf|IET5}-lGGvN?KRgkKo^Fyc8|EWLO(q9d_^Egz|Fa%@))I6M%IE_`zIF$k8FzkAr zbCR${oD@k_R7eo!nT=7@aV-aT7Q;NxgmSm0iApe`Cs;g`%|T`f_*Y)H>s^=tGS0t3=<+PjK_GR%>vgZZjt?@~2v_SW z$-;s|)w_y&#v3v4n!HI`nZf(n9V7llAK+eVVhMq+t^a?f113V7EnB!)!I-m@ ziKVXSOQOf=BooQ1q)D=%tWcR_mQiA|Mzz)VS!h{Ppt} z*w^`BqJe z1@)4HzJ0#@C2YBsX79Fd*2dP*V`2DmhPuDS5<&@o?LZ`V$pY1Pfch&?tK5tLF|lW+W3obKY`IU;3~KxpVI}ys{BD@%%$~EV(=G z^7--&cCuCI-L_|1**4k+>MuQ5McN{_Vz$*A@2|^txW>LYZK5x4Z3bL-d+KuF3`a_a zbR#yTl%ED{n=9$EHuv5o=2FU9@5c+an*y9|kmzHx)%vo6+n2%6@LFeUm_jbiXasL0NSqk0ssI2 literal 0 HcmV?d00001 diff --git a/data/manualMode.html.gz b/data/manualMode.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..1365e16589cdabee813a645158d4425d06aaae8b GIT binary patch literal 983 zcmV;|11S6-iwFquqq1E918re$bzy8xZ)9aIXmo9C0KHdBkJ~m7K5v2k2ZlxAOC(xZ z2XzD4Ikag{n+C{Ua-^k^MTZhqlJXJaumo=B#^*i0$dk-4b15s!Dq8QevjZ8-+D|h zzX@|T-_Pc!h#~%5Kq`1CGBEb2-U-5uK^xtH0xTybFVLRNp@1M!QfW#M*g|O+^rz`` z{>wZYALyP=b|SU;A_epWf@brYh*DU=WndC6VG)JX*QDTkQPjmyR2$IEp07|eop>iE zTLHUDX*=ocy$S*nn?#Gs5~CALOPR)wUv3tScc^=;aaJ+1YQXfCaQ1;-)FoK^04?=V@VYC z#OUqNVH`bk1_~#3lC<0)xKwqTNv@%>!#8}-q*xhdcfwk%>PjhVtmYM)h4*3PJYh#! zlT4IcpzOKfhKy#UKFs&O^vlcWCs9BQINQ z$GL#-z^DS)+c1j4H%+0rl$T3hxak_vL{S1n_lycU3KnRx1V!WlvQn8hH9P)Y}_s{@~I8zBS~Ke1&vLKC1scu{|H&Jj;iQG>ylFq1U2(H?Q_&TJ0&}Qmhfd zUlyeEs+XQb62ARRM)5K~lZ4lJlt``;^k#`F%`MQohIa5F|?k>#6z@f$T8A6S;;SWR6 zHk~dUdKaAxDri{+qHORKyc5d5JD$r-FR`+LYZ@twnN}huvULAfQms;`H9pyyMf%Ig ztr5_XzZu5pNrBLW_LgimQ0)|+zfDva?e;u>iPN5s@0!^xZ|1KAEfQ&0w*uZ^mE?64 z{UZ%EPXkcd0Pzvdg6qKSyuu&xcD;;UbiXE)S!Y)MqO_J-w8%dJkMzNE>H`1(MbMxO literal 0 HcmV?d00001 diff --git a/data/nunito-regular-webfont.woff b/data/nunito-regular-webfont.woff new file mode 100755 index 0000000000000000000000000000000000000000..273528145ffa3fa8ffbb2d93c3bcfe27e04653bf GIT binary patch literal 27376 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 literal 0 HcmV?d00001 diff --git a/data/nunito-regular-webfont.woff2 b/data/nunito-regular-webfont.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..3dcf532ea5849c6782f0189f43b385469450738d GIT binary patch literal 20960 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�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�BPB_z$}dF1OeS%LEGq5VTg_mj|QvD zxjrbY!66GT4K$kHqv`ONGnOaA>&s3~hRG5A^y>~(fN20teo@)s)Iwpe_RwE+ECs z$qxtg9ML#{u<&=E^mD*Tlg%2L!eBLcB}+D}BZ-c*VdP>PF}CQTSeObyrgcJuWuLmJ$<&j}W;;{=H63OVk)y9p z4Xt&QsfQ`ea2OVT4$kPb+&kDm5AucPbX!CI+|s4=C~lp=aFn0Kp`e;J5`ln1r@ms5h7HW za1kO&MUjaXBUT)_cnS%W5+zBNA~p2Dv?k3?81zhwF6}1lHxv4x%?}#&g#pY3orY|+ z=9eG>JIwm{7ZnUM5 zOO{i{s}6R!zs#@nk@LS9vJDTDqFwGe{^d^It09IZlv5K5YxoDhI;9}U8Du|F4R}s9 z0;=)x`z*Go-wAf8*YS&J*x`Sv=!6S2>WD%bccM(1bmDY6=p<=0?F`~*wl9sI^#`RS zn(vaQiyp7lN~(|M3ELDN*D_Q+4uYh(=!9_@8*Ng~`wCB>)#IfHtsk#!Y4dokM%%|5 T0csv^^Xc$0!@6WqhyVZp;-}KU literal 0 HcmV?d00001 diff --git a/data/settings-ajax.html.gz b/data/settings-ajax.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..709d1918947826dda1880bbd49ad6e4e75f42a7f GIT binary patch literal 1077 zcmV-51j_p#iwFql!m?ce19N3`bZKs9b1h+NVR$ZRbZu+^?O021+c*$DZ+-=<9(*Z9 zJ9e-}A^Wi17JCV{KzrFEC5}s`Fjvo{Kvo@Z3=D}-)J;ehneyo!2;_OL{4DQ}!6w&c0qP`M&Cof4JO zo2X;=Y{>GuACdZn0}}#g*f2f4A4*=WfZQKe<@Na-9?FCIGPvj9QQy|TP0rVW+I_;G z7q|?=wgt4pkoASmEdaK5ka#LftUU4uZf|bg`-BDYAKw%cU(3=79^TP%g&j+og^%%pLV& zzMHdG*&NcwIXqAIH^MMFN_F|ANtJL33(6PGAz?n$6L+H+aU v)EoM%Mi%ZLM~^S}wZhi?jt6OU@aZ05kl^-N#6O()zhnLfvtf09r4axCI!Fyo literal 0 HcmV?d00001 diff --git a/data/settings-success.html.gz b/data/settings-success.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..55cfbc0007a9b88d1b7e7f08c371a2cc4305abf1 GIT binary patch literal 420 zcmV;V0bBkbiwFqhwenm519N3`bZKs9b1idqV`F7=b1rCfZEOIYQ$cQnFc3U9udv($ zmx75DsT>T4ejzW|m?gNi4Z=%8`uZB2q$Ir+$w=Ovof&)AvL$P(jcgI>YQw@ONt3~9 zk3`xXJsbNP2$>(1LhqZ=ND&bcZM6Gh?SM_0SkNw0-Y0B8Qzo7+27QZ238PDoWkNWS zm;vkB8Ox#X4W`tMs!g@(9A{pCqc8ck$fvM)l;GkSm|g){?~eQrZKPVnxwddbF~jcM zyWJEPXE*W&PLVSv{=>N|rd`3G2($3}OJu?620h);w?OvkgTxhYk$^d{L5*6pn5xcn z180Gj&{4@>^SpR3ng{$XnVfY^ZCPWmf$6e&W7=ubU{bHZV7blmH)dhdcC_oz=y6!~ za0sD1i5`-Z#&h2d6j~@n92$A(>PxkGkt#^y5Pd9O=KMMkgWGB!XDJYDS7`AJm$g1U z75Be$sakMHtXG3+E}0blLxl`?VZevR97dwKao4-%)d#3ADPV12(R-2Nb`UAz(So(* OmHYsgA4XLz0{{Trk;u9L literal 0 HcmV?d00001 diff --git a/data/settings.html.gz b/data/settings.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..fb034c4c1862a6622e62b32cd9c87de3a89b301a GIT binary patch literal 935 zcmV;Y16ceYiwFoxpcP#J19N3`bZKs9b1rCfZEOJ5R!fiDHV{5LK>h>6AW#BClD%sn z?m|+5wkdkZV}Z@3M_L+L+)|`Mj=Xk%eTSlCyUym-?4<@|4axbw84hQL%AUkA%bxu9 z{?`wGUcY7ywyI!pTs(f14YGfOsOUY*P@;n31`ws*xGW9h$B!8OG9~q2%!10f=sE>4 zn!apeSsKlmlYfKD`C>KS(Zg9|q0V`Ft{9IBNvAjbQ{KRZ`wmEM#RgKZcOYLbcl2;J zvDac7NW;Q^B3-U_%N0LkOz7_(rdDWKgTsURG?CmovM~W#K*6+V$sRV)LR=bUEN4WF zpfTr9=kwL8RsCM&X3Y)wF@&w{x@RCU_Q3@5iQYgq5$^0d2#ZI<;dpgxSu)|oa zX=)w?C!(!{yUtjQ{1HJuIq4MYA+}K~NUL-%8bTjA+$(Sm07k*b zXzZ<=kIz7t>NK-k5>3pBI#Hg z+1gZldXrSrF@Y_Hsu|vkf=wmEI!Z7`s6`Q=ULhS3gsqKjnJ7^jP5I+SRN@PfGYV;A zs+?cHzxlw2dOQGUv#gR^Rx05rX+3S6LdSCqQ~coPuYRwk{xL<*l{*H`3Q(sIqln1jnr4GZpY@` zjymnSN2Hc9_SZ1t#ZA9%C6Y74n7rz~7(tSJmkv#R>fNW8P3mu(K^QMDx{~}C-#>fI JspAp~0030h(L(?L literal 0 HcmV?d00001 diff --git a/data/settings.js.gz b/data/settings.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6093525fc5d4d739c1c42d12359dbd7b2801e181 GIT binary patch literal 567 zcmV-70?7RziwFq+%(7ho19N3`bZKs9b1rIg0DV)zj+-zLJ#W6k;!qnUINMv5G?lu| zuGFe(58Ixi92}SgDq~Y)lAwxz-!TRj(yAN)&zqSy^JaV&hUE2=HaXdlM8{PQ%JLJ~ zM+xrtq5hmO>OE*U^FLf9$>SN(uUTn9fnl_)4tZwjf*dOq+e|A4A^9^S_y8{qIPWbS zMI|i@*R6fIJR^A`tU&57&)>iC(wa=2vSZDT$g)L*dBU&@ky<3q^KX3CgtJ-CO$ONg z^mRBkkjUkX{C5SWeg+A#)#js=jAp8+?9SE&Yyt~c8|-OE>mmSSXtMuTVN*eOB zkQKa!=k?Y%N~t$?hB;cg)RfE#-MDwph37Y&JJw8?OLWB?_iOyT$7Z+$b+RcQ=kvbJ zo>7S$&==(Hy65h&p1^H=13s$OkH(j`b8&n0y1`$IZ&~`fea^P(*0pKh25eD7B{5ism*1ljPuYExYQ>fIf@%pcYxOs zY@9O8w;0LQwgfiS$%@cI<0uvrECrE(DOWck?g>6=g;&5vZf}AW2}Ds~hr)HVyhfMH zC35Q)AtR_*Cy=a3oC<@TY<~WDirxj2l+Bd*pp$ylbuj=3iiwFqKIr3Zp19Np_V`X!5E@*UZYyh28v2KGf5S^Q^u-t*AU?N2-gJI~@ zq21aKxR|53u>s*DA^rLqoK%EtMKY4#y?gKMJIk7^DK@f3D2omApCnBNi`S3$H}=_? z7E0y@rO>%*Fj9nQU>e;VSlwflM;3IGDCZ*9qsb#jXM?Urq=?bE!#pA!Nlb)g?!@KL zbp~T<2UW*fwGC%Z|DenHHcLmpc(CANO^h#uq-(zTootYr&AGPlg<_)pY43KUUz}aV zD>w$t5crSgE*p0lUkN7ucQ0h2(G@!SV_$*f+j)x%-y#8Pz6d266N&3VrjM@%%2@MYWc@KLJrBSFM zI%+(1ZBM?1QiOq#`?fq6n+K`9CHA3?xt1xu1Om8S&K34vX1mA{>m*s~<4U3{K5Aq` z7|av6#c(E4bT@42Z^MA|t=SJmQ|m6b&5IXM2Pt4_K6^b#aXpF@;c&jJ`HlPnh6KX$ HD+2%kH<8C9 literal 0 HcmV?d00001 diff --git a/data/temperatures.txt.gz b/data/temperatures.txt.gz new file mode 100644 index 0000000000000000000000000000000000000000..642784cd5560130e05acdb44fb6d048ac1613b17 GIT binary patch literal 72 zcmb2|=HR%yZ(}S2b4hA$L26NANoi4Pv0h0<3B&4VK>-0;o@aGEbiH&mb-i@MHU)LC cb!lqMhi_@% literal 0 HcmV?d00001 diff --git a/include.js b/include.js new file mode 100755 index 0000000..4d49a8b --- /dev/null +++ b/include.js @@ -0,0 +1,10 @@ +$(function(){ + var includes = $('[data-include]'); + jQuery.each(includes, function(){ + var file = '/' + $(this).data('include') + '.html'; + $(this).load(file); + }); + }); +// $(document).ready(function(){ +// $( "#header" ).load( "/menu.html" ); +// }); \ No newline at end of file diff --git a/include/README b/include/README new file mode 100755 index 0000000..194dcd4 --- /dev/null +++ b/include/README @@ -0,0 +1,39 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the usual convention is to give header files names that end with `.h'. +It is most portable to use only letters, digits, dashes, and underscores in +header file names, and at most one dot. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/lib/README b/lib/README new file mode 100755 index 0000000..6debab1 --- /dev/null +++ b/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into executable file. + +The source code of each library should be placed in a an own separate directory +("lib/your_library_name/[here are source files]"). + +For example, see a structure of the following two libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +and a contents of `src/main.c`: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +PlatformIO Library Dependency Finder will find automatically dependent +libraries scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/platformio.ini b/platformio.ini new file mode 100755 index 0000000..3ee4354 --- /dev/null +++ b/platformio.ini @@ -0,0 +1,24 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env:nodemcuv2] +; CXXFLAGS = -W -Wall -Wextra -Werror -std=c++11 +platform = espressif8266 +; lib_extra_dirs = ~/Documents/Arduino/libraries +board = nodemcuv2 +framework = arduino +upload_speed = 460800 +; build_flags = -D BEARSSL_SSL_BASIC +; baud_rate = 115200 +monitor_speed = 115200 +board_build.f_cpu = 160000000L +; lib_deps = +; MAX31850 DallasTemp + diff --git a/src/sketch_oct17esp.cpp b/src/sketch_oct17esp.cpp new file mode 100755 index 0000000..d1d064a --- /dev/null +++ b/src/sketch_oct17esp.cpp @@ -0,0 +1,943 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // Graphics and font library for ILI9341 driver chip +#include +#include +#include + +// #define AA_FONT_SMALL "NotoSansBold15" +#define AA_FONT_SMALL "Nunito-Light28" + +#define AA_FONT_LARGE "NotoSansBold36" + +#define ONE_WIRE_BUS D1 + +#include + +SoftwareSerial s(D3, D2); //RX.TX +TFT_eSPI tft = TFT_eSPI(); +#define COORDSIZE 12 + +static char temperaturesJson[200]; + +const char *guiStrings[] PROGMEM = {"Humi: ", "Time: ", + "PH: ", "Temp: ", + "Temp: ", "Temp: ", + "Temp: ", "Temp: ", + "Temp: ", "Temp: ", + "Temp: ", "Temp: "}; + +class Coordinates +{ +public: + int x[COORDSIZE]; + int y[COORDSIZE]; + Coordinates() + { + int count = 5; + Serial.println("Init coords"); + + Serial << "count = " << count << endl; + for (int i = 0; i < COORDSIZE; i++) + { + x[i] = 0; + y[i] = count; + if (i % 2 == 1) + count = count + 37; + // y[i] = 0; + } + } +}; + +Coordinates coordinates; //object creation +OneWire oneWire(ONE_WIRE_BUS); +DallasTemperature sensors(&oneWire); +const int SENSOR_RESOLUTION = 12; +unsigned long lastTempRequest = 0; +const unsigned int delayInMillisSensors = 750 / (1 << (12 - SENSOR_RESOLUTION)); +; + +ESP8266WiFiMulti wifiMulti; // Create an instance of the ESP8266WiFiMulti class, called 'wifiMulti' + +ESP8266WebServer server(300); // create a web server on port 80 +WebSocketsServer webSocket(301); // create a websocket server on port 81 + +File fsUploadFile; // a File variable to temporarily store the received file + +const char *ssid = "ESP8266 Access Point"; // The name of the Wi-Fi network that will be created +const char *password = "thereisnospoon"; // The password required to connect to it, leave blank for an open network + +const char *OTAName = "ESP8266"; // A name and a password for the OTA service +const char *OTAPassword = "esp8266"; +const size_t bufferSize = JSON_ARRAY_SIZE(3) + JSON_OBJECT_SIZE(2) + 3 * JSON_OBJECT_SIZE(5); +const size_t lcd_data_size = JSON_ARRAY_SIZE(8) + JSON_OBJECT_SIZE(1) + 30; + +// #define LED_RED 15 // specify the pins with an RGB LED connected +// #define LED_GREEN 12 +// #define LED_BLUE 13 +#define ARDUINO_TO_ESP_PIN D0 +// #define ESP_TO_ARDUINO_PIN D2 + +byte currentArduinoState; +byte previousArduinoState; + +const char *mdnsName = "esp8266"; // Domain name for the mDNS responder + +/*__________________________________________________________SETUP__________________________________________________________*/ + +void setup() +{ + // pinMode(LED_RED, OUTPUT); // the pins with LEDs connected are outputs + // pinMode(LED_GREEN, OUTPUT); + // pinMode(LED_BLUE, OUTPUT); + pinMode(ARDUINO_TO_ESP_PIN, INPUT); + // pinMode(ESP_TO_ARDUINO_PIN, OUTPUT); + // digitalWrite(ESP_TO_ARDUINO_PIN, 1); + + Serial.begin(115200); + s.begin(9600); // Start the Serial communication to send messages to the computer + delay(10); + Serial.println("\r\n"); + + startWiFi(); // Start a Wi-Fi access point, and try to connect to some given access points. Then wait for either an AP or STA connection + + startOTA(); // Start the OTA service + + startSPIFFS(); // Start the SPIFFS and list all contents + + startWebSocket(); // Start a WebSocket server + + startMDNS(); // Start the mDNS responder + + startServer(); // Start a HTTP server with a file read handler and an upload handler + + //displaySettings2(); + tft.init(); + tft.setRotation(1); + bool font_missing = false; + if (SPIFFS.exists("/NotoSansBold15.vlw") == false) + font_missing = true; + if (SPIFFS.exists("/NotoSansBold36.vlw") == false) + font_missing = true; + + if (font_missing) + { + Serial.println("\r\nFont missing in SPIFFS, did you upload it?"); + while (1) + yield(); + } + else + Serial.println("\r\nFonts found OK."); + + tft.setTextSize(2); + tft.fillScreen(TFT_BLACK); + tft.setTextColor(TFT_GREEN, TFT_BLACK); + + // for (int i = 0; i < COORDSIZE; i++) + // { + // Serial << FPSTR(guiStrings[i]); + // } + tft.loadFont(AA_FONT_SMALL); + // tft.setTextFont(2); + Serial.println(); + for (int i = 0; i < COORDSIZE; i++) + { + if (i % 2 == 0) + { + // tft.drawString("Temp: ", 165, coordinates.y[i], 2); + tft.drawString(guiStrings[i], 5, coordinates.y[i]); + coordinates.x[i] = 5 + tft.textWidth(guiStrings[i]) + 2; + } + else + { + + tft.drawString(guiStrings[i], 165, coordinates.y[i]); + coordinates.x[i] = 165 + tft.textWidth(guiStrings[i]) + 2; + } + } + + // tft.drawString("afef",0,0); + tft.unloadFont(); + // tft.setTextFont(2); + + // Serial << "Printing x coordinates" << endl; + // for (int i = 0; i < COORDSIZE; i++) + // { + // Serial << coordinates.x[i] << " "; + // } + + // Serial.println(); + + // Serial << "Printing x and y coordinates" << endl; + // for (int i = 0; i < COORDSIZE; i++) + // { + // Serial << F("(") << coordinates.x[i] << F(",") << coordinates.y[i] << F(")") + // << F(" "); + // } + Serial.println(); + Serial.println("Dallas Temperature IC Control Library Demo"); + sensors.begin(); + sensors.setWaitForConversion(false); + sensors.requestTemperatures(); + // delayInMillisSensors = 750 / (1 << (12 - SENSOR_RESOLUTION)); + // delayInMillisSensors = 1000; + lastTempRequest = millis(); +} + +/*__________________________________________________________LOOP__________________________________________________________*/ + +bool rainbow = false; // The rainbow effect is turned off on startup +//bool arduinoON = false; +unsigned long prevMillis = millis(); +int hue = 0; + +void loop() +{ + // // digitalWrite(ESP_TO_ARDUINO_PIN, 0); + + webSocket.loop(); // constantly check for websocket events + server.handleClient(); // run the server + ArduinoOTA.handle(); // listen for OTA events + previousArduinoState = currentArduinoState; + currentArduinoState = digitalRead(ARDUINO_TO_ESP_PIN); + if (previousArduinoState == LOW && currentArduinoState == HIGH) + { + Serial.println("Arduino turned on"); + //arduinoON = true; + //combineSettings(); + displayCombinedSettings(); + Serial.println("Settings sent to arduino"); + } + + if (rainbow) + { // if the rainbow effect is turned on + if (millis() > prevMillis + 32) + { + if (++hue == 360) // Cycle through the color wheel (increment by one degree every 32 ms) + hue = 0; + setHue(hue); // Set the RGB LED to the right color + prevMillis = millis(); + } + } + + // s.flush() + if (s.available() > 0) + { + Serial << F("Received JSON from arduino") << endl; + StaticJsonBuffer<100> jsonBuffer; + // DynamicJsonBuffer jsonBuffer(100); + JsonObject &root = jsonBuffer.parseObject(s); + JsonArray &lcd_data = root["lcdData"]; + // lcd_data[0]; + char a[10]; + sprintf(a, lcd_data[1]); + tft.drawString(a, coordinates.x[1], coordinates.y[1], 2); + // int d = lcd_data[0]; + sprintf(a, lcd_data[0]); + tft.drawString(a, coordinates.x[0], coordinates.y[0], 2); + // tft.drawString("25.5C", coordinates.x[3], coordinates.y[3], 2); + + root.printTo(Serial); + // Serial << s.available() << endl; + // s.flush(); + // Serial << (char)s.read() << endl; + // sensors.requestTemperatures(); + // char str_temp[6]; + // dtostrf(sensors.getTempCByIndex(0), 1, 1, str_temp); + // sprintf(a, "%s", str_temp); + // tft.drawString(str_temp, coordinates.x[3], coordinates.y[3], 2); + // Serial.println(sensors.getTempCByIndex(0)); + delay(50); + } + // sensors.requestTemperatures(); + // Serial.println(sensors.getTempCByIndex(0)); + // delay(1000); + + // Serial << F("Serial available = ") << s.available() << endl; + // delay(50); + + // if (sensors.isConversionAvailable(0)) + // { + // // tft.drawString("25.5C", coordinates.x[3], coordinates.y[3], 2); + // Serial << "Reading avaialable" << endl; + // char b[10]; + // char str_temp[6]; + // dtostrf(sensors.getTempCByIndex(0), 1, 1, str_temp); + // sprintf(b, "%s", str_temp); + // tft.drawString(str_temp, coordinates.x[3], coordinates.y[3], 2); + // Serial.println(sensors.getTempCByIndex(0)); + // sensors.requestTemperatures(); + // } + if (millis() - lastTempRequest >= delayInMillisSensors) + { + char b[10]; + char str_temp[6]; + // saveTemperatureJson(); + StaticJsonBuffer<200> jsonBuffer; + JsonObject &root = jsonBuffer.createObject(); + if (root == JsonObject::invalid()) + { + Serial.println("Error"); + } + JsonArray &temperatures = root.createNestedArray("temperatures"); + temperatures.add(sensors.getTempCByIndex(0)); + root.prettyPrintTo(Serial); + root.prettyPrintTo(temperaturesJson); + dtostrf(sensors.getTempCByIndex(0), 1, 1, str_temp); + sprintf(b, "%s", str_temp); + tft.drawString(str_temp, coordinates.x[3], coordinates.y[3], 2); + // Serial.println(sensors.getTempCByIndex(0)); + // Serial << "Delay: " << delayInMillisSensors << endl; + sensors.requestTemperatures(); + // delayInMillisSensors = 750 / (1 << (12 - SENSOR_RESOLUTION)); + lastTempRequest = millis(); + } +} + +/*__________________________________________________________SETUP_FUNCTIONS__________________________________________________________*/ + +void startWiFi() +{ // Start a Wi-Fi access point, and try to connect to some given access points. Then wait for either an AP or STA connection + WiFi.softAP(ssid, password); // Start the access point + Serial.print("Access Point \""); + Serial.print(ssid); + Serial.println("\" started\r\n"); + + wifiMulti.addAP("Rohan-2", "coldpark735"); // add Wi-Fi networks you want to connect to + wifiMulti.addAP("rohan", "Mir@1932"); + wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); + + Serial.print(F("MAC: ")); + Serial.println(WiFi.macAddress()); + + Serial.println("Connecting"); + while (wifiMulti.run() != WL_CONNECTED && WiFi.softAPgetStationNum() < 1) + { // Wait for the Wi-Fi to connect + delay(250); + Serial.print('.'); + } + Serial.println("\r\n"); + if (WiFi.softAPgetStationNum() == 0) + { // If the ESP is connected to an AP + Serial.print("Connected to "); + Serial.println(WiFi.SSID()); // Tell us what network we're connected to + Serial.print("IP address:\t"); + Serial.print(WiFi.localIP()); // Send the IP address of the ESP8266 to the computer + } + else + { // If a station is connected to the ESP SoftAP + Serial.print("Station connected to ESP8266 AP"); + } + Serial.println("\r\n"); +} + +void startOTA() +{ // Start the OTA service + ArduinoOTA.setHostname(OTAName); + ArduinoOTA.setPassword(OTAPassword); + + ArduinoOTA.onStart([]() { + Serial.println("Start"); + // digitalWrite(LED_RED, 0); // turn off the LEDs + // digitalWrite(LED_GREEN, 0); + // digitalWrite(LED_BLUE, 0); + }); + ArduinoOTA.onEnd([]() { + Serial.println("\r\nEnd"); + }); + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { + Serial.printf("Progress: %u%%\r", (progress / (total / 100))); + }); + ArduinoOTA.onError([](ota_error_t error) { + Serial.printf("Error[%u]: ", error); + if (error == OTA_AUTH_ERROR) + Serial.println("Auth Failed"); + else if (error == OTA_BEGIN_ERROR) + Serial.println("Begin Failed"); + else if (error == OTA_CONNECT_ERROR) + Serial.println("Connect Failed"); + else if (error == OTA_RECEIVE_ERROR) + Serial.println("Receive Failed"); + else if (error == OTA_END_ERROR) + Serial.println("End Failed"); + }); + ArduinoOTA.begin(); + Serial.println("OTA ready\r\n"); +} + +void startSPIFFS() +{ // Start the SPIFFS and list all contents + SPIFFS.begin(); // Start the SPI Flash File System (SPIFFS) + Serial.println("SPIFFS started. Contents:"); + { + Dir dir = SPIFFS.openDir("/"); + while (dir.next()) + { // List the file system contents + String fileName = dir.fileName(); + size_t fileSize = dir.fileSize(); + Serial.printf("\tFS File: %s, size: %s\r\n", fileName.c_str(), formatBytes(fileSize).c_str()); + } + Serial.printf("\n"); + } +} + +void startWebSocket() +{ // Start a WebSocket server + webSocket.begin(); // start the websocket server + webSocket.onEvent(webSocketEvent); // if there's an incomming websocket message, go to function 'webSocketEvent' + Serial.println("WebSocket server started."); +} + +void startMDNS() +{ // Start the mDNS responder + MDNS.begin(mdnsName); // start the multicast domain name server + Serial.print("mDNS responder started: http://"); + Serial.print(mdnsName); + Serial.println(".local"); +} + +void startServer() +{ // Start a HTTP server with a file read handler and an upload handler + server.on("/edit.html", HTTP_POST, []() { // If a POST request is sent to the /edit.html address, + server.send(200, "text/plain", ""); + }, + handleFileUpload); // go to 'handleFileUpload' + + server.onNotFound(handleNotFound); // if someone requests any other file or page, go to function 'handleNotFound' + // and check if the file exists + server.on("/settings.html", HTTP_POST, handleSettings); + + server.on("/manualMode.html", HTTP_POST, handleManual); + + server.on("/api/get/temperatures", HTTP_GET, []() { + server.send(200, "application/json", temperaturesJson); + }); + + server.begin(); // start the HTTP server + Serial.println("HTTP server started."); +} + +/*__________________________________________________________SERVER_HANDLERS__________________________________________________________*/ + +void handleNotFound() +{ // if the requested file or page doesn't exist, return a 404 not found error + if (!handleFileRead(server.uri())) + { // check if the file exists in the flash memory (SPIFFS), if so, send it + server.send(404, "text/plain", "404: File Not Found"); + } +} + +bool handleFileRead(String path) +{ // send the right file to the client (if it exists) + Serial.println("handleFileRead: " + path); + if (path.endsWith("/")) + path += "index.html"; // If a folder is requested, send the index file + String contentType = getContentType(path); // Get the MIME type + String pathWithGz = path + ".gz"; + if (SPIFFS.exists(pathWithGz) || SPIFFS.exists(path)) + { // If the file exists, either as a compressed archive, or normal + if (SPIFFS.exists(pathWithGz)) // If there's a compressed version available + path += ".gz"; // Use the compressed verion + File file = SPIFFS.open(path, "r"); // Open the file + size_t sent = server.streamFile(file, contentType); // Send it to the client + file.close(); // Close the file again + Serial.println(String("\tSent file: ") + path); + return true; + } + Serial.println(String("\tFile Not Found: ") + path); // If the file doesn't exist, return false + return false; +} + +void saveTemperatureJson() +{ + StaticJsonBuffer<200> jsonBuffer; + JsonObject &root = jsonBuffer.createObject(); + if (root == JsonObject::invalid()) + { + Serial.println("Error"); + } + + // JsonArray &data = root.createNestedArray("data"); + // data.add(48); + // data.add(2); + JsonArray &temperatures = root.createNestedArray("temperatures"); + temperatures.add(sensors.getTempCByIndex(0)); + root.prettyPrintTo(Serial); + root.prettyPrintTo(temperaturesJson); + // if (SPIFFS.exists("/temperatures.txt")) + // { + // SPIFFS.remove("/temperatures.txt"); + // Serial.println("Old settings file removed"); + // } + // File settingsFile = SPIFFS.open("/temperatures.txt", "w"); + // if (!settingsFile) + // Serial.println("Error wriing json to file"); + // root.prettyPrintTo(settingsFile); //Export and save JSON object to SPIFFS area + // Serial.println("Json written to file"); + // settingsFile.close(); +} +void saveSettings1() +{ + int shour = server.arg("shour").toInt(); + int smin = server.arg("smin").toInt(); + int fadePeriod = server.arg("fadePeriod").toInt(); + int ehour = server.arg("ehour").toInt(); + int emin = server.arg("emin").toInt(); + StaticJsonBuffer<200> jsonBuffer1; + JsonObject &root = jsonBuffer1.createObject(); + if (root == JsonObject::invalid()) + { + Serial.println("Error"); + } + root["shour1"] = shour; + root["fadePeriod1"] = fadePeriod; + root["smin1"] = smin; + root["ehour"] = ehour; + root["emin"] = emin; + root.prettyPrintTo(Serial); + if (SPIFFS.exists("/settingsFile1.txt")) + { + SPIFFS.remove("/settingsFile1.txt"); + Serial.println("Old settings file removed"); + } + File settingsFile = SPIFFS.open("/settingsFile1.txt", "w"); + if (!settingsFile) + Serial.println("Error wriing json to file"); + root.prettyPrintTo(settingsFile); //Export and save JSON object to SPIFFS area + Serial.println("Json written to file"); + settingsFile.close(); +} +void saveSettings2() +{ + int shour = server.arg("shour").toInt(); + int smin = server.arg("smin").toInt(); + int fadePeriod = server.arg("fadePeriod").toInt(); + int ehour = server.arg("ehour").toInt(); + int emin = server.arg("emin").toInt(); + StaticJsonBuffer<200> jsonBuffer7; + JsonObject &root = jsonBuffer7.createObject(); + if (root == JsonObject::invalid()) + { + Serial.println("Error"); + } + root["shour2"] = shour; + root["fadePeriod2"] = fadePeriod; + root["smin2"] = smin; + root["ehour"] = ehour; + root["emin"] = emin; + root.prettyPrintTo(Serial); + if (SPIFFS.exists("/settingsFile2.txt")) + { + SPIFFS.remove("/settingsFile2.txt"); + Serial.println("Old settings file removed"); + } + File settingsFile = SPIFFS.open("/settingsFile2.txt", "w"); + if (!settingsFile) + Serial.println("Error writing json to file"); + root.prettyPrintTo(settingsFile); //Export and save JSON object to SPIFFS area + Serial.println("Json written to file"); + settingsFile.close(); +} +void saveSettings3() +{ + int shour = server.arg("shour").toInt(); + int smin = server.arg("smin").toInt(); + int fadePeriod = server.arg("fadePeriod").toInt(); + int ehour = server.arg("ehour").toInt(); + int emin = server.arg("emin").toInt(); + StaticJsonBuffer<200> jsonBuffer8; + JsonObject &root = jsonBuffer8.createObject(); + if (root == JsonObject::invalid()) + { + Serial.println("Error"); + } + root["shour3"] = shour; + root["fadePeriod3"] = fadePeriod; + root["smin3"] = smin; + root["ehour"] = ehour; + root["emin"] = emin; + root.prettyPrintTo(Serial); + if (SPIFFS.exists("/settingsFile3.txt")) + { + SPIFFS.remove("/settingsFile3.txt"); + Serial.println("Old settings file removed"); + } + File settingsFile = SPIFFS.open("/settingsFile3.txt", "w"); + if (!settingsFile) + Serial.println("Error writing json to file"); + root.prettyPrintTo(Serial); + root.prettyPrintTo(settingsFile); //Export and save JSON object to SPIFFS area + Serial.println("Json written to file"); + settingsFile.close(); +} +void combineSettings() +{ + File file1 = SPIFFS.open("/settingsFile1.txt", "r"); + File file2 = SPIFFS.open("/settingsFile2.txt", "r"); + File file3 = SPIFFS.open("/settingsFile3.txt", "r"); + File file5 = SPIFFS.open("/manualMode.txt", "r"); + // Serial.println("2"); + if (SPIFFS.exists("/combinedSettingsFile.txt")) + { + SPIFFS.remove("/combinedSettingsFile.txt"); + } + + File file4 = SPIFFS.open("/combinedSettingsFile.txt", "w"); + size_t size1 = file1.size(), size2 = file2.size(), size3 = file3.size(), size5 = file5.size(); + ; + std::unique_ptr buf1(new char[size1]); + std::unique_ptr buf2(new char[size2]); + std::unique_ptr buf3(new char[size3]); + std::unique_ptr buf5(new char[size5]); + file1.readBytes(buf1.get(), size1); + file2.readBytes(buf2.get(), size2); + file3.readBytes(buf3.get(), size3); + file5.readBytes(buf5.get(), size5); + + StaticJsonBuffer<100> jsonBuffer10; + JsonObject &root1 = jsonBuffer10.parseObject(buf1.get()); + if (root1 == JsonObject::invalid()) + { + Serial.println("Error1"); + } + StaticJsonBuffer<100> jsonBuffer11; + JsonObject &root2 = jsonBuffer11.parseObject(buf2.get()); + if (root2 == JsonObject::invalid()) + { + Serial.println("Error2"); + } + StaticJsonBuffer<100> jsonBuffer12; + JsonObject &root3 = jsonBuffer12.parseObject(buf3.get()); + if (root3 == JsonObject::invalid()) + { + Serial.println("Error3"); + } + StaticJsonBuffer<50> jsonBuffer16; + JsonObject &root5 = jsonBuffer16.parseObject(buf5.get()); + /*StaticJsonBuffer<300> jsonBuffer13; + JsonObject& root4 = jsonBuffer13.createObject(); + JsonObject& ballast1 = root4.createNestedObject(); + root4["shour1"]=root1["shour1"]; + root4["smin1"]=root1["smin1"]; + root4["fadePeriod1"]=root1["fadePeriod1"]; + root4["shour2"]=root2["shour2"]; + root4["smin2"]=root2["smin2"]; + root4["fadePeriod2"]=root2["fadePeriod2"]; + root4["shour3"]=root3["shour3"]; + root4["smin3"]=root3["smin3"]; + root4["fadePeriod3"]=root3["fadePeriod3"];*/ + + DynamicJsonBuffer jsonBuffer(bufferSize); + + JsonObject &root = jsonBuffer.createObject(); + + JsonArray &settings = root.createNestedArray("settings"); + + JsonObject &settings_0 = settings.createNestedObject(); + settings_0["shour"] = root1["shour1"]; + settings_0["fadePeriod"] = root1["fadePeriod1"]; + settings_0["smin"] = root1["smin1"]; + settings_0["ehour"] = root1["ehour"]; + settings_0["emin"] = root1["emin"]; + + JsonObject &settings_1 = settings.createNestedObject(); + settings_1["shour"] = root2["shour2"]; + settings_1["fadePeriod"] = root2["fadePeriod2"]; + settings_1["smin"] = root2["smin2"]; + settings_1["ehour"] = root2["ehour"]; + settings_1["emin"] = root2["emin"]; + + JsonObject &settings_2 = settings.createNestedObject(); + settings_2["shour"] = root3["shour3"]; + settings_2["fadePeriod"] = root3["fadePeriod3"]; + settings_2["smin"] = root3["smin3"]; + settings_2["ehour"] = root3["ehour"]; + settings_2["emin"] = root3["emin"]; + + root["manual"] = root5["manual"]; + /*root1.printTo(file4); + root1.printTo(Serial); + root2.printTo(file4); + root2.printTo(Serial); + root3.printTo(file4); + root3.printTo(Serial);*/ + root.prettyPrintTo(Serial); + root.prettyPrintTo(file4); + // Serial.println("3"); + + file1.close(); + file2.close(); + file3.close(); + file4.close(); + file5.close(); +} +/*void displaySettings() +{ + File file = SPIFFS.open("/settingsFile.txt", "r"); + if (!file){ + Serial.println("Error reading settings file or file does not exist"); + } else { + size_t size = file.size(); + if ( size == 0 ) { + Serial.println("Settings file is empty"); + } else { + std::unique_ptr buf (new char[size]); + file.readBytes(buf.get(), size); + StaticJsonBuffer<200> jsonBuffer2; + JsonObject& root = jsonBuffer2.parseObject(buf.get()); + if (!root.success()) { + Serial.println("Error reading settings file"); + } else { + Serial.println("Settings file loaded"); + root.prettyPrintTo(Serial); + root.printTo(s); + Serial.println("Settings sent to arduino"); + } + } + file.close(); + } +}*/ +void displayCombinedSettings() +{ + File file = SPIFFS.open("/combinedSettingsFile.txt", "r"); + if (!file) + { + Serial.println("Error reading settings file or file does not exist"); + } + else + { + Serial.println("Settings file exists"); + size_t size = file.size(); + if (size == 0) + { + Serial.println("Settings file is empty"); + } + else + { + std::unique_ptr buf5(new char[size]); + file.readBytes(buf5.get(), size); + // StaticJsonBuffer<300> jsonBuffer; + DynamicJsonBuffer jsonBuffer(bufferSize); + JsonObject &root5 = jsonBuffer.parseObject(buf5.get()); + if (!root5.success()) + { + Serial.println("Error reading combined settings file"); + } + else + { + Serial.println("Settings file loaded"); + root5.prettyPrintTo(Serial); + // digitalWrite(ESP_TO_ARDUINO_PIN,0); + // analogWrite(ESP_TO_ARDUINO_PIN,255); + root5.printTo(s); + // digitalWrite(ESP_TO_ARDUINO_PIN,1); + } + } + file.close(); + } +} +void handleManual() +{ + File file = SPIFFS.open("/manualMode.txt", "w"); + StaticJsonBuffer<50> jsonBufferManual; + JsonObject &root = jsonBufferManual.createObject(); + if (server.arg("manual") == "True") + { + root["manual"] = "True"; + } + else + { + root["manual"] = "False"; + } + root.printTo(file); + file.close(); + combineSettings(); + // digitalWrite(ESP_TO_ARDUINO_PIN, 1); + displayCombinedSettings(); + // digitalWrite(ESP_TO_ARDUINO_PIN,1); + server.sendHeader("Location", "/manualMode.html"); // Redirect the client to the success page + server.send(303); +} +void handleSettings() +{ + if (server.arg("ballast").toInt() == 1) + handleSettings1(); + else if (server.arg("ballast").toInt() == 2) + handleSettings2(); + else if (server.arg("ballast").toInt() == 3) + handleSettings3(); + displayCombinedSettings(); + server.sendHeader("Location", "/settings.html"); // Redirect the client to the success page + server.send(303); +} +void handleSettings1() +{ + saveSettings1(); + combineSettings(); +} +void handleSettings2() +{ + saveSettings2(); + combineSettings(); +} +void handleSettings3() +{ + saveSettings3(); + combineSettings(); +} +void handleFileUpload() +{ // upload a new file to the SPIFFS + HTTPUpload &upload = server.upload(); + String path; + if (upload.status == UPLOAD_FILE_START) + { + path = upload.filename; + if (!path.startsWith("/")) + path = "/" + path; + if (!path.endsWith(".gz")) + { // The file server always prefers a compressed version of a file + String pathWithGz = path + ".gz"; // So if an uploaded file is not compressed, the existing compressed + if (SPIFFS.exists(pathWithGz)) // version of that file must be deleted (if it exists) + SPIFFS.remove(pathWithGz); + } + Serial.print("handleFileUpload Name: "); + Serial.println(path); + fsUploadFile = SPIFFS.open(path, "w"); // Open the file for writing in SPIFFS (create if it doesn't exist) + path = String(); + } + else if (upload.status == UPLOAD_FILE_WRITE) + { + if (fsUploadFile) + fsUploadFile.write(upload.buf, upload.currentSize); // Write the received bytes to the file + } + else if (upload.status == UPLOAD_FILE_END) + { + if (fsUploadFile) + { // If the file was successfully created + fsUploadFile.close(); // Close the file again + Serial.print("handleFileUpload Size: "); + Serial.println(upload.totalSize); + server.sendHeader("Location", "/success.html"); // Redirect the client to the success page + server.send(303); + } + else + { + server.send(500, "text/plain", "500: couldn't create file"); + } + } +} + +void webSocketEvent(uint8_t num, WStype_t type, uint8_t *payload, size_t lenght) +{ // When a WebSocket message is received + switch (type) + { + case WStype_DISCONNECTED: // if the websocket is disconnected + Serial.printf("[%u] Disconnected!\n", num); + break; + case WStype_CONNECTED: + { // if a new websocket connection is established + IPAddress ip = webSocket.remoteIP(num); + Serial.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload); + rainbow = false; // Turn rainbow off when a new connection is established + } + break; + case WStype_TEXT: // if new text data is received + Serial.printf("[%u] get Text: %s\n", num, payload); + if (payload[0] == '#') + { // we get RGB data + uint32_t rgb = (uint32_t)strtol((const char *)&payload[1], NULL, 16); // decode rgb data + int r = ((rgb >> 20) & 0x3FF); // 10 bits per color, so R: bits 20-29 + int g = ((rgb >> 10) & 0x3FF); // G: bits 10-19 + int b = rgb & 0x3FF; // B: bits 0-9 + + // analogWrite(LED_RED, r); // write it to the LED output pins + // analogWrite(LED_GREEN, g); + // analogWrite(LED_BLUE, b); + } + else if (payload[0] == 'R') + { // the browser sends an R when the rainbow effect is enabled + rainbow = true; + } + else if (payload[0] == 'N') + { // the browser sends an N when the rainbow effect is disabled + rainbow = false; + } + break; + } +} + +/*__________________________________________________________HELPER_FUNCTIONS__________________________________________________________*/ + +String formatBytes(size_t bytes) +{ // convert sizes in bytes to KB and MB + if (bytes < 1024) + { + return String(bytes) + "B"; + } + else if (bytes < (1024 * 1024)) + { + return String(bytes / 1024.0) + "KB"; + } + else if (bytes < (1024 * 1024 * 1024)) + { + return String(bytes / 1024.0 / 1024.0) + "MB"; + } +} + +String getContentType(String filename) +{ // determine the filetype of a given filename, based on the extension + if (filename.endsWith(".html")) + return "text/html"; + else if (filename.endsWith(".css")) + return "text/css"; + else if (filename.endsWith(".js")) + return "application/javascript"; + else if (filename.endsWith(".ico")) + return "image/x-icon"; + else if (filename.endsWith(".gz")) + return "application/x-gzip"; + return "text/plain"; +} + +void setHue(int hue) +{ // Set the RGB LED to a given hue (color) (0° = Red, 120° = Green, 240° = Blue) + hue %= 360; // hue is an angle between 0 and 359° + float radH = hue * 3.142 / 180; // Convert degrees to radians + float rf, gf, bf; + + if (hue >= 0 && hue < 120) + { // Convert from HSI color space to RGB + rf = cos(radH * 3 / 4); + gf = sin(radH * 3 / 4); + bf = 0; + } + else if (hue >= 120 && hue < 240) + { + radH -= 2.09439; + gf = cos(radH * 3 / 4); + bf = sin(radH * 3 / 4); + rf = 0; + } + else if (hue >= 240 && hue < 360) + { + radH -= 4.188787; + bf = cos(radH * 3 / 4); + rf = sin(radH * 3 / 4); + gf = 0; + } + int r = rf * rf * 1023; + int g = gf * gf * 1023; + int b = bf * bf * 1023; + + // analogWrite(LED_RED, r); // Write the right color to the LED output pins + // analogWrite(LED_GREEN, g); + // analogWrite(LED_BLUE, b); +} diff --git a/src/sketch_oct17esp.hpp b/src/sketch_oct17esp.hpp new file mode 100755 index 0000000..ef25722 --- /dev/null +++ b/src/sketch_oct17esp.hpp @@ -0,0 +1,39 @@ +// /* This file was automatically generated. Do not edit! */ +// #undef INTERFACE +void handleSettings3(); +void handleSettings2(); +void handleSettings1(); +void combineSettings(); +void saveSettings3(); +void saveSettings2(); +void saveSettings1(); +String getContentType(String filename); +bool handleFileRead(String path); +void handleManual(); +void handleSettings(); +void handleNotFound(); +void handleFileUpload(); +void webSocketEvent(uint8_t num,WStype_t type,uint8_t *payload,size_t lenght); +String formatBytes(size_t bytes); +extern int hue; +void setHue(int hue); +void displayCombinedSettings(); +void loop(); +extern unsigned long prevMillis; +extern bool rainbow; +void startServer(); +void startMDNS(); +void startWebSocket(); +void startSPIFFS(); +void startOTA(); +void startWiFi(); +void setup(); +extern const char *mdnsName; +extern byte previousArduinoState; +extern byte currentArduinoState; +extern const char *OTAPassword; +extern const char *OTAName; +extern const char *password; +extern const char *ssid; +extern File fsUploadFile; +extern ESP8266WiFiMulti wifiMulti; \ No newline at end of file diff --git a/test/README b/test/README new file mode 100755 index 0000000..df5066e --- /dev/null +++ b/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PIO Unit Testing and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PIO Unit Testing: +- https://docs.platformio.org/page/plus/unit-testing.html diff --git a/website-zipped_bak/index.html.gz b/website-zipped_bak/index.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..83c4b6c837751a2ba174309fffa2f5386afa1d23 GIT binary patch literal 1239 zcmV;|1StC-iwFq0pA}sI18Ht#Wq2-VbZu+^omX3L+cp$_PJ#XhR>dG2t|TXMFt4>e ztZ9l2*d;&)3`5ZeMmnqN%q|9Et`~C8dzizHb zVM@Mu{%qFWfo6C=nHgp{EUsk4V` zw}g`u4{y)HHOovf&j9U!$UVFwOfbVJk90~o%unO-D^k)8E93AvSk^`-nj#F7$+K)Lc8Q;!-tI;(X`0(zu1Pc;HUb0RVt4xzV zr}YzEQNQc$&TEkxCIyBmy#}@{%wR~q*wC)1BEZR==GU zScYvOGT20Z!&T)hV=Iz!s7&!~C9Mb(@WG=I!gPluQ8=CNTqE z9aGv6+%6dkX4)!|d<9v2Pkn}7b*fui-1r>~AJ)USWLa z=IZ1QEuq@j2D8T>uq-?}{OBgl-o$FbeoCF>Qjvib!jL_FgSQzu$J=P+wKQs+o^tz> zGA!lLugFvZHPB4dK}bEKnWZi7`s@)(aejclp^Bb9La2`5A5(A)fBud5$v5IJo`g>l z;wir{Z60CN+)+HqhBLOa@X`-cFnQL~Y=RfRc$l{`n#QJx)7v1B%J)K0U`nf3_!Nawy~q`}nvA zaLqlF0+NAAe9WX3_W9gB6;*&@@dw22m{Kv0v zm!$TMT)usi?cTsjd=va-UU&)1FP9hOTq|$2%#r|Y?NX>UsV%JXs9{1)xN{M)AoIxi zI|;4^@DcHM2J*;5=ab%HFSvK6%oqu=*DbGO!L_2qiFQqEI86-mV{AXZppUZa9HT_Zsg>cJJ{`PKzhGDB%ss%^2GV0nB+-NR*KCbhwt?r zfWdIM+=HbgLxtyb*wMvwHkq03l=M<#CPk$d#EPm$vDXXC!j{_4VFiKe z(&@e>xF2ZLiuv>JGF>Ohs(S7+}(oKmu3vV}fm z`9cy1Kd18VXuo=m_UixEe)bye#lO&w&@-KonNf1XY$eoUZaR{h4w;MAd#ysD;`LwX zTRN%HrQqvb_~mK^-1h>O*8$0rz=Sf)US~h_ahB{Z W3-k_m2zGw>oc#tBKg>_xc% literal 0 HcmV?d00001 diff --git a/website-zipped_bak/main.css.gz b/website-zipped_bak/main.css.gz new file mode 100755 index 0000000000000000000000000000000000000000..9e97edca95e2570f72a0bf2fa5e910f417b9c62a GIT binary patch literal 940 zcmV;d15^ATiwFqOpA}sI18rexZZ2bUa{#4QOOM+)3_jPtLcpNNOfgEGWRf%N_@#5jR$97`;SeOJ!s~`powRsb)m)q!gu1U!vA6cq&#dx5N!A>wW=t@~C!U!iLHqclH!8^)2iYp_h5E>4g5v6oNMqFVb^6ib zhf0-Ei$_!wSp!ndLsi>SK0Q6T{R>92ZvTHN`M~y6Kp0+9ku2l#n4n#Cp26{J7^ynr zx*(Z4L1++&{cYiQw{=hOu4-<$f><>Z#PZlfUIn;=O#G+KebxCtQ1s2(x-8c3(T7pQ zxf5?@#nI9uf4?n~51&7wB5-dTTde5QXXgewuw=4JP&6bJY?4$P!}=)%vs$+)Zkqw}VILQVNyTgo zy*mt*FsgK3f9c0$lTqZ-2MdruGiedu4i}rrXqh(PTm}Wh&IV_UDos3h`nJ7pue)T(O*+UVLks1)z#z#Lt6fi7M{H3r5q8^Y|Ww+=l&Y5t7Yl_0=*F0Cm} zg`zK>sy;VKpkuL2pltQzx|d8^nTn#d#jJGi$4 z`Gp%ys)`XZLD*HOloZ`I!ZDl@D-P z*`Yf+biTXG$>h-SGpuIRP9)^+8?_rTv`OCgr4mJ0x>nWlc40002L C6hDyw literal 0 HcmV?d00001 diff --git a/website-zipped_bak/manualMode-ajax.html.gz b/website-zipped_bak/manualMode-ajax.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..0724d78b94d49c3f1c04b072a57787919844f38e GIT binary patch literal 1336 zcmV-81;_dyiwFo>pcP#J18re$bzy8xZ)9aHVQOJ`E@*UZYyiDiYj4{&6#eY{3Rc4= z8;K-m4KUBOU93$CY*^D_$p#cfJ}}ai#g=-Mq#S!g{`)RTN!G(|(W01v#3Ffk?(6W1 zUOe$UvUqa&=H>0%KdwlkQobUdw>nvv#}oVp8m&$Uein);4y)HRD=8#2YMC2FS4~WptV$LR{%bz zbPa)qHQW~$Tl{OdW4f`FcK&N9FJ{||S)b6ye?y{_W-JD&8gxD3zn5sD!l$4p$!Ln! zR01h@Va{{m5TsR*sipJXbUOQK7I*OVqWi!il`JDbH^4K4Gr}^a80DS}DTn2`KRqKU z-LkYy+f$_kVaD_xr>3s;!QC);C~~3P%A65{3TzDcGvuJ>5_X zb5@JMK3UncyiTZ)fFYGC_GTE+5fkq}mLPWCQ~$z0_fwW>TZc$Zs!eX)lp-vY(lx1f zrP^_j34n5~ldf@61KM%z37kZ!Le7IA#>`58o#$%~v|!Q?^HlG99@CWZ-SWD`?BkrEae z(IJJW$4+Z|1Mk?3*oK6hO4PMXXp}!VU8f9)#R8RKE0aQ2`nnA`#46AEdHTJsjRp1i zZHLhMs;#Jde!zsqiNgzaF+$06Szl4V7ysuLt=#86YV3)l)eWJ7t0!&^}Ts_QMtukilcy7G#03D}tu2tPoyBG>u< zn$W!je*ByS3Sy3?jzFwgHlGz+GA*_ap`5Lez#az_?tQ6Lp4IZSBWHC}-lt400y{=| z7vD}gIIB;@p`&7YQtM1sT^@rSjYgl6wO;-TJ$=cxVeQG{URcw|vi$|=ZMXuAf8XNw zNz>De)wo8a<$W|KRDxw|7VpN|kxN_|TMs6^tvsiZ-tj5i@Hm}CJ* zcl5e%-p)6`Aym2eh4Zm%MD%W-a_7z+1Z6XB^7*IMnLM0#`C@mC`m0m#PJAQ4F58~! zZ@t)N>Nr<>)=~7`yb^K4-6bDd+FjaWxNa9&Eu7*? zff@(uAgvV~{owZZJoYC9s8VEA%6!T3zB)$qc*h>lJ|6Hw z-&N;TjGg7j$pDR|^znB}Hr{tQ0kXg>4H{hqAC0P-);RO?XMB+QandJ0RNRL6)1_-T u2eUq=5UU14;89$zIubCGlSxl`&94u<;@hjezU%AX!~X$f@1poG4*&qZd!au7 literal 0 HcmV?d00001 diff --git a/website-zipped_bak/manualMode.html.gz b/website-zipped_bak/manualMode.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..89f09378e77509b74344563a42e2e9c1ec86917b GIT binary patch literal 775 zcmV+i1Ni(OiwFolpcP#J18re$bzy8xZ)9aIXmo9C0Hsw;Z`&{oJ-5LAgQ{WhrM8nb zz_LP44_miWy8-K^N5!UNwUXsoa+>VdkCLn;YxjY61{{+T`A9vI3Oo7u<-^VG*Gtk^ zB^R%b+3pLx!tW8Y!b(_N@pj;nT+yE7OgIw-K5v|M34+kk?!)Kd49Ah3nj7WDOGGJiL( ze|3nv$%CkDQ&fPNK3}NkS6ITEIi6 zdz-i_6LylOgqgAzoh7C(k(9QSLj`zX3MgftVMrZZUV zL+<@)V{K>7^Snl8O}5f{C4qOsWTjTl?V{#N$Zc^wAiJ7|8t6t_u43^2Rf} zk9&0FURH@UDJ3`9#-`zwe(+}aFj4nd`arybb{G*uYti?UH;(#Xh;)3O2ExP8mih%hJ@e%d`plG|nj{Vs4N??J) zOa-1OS#vp{deaYprMd<4G?2r50puqx4dA>sP~JneAlI5a=MW=7q#*R|Aw?bW&E>-N zE76|MyA7Fi8%nqoD>SE}zF3;&V6ARrErLcD--e|UmgPam0(O7p7A05FpoA4aAqQPE z-Z^8E|El3jOY%Rwvt>NZpV)f_TYIn^Nr-pZsJQ{#k0;CBYr_O%;^kKVhQWV(GgFi%(?>$l!ix#!o-+U-q5Ow&XLA;m#BASmn+u%y3wVWC5swv_CC6AP-OqVE+jG(*)gS(%O!C;xye>D_KK`iGL% zLQ_(H>BuIByzh=zs0j(rJ@|huj=+Q00=?ai{-I>XZp0};rj7rA-0sHhj$Yv9{&j_; zMJF3@xH!*-{Ly)a4f%N*n$RD8D%Ub9u$2QOZsWE*?rkHYxj9Cdy+M_Wer{f zu(-G-vXdxVb2v{`5T%z<$i=;SRdhyz9kI3s^BE5;Pdr9nED*PwLI;M)_V2f zFBwRsg!Anmde7?y>pSM8p&M2Q^&n29mrA)M+d<87-aACFxbL+X6*}H`pLElxh{ajC zGl`%h%e?PB#M&X&LR2VEu-tGNhEpB}7u|n18VW9Ebgtw(68S5EvOBto>*ut5f4)TL tXU8Day{Ta$ypIMFEU$1De29~Kb%HOCl+TB~oIa1!{x8fVMym7$001)1C;0#X literal 0 HcmV?d00001 diff --git a/website-zipped_bak/nunito-regular-webfont.woff.gz b/website-zipped_bak/nunito-regular-webfont.woff.gz new file mode 100755 index 0000000000000000000000000000000000000000..4d8215050f64f61d3b916f8ba7527c4925fa2204 GIT binary patch literal 27352 zcmV(uK@Nba%E?AY+-UOcV%K`Z*FuhcW-890A;;XlxRJ$ zHQKgqo4ak>wrzLswr$(CZQHhOTmSyfIZyYlG3H2WuBudOC96jAlDNu=iUI%v{Ch0# z0FeGGI|=?*{{KIsqRKJ=0DwvVsyP3_N85)_OjtzpA6NHJR{RHBFk)~tF?l&9001D6 ze?0j=q{O`xbc-pe2m$~A)BMx<4}aQz+kWJf=o$ZU>i^{bpr2i6>0)GKVE>Q%*B)TV zKWxnMtLGX0btV7+0A>HDBm5uWx{*dq?agfdabEv)>i_vNQEH+uH8XJfXAA!4pAN+T z0m01L-Si*#&sHM>0H6S8GNo4C+{D26pSz)d?^*u?JV9Wq`9Ja>_w`Ty=L>)Ykpqm( z+{W1r0Knj1tU%uX`c!tAtK(*EXY^0cDC?i!iGNrrpz&0-F>w3m*Tnq)YzctCfv9W^ zY)t-fVgGFN0RX`00xw4!?d_bL0RYVZ#SeJ$kKgvvjtaAPH2G(1iSo~G>%W*c;Ds*# z)&FM%maj$H{wrsh&OZJt*SX}P+%`z3WZ;D5F+k@%c!gM(s|Mu@WST(wU%sk}UGtI3 zw~nIdAStwkq(mhS4ym9mIlr6p%;xx@Mag)y>gq101G0s3wLea3opPB{cX*1oVL1T+ z+%|0D_~=0tP=B93fgfY*d$gt&dj_Q_697P-1HscUTVMS@km z%4Hb5jZ(JQAaC)qLI>!l{&-FiYRN6hIW8SfY39s=6#28Ql)Ge8)A3bw&BGH&YzI$W zp@mXcBfU&+^L0@p^I6PHVi#eNSUHi%Q)zwczEZ>+DsXEImMai@2>zS$fRc` zZiHm0uWzVtVhRul3IlVCi-FRGnb$|p!X2~^0DNnQ*3#r_0Rxl8mA-+3fk75{q`sz6 z3PcGCMh4))0*CTnyZZX3e)^bTqF@MZKt~J#?=&!6eobhBKykyveUtK|cexB{^#SJ? zi@2b4popN9pd6s2pe&%?pwz)`!7LGy6}~==|N6Q#2))$k#{f~0A|SvoASeJMikupkl#mjioTw(Rtf;D>qO>}< zw6HS2yvX*4nUR%&g{if!siCF5xzW|$+3~M~i_`1f)5FXC^CLV23=|wBEOcyGR76a8 zbflcPvANalRSvh&&Vh(j3aw6$<8uXz)oSf#ox|e_?dD(W-A2z_-jIT%rKwI-Xy}IA zBohYbDMJcVeQ|p5PP)<%gW;NyBW?t)))!qxrOPLw&|2M2m(P#rY#8v^Kiocdck50e z6Pd0UnjRURogd`VSDBpA1`}EBjhHcb)F74>K!yNp!V!7@enx2E15i%@PXKcOCxE{I zegGi=(EynM1pws$-2mGF%>d~D*#MOQwf|~;00RI+022TU04o3&0I>iG06_pH0K%Y% zZW}rZow8a22-~pm!2UyP1RNVEjp=bCp824VL(9>I#$3V25Eg8X@sSRI`27CDup70Q zdHF@+nP7zI;$DKhgh)(QVFk=wT#ZgM=}b}+@fEJ;R=gN?+m_T{n4HU4sE%GlW94!mjL z^t<+AN^!o8g=}CT8gdy@`auc{imJSaV9j>ZfE_7*&hjVu9pA_LW>dy3x0_WgC4+6H znZLGh=6ajGzATwCIr%I1uue&RyXAD#e(ELHZU&KHP7L8l$&;7|fr)qsfH>2g z%0c;k>4h#bpcGIzXM?qUlOU1p{Z8k1Q;I=;=)yR|y3p_0XW#?M^SE`-I^GHLC4qp) zE@ye3i+CIqZ;z~lA`rw8+<;zJ!Y=0bM+-1l|Hhb22Q((?PRT z$ABOQ3>diys6{Lr?39UQI5TW5EddL!&~4cL@3jLbkAC>#rIR05+Ze_@P^`g5-)F-4 z6Qm&(18|q5b2O-M8<%P-_8~)2Tlm9{?QhXJE}l?A@xeAy^h%7aoPVo#V(GMBE8r%k zS>eO5I0V!gNl& zJ?rEuGd36SZYdy~r-k!6?QkyRlSE@wht}Xxvw>>u&B{e%v9C@r zU8l=gqN&Y=Z6_^Qt@qnvEbn}8xsYC=-gv$q$2Rw2Wa1nCYT@J!*pozId{jStb`T$V zq1=;Q$v$6(uA2|I&mPRvI%w$W+Tq$^3KgbIOtDiH^D3w>vJUf6$6nr?hDwaN!o*P& zZKhpeu?nZRw~+OiZ{9GG|E>_)=U2V84&5%R>B5o4BA01iFW%3n(65n}Gyqh1iR3Oo z54ve@bw`%$Q4YpKuTHaYZI%(E#`_;T=-%K*(}l-M@kv`OhqR;ifE-o z9zYg@U}#IP1lTeTQV1tRigG7ViGO}qaRZ7Zm#Yq7QtN!CM`rsXZPS$j&D3Lf^XU|l zrs}xGvf`)@Aj_q*+6mRn8QW0$&Dpa#QV)UX+*G+Bb42#|PO!vI9YIQ67_nC3jjYm< zgZgnS@U9t-=7?J7|LPYyt4J^Ulq;Xx(LG_v^nkZ(;eV`btZ1#MV;5jb z1*ukIBsNHTZu{hppFuXYE|X_rUBK!&ZP_s}pvF5!(wo9JhdAq(BrsGer#R{re&MpK zthlO#-fB0lVzaIukw+ybmrr6SR2=mO#UXgc9NR&CSIMZXtIvwu&M>I}T&Oppw>;=gVAy+8AHc+vYh9;5+mnyQL z`@?W;O8hBp+_(Zm1gG6H2YJL+IM=rRnj0Z_ri$ZHwbpoe`_g{f8EQ; z@qCP(?=^9m@jNULzGltaIBnmw+Z3L1A65RnD0`4h?JvCjR0D0lU#drqm4%h3~ z4ApkpR7@ODd7CZ&Iqdz|ZoGD_#{d5G#oOWZ{#Y5@W=(DRseSA_Fog=&v9ID&~2fdc}JOR zYBnk%gYDkVCn1D)g6+^{Ek6+z0OM5Yu2Py-89dIHbi|UOXG7eD z40-sMPt6?ToUlSv_-{-p$0S8SyXJ?oNR$=LD0p;}EFl&7!2IhSaARw_zQn zwgpO^mi1EnM~RSYHFnopI)>AGZFUaKQiHf^ddXjx2zg(p)_|8@9E>)_v@QZPoVpJb zNP7L=7@nc)kT)(R2Sn=@+RQ5eD~II$mCQXklFe&DfwPy1jPDK|i-i-$7gCPin7ygj zJgKzx;A@;by3g3~@#+G77x59mhy(yyux6z}vtprG#QG)XNI5uAoLmx^2FS+0F`Nqqd3(O_QL)GY6m(&9v!10oTt0)hbsmG^lAGr7=->oHi*g;MLg7+W_ z>p?Sq2X2R)tMTgm@%dqtaRR?+q)6H&Sq6Bli!&1Y%qm^F-C&aE#9iVQbqrv@U<*q? zA`?XtrHH0Ub!hqC{J71_%XPavj+ax~Sfuggt=@~jn7$6bo;jPBbAOoHuDNRcw0;** z`i$0uev&T=dId-b;e+uLl62!{*5dRK@j%vmqR6z|< z_i-N3c%ucd)!;DJQjK#&0=qH>I2vRDc{ww>;htfXN_mjn08j_Wia}I4j~u}LI4O?B%`?{6;b1GzYp1bPmF!aS|(l{}$mtUa95)(<9{~QH9}aFzzVTkQ|BQEjzS4 z(2%n|J4U^^0Vjx%P}rIu7Pn$udR3HC+*Y88kniob`u}-T30{(kZ|+JB=)DC06}cfY zgLH&*5#vzA3W$3hn+lRfqMP6-k|G%;eHPo^Q*mWJ*cbC8Dw;TXT*vX@`|8dC#N!qu zh_ay-SwkIY@W0Eb9O6r*?O)*m{nITeJa^~n2>duk_d!v#%1=Ob?{_rd2Oyo1wLF3VkpQFkz6|l++N(-E&ELl+vW)W<64H=PP-{@{?bOX?kpr(26oa`-C3n^ch`Bj06PV`KCg;#e&Zo0_2eZ+y3JHR6BvTMf`o|F;+BjyzI#AKIx)L;H_E*gm8W# z77?&OC9AffVTTUPVMqat11YNUrZEeNDhR%qpA?AFC5{ z#uO}CM|Eeju?X^3p}dZLhiXcFl!f#Wc3~HMjlbZRZ@^PQ!DQ_IA7HE3hq*wcXKqv!$8s zDr(IpU(8m|SBW~?nQRLAPz_h>?`$UA?BS;E&CQrbvwX=Y9E|v10gXR{&zCgj6wpiZ zSY`QF4m1AdjSxI*zP+2LPP=ThyruTXQPZyAX%ZT9`H>RiQ#lu(?Sq4frx?K4LdoG@HRn@ z@-ai@WHTT69RUYP!mMz#q}h1kiR2)FIE1aEc?5)EBl-@E1Zr!*u&_h0MNsA<`;O-r z0ww$vNw0Fs)4rao8hIb1u@6?GMS0XhvafGnH$Ru?t{}9>^8#PejZDtPQuxUB#c933T8!nP!5C_ zF!B>r1&ZiJH9!&?w5s@oWl<{9jN>6o>aG+|-P&k)LUT&`z#Odo&Y0SYAY~|6Gv-1| zVoGy!NKmL<<-kp?y*xIzT(0RbS%(o`D!Kw~y}(07oG{cNMW7LVn$y7Op1N*fzo*{xb)InCqx=2&+64X;GDeJ`aGpdMhZ_6=aYy-Zp&a@bl3#Z|{YoG6YKG?%XJl zrAP>ix}fg5@b0$$+OtTTVRVoO9q^90e9Sdx*W>IYnq$w>pk6+>CmpCYr}7ES6&%1p z$|3BWPD0AbL1j=i4n_Tr_DEZ*5O$;+j){YzI-ua%FIhP6pqL>{$%97PgP2JLf5Aa> zEB$^%o}gd?wZ$M>!f9suRa$>dcYk)THhgDewy#@xdyQA+Y}>zEI^llK*0b689+zmD zY_H`rBi6zC{LV)X5~vBDeOiHE5s1= zI>@6CP6RGZLPu;<+PD5I-kIPV8CJ6n~}O3Nmbg4lC>d zk6uXntTC6i zWAZ)T0HV7|2nv4bhy0*bMmvc<5lCgJ=(aGr}@nT}GvR^n@NCmk=~BR3FGa&ZczI zQbMk&;ML4v^m|C)%sY(s?Uw62Ey~kfgjt2vfFwj~QeXo%i57{Q935CMYs?f~U$d%- zB+C~Ljx&|FI~Eb-HI#*lDWMjgD@Xx{YaW4hPGTCkh+FM@bsPJ=>hb;nJp3lY!a30`QSAg)Z-&X$bN0$FL5 zj4~65Gc!uzW<62gn3hAu6^|YHq$W8idgp9T0#OuB$EZAq5JmW;0kLkp;D$P&QVRr; zLrE!cQrAKbs!~#9&M;*JjuP{@^bIie_C7f4QB9`uZqvH`5sIEFv%C2{SWK69uFUrwu9JOe=W)|XZTt0fwHVn)t`tjS9}Bf% z((t|=Q^UMYOJ?P? zdG`Fu$Kw4OF5?30g!g9uI0Fx-n`yr8Qtezxx^7d+2sFO=8%Ij+U&{3#l^BdyhK z)?2g^R(Q#2%BgNSbdDb6Pxr;nr&_{mfGcXrTGED2W**%JoXsWIT+2v!QW(e5TtkRN ze?5RT5Ir^wkL)7Y$@s|~(lXo)3R`sn4igb5$F1#Q zNFzx6#S|v1V=RN4H=1^sQH+293uFnLHGb@uJ09_;zSk7v4D6a{yTG%7dFk{->D z!Fa>-(qxUY2zd}<6L^ z&`Uom%3>{#Kv|TOC(Ur+XK!Dgw>Xwx1JLaKUS13D{nbgi58&IlcF_LkD1GN%S2AKMaTht5EwDv88NH{~9S4oI(6BNoXON!NjGGHTw6nu&*c%}$?U1CJR2d(fYi_rv1;7<+U z{Zr`~({B82Y(e7iyfUL`$>*+s*tncgxpNXZAih+w;oZ9(G5}5yJR+(vs+UhOhNNJg z&)DOg(T*tJ>fC&oufhYCN2BzL0n|c zG0CY8`6*w6lc129&!Sp!KoVUW@!_!4-s}fs&n&d999KJQv5|YTeFBQ2!-4FycG1!MeUUgr=hkjlB)=ln;{+Vz3(wSAakKAwTqrd)-<#*##_?mJBl^37jYy0(X60Oa zcH{)`JD9xPE3%2=+PO{0T62ZDvtVu(j4V@>3wixas%4i|cW;e5WSh#(?Fvx7@sBPS zXskph8803^yPQnxEWW|x$99s!8DE^3;Q^%Y_uGTZ(Th^%qtB%!z6V&Pi+!hF83bp% z%Xov?X%xeXgU6oi=l6>-z4J}&a|ah)UmM>(?s*+1OIr#&cnPZ6-;I5&O#*jNo$TMp zp+oqnaii?;m8(qq=?TJCval_~y^7>Q6)nQLXi&3uMu>~aB?`0&iT#S;s31)cL4ouv z!Fh+800ZW2zZ9f3H1j18%bzqSIo$O(yYFI3{*X$S$19s+^qAj9JsGmgn~DMa7n z=PvS@YA2GYSPgl2^Uj>0i{k>xD*%=)J^zR4>|mtvO=xBJ zRB2KV)BKTCGh9UAx1_k1)wF1*dL0<_t6y4pt|PGE(A=O2_<}hf;WQ59^Tz@pAfP#5 z6G8fd(;BMjL-#=yB!ayVr#b7d$3}uYfs7@_)U);<7q#mbOxDdEoATA6eP})@0Gl_G z#XEimHfp52{eCN&z~o{6L*T}DLrF$~FjlyXdaMfs%D(&_l!|`52r+16b7cMyDFLFG z72tnNHdLll7(0!X`}DxMUw(O<+x9DXTwU*!^5Vf{_Df>4H*m~#oAL}CXdua1EzPxf zb8lfs69GYCFZ>xv>$}_*t2W8W)3ob;q3>df7O*mttg|v(lKWj+u?_RV_p??Dx@boP zA=!7~=6!%!vCVkQIGXXqCJOCyOyprMK}@|FA7KmkP~Mj3u=l7`^cqpk!fqlYeF2z? z-9pw2UicNnOY$j%({007`~wjgVV}wzfOz`NWf2-I8_8)$(qKKvBOph_d)205E+b9n zlpyBkfVfeXUT-2&1*X;dG#ZaW*1v93>907N9*#w``w^L%?twpVzRzaFdH}Cz7c-{m zcYi-mCzD@B@NC|pd%c`KWSlZ-pmm^2tJ-Xx`O}*=E3i&yjo7w7m9L4qYi$irI%GPJ zY~s`qOr%;4+`OLkwWF%V(S(f9O@l$4Y$M+KVc+%tz_Y#+@AL11_y*w}N@wX|%aj%- zfD<%`6Ks1zT~MG8x!8tDN45dg;aRKG$jj1N%0ids;b1Y+b6e8NcbOBKm=QY!6y(tm zmI$p0ba6NDt!ZJO@Oj@(h!#C%s%|;X&RAt490BHDdwGtQ@t?wu))tQpEu5?Grn`Td zi4Zlu%ob|Sv9v&*``41_^*QWwgTM)(EHXe{b(9wSN!hI@fMqpt{MqQEKS0M81=lK^guUFUf71Uyg$GQ%Tqx7DG)R6VpVQWX~@fSmk& zLvAK8pkuk@9vr{cYm8tj-4*v0%-_t?CNx8}B-Q#G!ZcVbZ5Ed3D3U&Y<%}w6AEIL< zz+7+zrlTSL7YbD`A|M@k`!&Fy8V8$HKdZv%oCa1Mu4dVpOetIPk8Hv#*8CJg4;m~Va#vZo1L@Wm+|OSz=D8{$ zxjP#bChc+xjqP7E-w`Xugu^j~Wm7Sl72lks;78rUmfz6t+O)YwazUPVsu3wSTj&C= zr*`Dzy=gCqh+BANO0|IzyMxxX1%K0ynX*f}(_{p0;eL(>F0evkwA)=V-P|(Tk@!@7 zZ9M9GSPX^&UEz~p6y#A1Nf<4{Uga?M^C104m1h^_8TcrQSDjnd7duG5aYD6cp zyL$Sf@7ltMvSjM{)61VHQ#&k>%P(i}FLBSkTX-){`=qXvpJ!6XG-VYA$570PxxHEG z5ww&$IGbu(Nxq^oPBy0N#!9O5L(JT`Ubz6*{j_KEDOB^Rs6QuE%%(y($xaYPtYHL@ z(P#>NdCJ|R_aXF&_uc-IEvnUyZZ{1e0vl4U?h8L1d+q4KUtg4Wa^uraw8LKqd0T*l zO>R_{k(UDGXJs+#1twp%YDR&fy@gRz8()+UZogB;eHBZIzScI^tpXt2fBx_*0t0V` zOA1m8qf!!%(vYN>2myul*%sW?uU)6~$dG+rF5}5H&jWYE83r7=-vu|JezeFc^Mqe8 zOvwLesT@&t9W4dpu!F%8DUmA&mRNR=~$~o z5|W7*rg5f>6*aX=1sjf|RkV&G7Ans- zRPMf>7W3`-!@~QyTRMZ+{3boou(XDaooc84de$$pNVGg!{caPx^;8`Vy$W!gBVKklvl@dw;?V5yYJsC#aZWzPF{knV-og* zK{~R)qs;I?7%YrM&^&etO=Mm=5RX7d5xkV7La1nja9yt)^ZZALDiDSow!yHY9z$11 zM453O2(la*C!N?NX0SQOoMyh;Vz`mI;oW6at%?h;`q{%$u4BYHo72Q8aywy{J=oXt zF9Fu`tWJ~LiFc`5jgR~7lE|Y(I{wZD7lXy?bF~rMEf(L)iVd<~-3S->kLY!f)1?Rl zE_b7(csjH~iCEJ69}`XSaC{?kQo%~$^l_>Y=P+o&@a8~Wwivtt7yhqi<sqaI7+o$g(0^Z&qTQk2 z9FNaGP3d%*(I2=8-Z30{elOo6OK!Z~x8HO!M_Y7zJ&}4LrPuyesyp4gMudK~3RULN z3NIUX>!1l|re4slxw8XT5rL;9sT)Byk_T&(LG@e zJ>I?7NauNTL;3n+;=I`L-mLSgpYE?2=aub)a{(OI`sawn5I0isQnx%#6MpXi-!*|+ zZ9n2(AMk_)#m0mxU0?$p)Dnxo-&P&b6oNgg)vRl0<5cr%=9H>C{7yP^(W2Yob$>G( z?gFu}@mA`nR58LM(Q4wUQmKMp=Pv&yn~sM1OIw2U$Slg7XeFW{A+&=k>Mgy%LxH(k z5Nv%TY8@-IFcO*wc}yVQ!P2uG%?(k^V?tk$!@MN3rXkqDIlBho*0G#h@)I;3q~0Lp z87`i<389Geolma+b#-4*H4uRV{jRmP(c!yw)!K{G?aJI`3!5c$SwO-)c>cQcv3nN* zSfaHsM026@_S;I1dAqU8=7=DrwBa;S1uX$Xcr)&uE4EhpO^Dd$b`!3R+Dk~|4J$JNH8KERkG*?Z ztxw;O8Hv>dA*VrTuD*AE_5<{`GGzLHRl!Yhaz_TZgLn7)CVN%bL;?c4&47i|; zqv=1#YT@c(0CjC~472g6A&8TX`jQwCy0Ox-D|I*rj@5}X#|GvbM`+hVc zlly)t1r5LHB*3xLVaHP#){6s1a!}?6Sz@3)MykUkE5C!+r!fJImM37w!POe7KkCnO zF`-172-B4OJpe!sx1ZTZ0+0^^-Ivinq+4|vh6l_^Pm;RXi%@f7ghY; z%Z5u`t-l~7_9NQH3=;+-X@1YCn~q5e*sJe2LPmO z=UPGsfa)F)B4jZnbT4>1Os&k7m#r;x@RL?p+Zmh&Rc(4~#-93Ywc>vAL{4kBXTyX; zn+pGZviR$v6RY@nXWN>TQn;;k)(D-GYMmc{9EQx;z9=FEtz|A*Yri$DRV7Mg)*OAIYbs) zb9^G*@z_D^dRZw$r}b04jIF0ldlT=_+~S5!(L7=Nx{9aA?LFIp_CP;hZ&6z)i8&uT z>pBC*l-#Fuy(A*avfHS=1-r;A+OLe^w`6grrg8Xk!lI6*4g5=zTdEa~zz}hkV02y3 zhta?}3`!8vB#?|hg0YZ$1S7teSS2w1o~C=2kVi`o@^mHwti_*O9>=x zYR{KCdEIqi6AhbVu6*kxxjB(}sb}fJsRy-&gW2HGxhTS8`S&T8<0DVlf=yF!>B~yO zY~~7xu9fX%@AoR`a0mSU!)ytkPuUzim(=zXh2_GF# zBO|W&-ef8@s?}N|zRBV{ZJFS|?i^n_r}{WbTqGG9a1pr+<%)f6oTngehJAdki=Y@5 z6X~ly&&i%E(ywZI7LPM1F1?!Dud~Ig@q8Dxowk(4%9Y#uAwEp+8wuo{frht&nN{!$>d2%wL^-GfV7VqCL5%*MN4Kz|vo@%ZoUWNBWpS}{mWHg_yD8EFZ92*ce3qzDG(Q>#%09jqA7iu(_)~P1j z7EOP6e!PuFvWs8NSib#w3ndRDRwQ=xG1O#Qe6iidz(y-dg*s07JHU)Qk0W;IU>8J| zBNEnh+c7p5l_LdpwUEHD(6%yjVB(?WMHuafVM~;|a)rtT?+kuNGe<{+RHeecayE}+ z`Wp3pk#PbY38ZTZd?9##C_w@iu(}@Fj5X*lW1I+?qnxvnvrUX7WJ6Q&QvDsP688tR z0tykvlF#$eB#9cwJ6N)KLW(p4ThGpeiq$iR@v`BGseEZ=7gh^CF&PBMlqF0QP5PEK zd=HbZ|B~CUUl{qw>Bwg{vb-0%z@={b3_exEGI1XT$`BIl)}{ZhFKhy-YS~{f=ixP1 ztP?W1livVOSSSIrcK*g#z2(}jlYo!S+&%Iq{mj>SwROb7ucn*~;=^rP$J_G`@Lj`! zY%S;!u@<;13gK1zb4wyG+Dp@wBXq&J)kW6ulg*6GHq?-iEA1;|MA(hb&2$hPDYzru zLpTPTV9+51iFJl7wj-v(0C^&CH4Fp^y3l|T1$(%UVU=Yhqi`2wTDD$~Sg9AM=sC1;X!HcFvSAuCnJwZXuCftDsdA8haCZ8^O}LcTO0?wB8m?I$1yf%EXl0})K;L6SU!(RKwafQd%e zJ!gG%s@Hn#Nbm%{U&W+cw z(@pym-6}%6SSV=N$z@c8sfDapprob{qk}quZdgDFBN|Pm!GoZ?^d}?GX_~c`RfVL` zh6jfx0g4rZ@KCh)F5ZQrlqicOGU%FN7sj1UCBtv~ zetd7TXi`}~KI6x(;nb@uC0#wOg0ab^u?^Rj9wk6E)Qcd!zqtAw4L^78#!--162aNL z%79SEIz1=oHWkm%A=c@=S<4Bo5oXI1+clI*Qk(=q#7PAa&NzCO>7(pd(Ja!^Hge8e zB$t#b7P6(^2dz#bVkM@OFSQ*coUfb(`|7VgVN_Pj>N()cH(+MUb3dBXQ)GS9P&KO> zXkENQZob61CraGofdNjpdx_z2;xbuX$BU^=D_A|tE?>PnajL{1Fd1Ffht}Te3&OdK zX1y~lyYjX8&i^RH;;#L!fqR5{yc|(FEyaX&I330dU7D2)Yha8 zEuA2tR&&C=+l*nSB0Jd#u#cK9%p;s<()Qx!Ua``gn3IK-YjHS8axa6@+VKwnf;&QE zmJGT!BRdJ&!op#J^q%#YQ~fl=T-_Ui)m+PCP^S{Rr~?c@3jKS9Isr0=);>_}RA)_K~r@Y2IwxY25mA2Qzs;}46bUW)qm|}sk zdPnsfM&m%T*J$baI_E@w!uap*`n;oz_Y}4{)J*PWQQ%PyRciNy>PZqs6`0u)Q0-HS zWM$A2q}foQcP{|kKv?(w9vp%eNyv{)5a8|*RYT$w z5a{hmj{|KSsyyi|D}QjEtV-eG8g|c|)`9zeO1ort|V)Q1YjVrsLKZnZ2 zvWE8{547sQCImnhl!;bRaAtlGrw^pft$45-cBc-VBoq*^u<;<8@&nfoZ_I&O?!sES zmMQiWSAEoZ&nytha(b>A_-n1Xx4tIZaDQGZ$pO6iem7F(9`x|N9zX1Ku(#c!<0+}N z*o__&LtAOuD-<K$6UOn1`zleoMr@nlhM$O~*-T8g0>VZ4J84EkFk<2avy6m9;5shyWw8tc z|GGWQL%C!Mjqy?K<5;UMFR${ zVwuP_ybE#LHhugSQ-ZY9pSDMFk3LSEgvqP6c3vPFrWOdpvoRArVKL<9DS=9@d@8mL zM}^X|N#tO)>jVC7!8^qlm>o|}O{DBMi6>)KoJH#f++d2@lOUFI_GRXtaPiO zk+6uTwXPDxIDi9e0y>>Q03FFN)F%Q(7goKT{ul%-0mZA$r5^BtXD{?f*9+F~gzN3` zYz|)5C4QecKJOduUnGp<3RVxeuHqJqu7{jvEj#zJ+0#uA(~T}FDaJjL-k!@# zWGmT#jl@#^?Qs_JncZ*9v0X0vtK2W_JcojHOC~_*U++Y%+A09$;jiP$)RC;*ELfH` z;t(jP(K|37>UVH=)NUX9A7k`%KFhJM_AR=*fq<<kH4}9nAZFNSYSgh_cxFiu03YYK+q7{-7 zY2D6gkj-Q$>0oBF=8T69s$OWYr5!~fNb=Az#Oxu4do;Xl&0*^y{GdJ~pj)AJEcaf; zylpM3srMeAc=lcZ+q74Lu39M6Bd_Rw0W{^l1X^9QSWsHl0txSuX`k8`FI{}_TGj;h z*u8mA(J6cxGp)(&3SAKqQ8EWy{;E!m=Qu(l3f@RD&v4GXl!3ksOAf$PC7-KaMhncV z!@%LXklu%{b=TEvNlYXytn=cZEvTqnzI9(`-ll)_ZAk1^tyH98CO$NdT5BdGr&BkX zm>@Y;&fBh-(@wAQc$JyVXWRphK{sRspdw1vrQOq}IvxfuxdM3a{hOp!rSKA+-~fm8Aq! zCdinFT!{%W<^#3iIKJVz)Q>EkqT75Emr&J_Z@1_V8~4hZl|{&CFu6*e3S!aSr&9}Q z_14>85R0wK@rr`8r1TA?I3P;^L}^A_>s=!hlgX>>Sh#YX*uMfyk7I#tu%ss!943R7=U*II^;3sHNE^0M2H>mT;?nRkTrqpO{~RfrZNq8Z>j5b8f&l#f{V-}1((0?a4fcDC8&979wxMm*XtC zCo|?tYkIjo#=(M75nQucPEfgWK5>?+l&XH0Nj{Wp(B$s;R?b_qChRt9 zeD8?eXz+PFedw*wWoD00X||ZIXGxpRFmj*l3UEI`M}t8n-ly2QQu@Wgz zE;PUz zaZ&PAu#Eg=X^xqBL8Nt?o*tT_5K2Rw&?!1L*(<1Px(}rzNJHKMnePw1QOwOS^S8t! z1qz6re!Sz5N7R2jL%_-1CTrQq=^S~gm?D~&g$*;}w83~5W`E?1q!oyd&=Hta8&9?IP!sN`3ibWg2B_tlrbHH9$ z$`&NhGrt?P+tN2t`HA&6wqVD6$-jHNC77D*)7hh&j??6Ni!w1aX@28kbkyd1q@aAE zY^9WiqQpA$&pQRXM%F@E1iW~kY8#B{#xv(9P7};YkhXghOo|^n?rMhD_4Ha!CiloY zvRLe6JlROgGwRby9<8KE7czmmq=sS9p7Fg zl}pEq2whf0vCO;s9Z&NLm*ws%+34nKmBmTTA2V-S3K<_vL1TGBW$-QqVDxd){jeuaLmP)cujSLtsLa$<0vq^V#bm`NdOC z^gRk%C3NMEysbdD8+bU2^mjXVbEJPml?LtCi`gO{V_}1BQa8Bi+HE0a2Pe&suSPcTQM3m}|ijEOslgwud!Df15Y=&*U9g*Of6|gOOyh2zM$*fs8X*1YCfe>syzt4P1 z$1*z*FwkuZbG{MK>yxfxqRV48Q=xKoq493@06T6xNSeC5Yo^nA@P0gLHgb7+2nnGr zLB#ZjpcD6lK%lLrhkhxcUO8eh=@rT)H|1dmud!uHiIQ1%F=KLIn^rTOC@RbM==Lx> zw)@vs@R_fQG{lozYe`%9m*pa7%Hm0{5z(cUhG;cp|J$}&q!89MbN=+4sn&-96CJ#t zFRXy?EFhPZi=^`?o}vPblQhw)$rQQ=gu4)@Hc_q!6?zO4&rZfqO_n^{R*z`yci-*7fvs!tRgX5(^0SfZj`$AP za#C2W40Gx3cN-)?6(WHTc4G_kt}t&|hs$#Oz0+ooQgY`tc~8swv^Bh&s3hOJsH~=& zoZeU&8kTsk;oJhfPfDw+RQ9c*29}{+Had;Fdrl6>1s03kPv|Jhg`W@`++l*Uc?d_g z=pwT|t+`pKE1?XR1=Jv(GsI@b;pEGA#UDs}ru?(FsSJQ#cL}&_;0Egxt0u)(W) zQgGN97?x4=7_22&hJj#)+#n-a9iORlcB-^?Al_KxI(m)=GrFcVVi;Xt|NN0P(Y$<| zSDbMKCVCmr2w!2PEc}eNBzYeju1WVj%_sffSyE}i{^rq;4QZ>UvY!133OvHpzY-a_ zJ%8p|fu=J}@C@nGDbiq^Y8+92V3{15CqHCWB78m*msIiydlD@)_Y! z4B=tdLy+cwF0vD1ut+Y(1$aSCx&rF>eGb2W1yiBB&h;V`6_PKsZQVR$_V;@PJ7d=5 z{b|p404+lYMBc2ics*H@RB-nPX8#hSBiIC;aNn(?9qltLXiETCup86hB6{Z!dF$aM zIS+t3zC8EE^$?*5qxxw>nbc&Jg`^ph-Sk;VI7CRIFo9RK#<^bC#1*`3W>{wVi)^M} z%lCPe4bvQ;7W4C#qM%wA`lNBp#8}SJ)Cf>PrJV!WM(Bw{DLw%^Jk_EGNqkgMaO&;q z4XnU|auk5ggnI{4?Q4I8dlW?WJ1h&r%VBG?9is$#x)so95X^MsrD1yBmyqKao;uTk z_>@5>0ui&ICZw>!^Sa!_2_4N2^$dJp($8Ckp?Cy|&kAUi35{(*HzNz5j7O=(KM!e8LYo&jF&PH_!w^&nIO^qRm&-yi(&NCoZo=q|9*7 z$Lgd|*~K0ALNgD%gqTMoZHeN?rn-UbZ$5@k-`i+V#ORIUx9&<(9|aw9ROOH*ZXgS( zTp2jV5RCT2RS(sUf+eo)M|7{>BZ9swfN?i_yGRUs)DCwyAQl{wA$AagXEBIq0@c(eYkZIG#dq#ZCxJ!uy@|AxNX^}QJF=rF3*6Yu^7S5W8#BR_jH;?jT7BwEL zf<_z>S*>wlp8@C-v`$JZdoJVMAs(WQ{C;x)L8fao#P@kyRj3q!AFFjH^Q^j{=D#3* z_Q?6wv}+)J(tG?0by4`T*|H7URrH8t3Fxh<&u}?)(~TR%&cngldkhdxXp1>hB$`>} zpV>q_?LHm`v!p|=*cQ&qH5!Twf=*W|uUr2y4qmV<{USVK5Fk^_uda@3XKBNMYsP+J zjBK&6fmDB!SI8>=AYYNkH)}{myw z0>`EKL+>+V%hJw0TD#A7M<3uAm$BS>d{??O^Kxr<{2Pre7%zyA5%xOwvtn&Qo~B%n z97V3N0YgU18hBn3xF6)FN56<@nr7uZ55`~z9~hN-i7s>!>LvlI=>upXK{&)9F6B{F z!9gI*j8B1Ai20tu9EP?9gcC?T!{=Yow{989+VU~EBehz+ta;Q(I%W;jpaLh+m<>7Y;s;v^4wA|)a6!ex9x z%Pd$MT-qE6V=k<#3c=VXPiw6Cy=<>jffFbLO*b8Z*t9#GuHc>z)y2)UqPOP+=`tv9 zJCD~Z0GH&hKp*gM4~IbPVC}k_yU^r+zpe)DhF~_}ii_>m7z@^X`&#H>X&HA~JFW2*N+R17prh0v;@gi|&J>Q&0 zyc*N@aKqHjEU=qFL63`)-F7>OL5+<@vtbLb!JQo+UP{Mw%zwi z&9~1A<~2XwG7nx=DvFFXGR$ZxPL?@3Fx!0N&u2r1E^Flo>DRCgGK2kJz<&$U4Mz^50Smd`l)YJ%>iD@eQOyhaUGj7nyi7)2+_Z z=(c;uZO;+yCePV5gKbZQK}MG_cT}vJ`s3eIUf#j(B4v&MQd zm<@N|h(0%dgxawg(wvG9T7Lzd%)1Q{i#F)$BE7M}KM~? zBg_fO5a}bC=9rDaE+Ux#vYT5_)PNPFxP)mF8D1ANc5e8wg3k@fti!M*Px3vrMS#Cd zlOSDYPe%moj3moP_6#k`?4p(1z@{fCN~BCI27(u`YN~PZMj7T-0~>>P^H!C!DnEX` zNKt?S0+r+=BItNkMYNsU)7=DvM7*6Hph)TuV&Vq0zu;HKWrjcwnvtrv zA|~{(gSFQnusTX@vx@5(qZ&-wI!e2h^@Qm2N;SqNSPxwVUYNr~t_PjphX^~k2kS;~ zR#&FXWffD3sCLyur}s#kI955~YFa-+q;L3^t_B~w)GBsL;icYm+kH~4F;aepInRmD zF(N|Uycy>ut_JEYL?SXNgf`s?z4k6lC?v*Zxc4&0ulr*6BTdTpGzCjiLrYknyu zY|%Vm$qg+j;M`g9u*QOFd4r3#A#iQCkjiX`E|xVZRj?K25FuZaW^gJUTPDsjY-3S|jn}g? zS$C@dR6cXsY_}t(*WK$a#g3QLhd0UJr>)jH$r`S%RXQx~(uYm6S{uA^ z1cpIxbi=xyz@g)rVRu-c!1Kbpg{BTA>Wi}CakmO*BDa;RpC(7+PJ_gItu7+^3c?8E63F~fq8PZ&|k?^I|9CPHaYw3N>r;j*?){uFp_RHU(0XJQ`W(4`)-#Sf)l-~N1u zHnY*QzdbFo?LPit|2F!GblA-CHMzdseJu5Mg10Sm(2S<84LpVKw$|%8sDwYkRlj@a z&(;|Y5Aag*c8;;<7j_%e7vp6`IK7DQ9vBcuKBZqMs8!GgH;2ziIA?Gh5DXKp+&3K8 zw%FudVp&Qw0>+v-4O-Mq^?x-Ar?xzGh4ghAlJ$+%9%}7U2IrUe5g5ou@&Fom)(biA zxs#=K&8N5@r75Wv|fde*76%vOu`O_YR?g~L4+GX82xIbZk z^b-1Y=R66qjZkhQZNW{YvhG(Glg^J|ppM#s8^$@Q}OB~O9 zDOg6ZAku2sVHx4DtJop0wu_-%u%9MF*WxdY2FXGqWg!#Z^jAoeM@Zs03u?ccm^Gvk zLw*Wqc!H;Aa^@t=%E4GxoUQ>w%ycxtpi-Xb!I11E82aD`vE3k|aHbs2JeFvDK&o?? zQVbiSxx>g$@2Mjztut8om@NR;GZLzqhLOzNt?BPz028o!UI9@}6RdK?Cgzib( zFNES?$KO{{H|~r8tvn=*fN;ealgbmi_PA+?L#?%?fQFlMN z^zBJEHqoQ+{4dw%3MbDV_Vc*0_aF=Gfj@~&e%v%3+~c{vxA&ahF8^|VBENTc8FeqU zMFKk{d_2iTc(h>*ui9C4%w!E#kZmHB_J?0bXnxL!d%cnfdT_!MM@tHa!oEEvG9`nA z-5(8xr0IN;?k1pK(?^nFjIaz8S(7&AtZ@Z5OdE*;JQ=kps_CW3+rs8~cD2}2`3(+- zEw|!jeZ^KgACMXK;2lf`xurH3QPYK%(cb{_Scf$l)5QENJL`4WoiXpn-{-&2{W3Ue zUoWx=v|0(YzTzvPCf@1^ChG}pjmDGw)<$*F{utO7U|alAR#Dp+5mJ67HW0hai6J1| zMR6A72zN=+jO~ds1Tu@#S{wQKi|`8_pqw^jO^X>#GUqTBW`>j7t*#Bm8jkuI=X@rq>KaVkPa1+)Jg7xuWVIEV=SZr zN2v)d$?sqx+>L=tYi$(VH3WasM@La5nQAO0^yDcZHXPm1!pt7xvh001rJ7fZunrO_ z|7N(0rN?usWkjLYHj*Zxiyh96ib2cP=OS~v6+<@EKcaF!DO3W=j_8b#5Jojn@h?~Y z5u~856OA|Bgi@r0djzAkgL|yu?%yYDV+I1Qi@RH}ax&8Z(oGd}LOD5b z+rK0qryUN+l63S`q#1pbtZ}uClZ;$Tk7#)N_O*PPGPaV5ED6`mv1vG;XNjj;*M%3G zJ?wVG5S#R=NY{t{u$MP_g?>+GO037oEEgO_GIX}T^aIB&G16cdU~@jxGR)(0tQpL>i|4)v9l%zg zKKIo=KnOO}bLfyEM#z3#%SqydxrO84Mm^dM019Yqy0ghkAgY(L*>YiBS`)RKch&x6 zUU70OD?b06&!j53H$)7z2rqfg`&t`jD2evO8*5q80XN@E9*zFPy?=woXNsaZIJ zq(Xf!%KuwZRK{oZN8_93Hz9-~m11kscr~Xs$AzRE?X(9^@n*8N!}$5wvBiNj=jw ze!noP~;3L+{-ha*UFn>|ea4GXLe#}5(|yLEe%eON0bMucl;<9*20s#3Jq>p*Y# z<0}AIu8F5*D(0+P6&v}2uh-@Ea=CeTv+@239pBk!cjs*_JRgj@fqs3bp{;aYjsI86 z-FQ?jmSUcdt(W0zuBPW_yHg9<7Cor8c5QvLllbdhh@49k9-h`}!=b48c<-gSCpi;5 z77wN8Q5vT753yDT@^daT`5VpOl_msZm~<3D(SDffb#6>4$`X-`DN^MGAUxZgtKt=o zNXm>J>PoQatx`6_QxlNazO|xu?$#}kZQe}3|uhSPB}|Ef+$2&*8o@{(fgFAh0hbDV+aeV zCb(v4n{=E(EsPThUj=6jpyND)HoY<%f5WsbjGm-7LBho?3LK4hf?n3se*s#3M-YZ+ z;hARoJF38jwgzAetEqx3$vmP68M%?Oh3%C1Mz1$1a>%lbEwonA0l=&`R(`Do+MaES zo=-8l%%Yf5G53;|^xMU~7`prugM?zJs~O(;UvP@1_5tGd>QBdpNgmq9Nc_hWN!evd z(iDg!5peC{R;aNNZqfueaFEMV!<1OG+L)gSABj(}gaq$w3f?!A$Mh+h7j4~GhO5|GNXY*15bEpb2oL@k{mpk*q0kz|8X2E;nM zY7S=={_uZb0@2>TXBAQGc-eJJ%V%%KFG<}G>j=sC>t2`u3yzxc{E)3kfG4g^rkf$s zUr=mJS*O02TSGEQl>=6B3{?tiDTd8CT?qTxHE`p1`y3oaUzXDGd&Uf{Ok_h&WcEJo-uyVve~MCiKZGF3p;G=?adK7$2DTt zn>}2gwK5l6sVuf0M}3)G5Z=u|97fQ25-mXBVW#phj5wRJRCLRq_fwG7%}3GN5z}vF z)oBC5VIQo%zsES_A2ZQNQSo>s7@3W#&4^l)&-rD+-v*@#)lAo~=WB-*;RmfBsv zT5O)@tQT*I{V+0?apf^#J#`|;@YOIa0Cs;n(cgHcMJL;FU37w7+5nmb>#3PTC;f$m zUnWI!^nD3-?N!w*YQ22!fXYss>gN2g7_RFAzr7`-(F*6U=4T~TcC?03#hzo`-;xcD z-l8E=j0it8!eclG^y0ZNjEmo)D! z&YNR=27Qb2!Cv<4HYd6u^sQf6X%R!upTvdsZ^R+nqdh^(3AUvQ!0$o~>T8cjL}3q+ zHaSlvAXl>XUnvQ$l|~EPqCp{ToYc#wvN!GtjR@*P0AAa7Ld*mT@=3YtzW1L?vB2$a^sz(1k{sN`yK?)$;eyOB~9eQa%~naeceO~RYP-3?)gZL^|n`` z{489(rBum~f^~i>_K^h33XDK}hiFM-wd83I_7E|~JIdq`Ao6s6| z2#WfXpw^iXyuQSj8HW&}9e(JKTGh9Y4y^&;5v;r*YmK;_eZ5B1ara5rI~N_y2#`i+ zZxLri7XmDnpFK$E^1NUopR}?aJltpti!p{(CU;3X%6Vd1y~L)2}=D=T8f$hX5y6FJi4D-f?-->7d^nb6*!<8I8f)q zN_J`HqRp424+@m?oZEpnS4#3V{F^vOK0D0u^aGtgp9J-Pr{x0y0Q@e~E$P8?KLg-H z0Q`T?&HwfN(E$Ge-~69@0f7GZK7;=~&wX#}y*0w$fAGfl``7fv7lt1ZQ3MxKQu{LL5g&V zvC{{Ia9N1d<32!c9{q_BF-bvGUs%UW9+?XE%7Cl$-5wF$CoBDZcIqaJsnRqKn)d>a z10oGO3ikqx${0Y*1Zlp_1!J|>Uh(~26?9&T%7k9ih0KFpwf2TM7)xRC&Os(!do<}O zKYl~#VGMwhw4XG_{qfs;A5Z6ow?>jXqYCP3MQ5$BmADGNP*e;tMXm^LkaOUNI%pX( zDm{{&$d~;_Y^`P_EN3JxIS|V|w65}leO1dmMb>%&8Dn{TENnB>+J;!p>PU($;DQ^k z49P4;bNn?H3Pac#9>_Beq@@m#rGg4J2 z&eYClOs9}+&g!R6;~95Ty_3c&-e6laze=p0q@WKcNN?FN`aZyCg-E~*>-cH#*{8Qk zkRQEp_t6gHJxQv|!vI3pk6BeVpa zE9RmNuJ{l5hTkK<|C^usbN&M~AuQ6;(y?i!_3ZUWbyY_1eHSAe|2AaLc-Y99aGM}4 zHdjPfi)(iFZ4O!c#(P(XNCyx58AHvXm)Na9uRuAV+^KFhZl`y=2TJ>q`&|9A{k6ln zeZ79aNdTFC>HLv>kODmYLV}2bxPodyKM<`D_((qlhC~TO3*?UcN5K@SWx;1~3@r6f z^=1cf2i{1GNE%3&B<&>KBu*r`;+PW465a7J@i~NvB#m+@Vk?3z;(r6LcsM}YAssW1 zl8+Ys?1KYB25>}(hb{1uN(_sTN*78jOEXG31fs=gg|7WMb3GD1hzP#& z@(UD7>!q0ZA2U~guTidDHu#*ood2F(oYBogFPJUL&Fz{H82uUEOUU;#NZW@ahAc!Y zL?7`P@s!SzmQ71f}tE8}^yaZ>JvOc_0zoNR*T`yhx zb*OVFb7bEuJ82skAF&8$iggNpm8zkvLEp08Vr~Cymvi_%jNiZSZ=8ONOifUO zf>S?b8MI1VMXj~lq1qwbk=aT0TJoy!LVNdmd_SQ+u>uT|`$GD{`g;GW1R?@@2XMkn z#reM+bpc=j0Qx_v2k4&+1c3HG$H{m9Z!XGKmXSkNK;f||B|z=`GlH;?rhzGAPT7nx zlq@O9EL@0`(PlNtA2}$UEvt38Q7o1E18_KThaGi)2wx`U8)P-xeG6NR)t5Hz>2%}y zn)As4ya(h%7?{KatRFkMhhj>JnI(z`9Ldxcor=aqu~#^(fwNaStVB_ytHmAdTKt248>{+cn=Azx#94i{CrgC-2 z=~+0FHo9z73t1_+KFJ}G;-pb1yJw@h9B~Z>+!(c*kya~W*eJP8!h5_&{4YB7zkQ|2 z1(a@UGQ)z?4Oq3qYjchN1lN{KGIw(5)+*{Uc?0E-N@ZdC-?Y@q>v1%<3qDF%w9#Q1-8`jqp+4#43A1PCz zoG5kyLQK*gx=L75mDR=fu<@hvXC3RiZ@+o>3#X|rhW%%d!Z?gF&=HHlT zVb04(fsh6XkhGiG(mF7=xJo;-U;03{fUH zhv|L7WDMz)(k57o>HX5C44E8L#gf)ICcxP3{k*&l;X2l*0HYja4AzG{m+RDj9qJOl zt@l~+Nm2r{_R#s>rx9iE{XDZw@gCP@SYpfedEwnhjB@Uh9|Pb9*X&) zipOqht!!b=V(h);7n`7@YD<*Y%_wvx8dRgl{1nx&BvTivpC}@eNhcJKd%bm~bgq|O z%xvcH;g*%vSU{^%3^YBYwM^KT?%3R>9#my=UBrZi&J{a;0iIhkjsF{Go*6FN0eKV< zc|MpCFPl0BKEiaMfG5cg;d4W*3*cCe$AS41ZyIxF2Cp54BV;Ss2*Z)bx%>Wv2KQk z)^)x?um`;;ApKs(2!4Yh3cz8)LYO45C@6V243)eCp1iSrJv`0Rtod?|cd*O6RYAZ5RtIj5lfn0M?WNGK{HU+PZf->%eMs18{4*V4b=}Z$?5rJ;1~Y PyW#%_Prth{@M-`6SUfEA literal 0 HcmV?d00001 diff --git a/website-zipped_bak/nunito-regular-webfont.woff2.gz b/website-zipped_bak/nunito-regular-webfont.woff2.gz new file mode 100755 index 0000000000000000000000000000000000000000..ded3e340c6aaa4449dc02b8a2de34fda687876da GIT binary patch literal 21012 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 zegsI190�(q0xoQq!4O4cjiR6i*Tez5o!cD%ZQp1 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�BPB_z$}dF1OeS%LEGq5VTg_mj|QvDxjrbY!66GT z4K$kHqv`ONGnOaA>&s3~hRG5A^y>~(fN20teo@)s)Iwpe_RwE+ECs$qxtg9ML#{ zu<&=E^mD*Tlg%2L!eBLcB}+D}BZ-c*VdP>PF}CQTSeObyrgcJuWuLmJ$<&j}W;;{=H63OVk)y9p4Xt&QsfQ`e za2OVT4$kPb+&kDm5AucPbX!CI+|s4=C~lp=aFn0Kp`e;J5`ln1r@ms5h7HWa1kO&MUjaX zBUT)_cnS%W5+zBNA~p2Dv?k3?81zhwF6}1lHxv4x%?}#&g#pY3orY|+=9eG>JIwm{ z7ZnUM5OO{i{s}6R! zzs#@nk@LS9vJDTDqFwGe{^d^It09IZlv5K5YxoDhI;9}U8Du|F4R}s90;=)x`z*Go z-wAf8*YS&J*x`Sv=!6S2>WD%bccM(1bmDY6=p<=0?F`~*wl9sI^#`RSn(vaQiyp7l zN~(|M3ELDN*D_Q+4uYh(=!9_@8*Ng~`wCB>)#IfHtsk#!Y4dokM%%|50csv^^Xc$0 T!@6WqhyVZpQymIf;86eo@EzlK literal 0 HcmV?d00001 diff --git a/website-zipped_bak/settings-ajax.html.gz b/website-zipped_bak/settings-ajax.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..e807f443120e0fd996a976941c768686f3b7958d GIT binary patch literal 1389 zcmV-z1(Nz7iwFo&pcP#J19N3`bZKs9b1h+NVR$ZRbZu+^)mL9{+cpq?wm$`{Vv~$S zlHCTF=g1z`Cc!prZGmz*9q*2p z?9s)`=WqUab;;JYl8a&1{{Sx*!$D?+m9TgX){1&%vefT~4F6?P)PFJ!avt!ekq}$e z=IdDGst%YDe}S0?lj(SipMb43ly~{!?mTJgRd7eE*JO7M;JV@~NQrH)`s{3rpMZ6` zOTO_cJ^jC^JezLMroqSh68yTWr{c9J!PuU;-zV=48tB+7u$3hE6o-J5psb4Kv z9FvkB@|tS{=ud0Qc-nh&$H4m!E$ChRG&xHqNhNBsbW3F)V;9u0;>eU66S|m(#_lAT zHGmC0z|a9C2Fg@t?;stlt!>OKO-l@@Nmfd&B=AO zWkAUL!@(dc#D?XP8%##C=7qWr99fhauh56Fg1SwpN(1IoB=~;(4F%FO5kHnKU45^~ zE|E6}DNVz3#5fP0_snd11Xe(feO`{fz#G#33batgEuXH)Y=80<9D};}((Hi$L3Y4rX2-o4 z8RJr{YARaaK7#{0zM<6W>N(YOkEUU+x6@OtSE8Oxn=KnRTWp-m)>>==U9C3bI^{r`W=&sUKQ?NIiIs%UcY>i7_0GZ5ali+{1HRq^ zIuv9KB$^^x;syi%x+wjllu_t%=j~DMybHZm66{`#hhx+~GvO$4?R_s@?Jm5RVd!Yx z{sak~;*g!Na8BR7CES1Oxe+gmNX-^CjL-2WLq`$`^~$bsdvelw=#5dvBO}PS+jj|V z&JSn(tK$z3An7tZsJA5X4q1*54|tvO9;(;ofD+#geQB_*t~-wtBXN?9a6XJD6w8~V zE85>BB|zr@4x;FJtLc_PeE0l#<0cOu3Sv+a5~)^R?jW^~G0|Pvz~<`+m7Vs{!O3y0 ziWv(Vg%S6(Q|1RIGwZnqgW$Ozh+|5IV8-0v5F+Pi~v&Q$@$`FJLYyoS6ajU$c!sLk>a39f3^Js3&NgW%nbkl`7^KK literal 0 HcmV?d00001 diff --git a/website-zipped_bak/settings-success.html.gz b/website-zipped_bak/settings-success.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..55cfbc0007a9b88d1b7e7f08c371a2cc4305abf1 GIT binary patch literal 420 zcmV;V0bBkbiwFqhwenm519N3`bZKs9b1idqV`F7=b1rCfZEOIYQ$cQnFc3U9udv($ zmx75DsT>T4ejzW|m?gNi4Z=%8`uZB2q$Ir+$w=Ovof&)AvL$P(jcgI>YQw@ONt3~9 zk3`xXJsbNP2$>(1LhqZ=ND&bcZM6Gh?SM_0SkNw0-Y0B8Qzo7+27QZ238PDoWkNWS zm;vkB8Ox#X4W`tMs!g@(9A{pCqc8ck$fvM)l;GkSm|g){?~eQrZKPVnxwddbF~jcM zyWJEPXE*W&PLVSv{=>N|rd`3G2($3}OJu?620h);w?OvkgTxhYk$^d{L5*6pn5xcn z180Gj&{4@>^SpR3ng{$XnVfY^ZCPWmf$6e&W7=ubU{bHZV7blmH)dhdcC_oz=y6!~ za0sD1i5`-Z#&h2d6j~@n92$A(>PxkGkt#^y5Pd9O=KMMkgWGB!XDJYDS7`AJm$g1U z75Be$sakMHtXG3+E}0blLxl`?VZevR97dwKao4-%)d#3ADPV12(R-2Nb`UAz(So(* OmHYsgA4XLz0{{Trk;u9L literal 0 HcmV?d00001 diff --git a/website-zipped_bak/settings.html.gz b/website-zipped_bak/settings.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..fb034c4c1862a6622e62b32cd9c87de3a89b301a GIT binary patch literal 935 zcmV;Y16ceYiwFoxpcP#J19N3`bZKs9b1rCfZEOJ5R!fiDHV{5LK>h>6AW#BClD%sn z?m|+5wkdkZV}Z@3M_L+L+)|`Mj=Xk%eTSlCyUym-?4<@|4axbw84hQL%AUkA%bxu9 z{?`wGUcY7ywyI!pTs(f14YGfOsOUY*P@;n31`ws*xGW9h$B!8OG9~q2%!10f=sE>4 zn!apeSsKlmlYfKD`C>KS(Zg9|q0V`Ft{9IBNvAjbQ{KRZ`wmEM#RgKZcOYLbcl2;J zvDac7NW;Q^B3-U_%N0LkOz7_(rdDWKgTsURG?CmovM~W#K*6+V$sRV)LR=bUEN4WF zpfTr9=kwL8RsCM&X3Y)wF@&w{x@RCU_Q3@5iQYgq5$^0d2#ZI<;dpgxSu)|oa zX=)w?C!(!{yUtjQ{1HJuIq4MYA+}K~NUL-%8bTjA+$(Sm07k*b zXzZ<=kIz7t>NK-k5>3pBI#Hg z+1gZldXrSrF@Y_Hsu|vkf=wmEI!Z7`s6`Q=ULhS3gsqKjnJ7^jP5I+SRN@PfGYV;A zs+?cHzxlw2dOQGUv#gR^Rx05rX+3S6LdSCqQ~coPuYRwk{xL<*l{*H`3Q(sIqln1jnr4GZpY@` zjymnSN2Hc9_SZ1t#ZA9%C6Y74n7rz~7(tSJmkv#R>fNW8P3mu(K^QMDx{~}C-#>fI JspAp~0030h(L(?L literal 0 HcmV?d00001 diff --git a/website-zipped_bak/success.html.gz b/website-zipped_bak/success.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..584a0ef0d812481c19365855ff15a50d0a57bb2f GIT binary patch literal 413 zcmV;O0b>3iiwFqKIr3Zp19Np_V`X!5E@*UZYyh28v2KGf5S^Q^u-t*AU?N2-gJI~@ zq21aKxR|53u>s*DA^rLqoK%EtMKY4#y?gKMJIk7^DK@f3D2omApCnBNi`S3$H}=_? z7E0y@rO>%*Fj9nQU>e;VSlwflM;3IGDCZ*9qsb#jXM?Urq=?bE!#pA!Nlb)g?!@KL zbp~T<2UW*fwGC%Z|DenHHcLmpc(CANO^h#uq-(zTootYr&AGPlg<_)pY43KUUz}aV zD>w$t5crSgE*p0lUkN7ucQ0h2(G@!SV_$*f+j)x%-y#8Pz6d266N&3VrjM@%%2@MYWc@KLJrBSFM zI%+(1ZBM?1QiOq#`?fq6n+K`9CHA3?xt1xu1Om8S&K34vX1mA{>m*s~<4U3{K5Aq` z7|av6#c(E4bT@42Z^MA|t=SJmQ|m6b&5IXM2Pt4_K6^b#aXpF@;c&jJ`HlPnh6KX$ HD+2%kH<8C9 literal 0 HcmV?d00001