diff options
author | Galin Simeonov <gts@volconst.com> | 2021-07-15 18:18:29 +0300 |
---|---|---|
committer | Galin Simeonov <gts@volconst.com> | 2021-07-15 18:18:29 +0300 |
commit | 8eed597376e567d5572f4f53e37946e67d5e5e07 (patch) | |
tree | 8fbc32dba361d0eb603c2428956fdcfabfb31996 | |
parent | 2a1799bb9588e17e78c0f181c0bbdc46102c8366 (diff) | |
download | MEGATRON-8eed597376e567d5572f4f53e37946e67d5e5e07.tar.gz |
added the project documentation
-rw-r--r-- | doc/a.pdf | bin | 0 -> 69890 bytes | |||
-rw-r--r-- | doc/a.ps | 1164 | ||||
-rw-r--r-- | doc/makefile | 3 | ||||
-rw-r--r-- | doc/project.mg | 321 |
4 files changed, 1488 insertions, 0 deletions
diff --git a/doc/a.pdf b/doc/a.pdf Binary files differnew file mode 100644 index 0000000..95a63cf --- /dev/null +++ b/doc/a.pdf diff --git a/doc/a.ps b/doc/a.ps new file mode 100644 index 0000000..bb61126 --- /dev/null +++ b/doc/a.ps @@ -0,0 +1,1164 @@ +%!PS-Adobe-3.0 +%%Creator: groff version 1.22.4 +%%CreationDate: Thu Jul 15 15:18:10 2021 +%%DocumentNeededResources: font NimbusRomNo9L-Medi +%%+ font NimbusRomNo9L-Regu +%%+ font NimbusRomNo9L-MediItal +%%DocumentSuppliedResources: procset grops 1.22 4 +%%Pages: 6 +%%PageOrder: Ascend +%%DocumentMedia: Default 612 792 0 () () +%%Orientation: Portrait +%%EndComments +%%BeginDefaults +%%PageMedia: Default +%%EndDefaults +%%BeginProlog +%%BeginResource: procset grops 1.22 4 +%!PS-Adobe-3.0 Resource-ProcSet +/setpacking where{ +pop +currentpacking +true setpacking +}if +/grops 120 dict dup begin +/SC 32 def +/A/show load def +/B{0 SC 3 -1 roll widthshow}bind def +/C{0 exch ashow}bind def +/D{0 exch 0 SC 5 2 roll awidthshow}bind def +/E{0 rmoveto show}bind def +/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def +/G{0 rmoveto 0 exch ashow}bind def +/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/I{0 exch rmoveto show}bind def +/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def +/K{0 exch rmoveto 0 exch ashow}bind def +/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/M{rmoveto show}bind def +/N{rmoveto 0 SC 3 -1 roll widthshow}bind def +/O{rmoveto 0 exch ashow}bind def +/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/Q{moveto show}bind def +/R{moveto 0 SC 3 -1 roll widthshow}bind def +/S{moveto 0 exch ashow}bind def +/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/SF{ +findfont exch +[exch dup 0 exch 0 exch neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/MF{ +findfont +[5 2 roll +0 3 1 roll +neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/level0 0 def +/RES 0 def +/PL 0 def +/LS 0 def +/MANUAL{ +statusdict begin/manualfeed true store end +}bind def +/PLG{ +gsave newpath clippath pathbbox grestore +exch pop add exch pop +}bind def +/BP{ +/level0 save def +1 setlinecap +1 setlinejoin +DEFS/BPhook known{DEFS begin BPhook end}if +72 RES div dup scale +LS{ +90 rotate +}{ +0 PL translate +}ifelse +1 -1 scale +}bind def +/EP{ +level0 restore +showpage +}def +/DA{ +newpath arcn stroke +}bind def +/SN{ +transform +.25 sub exch .25 sub exch +round .25 add exch round .25 add exch +itransform +}bind def +/DL{ +SN +moveto +SN +lineto stroke +}bind def +/DC{ +newpath 0 360 arc closepath +}bind def +/TM matrix def +/DE{ +TM currentmatrix pop +translate scale newpath 0 0 .5 0 360 arc closepath +TM setmatrix +}bind def +/RC/rcurveto load def +/RL/rlineto load def +/ST/stroke load def +/MT/moveto load def +/CL/closepath load def +/Fr{ +setrgbcolor fill +}bind def +/setcmykcolor where{ +pop +/Fk{ +setcmykcolor fill +}bind def +}if +/Fg{ +setgray fill +}bind def +/FL/fill load def +/LW/setlinewidth load def +/Cr/setrgbcolor load def +/setcmykcolor where{ +pop +/Ck/setcmykcolor load def +}if +/Cg/setgray load def +/RE{ +findfont +dup maxlength 1 index/FontName known not{1 add}if dict begin +{ +1 index/FID ne +2 index/UniqueID ne +and +{def}{pop pop}ifelse +}forall +/Encoding exch def +dup/FontName exch def +currentdict end definefont pop +}bind def +/DEFS 0 def +/EBEGIN{ +moveto +DEFS begin +}bind def +/EEND/end load def +/CNT 0 def +/level1 0 def +/PBEGIN{ +/level1 save def +translate +div 3 1 roll div exch scale +neg exch neg exch translate +0 setgray +0 setlinecap +1 setlinewidth +0 setlinejoin +10 setmiterlimit +[]0 setdash +/setstrokeadjust where{ +pop +false setstrokeadjust +}if +/setoverprint where{ +pop +false setoverprint +}if +newpath +/CNT countdictstack def +userdict begin +/showpage{}def +/setpagedevice{}def +mark +}bind def +/PEND{ +cleartomark +countdictstack CNT sub{end}repeat +level1 restore +}bind def +end def +/setpacking where{ +pop +setpacking +}if +%%EndResource +%%EndProlog +%%BeginSetup +%%BeginFeature: *PageSize Default +<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice +%%EndFeature +%%IncludeResource: font NimbusRomNo9L-Medi +%%IncludeResource: font NimbusRomNo9L-Regu +%%IncludeResource: font NimbusRomNo9L-MediItal +grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 +def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron +/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen +/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon +/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O +/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex +/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y +/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft +/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl +/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut +/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash +/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen +/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft +/logicalnot/minus/registered/macron/degree/plusminus/twosuperior +/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior +/ordmasculine/guilsinglright/onequarter/onehalf/threequarters +/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE +/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn +/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash +/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def +/NimbusRomNo9L-MediItal@0 ENC0/NimbusRomNo9L-MediItal RE +/NimbusRomNo9L-Regu@0 ENC0/NimbusRomNo9L-Regu RE/NimbusRomNo9L-Medi@0 +ENC0/NimbusRomNo9L-Medi RE/SUBENC3[/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/afii10086/.notdef/.notdef/.notdef/afii10088/.notdef/.notdef +/.notdef/afii10077/.notdef/.notdef/afii10038/.notdef/afii10068/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10031/.notdef/.notdef +/.notdef/afii10022/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/afii10066/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10087 +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10076/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]def +/NimbusRomNo9L-Regu@@3 SUBENC3/NimbusRomNo9L-Regu RE/SUBENC2[/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10065/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/afii10097/.notdef/afii10035/.notdef/.notdef/.notdef/.notdef +/afii10092/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10089 +/.notdef/.notdef/.notdef/afii10078/afii10085/afii10036/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/afii10067/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/afii10091/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/afii10021/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10026/.notdef/.notdef/.notdef/.notdef/.notdef/afii10030/.notdef +/.notdef/.notdef/afii10082/.notdef/afii10083/.notdef/afii10079/.notdef +/.notdef/.notdef/.notdef/.notdef/afii10090/afii10072/.notdef/.notdef +/.notdef/.notdef/.notdef/afii10033/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10041/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/afii10029/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/afii10069/afii10070/.notdef/.notdef +/afii10019/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10084/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10017 +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/afii10080/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10075/.notdef/.notdef +/.notdef/.notdef/afii10074/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10025/afii10020 +/.notdef/.notdef/afii10081/.notdef/afii10096/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10073/.notdef +/.notdef]def/NimbusRomNo9L-Regu@@2 SUBENC2/NimbusRomNo9L-Regu RE/SUBENC1 +[/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10086/.notdef +/.notdef/.notdef/afii10088/.notdef/.notdef/.notdef/afii10077/.notdef +/.notdef/afii10038/.notdef/afii10068/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10022/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10066/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/afii10087/.notdef/.notdef/.notdef +/.notdef/.notdef/afii10076/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10037/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef]def/NimbusRomNo9L-Medi@@1 +SUBENC1/NimbusRomNo9L-Medi RE/SUBENC0[/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10065/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10097/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10092/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10078/afii10085/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10067/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10091/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10021 +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/afii10026/.notdef/.notdef/.notdef +/.notdef/.notdef/afii10030/.notdef/.notdef/.notdef/afii10082/.notdef +/afii10083/.notdef/afii10079/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10090/afii10072/.notdef/.notdef/.notdef/.notdef/.notdef/afii10033 +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10018/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/afii10069 +/afii10070/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/afii10084/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/afii10080/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/afii10032/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10075/.notdef/.notdef/.notdef/.notdef/afii10074/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10025/.notdef/.notdef/.notdef/afii10081/.notdef/afii10096/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/afii10073/.notdef/.notdef]def/NimbusRomNo9L-Medi@@0 SUBENC0 +/NimbusRomNo9L-Medi RE +%%EndSetup +%%Page: 0 1 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 13/NimbusRomNo9L-Medi@@0 SF<7665b590>140.055 156 Q/F1 13 +/NimbusRomNo9L-Medi@@1 SF(B)A F0 3.25<a3e8>C<b5>-3.25 E F1(B)3.25 E F0 +<b52de8eaa3226569cf>A<67cf67a3902dcf>3.25 E<fd09>3.25 E<2ee865093e>3.25 +E F1<16>A F0<9069cf90>A<6909>3.25 E<65b5>3.25 E F1(0)A F0<b5a3cf>A F1(&) +129.271 208 Q F0<fdcf>A F1(B)A F0<fd09>3.25 E(.)3.25 E F1<16>A F0 +<9067691b3e096990>A<6909>3.25 E<e865b5>3.25 E F1<1b>A F0 +<65092dcf65096990>A<6909>3.25 E(>)3.25 E F1<1b>A F0<65098f9069cf>A +<2e67a365b5ca67a33e09>3.25 E/F2 11/NimbusRomNo9L-Regu@@2 SF<e509>241.336 +247 Q/F3 11/NimbusRomNo9L-Regu@@3 SF<16>A F2<cf69>A<1dcf2d90b569b53e> +2.75 E F3<19>2.75 E/F4 11/NimbusRomNo9L-Regu@0 SF(.)A F3(")A F4 2.75(.8) +C -.726(16)-3.454 G(35).726 E/F5 10/NimbusRomNo9L-Regu@0 SF(gtsimeono) +254.49 260 Q(v@uni-so\214a.bg)-.36 E/F6 11/NimbusRomNo9L-Medi@0 SF -.187 +(1.)74.75 312 S/F7 11/NimbusRomNo9L-Medi@@1 SF(M)5.687 E/F8 11 +/NimbusRomNo9L-Medi@@0 SF<3eb58f>A F2(ve\317)94 325 Q<e865b5>7.327 E F3 +<1b>A F2<65092dcf65096990a3b5>A<6909>7.327 E(>)7.327 E F3<1b>A F2 +<65098f9069cf>A<2e67a365b5ca67a33e09>7.327 E F4(,)A F2<691b>7.327 E F3 +(B)A F2<b5cf>A<b5a3>7.326 E<e865b5>7.326 E F3<3016>A F2<902dcfa390>A +<6790>7.326 E<2db58f90>7.326 E F3<16>A F2<cf6509a3>A<296590fd>7.326 E +<093ea3b52d09a3cf>72 338 Q F4(.)A F2<1d2246b5>6.487 E 3.737<90e8>3.737 G +<6509>-3.737 E F3(B)A F2<a3cf>A F3(B)A F2 3.737<098f>C 3.737<0967>-3.737 +G 3.737<90e8>-3.737 G<65b5>-3.737 E F3<1b>A F2<65092dcf6509>A<6909>3.737 +E<90fdcf>3.738 E F3<12>A F2 3.738<cfb5>C 3.738<a369>-3.738 G<cf67>-3.738 +E F3(B)A F2 3.738<b569>C<cf3eb5>-3.738 E F4(,)A F3(B)3.738 E F2<09a3b5>A +F6(C)3.738 E F4(,)A F2<e865cf>3.738 E F3(B)3.738 E F2<b5cfa3b5>A +<65222969b5a3b5>3.738 E<cf2de8>72 351 Q F3<16>A F2<902d9069a3cf65096990> +A<6909>3.193 E<093ea3b52d09a3cf>3.192 E(g)3.192 E F3(B)3.192 E F2<09>A +F3(B)A F2<3ecfa3b5>A 3.192<cf8f>3.192 G 3.192<099065>-3.192 G +<09fd2d9065cf>-3.192 E<299067a3b5>3.192 E 3.192<9069>3.192 G +<90cf69a32ecfa3cf3e69b5>-3.192 E F4(,)A F2<e865908f6509fde8b5>3.192 E F3 +<16>A F2<09>A F3<1b>A F2<0946b5>A F3(B)3.192 E F2("-)A F3<1b>72 364 Q F2 +(e\220o)A F3(B)A F2 4.504<cfcfa3>C<652e8fb5902d>-4.504 E F3(B)A F2<b5>A +F4(.)A F2<1d>7.254 E F3<12>4.504 E F2<90>A F3<16>A F2<8f09>4.504 E +<e8b52db5>4.504 E F3<1b>A F2<6909>A<6509fd6509>4.504 E F3(0)A F2 +<b5a33e096990a3b5>A<6909>4.505 E<e865b5>4.505 E F3<1b>A F2<65092dcf>A F4 +(,)A F2<29cfcaa3b5>4.505 E<2db58f90>4.505 E F3<16>A F2 4.505<90b5>4.505 +G<65cf9069a3cf650969>-4.505 E<b5>72 377 Q F3(B)A F2<b5>A F3<16>A F2 +4.258(.g)C<2267a3b51b69cf1ba309>-4.258 E<6909>4.258 E +<67cf67a3902d09a309>4.258 E F4(,)A F2<e865908f>4.258 E F3<16>A F2<09>A +F3<1b>A F2<092d>A 4.257<cfcf>4.258 G<2de8>-4.257 E F3<16>A F2 +<902d9069a3cf65092d>A<90>4.257 E F3(B)A F2<67e89065cf2d9069a309>A F3<16> +A F2<9069>A<2dcf69cf09a3ea659069>4.257 E<90fdcf>4.257 E F3(B)A F2 +<a365096967e8cf>72 390 Q F3<16>A F2<cf650946>A<8fb5>2.75 E F6(C)2.75 E +F4(.)A F2<e409>94 403 Q F3<12>3.772 E F2<90>A F3<16>A F2 3.772<cfcf>C +(-\011-)-3.772 E<a3b5ca>3.772 E<8f09>3.772 E 3.772<90e8>3.772 G +<65b567a3>-3.772 E F4(,)A F2<cf69a32ecfa3cf3e9069>3.773 E 3.773<cf90> +3.773 G<3e9069a32e09>-3.773 E F3<16>A F2<69b5>A F3<16>3.773 E F2 +<90679069>A<fd09>3.773 E F3<1b>3.773 E F2<90699065cf65096990>A<b5a3> +3.773 E<cf6967a32e652d9069a3cf>3.773 E(g)3.773 E F3<1b>72 416 Q F2<6509> +A F3<0e>A F2<cf299069>A<cf69a3906569>2.75 E F3<0e>A F2<90ca67>A/F9 8 +/NimbusRomNo9L-Regu@0 SF(1)-1.15 -3.9 M F4(.)2.75 3.9 M F6(2.)74.75 442 +Q F8<bfe8cf670969cf90>5.5 E<6909>2.75 E<90fdcf>2.75 E F7(B)A F8<09>A F6 +(2.)74.75 468 Q -.187(1.)-.231 G F8<bf>5.687 E F7(0)A F8 2.75<46e8>C<b5> +-2.75 E F7<1b16>A F8<908f>A F3(&)72 481 Q F2<8f6909>A F4(')8.05 E F2 +<e865b5>A F3<1b>A F2<65092d09>A F4(')A F2(g"\217"ep\011)8.05 E<908fcf69> +8.05 E<cf>8.05 E F3<16>A F2 8.05<cfe8>C<b53e902990>-8.05 E F4(')8.049 E +F2<2d096fcf69cf>A F4 -.781(',)C F3(B)8.83 E F2<b5cfa3b5>A +<8f90ca67a33e09a3>8.049 E F3(B)8.049 E F2<09a3b5>A F3(B)8.049 E F2 +<b569a390ca699065cf>A<fd09>8.049 E<672267a3b51b69cf1b>72 494 Q F4(,)A F2 +(g")A F3(0)A F2<cfa3cf1b>A 3.679<cfe8>3.679 G<6590>-3.679 E F3(<)A F2 +<b58fcf>A F4(.)A F2<93671b>6.429 E F3(B)A F2 3.679<092d>C<096fcf6909> +-3.679 E<67cf>3.679 E<cf2d09>3.679 E<cf2d90>3.679 E 3.679<cfcf>3.679 G +<2d09>-3.679 E<b5a38f90>3.679 E F3<16>A F2<69b5>A +<e865b567a365096967a33eb5>3.679 E<fd09>3.679 E<cf2d906909>3.679 E<6909> +3.68 E<672267a3b51b69cf1b>72 507 Q 4.525<cf67>4.525 G(")-4.525 E F3(0)A +F2<cfa3cf1b>A F4(.)A F2<806590fd>7.274 E<e86590>4.524 E F3(<)A F2 +<b58fcfa390>A<2db57090>4.524 E<8f09>4.524 E<6790>4.524 E<cffd3ecf>4.524 +E F3(B)A F2<3e09a3>A(>"ioi\317)4.524 E F3<0e>4.524 E F2(.i)A F3<4212>A +F2<cfcf>A F4(.)A F3(&)7.274 E F2<a3b5>A<6909ca>4.524 E F4(-)A F2 +<e865b567a3cf1ba3>A<e865cf2d9065>72 520 Q<fd09>2.75 E<a3b53e09>2.75 E F3 +(B)2.75 E F2<09>A F3(B)A F2<cffd>2.75 E F3<1b16>A F2<90708f09>A F3(B) +2.75 E F2<b58f22a3>A F4(:)A F6(mac)72 546 Q(hine light_bulb)-.187 E([)72 +559 Q -2.475 -.077(st a)108 572 T -.011(te).077 G 2.75(s[O).011 G 2.75 +(N,O)-2.75 G(FF ];)-2.75 E -.319(ev)108 585 S +(ents [ TURN_ON , TURN_OFF , S)-.066 E(WIT)-.11 E -.022(CH)-.187 G(_S) +.022 E -.506(TA)-.176 G(TE ];)-.143 E -2.475 -.077(st a)108 598 T .099 +(rt).077 G(ing on OFF;)-.099 E(tr)108 611 Q(ansitions)-.066 E([)108 624 +Q(fr)144 637 Q(om ON t)-.154 E 2.75(oO)-.044 G(FF on e)-2.75 E -.385(ve) +-.319 G(nt TURN_OFF;).385 E(fr)144 650 Q(om ON t)-.154 E 2.75(oO)-.044 G +(FF on e)-2.75 E -.385(ve)-.319 G(nt S).385 E(WIT)-.11 E -.022(CH)-.187 +G(_S).022 E -.506(TA)-.176 G(TE;)-.143 E(fr)144 676 Q(om OFF t)-.154 E +2.75(oO)-.044 G 2.75(No)-2.75 G 2.75(ne)-2.75 G -.385(ve)-3.069 G +(nt TURN_ON;).385 E(fr)144 689 Q(om OFF t)-.154 E 2.75(oO)-.044 G 2.75 +(No)-2.75 G 2.75(ne)-2.75 G -.385(ve)-3.069 G(nt TURN_ON;).385 E(];)108 +702 Q(];)72 728 Q .44 LW 77.5 741 72 741 DL 78 741 72.5 741 DL 83.5 741 +78 741 DL 89 741 83.5 741 DL 94.5 741 89 741 DL 100 741 94.5 741 DL +105.5 741 100 741 DL 111 741 105.5 741 DL 116.5 741 111 741 DL 122 741 +116.5 741 DL 127.5 741 122 741 DL 133 741 127.5 741 DL 138.5 741 133 741 +DL 144 741 138.5 741 DL/F10 9/NimbusRomNo9L-Regu@0 SF -.495(1.)72 752 S +/F11 9/NimbusRomNo9L-Regu@@2 SF<6109>4.995 E/F12 9/NimbusRomNo9L-Regu@@3 +SF(B)A F11<0965>A F10(,)A F11<2990>2.25 E<8fcf6590>2.25 E F12(B)A F11 +<a369b5a3b5>A F12<1b>2.25 E F11<90699065cf65096990>A<6909>2.25 E F12(B) +2.25 E F11<b58f>A F12(0)2.25 E F11<90fd>A<a3b5fdcf>2.25 E<90fdcf>2.25 E +F12(B)A F11<8f09>2.25 E<8f90ca67a33e09>2.25 E F12(B)2.25 E F11<09a3b5>A +<e8b56765908f69cf>2.25 E F12 2.25(B0)C F11<cf>-2.25 E F12(0)2.25 E F11 +<cf>A F12<16>A F11 2.25<b5e8>C<b5>-2.25 E F10(-)A F11(g-\317g)A F12<16>A +F11<9069b5>A F10(.)A F5 2.5(-1-)297.67 778 S 0 Cg EP +%%Page: 1 2 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/NimbusRomNo9L-Regu@@2 SF<e509>72 24 Q/F1 10/NimbusRomNo9L-Regu@@3 +SF<16>A F0<cf69>A<1dcf2d90b569b53e>2.5 E F1<19>2.5 E/F2 10 +/NimbusRomNo9L-Regu@0 SF(.)A F1(")A F2 2.5(.8)C -.66(16)-3.14 G(35).66 E +F0<7665b590>109.09 E F1(B)A F0 2.5<a3e8>C<b5>-2.5 E F1(B)2.5 E F0 +<b52de8eaa3226569cf>A<67cf67a3902dcf>2.5 E<fd09>2.5 E<2ee865093e>2.5 E +F1<16>A F0<9069cf90>A<6909>2.5 E<65b5>2.5 E F1(0)A F0<b5a3cf>A .5 LW 77 +36 72 36 DL 80 36 75 36 DL 85 36 80 36 DL 90 36 85 36 DL 95 36 90 36 DL +100 36 95 36 DL 105 36 100 36 DL 110 36 105 36 DL 115 36 110 36 DL 120 +36 115 36 DL 125 36 120 36 DL 130 36 125 36 DL 135 36 130 36 DL 140 36 +135 36 DL 145 36 140 36 DL 150 36 145 36 DL 155 36 150 36 DL 160 36 155 +36 DL 165 36 160 36 DL 170 36 165 36 DL 175 36 170 36 DL 180 36 175 36 +DL 185 36 180 36 DL 190 36 185 36 DL 195 36 190 36 DL 200 36 195 36 DL +205 36 200 36 DL 210 36 205 36 DL 215 36 210 36 DL 220 36 215 36 DL 225 +36 220 36 DL 230 36 225 36 DL 235 36 230 36 DL 240 36 235 36 DL 245 36 +240 36 DL 250 36 245 36 DL 255 36 250 36 DL 260 36 255 36 DL 265 36 260 +36 DL 270 36 265 36 DL 275 36 270 36 DL 280 36 275 36 DL 285 36 280 36 +DL 290 36 285 36 DL 295 36 290 36 DL 300 36 295 36 DL 305 36 300 36 DL +310 36 305 36 DL 315 36 310 36 DL 320 36 315 36 DL 325 36 320 36 DL 330 +36 325 36 DL 335 36 330 36 DL 340 36 335 36 DL 345 36 340 36 DL 350 36 +345 36 DL 355 36 350 36 DL 360 36 355 36 DL 365 36 360 36 DL 370 36 365 +36 DL 375 36 370 36 DL 380 36 375 36 DL 385 36 380 36 DL 390 36 385 36 +DL 395 36 390 36 DL 400 36 395 36 DL 405 36 400 36 DL 410 36 405 36 DL +415 36 410 36 DL 420 36 415 36 DL 425 36 420 36 DL 430 36 425 36 DL 435 +36 430 36 DL 440 36 435 36 DL 445 36 440 36 DL 450 36 445 36 DL 455 36 +450 36 DL 460 36 455 36 DL 465 36 460 36 DL 470 36 465 36 DL 475 36 470 +36 DL 480 36 475 36 DL 485 36 480 36 DL 490 36 485 36 DL 495 36 490 36 +DL 500 36 495 36 DL 505 36 500 36 DL 510 36 505 36 DL 515 36 510 36 DL +520 36 515 36 DL 525 36 520 36 DL 530 36 525 36 DL 535 36 530 36 DL 540 +36 535 36 DL/F3 11/NimbusRomNo9L-Regu@@2 SF<1d>72 111 Q/F4 11 +/NimbusRomNo9L-Regu@@3 SF<16>A F3<908f>A<a365096967e8cf>3.528 E F4<16>A +F3<09>A F4<12>A F3<cf1b>A<6790>3.528 E F4<1b>3.528 E F3 +<90699065cf6509a3>A/F5 11/NimbusRomNo9L-Regu@0 SF(3)3.528 E F4<0e>3.528 +E F3<09ca>A F4<16>A F3<09>A F5 3.528(-x)3.528 G .778(xx.h xxx.c)-3.528 F +F3<cf>3.528 E F5(xxx_e)3.528 E -2.508(xter nal.h,)-.385 F F4(B)3.528 E +F3<b5caa3b5>A<6722b5a33e90a369b5>3.528 E<67228f22657009a3>3.528 E<8f90> +72 124 Q F4<4216>A F3<096509>A F4<12>A F3<cfcfa390>A<6909>7.007 E(g) +7.007 E F4<16>A F3(.p\220)A F4(0)A F3<69cfa390>A F4<0e>7.007 E F3(.i)A +F4<4212>A F3<cfcf>A F5(,)A F3<a31b>7.007 E F4(<)A F3<6909a309>A<cf2de8> +7.008 E F4<16>A F3<902d9069a309>A F4<12>A F3<cf1b>A 7.008<cf8f>7.008 G +<90>-7.008 E F4<4216>A F3<096509>A F4<12>A F3<cfcfa390>A<6909>7.008 E +<3e22696f69cfa390>7.008 E F4<0e>72 137 Q F3(.i)A F4<4212>A F3<cfcf>A F5 +(,)A F4(B)3.41 E F3<b5cfa3b5>A<6709>3.41 E<cffde8b5>3.41 E F4<16>A F3 +<fd3e0969cf>A<b5a3>3.41 E<691b>3.41 E F4(B)A F3<b5ca>A<e86590>3.41 E F4 +(<)A F3<b58f>A F5(.)A F3<76b58f093e096990a3b5>6.16 E<6909>3.409 E(g") +3.409 E F4(0)A F3<cfa3cf1b>A F4(B)3.409 E F3("-)A<a390fdcf>3.409 E F5(') +3.409 E F3<093ea3b52d09a3cf>A F5(')A F3<67a3093e09>3.409 E +<e8b56765908f67a33eb52d>72 150 Q(g)2.75 E F4<16>A F3(.p\220)A F4(0)A F3 +<6909a309>A F4<0e>2.75 E F3(.i)A F4<4212>A F3<cf1b>A F5(-)2.75 E/F6 11 +/NimbusRomNo9L-Medi@0 SF(push_e)2.75 E -.385(ve)-.319 G(nt_t).385 E +(o_mac)-.044 E(hine)-.187 E F3<e5b56569cf1ba3>72 176 Q<e865cf2d9065> +2.809 E<6990>2.809 E 2.809<902d>2.809 G<69b5>-2.809 E F4<1b>A F3<b5>A F4 +<0e>2.809 E F3(.i)A F4<4212>A F3<cfb56909>A F4<16>A F3<9069>A F5(,)A F3 +<fd0946b5a3b5>2.809 E F4(B)2.809 E F3<b52d2e69cf>A F4(B)A F3<09>A F4<12> +A F3<cf1ba309>A 2.809<9067>2.809 G<092db5>-2.809 E 2.809<3e90>2.809 G +<8f6909>-2.809 E<e8b567b5>2.809 E F4(B)A F3<09>A F5(.)A F3<e409>5.559 E +<8f09>2.809 E<2db57090>2.809 E<8f09>72 189 Q(>e"F\011)4.677 E<cf69>4.677 +E F4<0e>A F3<b5652d09>A F4<12>A F3<cf1b>A 4.676<cf8f>4.676 G 4.676<09cf> +-4.676 G<2d09>-4.676 E F4<0e>4.676 E F3(.i)A F4<4212>A F3<cfb56909>A F4 +<16>A F3<69b567a3>A F5(,)A F3<6909>4.676 E(>g\220)4.676 E F4(B)A F3 +4.676<cfe8>C<6590>-4.676 E F4(<)A F3<b58f>A<2db57090>4.676 E<8f09>4.676 +E<6790>4.676 E(g)4.676 E F4<16>A F3<b57009a3>A F4<0e>4.676 E F3(.i)A F4 +<4212>A F3<cfcf>A F5(,)A F4(B)72 202 Q F3<b5cfa3b5>A<8f09>4.475 E F4(0) +4.475 E F3<228f09a3>A<cffde822>4.475 E F4<16>A F3<699069cf>A<e865908fcf> +4.475 E<e86590>4.475 E F4(<)A F3<b58f22a3>A<8f09>4.475 E 4.475<90fd> +4.475 G(\011>"eo\317)-4.475 E F4<16>A/F7 8/NimbusRomNo9L-Regu@0 SF(2) +.574 -3.9 M F5 7.224(.T)4.474 3.9 O(a)-8.071 E F4(B)A F3<09>A F4<1b> +4.474 E F3<b56569cf1ba3>A<e865cf2d9065>4.474 E<2db57090>4.474 E<8f09> +4.474 E F4(0)4.474 E F3<228f90>A<e865906509>72 215 Q F4(0)A F3<b5a39069> +A<8f09>2.75 E<3ecf>2.75 E F4(B)A F3<09>A F4<0e>2.75 E F3(.i)A F4<4212>A +F3<cf1b>A F5(,)A F4(B)2.75 E F3<b51ba3b5>A<8f90ca67a33ecfa390>2.75 E F4 +<16>A F3<69b5>A<8f09>2.75 E(>)2.75 E F4<4216>A F3<ea293e09>A 2.75<cfcf> +2.75 G<fd>-2.75 E F4<4216>A F3<ea293e09>A<691b>2.75 E F4(B)A F3<09>A F4 +(B)A F3<3e09>A F4<16>2.75 E F3<092de809>A F5(:)A F6(mac)72 241 Q +(hine light_bulb)-.187 E([)72 254 Q -2.475 -.077(st a)108 267 T -.011 +(te).077 G 2.75(s[O).011 G 2.75(N,O)-2.75 G(FF ];)-2.75 E -.319(ev)108 +280 S(ents [ TURN_ON , TURN_OFF , S)-.066 E(WIT)-.11 E -.022(CH)-.187 G +(_S).022 E -.506(TA)-.176 G(TE ];)-.143 E -2.475 -.077(st a)108 293 T +.099(rt).077 G(ing on OFF;)-.099 E(tr)108 306 Q(ansitions)-.066 E([)108 +319 Q(fr)144 332 Q(om ON t)-.154 E 2.75(oO)-.044 G(FF on e)-2.75 E -.385 +(ve)-.319 G(nt TURN_OFF).385 E -.209(ex)216 345 S(ecut)-.088 E 2.75(el) +-.011 G(ight "of)-2.75 E(f";).132 E(fr)144 358 Q(om ON t)-.154 E 2.75 +(oO)-.044 G(FF on e)-2.75 E -.385(ve)-.319 G(nt S).385 E(WIT)-.11 E +-.022(CH)-.187 G(_S).022 E -.506(TA)-.176 G(TE)-.143 E -.209(ex)216 371 +S(ecut)-.088 E 2.75(el)-.011 G(ight "of)-2.75 E(f";).132 E(fr)144 397 Q +(om OFF t)-.154 E 2.75(oO)-.044 G 2.75(No)-2.75 G 2.75(ne)-2.75 G -.385 +(ve)-3.069 G(nt TURN_ON).385 E -.209(ex)216 410 S(ecut)-.088 E 2.75(el) +-.011 G(ight "on";)-2.75 E(fr)144 423 Q(om OFF t)-.154 E 2.75(oO)-.044 G +2.75(No)-2.75 G 2.75(ne)-2.75 G -.385(ve)-3.069 G(nt TURN_ON).385 E +-.209(ex)216 436 S(ecut)-.088 E 2.75(el)-.011 G(ight "on";)-2.75 E(];) +108 449 Q(];)72 475 Q F3(/.)72 514 Q F4(B)A F3(g"F\265)4.537 E 4.537 +<908f>4.537 G<902db56967a365cf650969b5>-4.537 E F4(B)4.537 E F3<09>A F4 +(B)A F3<6790>4.537 E<e8b58f093e09a3>4.537 E<0965>4.537 E F4<1b>A F3 +<2e2d9069a3cf>A F4(B)4.538 E F3("-)A<a390fdcf>4.538 E F4<0e>4.538 E F3 +(.i)A F4<4212>A F3<cfcf>A F5(.)A F3<1dcf2d3eb5>7.288 E F4<16>A F3 +<69cfa390>A<69cffdb53e90>4.538 E<6709>4.538 E<cffd>72 527 Q F4(0)A F3 +<650969cf>A F4(B)3.362 E F3<09a3b5>A<908fcf6967a33e9069>3.362 E +<690929cf69>3.362 E<8f09>3.362 E<6790>3.362 E<e8b58f093e09a3>3.362 E +<0965>3.362 E F4<1b>A F3<2e2d9069a3cf>A F5(,)A F3<fd0946b5a3b5>3.362 E +3.361<90e8>3.362 G<65908f3ecf8f9069b5>-3.361 E<8f09>3.361 E<6790>3.361 E +<a365096967e8cf>3.361 E F4<16>A F3<cf6509>A<8fb5>3.361 E<90fdcf>72 540 Q +F4<12>A F3<cf>A F5(,)A F3<6509fd>4.981 E F4<16>A F3<cf2969cf>A<b5a3> +4.981 E F6(C)4.981 E F5(,)A F3 4.982<093e>4.982 G<223e90708f096990a3b5> +-4.982 E<6909>4.982 E<a3cfe8b53e09>4.982 E<67cf67a3902d09>4.982 E<cf> +4.982 E F4<16>A F3 4.982<cf69>C<9046b5>-4.982 E F5(,)A F4(B)4.982 E F3 +<b590a3b5>A<8f09>4.982 E<b5e8cf673e09>4.982 E<6509fd>4.982 E F4<16>A F3 +<cf2969cfa390>A<0965>72 553 Q F4<1b>A F3<2e2d9069a3cf>A F4(0)2.75 E F3 +2.75<cf69>C<09a3b53e0965cf>-2.75 E F4<16>A F3 2.75<b590>C<fdcf>-2.75 E +F4(B)A F3<22a3>A<a33e22658f90>2.75 E(-i\265)2.75 E F4<1b>A F3 2.75<b5cf> +C F4(0)A F3 2.75<cf8f>C<b5699067>-2.75 E F4<16>A F3 2.75<b567>C<092db5> +-2.75 E<2dcf69cf2d09>2.75 E F4<16>A F3<6909>A<e8902909>2.75 E F4<1630>A +F3<09>A F5(.)A F3<9322fd2db57069b5>94 566 Q 5.088<908f>5.088 G 5.088 +<09cf>-5.088 G<2d09>-5.088 E<e8b53e902990>5.088 E<b5a3>5.088 E<908f6909> +5.088 E F5(')5.088 E F3<2d096fcf6909>A F5(')A F3(>)5.088 E F4(B)5.088 E +F3<b58f22a3>A F5(.)A F4(")5.088 E F3<09e865cf2d9065>A F5(,)A F3<6990> +5.088 E F4(B)A F3<09>A F4(B)5.088 E F3("-)A F4<1b>5.087 E F3<b56569cf1b> +A<e865cf2d9065>5.087 E<8fb5>72 579 Q F4(0)A F3<093ecf2d>A F5(:)A F6(mac) +72 605 Q(hine light_contr)-.187 E(oler)-.154 E([)72 618 Q -2.475 -.077 +(st a)108 631 T -.011(te).077 G 2.75(s[S).011 G -.506(TA)-2.926 G +(TIC , BLINKIN)-.143 E 2.75(G])-.176 G(;)-2.75 E -.319(ev)108 644 S +(ents [ SIGN)-.066 E(AL , GO_S)-.209 E -.506(TA)-.176 G(TIC, S)-.143 E +-.506(TA)-.176 G -.286(RT).506 G(_BLINKIN).286 E 2.75(G])-.176 G(;)-2.75 +E -2.475 -.077(st a)108 657 T .099(rt).077 G(ing on S)-.099 E -.506(TA) +-.176 G(TIC;)-.143 E(tr)108 670 Q(ansitions)-.066 E([)108 683 Q(fr)144 +696 Q(om S)-.154 E -.506(TA)-.176 G(TIC t)-.143 E 2.75(oB)-.044 G +(LINKIN)-2.75 E 2.75(Go)-.176 G 2.75(ne)-2.75 G -.385(ve)-3.069 G(nt S) +.385 E -.506(TA)-.176 G -.286(RT).506 G(_BLINKIN).286 E(G;)-.176 E 77.5 +709 72 709 DL 78 709 72.5 709 DL 83.5 709 78 709 DL 89 709 83.5 709 DL +94.5 709 89 709 DL 100 709 94.5 709 DL 105.5 709 100 709 DL 111 709 +105.5 709 DL 116.5 709 111 709 DL 122 709 116.5 709 DL 127.5 709 122 709 +DL 133 709 127.5 709 DL 138.5 709 133 709 DL 144 709 138.5 709 DL/F8 9 +/NimbusRomNo9L-Regu@0 SF(2.)72 720 Q/F9 9/NimbusRomNo9L-Regu@@2 SF +<2fb53e09>6.053 E<673eb5ca67a33eb5>3.803 E 3.803<903e>3.803 G<097069b5> +-3.803 E 3.803<cf09>3.803 G<3ea3b56522a3>-3.803 E<6790>3.803 E 3.803 +<9067>3.803 G<a365902dcf>-3.803 E/F10 9/NimbusRomNo9L-Regu@@3 SF<16>A F9 +<8f09>3.803 E F10<1b>3.803 E F9 3.803<b5fd>C<09e809fdcf>-3.803 E F8(.)A +F9<2fb53e09>3.804 E<e8b5fd3eb5>3.804 E F10<16>A F9<1b3e09>A F8(,)A F9 +<6909e865cf2d9065>3.804 E F8(,)A F9<8f09>3.804 E<6790>3.804 E +<e8b58f093e09a3>3.804 E(g")3.804 E F10(0)A F9<cfa3cf1b>A<b5a3>3.804 E +F10<0e>72 731 Q F9(.i)A F10<4212>A F9<cfcf>A<cffde822>2.25 E F10<16>A F9 +<699069cf>A<e8b5>2.25 E<3e65902d90>2.25 E<6909>2.25 E<e86590>2.25 E F10 +(<)A F9<b58f>A F2 2.5(-2-)297.67 778 S 0 Cg EP +%%Page: 2 3 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/NimbusRomNo9L-Regu@@2 SF<e509>72 24 Q/F1 10/NimbusRomNo9L-Regu@@3 +SF<16>A F0<cf69>A<1dcf2d90b569b53e>2.5 E F1<19>2.5 E/F2 10 +/NimbusRomNo9L-Regu@0 SF(.)A F1(")A F2 2.5(.8)C -.66(16)-3.14 G(35).66 E +F0<7665b590>109.09 E F1(B)A F0 2.5<a3e8>C<b5>-2.5 E F1(B)2.5 E F0 +<b52de8eaa3226569cf>A<67cf67a3902dcf>2.5 E<fd09>2.5 E<2ee865093e>2.5 E +F1<16>A F0<9069cf90>A<6909>2.5 E<65b5>2.5 E F1(0)A F0<b5a3cf>A .5 LW 77 +36 72 36 DL 80 36 75 36 DL 85 36 80 36 DL 90 36 85 36 DL 95 36 90 36 DL +100 36 95 36 DL 105 36 100 36 DL 110 36 105 36 DL 115 36 110 36 DL 120 +36 115 36 DL 125 36 120 36 DL 130 36 125 36 DL 135 36 130 36 DL 140 36 +135 36 DL 145 36 140 36 DL 150 36 145 36 DL 155 36 150 36 DL 160 36 155 +36 DL 165 36 160 36 DL 170 36 165 36 DL 175 36 170 36 DL 180 36 175 36 +DL 185 36 180 36 DL 190 36 185 36 DL 195 36 190 36 DL 200 36 195 36 DL +205 36 200 36 DL 210 36 205 36 DL 215 36 210 36 DL 220 36 215 36 DL 225 +36 220 36 DL 230 36 225 36 DL 235 36 230 36 DL 240 36 235 36 DL 245 36 +240 36 DL 250 36 245 36 DL 255 36 250 36 DL 260 36 255 36 DL 265 36 260 +36 DL 270 36 265 36 DL 275 36 270 36 DL 280 36 275 36 DL 285 36 280 36 +DL 290 36 285 36 DL 295 36 290 36 DL 300 36 295 36 DL 305 36 300 36 DL +310 36 305 36 DL 315 36 310 36 DL 320 36 315 36 DL 325 36 320 36 DL 330 +36 325 36 DL 335 36 330 36 DL 340 36 335 36 DL 345 36 340 36 DL 350 36 +345 36 DL 355 36 350 36 DL 360 36 355 36 DL 365 36 360 36 DL 370 36 365 +36 DL 375 36 370 36 DL 380 36 375 36 DL 385 36 380 36 DL 390 36 385 36 +DL 395 36 390 36 DL 400 36 395 36 DL 405 36 400 36 DL 410 36 405 36 DL +415 36 410 36 DL 420 36 415 36 DL 425 36 420 36 DL 430 36 425 36 DL 435 +36 430 36 DL 440 36 435 36 DL 445 36 440 36 DL 450 36 445 36 DL 455 36 +450 36 DL 460 36 455 36 DL 465 36 460 36 DL 470 36 465 36 DL 475 36 470 +36 DL 480 36 475 36 DL 485 36 480 36 DL 490 36 485 36 DL 495 36 490 36 +DL 500 36 495 36 DL 505 36 500 36 DL 510 36 505 36 DL 515 36 510 36 DL +520 36 515 36 DL 525 36 520 36 DL 530 36 525 36 DL 535 36 530 36 DL 540 +36 535 36 DL/F3 11/NimbusRomNo9L-Medi@0 SF(fr)144 61 Q(om BLINKIN)-.154 +E 2.75(Gt)-.176 G 2.75(oS)-2.794 G -.506(TA)-2.926 G(TIC on e)-.143 E +-.385(ve)-.319 G(nt GO_S).385 E -.506(TA)-.176 G(TIC;)-.143 E(fr)144 87 +Q(om BLINKIN)-.154 E 2.75(Gt)-.176 G 2.75(oB)-2.794 G(LINKIN)-2.75 E +2.75(Go)-.176 G 2.75(ne)-2.75 G -.385(ve)-3.069 G(nt SIGN).385 E(AL) +-.209 E -.209(ex)216 100 S(ecut)-.088 E 2.75(ep)-.011 G -.154(ro)-2.75 G +(d_light_bulb;).154 E(];)108 126 Q(];)72 152 Q(mac)72 178 Q(hine timer) +-.187 E([)72 191 Q -2.475 -.077(st a)108 204 T -.011(te).077 G 2.75(s[O) +.011 G 2.75(N,O)-2.75 G(FF ];)-2.75 E -.319(ev)108 217 S(ents [ TIC) +-.066 E 2.75(K,S)-.066 G -.506(TA)-2.926 G .572 -.286(RT , S).506 H +-.099(TO).11 G 2.75(P]).099 G(;)-2.75 E -2.475 -.077(st a)108 230 T .099 +(rt).077 G(ing on OFF;)-.099 E(tr)108 243 Q(ansitions)-.066 E([)108 256 +Q(fr)144 269 Q(om ON t)-.154 E 2.75(oO)-.044 G(FF on e)-2.75 E -.385(ve) +-.319 G(nt S).385 E -.099(TO)-.176 G(P;).099 E(fr)144 282 Q(om OFF t) +-.154 E 2.75(oO)-.044 G 2.75(No)-2.75 G 2.75(ne)-2.75 G -.385(ve)-3.069 +G(nt S).385 E -.506(TA)-.176 G -.286(RT).506 G -.209(ex)180 295 S(ecut) +-.088 E 2.75(ep)-.011 G -.154(ro)-2.75 G(d_timer).154 E(;)-.176 E(fr)144 +308 Q(om ON t)-.154 E 2.75(oO)-.044 G 2.75(No)-2.75 G 2.75(ne)-2.75 G +-.385(ve)-3.069 G(nt TIC).385 E(K)-.066 E -.209(ex)180 321 S(ecut)-.088 +E 2.75(ep)-.011 G -.154(ro)-2.75 G(d_timer | pr).154 E(od_light_contr) +-.154 E(oler)-.154 E(;)-.176 E(];)108 334 Q(];)72 360 Q/F4 11 +/NimbusRomNo9L-Regu@@2 SF(/.)72 399 Q/F5 11/NimbusRomNo9L-Regu@@3 SF(B)A +F4<2db57090>3.612 E<8f09>3.612 E<6790>3.612 E<3ecf8fcf>3.612 E<cf>3.611 +E/F6 11/NimbusRomNo9L-Regu@0 SF(')3.611 E F4<69093e2265fd3e096990>A F6 +(')A F4<6909>3.611 E<6509fd>3.611 E F5<16>A F4<cf2969cf>A F5<0e>3.611 E +F4(.i)A F5<4212>A F4<cfcf>A F6 6.361(.t)C .861(imer ')-6.361 F F4 +<2d096fcf6909a309>A F6(')A F4<e865094609>3.611 E<67cf>3.611 E F5<1b>A F4 +<6909>A F5<16>A F4<8fb5>3.611 E<6790>3.611 E F5(0)A F4<90>A<67cf>72 412 +Q 5.521<cf8f>5.521 G<b5>-5.521 E F6(light_contr)5.521 E(oler)-.088 E(,) +-.451 E F4<09>5.521 E F6(light_contr)5.521 E(oler)-.088 E F4<e865094609> +5.521 E<67cf>5.522 E F5<1b>A F4<6909>A F5<16>A F4<8fb5>5.522 E F6 +(light_bulb.)5.522 E F4(/.)8.272 E F5(B)A F4<2db570902d>5.522 E<8f09> +5.522 E<e8659067>5.522 E F5(B)A F4<b529cf2d>A<e865908f093e096990a3b5>72 +425 Q<6909>3.949 E(g")3.949 E F5(0)A F4<cfa3cf1b>A<2d90708f2e>3.949 E F6 +(')3.949 E F4<2d096fcf69cfa390>A F6(')A F4<296590fd>3.949 E<cffde8b5> +3.949 E F5<16>A F4<fd3e096990a3b5>A<6909>3.948 E F3(if)3.948 E F6(.)A F4 +<7665b52d90691b2d90>6.698 E<a36590a3cf1b>3.948 E<e86590>3.948 E F5(<)A +F4<b58f>A<b5a3>3.948 E F6(timer)72 438 Q(:)-.077 E F3(fr)108 464 Q +(om ON t)-.154 E 2.75(oO)-.044 G 2.75(No)-2.75 G 2.75(ne)-2.75 G -.385 +(ve)-3.069 G(nt TIC).385 E(K)-.066 E(if\(light_contr)144 477 Q(oler) +-.154 E(.BLINKIN)-.748 E(G\))-.176 E -.209(ex)180 490 S(ecut)-.088 E +2.75(ep)-.011 G -.154(ro)-2.75 G(d_timer | pr).154 E(od_light_bulb;) +-.154 E F4<2fb53e09>72 542 Q 7.195<902e>7.195 G(g)-7.195 E F5<16>A F4 +<b53e69b5>A<cffde822>7.195 E F5<16>A F4<699069cf90>A<6909>7.195 E F5(B) +7.195 E F4<b52d09698fcfa390>A F6(,)A F4<e86590>7.195 E F5(<)A F4 +<b58f22a3>A<6790>7.195 E(g)7.195 E F5<16>A F4(.\)>\011)A 7.196<cf67> +7.196 G<2267a3b51b69cf90a3b5>-7.196 E 7.196<90e8>7.196 G +<65b52d90699069b5>-7.196 E<6990fd093ecf67cf2db5>72 555 Q<b5a3>3.045 E +<cf67a3cf6969b567a3a309>3.045 E<6909>3.045 E(.g)3.045 E F5<16>A F4 +<b53ecf90a3b5>A F6(.)A F4<e409>5.795 E<659009>3.045 E F5<16>A F4<cffd09> +A F5<12>A F4<cf1ba309>A<6909>3.045 E(.g)3.045 E F5<16>A F4<b53e9069>A +<e86590>3.045 E F5(<)A F4<b58f>A F6(,)A F4 3.045<3e90>3.045 G<fdcf> +-3.045 E F5(B)A F4<22a3>A<cf2d09>3.044 E F3 .011(gr)3.044 G(ant)-.077 E +(ed)-.011 E F5<4216>72 568 Q F4<ea29b53e09a309>A<8f2e2d09>2.75 E F6(.)A +F4<e5b56569b5a3b5>5.5 E<2db57090>2.75 E<8f09>2.75 E<6790>2.75 E +<b5e8cfa3092d90>2.75 E<8f09>2.75 E<cf2de8>2.75 E F5<16>A F4 +<902d9069a3cf65092d90>A<e8b5>2.75 E(g)2.75 E F5<16>A F4<908f69cf1b>A +<690929cf69>2.75 E F6(:)A F3(fr)108 594 Q(om ON t)-.154 E 2.75(oO)-.044 +G 2.75(No)-2.75 G 2.75(ne)-2.75 G -.385(ve)-3.069 G(nt TIC).385 E 2.75 +(Kg)-.066 G -.066(ra)-2.739 G(nt).066 E(ed \(light_contr)-.011 E(oler) +-.154 E(.BLINKIN)-.748 E(G\))-.176 E -.209(ex)180 607 S(ecut)-.088 E +2.75(ep)-.011 G -.154(ro)-2.75 G(d_timer | pr).154 E(od_light_bulb;) +-.154 E F4(/.)72 646 Q F5(B)A F4<cf2d09>3.07 E<e865b5>3.07 E F5<3016>A +F4<902d09>A F6(,)A F4<2990>3.07 E F6(timer)3.071 E F4<67e8cf6509>3.071 E +<8f09>3.071 E<6509>3.071 E F5(0)A F4<b5a3cf>A<09>3.071 E F5(B)A F4<b5>A +F6(light_contr)3.071 E(oler)-.088 E F4<6990>3.071 E 3.071(\220>g)3.071 G +<2267a3b51b69cf90>-3.071 E F6(BLINKIN)3.071 E(G,)-.209 E F4 +<fd0946b5a3b5>3.071 E<e86590>72 659 Q F5(<)A F4<b58f22a3>A<691b2d09>2.75 +E<8f09>2.75 E<6790>2.75 E(g)2.75 E F5<16>A F4<2e29cf>A<cf>2.75 E F3 +-.209(ex)2.75 G(ecut)-.088 E 2.75(ep)-.011 G -.154(ro)-2.75 G(d_timer) +.154 E F4<691b2d09>2.75 E<8f09>2.75 E<6790>2.75 E<cffde822>2.75 E F5<16> +A F4<69cf>A F6(.)A/F7 8/NimbusRomNo9L-Regu@0 SF(3)1.6 -3.9 M F3(pr)94 +672 Q(od_timer)-.154 E F6(,)A F3(pr)A(od_light_bulb)-.154 E F6(,)A F3 +(pr)A(od_timer)-.154 E F4<cf>4.397 E F3(light)4.397 E F4<6709>4.397 E F5 +<0e>4.397 E F4(.i)A F5<4212>A F4<cfcf>A F6(,)A F4<29cf1ba3b5>4.396 E +<cf2de8>4.396 E F5<16>A F4<902d9069a309>A F5<12>A F4<cf1b>A<a3651b>4.396 +E F5(0)A F4<3e09>A<8f09>4.396 E F5(0)72 685 Q F4<228f90>A +<e865908fb567a3093e906909>7.714 E<b5a3>7.714 E<e865b5>7.714 E F5<1b>A F4 +<65092dcf67a309>A F6(.)A F4<9367cf29>10.464 E F5(B)A F4 7.714<cf3e>C +("ioi\317)-7.714 E F5<0e>7.714 E F4(.i)A F5<4212>A F4<cfcf>A<6790>7.714 +E(g")7.714 E F5(0)A F4<cf6509a3>A 7.714<cf67>7.714 G 7.715<90fd>-7.714 G +<09e8cf673e09a3>-7.715 E(>)7.715 E F5<1b>72 698 Q F4 +<90699065cf650969cf1b>A F6(xxxx_e)2.75 E(xter)-.385 E(.h)-.528 E F5<0e> +2.75 E F4<09ca>A F5<16>A F6(.)A F4<2fb5fdcf>2.75 E<e865cf2d9065>2.75 E +F5(0)2.75 E F4<cf>A F5<1b>2.75 E F4<90699065cf6509>A F5<16>A F6(:)A F3 +(#ifndef XXXX_EXTERN_H)72 724 Q 77.5 737 72 737 DL 78 737 72.5 737 DL +83.5 737 78 737 DL 89 737 83.5 737 DL 94.5 737 89 737 DL 100 737 94.5 +737 DL 105.5 737 100 737 DL 111 737 105.5 737 DL 116.5 737 111 737 DL +122 737 116.5 737 DL 127.5 737 122 737 DL 133 737 127.5 737 DL 138.5 737 +133 737 DL 144 737 138.5 737 DL/F8 9/NimbusRomNo9L-Regu@0 SF(3.)72 748 Q +/F9 9/NimbusRomNo9L-Regu@@2 SF<2fb53e09>4.5 E F8(,)A F9<2990>2.25 E +<a3b5fdcf>2.25 E<e865cf2d9065>2.25 E<2db57090>2.25 E<8f09>2.25 E/F10 9 +/NimbusRomNo9L-Regu@@3 SF(0)2.25 E F9<228f90>A<cf2de8>2.25 E F10<16>A F9 +<902d9069a3cf650969>A<6909>2.25 E/F11 9/NimbusRomNo9L-Medi@0 SF(C)2.25 E +F9<e8b58f>2.25 E F8 -.486(10)2.25 G F9<65908f09>2.736 E F8(,)A F9 2.25 +<90fd>2.25 G<09>-2.25 E F10(0)A F9<90>A F10<16>A F9<1bfd0969b5>A<b5a3> +2.25 E<093ea3b56509>2.25 E F8(.)A F2 2.5(-3-)297.67 778 S 0 Cg EP +%%Page: 3 4 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/NimbusRomNo9L-Regu@@2 SF<e509>72 24 Q/F1 10/NimbusRomNo9L-Regu@@3 +SF<16>A F0<cf69>A<1dcf2d90b569b53e>2.5 E F1<19>2.5 E/F2 10 +/NimbusRomNo9L-Regu@0 SF(.)A F1(")A F2 2.5(.8)C -.66(16)-3.14 G(35).66 E +F0<7665b590>109.09 E F1(B)A F0 2.5<a3e8>C<b5>-2.5 E F1(B)2.5 E F0 +<b52de8eaa3226569cf>A<67cf67a3902dcf>2.5 E<fd09>2.5 E<2ee865093e>2.5 E +F1<16>A F0<9069cf90>A<6909>2.5 E<65b5>2.5 E F1(0)A F0<b5a3cf>A .5 LW 77 +36 72 36 DL 80 36 75 36 DL 85 36 80 36 DL 90 36 85 36 DL 95 36 90 36 DL +100 36 95 36 DL 105 36 100 36 DL 110 36 105 36 DL 115 36 110 36 DL 120 +36 115 36 DL 125 36 120 36 DL 130 36 125 36 DL 135 36 130 36 DL 140 36 +135 36 DL 145 36 140 36 DL 150 36 145 36 DL 155 36 150 36 DL 160 36 155 +36 DL 165 36 160 36 DL 170 36 165 36 DL 175 36 170 36 DL 180 36 175 36 +DL 185 36 180 36 DL 190 36 185 36 DL 195 36 190 36 DL 200 36 195 36 DL +205 36 200 36 DL 210 36 205 36 DL 215 36 210 36 DL 220 36 215 36 DL 225 +36 220 36 DL 230 36 225 36 DL 235 36 230 36 DL 240 36 235 36 DL 245 36 +240 36 DL 250 36 245 36 DL 255 36 250 36 DL 260 36 255 36 DL 265 36 260 +36 DL 270 36 265 36 DL 275 36 270 36 DL 280 36 275 36 DL 285 36 280 36 +DL 290 36 285 36 DL 295 36 290 36 DL 300 36 295 36 DL 305 36 300 36 DL +310 36 305 36 DL 315 36 310 36 DL 320 36 315 36 DL 325 36 320 36 DL 330 +36 325 36 DL 335 36 330 36 DL 340 36 335 36 DL 345 36 340 36 DL 350 36 +345 36 DL 355 36 350 36 DL 360 36 355 36 DL 365 36 360 36 DL 370 36 365 +36 DL 375 36 370 36 DL 380 36 375 36 DL 385 36 380 36 DL 390 36 385 36 +DL 395 36 390 36 DL 400 36 395 36 DL 405 36 400 36 DL 410 36 405 36 DL +415 36 410 36 DL 420 36 415 36 DL 425 36 420 36 DL 430 36 425 36 DL 435 +36 430 36 DL 440 36 435 36 DL 445 36 440 36 DL 450 36 445 36 DL 455 36 +450 36 DL 460 36 455 36 DL 465 36 460 36 DL 470 36 465 36 DL 475 36 470 +36 DL 480 36 475 36 DL 485 36 480 36 DL 490 36 485 36 DL 495 36 490 36 +DL 500 36 495 36 DL 505 36 500 36 DL 510 36 505 36 DL 515 36 510 36 DL +520 36 515 36 DL 525 36 520 36 DL 530 36 525 36 DL 535 36 530 36 DL 540 +36 535 36 DL/F3 11/NimbusRomNo9L-Medi@0 SF +(#de\214ne XXXX_EXTERN_H XXXX_EXTERN_H)72 85 Q -.209(ex)72 111 S -.011 +(te).209 G -.088 .044(rn m).011 H(ac)-.044 E -2.618(hine_buf f)-.187 F +(er_t* light\(mac)-.319 E -2.618(hine_buf f)-.187 F(er_t *ar)-.319 E +(guments,mac)-.055 E -2.618(hine_buf f)-.187 F(er_t *in)-.319 E(put\);) +-.154 E -.209(ex)72 124 S -.011(te).209 G -.088 .044(rn m).011 H(ac) +-.044 E -2.618(hine_buf f)-.187 F(er_t* pr)-.319 E(od_light_bulb\(mac) +-.154 E -2.618(hine_buf f)-.187 F(er_t *ar)-.319 E(guments,mac)-.055 E +-2.618(hine_buf f)-.187 F(er_t *in)-.319 E(put\);)-.154 E -.209(ex)72 +137 S -.011(te).209 G -.088 .044(rn m).011 H(ac)-.044 E -2.618 +(hine_buf f)-.187 F(er_t* pr)-.319 E(od_light_contr)-.154 E(oler\(mac) +-.154 E -2.618(hine_buf f)-.187 F(er_t *ar)-.319 E(guments,mac)-.055 E +-2.618(hine_buf f)-.187 F(er_t *in)-.319 E(put\);)-.154 E -.209(ex)72 +150 S -.011(te).209 G -.088 .044(rn m).011 H(ac)-.044 E -2.618 +(hine_buf f)-.187 F(er_t* pr)-.319 E(od_timer\(mac)-.154 E -2.618 +(hine_buf f)-.187 F(er_t *ar)-.319 E(guments,mac)-.055 E -2.618 +(hine_buf f)-.187 F(er_t *in)-.319 E(put\);)-.154 E(#endif)72 176 Q/F4 +11/NimbusRomNo9L-Regu@@3 SF(&)72 228 Q/F5 11/NimbusRomNo9L-Regu@@2 SF +<a3b5>A 2.75<cf90>2.75 G<8f6909>-2.75 E<e865cf2d90656909>2.75 E<a31b> +2.75 E F4(<)A F5<6909>A<cf2de890>2.75 E F4<16>A F5<902d9069a309>A F4<12> +A F5<cf1b>A<fd09908f69b5>2.75 E(g)2.75 E F3(main)2.75 E F4<0e>2.75 E F5 +(.i)A F4<4212>A F5<cf1ba309>A/F6 11/NimbusRomNo9L-Regu@0 SF(:)A F3(mac) +72 254 Q -2.618(hine_buf f)-.187 F(er_t* light\(mac)-.319 E -2.618 +(hine_buf f)-.187 F(er_t *ar)-.319 E(guments,mac)-.055 E -2.618 +(hine_buf f)-.187 F(er_t *in)-.319 E(put\))-.154 E({)72 267 Q -2.684 +(pr intf\("light)108 280 R(%s0,ar)2.75 E -2.618(guments->buf f)-.055 F +(er\);)-.319 E -2.618 -.121(re t)108 293 T -2.706(ur n).121 F(NULL;)2.75 +E(})72 306 Q(mac)72 319 Q -2.618(hine_buf f)-.187 F(er_t* pr)-.319 E +(od_light_bulb\(mac)-.154 E -2.618(hine_buf f)-.187 F(er_t *ar)-.319 E +(guments,mac)-.055 E -2.618(hine_buf f)-.187 F(er_t *in)-.319 E(put\)) +-.154 E({)72 332 Q(push_e)108 345 Q -.385(ve)-.319 G(nt_t).385 E(o_mac) +-.044 E(hine\(light_bulb,light_bulb_EVENT_S)-.187 E(WIT)-.11 E -.022(CH) +-.187 G(_S).022 E -.506(TA)-.176 G(TE,NULL\);)-.143 E -2.618 -.121(re t) +108 358 T -2.706(ur n).121 F(NULL;)2.75 E(})72 371 Q(mac)72 384 Q -2.618 +(hine_buf f)-.187 F(er_t* pr)-.319 E(od_light_contr)-.154 E(oler\(mac) +-.154 E -2.618(hine_buf f)-.187 F(er_t *ar)-.319 E(guments,mac)-.055 E +-2.618(hine_buf f)-.187 F(er_t *in)-.319 E(put\))-.154 E({)72 397 Q +(push_e)108 410 Q -.385(ve)-.319 G(nt_t).385 E(o_mac)-.044 E +(hine\(light_contr)-.187 E(oler)-.154 E(,light_contr)-.737 E +(oler_EVENT_SIGN)-.154 E(AL,NULL\);)-.209 E -2.618 -.121(re t)108 423 T +-2.706(ur n).121 F(NULL;)2.75 E(})72 436 Q(mac)72 449 Q -2.618 +(hine_buf f)-.187 F(er_t* pr)-.319 E(od_timer\(mac)-.154 E -2.618 +(hine_buf f)-.187 F(er_t *ar)-.319 E(guments,mac)-.055 E -2.618 +(hine_buf f)-.187 F(er_t *in)-.319 E(put\))-.154 E({)72 462 Q(push_e)108 +475 Q -.385(ve)-.319 G(nt_t).385 E(o_mac)-.044 E(hine\(timer)-.187 E +(,timer_EVENT_TIC)-.737 E(K,NULL\);)-.066 E(sleep\(1\);)108 488 Q -2.618 +-.121(re t)108 501 T -2.706(ur n).121 F(NULL;)2.75 E(})72 514 Q +(int main\(\))72 527 Q({)72 540 Q(push_e)108 553 Q -.385(ve)-.319 G +(nt_t).385 E(o_mac)-.044 E(hine\(light_contr)-.187 E(oler)-.154 E +(,light_contr)-.737 E(oler_EVENT_S)-.154 E -.506(TA)-.176 G -.286(RT) +.506 G(_BLINKIN).286 E(G,NULL\);)-.176 E(push_e)108 566 Q -.385(ve)-.319 +G(nt_t).385 E(o_mac)-.044 E(hine\(timer)-.187 E(,timer_EVENT_S)-.737 E +-.506(TA)-.176 G -.286(RT).506 G(,NULL\);)-.407 E -2.618 -.121(re t)108 +579 T -2.706(ur n).121 F(0;)2.75 E(})72 592 Q F5<2fb53e09>74.75 618 Q +<69cf>2.75 E<8f093e09>2.75 E<cffd>2.75 E F4(<)A F5<b58f09>A F6(:)A F3 +(light on)72 631 Q(light of)72 644 Q(f).132 E(light on)72 657 Q +(light of)72 670 Q(f).132 E(light on)72 683 Q(light of)72 696 Q(f).132 E +(light on)72 709 Q(light of)72 722 Q(f).132 E(light on)72 735 Q(...)72 +748 Q(...)72 761 Q F2 2.5(-4-)297.67 778 S 0 Cg EP +%%Page: 4 5 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/NimbusRomNo9L-Regu@@2 SF<e509>72 24 Q/F1 10/NimbusRomNo9L-Regu@@3 +SF<16>A F0<cf69>A<1dcf2d90b569b53e>2.5 E F1<19>2.5 E/F2 10 +/NimbusRomNo9L-Regu@0 SF(.)A F1(")A F2 2.5(.8)C -.66(16)-3.14 G(35).66 E +F0<7665b590>109.09 E F1(B)A F0 2.5<a3e8>C<b5>-2.5 E F1(B)2.5 E F0 +<b52de8eaa3226569cf>A<67cf67a3902dcf>2.5 E<fd09>2.5 E<2ee865093e>2.5 E +F1<16>A F0<9069cf90>A<6909>2.5 E<65b5>2.5 E F1(0)A F0<b5a3cf>A .5 LW 77 +36 72 36 DL 80 36 75 36 DL 85 36 80 36 DL 90 36 85 36 DL 95 36 90 36 DL +100 36 95 36 DL 105 36 100 36 DL 110 36 105 36 DL 115 36 110 36 DL 120 +36 115 36 DL 125 36 120 36 DL 130 36 125 36 DL 135 36 130 36 DL 140 36 +135 36 DL 145 36 140 36 DL 150 36 145 36 DL 155 36 150 36 DL 160 36 155 +36 DL 165 36 160 36 DL 170 36 165 36 DL 175 36 170 36 DL 180 36 175 36 +DL 185 36 180 36 DL 190 36 185 36 DL 195 36 190 36 DL 200 36 195 36 DL +205 36 200 36 DL 210 36 205 36 DL 215 36 210 36 DL 220 36 215 36 DL 225 +36 220 36 DL 230 36 225 36 DL 235 36 230 36 DL 240 36 235 36 DL 245 36 +240 36 DL 250 36 245 36 DL 255 36 250 36 DL 260 36 255 36 DL 265 36 260 +36 DL 270 36 265 36 DL 275 36 270 36 DL 280 36 275 36 DL 285 36 280 36 +DL 290 36 285 36 DL 295 36 290 36 DL 300 36 295 36 DL 305 36 300 36 DL +310 36 305 36 DL 315 36 310 36 DL 320 36 315 36 DL 325 36 320 36 DL 330 +36 325 36 DL 335 36 330 36 DL 340 36 335 36 DL 345 36 340 36 DL 350 36 +345 36 DL 355 36 350 36 DL 360 36 355 36 DL 365 36 360 36 DL 370 36 365 +36 DL 375 36 370 36 DL 380 36 375 36 DL 385 36 380 36 DL 390 36 385 36 +DL 395 36 390 36 DL 400 36 395 36 DL 405 36 400 36 DL 410 36 405 36 DL +415 36 410 36 DL 420 36 415 36 DL 425 36 420 36 DL 430 36 425 36 DL 435 +36 430 36 DL 440 36 435 36 DL 445 36 440 36 DL 450 36 445 36 DL 455 36 +450 36 DL 460 36 455 36 DL 465 36 460 36 DL 470 36 465 36 DL 475 36 470 +36 DL 480 36 475 36 DL 485 36 480 36 DL 490 36 485 36 DL 495 36 490 36 +DL 500 36 495 36 DL 505 36 500 36 DL 510 36 505 36 DL 515 36 510 36 DL +520 36 515 36 DL 525 36 520 36 DL 530 36 525 36 DL 535 36 530 36 DL 540 +36 535 36 DL/F3 11/NimbusRomNo9L-Medi@0 SF(2.2.)74.75 100 Q/F4 11 +/NimbusRomNo9L-Medi@@1 SF<19>5.5 E/F5 11/NimbusRomNo9L-Medi@@0 SF +<b5652d09>A F4<16>A F5<69b5>A<b5e8cf670969cf90>2.75 E<6909>2.75 E +<90fdcf>2.75 E F4(B)A F5<09>A/F6 11/NimbusRomNo9L-Regu@@2 SF(\035"g)72 +113 Q<fd09a3222d699069cfa390>3.673 E<8f2e2dcf>3.673 E 3.673<cf67>3.673 G +<cf2d3eb5>-3.673 E/F7 11/NimbusRomNo9L-Regu@@3 SF<16>A F6 3.673<cfb5>C +F7(0)-3.673 E F6<b5fd690929093e092d>A<8f2e2dcf>3.673 E 3.673<cf67>3.673 +G<cf2d3eb5>-3.673 E F7<16>A F6<cf>A/F8 11/NimbusRomNo9L-Regu@0 SF(,)A F7 +(B)3.673 E F6<b5cfa3b5>A<a3651b>3.672 E F7(0)A F6<3e09>A<8f09>3.672 E +<6790>3.672 E<cf69a39065e86590a3cf6509a3>3.672 E<8fcf6590>72 126 Q F7(B) +A F6<a369b5>A F8(.)A F3(2.2.)74.75 152 Q -.187(1.)-.231 G F5(ve\265) +5.687 E F4<1b>A F5<65092d09>A F6<e865b5>116 165 Q F7<1b>A F6<65092d09>A +F8(:)2.75 E F6<2d096fcf6909>2.75 E F8([)2.75 E F6<e865b5>2.75 E F7<1b>A +F6<65092d09>A F8(])2.75 E F6(ve\265)72 178 Q F7<1b>A F6<65092d09a309>A +2.75<90e8>2.75 G<b565908fcf>-2.75 E F7<12>A F6 2.75<09b5>C 2.75<a32d> +-2.75 G<096fcf69cf>-2.75 E F8(.)A F6<93671b>2.75 E F7(B)A F6 2.75<092d>C +<096fcf6909>-2.75 E<cf2d09>2.75 E(.i\317)2.75 E F7(B)A F6<09>A F7<16>A +F6<69b5>A<cf2d90>2.75 E F8(.)A F3(2.2.2.)74.75 204 Q F5<61096fcf6909>5.5 +E F6<2d096fcf6909>116 217 Q F8(:)2.75 E/F9 11/NimbusRomNo9L-MediItal@0 +SF(mac)2.75 E(hine)-.22 E F6<cf2d90>2.75 E F9([)2.75 E F6 +<3e22a365906f6909>2.75 E<290967a3>2.75 E<6909>2.75 E<2d096fcf6909a309> +2.75 E F9 2.75(];)5.5 G F6<3e22a365906f6909>116 230 Q<290967a3>2.75 E +<6909>2.75 E<2d096fcf6909a309>2.75 E F8(:)2.75 E F9 -2.508 -.066(st a) +10.262 H -.022(te).066 G 2.75(s[).022 G F6<e8b565908fcf>A F7<12>A F6 +2.75<09b5>C 2.75<a367>-2.75 G<2267a3b51b69cf1b>-2.75 E F9 2.75(];)5.5 G +F8([)2.75 E F6<3e22a365906f6909>2.75 E<290967a3>2.75 E<6909>2.75 E +<2d096fcf6909a309>2.75 E F8(])2.75 E F9 -.033(ev)260 243 S(ents [)-.275 +E F6<e8b565908fcf>2.75 E F7<12>A F6 2.75<09b5>C 2.75<a367>-2.75 G(") +-2.75 E F7(0)A F6<cfa3cf1b>A F9 2.75(];)5.5 G F8([)2.75 E F6 +<3e22a365906f6909>2.75 E<290967a3>2.75 E<6909>2.75 E<2d096fcf6909a309> +2.75 E F8(])2.75 E F9(tr)260 256 Q(ansitions [)-.143 E F6<e8b565908fcf> +2.75 E F7<12>A F6 2.75<09b5>C 2.75<a3e8>-2.75 G<6590>-2.75 E F7(<)A F6 +<b58fcf>A F9 2.75(];)5.5 G F8([)2.75 E F6<3e22a365906f6909>2.75 E +<290967a3>2.75 E<6909>2.75 E<2d096fcf6909a309>2.75 E F8(])2.75 E F9 +-2.508 -.066(st a)260 269 T .132(rt).066 G(ing on)-.132 E F6<cf2d90>5.5 +E<6909>2.75 E<672267a3b51b69cf90>2.75 E F9(;)2.75 E F8([)2.75 E F6 +<3e22a365906f6909>2.75 E<290967a3>2.75 E<6909>2.75 E<2d096fcf6909a309> +2.75 E F8(])2.75 E F6 2.997<9390>72 295 S<8f6909>-2.997 E<2d096fcf6909> +2.997 E<2db57090>2.998 E<8f09>2.998 E<6790>2.998 E(ge\220Fi\220)2.998 E +<67092db5>2.998 E(>\220\217i"p)2.998 E<8f90>2.998 E F7<4216>A F6<096509> +A F7<12>A F6<cf1b>A<6909>2.998 E<672267a3b51b69cf1ba309>2.998 E F8(,)A +F6(g")2.998 E F7(0)A F6<cfa3cf1ba309>A F8(,)A F6<e86590>2.998 E F7(<)A +F6<b58fcfa390>A<cf>2.998 E<e8b567b5293e096990>72 308 Q<6909>5.293 E +<67a30965a3cf650946b5>5.293 E<672267a3b51b69cf90>5.293 E F8(.)A F6<4d90> +8.043 E F7<4216>A F6<096509>A F7<12>A F6<cf1ba309>A<6909>5.293 E +<67a30965a3cf650946b5>5.292 E<672267a3b51b69cf90>5.292 E<a3651b>5.292 E +F7(0)A F6<3e09>A<8f09>5.292 E 5.292<9067>5.292 G F7<16>-5.292 E F6<908f> +A<8f90>72 321 Q F7<4216>A F6<096509>A F7<12>A F6<cf1ba309>A<6909>5.089 E +<672267a3b51b69cf1ba309>5.089 E F8(.)A F6<2fb5>5.089 E<a3651b>5.089 E F7 +(0)A F6<3e09>A<8f09>5.089 E 5.09<9067>5.089 G<65908f>-5.09 E<8f90>5.09 E +F7<4216>A F6<0965cf650969cfa390>A<672267a3b51b69cf1b>5.09 E F8(.)A F6 +<4d90>7.84 E F7<4216>A F6<096509>A F7<12>A F6<cf1ba309>A<6909>5.09 E +<e86590>72 334 Q F7(<)A F6<b58fcfa390>A<a3651b>4.908 E F7(0)A F6<3e09>A +<8f09>4.908 E 4.908<9067>4.908 G F7<16>-4.908 E F6<908f>A<8f90>4.907 E +F7<4216>A F6<096509>A F7<12>A F6<cfcfa390>A<6909>4.907 E +<672267a3b51b69cf1ba309>4.907 E 4.907<cf69>4.907 G 4.907<0967>-4.907 G +(")-4.907 E F7(0)A F6<cfa3cf1ba309>A F8(.)A F6<1d65908f>7.657 E<8f90> +4.907 E F7<4216>A F6<0965cf650969cfa390>A<672267a3b51b69cf1b>72 347 Q +5.616<cf67>5.616 G(")-5.616 E F7(0)A F6<cfa3cf1b>A<6990>5.616 E<a3651b> +5.616 E F7(0)A F6<3e09>A<8f09>5.616 E<cf2d09>5.616 E<e8b53ea309651b46cf> +5.616 E<6790>5.616 E F8(.)A F6<1d65908f>8.366 E<e86590>5.616 E F7(<)A F6 +<b58fcfa390>A<6990>5.616 E<a3651b>5.616 E F7(0)A F6<3e09>A<8f09>5.617 E +<cf2d09>5.617 E<8f3e90>5.617 E<6509fd>72 360 Q F7<16>A F6<cf2969cf>A F8 +(,)A F7(B)2.75 E F6<b5cfa3b5>A<cffd>2.75 E F7<16>A F6<cffd09a3>A<b5a3> +2.75 E<908f69b5>2.75 E<672267a3b51b69cf90>2.75 E 2.75<cfcf>2.75 G +<2d09a3>-2.75 E<fd09>2.75 E<90a3cf>2.75 E F7(B)A F6<90a3>A<908f69b5>2.75 +E(g")2.75 E F7(0)A F6<cfa3cf90>A F8(.)A F3(2.2.3.)74.75 386 Q F5(ve\220) +5.5 E F4(<)A F5<b58f>A F6<e86590>116 399 Q F7(<)A F6<b58f>A F8(:)2.75 E +F9(fr)5.5 E(om)-.165 E F6<cf2d90>5.5 E F8(-)A F6<6909>A F8(-)A F6 +<672267a3b51b69cf90>A F9 .011(to)190.75 412 S F6<cf2d90>5.489 E F8(-)A +F6<6909>A F8(-)A F6<672267a3b51b69cf90>A F9(on)5.5 E F6<cf2d90>5.5 E F8 +(-)A F6<6909>A F8(-)A F6(g")A F7(0)A F6<cfa3cf90>A F8([)2.75 E F6 +<b5e8096f>2.75 E F7(B)A F6<09>A F8(-)A F6<6909>A F8(-)A F6<e86590>A F7 +(<)A F6<b58f09>A F8(])2.75 E F9(;)2.75 E F6<b5e8096f>116 425 Q F7(B)A F6 +<09>A F8(-)A F6<6909>A F8(-)A F6<e86590>A F7(<)A F6<b58f09>A F8 2.75(:[) +2.75 G F9 .033(gr)2.75 G(ant)-.176 E(ed)-.022 E F6<cffd6509fd>5.5 E F8 +2.75(][)2.75 G F6(.g)A F7<16>A F6<b53e69b5>A F8(-)A F6<cffde822>A F7<16> +A F6<699069cf90>A F8(])2.75 E F6(.g)116 438 Q F7<16>A F6<b53e69b5>A F8 +(-)A F6<cffde822>A F7<16>A F6<699069cf90>A F8(:)2.75 E F9(if)5.5 E F6 +<cffd6509fd>5.5 E(.g)2.75 E F7<16>A F6<b53e69b5>A F8(-)A F6<cffde822>A +F7<16>A F6<699069cf90>A F8([)5.5 E F9(else)5.5 E F6(.g)5.5 E F7<16>A F6 +<b53e69b5>A F8(-)A F6<cffde822>A F7<16>A F6<699069cf90>A F8(])2.75 E F6 +(.g)116 451 Q F7<16>A F6<b53e69b5>A F8(-)A F6<cffde822>A F7<16>A F6 +<699069cf90>A F8(:)2.75 E F9 -2.574 -.165(ex e)5.5 H(cut).165 E(e)-.022 +E F6<b5e8096f>5.5 E F7(B)A F6 2.75<0969>C 2.75<09cf>-2.75 G<fde822>-2.75 +E F7<16>A F6<699069cf90a3b5>A<b5e8096f>116 464 Q F7(B)A F6<09>A F8(-)A +F6<6909>A F8(-)A F6<cffde822>A F7<16>A F6<699069cf90a3b5>A F8(:)2.75 E +F6<cf2d90>2.75 E F8(-)A F6<6909>A F8(-)A F6(>"ioi\011)A F8(-)A F7<0e>A +F6(.i)A F7<4212>A F6<cf1b>A F9(")2.75 E F6<67cf2d3eb5>A F7<16>A F6<9069> +A F8(-)A F6<69cffd>A F9(")A F8([)2.75 E F9(|)5.5 E F6<b5e8096f>5.5 E F7 +(B)A F6<09>A F8(-)A F6<6909>A F8(-)A F6<cffde822>A F7<16>A F6 +<699069cf90a3b5>A F8(])2.75 E F6<aa>72 490 Q F7(B)A F6 2.814<b5cf>C +<fd6509fd22a3>-2.814 E(g)2.814 E F7<16>A F6<908f>A F9 .033(gr)2.814 G +(ant)-.176 E(ed)-.022 E F6 2.814<90cf>2.814 G<67a3cf6909>-2.814 E<a3b5> +2.814 E<e86590>2.813 E F7(<)A F6<b58f22a3>A<6790>2.813 E<659009>2.813 E +F7<16>A F6<cffdcf6509>A<cf>2.813 E F7(B)2.813 E F6<b52d09698fcfa390>A +2.813(>.)2.813 G(g)-2.813 E F7<16>A F6<b53e69b5a3b5>A<cffde822>2.813 E +F7<16>A F6<699069cf90>A<6790>2.813 E<cffde822>72 503 Q F7<16>A F6 +<691b3e09a3>A<67e8651b2db5>4.7 E<67902d0969a3cf>4.7 E F7(B)A F6<09a309>A +F8(,)A F6<cf69092990>4.7 E<e86590>4.701 E F7(<)A F6<b58f22a3>A<6990> +4.701 E<6790>4.701 E<cffde822>4.701 E F7<16>A F6<691b3e09>A 4.701<cfb5> +4.701 G<e8096f>-4.701 E F7(B)A F6<09a309>A<6909>4.701 E<e86590>4.701 E +F7(<)A F6<b58f22a3>A<6990>4.701 E<6790>4.701 E<cffde822>72 516 Q F7<16>A +F6<691b3e09>A F8(.)A F6<aa>5.826 E F7(B)A F6 3.076<b5cf>C<fd6509fd22a3> +-3.076 E(g)3.076 E F7<16>A F6<908f>A F9(if)3.076 E F6 3.076<90cf>3.076 G +<67a3cf6909>-3.076 E<a3b5>3.076 E(.g)3.076 E F7<16>A F6<b53e69b5a3b5>A +<cffde822>3.076 E F7<16>A F6<699069cf90>A(g)3.075 E F7<16>A F6<908f>A +<cffd6509fd22a3>3.075 E<6790>3.075 E<cffde822>3.075 E F7<16>A F6 +<691b3e09>A F8(,)A F6<cf69092990>3.075 E F8(,)A F6<09>72 529 Q F7(B)A F6 +3.601<b5cf>C<2d09>-3.601 E F9(else)3.601 E F6<6722b5a33e90a367a33e0946> +3.601 E<6909>3.601 E F9(if)3.601 E F8(-)A F6 3.601<09a3>C 3.601<b52e> +-3.601 G(g)-3.601 E F7<16>A F6<b53e69b5a3b5>A<2efde822>3.601 E F7<16>A +F6<699069cf90>A(g)3.601 E F7<16>A F6<908f>A F9(else)3.601 E F6<6790> +3.602 E<cffde822>3.602 E F7<16>A F6<691b3e09>A F8(.)A F6<aa>6.352 E F7 +(B)A F6 3.602<b52e>C(g)-3.602 E F7<16>A F6<b53e69b5a3b5>A<cffde822>72 +542 Q F7<16>A F6<699069cf90>A 3.011<90b5>3.011 G 3.011<a3a3>-3.011 G +<cfe809>-3.011 E<fd09e8b5293e0946>3.011 E(g)3.011 E F9 -2.574 -.165 +(ex e)3.011 H(cut).165 E(e)-.022 E F6<a3b5>3.011 E<3e22696f69cfa390> +3.011 E F7<0e>3.011 E F6(.i)A F7<4212>A F6<cfcf>A<6790>3.011 E<cffde822> +3.011 E F7<16>A F6<691b3e09a3>A 3.011(>e)3.011 G<908f>-3.011 E<6909> +3.011 E<67659046096990>3.01 E F7(B)3.01 E F6<09a3b5>A<cffd>72 555 Q F7 +(<)A F6<b58f22a3>A<6909>2.75 E(>g\033)2.75 E F7(B)A F6 2.75<0967>C 2.75 +<90e8>-2.75 G<b58f093e09>-2.75 E<6909>2.75 E(g)2.75 E F7<16>A F6 +<908f3e094609a309>A F8(.)A F6<5bfd>2.75 E F7(<)A F6<b58f22a3>A<6909>2.75 +E<e8b567>2.75 E F7<16>A F6<908f6909a309>A<cffde822>2.75 E F7<16>A F6 +<69906909>A F7<0e>2.75 E F6(.i)A F7<4212>A F6<cf1b>A<6790>2.75 E<cffd> +2.75 E F7(<)A F6(>"e)A F7<16>A F6<1b>A F8(.)A F3(2.2.4.)74.75 581 Q F5 +<5bfd6509fd>5.5 E F6<cffd6509fd>116 594 Q F8(:)2.75 E F6<cffd6509fd>2.75 +E F8(-)A F6<cf>A F7<16>A F6<cf>A<cffd6509fd>116 607 Q F8(-)A F6<cf>A F7 +<16>A F6<cf>A F8(:)2.75 E F6<cffd6509fd>2.75 E F8(-)A F6<cf>A F8([)2.75 +E F9(||)2.75 E F6<cffd6509fd>5.5 E F8(-)A F6<cf>A F7<16>A F6<cf>A F8(]) +2.75 E F6<cffd6509fd>116 620 Q F8(-)A F6<cf>A F8(:)2.75 E F6<cffd6509fd> +2.75 E F8(-)A F6<6990>A F8([)2.75 E F9(&&)2.75 E F6<cffd6509fd>5.5 E F8 +(-)A F6<cf>A F8(])2.75 E F6<cffd6509fd>116 633 Q F8(-)A F6<6990>A F8 +2.75(:[)2.75 G F9(!)-2.75 E F8(])A F7(0)A F6<09fdb53e>A F8(-)A F6 +<cffd6509fd>A F7(0)116 646 Q F6<09fdb53e>A F8(-)A F6<cffd6509fd>A F8(:) +2.75 E F6<cf2d90>2.75 E F8(-)A F6<6909>A F8(-)A F6<2d096fcf6909>A F9(.)A +F6<cf2d90>A F8(-)A F6<6909>A F8(-)A F6<672267a3b51b69cf90>A F8(|)2.75 E +F9(\()2.75 E F6<cffd6509fd>A F9(\))A F6<5bfd6509fd>72 672 Q<2db57090> +2.767 E<8f09>2.767 E<6790>2.767 E<b5>2.767 E F7<12>A F6<9069cf>A<8fb5> +2.767 E<cf67a3cf6909>2.768 E<cf>2.768 E F7<16>A F6<cf>A F7<16>2.768 E F6 +("p\011)A F8(.)A F6<87b5>5.518 E F7<1b>A F6<cf299067>A F7(B)A F6<cfa390> +A<b5e8906509a3b565cf>2.768 E<cf2d09a3>2.768 E<b5>2.768 E F7(0)A F6 +<cf2909ca6909a309>A<67902d0969a3cf>2.768 E F7(B)A F6<09>A F8(.)A F6<93> +5.518 E F7(0)72 685 Q F6<09fdb53ecf1b>A<cffd6509fd>4.779 E 4.779<90e8> +4.779 G<b5fd3eb5>-4.779 E F7<16>A F6<9069b5>A<8f09>4.779 E<6790>4.779 E +<e8b567b5293e09a3>4.779 E<672267a3b51b69cf1b>4.779 E<6909>4.778 E +(\217e.)4.778 E F7<1b>A F6 4.778<cf2d>C<096fcf69cf>-4.778 E F8(,)A F6 +<69b5>4.778 E<6990>4.778 E 4.778<90e8>4.778 G<b5fd3eb5>-4.778 E F7<16>A +F6<9069b5>A<8f09>4.778 E<6790>4.778 E<e8b567b5293e09a3>72 698 Q +<672267a3b51b69cf1b>2.764 E<6909>2.764 E<2d096fcf6909a309>2.764 E F8(,)A +F6(>)2.764 E F7(B)2.764 E F6<b51ba3b5>A<6790>2.764 E<69092dcf6509>2.764 +E<cffd6509fd22a3>2.765 E F8(.)A F6<2f90fdcf>2.765 E +<e8b567b5293e0969cf1b>2.765 E<6790>2.765 E<b5>2.765 E F7<12>A F6 +<90691b3e09a3>A<8fb5>2.765 E<cf67a3cf6909>2.765 E<09>72 711 Q F7(B)A F6 +4.694<b5e8>C<b567b529906909a309>-4.694 E<2d096fcf6909>4.694 E 4.693 +<90fd>4.693 G<0990>-4.693 E F7<16>A F6 4.693<09e8>C<b567b5299069b5a3b5> +-4.693 E<672267a3b51b69cf90>4.693 E F8(.)A F6<61b5>7.443 E F7<1b>A F6 +<09a3>A<8f09>4.693 E<6790>4.693 E<e8b567b5293e09a3>4.693 E<cf2d906909> +4.693 E<6909>4.693 E<2d096fcf69cf>4.693 E F8(,)A F7(B)72 724 Q F6 +<b5cfa3b5>A<6709>3.149 E<8f90>3.149 E F7<4216>A F6<0965cf650969cf>A(g) +3.149 E F7<16>A F6<908f>A<6790>3.149 E F7<1b>A F6<096f6909a309>A F8(,)A +F6<69b5>3.149 E<a390>3.149 E<a3651b>3.149 E F7(0)A F6<3e09>A<8f09>3.149 +E<6722469067a33e2e3e09a3>3.149 E F8(.)A F6<2fb53e09>3.149 E<3e0970cf> +3.149 E 3.15<cffd>3.15 G 3.15<0967>-3.15 G<2267a3b51b69cf1ba309>-3.15 E +F8(,)A F6<a390>3.15 E<a3651b>72 737 Q F7(0)A F6<3e09>A(g"F\265)2.75 E +2.75<cf8f>2.75 G 2.75<09e8>-2.75 G<65cf69098f>-2.75 E F7<16>A F6 +<907009a3>A<6909>2.75 E<e8b567b529906909a309>2.75 E<2d096fcf6909>2.75 E +F8(.)A F2 2.5(-5-)297.67 778 S 0 Cg EP +%%Page: 5 6 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/NimbusRomNo9L-Regu@@2 SF<e509>72 24 Q/F1 10/NimbusRomNo9L-Regu@@3 +SF<16>A F0<cf69>A<1dcf2d90b569b53e>2.5 E F1<19>2.5 E/F2 10 +/NimbusRomNo9L-Regu@0 SF(.)A F1(")A F2 2.5(.8)C -.66(16)-3.14 G(35).66 E +F0<7665b590>109.09 E F1(B)A F0 2.5<a3e8>C<b5>-2.5 E F1(B)2.5 E F0 +<b52de8eaa3226569cf>A<67cf67a3902dcf>2.5 E<fd09>2.5 E<2ee865093e>2.5 E +F1<16>A F0<9069cf90>A<6909>2.5 E<65b5>2.5 E F1(0)A F0<b5a3cf>A .5 LW 77 +36 72 36 DL 80 36 75 36 DL 85 36 80 36 DL 90 36 85 36 DL 95 36 90 36 DL +100 36 95 36 DL 105 36 100 36 DL 110 36 105 36 DL 115 36 110 36 DL 120 +36 115 36 DL 125 36 120 36 DL 130 36 125 36 DL 135 36 130 36 DL 140 36 +135 36 DL 145 36 140 36 DL 150 36 145 36 DL 155 36 150 36 DL 160 36 155 +36 DL 165 36 160 36 DL 170 36 165 36 DL 175 36 170 36 DL 180 36 175 36 +DL 185 36 180 36 DL 190 36 185 36 DL 195 36 190 36 DL 200 36 195 36 DL +205 36 200 36 DL 210 36 205 36 DL 215 36 210 36 DL 220 36 215 36 DL 225 +36 220 36 DL 230 36 225 36 DL 235 36 230 36 DL 240 36 235 36 DL 245 36 +240 36 DL 250 36 245 36 DL 255 36 250 36 DL 260 36 255 36 DL 265 36 260 +36 DL 270 36 265 36 DL 275 36 270 36 DL 280 36 275 36 DL 285 36 280 36 +DL 290 36 285 36 DL 295 36 290 36 DL 300 36 295 36 DL 305 36 300 36 DL +310 36 305 36 DL 315 36 310 36 DL 320 36 315 36 DL 325 36 320 36 DL 330 +36 325 36 DL 335 36 330 36 DL 340 36 335 36 DL 345 36 340 36 DL 350 36 +345 36 DL 355 36 350 36 DL 360 36 355 36 DL 365 36 360 36 DL 370 36 365 +36 DL 375 36 370 36 DL 380 36 375 36 DL 385 36 380 36 DL 390 36 385 36 +DL 395 36 390 36 DL 400 36 395 36 DL 405 36 400 36 DL 410 36 405 36 DL +415 36 410 36 DL 420 36 415 36 DL 425 36 420 36 DL 430 36 425 36 DL 435 +36 430 36 DL 440 36 435 36 DL 445 36 440 36 DL 450 36 445 36 DL 455 36 +450 36 DL 460 36 455 36 DL 465 36 460 36 DL 470 36 465 36 DL 475 36 470 +36 DL 480 36 475 36 DL 485 36 480 36 DL 490 36 485 36 DL 495 36 490 36 +DL 500 36 495 36 DL 505 36 500 36 DL 510 36 505 36 DL 515 36 510 36 DL +520 36 515 36 DL 525 36 520 36 DL 530 36 525 36 DL 535 36 530 36 DL 540 +36 535 36 DL/F3 11/NimbusRomNo9L-Medi@0 SF(3.)74.75 61 Q/F4 11 +/NimbusRomNo9L-Medi@@0 SF<4d90a309ca>5.5 E/F5 11/NimbusRomNo9L-Medi@@1 +SF<16>A F4 2.75<cf69>C 2.75<09cf>-2.75 G<2de8>-2.75 E F5<16>A F4 +<902d9069a309>A F5<12>A F4<cf1ba309>A/F6 11/NimbusRomNo9L-Regu@@2 SF +<e409>72 74 Q<8f09>5.161 E<6790>5.162 E<659009>5.162 E/F7 11 +/NimbusRomNo9L-Regu@@3 SF<16>A F6<cffdcf6509>A<b5>5.162 E F7(0)A F6 +<2d906909>A<6909>5.162 E<cf69>5.162 E F7<0e>A F6<b5652d09>A F7<12>A F6 +<cf1b>A<2d90708f2e>5.162 E F7<1b>5.162 E F6<90699065cf650969cf1b>A F7(B) +5.162 E F6<b58f>A 5.162<cf69>5.162 G<09e8cf670969cf1b>-5.162 E/F8 11 +/NimbusRomNo9L-Regu@0 SF(,)A F6 5.162<908f>5.162 G<90>-5.162 E F7<0e>A +F6<cf69cf65096909>A(g\243e.)72 87 Q F7(B)A F6<a32e6509>A F3(mac)6.056 E +-2.618(hine_buf f)-.187 F(er_t)-.319 E F8(,)A F6(>)6.056 E F7(B)6.056 E +F6<b51ba3b5>A<6790>6.056 E<fd09e8cf673e09a3>6.056 E<8f096969cfa390>6.056 +E 6.056<cfa3>6.056 G<90>-6.056 E F7(<)A F6<69cf1ba3>A<6509fd2d9065>6.056 +E F8(.)A F6<e590699065cf6509a3>8.806 E<6790>6.056 E<cf>6.055 E<691b>72 +100 Q F7(B)A F6<b5>A F7<1642>A F6 6.552<b5e8>C<b52db54669cf>-6.552 E F7 +<0e>6.552 E F6(.i)A F7<4212>A F6<cfcf>A F8(,)A F7(B)6.552 E F6<b5cfa3b5> +A(.)6.553 E F7<16>A F6<9067691b3e09a3>A<6509>6.553 E F7(0)A F6 +<b5a309a309>A 6.553<67a3>6.553 G<09>-6.553 E F7(B)A F6<cf3e09>A(g\243e.) +6.553 E F7(B)A F6<a32e65cf>A F8(.)A F6<e409>9.303 E<8f09>6.553 E<6790> +6.553 E<fd09e809fdcf>6.553 E<673eb5ca67a33eb5a3b5>72 113 Q F8(-)4.336 E +F7(B)4.336 E F6<b52d09698fcfa390>A<6909>4.335 E<e86590>4.335 E F7(<)A F6 +<b58f22a3>A<8f09>4.335 E<6790>4.335 E<cffde822>4.335 E F7<16>A F6 +<691ba3>A<e865908fcf>4.335 E<672267a3b51b69cf90a3b5>4.335 E<8f09>4.335 E +<6790>4.335 E<672d9069cf>4.335 E F8(,)A F6<6790>4.335 E<cffde8b5>4.335 E +F7<16>A F6<fd3e09>A<b5e8096f>72 126 Q F7(B)A F6<09>A F8(,)A F6(>)2.75 E +F7(B)2.75 E F6<b51ba3b5>A<6790>2.75 E<fd09e8cf673e09a3>2.75 E F3(4.) +74.75 152 Q F4<bfe8cf670969cf90>5.5 E<6909>2.75 E F5(B)2.75 E F4 +<b52d09698f69cfa390>A<0965>2.75 E F5<1b>A F4<2e2d9069a3cf>A F6([-\350)72 +165 Q F7<16>A F6<902d9069a309>A F7<12>A F6<cf1ba309>A<6909>2.75 E +<a3b5fdcf>2.75 E<90fdcf>2.75 E F7(B)A F6<e865908f098f906909>2.75 E<b5a3> +2.75 E<093ea3b56509>2.75 E<e865cf902d09>2.75 E(g)2.75 E F7<16>A F6 +<908f69cfa390>A<0965>2.75 E F7<1b>A F6<2e2d9069a3cf>A F8(.)A F3 -2.684 +(--pr int-t)72 191 R(ok)-.044 E(ens)-.363 E F6<5bfd3e90708f09>74.75 204 +Q<6509fde8b5fd6909a3cfa390>2.75 E F7<16>2.75 E F6<90>A F7(B)A F6 +<67902dcf>A F3 -2.684(--pr int-as)72 217 R(t)-.077 E F6<5bfd3e90708f09> +74.75 230 Q<6509fde8b5fd6909a3cfa390>2.75 E(g\243e.)2.75 E F7(B)A F6 +<a32e65cf>A 2.75<3ea3>2.75 G<90>-2.75 E F7(B)A F6<67a309>A F8 2.75(.\()C +F6<aa>A F7(0)A F6<67a36509>A F7(B)A F6<a369b5a3b5>A<67cf69a309>2.75 E F7 +(B)A F6<a3cf2969b5>A<8f22653eb5>2.75 E F8(\))2.75 E F3(-o)72 243 Q F4 +<cf2d90>2.75 E F3(-)A F4<6909>A F3(-)A F5<0e>A F4<09ca>A F5<16>A F3 2.75 +(|-)2.75 G(-output)-2.75 E F4<cf2d90>2.75 E F3(-)A F4<6909>A F3(-)A F5 +<0e>A F4<09ca>A F5<16>A F6<76b567b5293e09>74.75 256 Q<e86590>2.75 E F7 +<0e>A F6<cf>A F7(B)A F6(g"\243)A<6909>2.75 E F7<1b>2.75 E F6 +<90699065cf650969cfa390>A F7<0e>2.75 E F6<09ca>A F7<16>A F6<b53e90>A F8 +(.)A F7(")2.75 E F6<09e865cf2d9065>A F3(xxxx.h xxxx.c xxxx_e)2.75 E(xt) +-.209 E -2.706(er nal.h)-.011 F F8(.)A F3(--e)72 269 Q(xt)-.209 E -2.706 +(er n-mut)-.011 F -.209(ex)-.011 G F6<4db5>77.113 282 Q F7(0)A F6 +<093e1b>A<2d2ea390>5.113 E F7(B)A F6 5.113<67e8>C<65908fcf>-5.113 E +5.114<cf67>5.114 G F7<16>-5.114 E F6<908f>A<e8b58f093e096990a3b5>5.114 E +<6909>5.114 E(g")5.114 E F7(0)A F6<cfa3cf90>A F8(.)A F6<2fb5fdcf>5.114 E +<2d2ea390>5.114 E F7(B)A F6 5.114<67a3>C<651b>-5.114 E F7(0)A F6<3e09>A +<8f09>5.114 E<6790>5.114 E<cf2de8>5.114 E F7<16>A F6<902d9069a3cf6509>A +(>"ioi\265)72 295 Q F8(.)A F3(--e)72 308 Q(xt)-.209 E -2.706(er n-q) +-.011 F(ueue)-.165 E F6<4d093e09>76.136 321 Q<3e22fd2db57069b567a3>4.136 +E<6909>4.136 E<e865b5>4.136 E F7<1b>A F6<65092dcf67a309>A<8f09>4.136 E +<8f098f90>4.136 E<67b5>4.135 E F7(0)A F6<67a33e906909>A<cf2de8>4.135 E +F7<16>A F6<902d9069a309>A F7<12>A F6<cf1b>A<6909>4.135 E<b5e8096f>4.135 +E F7(B)A F6<09a309>A<cffde8b5>4.135 E F7<16>A F6<fd3e096909>A<e865cf> +4.135 E<fd098f226570096990a3b5>72 334 Q<6909>2.75 E(g")2.75 E F7(0)A F6 +<cfa3cf1b>A F8(.)A F3(--e)72 347 Q(xt)-.209 E -2.706(er n-buf)-.011 F +-.319(fe).132 G(r).319 E F6<4d093e09>75.7 360 Q<3e22fd2db57069b567a3>3.7 +E<6909>3.7 E<e865b5>3.7 E F7<1b>A F6<65092dcf67a309>A<8f09>3.7 E +<8f098f90>3.7 E<67b5>3.7 E F7(0)A F6<67a33e906909>A<cf2de8>3.7 E F7<16>A +F6<902d9069a309>A F7<12>A F6<cf1b>A<6909>3.7 E(g\243e.)3.7 E F7(B)A F6 +<a32e6509a309>A<cffde8b5>3.7 E F7<16>A F6<fd3e096909>A<fd09>3.701 E +<e8659069b567>72 373 Q<6909>2.75 E<8f096969cf>2.75 E F8(.)A F3(5.)74.75 +412 Q F4<e409>5.5 E F5(0)A F4<90>A F5<16>A F4<9070>A F5(B)A F4<cf>A F6 +<e409>72 425 Q<cf2de8>5.899 E F7<16>A F6<902d9069a309>A F7<12>A F6 +<cf1ba309>A 5.899<90cf>5.899 G<fde8b5>-5.899 E F7<16>A F6<fd3e096909>A +<67092db5>5.899 E<67a309698f0965a36909a309>5.899 E F3(C)5.898 E F7(0) +5.898 E F6<cf>A F7<3016>A F6<cfb5a390>A F7(B)A F6<09>A F8(,)A F7(B)5.898 +E F6<b590a3b5>A F7(0)5.898 E F6 5.898<cfe8>C<b52db5>-5.898 E F7<1b>A F6 +<6909>A F7<16>A F6 5.898<b5a3>C<b5fdcf>-5.898 E<a365096967e8cf>72 438 Q +F7<16>A F6<09a3b565>A<8f09>2.75 E F7(0)2.75 E F6<228f90>A F7(B)2.75 E F6 +<b52de8cf>A F7<16>A F6<cf650969>A<8fb5>2.75 E(-i\265)2.75 E F7<1b>A F6 +2.75<b5b5>C<e8906509>-2.75 E F7<12>A F6<cfb56969cf>A<67cf67a3902dcf>2.75 +E F8(.)A F3(6.)74.75 464 Q F4<7c228f9046cf>5.5 E<690967b5>2.75 E F5(B)A +F4<cf>A F8(1\))72 490 Q F6<4d09>3.199 E<6790>3.199 E<8fb5>3.199 E F7(0)A +F6<093ecf>A F7<4216>3.199 E F6<ea29b53e09>A<8f2e2d09>3.199 E F3(signal) +3.199 E F7(B)3.199 E F6<b51ba3b5>A<8f09>3.199 E<e865094609>3.199 E<67cf> +3.199 E F7<1b>A F6<6909>A F7<16>A F6<8fb5>3.199 E<b5e865908f90>3.2 E F7 +<16>A F6<906909>A<2d096fcf6909>3.2 E F8(,)A F6<fd09>3.2 E<8f09>3.2 E +<6990>3.2 E<a3651b>3.2 E F7(0)A F6<3e09>A<8f09>72 503 Q F7<1b>2.75 E F6 +2.75<b5cf>C<2de8>-2.75 E F7<16>A F6<902d9069a3cf6509>A<e865b5>2.75 E F7 +<1b>A F6<65092dcf67a322a3>A F8(.)A(2\))72 516 Q F6<4d09>5.368 E<6790> +5.368 E<8fb5>5.368 E F7(0)A F6<093ecf>A<67902d0969cfa3>5.368 E F7(B)A F6 +5.368<09fd>C 5.368<0967>-5.368 G<2267a3b51b69cf1b>-5.368 E 5.368<cf67> +5.368 G(")-5.368 E F7(0)A F6<cfa3cf1b>A F8(,)A F7(B)5.368 E F6<09a3b5>A +<6909e865cf2d9065>5.367 E F8 5.367(-')5.367 G F6<e865cf>-5.367 E +<e865cf67a3cf>5.367 E F7<1b>A F6<096990>A<8fb5>5.367 E<a3b53e09>5.367 E +<672267a3b51b69cf90>72 529 Q<cffde822>2.75 E F7<16>A F6<69cf>A F8(... ') +2.75 E(.)-.858 E(3\))72 542 Q F6<4d09>3.476 E<6790>3.476 E +<6909e865093ecf>3.476 E<a309>3.476 E F7(B)A F6<09>A F8(,)A F6<2990>3.476 +E<b5a38f90>3.476 E F7<16>A F6<69cfa390>A<2d096fcf69cf>3.476 E<8f09>3.476 +E<2db5>3.476 E F7<1b>A F6<09a3>A<8f09>3.476 E F7(0)3.477 E F6<228f09a3>A +<6909>3.477 E<6509fd>3.477 E F7<16>A F6<cf2969cf>A F7<0e>3.477 E F6 +<cffdcf299067>A F7(B)A F6 3.477<cf2e>C<67a365b5ca67a33e09>-3.477 E F8(,) +A F6<a3>72 555 Q F8(.)A F6<90>A F8(.)A F6<8f09>2.75 E F7(0)2.75 E F6 +<228f90>A<6909e865093e9069>2.75 E<6509fde865908f90>2.75 E F7<16>A F6 +<9069>A F8(.)A(4\))72 568 Q F6<4d09>2.75 E<6790>2.75 E<6909e865093ecf> +2.75 E<6909>2.75 E<e822>2.75 E F7<16>A F6<9069>A<90fdcf>2.75 E F7(B)A F6 +<fd09>2.75 E<e865b5>2.75 E F7<1b>A F6<65092dcf65096990>A F8(.)A F2 2.5 +(-6-)297.67 778 S 0 Cg EP +%%Trailer +end +%%EOF diff --git a/doc/makefile b/doc/makefile new file mode 100644 index 0000000..9ca1185 --- /dev/null +++ b/doc/makefile @@ -0,0 +1,3 @@ +install: + cat project.mg | preconv | groff -mg -Tps > a.ps + ps2pdf a.ps a.pdf diff --git a/doc/project.mg b/doc/project.mg new file mode 100644 index 0000000..013fb5c --- /dev/null +++ b/doc/project.mg @@ -0,0 +1,321 @@ +.ps +1 +.vs +1 +.start +.ds C \f[B]C\f[] +.title "Проект по компютърни системи за управление на роботи" +.title "Език за улесняване на програмиране на вградени устройства" +.author "Галин Симеонов Ф.Н. 81635" "gtsimeonov@uni-sofia.bg" +.heading "Увод" +.paragraph +При програмирането на вградени устройства, +някои от проблемите се моделират чрез автомати. +Също е практика да се програмира на езици от ниско ниво, като \*[C], +при които ръчното имплементиране на автомати с каквито и да е размери +често е неинтуитивно, предразполагащо към грешки и трудоемко. +С цел да помогна разработването на програми, чийто модел е ориентиран околу +състоянията на системата, предлагам и имплементирам експериментален миниатюрен език транспилиращ до \*[C]. +.paragraph +За цели имам той да е прост, интуитивен и евентуално лесен за генериране от инстурменти с графичен интернфейс +.footnote +Макар, че директното генериране на код без този език да действа като посредник би било по-смислено. +.footnote end +\&. +.heading "Описание на езика" +.heading "Общ поглед" 2 +Една 'програма' съдържа един или повече 'машини', които действат като контейнери за състояния,събития и преходи. +Всяка машина си има име и има отделно пространство за имена на състояния и събития. +Чрез преходите може да се извикват външни функции. +Ето най-простият пример за това как изглежда кодът: + +.code +machine light_bulb +[ + states [ ON , OFF ]; + events [ TURN_ON , TURN_OFF , SWITCH_STATE ]; + starting on OFF; + transitions + [ + from ON to OFF on event TURN_OFF; + from ON to OFF on event SWITCH_STATE; + + from OFF to ON on event TURN_ON; + from OFF to ON on event TURN_ON; + ]; + +]; +.code end + +След транспилация се генерират 3 файла - xxx.h xxx.c и xxx_external.h, който съответно съдържат +декларациите на служебните функции, тяхната имплементация и декларациите на външните функции, които са използвани от някой преход. +Подаването на събития към тези 'автомати' става посредством служебната функция - \f[B]push_event_to_machine\f[] + +Горният пример не е много функционален, защото комуникацията е само в една посока. +За да може да връща информация и да има функционалност, на всеки преход може да се сложат функции, които да бъдат изпълнени преди преходът да е завършил +.footnote +Това свойство е важно и авторът се е стремил да го запази. Това позволява, например, да се подават събития от функции изпълнени по време на преход +.footnote end +\&. +Taка горният пример може да бъде преработен да вика функция, която действително да включва и изключва някаква лампа: + +.code +machine light_bulb +[ + states [ ON , OFF ]; + events [ TURN_ON , TURN_OFF , SWITCH_STATE ]; + starting on OFF; + transitions + [ + from ON to OFF on event TURN_OFF + execute light "off"; + from ON to OFF on event SWITCH_STATE + execute light "off"; + + from OFF to ON on event TURN_ON + execute light "on"; + from OFF to ON on event TURN_ON + execute light "on"; + ]; + +]; +.code end + +Тук също е демонстрирано как се подават аргументи към тези функции. +Символните низове са избрани като единствен начин да се подават аргументи, защото е предвидено да се транспилира до езици, различни от \*[C], +а въвеждането на типова система или нещо, което да описва различните аргументи би натоварило езикът твърде много и би донесло само минимална печалба. +.paragraph +Възможно е да има повече от една 'машина' в кодът. Например, нека към горния пример добавим: + +.code +machine light_controler +[ + states [ STATIC , BLINKING ]; + events [ SIGNAL , GO_STATIC, START_BLINKING ]; + starting on STATIC; + transitions + [ + from STATIC to BLINKING on event START_BLINKING; + from BLINKING to STATIC on event GO_STATIC; + + from BLINKING to BLINKING on event SIGNAL + execute prod_light_bulb; + + ]; + +]; + +machine timer +[ + states [ ON , OFF ]; + events [ TICK , START , STOP ]; + starting on OFF; + transitions + [ + from ON to OFF on event STOP; + from OFF to ON on event START + execute prod_timer; + from ON to ON on event TICK + execute prod_timer | prod_light_controler; + ]; + +]; +.code end + +Тук може да се види и 'навързване' на различни функции. +timer 'машината' праща сигнал до себе си и до light_controler, а light_controler праща сигнал до light_bulb. +Тук можем да прескочим предаването на събития между 'машините' чрез използването на \f[B]if\f[]. +Променяме третия преход от timer: + +.code + from ON to ON on event TICK + if(light_controler.BLINKING) + execute prod_timer | prod_light_bulb; + +.code end + +Това е условно изпълнение на командите, преходът се случва и състоянието е променено независимо от истинността на условието. +За реализацията на условен преход, в езикът има \f[B]granted\f[] ключовата дума. +Горното може да се опитаме да имплементираме по следния начин: + +.code + from ON to ON on event TICK granted (light_controler.BLINKING) + execute prod_timer | prod_light_bulb; +.code end + +Тук има проблема, че timer спира да работи ако light_controler не е в състояние BLINKING, +защото преходът няма да се случи и \f[B]execute prod_timer\f[] няма да се изпълни. +.footnote +Това, че този пример може да бъде имплементиран на \*[C] под 10 реда, е забелязано от автора. +.footnote end +.paragraph +\f[B]prod_timer\f[],\f[B]prod_light_bulb\f[],\f[B]prod_timer\f[] и \f[B]light\f[] са функции, чиято имплементация трябва да бъде предоставена от програмиста. +Всички външни функции се събират и се записват в генерирания xxxx_exter.h файл. Този пример би генерирал: + +.code +#ifndef XXXX_EXTERN_H +#define XXXX_EXTERN_H XXXX_EXTERN_H + +extern machine_buffer_t* light(machine_buffer_t *arguments,machine_buffer_t *input); +extern machine_buffer_t* prod_light_bulb(machine_buffer_t *arguments,machine_buffer_t *input); +extern machine_buffer_t* prod_light_controler(machine_buffer_t *arguments,machine_buffer_t *input); +extern machine_buffer_t* prod_timer(machine_buffer_t *arguments,machine_buffer_t *input); + +#endif + +.code end + +Ето и една примерна тяхна импелементация заедно с \f[B]main\f[] функцията: + +.code +machine_buffer_t* light(machine_buffer_t *arguments,machine_buffer_t *input) +{ + printf("light %s\n",arguments->buffer); + return NULL; +} +machine_buffer_t* prod_light_bulb(machine_buffer_t *arguments,machine_buffer_t *input) +{ + push_event_to_machine(light_bulb,light_bulb_EVENT_SWITCH_STATE,NULL); + return NULL; +} +machine_buffer_t* prod_light_controler(machine_buffer_t *arguments,machine_buffer_t *input) +{ + push_event_to_machine(light_controler,light_controler_EVENT_SIGNAL,NULL); + return NULL; +} +machine_buffer_t* prod_timer(machine_buffer_t *arguments,machine_buffer_t *input) +{ + push_event_to_machine(timer,timer_EVENT_TICK,NULL); + sleep(1); + return NULL; +} +int main() +{ + push_event_to_machine(light_controler,light_controler_EVENT_START_BLINKING,NULL); + push_event_to_machine(timer,timer_EVENT_START,NULL); + return 0; +} + +.code end +Това ни дава изхода: +.code +light on +light off +light on +light off +light on +light off +light on +light off +light on +\&... +\&... +.code end + +.heading "Формално описание на езика" 2 +Със затъмнените думи и символи обозначавам думи и символи, които трябва да се интерпретират директно. +.heading "Програма" 3 +.right +.nf +програма : машина [ програма ] +.fi +.right end +Програмата е поредица от машини. Всяка машина има уникално име. +.heading "Машина" 3 +.right +.nf +машина : \f[BI]machine\f[] име \f[BI][\f[] вътрешна част на машината \f[BI] ] ; \f[] +вътрешна част на машината : \f[BI]states [\f[] поредица от състояния \f[BI] ] ; \f[] [ вътрешна част на машината ] + \f[BI]events [\f[] поредица от събития \f[BI] ] ; \f[] [ вътрешна част на машината ] + \f[BI]transitions [\f[] поредица от преходи \f[BI] ] ; \f[] [ вътрешна част на машината ] + \f[BI]starting on \f[] име на състояние \f[BI];\f[] [ вътрешна част на машината ] +.fi +.right end + +В една машина може да се срещне само веднъж декларация на състоянията, събитията, преходите и посочване на стартиращо състояние. +Декларацията на стартиращо състояние трябва да е след декларацията на състоянията. То трябва да е сред декларираните състояния. +Декларацията на преходите трябва да е след декларациите на състоянията и на събитията. +Сред декларираните състояния и събития не трябва да има повтарящи се. +Сред преходите не трябва да има две различни, които излизат от едно състояние и имат за етикет едно събитие. +.heading "Преход" 3 +.right +.nf +преход : \f[BI] from \f[] име-на-състояние + \f[BI] to \f[] име-на-състояние \f[BI] on \f[] име-на-събитие [ опашка-на-прехода ] \f[BI];\f[] +опашка-на-прехода : [ \f[BI] granted \f[] израз ] [ условно-изпълнение ] +условно-изпълнение : \f[BI] if \f[] израз условно-изпълнение [ \f[BI] else \f[] условно-изпълнение ] +условно-изпълнение : \f[BI] execute \f[] опашка на изпълнението +опашка-на-изпълнението : име-на-външна-функция \f[BI]"\f[]символен-низ\f[BI]"\f[] [ \f[BI] | \f[] опашка-на-изпълнението ] +.fi +.right end + +Ако изразът след \f[BI]granted\f[] е истина то преходът се реализира и командите в условното изпълнение се изпълняват спрямо семантиката, +иначе преходът не се изпълнява и опашката на преходът не се изпълнява. +Ако изразът след \f[BI]if\f[] е истина то условното изпълнение след изразът се изпълнява, иначе, ако има \f[BI]else\f[] +съответстващ на \f[BI]if\f[]-а то условното узпълнение след \f[BI]else\f[] се изпълнява. +Ако условното изпълнение е от типа започващ с \f[BI]execute\f[] то външните функции се изпълняват в ред на срещане +като изходът на всяка се подава на следващата. Изходът на последната изпълнена функция се изхвърля. +.heading "Израз" 3 +.right +.nf +израз : израз-или +израз-или : израз-и [ \f[BI]|| \f[] израз-или ] +израз-и : израз-не [ \f[BI]&& \f[] израз-и ] +израз-не : [\f[BI]!\f[]]базов-израз +базов-израз : име-на-машина\f[BI].\f[]име-на-състояние | \f[BI](\f[]израз\f[BI])\f[] +.fi +.right end + +Израз може да се оцени до истина или лъжа. +Логическите оператори имат обичайната семантика. +В базовия израз е позволено да се посочват състояния на други машини, но не е позволено да се посочват състояния на машината, +в която се намира изразът. Тези посочвания се оценяват до истина ако посочената машина е заела посоченото състояние. +Могат да се посочват имена на машини, които са декларирани след сегашната, но те трябва да съществуват. Това важи и за състоянията, те трябва също и да принадлежат на посочената машина. + +.heading "Детайли на имплементацията" +За да се реализира обмена на информация между генерирания код и написания, +е дефинирана структура \f[B]machine_buffer_t\f[], в която се записват данните и техният размер. +Генерират се и няколко помощни функции, които улесняват работата с такива структури. +За да се запази свойството - командите на преходът да се изпълнят преди състоянието да се смени, +се използва опашка, в която се записват +.heading "Описание на командните аргументи" +Имплементацията на този език предадена от автора приема следните аргументи. + +.code +--print-tokens +.code end +Извежда разпознатите лексеми +.code +--print-ast +.code end +Извежда разпознатите структури в текста. ( Абстрактното синтактично дърво ) +.code +-o име-на-файл | --output име-на-файл +.code end +Посочва префиксът на генерираните файлове. Например \f[B]xxxx.h xxxx.c xxxx_external.h\f[]. +.code +--extern-mutex +.code end +Добавя мутекс преди и след подаването на събитие. Този мутекс трябва да се имплементира външно. +.code +--extern-queue +.code end +Дава възможност на програмиста да даде собствена имплементация на опашката използвана при задържането на събития. +.code +--extern-buffer +.code end +Дава възможност на програмиста да даде собствена имплементация на структурата използвана за пренос на данни. + +.heading "Забележки" +За имплементацията е използвана само стандартната \*[C] библиотека, което би помогнало този транспилатор да бъде +компилиран до много операционни системи. +.heading "Бъдещи насоки" +.list +.item +Да се добави ключова дума \f[B]signal\f[] която да праща сигнал до определена машина, за да не трябва да го имплементира програмистът. +.item +Да се добави семанитка за състояния и събития, като например - 'при пристигане до това състояние изпълни ... '. +.item +Да се направи така, че отделните машини да могат да бъдат на различни физически устройства, т.е. да бъде направен разпределен. +.item +Да се направи на пълен език за програмиране. +.list end +.finish |