ó
Ò:\c           @  s  d  Z  d d l m Z d d l m Z m Z d d l m Z d d l Z d d l Z d e j	 f d „  ƒ  YZ
 d d d	 „  ƒ  YZ d
 d d „  ƒ  YZ e j j Z d e _ e j g e _ e j j Z e j e
 ƒ e j e j e j e j ƒ g e _ d e f d „  ƒ  YZ d e f d „  ƒ  YZ e j d „ Z d d „ Z  e! d k r{e" e j# ƒ d k  sne j# d d k rˆe$ d ƒ e j% d ƒ n  y e& e e j# d ƒ Z' Wn< e( k
 ràe$ d e j# d d e j) ƒe j% d ƒ n XyO e" e j# ƒ d k re$ e e' ƒ ƒ n# e$ e e' e& e e j# d ƒ ƒ ƒ Wq{e k
 rwe$ d d j* e j# d ƒ d e j) ƒe j% d ƒ q{Xn  d S(    s{  
This code obtained from
https://gist.github.com/mkropat/7550097

The MIT License (MIT)

Copyright (c) 2014 Michael Kropat

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
iÿÿÿÿ(   t   print_function(   t   windllt   wintypes(   t   UUIDNt   GUIDc           B  sK   e  Z d  e j f d e j f d e j f d e j d f g Z d „  Z RS(   t   Data1t   Data2t   Data3t   Data4i   c         C  s   t  j j |  ƒ | j \ |  _ |  _ |  _ |  j d <|  j d <} x8 t d d ƒ D]' } | d | d d ?d @|  j | <qR Wd  S(   Ni    i   i   i   iÿ   (	   t   ctypest	   Structuret   __init__t   fieldsR   R   R   R   t   range(   t   selft   uuid_t   restt   i(    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyR   3   s    2(   t   __name__t
   __module__R   t   DWORDt   WORDt   BYTEt   _fields_R   (    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyR   -   s   "t   FOLDERIDc           B  sp  e  Z e d  ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z	 e d ƒ Z
 e d ƒ Z e d	 ƒ Z e d
 ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z e d ƒ Z  e d ƒ Z! e d ƒ Z" e d  ƒ Z# e d! ƒ Z$ e d" ƒ Z% e d# ƒ Z& e d$ ƒ Z' e d% ƒ Z( e d& ƒ Z) e d' ƒ Z* e d( ƒ Z+ e d) ƒ Z, e d* ƒ Z- e d+ ƒ Z. e d, ƒ Z/ e d- ƒ Z0 e d. ƒ Z1 e d/ ƒ Z2 e d0 ƒ Z3 e d1 ƒ Z4 e d2 ƒ Z5 e d3 ƒ Z6 e d4 ƒ Z7 e d5 ƒ Z8 e d6 ƒ Z9 e d7 ƒ Z: e d8 ƒ Z; e d9 ƒ Z< e d: ƒ Z= e d; ƒ Z> e d< ƒ Z? e d= ƒ Z@ e d> ƒ ZA e d? ƒ ZB e d@ ƒ ZC e dA ƒ ZD e dB ƒ ZE e dC ƒ ZF e dD ƒ ZG e dE ƒ ZH e dF ƒ ZI e dG ƒ ZJ e dH ƒ ZK e dI ƒ ZL e dJ ƒ ZM e dK ƒ ZN e dL ƒ ZO e dM ƒ ZP e dN ƒ ZQ e dO ƒ ZR e dP ƒ ZS e dQ ƒ ZT e dR ƒ ZU e dS ƒ ZV e dT ƒ ZW e dU ƒ ZX e dV ƒ ZY e dW ƒ ZZ e dX ƒ Z[ e dY ƒ Z\ e dZ ƒ Z] e d[ ƒ Z^ e d\ ƒ Z_ e d] ƒ Z` RS(^   s&   {008ca0b1-55b4-4c56-b8a8-4de4b299d3be}s&   {724EF170-A42D-4FEF-9F26-B60E846FBA4F}s&   {A3918781-E5F2-4890-B3D9-A7E54332328C}s&   {AB5FB87B-7CE2-4F83-915D-550846C9537B}s&   {9E52AB10-F80D-49DF-ACB8-4330F5687855}s&   {D0384E7D-BAC3-4797-8F14-CBA229B392B5}s&   {C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D}s&   {0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}s&   {A4115719-D62E-491D-AA7C-E74B8BE3B067}s&   {82A5EA35-D9CD-47C5-9629-E15D2F714E6E}s&   {B94237E7-57AC-4347-9151-B08C6C32D1F7}s&   {56784854-C6CB-462b-8169-88E350ACB882}s&   {2B0F765D-C0E9-4171-908E-08A611B84FF6}s&   {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}s&   {5CE4A5E9-E4EB-479D-B89F-130C02886155}s&   {FDD39AD0-238F-46AF-ADB4-6C85480369C7}s&   {7B0DB17D-9CD2-4A93-9733-46CC89022E7C}s&   {374DE290-123F-4565-9164-39C4925E467B}s&   {1777F761-68AD-4D8A-87BD-30B759FA33DD}s&   {FD228CB7-AE11-4AE3-864C-16F3910AB8FE}s&   {054FAE61-4DD8-4787-80B6-090220C4B700}s&   {D9DC8A3B-B784-432E-A781-5A1130A75963}s&   {BCB5256F-79F6-4CEE-B725-DC34E402FD46}s&   {352481E8-33BE-4251-BA85-6007CAEDCF9D}s&   {1B3EA5DC-B587-4786-B4EF-BD1DC332AEAE}s&   {bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}s&   {F1B32785-6FBA-4FCF-9D55-7B8E7F157091}s&   {A520A1A4-1780-4FF6-BD18-167343C5AF16}s&   {2A00375E-224C-49DE-B8D1-440DF7EF3DDC}s&   {4BD8D571-6D19-48D3-BE97-422220080E43}s&   {2112AB0A-C86A-4FFE-A368-0DE96E47012E}s&   {C5ABBF53-E17F-4121-8900-86626FC2C973}s&   {2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39}s&   {69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C}s&   {A990AE9F-A03B-4E80-94BC-9912D7504104}s&   {33E28130-4E1E-4676-835A-98395C3BC3BB}s&   {DE92C1C7-837F-4F69-A3BB-86E631204A23}s&   {9274BD8D-CFD1-41C3-B35E-B13F55A758F4}s&   {5E6C858F-0E22-4760-9AFE-EA3317B67173}s&   {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}s&   {905e63b6-c1bf-494e-b29c-65b732d3d21a}s&   {6D809377-6AF0-444b-8957-A3773F02200E}s&   {7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}s&   {F7F1ED05-9F6D-47A2-AAAE-29D317C6F066}s&   {6365D5A7-0F0D-45E5-87F6-0DA56B6A4F7D}s&   {DE974D24-D9C6-4D3E-BF91-F4455120B917}s&   {A77F5D77-2E2B-44C3-A6A2-ABA601054A51}s&   {DFDF76A2-C82A-4D63-906A-5644AC457385}s&   {C4AA340D-F20F-4863-AFEF-F87EF2E6BA25}s&   {ED4824AF-DCE4-45A8-81E2-FC7965083634}s&   {3D644C9B-1FB8-4f30-9B45-F670235F79C0}s&   {DEBF2536-E1A8-4c59-B6A2-414586476AEA}s&   {48DAF80B-E6CF-4F4E-B800-0E69D84EE384}s&   {3214FAB5-9757-4298-BB61-92A9DEAA44FF}s&   {B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5}s&   {E555AB60-153B-4D17-9F04-A5FE99FC15EC}s&   {0482af6c-08f1-4c34-8c90-e17ec98b1e17}s&   {2400183A-6185-49FB-A2D8-4A392A602BA3}s&   {52a4f021-7b75-48a9-9f6b-4b87a210bc8f}s&   {AE50C081-EBD2-438A-8655-8A092E34987A}s&   {1A6FDBA2-F42D-4358-A798-B74D745926C5}s&   {8AD10C31-2ADB-4296-A8F7-E4701232C972}s&   {C870044B-F49E-4126-A9C3-B52A1FF411E8}s&   {3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}s&   {AAA8D5A5-F1D6-4259-BAA8-78E7EF60835E}s&   {00BCFC5A-ED94-4e48-96A1-3F6217F21990}s&   {B250C668-F57D-4EE1-A63C-290EE7D1AA1F}s&   {C4900540-2379-4C75-844B-64E6FAF8716B}s&   {15CA69B3-30EE-49C1-ACE1-6B5EC372AFB5}s&   {859EAD94-2E85-48AD-A71A-0969CB56A6CD}s&   {4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}s&   {7d1d3a04-debb-4115-95cf-2f29da2920da}s&   {b7bede81-df94-4682-a7d8-57a52620b86f}s&   {0D4C3DB6-03A3-462F-A0E6-08924C41B5D4}s&   {7E636BFE-DFA9-4D5E-B456-D7B39851D8A9}s&   {8983036C-27C0-404B-8F08-102D10DCFD74}s&   {7B396E54-9EC5-4300-BE0A-2482EBAE1A26}s&   {A75D362E-50FC-4fb7-AC2C-A8BEAA314493}s&   {A52BBA46-E9E1-435f-B3D9-28DAA648C0F6}s&   {767E6811-49CB-4273-87C2-20F355E1085B}s&   {24D89E24-2F19-4534-9DDE-6A6671FBB8FE}s&   {339719B5-8C47-4894-94C2-D8F77ADD44A6}s&   {625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}s&   {B97D20BB-F46A-4C97-BA10-5E3608430854}s&   {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}s&   {D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}s&   {A63293E8-664E-48DB-A079-DF759E0509F7}s&   {9E3995AB-1F9C-4F13-B827-48B24B6C7174}s&   {0762D272-C50A-4BB0-A382-697DCD729B80}s&   {5CD7AEE2-2219-4A67-B85D-6C9CE15660CB}s&   {BCBD3057-CA5C-4622-B42D-BC56DB0AE516}s&   {18989B1D-99B5-455B-841C-AB7C74E4DDFC}s&   {491E922F-5643-4AF4-A7EB-4E7A138D8174}s&   {F38BF404-1D43-42F2-9305-67DE0B28FC23}(a   R   R   R   t   AccountPicturest
   AdminToolst   ApplicationShortcutst
   CameraRollt	   CDBurningt   CommonAdminToolst   CommonOEMLinkst   CommonProgramst   CommonStartMenut   CommonStartupt   CommonTemplatest   Contactst   Cookiest   Desktopt   DeviceMetadataStoret	   Documentst   DocumentsLibraryt	   Downloadst	   Favoritest   Fontst	   GameTaskst   Historyt   ImplicitAppShortcutst   InternetCachet	   Librariest   Linkst   LocalAppDatat   LocalAppDataLowt   LocalizedResourcesDirt   Musict   MusicLibraryt   NetHoodt   OriginalImagest   PhotoAlbumst   PicturesLibraryt   Picturest	   Playlistst	   PrintHoodt   Profilet   ProgramDatat   ProgramFilest   ProgramFilesX64t   ProgramFilesX86t   ProgramFilesCommont   ProgramFilesCommonX64t   ProgramFilesCommonX86t   Programst   Publict   PublicDesktopt   PublicDocumentst   PublicDownloadst   PublicGameTaskst   PublicLibrariest   PublicMusict   PublicPicturest   PublicRingtonest   PublicUserTilest   PublicVideost   QuickLauncht   Recentt   RecordedTVLibraryt   ResourceDirt	   Ringtonest   RoamingAppDatat   RoamedTileImagest   RoamingTilest   SampleMusict   SamplePicturest   SamplePlaylistst   SampleVideost
   SavedGamest   SavedSearchest   Screenshotst   SearchHistoryt   SearchTemplatest   SendTot   SidebarDefaultPartst   SidebarPartst   SkyDrivet   SkyDriveCameraRollt   SkyDriveDocumentst   SkyDrivePicturest	   StartMenut   Startupt   Systemt	   SystemX86t	   Templatest
   UserPinnedt   UserProfilest   UserProgramFilest   UserProgramFilesCommont   Videost   VideosLibraryt   Windows(    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyR   <   s¼   t
   UserHandlec           B  s&   e  Z e j d  ƒ Z e j d ƒ Z RS(   i    iÿÿÿÿ(   R   R   R   t   HANDLEt   currentt   common(    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyRw      s   t   PathNotFoundExceptionc           B  s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyR{   Á   s   t   PathNotVerifiableExceptionc           B  s   e  Z RS(    (   R   R   (    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyR|   Å   s   c         C  s  t  |  ƒ } t j ƒ  } t j ƒ  } d } d } t t j | ƒ | | t j | ƒ ƒ } d  } | | k ru t ƒ  } nO t t j | ƒ d | t j | ƒ ƒ } | | k rº t ƒ  } | } n
 t | ƒ | j	 }	 t | ƒ t
 j ƒ  }
 |
 sò d }
 n  t |	 d ƒ r|	 j |
 ƒ }	 n  |	 | f S(   Ni    i @  s   utf-8t   decode(   R   R	   t	   c_wchar_pt   _SHGetKnownFolderPatht   byreft   NoneR{   R|   t   _CoTaskMemFreet   valuet   syst   getdefaultencodingt   hasattrR}   (   t   folderidt   user_handlet   fidt   pPatht   pPathUnverifiedt   S_OKt   KF_FLAG_DONT_VERIFYt   resultt	   exceptiont   patht   codec(    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyt   get_pathÉ   s2    $		
	
	c         C  s   | s t  j } n  t |  | ƒ S(   N(   Rw   Ry   R’   (   t	   folder_idt   user(    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyt   get_folder_pathë   s    t   __main__i   i   s   -?s   /?s0   python knownfolders.py FOLDERID {current|common}i    s   Unknown folder id "%s"t   files   Folder not found "%s"t    (    (    (   s   -?s   /?(+   t   __doc__t
   __future__R    R	   R   R   t   uuidR   R„   R
   R   R   Rw   t   ole32t   CoTaskMemFreeR‚   R   t   restypet   c_void_pt   argtypest   shell32t   SHGetKnownFolderPathR   t   POINTERR   Rx   R~   t	   ExceptionR{   R|   Rz   R’   R•   R   t   lent   argvt   printt   exitt   getattrR‡   t   AttributeErrort   stderrt   join(    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/external/knownfolders.pyt   <module>"   sF   a	"
(
'$