← Back to team overview

zim-wiki team mailing list archive

Re: Zim building problems

 

In looking for the alleged offending dll file, I rebuilt and subsequently
ran the rebuilt zim from within a sandbox program (sandboxie) while
monitoring the resources accessed during that time.  Attached, you will
find these 2 log files, one with only the output resulting from *python*
*windows\build_win32.py*, and the other from *Zim Desktop Wiki Portable.exe*.


Actually, the build command uses "pyx2" (in place of "python"), a unique
environmental variable that I use to invoke my 32-bit python-27
interpreter.  I also have the 64-bit version of python-27, as well as both
32 and 64-bit versions of python-3, but each exists in its own directory
accessing the appropriate python libraries and packages therein.
The directory for the 32-bit 2.7 interpreter is "python27x32\", and the
attached build-time log seems to confirm that the script accesses the dll
files corresponding to the correct python version, but I cannot say the
same for the windows system dll files.  At one point, the build-time log
records the script accessing the file (or image of)
"c:\windows\system32\python27.dll," which I cannot seem to find.

As for the runtime log, most of the dll files are within the zim directory
tree, except for a bunch of windows system dll files.

Is anyone else able to build this version of Zim on windows 7?

~Kevin


On Thu, Aug 31, 2017 at 1:57 PM, Loren Rosen <lorenrosen@xxxxxxxxx> wrote:

