�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%} z|rl|D]h} tj| r6t| |j|j |j |j|j!| d?sbd<} n,t"| ||j|j |j |j|j!|j#| d@ sd<} q| WSt$|j!|j |j| dAWSWn,t%k r|jd:krtdBYdS)CzScript main program.rNz1Utilities to support installing Python libraries.)Z descriptionz-lZ store_constrr z!don't recurse into subdirectories)actionZconstr+desthelpz-r recursionzhcontrol the maximum recursion level. if `-l` and `-r` options are specified, then `-r` takes precedence.)typercrdz-f store_truer&z/force rebuild even if timestamps are up to date)rbrcrdz-qcountr zIoutput only error messages; -qq will suppress the error messages as well.)rbrcr+rdz-br(z0use legacy (pre-PEP3147) compiled file locationsz-dZDESTDIRr zdirectory to prepend to file paths for use in compile-time tracebacks and in runtime tracebacks in cases where the source file is unavailable)metavarrcr+rdz-xZREGEXPr'zskip files matching the regular expression; the regexp is searched for in the full path of each file considered for compilationz-iZFILEflistzzadd all the files and directories listed in FILE to the list considered for compilation; if "-", names are read from stdin)rircrd compile_destzFILE|DIR*zrzero or more file and directory names to compile; if no arguments given, defaults to the equivalent of -l sys.path)rinargsrdz-jz --workersr zRun compileall concurrently)r+rfrdcSsg|]}|jddqS)_-)rlowerreplace).0moder"r"r# szmain..z--invalidation-modezset .pyc invalidation mode; defaults to "checked-hash" if the SOURCE_DATE_EPOCH environment variable is set, and "timestamp" otherwise.)choicesrdrorzError reading file list {}FrnT)r*)r1r*)r(r&r r*z [interrupted])&argparseArgumentParser add_argumentrFrMPycInvalidationModesorted parse_argsrkr'rerNrer rjrRstdinrKappendstriprr rrr*rqupperrrrArr r&r(rr1rKeyboardInterrupt) rvparserZinvalidation_modesargsZ compile_destsr|r flineZivl_moder*r2rcr"r"r#mains                  r__main__)Nrr) rNFNrFr$r N)NFNrFr$N)r rFrFr$N)__doc__rrRimportlib.utilrBrMrI functoolsr__all__rrr/rrrrYrFZ exit_statusexitr"r"r"r#s<     3 V "i