diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2019-02-09 06:27:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-09 06:27:23 +0100 |
commit | b41fdd0111baf86132c3b61b8e1e6085635e77be (patch) | |
tree | 2caea6565fe3c2b070ab5260380664246a4d10fb | |
parent | b9d34a26d35d05f793161e54001329edb5122a81 (diff) | |
parent | 26ad3d2b154f9161cf577060f9b161e3312b5e76 (diff) |
Merge pull request #869 from Slion/tracker-kinect-face
Tracker kinect face
-rw-r--r-- | 3rdparty-notices/Kinect-V2-SDK-Eula.rtf | 525 | ||||
-rw-r--r-- | tracker-kinect-face/CMakeLists.txt | 42 | ||||
-rw-r--r-- | tracker-kinect-face/images/kinect.png | bin | 0 -> 217 bytes | |||
-rw-r--r-- | tracker-kinect-face/kinect_face.qrc | 5 | ||||
-rw-r--r-- | tracker-kinect-face/kinect_face_settings.cpp | 47 | ||||
-rw-r--r-- | tracker-kinect-face/kinect_face_settings.h | 28 | ||||
-rw-r--r-- | tracker-kinect-face/kinect_face_settings.ui | 65 | ||||
-rw-r--r-- | tracker-kinect-face/kinect_face_tracker.cpp | 606 | ||||
-rw-r--r-- | tracker-kinect-face/kinect_face_tracker.h | 117 | ||||
-rw-r--r-- | tracker-kinect-face/lang/nl_NL.ts | 22 | ||||
-rw-r--r-- | tracker-kinect-face/lang/ru_RU.ts | 22 | ||||
-rw-r--r-- | tracker-kinect-face/lang/stub.ts | 22 | ||||
-rw-r--r-- | tracker-kinect-face/lang/zh_CN.ts | 22 |
13 files changed, 1523 insertions, 0 deletions
diff --git a/3rdparty-notices/Kinect-V2-SDK-Eula.rtf b/3rdparty-notices/Kinect-V2-SDK-Eula.rtf new file mode 100644 index 00000000..c2e634f7 --- /dev/null +++ b/3rdparty-notices/Kinect-V2-SDK-Eula.rtf @@ -0,0 +1,525 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff39\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\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\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502040204020203}Segoe UI;}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Tahoma;} +{\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;}{\f40\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\f41\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f43\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f44\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f45\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\f46\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f47\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f48\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f50\fbidi \fswiss\fcharset238\fprq2 Arial CE;} +{\f51\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\f53\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f54\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f55\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);} +{\f56\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\f57\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f58\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f60\fbidi \fmodern\fcharset238\fprq1 Courier New CE;} +{\f61\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f63\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f64\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f65\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);} +{\f66\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f67\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f68\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f430\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;} +{\f431\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f433\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f434\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f435\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);} +{\f436\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f437\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f438\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f439\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);} +{\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\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\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;\caccentone\ctint255\cshade191\red46\green116\blue181;\caccentone\ctint255\cshade127\red31\green77\blue120;\red31\green73\blue125;} +{\*\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\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{ +\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat +heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\s3\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink17 \sqformat heading 3;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\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 \af0\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 \af0\afs32 \ltrch\fcs0 \fs32\cf17\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \af0\afs26 \ltrch\fcs0 +\fs26\cf17\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\cf18\loch\f31502\hich\af31502\dbch\af31501 +\sbasedon10 \slink3 \slocked \ssemihidden \spriority9 Heading 3 Char;}{\s18\ql \li0\ri0\nowidctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext18 \slink19 \sunhideused \styrsid1930808 header;}{\*\cs19 \additive \rtlch\fcs1 \af39\afs24 \ltrch\fcs0 \f39\fs24 +\sbasedon10 \slink18 \slocked \styrsid1930808 Header Char;}{\s20\ql \li0\ri0\nowidctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext20 \slink21 \sunhideused \styrsid1930808 footer;}{\*\cs21 \additive \rtlch\fcs1 \af39\afs24 \ltrch\fcs0 \f39\fs24 +\sbasedon10 \slink20 \slocked \styrsid1930808 Footer Char;}{\*\cs22 \additive \rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \fs16 \sbasedon10 \ssemihidden \sunhideused \styrsid4929922 annotation reference;}{ +\s23\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext23 \slink24 \ssemihidden \sunhideused \styrsid4929922 annotation text;}{\*\cs24 \additive \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f39\fs20 \sbasedon10 \slink23 \slocked \ssemihidden \styrsid4929922 Comment Text Char;}{ +\s25\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \ab\af39\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon23 \snext23 \slink26 \ssemihidden \sunhideused \styrsid4929922 annotation subject;}{\*\cs26 \additive \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20 \sbasedon24 \slink25 \slocked \ssemihidden \styrsid4929922 Comment Subject Char;}{ +\s27\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs18\alang1025 \ltrch\fcs0 \fs18\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext27 \slink28 \ssemihidden \sunhideused \styrsid4929922 Balloon Text;}{\*\cs28 \additive \rtlch\fcs1 \af38\afs18 \ltrch\fcs0 \f38\fs18 \sbasedon10 \slink27 \slocked \ssemihidden \styrsid4929922 Balloon Text Char;}{ +\s29\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext29 \sqformat \spriority34 \styrsid5338358 List Paragraph;}}{\*\listtable{\list\listtemplateid-1933036156\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext +\'01*;}{\levelnumbers;}}{\listname ;}\listid-2}{\list\listtemplateid1663739596\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 +\fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2880\lin2880 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6480\lin6480 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7200\lin7200 }{\listname ;}\listid296491462}{\list\listtemplateid1166995046\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691 +\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 +\fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3600\lin3600 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 +\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6480\lin6480 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7200\lin7200 }{\listname ;}\listid728115947}{\list\listtemplateid-576179798\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li1260\lin1260 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1980\lin1980 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2700\lin2700 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;} +\f3\fbias0 \fi-360\li3420\lin3420 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li4140\lin4140 } +{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4860\lin4860 }{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5580\lin5580 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6300\lin6300 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7020\lin7020 }{\listname ;}\listid844515658}{\list\listtemplateid2023228974\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1800\lin1800 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li2520\lin2520 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li3240\lin3240 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689 +\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3960\lin3960 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 +\fi-360\li4680\lin4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5400\lin5400 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li6120\lin6120 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6840\lin6840 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7560\lin7560 }{\listname ;}\listid1411999391}{\list\listtemplateid-926094602\listhybrid{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li1800\lin1800 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li2520\lin2520 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 +{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li3240\lin3240 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689 +\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3960\lin3960 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 +\fi-360\li4680\lin4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5400\lin5400 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li6120\lin6120 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6840\lin6840 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7560\lin7560 }{\listname ;}\listid1653637060}{\list\listtemplateid11189262\listsimple{\listlevel\levelnfc4\levelnfcn4\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af39 \ltrch\fcs0 \b\f39\fbias0 }{\listname ;}\listid1681809293}}{\*\listoverridetable{\listoverride\listid1681809293 +\listoverridecount0\ls1}{\listoverride\listid296491462\listoverridecount0\ls2}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0 +\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }}\ls3}{\listoverride\listid1653637060\listoverridecount0\ls4}{\listoverride\listid1411999391\listoverridecount0\ls5}{\listoverride\listid728115947\listoverridecount0\ls6} +{\listoverride\listid844515658\listoverridecount0\ls7}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid73750\rsid91414\rsid675470\rsid1909739\rsid1930808\rsid2042763\rsid3882049\rsid3949644\rsid4196885\rsid4796860\rsid4929922\rsid5338358 +\rsid6816407\rsid6969745\rsid7096959\rsid7297413\rsid7679777\rsid7695099\rsid8139599\rsid8222967\rsid8745415\rsid9392452\rsid9909308\rsid10056964\rsid10234499\rsid10296048\rsid10437656\rsid10570424\rsid10897255\rsid11022658\rsid11090850\rsid11808396 +\rsid11829074\rsid11871500\rsid11937711\rsid11949759\rsid13329978\rsid13781786\rsid14225958\rsid14551182\rsid14579304\rsid15495172\rsid15621282\rsid16385968\rsid16457108}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0 +\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\creatim\yr2014\mo8\dy27\hr11\min25}{\revtim\yr2014\mo8\dy27\hr11\min25}{\version1}{\edmins0}{\nofpages6}{\nofwords1938}{\nofchars11052}{\nofcharsws12965}{\vern57437}}{\*\xmlnstbl {\xmlns1 http://schemas. +microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml1\donotembedlingdata0\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 +\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewscale100\splytwnine\ftnlytwnine\htmautsp\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\rempersonalinfo\allowfieldendsel\wrppunct\asianbrkrule\rsidroot6816407 +\newtblstyruls\nogrowautofit\remdttm\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0{\*\wgrffmtfilter 2450} +\nofeaturethrottle1\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsep +\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsepc +\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsep +\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsepc +\par }}\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\sb120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 +\af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Microsoft Kinect for Windows}{ +\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Software Development Kit (SDK) +\par }\pard \ltrpar\ql \li0\ri0\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, \hich\af39\dbch\af31505\loch\f39 +which includes the media on which you received it, if any. It also applies to any Microsoft}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb120\sa120\nowidctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +\f1\fs20\insrsid8745415 \tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 updates}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 , +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 supplements, +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 \tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +documentation, and}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 \tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +support services}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +for this software, unless other terms accompany those items. If so, those terms apply. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 The softwar\hich\af39\dbch\af31505\loch\f39 e is licensed, not sold.}{\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{ +\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 +By downloading, installing, accessing, or using the software, you accept all terms in this agreement. If you do not accept them, do not download, install, access, or use the software. \'93\loch\f39 \hich\f39 You\'94\loch\f39 \hich\f39 or \'93\loch\f39 +\hich\f39 you\'94\loch\f39 means the individual who downloa\hich\af39\dbch\af31505\loch\f39 +ds, installs, accesses, or uses the software (and, if you represent a legal entity, it also means that entity, and you represent and warrant that you are authorized to enter into this agreement for that entity).}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 If you comply with these license terms, you\hich\af39\dbch\af31505\loch\f39 have the rights below.}{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 +\b\f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid8745415 \hich\af1\dbch\af31505\loch\f1 1. }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 INSTALLATION AND USE RIGHTS. +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0\pararsid6816407 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Installation and Use.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 You may (i) install and use any number of copies of the software (only when installed using the accompanying software installer package) on your computer to design, develop, and \hich\af39\dbch\af31505\loch\f39 +test your programs that run specifically on a Microsoft Windows operating system, and that are intended for use solely in connection with }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 the }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Microsoft Kinect for Windows}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3882049 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 \hich\f39 (\'93\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid3882049 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 \hich\af39\dbch\af31505\loch\f39 + Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \loch\af39\dbch\af31505\hich\f39 \'94\loch\f39 )}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +, and its associated drivers and runtime software, and no other sensor }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid73750 \hich\af39\dbch\af31505\loch\f39 unless such sensor is supported by Microsoft }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 (}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid6969745 \hich\af39\dbch\af31505\loch\f39 collectively, the }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\loch\af39\dbch\af31505\hich\f39 \'93\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 V2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 + Applications\'94\loch\f39 ), and (ii) distribute your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3882049 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2 }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications, subject to the terms in this agreement. +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 b.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \b\fs20\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 Tele\hich\af39\dbch\af31505\loch\f39 metry Data Collection. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 When in use by you, the software will provide Microsoft with telemetry data }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 +(e.g. operating system, number of processors, graphic chipset, memory, device type, locale, time) regarding your installation and use. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid14225958 \hich\af39\dbch\af31505\loch\f39 +The data will not be u\hich\af39\dbch\af31505\loch\f39 sed to identify specific individuals. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\lang9\langfe1033\langnp9\insrsid8222967 \hich\af39\dbch\af31505\loch\f39 Microsoft will}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 use the Telemetry Data for product and }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid91414 \hich\af39\dbch\af31505\loch\f39 service}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 improvements. +}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7695099\charrsid7695099 +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 c.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0\pararsid6816407 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Included Microsoft Programs.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 The software includes other Microsoft programs. The license terms with those programs apply to your use o\hich\af39\dbch\af31505\loch\f39 f them. +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 d.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0\pararsid6816407 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 No High Risk Use. WARNING:}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 The Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2 }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 \hich\af39\dbch\af31505\loch\f39 S}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 ensor and the software are not fault-tolerant. The Kinect }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 +\hich\af39\dbch\af31505\loch\f39 Sensor }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 and the software are not designed or intended for use with any program where failure or fault of any kind of the Kinect }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 +\hich\af39\dbch\af31505\loch\f39 Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 or soft +\hich\af39\dbch\af31505\loch\f39 \hich\f39 ware could lead to death or serious bodily injury of any person, or to severe physical or environmental damage (\'93\loch\f39 \hich\f39 High Risk Use\'94\loch\f39 +). You are not licensed to, and you agree not to, use, distribute or sublicense the use of the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor and/or software in, or in conjunction with, High Risk Use. High Risk Use is STRICTLY PROHIBITED. }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 High Risk Use includes, for example, the following: aircraft navigation and control of other modes of human mass transportation, nuclear or chemical f\hich\af39\dbch\af31505\loch\f39 acilities. }{\rtlch\fcs1 \ab\af1\afs20 +\ltrch\fcs0 \b\f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid8745415 \hich\af1\dbch\af31505\loch\f1 2}{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 . ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS +\par }\pard \ltrpar\ql \fi-183\li363\ri0\sa100\nowidctlpar\tx363\wrapdefault\faauto\rin0\lin363\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a.\tab Distributable Code}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . The software contains code that you are permitted to distribute solely in Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications if you comply with the terms below. +\par }\pard\plain \ltrpar\s3\ql \fi-357\li1077\ri0\sb120\sa120\nowidctlpar\tx1080\wrapdefault\faauto\outlinelevel2\rin0\lin1077\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 i.\tab Right to Use and \hich\af39\dbch\af31505\loch\f39 \hich\f39 +Distribute. The code and text files listed below are \'93\loch\f39 \hich\f39 Distributable Code.\'94 +\par }\pard\plain \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 REDIST.TXT Files}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . You may copy and distribute the object code form of code listed in REDIST.TXT files}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 + as part of your Kinect v2 Application}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 . +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\ul\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sample Code}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . You may modify, copy \hich\af39\dbch\af31505\loch\f39 +and distribute the source and object code form of code in the Samples subdirectory}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 as part of your Kinect v2 Application}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +\f1\fs20\insrsid8745415 .}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid8745415 +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Third Party Distribution}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . You may permit distributors of your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications to copy and distribute the Distributable Code a\hich\af39\dbch\af31505\loch\f39 s part of those Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 +\hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications. +\par {\listtext\pard\plain\ltrpar \s29 \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f3\fs20\insrsid5338358\charrsid11829074 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s29\ql \fi-360\li1440\ri0\nowidctlpar +\tx900\wrapdefault\faauto\ls7\rin0\lin1440\itap0\pararsid11829074\contextualspace \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\ul\insrsid5338358\charrsid11829074 \hich\af39\dbch\af31505\loch\f39 Third Party Programs}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid5338358\charrsid11829074 \hich\af39\dbch\af31505\loch\f39 +. This software may contain certain third-party programs. You agree that your use of them is governed by the license terms provided with those programs. +\par }\pard\plain \ltrpar\ql \li0\ri0\sa100\nowidctlpar\tx1512\wrapdefault\faauto\rin0\lin0\itap0\pararsid11829074 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 ii. Distribution Requirements.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 For any D\hich\af39\dbch\af31505\loch\f39 istributable Code you distribute, you must: }{\rtlch\fcs1 +\af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 add significant primary functionality to it in your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications; +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0\pararsid11829074 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 distribute Distributable Code included in a setup program only as part of that setup program without modification}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 +\hich\af39\dbch\af31505\loch\f39 ;}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11808396 +\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f10\fs20\insrsid14225958 \loch\af10\dbch\af31505\hich\f10 \'a7\tab}}\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\ls6\rin0\lin1440\itap0\pararsid11829074 { +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14225958 \hich\af39\dbch\af31505\loch\f39 c}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 learly state in your Kinect V2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 A}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 pplication (as well as require your licensees to do so) }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid15495172 \hich\af39\dbch\af31505\loch\f39 a privacy statement}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 + regarding the collection and use of customer data as well as the following statement regarding Microsoft\hich\f39 \rquote \loch\f39 s }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid91414 \hich\af39\dbch\af31505\loch\f39 collection and }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 use of customer data}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 \hich\f39 : \'93}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\ul\insrsid10234499\charrsid11829074 \hich\af39\dbch\af31505\loch\f39 No\hich\af39\dbch\af31505\loch\f39 te}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 : When using }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 the _________________(insert name of Your}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 2 Application}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 )} +{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 with a Kinect for Windows v2 Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14225958 ,}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 +\hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 +Microsoft will collect telemetry data (e.g. operating system, number of processors, graphic chipset, memory, device type, locale, time) in\hich\af39\dbch\af31505\loch\f39 order to improve }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\lang9\langfe1033\langnp9\insrsid91414 \hich\af39\dbch\af31505\loch\f39 Microsoft products and services}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 \hich\f39 +. The data will not be used to identify specific individuals.\'94\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978\charrsid11871500 \hich\af39\dbch\af31505\loch\f39 +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 clearly state in marketing materials, documentation and other materials related to the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Application (e.g. on the webpages on whi\hich\af39\dbch\af31505\loch\f39 +ch the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 V2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Application is described or from which the Kinect }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 V2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + Application may be downloaded or otherwise obtained), that it is intended for use only with the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 V2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid16457108 \hich\af39\dbch\af31505\loch\f39 S}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 ensor; +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 require }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 licensees, }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 distributors and external end users to agree to }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 license }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 terms that}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 are as protective of Microsoft\hich\f39 \rquote \loch\f39 +s rights and interests in the Distributable Code as stated in this agreement; and }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 display your valid copyright notice on your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 . +\par }\pard\plain \ltrpar\s3\ql \fi-357\li1077\ri0\sb120\sa120\nowidctlpar\tx1077\tx1440\wrapdefault\faauto\outlinelevel2\rin0\lin1077\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 iii.\tab Distribution Restrictions. You may not: +\par }\pard\plain \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 alter\hich\af39\dbch\af31505\loch\f39 + any copyright, trademark or patent notice in the Distributable Code; +\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f10\fs20\insrsid13329978 \loch\af10\dbch\af31505\hich\f10 \'a7\tab}}\pard \ltrpar\ql \fi-360\li1440\ri0\sb120\sa120\nowidctlpar +\tx1437\wrapdefault\faauto\ls2\rin0\lin1440\itap0\pararsid11829074 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 +License the Microsoft Distributable Code in a manner inconsistent with the terms of this License. +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 use Microsoft\hich\f39 \rquote \loch\f39 s trademarks, including but not limited to Microsoft, Kinect and Window\hich\af39\dbch\af31505\loch\f39 s, in your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications\hich\f39 \rquote \loch\f39 names or in a way that suggests your Kinect for }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications come from or are endorsed by Microsoft; +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 distribute Distributable Code to run on a platform other than a Microsoft Windows operating system; +\par }\pard \ltrpar\ql \fi-360\li1437\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1437\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 include Distr\hich\af39\dbch\af31505\loch\f39 ibutable Code in malicious, obscene, deceptive or unlawful programs; +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 include Distributable Code for any programs designed or intended for High Risk Use; or}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid8745415 +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +modify or distribute the source code of any Distributable Code so that any part of it becomes su\hich\af39\dbch\af31505\loch\f39 +bject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-357\li1792\ri0\sb120\sa120\nowidctlpar\tx1795\wrapdefault\faauto\rin0\lin1792\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 the code be disclosed or distributed in source code form; or +\par }\pard \ltrpar\ql \fi-357\li1792\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1792\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 others have the right to modify it. +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid8745415 \hich\af1\dbch\af31505\loch\f1 3. }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 SCOPE OF LICENSE.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permit +\hich\af39\dbch\af31505\loch\f39 t\hich\af39\dbch\af31505\loch\f39 ed in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not:}{\rtlch\fcs1 \af1\afs20 +\ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 access or use, or attempt to access or use, features of the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 Sensor that are not \hich\af39\dbch\af31505\loch\f39 exposed or enabled by the software; +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 distribute Kinect }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 Applications for use with any sensor other than }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 the }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid3949644\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid16457108\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid14225958 \hich\af39\dbch\af31505\loch\f39 or }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 its associated drivers and runtime software;}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 use the software or any Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 Applications in any High Risk Use; }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 work \hich\af39\dbch\af31505\loch\f39 around any technical limitations in the software; +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +reverse engineer, decompile, or disassemble any part of the software not provided in source code form, except and only to the extent that applicable law expressly permits, despite this limitation; +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 publi\hich\af39\dbch\af31505\loch\f39 sh the software for others to copy; +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 rent, lease, or lend the software; +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 transfer the software or this agreement to any third party; or +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid11829074 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 use the software for commercial software hosting services.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 4. REGULATORY COMPLIANCE. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 You agree that your developmen\hich\af39\dbch\af31505\loch\f39 t, marketing, sales, and distribution of Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 +\hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + Applications shall be in compliance with all applicable legal requirements, including compliance with the medical device regulatory requirements of the U.S. Federal Food, Drug, and Cosmetic Act and any ass\hich\af39\dbch\af31505\loch\f39 +ociated requirements, or similar laws, regulations, or policies in other countries or territories.\~ + To the extent required by law, you are solely responsible for obtaining or filing any approval, clearance, registration, permit, or other regulatory author\hich\af39\dbch\af31505\loch\f39 i\hich\af39\dbch\af31505\loch\f39 +zation and shall comply with the requirements of such authorization. +\par }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\cf19\insrsid8745415 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 5. ACKNOWLEDGEMENT AND WAIVER. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +You acknowledge the software may allow you to control the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid16457108 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +Sensor, which are mechanical hardware devices that include motors to move the device, \hich\af39\dbch\af31505\loch\f39 +a fan to cool it, and other mechanical components. Depending on how you elect to use the software, you could harm persons or damage or destroy the Kinect}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor, products incorporating the Kinect}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor, or other property. In using the software, you must take steps to design and test your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 +\hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +Applications to ensure that your applications do not present unreasonable risks of personal injury or death, property damage, or other losses. Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v +\hich\af39\dbch\af31505\loch\f39 2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +Sensors utilize complex hardware and software technology that may not always function as intended. You must design your application so that any failure of a Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 +\hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor and/or the software does not cause personal injury or death, property damage, or\hich\af39\dbch\af31505\loch\f39 + other losses. If you choose to use the software, you assume all risk that your use of the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 Sensors and/or the software causes any harm or loss, including to the end users of your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications, and you agree to waive all claims against M\hich\af39\dbch\af31505\loch\f39 +icrosoft and its affiliates related to such use (including but not limited to any claim that a Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor or the software is defective) and to hold Microsoft and its affiliates harmless from such claims. +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 6. INDEMNIFICATION. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 You agree to indemnify, \hich\af39\dbch\af31505\loch\f39 defend, and hold harmless Microsoft and its affiliates from any claims, including attorneys\hich\f39 \rquote \loch\f39 + fees, related to the distribution or use of your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + Applications. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 7. BACKUP COPY.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + You may make one backup copy of the software. You may use it only to reins\hich\af39\dbch\af31505\loch\f39 tall the software. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 8. DOCUMENTATION.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Any person }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid1909739 \hich\af39\dbch\af31505\loch\f39 who }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 9. SUPPORT SERVICES.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 Because this software is \'93\loch\f39 \hich\f39 as is,\'94\loch\f39 we may not provide\hich\af39\dbch\af31505\loch\f39 support services for it. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 10.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 EXPORT RESTRICTIONS.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrict\hich\af39\dbch\af31505\loch\f39 +ions on destinations, end users, and end use. For additional information, see }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\cf2\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 www.microsoft.com/exporting}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 .}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\insrsid8745415 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 11. ENTIRE AGREEMENT.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the enti\hich\af39\dbch\af31505\loch\f39 re agreement for the software and support services. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 12. APPLICABLE LAW. +\par }\pard \ltrpar\ql \li360\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a. United States.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other +\hich\af39\dbch\af31505\loch\f39 c\hich\af39\dbch\af31505\loch\f39 laims, including claims under state consumer protection laws, unfair competition laws, and in tort. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 b. Outside the United States.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + If you acquired the software in any other country, the laws of that country apply. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 13. LEGAL EFFECT.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 This agreement describes \hich\af39\dbch\af31505\loch\f39 +certain legal rights. You may have other rights under the laws of your state, province or country. This agreement does not change your rights under the laws of your state, province or country if the laws of your state, province or country do not permit it +\hich\af39\dbch\af31505\loch\f39 \hich\af39\dbch\af31505\loch\f39 to do so. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 14. DISCLAIMER OF WARRANTY. The software is licensed \'93\loch\f39 \hich\f39 as-is.\'94\loch\f39 + You bear all risk of using it. Microsoft gives no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws that this agreement cannot\hich\af39\dbch\af31505\loch\f39 + change. To the extent permitted under your local laws, Microsoft excludes the implied warranties of merchantability, fitness for a particular purpose, and non-infringement.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 15. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from Micr\hich\af39\dbch\af31505\loch\f39 +osoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li360\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 This limitation applies to +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 anything related to the software, services, co +\hich\af39\dbch\af31505\loch\f39 ntent (including code) on third party Internet sites, or third party programs; and +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 b.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + claims for breach of contract; breach of warranty, guarantee, or condition; strict liability, negligence, or other tort, to the extent permitted by applicable law. +\par \hich\af39\dbch\af31505\loch\f39 It als\hich\af39\dbch\af31505\loch\f39 +o applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province or country may not allow the exclusion or limitation of incidental, consequenti +\hich\af39\dbch\af31505\loch\f39 a\hich\af39\dbch\af31505\loch\f39 l, or other damages. +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdlocked0 heading 1;\lsdqformat1 \lsdlocked0 heading 2; +\lsdqformat1 \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;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000f062 +dc4024c2cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file diff --git a/tracker-kinect-face/CMakeLists.txt b/tracker-kinect-face/CMakeLists.txt new file mode 100644 index 00000000..690f82e7 --- /dev/null +++ b/tracker-kinect-face/CMakeLists.txt @@ -0,0 +1,42 @@ +# Kinect SDK is Windows only +if (WIN32) + find_package(OpenCV QUIET) + if(OpenCV_FOUND) + # Setup cache variable to Kinect SDK path + if(DEFINED ENV{KINECTSDK20_DIR}) + set(SDK_KINECT20 $ENV{KINECTSDK20_DIR} CACHE PATH $ENV{KINECTSDK20_DIR}) + else() + set(SDK_KINECT20 $ENV{KINECTSDK20_DIR} CACHE PATH "") + endif() + + # If we have a valid SDK path, try build that tracker + if(EXISTS ${SDK_KINECT20}) + # Register our module + otr_module(tracker-kinect-face) + + # Add include path to Kinect SDK + target_include_directories(opentrack-tracker-kinect-face SYSTEM PUBLIC "${SDK_KINECT20}/inc") + + # Check processor architecture + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + # 32 bits + set (kinect-arch-dir "x86") + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + # 64 bits + set (kinect-arch-dir "x64") + else() + message(FATAL_ERROR "Kinect: architecture not supported!") + endif() + + # Link against Kinect SDK libraries + target_link_libraries(opentrack-tracker-kinect-face "${SDK_KINECT20}/lib/${kinect-arch-dir}/Kinect20.lib" "${SDK_KINECT20}/lib/${kinect-arch-dir}/Kinect20.Face.lib") + # Link against OpenCV stuff, needed for video preview + target_link_libraries(opentrack-tracker-kinect-face opencv_imgproc opentrack-cv opencv_core) + + # Install Kinect Face DLL + install(FILES "${SDK_KINECT20}/Redist/Face/${kinect-arch-dir}/Kinect20.Face.dll" DESTINATION "./modules/" PERMISSIONS ${opentrack-perms-exec}) + # Install Kinect Face Database + install(DIRECTORY "${SDK_KINECT20}/Redist/Face/${kinect-arch-dir}/NuiDatabase" DESTINATION "./modules/") + endif(EXISTS ${SDK_KINECT20}) + endif(OpenCV_FOUND) +endif(WIN32)
\ No newline at end of file diff --git a/tracker-kinect-face/images/kinect.png b/tracker-kinect-face/images/kinect.png Binary files differnew file mode 100644 index 00000000..fd8f5f77 --- /dev/null +++ b/tracker-kinect-face/images/kinect.png diff --git a/tracker-kinect-face/kinect_face.qrc b/tracker-kinect-face/kinect_face.qrc new file mode 100644 index 00000000..8b27c81e --- /dev/null +++ b/tracker-kinect-face/kinect_face.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>images/kinect.png</file> + </qresource> +</RCC> diff --git a/tracker-kinect-face/kinect_face_settings.cpp b/tracker-kinect-face/kinect_face_settings.cpp new file mode 100644 index 00000000..238a3da6 --- /dev/null +++ b/tracker-kinect-face/kinect_face_settings.cpp @@ -0,0 +1,47 @@ +/* Copyright (c) 2014, Stanislaw Halik <sthalik@misaki.pl> + + * Permission to use, copy, modify, and/or distribute this + * software for any purpose with or without fee is hereby granted, + * provided that the above copyright notice and this permission + * notice appear in all copies. + */ + +#include "kinect_face_settings.h" +#include "kinect_face_tracker.h" +#include "api/plugin-api.hpp" +#include "compat/math-imports.hpp" + +#include <QPushButton> + +#include <cmath> +#include <QDebug> + + +KinectFaceSettings::KinectFaceSettings() +{ + ui.setupUi(this); + + connect(ui.buttonBox, &QDialogButtonBox::clicked, [this](QAbstractButton* btn) { + if (btn == ui.buttonBox->button(QDialogButtonBox::Abort)) + { + // NOLINTNEXTLINE + //*(volatile int*)nullptr = 0; + } + }); + + connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(doOK())); + connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(doCancel())); +} + +void KinectFaceSettings::doOK() +{ + //s.b->save(); + close(); +} + +void KinectFaceSettings::doCancel() +{ + close(); +} + +OPENTRACK_DECLARE_TRACKER(KinectFaceTracker, KinectFaceSettings, KinectFaceMetadata) diff --git a/tracker-kinect-face/kinect_face_settings.h b/tracker-kinect-face/kinect_face_settings.h new file mode 100644 index 00000000..647aa754 --- /dev/null +++ b/tracker-kinect-face/kinect_face_settings.h @@ -0,0 +1,28 @@ +#pragma once +#include "ui_kinect_face_settings.h" +#include "compat/macros.hpp" +#include "api/plugin-api.hpp" + + +class KinectFaceSettings : public ITrackerDialog +{ + Q_OBJECT + + Ui::KinectFaceUi ui; +public: + KinectFaceSettings(); + void register_tracker(ITracker *) override {} + void unregister_tracker() override {} +private slots: + void doOK(); + void doCancel(); +}; + +class KinectFaceMetadata : public Metadata +{ + Q_OBJECT + + QString name() { return tr("Kinect Face 0.1"); } + QIcon icon() { return QIcon(":/images/kinect.png"); } +}; + diff --git a/tracker-kinect-face/kinect_face_settings.ui b/tracker-kinect-face/kinect_face_settings.ui new file mode 100644 index 00000000..a6192d9b --- /dev/null +++ b/tracker-kinect-face/kinect_face_settings.ui @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>KinectFaceUi</class> + <widget class="QWidget" name="KinectFaceUi"> + <property name="windowModality"> + <enum>Qt::NonModal</enum> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>278</width> + <height>58</height> + </rect> + </property> + <property name="windowTitle"> + <string>Kinect Face Tracker</string> + </property> + <property name="windowIcon"> + <iconset> + <normaloff>:/images/kinect.png</normaloff>:/images/kinect.png</iconset> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Start OpenTrack to check if Kinect Face Tracker is working.</string> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Abort|QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> + <slots> + <slot>startEngineClicked()</slot> + <slot>stopEngineClicked()</slot> + <slot>cameraSettingsClicked()</slot> + </slots> +</ui> diff --git a/tracker-kinect-face/kinect_face_tracker.cpp b/tracker-kinect-face/kinect_face_tracker.cpp new file mode 100644 index 00000000..104ecda8 --- /dev/null +++ b/tracker-kinect-face/kinect_face_tracker.cpp @@ -0,0 +1,606 @@ + + +#include "kinect_face_tracker.h" + +#include <QLayout> +#include <QPainter> + +#include "compat/check-visible.hpp" + +static const int KColorWidth = 1920; +static const int KColorHeight = 1080; + +/// +bool IsValidRect(const RectI& aRect) +{ + if (aRect.Bottom != 0) + { + return true; + } + + if (aRect.Left != 0) + { + return true; + } + + if (aRect.Right != 0) + { + return true; + } + + if (aRect.Top != 0) + { + return true; + } + + return false; +} + +/// +bool IsNullVetor(const Vector4& aVector) +{ + if (aVector.w != 0) + { + return false; + } + + if (aVector.x != 0) + { + return false; + } + + if (aVector.y != 0) + { + return false; + } + + if (aVector.z != 0) + { + return false; + } + + return true; +} + +/// +bool IsNullPoint(const CameraSpacePoint& aPoint) +{ + if (aPoint.X != 0) + { + return false; + } + + if (aPoint.Y != 0) + { + return false; + } + + if (aPoint.Z != 0) + { + return false; + } + + return true; +} + + +KinectFaceTracker::KinectFaceTracker() +{ + // create heap storage for color pixel data in RGBX format + iColorRGBX = new RGBQUAD[KColorWidth * KColorHeight]; +} + +KinectFaceTracker::~KinectFaceTracker() +{ + if (iColorRGBX) + { + delete[] iColorRGBX; + iColorRGBX = nullptr; + } + + // clean up Direct2D + //SafeRelease(m_pD2DFactory); + + // done with face sources and readers + SafeRelease(iFaceFrameSource); + SafeRelease(iFaceFrameReader); + + // done with body frame reader + SafeRelease(iBodyFrameReader); + + // done with color frame reader + SafeRelease(iColorFrameReader); + + // close the Kinect Sensor + if (iKinectSensor) + { + iKinectSensor->Close(); + } + + SafeRelease(iKinectSensor); +} + +module_status KinectFaceTracker::start_tracker(QFrame* aFrame) +{ + iTimer.start(); + + if (SUCCEEDED(InitializeDefaultSensor())) + { + // Setup our video preview widget + iVideoWidget = std::make_unique<cv_video_widget>(aFrame); + iLayout = std::make_unique<QHBoxLayout>(aFrame); + iLayout->setContentsMargins(0, 0, 0, 0); + iLayout->addWidget(iVideoWidget.get()); + aFrame->setLayout(iLayout.get()); + //video_widget->resize(video_frame->width(), video_frame->height()); + aFrame->show(); + + return status_ok(); + } + + return error("Kinect init failed!"); +} + + +bool KinectFaceTracker::center() +{ + // Mark our center + iFacePositionCenter = iFacePosition; + iFaceRotationCenter = iFaceRotation; + return true; +} + +// +// +// +void KinectFaceTracker::data(double *data) +{ + const double dt = iTimer.elapsed_seconds(); + + const double KMinDelayInSeconds = 1.0 / 30.0; // Pointless running faster than Kinect hardware itself + if (dt > KMinDelayInSeconds) + { + iTimer.start(); // Reset our timer + //OutputDebugStringA("Updating frame!\n"); + Update(); + ExtractFaceRotationInDegrees(&iFaceRotationQuaternion, &iFaceRotation.X, &iFaceRotation.Y, &iFaceRotation.Z); + //Check if data is valid + if (IsValidRect(iFaceBox)) + { + // We have valid tracking retain position and rotation + iLastFacePosition = iFacePosition; + iLastFaceRotation = iFaceRotation; + } + else + { + //TODO: after like 5s without tracking reset position to zero + //TODO: Instead of hardcoding that delay add it to our settings + } + } + else + { + //OutputDebugStringA("Skipping frame!\n"); + } + + // Feed our framework our last valid position and rotation + data[0] = (iLastFacePosition.X - iFacePositionCenter.X) * 100; // Convert to centimer to be in a range that suites OpenTrack. + data[1] = (iLastFacePosition.Y - iFacePositionCenter.Y) * 100; + data[2] = (iLastFacePosition.Z - iFacePositionCenter.Z) * 100; + + // Yaw, Picth, Roll + data[3] = -(iLastFaceRotation.X - iFaceRotationCenter.X); // Invert to be compatible with ED out-of-the-box + data[4] = (iLastFaceRotation.Y - iFaceRotationCenter.Y); + data[5] = (iLastFaceRotation.Z - iFaceRotationCenter.Z); +} + + +/// <summary> +/// Converts rotation quaternion to Euler angles +/// And then maps them to a specified range of values to control the refresh rate +/// </summary> +/// <param name="pQuaternion">face rotation quaternion</param> +/// <param name="pPitch">rotation about the X-axis</param> +/// <param name="pYaw">rotation about the Y-axis</param> +/// <param name="pRoll">rotation about the Z-axis</param> +void KinectFaceTracker::ExtractFaceRotationInDegrees(const Vector4* pQuaternion, float* pYaw, float* pPitch, float* pRoll) +{ + double x = pQuaternion->x; + double y = pQuaternion->y; + double z = pQuaternion->z; + double w = pQuaternion->w; + + // convert face rotation quaternion to Euler angles in degrees + double dPitch, dYaw, dRoll; + dPitch = atan2(2 * (y * z + w * x), w * w - x * x - y * y + z * z) / M_PI * 180.0; + dYaw = asin(2 * (w * y - x * z)) / M_PI * 180.0; + dRoll = atan2(2 * (x * y + w * z), w * w + x * x - y * y - z * z) / M_PI * 180.0; + + // clamp rotation values in degrees to a specified range of values to control the refresh rate + /* + double increment = c_FaceRotationIncrementInDegrees; + *pPitch = static_cast<int>(floor((dPitch + increment/2.0 * (dPitch > 0 ? 1.0 : -1.0)) / increment) * increment); + *pYaw = static_cast<int>(floor((dYaw + increment/2.0 * (dYaw > 0 ? 1.0 : -1.0)) / increment) * increment); + *pRoll = static_cast<int>(floor((dRoll + increment/2.0 * (dRoll > 0 ? 1.0 : -1.0)) / increment) * increment); + */ + + *pPitch = dPitch; + *pYaw = dYaw; + *pRoll = dRoll; +} + + + +/// <summary> +/// Initializes the default Kinect sensor +/// </summary> +/// <returns>S_OK on success else the failure code</returns> +HRESULT KinectFaceTracker::InitializeDefaultSensor() +{ + HRESULT hr; + + // Get and open Kinect sensor + hr = GetDefaultKinectSensor(&iKinectSensor); + if (SUCCEEDED(hr)) + { + hr = iKinectSensor->Open(); + } + + // Create color frame reader + if (SUCCEEDED(hr)) + { + UniqueInterface<IColorFrameSource> colorFrameSource; + hr = iKinectSensor->get_ColorFrameSource(colorFrameSource.PtrPtr()); + colorFrameSource.Reset(); + + if (SUCCEEDED(hr)) + { + hr = colorFrameSource->OpenReader(&iColorFrameReader); + } + } + + // Create body frame reader + if (SUCCEEDED(hr)) + { + UniqueInterface<IBodyFrameSource> bodyFrameSource; + hr = iKinectSensor->get_BodyFrameSource(bodyFrameSource.PtrPtr()); + bodyFrameSource.Reset(); + + if (SUCCEEDED(hr)) + { + hr = bodyFrameSource->OpenReader(&iBodyFrameReader); + } + } + + // Create HD face frame source + if (SUCCEEDED(hr)) + { + // create the face frame source by specifying the required face frame features + hr = CreateHighDefinitionFaceFrameSource(iKinectSensor, &iFaceFrameSource); + } + + // Create HD face frame reader + if (SUCCEEDED(hr)) + { + // open the corresponding reader + hr = iFaceFrameSource->OpenReader(&iFaceFrameReader); + } + + return hr; +} + + + +/// <summary> +/// Main processing function +/// </summary> +void KinectFaceTracker::Update() +{ + if (!iColorFrameReader || !iBodyFrameReader) + { + return; + } + + IColorFrame* pColorFrame = nullptr; + HRESULT hr = iColorFrameReader->AcquireLatestFrame(&pColorFrame); + + if (SUCCEEDED(hr)) + { + INT64 nTime = 0; + IFrameDescription* pFrameDescription = nullptr; + int nWidth = 0; + int nHeight = 0; + ColorImageFormat imageFormat = ColorImageFormat_None; + UINT nBufferSize = 0; + RGBQUAD *pBuffer = nullptr; + + hr = pColorFrame->get_RelativeTime(&nTime); + + if (SUCCEEDED(hr)) + { + hr = pColorFrame->get_FrameDescription(&pFrameDescription); + } + + if (SUCCEEDED(hr)) + { + hr = pFrameDescription->get_Width(&nWidth); + } + + if (SUCCEEDED(hr)) + { + hr = pFrameDescription->get_Height(&nHeight); + } + + if (SUCCEEDED(hr)) + { + hr = pColorFrame->get_RawColorImageFormat(&imageFormat); + } + + if (SUCCEEDED(hr)) + { + //DrawStreams(nTime, pBuffer, nWidth, nHeight); + ProcessFaces(); + } + + if (check_is_visible()) + { + //OutputDebugStringA("Widget visible!\n"); + // If our widget is visible we feed it our frame + if (SUCCEEDED(hr)) + { + // Fetch color buffer + if (imageFormat == ColorImageFormat_Rgba) + { + hr = pColorFrame->AccessRawUnderlyingBuffer(&nBufferSize, reinterpret_cast<BYTE**>(&pBuffer)); + } + else if (iColorRGBX) + { + pBuffer = iColorRGBX; + nBufferSize = KColorWidth * KColorHeight * sizeof(RGBQUAD); + hr = pColorFrame->CopyConvertedFrameDataToArray(nBufferSize, reinterpret_cast<BYTE*>(pBuffer), ColorImageFormat_Rgba); + } + else + { + hr = E_FAIL; + } + + } + + if (SUCCEEDED(hr)) + { + // Setup our image + QImage image((const unsigned char*)pBuffer, KColorWidth, KColorHeight, sizeof(RGBQUAD)*KColorWidth, QImage::Format_RGBA8888); + if (IsValidRect(iFaceBox)) + { + // Draw our face bounding box + QPainter painter(&image); + painter.setBrush(Qt::NoBrush); + painter.setPen(QPen(Qt::red, 8)); + painter.drawRect(iFaceBox.Left, iFaceBox.Top, iFaceBox.Right - iFaceBox.Left, iFaceBox.Bottom - iFaceBox.Top); + bool bEnd = painter.end(); + } + + // Update our video preview + iVideoWidget->update_image(image); + } + + } + + + SafeRelease(pFrameDescription); + } + + SafeRelease(pColorFrame); +} + + +/// <summary> +/// Updates body data +/// </summary> +/// <param name="ppBodies">pointer to the body data storage</param> +/// <returns>indicates success or failure</returns> +HRESULT KinectFaceTracker::UpdateBodyData(IBody** ppBodies) +{ + HRESULT hr = E_FAIL; + + if (iBodyFrameReader != nullptr) + { + IBodyFrame* pBodyFrame = nullptr; + hr = iBodyFrameReader->AcquireLatestFrame(&pBodyFrame); + if (SUCCEEDED(hr)) + { + hr = pBodyFrame->GetAndRefreshBodyData(BODY_COUNT, ppBodies); + } + SafeRelease(pBodyFrame); + } + + return hr; +} + + +float VectorLengthSquared(CameraSpacePoint point) +{ + float lenghtSquared = pow(point.X, 2) + pow(point.Y, 2) + pow(point.Z, 2); + + //result = Math.Sqrt(result); + return lenghtSquared; +} + +// +// Finds the closest body from the sensor if any +// +IBody* KinectFaceTracker::FindClosestBody(IBody** aBodies) +{ + IBody* result = nullptr; + float closestBodyDistance = std::numeric_limits<float>::max(); + + for(int i=0;i<BODY_COUNT;i++) + { + BOOLEAN tracked; + aBodies[i]->get_IsTracked(&tracked); + + if (tracked) + { + Joint joints[JointType_Count]; + HRESULT hr = aBodies[i]->GetJoints(JointType_Count,joints); + if (FAILED(hr)) + { + continue; + } + + auto currentLocation = joints[JointType_SpineBase].Position; + auto currentDistance = VectorLengthSquared(currentLocation); + + if (result == nullptr || currentDistance < closestBodyDistance) + { + result = aBodies[i]; + closestBodyDistance = currentDistance; + } + } + } + + return result; +} + +// +// Search our list of body for the one matching our id +// +IBody* KinectFaceTracker::FindTrackedBodyById(IBody** aBodies, UINT64 aTrackingId) +{ + float closestBodyDistance = std::numeric_limits<float>::max(); + + for (int i = 0; i < BODY_COUNT; i++) + { + BOOLEAN tracked; + HRESULT hr = aBodies[i]->get_IsTracked(&tracked); + + if (tracked) + { + if (SUCCEEDED(hr) && tracked) + { + UINT64 trackingId = 0; + hr = aBodies[i]->get_TrackingId(&trackingId); + + if (SUCCEEDED(hr) && aTrackingId == trackingId) + { + return aBodies[i]; + } + } + } + } + + return nullptr; +} + + +/// <summary> +/// Processes new face frames +/// </summary> +void KinectFaceTracker::ProcessFaces() +{ + HRESULT hr=0; + IBody* bodies[BODY_COUNT] = { 0 }; // Each bodies will need to be released + bool bHaveBodyData = SUCCEEDED(UpdateBodyData(bodies)); + if (!bHaveBodyData) + { + return; + } + + // Try keep tracking the same body + IBody* body = FindTrackedBodyById(bodies, iTrackingId); + if (body == nullptr) + { + // The body we were tracking is gone, try tracking the closest body if any + body = FindClosestBody(bodies); + if (body != nullptr) + { + // Update our face source with our new body id + hr = body->get_TrackingId(&iTrackingId); + if (SUCCEEDED(hr)) + { + // Tell our face source to use the given body id + hr = iFaceFrameSource->put_TrackingId(iTrackingId); + //OutputDebugStringA("Tracking new body!\n"); + } + } + } + + // retrieve the latest face frame from this reader + IHighDefinitionFaceFrame* pFaceFrame = nullptr; + if (SUCCEEDED(hr)) + { + hr = iFaceFrameReader->AcquireLatestFrame(&pFaceFrame); + } + + BOOLEAN bFaceTracked = false; + if (SUCCEEDED(hr) && nullptr != pFaceFrame) + { + // check if a valid face is tracked in this face frame + hr = pFaceFrame->get_IsTrackingIdValid(&bFaceTracked); + } + + if (SUCCEEDED(hr)) + { + if (bFaceTracked) + { + //OutputDebugStringA("Tracking face!\n"); + + //IFaceFrameResult* pFaceFrameResult = nullptr; + IFaceAlignment* pFaceAlignment = nullptr; + CreateFaceAlignment(&pFaceAlignment); // TODO: check return? + //D2D1_POINT_2F faceTextLayout; + + //hr = pFaceFrame->get_FaceFrameResult(&pFaceFrameResult); + + hr = pFaceFrame->GetAndRefreshFaceAlignmentResult(pFaceAlignment); + + // need to verify if pFaceFrameResult contains data before trying to access it + if (SUCCEEDED(hr) && pFaceAlignment != nullptr) + { + hr = pFaceAlignment->get_FaceBoundingBox(&iFaceBox); + //pFaceFrameResult->get_FaceBoundingBoxInColorSpace(); + + if (SUCCEEDED(hr)) + { + //hr = pFaceFrameResult->GetFacePointsInColorSpace(FacePointType::FacePointType_Count, facePoints); + hr = pFaceAlignment->get_HeadPivotPoint(&iFacePosition); + } + + if (SUCCEEDED(hr)) + { + //hr = pFaceFrameResult->get_FaceRotationQuaternion(&faceRotation); + hr = pFaceAlignment->get_FaceOrientation(&iFaceRotationQuaternion); + } + + if (SUCCEEDED(hr)) + { + //hr = pFaceFrameResult->GetFaceProperties(FaceProperty::FaceProperty_Count, faceProperties); + } + + if (SUCCEEDED(hr)) + { + //hr = GetFaceTextPositionInColorSpace(ppBodies[0], &faceTextLayout); + } + + if (SUCCEEDED(hr)) + { + // draw face frame results + //m_pDrawDataStreams->DrawFaceFrameResults(0, &faceBox, facePoints, &faceRotation, faceProperties, &faceTextLayout); + } + } + + SafeRelease(pFaceAlignment); + } + + SafeRelease(pFaceFrame); + } + + if (bHaveBodyData) + { + for (int i = 0; i < _countof(bodies); ++i) + { + SafeRelease(bodies[i]); + } + } +} + + diff --git a/tracker-kinect-face/kinect_face_tracker.h b/tracker-kinect-face/kinect_face_tracker.h new file mode 100644 index 00000000..6273cba1 --- /dev/null +++ b/tracker-kinect-face/kinect_face_tracker.h @@ -0,0 +1,117 @@ + + + +#include <cmath> + +#include "api/plugin-api.hpp" +#include "compat/timer.hpp" +#include "compat/macros.hpp" +#include "cv/video-widget.hpp" + +// Kinect Header files +#include <Kinect.h> +#include <Kinect.Face.h> + +#pragma once + +// @deprecated Use UniqueInterface instead. Remove it at some point. +template<class Interface> +inline void SafeRelease(Interface *& pInterfaceToRelease) +{ + if (pInterfaceToRelease != nullptr) + { + pInterfaceToRelease->Release(); + pInterfaceToRelease = nullptr; + } +} + +template<class Interface> +inline void ReleaseInterface(Interface* pInterfaceToRelease) +{ + if (pInterfaceToRelease != nullptr) + { + pInterfaceToRelease->Release(); + } +} + +// Safely use Microsoft interfaces. +template<typename T> +class UniqueInterface : public std::unique_ptr<T, decltype(&ReleaseInterface<T>)> ///**/ +{ +public: + UniqueInterface() : std::unique_ptr<T, decltype(&ReleaseInterface<T>)>(nullptr, ReleaseInterface<T>){} + // Access pointer, typically for creation + T** PtrPtr() { return &iPtr; }; + // Called this once the pointer was created + void Reset() { std::unique_ptr<T, decltype(&ReleaseInterface<T>)>::reset(iPtr); } + // If ever you want to release that interface before the object is deleted + void Free() { iPtr = nullptr; Reset(); } +private: + T* iPtr = nullptr; +}; + + +// +// +// +class KinectFaceTracker : public ITracker +{ +public: + KinectFaceTracker(); + ~KinectFaceTracker() override; + module_status start_tracker(QFrame* aFrame) override; + void data(double *data) override; + bool center() override; + +private: + + + // Kinect stuff + void Update(); + HRESULT InitializeDefaultSensor(); + void ProcessFaces(); + HRESULT UpdateBodyData(IBody** ppBodies); + void ExtractFaceRotationInDegrees(const Vector4* pQuaternion, float* pPitch, float* pYaw, float* pRoll); + static IBody* FindClosestBody(IBody** aBodies); + static IBody* FindTrackedBodyById(IBody** aBodies,UINT64 aTrackingId); + + // + Timer iTimer; + + // Current Kinect + IKinectSensor* iKinectSensor = nullptr; + + // Color reader + IColorFrameReader* iColorFrameReader = nullptr; + + // Body reader + IBodyFrameReader* iBodyFrameReader = nullptr; + + // Face sources + IHighDefinitionFaceFrameSource* iFaceFrameSource = nullptr; + + // Face readers + IHighDefinitionFaceFrameReader* iFaceFrameReader = nullptr; + + // + RGBQUAD* iColorRGBX = nullptr; + + RectI iFaceBox = { 0 }; + + // Face position + CameraSpacePoint iLastFacePosition = { 0 }; + CameraSpacePoint iFacePosition = { 0 }; + CameraSpacePoint iFacePositionCenter = { 0 }; + + Vector4 iFaceRotationQuaternion = { 0 }; + // As Yaw, Pitch, Roll + CameraSpacePoint iLastFaceRotation = { 0 }; + CameraSpacePoint iFaceRotation = { 0 }; + CameraSpacePoint iFaceRotationCenter = { 0 }; + // + std::unique_ptr<cv_video_widget> iVideoWidget; + std::unique_ptr<QLayout> iLayout; + + // Id of the body currently being tracked + UINT64 iTrackingId = 0; +}; diff --git a/tracker-kinect-face/lang/nl_NL.ts b/tracker-kinect-face/lang/nl_NL.ts new file mode 100644 index 00000000..a0a737ee --- /dev/null +++ b/tracker-kinect-face/lang/nl_NL.ts @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="nl_NL"> +<context> + <name>KinectFaceMetadata</name> + <message> + <source>Kinect Face 0.1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>KinectFaceUi</name> + <message> + <source>Kinect Face Tracker</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Start OpenTrack to check if Kinect Face Tracker is working.</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/tracker-kinect-face/lang/ru_RU.ts b/tracker-kinect-face/lang/ru_RU.ts new file mode 100644 index 00000000..72f91367 --- /dev/null +++ b/tracker-kinect-face/lang/ru_RU.ts @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ru_RU"> +<context> + <name>KinectFaceMetadata</name> + <message> + <source>Kinect Face 0.1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>KinectFaceUi</name> + <message> + <source>Kinect Face Tracker</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Start OpenTrack to check if Kinect Face Tracker is working.</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/tracker-kinect-face/lang/stub.ts b/tracker-kinect-face/lang/stub.ts new file mode 100644 index 00000000..055ec4e1 --- /dev/null +++ b/tracker-kinect-face/lang/stub.ts @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1"> +<context> + <name>KinectFaceMetadata</name> + <message> + <source>Kinect Face 0.1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>KinectFaceUi</name> + <message> + <source>Kinect Face Tracker</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Start OpenTrack to check if Kinect Face Tracker is working.</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/tracker-kinect-face/lang/zh_CN.ts b/tracker-kinect-face/lang/zh_CN.ts new file mode 100644 index 00000000..055ec4e1 --- /dev/null +++ b/tracker-kinect-face/lang/zh_CN.ts @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1"> +<context> + <name>KinectFaceMetadata</name> + <message> + <source>Kinect Face 0.1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>KinectFaceUi</name> + <message> + <source>Kinect Face Tracker</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Start OpenTrack to check if Kinect Face Tracker is working.</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> |