> (This may appear as a top-level message rather than as a response, due to
> email client and launchpad problems.)
>
> Don't know much about DLLs specifically, so let me ask a potentially dumb
> question. When does it try to load a DLL? Could it be that the difference
> seen is because one program tries to load libraries and the other doesn't
> get that far? I ask because, at least with the old C and Unix dynamic
> libraries, it would be quite easy to compile your program with no errors
> and yet have it fail to actually run.
>
> Other things:
> Is there an easy way to tell where it's looking for libraries, and/or
> where it found them?
> In particular, could there be a 32- vs 64-bit problem?
> An example in wikipedia (in https://en.wikipedia.org/wiki/
> Dynamic-link_library#Python) suggests you can directly try to load a DLL:
>
> import ctypes
>
> my_dll = ctypes.cdll.LoadLibrary("Example.dll")
>
> Looking at the Python docs, seems like ctypes.util.find_library(name)
> will return the path for the library. Also, perhaps ctypes.OleDL
> and ctypes.WinDLL will be useful. Maybe they have better error handling. (I
> think you'd use these instead of ctypes.cdll.)
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~zim-wiki
> Post to     : zim-wiki@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~zim-wiki
> More help   : https://help.launchpad.net/ListHelp
>
>
(Drive)     \Device\HarddiskVolume12
(Drive)     \Device\HarddiskVolume2
(Drive)     \Device\HarddiskVolume3
(Drive)     \Device\HarddiskVolume4
(Drive)     \Device\HarddiskVolume5
(Drive)     \Device\HarddiskVolume6
(Drive)     \Device\HarddiskVolume7
(Drive)     \Device\HarddiskVolume8
Clsid       -------------------------------
File/Key    -------------------------------
Image       -------------------------------
Image       *:\ide+\python\python27x32\python.exe
Image       *:\program files (x86)\nsis\bin\makensis.exe
Image       *:\program files (x86)\nsis\makensis.exe
Image       c:\windows\system32\apphelp.dll
Image       c:\windows\system32\cryptsp.dll
Image       c:\windows\system32\dnsapi.dll
Image       c:\windows\system32\dwmapi.dll
Image       c:\windows\system32\imm32.dll
Image       c:\windows\system32\iphlpapi.dll
Image       c:\windows\system32\msimg32.dll
Image       c:\windows\system32\msvcp60.dll
Image       c:\windows\system32\propsys.dll
Image       c:\windows\system32\python27.dll
Image       c:\windows\system32\rsaenh.dll
Image       c:\windows\system32\uxtheme.dll
Image       c:\windows\system32\version.dll
Image       c:\windows\system32\winmm.dll
Image       c:\windows\system32\winnsi.dll
Image       c:\windows\system32\winspool.drv
Image       c:\windows\syswow64\advapi32.dll
Image       c:\windows\syswow64\cfgmgr32.dll
Image       c:\windows\syswow64\comdlg32.dll
Image       c:\windows\syswow64\crypt32.dll
Image       c:\windows\syswow64\cryptbase.dll
Image       c:\windows\syswow64\devobj.dll
Image       c:\windows\syswow64\gdi32.dll
Image       c:\windows\syswow64\imagehlp.dll
Image       c:\windows\syswow64\kernel32.dll
Image       c:\windows\syswow64\kernelbase.dll
Image       c:\windows\syswow64\lpk.dll
Image       c:\windows\syswow64\msasn1.dll
Image       c:\windows\syswow64\msctf.dll
Image       c:\windows\syswow64\msvcrt.dll
Image       c:\windows\syswow64\nsi.dll
Image       c:\windows\syswow64\ntdll.dll
Image       c:\windows\syswow64\ole32.dll
Image       c:\windows\syswow64\oleaut32.dll
Image       c:\windows\syswow64\psapi.dll
Image       c:\windows\syswow64\rpcrt4.dll
Image       c:\windows\syswow64\sechost.dll
Image       c:\windows\syswow64\setupapi.dll
Image       c:\windows\syswow64\shell32.dll
Image       c:\windows\syswow64\shlwapi.dll
Image       c:\windows\syswow64\sspicli.dll
Image       c:\windows\syswow64\user32.dll
Image       c:\windows\syswow64\usp10.dll
Image       c:\windows\syswow64\ws2_32.dll
Image       c:\windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\msvcr90.dll
Image       c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc\comctl32.dll
Image       c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll
Image       c:\windows\winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23688_none_5c0a8e35a00adeb9\gdiplus.dll
Image       n:\ide+\python\python27x32\dlls\_ctypes.pyd
Image       n:\ide+\python\python27x32\dlls\_elementtree.pyd
Image       n:\ide+\python\python27x32\dlls\_hashlib.pyd
Image       n:\ide+\python\python27x32\dlls\_multiprocessing.pyd
Image       n:\ide+\python\python27x32\dlls\_socket.pyd
Image       n:\ide+\python\python27x32\dlls\_sqlite3.pyd
Image       n:\ide+\python\python27x32\dlls\_ssl.pyd
Image       n:\ide+\python\python27x32\dlls\pyexpat.pyd
Image       n:\ide+\python\python27x32\dlls\sqlite3.dll
Image       n:\ide+\python\python27x32\dlls\unicodedata.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\cairo\_cairo.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libatk-1.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libcairo-gobject-2.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libffi-6.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libfontconfig-1.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libfreetype-6.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libgdk_pixbuf-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libgio-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libglib-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libgmodule-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libgobject-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libgthread-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libharfbuzz-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libintl-8.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libjasper-1.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libjpeg-8.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libpango-1.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libpangocairo-1.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libpangoft2-1.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libpangowin32-1.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libpng16-16.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\librsvg-2-2.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libtiff-5.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libwebp-5.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libwinpthread-1.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libxmlxpat.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gnome\libzzz.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\atk.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\gio\_gio.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\glib\_glib.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\gobject\_gobject.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\gtk\_gtk.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\pango.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\pangocairo.pyd
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\runtime\bin\freetype6.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\runtime\bin\intl.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\runtime\bin\libcairo-2.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\runtime\bin\libgdk-win32-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\runtime\bin\libgtk-win32-2.0-0.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\runtime\bin\libpng14-14.dll
Image       n:\ide+\python\python27x32\lib\site-packages\gtk-2.0\runtime\bin\zlib1.dll
Image       n:\ide+\python\python27x32\lib\site-packages\py2exe\py2exe_util.pyd
Image       n:\program files (x86)\nsis\bin\zlib1.dll
Image       n:\system utilities\sandboxie\32\sbiedll.dll
Ipc         -------------------------------
Ipc         \RPC Control\epmapper
Ipc         \RPC Control\plugplay
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_1872
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_5052
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_6012
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_6324
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_7468
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_7492
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_7664
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_8000
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_8280
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_9072
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_ServiceInitComplete_DcomLaunch
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_ServiceInitComplete_RpcSs
Ipc         \Sessions\1\BaseNamedObjects\SboxSession
Ipc         \Sessions\1\BaseNamedObjects\windows_shell_global_counters
Ipc      O  \KnownDlls\kernel32.dll
Ipc      O  \KnownDlls\user32.dll
Ipc      O  \KnownDlls32\advapi32.dll
Ipc      O  \KnownDlls32\CFGMGR32.dll
Ipc      O  \KnownDlls32\COMDLG32.dll
Ipc      O  \KnownDlls32\CRYPT32.dll
Ipc      O  \KnownDlls32\CRYPTBASE.dll
Ipc      O  \KnownDlls32\DEVOBJ.dll
Ipc      O  \KnownDlls32\gdi32.dll
Ipc      O  \KnownDlls32\IMAGEHLP.dll
Ipc      O  \KnownDlls32\kernel32.dll
Ipc      O  \KnownDlls32\kernelbase.dll
Ipc      O  \KnownDlls32\LPK.dll
Ipc      O  \KnownDlls32\MSASN1.dll
Ipc      O  \KnownDlls32\MSCTF.dll
Ipc      O  \KnownDlls32\MSVCRT.dll
Ipc      O  \KnownDlls32\NSI.dll
Ipc      O  \KnownDlls32\ole32.dll
Ipc      O  \KnownDlls32\OLEAUT32.dll
Ipc      O  \KnownDlls32\PSAPI.DLL
Ipc      O  \KnownDlls32\rpcrt4.dll
Ipc      O  \KnownDlls32\Setupapi.dll
Ipc      O  \KnownDlls32\SHELL32.dll
Ipc      O  \KnownDlls32\SHLWAPI.dll
Ipc      O  \KnownDlls32\SspiCli.dll
Ipc      O  \KnownDlls32\user32.dll
Ipc      O  \KnownDlls32\USP10.dll
Ipc      O  \KnownDlls32\WS2_32.dll
Ipc      O  \RPC Control\ConsoleLPC-0x00000000000017A0--522129649-1337919547560156643433199873-2057730129-1800856833-658274557-524023046
Ipc      O  \RPC Control\SbieSvcPort
Ipc      O  \Sessions\1\Windows\ApiPort
Ipc      O  \Sessions\1\Windows\SharedSection
Ipc      O  \ThemeApiPort
Pipe        -------------------------------
Pipe        \Device\HarddiskVolume1
Pipe        \Device\HarddiskVolume12
Pipe        \Device\HarddiskVolume2
Pipe        \Device\HarddiskVolume3
Pipe        \Device\HarddiskVolume4
Pipe        \Device\HarddiskVolume5
Pipe        \Device\HarddiskVolume6
Pipe        \Device\HarddiskVolume7
Pipe        \Device\HarddiskVolume8
Pipe        \Device\KsecDD
Pipe        \Device\MountPointManager
WinCls      -------------------------------
(Drive)     \Device\HarddiskVolume12
(Drive)     \Device\HarddiskVolume2
(Drive)     \Device\HarddiskVolume3
(Drive)     \Device\HarddiskVolume4
(Drive)     \Device\HarddiskVolume5
(Drive)     \Device\HarddiskVolume6
(Drive)     \Device\HarddiskVolume7
(Drive)     \Device\HarddiskVolume8
Clsid       -------------------------------
File/Key    -------------------------------
Image       -------------------------------
Image       *:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\zim.exe
Image       c:\windows\system32\cryptsp.dll
Image       c:\windows\system32\dnsapi.dll
Image       c:\windows\system32\dwmapi.dll
Image       c:\windows\system32\imm32.dll
Image       c:\windows\system32\rsaenh.dll
Image       c:\windows\system32\uxtheme.dll
Image       c:\windows\system32\winmm.dll
Image       c:\windows\syswow64\advapi32.dll
Image       c:\windows\syswow64\clbcatq.dll
Image       c:\windows\syswow64\crypt32.dll
Image       c:\windows\syswow64\cryptbase.dll
Image       c:\windows\syswow64\gdi32.dll
Image       c:\windows\syswow64\kernel32.dll
Image       c:\windows\syswow64\kernelbase.dll
Image       c:\windows\syswow64\lpk.dll
Image       c:\windows\syswow64\msasn1.dll
Image       c:\windows\syswow64\msctf.dll
Image       c:\windows\syswow64\msvcrt.dll
Image       c:\windows\syswow64\nsi.dll
Image       c:\windows\syswow64\ntdll.dll
Image       c:\windows\syswow64\ole32.dll
Image       c:\windows\syswow64\oleaut32.dll
Image       c:\windows\syswow64\psapi.dll
Image       c:\windows\syswow64\rpcrt4.dll
Image       c:\windows\syswow64\sechost.dll
Image       c:\windows\syswow64\shell32.dll
Image       c:\windows\syswow64\shlwapi.dll
Image       c:\windows\syswow64\sspicli.dll
Image       c:\windows\syswow64\user32.dll
Image       c:\windows\syswow64\usp10.dll
Image       c:\windows\syswow64\ws2_32.dll
Image       c:\windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\msvcr90.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\_ctypes.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\_elementtree.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\_hashlib.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\_multiprocessing.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\_socket.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\_sqlite3.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\_ssl.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\gio._gio.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\glib._glib.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\gobject._gobject.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\iphlpapi.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libffi-6.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libgio-2.0-0.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libglib-2.0-0.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libgmodule-2.0-0.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libgobject-2.0-0.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libgthread-2.0-0.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libintl-8.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libpango-1.0-0.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libwinpthread-1.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\libzzz.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\pango.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\pyexpat.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\python27.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\sqlite3.dll
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\unicodedata.pyd
Image       d:\mycode.source\source.upload\temp\zim\windows\build\zimdesktopwiki\winnsi.dll
Image       n:\system utilities\sandboxie\32\sbiedll.dll
Image       n:\windows\zbar 0.86\solhook12.dll
Ipc         -------------------------------
Ipc         \BaseNamedObjects\__ComCatalogCache__
Ipc         \RPC Control\epmapper
Ipc         \Sessions\1\BaseNamedObjects\__ComCatalogCache__
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_DummyEvent_8228
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_ServiceInitComplete_DcomLaunch
Ipc         \Sessions\1\BaseNamedObjects\SBIE_BOXED_ServiceInitComplete_RpcSs
Ipc         \Sessions\1\BaseNamedObjects\SboxSession
Ipc      O  \BaseNamedObjects\msctf.serverDefault1
Ipc      O  \KernelObjects\MaximumCommitCondition
Ipc      O  \KnownDlls\kernel32.dll
Ipc      O  \KnownDlls\user32.dll
Ipc      O  \KnownDlls32\advapi32.dll
Ipc      O  \KnownDlls32\clbcatq.dll
Ipc      O  \KnownDlls32\CRYPT32.dll
Ipc      O  \KnownDlls32\CRYPTBASE.dll
Ipc      O  \KnownDlls32\gdi32.dll
Ipc      O  \KnownDlls32\kernel32.dll
Ipc      O  \KnownDlls32\kernelbase.dll
Ipc      O  \KnownDlls32\LPK.dll
Ipc      O  \KnownDlls32\MSASN1.dll
Ipc      O  \KnownDlls32\MSCTF.dll
Ipc      O  \KnownDlls32\MSVCRT.dll
Ipc      O  \KnownDlls32\NSI.dll
Ipc      O  \KnownDlls32\ole32.dll
Ipc      O  \KnownDlls32\OLEAUT32.dll
Ipc      O  \KnownDlls32\PSAPI.DLL
Ipc      O  \KnownDlls32\rpcrt4.dll
Ipc      O  \KnownDlls32\SHELL32.dll
Ipc      O  \KnownDlls32\SHLWAPI.dll
Ipc      O  \KnownDlls32\SspiCli.dll
Ipc      O  \KnownDlls32\user32.dll
Ipc      O  \KnownDlls32\USP10.dll
Ipc      O  \KnownDlls32\WS2_32.dll
Ipc      O  \RPC Control\SbieSvcPort
Ipc      O  \Sessions\1\BaseNamedObjects\CTF.AsmListCache.FMPDefault1
Ipc      O  \Sessions\1\BaseNamedObjects\MSCTF.Asm.MutexDefault1
Ipc      O  \Sessions\1\BaseNamedObjects\MSCTF.AsmCacheReady.Default1
Ipc      O  \Sessions\1\BaseNamedObjects\MSCTF.CtfActivated.Default1
Ipc      O  \Sessions\1\Windows\ApiPort
Ipc      O  \Sessions\1\Windows\SharedSection
Ipc      O  \ThemeApiPort
Pipe        -------------------------------
Pipe        \Device\HarddiskVolume4\Sandbox\DefaultBox
Pipe        \Device\HarddiskVolume4\Sandbox\DefaultBox\drive
Pipe        \Device\KsecDD
Pipe        \device\namedpipe\zim-*****-0.67-c92a6c2b-primary
Pipe        \device\namedpipe\zim-kevin-0.67-c92a6c2b-primary
Pipe     O  \Device\NamedPipe
Pipe     O  \Device\NamedPipe\
WinCls      -------------------------------

Follow ups

References