diff --git a/SupportingDocs/DDP.rtf b/SupportingDocs/DDP.rtf deleted file mode 100644 index 4f62120a6..000000000 --- a/SupportingDocs/DDP.rtf +++ /dev/null @@ -1,928 +0,0 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} -{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} -{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} -{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f54\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f55\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;} -{\f57\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f58\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f59\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f60\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);} -{\f61\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f62\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f64\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f65\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} -{\f67\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f68\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f69\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f70\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} -{\f71\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f72\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} -{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f419\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f420\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);} -{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} -{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);} -{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} -{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} -{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} -{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} -{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; -\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red176\green196\blue222;\red25\green25\blue112;\red80\green80\blue224;\red176\green176\blue192; -\red144\green144\blue160;\red135\green206\blue235;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{ -\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 -\snext0 \sqformat \spriority0 Normal;}{\s3\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs27\alang1025 \ltrch\fcs0 -\b\fs27\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext3 \slink15 \sqformat \spriority9 \styrsid2967352 heading 3;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* -\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused -Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs27 \ltrch\fcs0 \b\f0\fs27 \sbasedon10 \slink3 \slocked \spriority9 \styrsid2967352 Heading 3 Char;}{\*\cs16 \additive \ul\cf2 \ssemihidden \sunhideused \styrsid2967352 Hyperlink;}{ -\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext17 \ssemihidden \sunhideused \styrsid2967352 Normal (Web);}{\s18\ql \li0\ri0\widctlpar -\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af2\afs20\alang1025 \ltrch\fcs0 -\f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext18 \slink19 \ssemihidden \sunhideused \styrsid2967352 HTML Preformatted;}{\*\cs19 \additive \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20 -\sbasedon10 \slink18 \slocked \ssemihidden \styrsid2967352 HTML Preformatted Char;}}{\*\listtable{\list\listtemplateid-2099765096{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 -\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2160 -\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 } -{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative -\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext -\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid355808664}{\list\listtemplateid-769070680{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;} -\f2\fs20\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2160 -\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 } -{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative -\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext -\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1078140338}{\list\listtemplateid1649021102{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 -\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext -\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;} -\f10\fs20\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880 -\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 } -{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative -\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1566716351}}{\*\listoverridetable{\listoverride\listid1566716351\listoverridecount0\ls1} -{\listoverride\listid355808664\listoverridecount0\ls2}{\listoverride\listid1078140338\listoverridecount0\ls3}}{\*\pgptbl {\pgp\ipgp2\itap0\li225\ri225\sb30\sa150\brdrt\brdrs\brdrw15\brsp40\brdrcf23 \brdrl\brdrs\brdrw5\brsp40\brdrcf24 \brdrb -\brdrs\brdrw15\brsp40\brdrcf23 \brdrr\brdrs\brdrw5\brsp40\brdrcf24 }{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp2\itap0\li720\ri720\sb100\sa100}}{\*\rsidtbl \rsid2967352\rsid9320960}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1 -\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Martin Mueller}{\creatim\yr2021\mo9\dy21\hr9\min54}{\revtim\yr2021\mo9\dy21\hr9\min54}{\version2}{\edmins0}{\nofpages15}{\nofwords4215}{\nofchars24028}{\nofcharsws28187} -{\vern31}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect -\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 -\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale210\rsidroot2967352 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 -\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 -\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 \cbpat19 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 -\fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf20\insrsid2967352\charrsid2967352 HYPERLINK "http://www.3waylabs.com/" } -}{\fldrslt {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf21\insrsid2967352\charrsid2967352 3waylabs}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf20\insrsid2967352\charrsid2967352 \~|\~} -{\field\fldedit{\*\fldinst {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf20\insrsid2967352\charrsid2967352 HYPERLINK "http://www.3waylabs.com/projects" }}{\fldrslt {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 -\b\f1\fs27\cf21\insrsid2967352\charrsid2967352 Projects}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf20\insrsid2967352\charrsid2967352 \~|\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \ab\af1\afs27 -\ltrch\fcs0 \b\f1\fs27\cf20\insrsid2967352\charrsid2967352 HYPERLINK "http://www.3waylabs.com/events.html" }}{\fldrslt {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf21\insrsid2967352\charrsid2967352 Events}}}\sectd \ltrsect -\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf20\insrsid2967352\charrsid2967352 \~|\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf20\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/contact.html" }}{\fldrslt {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf21\insrsid2967352\charrsid2967352 Contact}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 -\b\f1\fs27\cf20\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\qc \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 Distributed Display Protocol (DDP) -\par Last update 2017-07-25 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -{\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fillColor}{\sv 0}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn alignHR}{\sv 1}}{\sp{\sn dxHeightHR}{\sv 30}} -{\sp{\sn fStandardHR}{\sv 1}}{\sp{\sn fNoshadeHR}{\sv 1}}{\sp{\sn fHorizRule}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex6553\picscaley1\piccropl0\piccropr0\piccropt0\piccropb0\picw1764\pich882\picwgoal1000\pichgoal500\wmetafile8}}{\rtlch\fcs1 -\af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4 -\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (} -{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0\pararsid2967352 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 -{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Introduction" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf21\insrsid2967352\charrsid2967352 Introduction}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "History" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 History}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Efficiency" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Efficiency}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Design%20Philosophy" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Design Philosophy}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 -\ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Protocol%20Operation" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Protocol Operation}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 -\ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Source%20and%20Destination%20IDs" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Source and Destination IDs}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { -\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Status,%20Configuration%20and%20Management" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Status, Configuration and Management}}}\sectd \ltrsect -\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Port%20Numbers" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Port Numbers}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Packet%20Format" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Packet Format}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "To%20Write%20To%20an%20ID" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 To Write To an ID}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 -\ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "To%20Read%20From%20an%20ID" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 To Read From an ID}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 -\af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Discovery" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Discovery}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Displaying%20data%20from%20local%20storage" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Displaying data from local storage}}}\sectd \ltrsect -\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Timecode%20Usage" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Timecode Usage}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "DMX%20Legacy%20Mode" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 DMX Legacy Mode}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 -\ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Data%20Types" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Data Types}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Configuration,%20Status%20and%20Control" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Configuration, Status and Control}}}\sectd \ltrsect -\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Security" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Security}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Open%20Protocol" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Open Protocol}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "References" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 References}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Comments" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Comments}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.3waylabs.com/ddp/" \\l "Code" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Sample Code}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -{\pict{\*\picprop\shplid1026{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fillColor}{\sv 0}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn alignHR}{\sv 1}}{\sp{\sn dxHeightHR}{\sv 30}} -{\sp{\sn fStandardHR}{\sv 1}}{\sp{\sn fNoshadeHR}{\sv 1}}{\sp{\sn fHorizRule}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex6553\picscaley1\piccropl0\piccropr0\piccropt0\piccropb0\picw1764\pich882\picwgoal1000\pichgoal500\wmetafile8}}{\rtlch\fcs1 -\af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4 -\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (} -{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar -\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 -\fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 {\*\bkmkstart Introduction}{\*\bkmkend Introduction}Introduction -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -DDP was designed for sending real-time data to distributed lighting displays where synchronization may be important. It can also be used to control other types of devices needing a similar protocol.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 -\f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ai\af1\afs27 \ltrch\fcs0 \i\f1\fs27\cf1\insrsid2967352\charrsid2967352 -DDP is being used today, but some of the advanced features have not yet been decided on. Items in this document will be in italics to indicated they have not been decided upon or standardized.}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 {\*\bkmkstart History}{\*\bkmkend History} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 History - -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -Traditionally, the DMX protocol over RS-485 was used to control small numbers of dimmable lights. Because of the connection of DMX to lighting, people have tried to apply DMX to controlling much larger arrays of lights, for example RGB LED displays. Howev -e -r, DMX has many limitations including small universe/data-packet sizes, low update rates, and no methods for display synchronization. There are two popular open protocols that transport DMX over ethernet (ArtNet and E1.31), but neither of these protocols -solve all the problems. DMX fails in these applications but people continue to use it for lack of a better standard.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -For example, if you tried to use DMX to control a large scale distributed RGB LED lighting system, you would run into the following issues: -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -Small number of lights can be controlled per DMX universe. Assuming 24-bit RGB data, only 170 nodes per DMX universe. Even less if you wanted to use 36-bit or higher data widths. -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Small number of DMX universes (256), so a maximum of 256*170=43,520 nodes possible. -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab} -Low maximum update rate of around 45hz, not suitable for special applications. Unspecified control of actual data rate. -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab} -No synchronization across DMX universes. Data sent across multiple DMX universes at different times would not be displayed at the same time, which is not suitable for large displays. -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -{\*\bkmkstart Efficiency}{\*\bkmkend Efficiency}Efficiency -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -Let's look at the efficiency of DDP vs Art-Net vs E1.31. We define efficiency as the amount of useable data (RGB pixel data) received divided by the total amount of data that needs to be tran -smitted. For example, if a protocol sends 100 bytes to get 50 bytes of useable data, then it is 50% efficient. Ethernet packets have an overhead of 66 bytes (8 byte preamble, 14 byte addresses, 4 byte crc, 12 byte gap). There is also overhead for IP (20 b -ytes) and UDP (8 bytes). So total overhead before adding in each specific protocol is 66 bytes. For example, for E1.31 you need to send 66 bytes (enet+ip+udp) + 126 bytes (e1.31) + 512 bytes (dmx data). So efficiency is 512/(66+126+512) = 72.7%}{ -\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 We will also - compute the maximum possible number of RGB pixels that could be addressed at 45fps on 100Mbit ethernet. 100Mbit = 12.5M bytes per second. We divide this by each protocols total packet size, for instance, 584 bytes for E1.31. This gives the total number o -f - packets that could be sent in 1 second. We multiply this by the useable data size divided by 3 for RGB to calculate how many pixels can be addressed per second, and then divide by 45 frames per second to calculate how many pixels can be address at 45fps. - -\par \ltrrow}\trowd \irow0\irowband0\ltrrow\ts11\trgaph15\trleft-60\trbrdrt\brdroutset\brdrw15 \trbrdrl\brdroutset\brdrw15 \trbrdrb\brdroutset\brdrw15 \trbrdrr\brdroutset\brdrw15 -\trftsWidth1\trautofit1\trspdl15\trspdt15\trspdb15\trspdr15\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2967352\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 -\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx1125\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb -\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx2490\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 -\cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx4891\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx6257\clvertalc\clbrdrt -\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx9420\pard \ltrpar -\qc \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 protocol\cell header len\cell max data per packet\cell Efficiency -\cell pixels at 45fps on 100M net\cell }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid2967352\charrsid2967352 -\trowd \irow0\irowband0\ltrrow\ts11\trgaph15\trleft-60\trbrdrt\brdroutset\brdrw15 \trbrdrl\brdroutset\brdrw15 \trbrdrb\brdroutset\brdrw15 \trbrdrr\brdroutset\brdrw15 -\trftsWidth1\trautofit1\trspdl15\trspdt15\trspdb15\trspdr15\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2967352\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 -\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx1125\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb -\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx2490\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 -\cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx4891\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx6257\clvertalc\clbrdrt -\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx9420\row \ltrrow}\pard \ltrpar -\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 E1.31\cell 126\cell 512\cell 72.7%\cell 67,340\cell }\pard \ltrpar -\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid2967352\charrsid2967352 \trowd \irow1\irowband1\ltrrow\ts11\trgaph15\trleft-60\trbrdrt -\brdroutset\brdrw15 \trbrdrl\brdroutset\brdrw15 \trbrdrb\brdroutset\brdrw15 \trbrdrr\brdroutset\brdrw15 -\trftsWidth1\trautofit1\trspdl15\trspdt15\trspdb15\trspdr15\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2967352\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 -\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx1125\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb -\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx2490\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 -\cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx4891\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx6257\clvertalc\clbrdrt -\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx9420\row \ltrrow}\pard \ltrpar -\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 Art-Net\cell 18\cell 512\cell 85.9%\cell 79,542\cell }\pard \ltrpar -\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid2967352\charrsid2967352 \trowd \irow2\irowband2\ltrrow\ts11\trgaph15\trleft-60\trbrdrt -\brdroutset\brdrw15 \trbrdrl\brdroutset\brdrw15 \trbrdrb\brdroutset\brdrw15 \trbrdrr\brdroutset\brdrw15 -\trftsWidth1\trautofit1\trspdl15\trspdt15\trspdb15\trspdr15\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2967352\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 -\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx1125\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb -\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx2490\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 -\cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx4891\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx6257\clvertalc\clbrdrt -\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx9420\row \ltrrow}\pard \ltrpar -\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 DDP\cell 10\cell 1440\cell 94.9%\cell 87,950\cell }\pard \ltrpar -\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid2967352\charrsid2967352 \trowd \irow3\irowband3\lastrow \ltrrow\ts11\trgaph15\trleft-60\trbrdrt -\brdroutset\brdrw15 \trbrdrl\brdroutset\brdrw15 \trbrdrb\brdroutset\brdrw15 \trbrdrr\brdroutset\brdrw15 -\trftsWidth1\trautofit1\trspdl15\trspdt15\trspdb15\trspdr15\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2967352\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 -\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx1125\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb -\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx2490\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 -\cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx4891\clvertalc\clbrdrt\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx6257\clvertalc\clbrdrt -\brdroutset\brdrw15 \clbrdrl\brdroutset\brdrw15 \clbrdrb\brdroutset\brdrw15 \clbrdrr\brdroutset\brdrw15 \cltxlrtb\clftsWidth1\clshdrawnil\clhidemark \cellx9420\row }\pard \ltrpar -\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -You may also hear arguments that these protocols are more efficient because they support broadcasting or multicasting. In some special cases this may be true. Consider a case where you have 170 separate RGB devices (for example, a color settable wall-wash -e -r) and each one needs 3 data channels to operate. Each device has its own network interface and IP address. With Art-Net or E1.31 you could put all these channels in a single DMX universe and broadcast that packet once to all 170 devices. Without broadcas -ting, you would need to unicast that data to all 170 devices. So for very small networks of devices broadcasting could be more efficient, but this isn't true beyond that. -\par Consider that when driving RGB pixel displays, you will most likely have more than 170 - pixels connected to a single device (pixel controller). So you already need to send a full packet to each device. Now, consider the data you are displaying is most likely different for every pixel on every device (in some cases you might just want all yo -u -r pixels to be the same color, but not likely for long). So using broadcast or multicast would not reduce the number of packets that need to be sent to update all your pixels. In fact, doing so is likely to interrupt and slow down many receivers that get -overloaded processing these broadcasts. -\par Broadcasting or multicasting is also less reliable on Wifi networks. To quote a White Paper from Cisco (Optimizing Enterprise Video Over Wireless LAN White Paper): -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 Packet Loss -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -Given the combination of collisions, fade -s, and data rate selection, it is not at all uncommon for Wi-Fi to operate with an underlying packet error rate (PER) that can approach 5 percent. To compensate, Wi-Fi uses a retransmission mechanism whereby packets that are not successfully received and -acknowledged are resent. This mechanism generally serves to reduce the final packet loss rate (PLR) to less than 0.1 percent. -\par Multicast Unreliability -\par The underlying packet error rate plays an even more prominent role for Wi-Fi multicast traffic. For multica -st transmissions (with multiple receivers), Wi-Fi does not provide a retransmission mechanism. As a result, the PLR for multicast traffic is equal to the PER. In other words, it would not be uncommon for Wi-Fi multicast traffic to experience a packet loss - rate of 5 percent. This is a serious problem for video, where loss of even a single packet can result in an error that propagates for many video frames. -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -{\*\bkmkstart Design_Philosophy}{\*\bkmkend Design_Philosophy}DDP Design Philosophy -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -To create a small, simple, extensible protocol for distributing and synchronizing data across multiple display devices.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -Implementations can pick various levels of protocol support depending on the application and processing resources available. -\par The protocol should be scalable to support applications as simple as a light switch controll -ing a light bulb, a controllable holiday light tree, all the way to a large system controlling an entire venue consisting of RGB video displays, light strings, strobes, moving lights and foggers. -\par The protocol supports data sourced from the packet, or from storage on the display device. -\par Data is typed and a full range is supported, from on/off, greyscale, RGB, etc. Data does not have to contain light or color info but could be commands, sequence numbers, directional information, or a mix. -\par The protocol should allow for status, configuration and management of devices.{\*\bkmkstart Definitions_used_in_this_document}{\*\bkmkend Definitions_used_in_this_document} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -Definitions used in this document -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 Controller: -\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -generally, a system that sends data to and controls a Display -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 Display: -\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -generally, a system that receives and displays data from Controllers -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -A device can operate as both a Controller and a Display.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 {\*\bkmkstart Protocol_Operation}{\*\bkmkend Protocol_Operation} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -Protocol Operation -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -The protocol is packet based and thus works nicely over UDP, which all implementations should support. The protocol can also be used over TCP for applications needing higher reliability or for other reasons.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 -\f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -The protocol uses a single packet header definition for all packets, for ease of implementation. -\par Many display applications can tolerate a low level of packet loss, so there is no sequence numbering or lost frame detection. Use TCP if needed. -\par Data is generally sent using direct IP destination addresses, and broadcasts of data should not be used unless the same data is meant for all destinations. -\par Data is transmitt -ed to displays in blocks specifying their length and offset within an output frame buffer. They can be sent in any order. Multiple blocks can be sent until the buffer is filled. The buffer is not cleared between display commands, so it is possible to send - just the data that has changed between frames.\~}{\rtlch\fcs1 \ai\af1\afs27 \ltrch\fcs0 \i\f1\fs27\cf1\insrsid2967352\charrsid2967352 -this could be a configuration option, what action to take after displaying an output frame buffer. leave alone, blank, etc}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par It is also possible to specify that data comes from Storage instead of from the packet. This could be used to display data that is stored on local disks or flash cards, for example. -\par A display not using synchronization can display data as it is received. -\par Synchronization of display output across multiple devices is supported in two ways, both optional: using the Push flag, or using a Timecode. -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 PUSH FLAG -\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -Sending the Push flag tells a device to display its data buffer immediately. When sending to a single display device, the Push flag can be sent along with a data packet, often the last packet of multiple blocks used to fill a frame buffer. -\par }\pard \ltrpar\ql \li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -When sending to multiple display devices, the Push flag can be broadcast with no data. All devices will then display their frame buffers simultaneously. -\par The Push method can be used when all display devices are on a single network that supports broadcasts and latency is minimal. -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 TIMECODE -\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -A timecode is sent (along with the Push Flag) that tells the display device at what future time to do the final Push and display the data. An NTP based time format is used. To u -se this feature all your display devices will need to be synchronized using NTP. -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -{\*\bkmkstart Source_and_Destination_IDs}{\*\bkmkend Source_and_Destination_IDs}Source and Destination IDs -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -A Display uses source and destination IDs to specify where data is read from or written to. For example, a Display may have multiple physical output - devices, and each one can use a different ID. IDs are also used for reading and writing configuration and status info. They can be used for numerous purposes, such as specifying flash memory for remote codes updates, or even sub-regions of an output disp -lay.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -For example, an RGB video display might use ID 1. You could defined ID 2 to be a small corner of that display region to allow updates to a portion of the display. The data for ID 2 might come from a different source Controller than for ID 1. -{\*\bkmkstart Status,_Configuration_and_Management}{\*\bkmkend Status,_Configuration_and_Management} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Status, Co -nfiguration and Management -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -The protocol for data transmission from Controller to Display is kept short and simple as this is the most important function. Optional higher level functions are implemented with JSON formatted data.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 -\f0\fs24\insrsid2967352\charrsid2967352 {\*\bkmkstart Port_Numbers}{\*\bkmkend Port_Numbers} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Port Numbers - -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 Displays always - receive packets on UDP/TCP Port 4048. Controllers can send from any source port. A dual Controller/Display device might use port 4048 for both source and destination packets.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -{\*\bkmkstart Packet_Format}{\*\bkmkend Packet_Format} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -Packet Format -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\ab\af2\afs20 \ltrch\fcs0 \b\f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par All packets sent and received have a 10 or 14 byte header followed by optional data. -\par -\par byte 0: flags: V V x T S R Q P -\par -\par V V: 2-bits for protocol version number, this document specifies version 1 (01). -\par -\par \tab x: reserved -\par -\par T: timecode field added to end of header -\par if T & P are set, Push at specified time -\par -\par \tab S: Storage. If set, data comes from Storage, not data-field. -\par -\par R: Reply flag, marks reply to Query packet. -\par always set when any packet is sent by a Display. -\par if Reply, Q flag is ignored. -\par -\par \tab Q: Query flag, requests len data from ID at offset (no data sent) -\par if clear, is a Write buffer packet -\par -\par P: Push flag, for display synchronization, or marks last packet of Reply -\par -\par -\par byte 1: x x x x n n n n -\par x: reserved for future use (set to zero) -\par nnnn: sequence number from 1-15, or zero if not used -\par a sender can send duplicate packets with the same sequence number and DDP header for redundancy. -\par \tab a receiver can ignore duplicates received back-to-back. -\par \tab the sequence number is ignored if zero. -\par \tab -\par byte 2: data type -\par }{\rtlch\fcs1 \ab\ai\af2\afs20 \ltrch\fcs0 \b\i\f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par data type, 0=undefined -\par \tab [see notes below, still trying to figure this part out] -\par }{\rtlch\fcs1 \ab\af2\afs20 \ltrch\fcs0 \b\f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par byte 3: Source or Destination ID -\par 0 = reserved -\par 1 = default output device -\par \tab 2=249 custom IDs, (possibly defined via JSON config) -\par 246 = JSON control (read/write) -\par 250 = JSON config (read/write) -\par 251 = JSON status (read only) -\par \tab 254 = DMX transit -\par 255 = all devices -\par -\par byte 4-7: data offset in bytes }{\rtlch\fcs1 \ab\ai\af2\afs20 \ltrch\fcs0 \b\i\f2\fs20\cf1\insrsid2967352\charrsid2967352 (in units based on data-type. ie: RGB=3 bytes=1 unit) or bytes??}{\rtlch\fcs1 \ab\af2\afs20 \ltrch\fcs0 -\b\f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par 32-bit number, MSB first -\par -\par byte 8-9: data length in bytes (size of data field when writing) -\par 16-bit number, MSB first -\par for Queries, this specifies size of data to read, no data field follows header. -\par -\par if T flag, header extended 4 bytes for timecode field (not counted in data length) -\par byte 10-13: timecode -\par -\par byte 10 or 14: start of data -\par -\par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 {\*\bkmkstart To_Write_To_an_ID} -<="" a="" style="text-decoration: none; color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; - text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;"> -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af0\afs27 \ltrch\fcs0 \b\f0\fs27\insrsid2967352\charrsid2967352 -To Write To an ID -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -Send data packets with type, ID, offset, length and data fields, as many as wanted to fill remote frame buffers. -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -<="" a="" style="text-decoration: none;">Send last data packet with Push flag set (or broadcast to multiple devices).{\*\bkmkstart To_Read_From_an_ID}{\*\bkmkend To_Write_To_an_ID}{\*\bkmkend To_Read_From_an_ID} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -To Read From an ID -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -An ID can be read from, if supported. This can be used to read from a frame buffer, JSON config or status, etc.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -Send packet with Query flag, ID to read from, offset=starting offset, data length=number of bytes to read.\~}{\rtlch\fcs1 \ai\af1\afs27 \ltrch\fcs0 \i\f1\fs27\cf1\insrsid2967352\charrsid2967352 -[length should fit into UDP packet, what about fragmentation, MTU, etc?]}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par Device will reply with data packet with Reply bit set. Data offset specifies where in device buffer data came from and should match Query. Data length might be shorter than requested or zero if no data. If Push flag is set it marks end of device data. - -\par If reading a device is not supported, Reply should be sent with offset=0, length=0, Push flag.{\*\bkmkstart Discovery}{\*\bkmkend Discovery} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Discovery - -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -Send directed Read packet for ID=[JSON Status] Reply tells you if server exists.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -A Display that has powered up can broadcast a short [JSON Status] update Reply: -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 \{"status":\{"update":"change","state":"up"\}\} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -A Controller can scan all IP address on a local network to discover devices, or use a list configured by the user. -\par }{\rtlch\fcs1 \ai\af1\afs27 \ltrch\fcs0 \i\f1\fs27\cf1\insrsid2967352\charrsid2967352 Discovery by Broadcasting}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par A [JSON Status] query can also be broadcast, and replies coll -ected to discover all Displays. It is suggested that if a Display receives such a query, that it delay its reply by the number of milliseconds of the last byte of its MAC address. As such, Controllers should wait a half-second for any replies. -{\*\bkmkstart Displaying_data_from_local_storage}{\*\bkmkend Displaying_data_from_local_storage} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Displaying d -ata from local storage -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -If S flag is set then data is read from a storage unit instead of from packet data field. Data field defines storage unit, by name, number, URL or whatever mechanism wanted. Data Offset defines where to start reading from within stor -age unit. Display reads enough data to fill output buffer for the particular ID.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 {\*\bkmkstart Timecode_Usage}{\*\bkmkend Timecode_Usage} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -Timecode Usage -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -Use and support of timecodes is optional.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -The Timecode is the 32 middle bits of 64-bit NTP time: 16-bits for seconds and 16-bits for fraction of seconds. -\par Full 6 -4-bit NTP time is not used because DDP is a real-time protocol, and 16 bits for seconds (1092 minutes) is plenty to tell if the packet is early or late. In addition, 16 bits for fractions of a second (15 microsecond resolution) is more than enough needed -for display use. -\par To use timecode when writing data, set Timecode flag. Append 4 bytes (MSB first) of timecode at end of packet header. -\par Timecode specifies the time the Display should output data at (only when used with Push flag!). Data received after specif -ied time has past should still be placed into device frame buffer, but receiver can decide whether or not to display it, and/or how long late means.\~}{\rtlch\fcs1 \ai\af1\afs27 \ltrch\fcs0 \i\f1\fs27\cf1\insrsid2967352\charrsid2967352 -The parameters could be defined by JSON config.}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 {\*\bkmkstart DMX_Legacy_Mode}{\*\bkmkend DMX_Legacy_Mode} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -DMX Legacy Mode -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -It is the intention of this protocol to replace other DMX over ethernet protocols, and eventually DMX itself. However, for certain legacy applications you may want to use DDP to transport DMX. We define a standard way to be followed:}{\rtlch\fcs1 -\af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -Send DMX packets to the DMX transit ID (254). Use the data offset field for the DMX universe number (converted to 32-bit unsigned integer), and place the DMX data including the START code in the data field (up to 513 bytes). -\par A Controller may transmit DMX packets to a Display. A Display may send unsolicited Replies with DMX packets back to a Controller. This allows transit support of DMX RDM protocol.{\*\bkmkstart Data_Types}{\*\bkmkend Data_Types} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Data Types - -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\ai\af2\afs20 \ltrch\fcs0 \i\f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par data type ideas: or maybe have data-type length field -\par -\par 1 byte, -\par bit 7=0 means standard types, 1=custom -\par 6 reserved -\par 5,4,3 = type -\par 0=greyscale, 1=RGB, 2=HSL?? -\par 2,1,0 = size in bits per pixel element (like just R or G or B) -\par 0=1, 1=4, 2=8, 3=16, 4=24, 5=32, 6=48, 7=64 -\par -\par maybe have a data type for JSON -\par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -{\*\bkmkstart Configuration,_Status_and_Control}{\*\bkmkend Configuration,_Status_and_Control}Configuration, Status and Control -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -Higher level management functions are sent and received using JavaScript Object Notation (JSON). Use of JSON is optional.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -However, for discovery you should support the minimum specified in Discovery section above. -\par This section describes the JSON schema used for status and configuration, and is currently implemented in Minleon products. -\par JSON can be used for configuration and status. -\par }{\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 STATUS:}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 info is read-only, -\par can be returned by device when queried -\par device can send updates when status changes if configured to do so by JSON config commands -\par examples include temperature monitoring, light failure, power-up, -\par -\par suggested standard schema (and used by Minleon NDB): -\par \{"status": -\par \{ -\par "man" : "device-manufacturer-string", -\par "mod" : "device-model-string", -\par "ver" : "device-version-string", -\par "mac" : "xx:xx:xx:xx:xx:xx:xx", -\par "push" : true, (if PUSH supported) -\par "ntp" : true (if NTP supported) -\par \} -\par \} -\par -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 A status req -uest may also contain a JSON string of hints needed by the Display device in order to send a reply. So the data field of the STATUS request can be set to \{"mac":"xx:xx:xx:xx:xx:xx"\} along with the appropriate data field length.}{\rtlch\fcs1 \af0\afs24 -\ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 Minleon products may require - the mac address to be sent so the device can reply. The reason for this is that a new unconfigured device may not yet have its own IP address assigned or know the correct IP network number to use. Once the device is discovered, an IP address could be ass -igned with the CONFIG message. -\par The STATUS request can be broadcast to discover all devices on a network. -\par }{\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 CONFIG:}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 read/write -\par reading reads entire config, writing can replace all or single elements -\par example configuration items: -\par number of lights, strings, etc connected -\par allowable data types and type# mapping -\par ID list and setting of regions -\par support Timecode field or not -\par -\par -\par schema as used in Minleon NDB: -\par \{"config" : -\par \{ -\par "ip": "a.b.c.d" (IP address) -\par "nm": "a.b.c.d" (netmask) -\par "gw": "a.b.c.d" (gateway) -\par "ports" : [ (array of output port info) -\par \{ -\par "port": N, (port #) -\par "ts" : N, (number of T's) -\par "l" : N, (number of lights) -\par "ss" : N (starting slot) -\par \}, ... -\par ] -\par \} -\par \} -\par -\par This will reboot the Minleon NDB and re-initialize the light strings -\par \{"config" : \{"reboot":1 \}\} -\par -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 CONTROL:}{\rtlch\fcs1 -\af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 -\par The Minleon WIFI controller accepts the following CONTROL packets on ID=246: -\par \{"control": -\par \{ -\par "fx": "effect-name" (runs the named effect) -\par "int": intensity (set intensity level from 0-100) -\par "spd": speed (set speed from 1-100) -\par "dir": direction (set effect direction to normal=0 or reverse=1) -\par "colors": [\{"r":nn,"g":nn,"b":nn\},...] (sets custom r,g,b color values for effects. -\par up to 3 sets of rgb values can be set) -\par "save": 1 (saves the settings above so they resume after a power cycle) -\par "power": n (turns power off=0, or on=1) -\par \} -\par \} -\par -\par note: "power" should be sent by itself with no other keywords. -\par sending "fx" will turn power back on if it was off. -\par -\par -\par For example, you could send -\par \{"control":\{"fx":"Multi Chaser","int":100, -\par "colors":[\{"r":255,"g":0,"b":0\},\{"r":0,"g":255,"b":0\}]\}\} -\par to pick the Multi Chaser effect at 100% intensity with custom colors RED and GREEN. -\par -\par -\par The Minleon WIFI controller also lets you set all or one item on the favorites list: -\par -\par \{"control": -\par \{ "favorites" :[ -\par \{"i": index (index into favorites list from 1-10) -\par "fx": "effect-name" (runs the named effect) -\par "t": time (run effect for this many seconds from 0-32500, 0 to disable) -\par "int": intensity (set intensity level from 0-100) -\par "spd": speed (set speed from 1-100) -\par "dir": direction (set effect direction to normal=0 or reverse=1) -\par "colors": [\{"r":nn,"g":nn,"b":nn\},...] (sets custom r,g,b color values for effects. -\par up to 3 sets of rgb values can be set) -\par \},... ] -\par \} -\par \} -\par -\par Fr example, -\par \{"control":\{"favorites": [ -\par \{"i":1,"fx":"Multi Chaser","t":60,"int":100, -\par "colors":[\{"r":255,"g":0,"b":0\},\{"r":0,"g":255,"b":0\}]\}, -\par \{"i":2,"fx":"Shift","t":60,"int":100, -\par "colors":[\{"r":0,"g":255,"b":255\},\{"r":20,"g":20,"b":20\}]\} ]\}\} -\par \tab -\par -\par -\par You can also read the entire Favorites list by send a Query packet to the CONTROL ID. -\par -\par -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -{\*\bkmkstart Security}{\*\bkmkend Security}Security -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -None provided. Many lighting systems will run on private networks not connected to the Internet. These networks are also likely to be dedicated for lighting control in order to ensure sufficient bandwidth for proper operation.}{\rtlch\fcs1 \af0\afs24 -\ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 {\*\bkmkstart Open_Protocol}{\*\bkmkend Open_Protocol} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -Open Protocol -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -DDP is an open protocol and may be freely used and implemented by anyone.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 {\*\bkmkstart References}{\*\bkmkend References} -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 References - -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0\pararsid2967352 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 HYPERLINK "http://www.json.org/" }}{\fldrslt -{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 JavaScript Object Notation (JSON)}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -HYPERLINK "http://www.ntp.org/" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Network Time Protocol (NTP)}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}DMX specification, DMX512-A.\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 HYPERLINK "http://en.wikipedia.org/wiki/DMX512" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 See Wikipedia}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { -\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 . -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}ANSI E.131 ACN spec. A committee attempt at proclaiming a new protocol to put a legacy protocol -(DMX) over ethernet.\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 HYPERLINK "http://en.wikipedia.org/wiki/Architecture_for_Control_Networks" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf21\insrsid2967352\charrsid2967352 See Wikipedia.}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Art-Net specification.\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 HYPERLINK "http://www.artisticlicence.com/" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Seach for it on the author's web site.}}}\sectd \ltrsect -\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 \~Version 4 is the latest. -\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f3\fs20\cf1\insrsid2967352\charrsid2967352 \loch\af3\dbch\af0\hich\f3 \'b7\tab}DDP for\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 -\f1\fs27\cf1\insrsid2967352\charrsid2967352 HYPERLINK "https://github.com/naychrist/Cinder-Ddp" }}{\fldrslt {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 Cinder}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { -\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 \~and\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 HYPERLINK "https://github.com/naychrist/ofxDdp" }}{\fldrslt -{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf21\insrsid2967352\charrsid2967352 OF}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 \~on Github. -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 -{\*\bkmkstart Comments}{\*\bkmkend Comments}Comments -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\chshdng0\chcfpat0\chcbpat22\insrsid2967352\charrsid2967352 -Please address any comments or questions to mark at three(the digit)waylabs.com. You'll figure it out if you are human.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 {\pict{\*\picprop\shplid1027{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fillColor}{\sv 0}}{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fLine}{\sv 0}}{\sp{\sn alignHR}{\sv 1}}{\sp{\sn dxHeightHR}{\sv 30}}{\sp{\sn fStandardHR}{\sv 1}}{\sp{\sn fNoshadeHR}{\sv 1}}{\sp{\sn fHorizRule}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}} -\picscalex6553\picscaley1\piccropl0\piccropr0\piccropt0\piccropb0\picw1764\pich882\picwgoal1000\pichgoal500\wmetafile8}}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4 -\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (} -{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar -\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2967352 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 -\fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 {\*\bkmkstart Code}{\*\bkmkend Code}Code -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Definitions}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 -\f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 // DDP protocol header definitions -\par -\par #define DDP_PORT 4048 -\par -\par #define DDP_HEADER_LEN (sizeof(struct ddp_hdr_struct)) -\par #define DDP_MAX_DATALEN (480*3) // fits nicely in an ethernet packet -\par -\par #define DDP_FLAGS1_VER 0xc0 // version mask -\par #define DDP_FLAGS1_VER1 0x40 // version=1 -\par #define DDP_FLAGS1_PUSH 0x01 -\par #define DDP_FLAGS1_QUERY 0x02 -\par #define DDP_FLAGS1_REPLY 0x04 -\par #define DDP_FLAGS1_STORAGE 0x08 -\par #define DDP_FLAGS1_TIME 0x10 -\par -\par #define DDP_ID_DISPLAY 1 -\par #define DDP_ID_CONFIG 250 -\par #define DDP_ID_STATUS 251 -\par -\par -\par // DDP header format -\par // header is 10 bytes (14 if TIME flag used) -\par struct ddp_hdr_struct \{ -\par byte flags1; -\par byte flags2; -\par byte type; -\par byte id; -\par byte offset1; // MSB -\par byte offset2; -\par byte offset3; -\par byte offset4; -\par byte len1; // MSB -\par byte len2; -\par \}; -\par -\par // for example code below: -\par struct ddp_hdr_struct dh; // header storage -\par unsigned char *databuf; // pointer to data buffer -\par -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Discovery}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 -\f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 To discover all DDP devices on a network, broadcast a DDP STATUS request: -\par -\par dh.flags1 = DDP_FLAGS1_VER1 | DDP_FLAGS1_QUERY; -\par dh.id = DDP_ID_STATUS; -\par dh.offset = 0; -\par dh.len = 0; -\par UDP_SEND(255.255.255.255,DDP_PORT,dh,databuf); -\par -\par -\par Display devices will reply with something like: -\par -\par dh.flags1 = DDP_FLAGS1_VER1 | DDP_FLAGS1_REPLY | DDP_FLAGS1_PUSH; -\par dh.id = DDP_ID_STATUS; -\par dh.offset = 0; -\par dh.len = length of returned JSON data: -\par -\par databuf: "\{"status":\{"man":"Minleon","mod":"NDB","ver":"1.0"\}\}" -\par -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Configuration}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 -\f0\fs24\insrsid2967352\charrsid2967352 -\par }\pard \ltrpar\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -Once devices have been discovered, their specific configuration can be read (or written) using DDP_ID_CONFIG in a similar mannner as above. Packets would be sent to individual devices and not broadcast. -\par }{\rtlch\fcs1 \ab\af1\afs27 \ltrch\fcs0 \b\f1\fs27\cf1\insrsid2967352\charrsid2967352 Displaying Data}{\rtlch\fcs1 \af1\afs27 \ltrch\fcs0 \f1\fs27\cf1\insrsid2967352\charrsid2967352 -\par In this example, a large buffer of RGB data (RGBDATA) needs to be sent to a number of display devices. -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 -\af2\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid2967352\charrsid2967352 int NDEVICES; // number of display devices -\par int LIGHTS_PER_DEVICE; // how many RGB pairs are being sent to each display device -\par byte RGBDATA[BUFLEN]; // the data to send -\par -\par rgbdata_index = 0; -\par for (devnum = 0; devnum < NDEVICES; devnum++) // for each output device -\par \{ -\par output_byte_count = 0; -\par frame_offset = 0; -\par for (i = 0; i < LIGHTS_PER_DEVICE; i++) // copy RGB values to output buffer -\par \{ -\par databuf[output_byte_count++] = RGBDATA[rgbdata_index++]; // copy R -\par databuf[output_byte_count++] = RGBDATA[rgbdata_index++]; // copy G -\par databuf[output_byte_count++] = RGBDATA[rgbdata_index++]; // copy B -\par if (output_byte_count > (DDP_MAX_DATALEN-3)) // if DDP packet full... -\par \{ -\par // send next DDP data packet to device -\par dh.flags1 = DDP_FLAGS1_VER1; -\par \tab dh.id = DDP_ID_DISPLAY; -\par \tab dh.type = 1; -\par \tab dh.offset = frame_offset; -\par \tab dh.len = output_byte_count; -\par \tab if ((NDEVICES == 1) && (i == (LIGHTS_PER_DEVICE-1))) -\par \tab dh.flags1 |= DDP_FLAGS1_PUSH; // push if only 1 device and last packet -\par \tab UDP_SEND(ip_addr(devnum),DDP_PORT,dh,databuf); -\par \tab frame_offset += output_byte_count; -\par \tab output_byte_count = 0; -\par \} -\par \} -\par if (output_byte_count > 0) // partial packet left to send? -\par \{ -\par // send last DDP data packet to device -\par dh.flags1 = DDP_FLAGS1_VER1; -\par \tab dh.id = DDP_ID_DISPLAY; -\par \tab dh.type = 1; -\par \tab dh.offset = frame_offset; -\par \tab dh.len = output_byte_count; -\par \tab if (NDEVICES == 1) -\par \tab dh.flags1 |= DDP_FLAGS1_PUSH; // push if only 1 device and last packet -\par \tab UDP_SEND(ip_addr(devnum),DDP_PORT,dh,databuf); -\par \} -\par \} -\par -\par // sent data to all devices, now broadcast PUSH flag so they all display sync'd -\par if (NDEVICES > 1) // if 1 device, already sent PUSH above -\par \{ -\par dh.flags1 = DDP_FLAGS1_VER1 | DDP_FLAGS1_PUSH; -\par dh.id = DDP_ID_DISPLAY; -\par dh.offset = 0; -\par dh.len = 0; -\par UDP_SEND(local-IP-broadcast-address,DDP_PORT,dh,databuf); -\par \} -\par -\par -\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2967352 {\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -{\pict{\*\picprop\shplid1028{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fillColor}{\sv 0}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn alignHR}{\sv 1}}{\sp{\sn dxHeightHR}{\sv 30}} -{\sp{\sn fStandardHR}{\sv 1}}{\sp{\sn fNoshadeHR}{\sv 1}}{\sp{\sn fHorizRule}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex6553\picscaley1\piccropl0\piccropr0\piccropt0\piccropb0\picw1764\pich882\picwgoal1000\pichgoal500\wmetafile8}}{\rtlch\fcs1 -\af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid2967352\charrsid2967352 -\par }\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4 -\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (} -{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 -\insrsid9320960 -\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a -9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad -5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 -b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 -0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 -a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f -c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 -0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 -a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 -6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b -4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b -4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100b6f4679893070000c9200000160000007468656d652f7468656d652f -7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd -ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d -7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b -d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52 -fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71 -b175b61bc320c71aa0ecd1a17bd41e35eb16ded0dfdce3dc0fd5c7c26b50a63fd8c34f2643b0a285d7a00c1feee1c3417730b2f56b50866fede1dbb5fe28685b -fa3528a6243ddf43d7c25673b85d6d0159327aec8477c360d26ee4ca4b144443115d6a8a254be5a1584bd00bc6270050408a24493db959e1259a43140f112567 -9c7827248a21f056286502866b8ddaa4d684ffea13e827ed5174849121ad780113b137a4f87862cec94af6fc07a0d537206f7ffef9cdeb1fdfbcfee9cd575fbd -79fdf77c6eadca923b466964cafdf2dd1ffef3cd6fbd7ffff0ed2f5fff319b7a172f4cfcbbbffdeedd3ffef93ef5b0e2d2146ffff4fdbb1fbf7ffbe7dfffebaf -5f3bb4f7393a33e1339260e13dc297de5396c0021dfcf119bf9ec42c46c494e8a791402952b338f48f656ca11f6d10450edc00db767cce21d5b880f7d72f2cc2 -d398af2571687c182716f094313a60dc6985876a2ec3ccb3751ab927e76b13f714a10bd7dc43945a5e1eaf579063894be530c616cd2714a5124538c5d253dfb1 -738c1dabfb8210cbaea764ce99604be97d41bc01224e93ccc899154da5d03149c02f1b1741f0b7659bd3e7de8051d7aa47f8c246c2de40d4417e86a965c6fb68 -2d51e252394309350d7e8264ec2239ddf0b9891b0b099e8e3065de78818570c93ce6b05ec3e90f21cdb8dd7e4a37898de4929cbb749e20c64ce4889d0f6394ac -5cd829496313fbb938871045de13265df05366ef10f50e7e40e941773f27d872f787b3c133c8b026a53240d4376beef0e57dccacf89d6ee8126157aae9f3c44a -b17d4e9cd131584756689f604cd1255a60ec3dfbdcc160c05696cd4bd20f62c82ac7d815580f901dabea3dc5027a25d5dcece7c91322ac909de2881de073bad9 -493c1b9426881fd2fc08bc6eda7c0ca52e7105c0633a3f37818f08f480102f4ea33c16a0c308ee835a9fc4c82a60ea5db8e375c32dff5d658fc1be7c61d1b8c2 -be04197c6d1948eca6cc7b6d3343d49aa00c9819822ec3956e41c4727f29a28aab165b3be596f6a62ddd00dd91d5f42424fd6007b4d3fb84ffbbde073a8cb77f -f9c6b10f3e4ebfe3566c25ab6b763a8792c9f14e7f7308b7dbd50c195f904fbfa919a175fa04431dd9cf58b73dcd6d4fe3ffdff73487f6f36d2773a8dfb8ed64 -7ce8306e3b99fc70e5e3743265f3027d8d3af0c80e7af4b14f72f0d46749289dca0dc527421ffc08f83db398c0a092d3279eb838055cc5f0a8ca1c4c60e1228e -b48cc799fc0d91f134462b381daafb4a492472d591f0564cc0a1911e76ea5678ba4e4ed9223becacd7d5c16656590592e5782d2cc6e1a04a66e856bb3cc02bd4 -6bb6913e68dd1250b2d721614c6693683a48b4b783ca48fa58178ce620a157f65158741d2c3a4afdd6557b2c805ae115f8c1edc1cff49e1f06200242701e07cd -f942f92973f5d6bbda991fd3d3878c69450034d8db08283ddd555c0f2e4fad2e0bb52b78da2261849b4d425b46377822869fc17974aad1abd0b8aeafbba54b2d -7aca147a3e08ad9246bbf33e1637f535c8ede6069a9a9982a6de65cf6f35430899395af5fc251c1ac363b282d811ea3717a211dcbccc25cf36fc4d32cb8a0b39 -4222ce0cae934e960d122231f728497abe5a7ee1069aea1ca2b9d51b90103e59725d482b9f1a3970baed64bc5ce2b934dd6e8c284b67af90e1b35ce1fc568bdf -1cac24d91adc3d8d1797de195df3a708422c6cd795011744c0dd413db3e682c0655891c8caf8db294c79da356fa3740c65e388ae62945714339967709dca0b3a -faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca2aaa6abab39835c3b60cecd8f26645de60b53531e434b3c2 -67a97b37e576b7b96ea74f28aa0418bcb09fa3ea5ea12018d4cac92c6a8af17e1a56393b1fb56bc776811fa07695226164fdd656ed8edd8a1ae19c0e066f54f9 -416e376a6168b9ed2bb5a5f5adb979b1cdce5e40f2184197bba6526857c2c92e47d0104d754f92a50dd8222f65be35e0c95b73d2f3bfac85fd60d80887955a27 -1c57826650ab74c27eb3d20fc3667d1cd66ba341e31514161927f530bbb19fc00506dde4f7f67a7cefee3ed9ded1dc99b3a4caf4dd7c5513d777f7f5c6e1bb7b -8f40d2f9b2d598749bdd41abd26df627956034e854bac3d6a0326a0ddba3c9681876ba9357be77a1c141bf390c5ae34ea5551f0e2b41aba6e877ba9576d068f4 -8376bf330efaaff23606569ea58fdc16605ecdebde7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d65 -2f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d36 -3f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e -3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d985 -0528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000 -0000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000 -000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019020000 -7468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100b6f4679893070000c92000001600000000000000 -000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000 -000000000000000000009d0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000980b00000000} -{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d -617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 -6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 -656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} -{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; -\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; -\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; -\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; -\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; -\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; -\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; -\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; -\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; -\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; -\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; -\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; -\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; -\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; -\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; -\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; -\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; -\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; -\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; -\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; -\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; -\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; -\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; -\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; -\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; -\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; -\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; -\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; -\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; -\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; -\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; -\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000 -02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 -d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000003013 -9f40f0aed701feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/SupportingDocs/DDP_PROTOCOL.pdf b/SupportingDocs/DDP_PROTOCOL.pdf new file mode 100644 index 000000000..0e2d69f22 Binary files /dev/null and b/SupportingDocs/DDP_PROTOCOL.pdf differ