f<dZddlZddlmZddlmZddlT ddlmZn#e $rdZYnwxYwgdZ ej d d d d gZ ej d dddgZdZddZddZddZddZddZddZddZddZddZddZddZdS)z dyld emulation N)framework_info) dylib_info)*) _dyld_shared_cache_contains_pathctN)NotImplementedError)argss ;/opt/alt/python311/lib64/python3.11/ctypes/macholib/dyld.pyrr s!!) dyld_findframework_findrrz~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libcz| tj}||}|gS|dS)N:)osenvirongetsplit)envvarrvals r dyld_envr$s7 {j 773<For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsNc3K|D]C}|dr!|dtd |zdzVn||zV|VDdS)Nz.dylib)endswithlen)iteratorsuffixpaths r _injectz)dyld_image_suffix_search.._injectBsx  D}}X&& $?S]]N?+f4x?????Vm###JJJJ   r )r)r.rr/r1s r dyld_image_suffix_searchr2=s@ s # #F ~!& 799r c#BKt|}|:t|D]*}tj||dV+t |D]A}tj|tj|VBdSNname)rr rr0joinr#basename)r5r frameworkr0s r dyld_override_searchr9Ks t$$I',, 8 8D',,tYv%677 7 7 7 7"#&&99gll4!1!1$!7!788888899r c#K|dr;|;tj||t ddVdSdSdS)Nz@executable_path/) startswithrr0r6r-)r5executable_paths r dyld_executable_path_searchr=\sk *++M0Kgll?D5H1I1I1J1J,KLLLLLLLMM0K0Kr c#XK|Vt|}|s"C"C+ 8 8D',,tYv%677 7 7 7 76s;;%99gll4!1!1$!7!7888888%<. 8 8D',,tYv%677 7 7 7 7 =, = =D',,tRW%5%5d%;%;<< < < < <== = =r c Nttt||t||t |||D]I}t j|r|cS t|r|cS:#t$rYFwxYwtd|d)z: Find a library or framework using dyld semantics zdylib z could not be found) r2chainr9r=rCrr0isfilerr ValueError)r5r<rr0s r r r ys)$T3//+D/BB#D#..**    7>>$   KKK /55   "    D  *ddd< = ==s0B BBcd} t|||S#t$r }|}Yd}~nd}~wwxYw|d}|dkrt|}|dz }tj|tj|d|} t|||d}S#t$r|wxYw#d}wxYw)z Find a framework using dyld semantics in a very loose manner. Will take input such as: Python Python.framework Python.framework/Versions/Current N)r<rz .framework)r rGrfindr-rr0r6r7)fnr<rerrore fmwk_indexs r rrs E_#FFFF ,''JRWW  l b"'**2kzk?;; < rXs 444444,,,,,,"8888888"""""""""   G-..! Gw  (((( 0000....99997777    9999"MMMM====,>>>>(s **