§ w<ˆjÒ=ãó.—ddlmZddlZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z ddl m Z ddlmZddlmZddlmZd d lmZmZd d lmZd d lmZddlmcmZddlZ dd l!m"Z"dZ#dd„Z$Gd„dej¦«Zd„Z%Gd„d¦«Z&dS)é)Ú annotationsN)ÚIterableÚIterator)Úpartial)Úglob)ÚPath)ÚAny)Úunique_everseené)ÚStrPathÚStrPathT)Ú Distribution)ÚSetuptoolsDeprecationWarning)Ú convert_path)z*.pyizpy.typedÚreturnÚNonecóx—tj|tj|¦«jtjz¦«dS©N)ÚosÚchmodÚstatÚst_modeÚS_IWRITE)Útargets úm/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/setuptools/command/build_py.pyÚ make_writablers,€Ý„HˆV•R”W˜V‘_”_Ô,­t¬}Ñ<Ñ=Ô=Ð=Ð=Ð=ócó‡—eZdZUdZded<dZded<dZded <d=d „Z d>d?ˆfd„ Zd=d„Z d@d„Z d „Z dAd"„Z dBd%„Z d&„ZdCdDˆfd)„ ZdEd+„ZdFd-„ZdFd.„Zd=d/„Zd=d0„ZdGd5„Zd=d6„Zd7„Zd8„ZdHd9„Zd:„ZedId<„¦«ZˆxZS)JÚbuild_pyaXEnhanced 'build_py' command that includes data files with packages The data files are specified via a 'package_data' argument to 'setup()'. See 'setuptools.dist.Distribution' for more details. Also, this version of the 'build_py' command allows you to specify both 'py_modules' and 'packages' in the same setup operation. rÚ distributionFÚboolÚ editable_modeNzStrPath | NoneÚexisting_egg_info_dirrrcó²—tj |¦«|jj|_|jjpi|_d|jvr |jd=dSdS)NÚ data_files)ÚorigrÚfinalize_optionsr Ú package_dataÚexclude_package_dataÚ__dict__©Úselfs rr'zbuild_py.finalize_options.s^€Ý Œ ×&Ò& tÑ,Ô,Ð,Ø Ô-Ô:ˆÔØ$(Ô$5Ô$JÐ$PÈbˆÔ!Ø ˜4œ=Ð (Ð (Ø” ˜lÐ+Ð+Ð+ð )Ð (rTéÚinfiler Úoutfiler Ú preserve_modeÚpreserve_timesÚlinkú str | NoneÚlevelÚobjectútuple[StrPathT | str, bool]có •—|r\tt|¦« ¦«¦«}tt|¦« ¦«¦«}t¦« ||||||¦«Sr)ÚstrrÚresolveÚsuperÚ copy_file)r,r.r/r0r1r2r4Ú __class__s €rr;zbuild_py.copy_file5stø€ð ð 3Ý�˜f™œ×-Ò-Ñ/Ô/Ñ0Ô0ˆFÝ�$˜w™-œ-×/Ò/Ñ1Ô1Ñ2Ô2ˆG݉wŒw× Ò Ø �G˜]¨N¸DÀ%ñ ô ð rcó0—|js|jr|jrdS|jr| ¦«|jr(| ¦«| ¦«| tj  |d¬¦«¦«dS)z?Build modules, packages, and copy data files to build directoryNF)Úinclude_bytecode) Ú py_modulesÚpackagesr"Ú build_modulesÚbuild_packagesÚbuild_package_dataÚ byte_compiler&rÚ get_outputsr+s rÚrunz build_py.runFsŸ€à”ð  4¤=ð °TÔ5Gð Ø ˆFà Œ?ð !Ø × Ò Ñ Ô Ð à Œ=ð &Ø × Ò Ñ !Ô !Ð !Ø × #Ò #Ñ %Ô %Ð %ð ×Ò�$œ-×3Ò3°DÈ5Ð3ÑQÔQÑRÔRÐRÐRÐRrÚattrr8r cóŽ—|dkr | ¦«|_|jStj ||¦«S)zlazily compute data filesr%)Ú_get_data_filesr%r&rÚ __getattr__)r,rGs rrJzbuild_py.__getattr__Ws@€à �<Ò Ð Ø"×2Ò2Ñ4Ô4ˆDŒOØ”?Ð "ÝŒ}×(Ò(¨¨tÑ4Ô4Ð4rcó|—| ¦«tt|j|jpd¦«¦«S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples©)Úanalyze_manifestÚlistÚmapÚ_get_pkg_data_filesr@r+s rrIzbuild_py._get_data_files^s6€à ×ÒÑÔÐÝ•C˜Ô0°$´-Ð2EÀ2ÑFÔFÑGÔGÐGrú%list[tuple[str, str, str, list[str]]]cóŠ—|j di¦«tt|j|jpd¦«¦«S)z¡ Generate list of ``(package,src_dir,build_dir,filenames)`` tuples, but without triggering any attempt to analyze or build the manifest. Úmanifest_filesrL)r*Ú setdefaultrNrOrPr@r+s rÚget_data_files_without_manifestz(build_py.get_data_files_without_manifestcs?€ð Œ × Ò Ð!1°2Ñ6Ô6Ð6Ý•C˜Ô0°$´-Ð2EÀ2ÑFÔFÑGÔGÐGrÚpackageútuple[str, str, str, list[str]]có܇—| |¦«Štjj|jg| d¦«zŽ}ˆfd„| |‰¦«D¦«}|‰||fS)Nú.cóP•—g|]"}tj |‰¦«‘Œ#SrL)rÚpathÚrelpath)Ú.0ÚfileÚsrc_dirs €rú z0build_py._get_pkg_data_files..us9ø€ð ð ð àõ ŒG�OŠO˜D 'Ñ *Ô *ð ð ð r)Úget_package_dirrr[ÚjoinÚ build_libÚsplitÚfind_data_files)r,rVÚ build_dirÚ filenamesr_s @rrPzbuild_py._get_pkg_data_filesms…ø€à×&Ò& wÑ/Ô/ˆõ”G”L D¤NÐ#3°g·m²mÀCÑ6HÔ6HÑ#HÐJˆ ð ð ð ð à×,Ò,¨W°gÑ>Ô>ð ñ ô ˆ 𘠨IÐ5Ð5rcó–—| |j||t¬¦«}tt t d¬¦«|¦«}t j |¦«}ttj j |¦«}t j|j  |g¦«|¦«}| |||¦«S)z6Return filenames for package's data files in 'src_dir')Úextra_patternsT)Ú recursive)Ú_get_platform_patternsr(Ú_IMPLICIT_DATA_FILESrOrrÚ itertoolsÚchainÚ from_iterableÚfilterrr[ÚisfilerSÚgetÚexclude_data_files)r,rVr_ÚpatternsÚglobs_expandedÚ globs_matchesÚ glob_filesÚfiless rrezbuild_py.find_data_files{sµ€à×.Ò.Ø Ô Ø Ø Ý/ð /ñ ô ˆõ �W¥T°TÐ:Ñ:Ô:¸HÑEÔEˆå!œ×5Ò5°nÑEÔEˆ Ý�BœGœN¨MÑ:Ô:ˆ Ý”Ø Ô × #Ò # G¨RÑ 0Ô 0Ø ñ ô ˆð×&Ò& w°¸Ñ?Ô?Ð?rr>ú list[str]c󺕗|jr3t| ¦« ¦«¦«St ¦« |¦«S)ú1See :class:`setuptools.commands.build.SubCommand`)r"rNÚget_output_mappingÚkeysr:rE)r,r>r<s €rrEzbuild_py.get_outputs�sMø€à Ô ð :ݘ×/Ò/Ñ1Ô1×6Ò6Ñ8Ô8Ñ9Ô9Ð 9݉wŒw×"Ò"Ð#3Ñ4Ô4Ð4rúdict[str, str]cóÔ—tj| ¦«| ¦«¦«}t t |t jd¦«¬¦«¦«S)r{r)Úkey)rmrnÚ _get_package_data_output_mappingÚ_get_module_mappingÚdictÚsortedÚoperatorÚ itemgetter)r,Úmappings rr|zbuild_py.get_output_mapping“sY€å”/Ø × 1Ò 1Ñ 3Ô 3Ø × $Ò $Ñ &Ô &ñ ô ˆõ•F˜7­Ô(;¸AÑ(>Ô(>Ð?Ñ?Ô?Ñ@Ô@Ð@rúIterator[tuple[str, str]]c#ó®K—| ¦«D]=\}}}| d¦«}| |j||¦«}||fV—Œ>dS)z5Iterate over all modules producing (dest, src) pairs.rYN)Úfind_all_modulesrdÚget_module_outfilerc)r,rVÚmoduleÚ module_fileÚfilenames rr‚zbuild_py._get_module_mapping›spèè€à,0×,AÒ,AÑ,CÔ,Cð *ð *Ñ (ˆG�V˜[Ø—m’m CÑ(Ô(ˆGØ×.Ò.¨t¬~¸wÈÑOÔOˆHؘ[Ð)Ð )Ð )Ð )Ð )ð *ð *rc#ó¾K—|jD]R\}}}}|D]H}tj ||¦«}tj ||¦«}||fV—ŒIŒSdS)z6Iterate over package data producing (dest, src) pairs.N)r%rr[rb)r,rVr_rfrgrŽrÚsrcfiles rr�z)build_py._get_package_data_output_mapping¢s|èè€à6:´oð (ð (Ñ 2ˆG�W˜i¨Ø%ð (ð (�ÝœŸš i°Ñ:Ô:�Ýœ'Ÿ,š, w°Ñ9Ô9�ؘwÐ'Ð'Ð'Ð'Ð'ð (ð (ð (rcóî—| ¦«D]_\}}| tj |¦«¦«| ||¦«\}}t |¦«Œ`dS)z$Copy data files into build directoryN)r�Úmkpathrr[Údirnamer;r)r,rr�Ú_outfÚ_copieds rrCzbuild_py.build_package_dataªss€à#×DÒDÑFÔFð "ð "‰OˆF�GØ �KŠK�œŸš¨Ñ/Ô/Ñ 0Ô 0Ð 0Ø!Ÿ^š^¨G°VÑ<Ô<‰NˆE�7Ý ˜&Ñ !Ô !Ð !Ð !ð "ð "rcól—i|_|jjsdSi}|jpdD]'}||t | |¦«¦«<Œ(|jrgt|jd¦« ¦«r@|j}t|d¦«}|  d¬¦«  ¦«}n=|  d¦«|  d¦«}|j }|jj}t!¦«}| ||¦«D�]}t$j t |¦«¦«\} } d} | } | rZ| | krT| |vrP| } t$j | ¦«\} } t$j | | ¦«} | r | | kr| |v°P| |vr„| | kr| | ¦«rŒ²n3| || | ¦«}|r| |¦«|j || g¦« |¦«�ŒdS)NrLz SOURCES.txtzutf-8)ÚencodingÚegg_info)rSr Úinclude_package_datar@Úassert_relativerar#rÚexistsÚ read_textÚ splitlinesÚ run_commandÚget_finalized_commandr˜ÚfilelistrxÚ_IncludePackageDataAbuseÚ_filter_build_filesrr[rdrbÚ is_moduleÚimportable_subpackageÚwarnrTÚappend)r,Úsrc_dirsrVÚ egg_info_dirÚmanifestrxÚei_cmdÚcheckr[ÚdÚfÚprevÚoldfÚdfÚ importables rrMzbuild_py.analyze_manifest±sY€Ø46ˆÔØÔ Ô5ð Ø ˆFØ#%ˆØ”}Ð*¨ð Oð OˆGàGNˆH•_ T×%9Ò%9¸'Ñ%BÔ%BÑCÔCÑ DÐ Dð Ô &ð *å�TÔ/°Ñ?Ô?×FÒFÑHÔHð *ð Ô5ˆLݘL¨-Ñ8Ô8ˆHØ×&Ò&°Ð&Ñ8Ô8×CÒCÑEÔEˆEˆEà × Ò ˜ZÑ (Ô (Ð (Ø×/Ò/° Ñ;Ô;ˆFØ!œ?ˆLØ”OÔ)ˆEå(Ñ*Ô*ˆØ×,Ò,¨U°LÑAÔAð Mñ MˆDÝ”7—=’=¥°Ñ!6Ô!6Ñ7Ô7‰DˆAˆq؈D؈DØð (˜˜Tš ˜  a¨xÐ&7Ð&7Ø�ÝœŸ š  aÑ(Ô(‘��2Ý”G—L’L  QÑ'Ô'�ðð (˜˜Tš ˜  a¨xÐ&7Ð&7ð�Hˆ}ˆ}ؘ’9�9Ø—’ qÑ)Ô)ð!Ø ð!ð"'×!<Ò!<¸XÀa¼[È!Ñ!LÔ!L�JØ!ð/ØŸ š  :Ñ.Ô.Ð.ØÔ#×.Ò.¨x¸¬{¸BÑ?Ô?×FÒFÀtÑLÔLÐLùð! Mð Mrrxú Iterable[str]r˜ú Iterator[str]c#ó<‡K—| d¦«}||j|j|jf}d„|D¦«}|D]_}tj |¦«Štj |¦«rtˆfd„|D¦«¦«r|V—Œ`dS)a} ``build_meta`` may try to create egg_info outside of the project directory, and this can be problematic for certain plugins (reported in issue #3500). Extensions might also include between their sources files created on the ``build_lib`` and ``build_temp`` directories. This function should filter this case of invalid files out. ÚbuildcóP—g|]#}|¯tj |¦«‘Œ$SrL)rr[Únormpath)r]Úps rr`z0build_py._filter_build_files..ès-€ÐBÐBÐB¨QÀÐB•R”W×%Ò% aÑ(Ô(ÐBÐBÐBrc3ó •K—|]}|‰vV—Œ dSrrL)r]r¬Ú norm_paths €rú z/build_py._filter_build_files..ìs(øèè€Ð-TÐ-TÀQ¨a°yÐ.@Ð-TÐ-TÐ-TÐ-TÐ-TÐ-TrN) rŸrcÚ build_tempÚ build_baserr[r·ÚisabsÚall)r,rxr˜rµÚ build_dirsÚ norm_dirsr^rºs @rr¢zbuild_py._filter_build_filesÚs·øèè€ð×*Ò*¨7Ñ3Ô3ˆØ ¤°Ô0@À%ÔBRÐSˆ ØBÐB°*ÐBÑBÔBˆ àð ð ˆDÝœ×(Ò(¨Ñ.Ô.ˆIÝ”7—=’= Ñ&Ô&ð ­#Ð-TÐ-TÐ-TÐ-TÈ)Ð-TÑ-TÔ-TÑ*TÔ*Tð Ø� � � øð ð rcó—dSrrLr+s rÚget_data_fileszbuild_py.get_data_filesïs€Ø ˆrcóà— |j|S#t$rYnwxYwtj |||¦«}||j|<|r |jjs|S|jjD]"}||ks| |dz¦«rnŒ#|St|d¦«5}|  ¦«}ddd¦«n #1swxYwYd|vr#tj   d|›d�¦«‚|S)z8Check namespace packages' __init__ for declare_namespacerYÚrbNsdeclare_namespacezNamespace package problem: z¤ is a namespace package, but its __init__.py does not call declare_namespace()! Please fix it. (See the setuptools manual under "Namespace Packages" for details.) ") Úpackages_checkedÚKeyErrorr&rÚ check_packager Únamespace_packagesÚ startswithÚopenÚreadÚ distutilsÚerrorsÚDistutilsError)r,rVÚ package_dirÚinit_pyÚpkgr­Úcontentss rrÈzbuild_py.check_packageòsl€ð ØÔ(¨Ô1Ð 1øÝð ð ð Ø ˆDð øøøõ”-×-Ò-¨d°G¸[ÑIÔIˆØ)0ˆÔ˜gÑ&àð ˜dÔ/ÔBð ØˆNàÔ$Ô7ð ð ˆCØ�gŠ~ˆ~ §¢°¸#± Ñ!>Ô!>ˆ~Ø�ððˆNå �'˜4Ñ Ô ð  AØ—v’v‘x”xˆHð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à  xÐ /Ð /ÝÔ"×1Ò1ð8¨gð8ð8ð8ñôð ð ˆs‚ � ›ÂB<Â<CÃCcón—i|_tj |¦«d|_d|_dS)NF)rÆr&rÚinitialize_optionsr"r#r+s rrÕzbuild_py.initialize_optionss6€Ø "ˆÔÝ Œ ×(Ò(¨Ñ.Ô.Ð.Ø"ˆÔØ%)ˆÔ"Ð"Ð"rcó²—tj ||¦«}|jj�*t j |jj|¦«S|Sr)r&rrar Úsrc_rootrr[rb)r,rVÚress rrazbuild_py.get_package_dirsF€ÝŒm×+Ò+¨D°'Ñ:Ô:ˆØ Ô Ô %Ð 1Ý”7—<’< Ô 1Ô :¸CÑ@Ô@Ð @؈ rcó(‡‡—t‰¦«Š| |j||¦«}ˆfd„|D¦«}tj |¦«}t |¦«Šˆfd„‰D¦«}tt|¦«¦«S)z6Filter filenames for package's data files in 'src_dir'c3óB•K—|]}tj‰|¦«V—ŒdSr)Úfnmatchrp)r]Úpatternrxs €rr»z.build_py.exclude_data_files..$s/øèè€ÐOÐO¸7�œ u¨gÑ6Ô6ÐOÐOÐOÐOÐOÐOrc3ó$•K—|] }|‰v¯|V—Œ dSrrL)r]ÚfnÚbads €rr»z.build_py.exclude_data_files..(s'øèè€Ð7Ð7˜"¨°3¨¨�2¨¨¨¨Ð7Ð7r)rNrkr)rmrnroÚsetr ) r,rVr_rxrtÚ match_groupsÚmatchesÚkeepersrßs ` @rrszbuild_py.exclude_data_filess›øø€å�U‘ ” ˆØ×.Ò.Ø Ô %Ø Ø ñ ô ˆð PÐOÐOÐOÀhÐOÑOÔOˆ å”/×/Ò/° Ñ=Ô=ˆÝ�'‰lŒlˆØ7Ð7Ð7Ð7 Ð7Ñ7Ô7ˆå•O GÑ,Ô,Ñ-Ô-Ð-rrLc󜇗tj|| dg¦«| |g¦«¦«}ˆfd„|D¦«S)zÜ yield platform-specific path patterns (suitable for glob or fn_match) from a glob-based spec (such as self.package_data or self.exclude_package_data) matching package in src_dir. Úc3ór•K—|]1}tj ‰t|¦«¦«V—Œ2dSr)rr[rbr)r]rÜr_s €rr»z2build_py._get_platform_patterns..9sQøèè€ð ð ðõ ŒG�LŠL˜¥,¨wÑ"7Ô"7Ñ 8Ô 8ð ð ð ð ð ð r)rmrnrr)ÚspecrVr_riÚ raw_patternss ` rrkzbuild_py._get_platform_patterns,shø€õ!”Ø Ø �HŠH�R˜Ñ Ô Ø �HŠH�W˜bÑ !Ô !ñ ô ˆ ð  ð ð ð ð(ð ñ ô ð r©rr)TTNr-)r.r r/r r0r!r1r!r2r3r4r5rr6)rGr8rr )rrQ)rVr8rrW)T)r>r!rry)rr~)rrˆ)rxr²r˜r rr³)rVr8rr8)rL)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú__annotations__r"r#r'r;rFrJrIrUrPrerEr|r‚r�rCrMr¢rÃrÈrÕrarsÚ staticmethodrkÚ __classcell__)r<s@rrr s6ø€€€€€€ðððÐÐÑØ€MÐÐÐÑØ,0ÐÐ0Ð0Ð0Ñ0ð,ð,ð,ð,ð#Ø#ØØð ð ð ð ð ð ð ð"SðSðSðSð"5ð5ð5ð5ðHðHðHð HðHðHðHð 6ð 6ð 6ð 6ð@ð@ð@ð$5ð5ð5ð5ð5ð5ð5ð AðAðAðAð*ð*ð*ð*ð(ð(ð(ð(ð"ð"ð"ð"ð'Mð'Mð'Mð'MðRðððð* ð ð ð ðððð<*ð*ð*ð ðððð .ð.ð.ð ð ð ð ñ„\ð ð ð ð ð rrcó¸—tj |¦«s|Sddlm}t jd¦« ¦«|z}||¦«‚)Nr)ÚDistutilsSetupErrorzÓ Error: setup script specifies an absolute path: %s setup() arguments must *always* be /-separated paths relative to the setup.py directory, *never* absolute paths. )rr[r¾Údistutils.errorsròÚtextwrapÚdedentÚlstrip)r[ròÚmsgs rršrš@sp€Ý Œ7�=Š=˜Ñ Ô ðØˆ Ø4Ð4Ð4Ð4Ð4Ð4õ Œð ñ ô ÷ Š&‰(Œ(Ø ñ ðð Ð ˜cÑ "Ô "Ð"rcóH—eZdZdZGd„de¦«Zd d„Zd„Zd„Zd „Z d S) r¡z>Inform users that package or module is included as 'data file'có—eZdZdZdZdS)ú!_IncludePackageDataAbuse._WarningzU Package {importable!r} is absent from the `packages` configuration. a| ############################ # Package would be ignored # ############################ Python recognizes {importable!r} as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that {importable!r} is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want {importable!r} to be distributed and are already explicitly excluding {importable!r} via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. N)rêrërìÚ_SUMMARYÚ_DETAILSrLrrÚ_WarningrúXs€€€€€ð ˆð" ˆˆˆrrýrrcóB—tt¦«|_dSr)ràr8Ú_already_warnedr+s rÚ__init__z!_IncludePackageDataAbuse.__init__ƒs€Ý"¥3œx™zœzˆÔÐÐrcó€—| d¦«o)|dtd¦« … ¦«S)Nz.py)ÚendswithÚlenÚ isidentifier)r,r^s rr£z"_IncludePackageDataAbuse.is_module†s6€Ø�}Š}˜UÑ#Ô#ÐJ¨¨]µ°E± ´ ¨{¨]Ô(;×(HÒ(HÑ(JÔ(JÐJrcóÄ—t|¦«j}ttjt j|j¦«¦«}|rd |g|¢¦«SdS)NrY) rÚparentrNrmÚ takewhiler8rÚpartsrb)r,rr^rÒrs rr¤z._IncludePackageDataAbuse.importable_subpackage‰sV€Ý�4‰jŒjԈݕYÔ(­Ô)9¸3¼9ÑEÔEÑFÔFˆØ ð .Ø—8’8˜VÐ, eÐ,Ñ-Ô-Ð -؈trcó†—||jvr7|j |¬¦«|j |¦«dSdS)N)r±)rÿrýÚemitÚadd)r,r±s rr¥z_IncludePackageDataAbuse.warn�sN€Ø ˜TÔ1Ð 1Ð 1Ø ŒM× Ò ¨*Ð Ñ 5Ô 5Ð 5Ø Ô × $Ò $ ZÑ 0Ô 0Ð 0Ð 0Ð 0ð 2Ð 1rNré) rêrërìrírrýrr£r¤r¥rLrrr¡r¡UsŠ€€€€€ØHÐHð' ð' ð' ð' ð' Ð/ñ' ô' ð' ðV*ð*ð*ð*ðKðKðKðððð1ð1ð1ð1ð1rr¡ré)'Ú __future__rrÛrmr…rrrôÚcollections.abcrrÚ functoolsrrÚpathlibrÚtypingr Úmore_itertoolsr Ú_pathr r ÚdistrÚwarningsrÚdistutils.command.build_pyÚcommandrr&rórÍÚdistutils.utilrrlrršr¡rLrrúrsÇðØ"Ð"Ð"Ð"Ð"Ð"à€€€ØÐÐÐØ€€€Ø € € € Ø € € € Ø€€€Ø.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐà*Ð*Ð*Ð*Ð*Ð*à%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØÐÐÐÐÐØ3Ð3Ð3Ð3Ð3Ð3à)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÐÐÐØ'Ð'Ð'Ð'Ð'Ð'à,Ðð>ð>ð>ð>ð] ð] ð] ð] ð] ˆtŒ}ñ] ô] ð] ð@ #ð#ð#ð*>1ð>1ð>1ð>1ð>1ñ>1ô>1ð>1ð>1ð>1r