JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB  fg@sdZddlZddlmZddlmZddlTdddd gZej d d d d gZ ej ddddgZ ddZ d+ddZ d,ddZd-ddZd.ddZd/ddZd0ddZd1d d!Zd2d"d#Zd3d$d%Zd4d&dZd5d'dZd(d)Zed*kredS)6z dyld emulation N)framework_info) dylib_info)* dyld_findframework_findrrz~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libcCs.|dkrtj}||}|dkr$gS|dS)N:)osenvirongetsplit)envvarZrvalr9/opt/alt/python37/lib64/python3.7/ctypes/macholib/dyld.pydyld_envs  rcCs|dkrtj}|dS)NZDYLD_IMAGE_SUFFIX)rr r )r rrrdyld_image_suffix'srcCs t|dS)NZDYLD_FRAMEWORK_PATH)r)r rrrdyld_framework_path,srcCs t|dS)NZDYLD_LIBRARY_PATH)r)r rrrdyld_library_path/srcCs t|dS)NZDYLD_FALLBACK_FRAMEWORK_PATH)r)r rrrdyld_fallback_framework_path2srcCs t|dS)NZDYLD_FALLBACK_LIBRARY_PATH)r)r rrrdyld_fallback_library_path5srcCs(t|}|dkr|S||fdd}|S)z>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsNcssJxD|D]<}|dr2|dtd |dVn ||V|VqWdS)Nz.dylib)endswithlen)iteratorsuffixpathrrr_inject=s    z)dyld_image_suffix_search.._inject)r)rr rrrrrdyld_image_suffix_search8s rccsdt|}|dk r6x$t|D]}tj||dVqWx(t|D]}tj|tj|Vq@WdS)Nname)rrrrjoinrbasename)rr frameworkrrrrdyld_override_searchFs r!ccs2|dr.|dk r.tj||tddVdS)Nz@executable_path/) startswithrrrr)rexecutable_pathrrrdyld_executable_path_searchWsr$ccs|Vt|}|dk r@t|}x |D]}tj||dVq$Wt|}x$|D]}tj|tj|VqNW|dk r|sx tD]}tj||dVqW|sx$tD]}tj|tj|VqWdS)Nr) rrrrrrrDEFAULT_FRAMEWORK_FALLBACKDEFAULT_LIBRARY_FALLBACK)rr r Zfallback_framework_pathrZfallback_library_pathrrrdyld_default_search^s     r'cCsPxs: