From 8894ff938173d8c56924f9d4f297f8aeaeacb94d Mon Sep 17 00:00:00 2001 From: 0x000090 <0x000090@gmail.com> Date: Sat, 1 Dec 2018 14:41:50 -0600 Subject: [PATCH] Add scripts & resources for wownero cli installer. --- installers/build-cli-win.py | 88 +++++++++++ installers/cli-win/app.ico | Bin 0 -> 370070 bytes installers/cli-win/header.bmp | Bin 0 -> 26958 bytes installers/cli-win/installer.nsi | 262 +++++++++++++++++++++++++++++++ installers/cli-win/welcome.bmp | Bin 0 -> 154542 bytes installers/readme.txt | 31 ++++ 6 files changed, 381 insertions(+) create mode 100644 installers/build-cli-win.py create mode 100644 installers/cli-win/app.ico create mode 100644 installers/cli-win/header.bmp create mode 100644 installers/cli-win/installer.nsi create mode 100644 installers/cli-win/welcome.bmp create mode 100644 installers/readme.txt diff --git a/installers/build-cli-win.py b/installers/build-cli-win.py new file mode 100644 index 000000000..be186b594 --- /dev/null +++ b/installers/build-cli-win.py @@ -0,0 +1,88 @@ +# +# This is a script for easily building the wownero cli installer in an automated build. Note +# that it is also possible to build the installer by dropping the .nsi file on the NSIS GUI, +# but that this will not work, as the script requires some defines, parsed from the wownero +# version file, to be passed on the command line. +# + +import sys +sys.dont_write_bytecode = True + +import os +import os.path +import subprocess + +# +# Grab the dir of this .py +# +basedir = os.path.dirname(os.path.abspath(__file__)) + +# +# Try to find version.cpp.in. +# +version_file = os.path.join('..', 'src', 'version.cpp.in') +if not os.path.isfile(version_file): + print('Version file not found: %s' % version_file) + sys.exit(-1) + +# +# Try to parse version.cpp.in. +# +version_string = None +release_name = None +with open(version_file, 'r') as fp: + version_prefix = '#define DEF_MONERO_VERSION "' + release_prefix = '#define DEF_MONERO_RELEASE_NAME "' + for line in fp: + if line.startswith(version_prefix): + version_string = line.replace(version_prefix, '')[:-2] + elif line.startswith(release_prefix): + release_name = line.replace(release_prefix, '')[:-2] + +if not version_string: + print('Failed to parse version from: %s' % version_file) + sys.exit(-1) + +if not release_name: + print('Failed to parse release name from: %s' % version_file) + sys.exit(-1) + +# +# Check that we got an expected version format. +# +version_parts = version_string.split('.') +if len(version_parts) != 4: + print('Invalid version string: %s' % version_string) + sys.exit(-1) + +# +# Try to find makensis. +# +makensis = 'makensis.exe' +if not os.path.isfile(makensis): + for dir in os.environ['PATH'].split(';'): + test = os.path.join(dir, makensis) + if os.path.isfile(test): + makensis = test + break + +if not os.path.isfile(makensis): + print('Failed to find makensis.exe') + sys.exit(-1) + +# +# Build & run makensis command line. +# +cmd = '"%s"' % makensis +cmd += ' /V4' +cmd += ' /DVERSION_MAJOR=%s' % version_parts[0] +cmd += ' /DVERSION_MINOR=%s' % version_parts[1] +cmd += ' /DVERSION_BUILD=%s' % version_parts[2] +cmd += ' /DVERSION_REVISION=%s' % version_parts[3] +cmd += ' /DRELEASE_NAME="%s"' % release_name +cmd += ' "%s"' % os.path.join(basedir, 'cli-win', 'installer.nsi') + +print("Calling makensis: %s" % cmd) + +subprocess.call(cmd) + diff --git a/installers/cli-win/app.ico b/installers/cli-win/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..3004f190afc20ae09d88ed9f0eb0364d7ea40648 GIT binary patch literal 370070 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≫%o8;I`^|QwFzJ*PAk!TyEA0mXO~R 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 XTp~_^i~$j@%%{( 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 CSueN% literal 0 HcmV?d00001 diff --git a/installers/cli-win/header.bmp b/installers/cli-win/header.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c27a11941a92f8a6880621daa8571f2a477b2aca GIT binary patch literal 26958 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
    (IodHUZxB=aQc<;B~dJ7Im;#7ntLs2d{ zf#1G;J5Rxtr@A5puVRf;B*9ixAeyC$q=V~M z!3ZVlSmTZ%vKDz|+L59Wd?qdsLZ_CI)--tVV5vw5bNS_$>qeN5k(7Kvu}<<7c}glT zd@dczl2yYOAQk0HBBYWcC?Y9;F@Wv1Zrz$Z8+pW?d>Wm4A-Hz$-d#U^=9y=xD_M-f z1ZMN2(USE^5chU1ii9&kj)SW!PN4hGA6DeMiGAqoQIa>$J@;G!U6dsTL>2Ok2zsS1 zs|X&MmyU;r3>gAncfm@ABDpfc`QU>OC`xWOxRTCKQC~zudgS7Y83s!xvYL_6!vj}| z@1){_1q)cV5`yV=gwP|`gQ+dS;OwmxYI9}uUyeUA%1sbd#2j2-E>l}7WBu%H!ED6@ z-$XLdbl$II0uwHwAl-t%ykf-);gBPE@4fdDtq@OvB^D-pLQ{&m7A?ae@l!ZBQi>8B zv5XIpCtI-d~{FU*@j`6cu}2Mq>}s}P)ML88E6_Rf?J@~lb`T`S@QR_*uF^E ztIF-e^J`<8iNh(9_7VB&xA;q-Ffdr^5n>SUn0y=>>D_<)@rTJIR53lX`Dovw)l9G5 z@_z)a)6u`<#8dm0_UrX+?Fp9MB0pKnOIBV1>Lho)zDT<9Pz~4tHNjo4R%^G)w*fWY zHdpAd(xtl4fST!1?fz-EAz1@Op5t4#FKE`DS^am3burR(8%b)wURh3rjKfR;!l+eL zi+sChv09yUpp@jm)8cV8VA*Q4Wgi)Go*EUie`XS6JB^IC0%bJ^v2nXj3)Hs;6#Gqg zma4Y-jw4O-=fp?t3e?@DfxM8Ty80e-y8Xm7z**i_Ta9yyzvbz-6t+8Y02Vr+Eu=^I<_m(;-PKbr%((Ki*l^$GL W18EJUHIUXoS_5efq%{y*1OEjoh$>(J literal 0 HcmV?d00001 diff --git a/installers/cli-win/installer.nsi b/installers/cli-win/installer.nsi new file mode 100644 index 000000000..289270a68 --- /dev/null +++ b/installers/cli-win/installer.nsi @@ -0,0 +1,262 @@ +;----------------------------------------------------------------------------------------- +; File: Wownero CLI NSIS installer +; Author: 0x000090 +; Date: 1 Dec 2018 +; License: WTFPL +;----------------------------------------------------------------------------------------- +; +; DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE +; Version 2, December 2004 +; +; Copyright (C) 2018 Wownero Inc., a Monero Enterprise Alliance partner company +; +; DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE +; TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +; +; 0. You just DO WHAT THE FUCK YOU WANT TO. +; +;----------------------------------------------------------------------------------------- +!include 'MUI2.nsh' +!include 'TextFunc.nsh' +!include 'WordFunc.nsh' +!include 'Sections.nsh' + +;----------------------------------------------------------------------------------------- +!ifndef VERSION_MAJOR + !warning 'VERSION_MAJOR not defined!' + Quit +!endif + +!ifndef VERSION_MINOR + !warning 'VERSION_MINOR not defined!' + Quit +!endif + +!ifndef VERSION_BUILD + !warning 'VERSION_BUILD not defined!' + Quit +!endif + +!ifndef VERSION_REVISION + !warning 'VERSION_REVISION not defined!' + Quit +!endif + +!ifndef RELEASE_NAME + !warning 'RELEASE_NAME not defined!' + Quit +!endif + +!define VERSION_SHORT '${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD}' +!define VERSION_LONG '${VERSION_SHORT}.${VERSION_REVISION}' + +;----------------------------------------------------------------------------------------- +!define PROJECT_NAME 'Wownero' +!define PRODUCT_NAME 'Wownero CLI' +!define COMPANY_NAME 'Wownero Inc.' +!define EXE_BASENAME 'wownero' +!define HELP_URL 'http://wownero.org/#community' +!define ABOUT_URL 'http://wownero.org/#about' +!define SOURCE_DIR '..\..\build\release\bin' +!define TARGET_DIR '..\..\build\installers' +!define TARGET_PATH '${TARGET_DIR}\Wownero-CLI-${VERSION_LONG}-win.exe' +!define INSTALL_SUBDIR 'cli' +!define INSTALL_SIZE 181000 +!define UNINSTALLER_NAME 'uninstall.exe' +!define REG_BASE 'Software\Microsoft\Windows\CurrentVersion\Uninstall' +!define REG_KEY '${REG_BASE}\{E114584F-4E1B-4B2D-8B1C-69A188025E98}' +!define /date CURRENT_YEAR '%Y' + +;----------------------------------------------------------------------------------------- +!system 'if not exist "${TARGET_DIR}" md "${TARGET_DIR}"' + +;----------------------------------------------------------------------------------------- +Name '${PRODUCT_NAME}' +OutFile '${TARGET_PATH}' +BrandingText '${PRODUCT_NAME} ${VERSION_LONG} "${RELEASE_NAME}"' +CRCCheck force +RequestExecutionLevel admin +InstallDir "$PROGRAMFILES64\${PROJECT_NAME}\${INSTALL_SUBDIR}" +ShowInstDetails show +ShowUninstDetails show + +;----------------------------------------------------------------------------------------- +VIAddVersionKey 'CompanyName' '${COMPANY_NAME}' +VIAddVersionKey 'ProductName' '${PRODUCT_NAME}' +VIAddVersionKey 'FileDescription' '${PRODUCT_NAME}' +VIAddVersionKey 'LegalCopyright' 'Copyright (c) ${CURRENT_YEAR}, ${COMPANY_NAME}' +VIAddVersionKey 'FileVersion' '${VERSION_SHORT}' +VIProductVersion '${VERSION_LONG}' + +;----------------------------------------------------------------------------------------- +!define MUI_ABORTWARNING +!define MUI_UNABORTWARNING + +!define MUI_FINISHPAGE_NOAUTOCLOSE +!define MUI_UNFINISHPAGE_NOAUTOCLOSE + +!define MUI_ICON "app.ico" +!define MUI_UNICON "app.ico" + +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_RIGHT +!define MUI_HEADERIMAGE_BITMAP "header.bmp" +!define MUI_HEADERIMAGE_UNBITMAP "header.bmp" +!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH +!define MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH + +!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp" +!define MUI_UNWELCOMEFINISHPAGE_BITMAP "welcome.bmp" +!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH +!define MUI_UNWELCOMEFINISHPAGE_UNBITMAP_NOSTRETCH + +;----------------------------------------------------------------------------------------- +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +;----------------------------------------------------------------------------------------- +!insertmacro MUI_LANGUAGE "English" + +;----------------------------------------------------------------------------------------- +Function VerifyUserIsAdmin + UserInfo::GetAccountType + Pop $0 + ${If} $0 != "admin" + MessageBox MB_ICONSTOP "Admin permissions required, please use right-click > Run as Administrator." + SetErrorLevel 740 ; ERROR_ELEVATION_REQUIRED + Quit + ${EndIf} +FunctionEnd + +Function .onInit + Call VerifyUserIsAdmin +FunctionEnd + +Function un.onInit +FunctionEnd + +;----------------------------------------------------------------------------------------- +!macro RemoveFile file + Push $0 + ${TrimNewLines} '${file}' $0 + SetDetailsPrint both + ${If} ${FileExists} '$0' + DetailPrint 'Deleting file $0' + SetDetailsPrint textonly + Delete "$0" + ${Else} + DetailPrint 'File not found: $0' + ${Endif} + SetDetailsPrint lastused + Pop $0 +!macroend + +!macro RemoveDir dir + Push $0 + ${TrimNewLines} '${dir}' $0 + SetDetailsPrint both + ${If} ${FileExists} '$0' + DetailPrint 'Deleting directory $0' + SetDetailsPrint textonly + RmDir /r "$0" + ${Else} + DetailPrint 'Directory not found: $0' + ${Endif} + SetDetailsPrint lastused + Pop $0 +!macroend + +;----------------------------------------------------------------------------------------- +Function WriteFiles + DetailPrint 'Installing application files...' + SetDetailsPrint both + SetOutPath '$INSTDIR' + File 'app.ico' + + ; + ; Add here whatever else you want to be included: + ; + File '${SOURCE_DIR}\${EXE_BASENAME}d.exe' + File '${SOURCE_DIR}\${EXE_BASENAME}-wallet-cli.exe' + File '${SOURCE_DIR}\${EXE_BASENAME}-wallet-rpc.exe' + File '${SOURCE_DIR}\${EXE_BASENAME}-gen-trusted-multisig.exe' + + ; + ; NOTE: you can also add all files in a dir, like this: + ; + ;File /r '${SOURCE_DIR}\*.*' + + SetDetailsPrint lastused + DetailPrint 'Writing uninstaller...' + WriteUninstaller '$INSTDIR\${UNINSTALLER_NAME}' +FunctionEnd + +Function un.WriteFiles + DetailPrint 'Removing application files...' + !insertmacro RemoveDir '$INSTDIR' +FunctionEnd + +;----------------------------------------------------------------------------------------- +Function WriteShortcuts + DetailPrint 'Creating Desktop shortcuts...' + CreateShortCut '$DESKTOP\${PRODUCT_NAME} Wallet.lnk' '$INSTDIR\${EXE_BASENAME}-wallet-cli.exe' '' '$INSTDIR\app.ico' + CreateShortCut '$DESKTOP\${PRODUCT_NAME} Daemon.lnk' '$INSTDIR\${EXE_BASENAME}d.exe' '' '$INSTDIR\app.ico' + DetailPrint 'Creating Start Menu shortcuts...' + CreateDirectory '$SMPROGRAMS\${COMPANY_NAME}\${PRODUCT_NAME}' + CreateShortCut '$SMPROGRAMS\${COMPANY_NAME}\${PRODUCT_NAME}\${PRODUCT_NAME} Wallet.lnk' '$INSTDIR\${EXE_BASENAME}-wallet-cli.exe' '' '$INSTDIR\app.ico' + CreateShortCut '$SMPROGRAMS\${COMPANY_NAME}\${PRODUCT_NAME}\${PRODUCT_NAME} Daemon.lnk' '$INSTDIR\${EXE_BASENAME}d.exe' '' '$INSTDIR\app.ico' + CreateShortCut '$SMPROGRAMS\${COMPANY_NAME}\${PRODUCT_NAME}\Uninstall ${PRODUCT_NAME}.lnk' '$INSTDIR\${UNINSTALLER_NAME}' '' '$INSTDIR\app.ico' +FunctionEnd + +Function un.WriteShortcuts + DetailPrint 'Removing Desktop shortcuts...' + !insertmacro RemoveFile '$DESKTOP\${PRODUCT_NAME} Daemon.lnk' + !insertmacro RemoveFile '$DESKTOP\${PRODUCT_NAME} Wallet.lnk' + DetailPrint 'Removing Start Menu shortcuts...' + !insertmacro RemoveDir '$SMPROGRAMS\${COMPANY_NAME}\${PRODUCT_NAME}' +FunctionEnd + +;----------------------------------------------------------------------------------------- +Function WriteUninstaller + DetailPrint 'Registering ${PRODUCT_NAME} ${VERSION_SHORT}' + WriteRegDWORD HKLM '${REG_KEY}' 'VersionMajor' ${VERSION_MAJOR} + WriteRegDWORD HKLM '${REG_KEY}' 'VersionMinor' ${VERSION_MINOR} + WriteRegDWORD HKLM '${REG_KEY}' 'EstimatedSize' ${INSTALL_SIZE} + WriteRegDWORD HKLM '${REG_KEY}' 'NoModify' 1 + WriteRegDWORD HKLM '${REG_KEY}' 'NoRepair' 1 + WriteRegStr HKLM '${REG_KEY}' 'Contact' '${COMPANY_NAME}' + WriteRegStr HKLM '${REG_KEY}' 'Publisher' '${COMPANY_NAME}' + WriteRegStr HKLM '${REG_KEY}' 'HelpLink' '${HELP_URL}' + WriteRegStr HKLM '${REG_KEY}' 'URLInfoAbout' '${ABOUT_URL}' + WriteRegStr HKLM '${REG_KEY}' 'DisplayVersion' '${VERSION_SHORT}' + WriteRegStr HKLM '${REG_KEY}' 'Comments' '${PRODUCT_NAME}' + WriteRegStr HKLM '${REG_KEY}' 'DisplayName' '${PRODUCT_NAME} ${VERSION_SHORT}' + WriteRegStr HKLM '${REG_KEY}' 'InstallLocation' '"$INSTDIR"' + WriteRegStr HKLM '${REG_KEY}' 'DisplayIcon' '"$INSTDIR\app.ico"' + WriteRegStr HKLM '${REG_KEY}' 'UninstallString' '"$INSTDIR\${UNINSTALLER_NAME}"' + WriteRegStr HKLM '${REG_KEY}' 'QuietUninstallString' '"$INSTDIR\${UNINSTALLER_NAME}" /S' +FunctionEnd + +Function un.WriteUninstaller + DetailPrint 'Unregistering ${PRODUCT_NAME} ${VERSION_SHORT}...' + DeleteRegKey HKLM '${REG_KEY}' +FunctionEnd + +;----------------------------------------------------------------------------------------- +Section "${PRODUCT_NAME} ${VERSION_SHORT}" + Call WriteFiles + Call WriteShortcuts + Call WriteUninstaller +SectionEnd + +;----------------------------------------------------------------------------------------- +Section "Uninstall" + Call un.WriteFiles + Call un.WriteShortcuts + Call un.WriteUninstaller +SectionEnd + diff --git a/installers/cli-win/welcome.bmp b/installers/cli-win/welcome.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f690cc96dc4e2b4d1135d100b2a887defbaa4c9a GIT binary patch literal 154542 zcmeEP2S8NE)&`cYf+F^cExo`0<)xXb=`X!#EHSodH1^ogSP;7=_O7v0Ep(RMWno#$ z?y`+tKrAUQ#cl*t+V20&9T+d$q?usc&Ez_F?%cUE=bLlp%$YO8OK(Si=H^0v|Hl9K z;{W~l|7lkj7gv{#h|!)r<2C2q|2MH54Az86uRL zu$q}d4cT|C{H zp0h`m9j(+P>kCBrCun8(S5z!H&mhUmlcBacO&55218YeQ))Z)vG(u}Qq}1+{D|V-6?M=_xpGHDN zwkn(phqG0?Wtj*&5dc$~W#9vSGwu*;k}XwsNS<>{qfa&#O7jZDWKrG}k#34evnD0WE1>O&p@S_Od>7xlx(Q?jCxmKE zvPMH0CrO`&5T!L7kSjLCB}c1t%l3s0n=$wEne%5aU+dxR=jtjLK50gZN}tSyqgm?c zY;`0TBC>MBgd~a68~G5k zcuEb{5`!^Do3}q(vtFtU6=g3FDQAnclTr*5Mfyn`)=LtkUai}F_SvU*F}63G?&;;# zzGwIBlPA-R1*yjT#N1p_enE;cKOrwKPN$7h)oYCKTmJ}HG2>5lgf6a%eSY?9b*mF-kqt~DosbueVN&Oh*_LrotmE~G8i$kC+G?e z$u*nP)k{;<-w5?HgnC@(2zB$~B_4r+|9$uEyBOh{P51Eh@@>~HEzc;?=R-Co=H(wz zX%NEY*^ya_fG%CzcJ9(Ss8{D6J-hbo-HnER_aff4TaTVSg1YqR<<-86piMh>zxD#J z)*fB~-hLh3y;=*r{RKY$E&RK*YSp1%zehZMTSdzTeBpP! z|1&_~>`u#$R%k_e1;AQl)KhUCuF!<%YNOOT zbOUg-SXYp$FHFrVh|}ink*n5<6<}v*n2_9USOl@WORIk83u7YIB8yY&#MHBiE- zRwg}tT4*pvWyn1{cI@5n-k!btcI^=aaJ%*FMMK+8?SlIC4(c5g*s()E_g)j0ZrGTt z7$280PNWJ}oR}_APZg;qi&YcAVo5nm)3r0gV%H|79+c)xS-zxM}&K9Fg0PyJcE>WH|<>%)SRau;S4`oA}NcA|Qb$gnuYxL8>DRibKYx?x;= z=8Q!7B4PHX4Bb`{5#SVA0E$^T4V%dH+%h2Bu2dNqR+y*9(2TkrRcJ8D+M1q;utSyw z-F}Z;5vJ6}>I#H9V`QdkhctV+P`N;;CU6V&POSM@dwO}d>)ta>mzQQRq#6t&qaj|Q zkm$4?zAcr;{9`f4A9?gqFE20uHm&_y`?vD*^Y-$7=Ba;e-MOj4RFP9?lop&ks{iSr z>Zc`1xhpdY=i!=pW>$>yt&ksrkL1ot)>Hn%RQDU9a*0&=y-WpwFk9c1Cf|`JCpMY% z%+2!b?U{;gX&DIH(=&I;bGBz>ZRBn8smWxPy(Oza(6V)xo;~=jzB}UJf|I9jTrVvzzfn^B=bu+DUA%Da*I$3RaN*qbYsDp{SIf;6nlmTc^u70p zBL7(KkIPdOp{bflF&Pu%vgV`~&JY?FO3%zs))TnFUn1QMk!rqBz9}6uDP5F8eK=Er zNi?MKc6ruTIk_IlR$`vDD_xGTGflQbn!Zh%4!EOpHOYp&6ula=>13@jDo3+ZrU1(W zWdy?e8A^=Qu<*p_j0dxG*NC$girpil8PzE5>XWST9J`VonsR)QhzFfD9aZBu9NHOSxN~y+f9{ElqYz zo0phhgzEuW*8cR&eQ9z`$$@o*LKT~-xzb(JjcW2z)!xMVAM5~t<6~XMBns;LIw@ZsF$}e3h-LP(B zc~!;fUw($Z-7To6m$wfD`>eThO{NO7i6CBj{YI8H@5^~1qQajuPMroK@tVSD)rq6| z=N25#3Kr(iOew@N#LQ&HK{bIGs}(6k8dqbD6m+c=tsyB_o2b$t2sL>W&6`&~&^2+? zGa*+So~7I&O2haLtT(4;@0Kbtn}d$GJyo$mtX!0$oFvShn50=C(hT}`rMI6GYqOV^ zPn*tNWiXH$3~2?0aap-5UXb=>0rMKPF6WNcHn!NP~BOiYG^+bIk zCP5f#gA)kc3sQ1pjHhL~{A?Y!I8~dk!P*pJOO$CgTUevR0Qw|DL9EVzwYHto3@B+Z z$8C`1V0CquOtC#x39HVW6!pYJ-CU98g9WQR`~&Y!xy^4ibTiDaG2xOJw3yd`hVKj? zwPyRy3Ug&;Wx0Rb0AIgWz`Eak_W^Vox`D^L_2|&Cb6|&#E!%ZaoH~QmF*2}{;W!_Q z;IP8Mx(=iIQjs25&rQsZ%|Ao2#)oRLEf06w>2|Ru(`|edv+wBaT&VOrGL)FRZOX{R z^7pRPY#7kyr{qpaHqH^{eY9+od!W-sO7!q*tc@BD>pYpEP<`rD3AAog<)EQMTD582 z_uhNE^ytp8?$|x3TTq{%KKJzMd#`VsfK-hpYuJ}vDY>ZEJb#c85@#Qy}!@66BQC}m&^Nyrv zj@`S+HMyxe z0v6OW*@+@d!E#TW^lRI`V~?KQ`tD)J{L$B_LbnMlWhV~uXckSM- zW4G=dd))(5^A>5=f+L9=q`BMDwFi{C18Uu_T*DHva%NKAWGpX=G|+@sh?Lvpy6rOM zHYxE;1L)9}cV{SJ)5dgZpE~c5z5u>$Fmhs53tf(4jYyq<2E>pOI=Xz52fkjPo)aR5 z1zzvO+5&68z&7WuUXdH~!P+SrZIW7@kzbgSr6{c`_wUfQQ&9J=eS*66?bRiyI}KR5 zhA?l{sjE-de$S7YyfV`;N0d8Tm^(K`wIC%EVSY-^tYp;;QNcvAl&qUAhC;4dFVk*F zS8qsHtx6@%LMx@Jm2e|TRW1@|!%iNYoW2?Zu1XtYgfu48a4OjAiZxsfAq{k7eBUR_ zhWlBFNIT1kwFS~Rw*R@-h zUcG7P)}ybde_Qv!uG6+34oy*FB?}hsiEs=MYv8#1jW`$noJhoc2kEd#V;KTdY~&2Z z`iLkyG~F;WA!}Z$cA<<6<@Y@QO5f*Ry7z?v_doyAqc6Q&hag(;f3!n|h1*TWV@4P6pHBs7i$8o`xCLgNO7Bv^sd^a=ld8s77+zg+$kBQ=I> z1juu!&EeUG&2ee}{c6^yGZuY3Z6OT2rm-SlYm_I4#*o+Tm}J(^xTXhB8M|hOcmuJU{}TDB+Z1R+^LfMZ)8OTYoQ+N z)WJd>g&Vgdq-em!K$*JvfyE#JkZ1$KIww(c4YJb+A9@(jBJ&FN)cHRjDM8fqa=4Ze`LOnH+cqy=O zo3QTPe@f@)r*waA`WH(Z&CV3Z&}xphz#6xka?Bq=urG;!cTs%xQ-uk)81x$hx3`b4 zS4%%W)-&KcL`X-V#JG$t6<;BUh$cpqF%dU3i#U}GJ)t(xxTR7ZR!VEUtW&JPr76}q zgA-LWz~u=6@i_@fiZa|J7|@6`Io4n(gl_#O_k4D0(6iG=*~c0z2?iWe6E-PKkj&O$ zv(k(_>p0PE4Kz|VD$E;Ij2bP z9zL2Z4%v?Wz;0P&SR=4z1Z+SAN-t5ptoWK@jYst=(}KY*Zuv!FfM9_SF^f-5RLn@! z%#;^3-fs5E;zSFq!M4MeCNk(PBO!60Esp&@vy!3{9V!6EeiQ9z_qyL7f3V*E?`E_@U0aQYbPAZ92O~^ z6_MCT8!7nI5=|bDTR-|NG-=A*)c`jtJ{2K8PI4qJ)jAwY5Jw?!dC(uKDotgTHn^D2 z`w$L|9IW{?w1`t`vqVOGL|7t?Sg>||Ihq#2%4dc1D`5RmWFz0@sbn|fV(q9yk~g+Q zHJ-0Ot@Er3IVa9t{nh-{)90=@#^F0Tcp1>-1ARP2K4o?&KLzo~SZQp6gt&LXg%eJk z+!bz|yOo!~)ZZg0$&74+vI^6&hAC!@r1m0wQX>z;!kX-Stl>6{TYF{JC7peUX12KH zmoOvQ2sM(M=xKtX^HY5iGrq*!5n<`??@O9=;8=tCdU$Be$k1cfoQssl~SACB4UsJ z)QU1ADUYAIzHy7ft-oHc0_%(Qgq4v14$^YFlAF)g9-Z4iGcoA7Y2BWi`p75CEa09r zZ#lp{mYh}1t?`mbZq%;Dyonh{5NwU$G_k7E%=nr{&Xt)L$Nq2lqUieeSmgicqmSxE zD`d8&wgnulK-gYjW`VB)OZnR){@$(XPNiPYd`1x*ze9tmlLeY@P1)DunJK^;;lZ~S zzB73*GQhg^;ry5(<3opzo`7J1~s@`$>(g5|ueSpSX4_I+_+@8@5+=lOy6_aD&j*#WcSvR?mYkw;)B*6_MS z1}{$Lj3Ei@mFA5wchqL;uFqEk4Xk_gp9W!0GK55rT@m5#NsNyOaY8u-F+NF(;O+&h zB>Bm66o;Y``H%4Qc;ZbhJt0OJdsJmEF;`tPSCyD6%PPRvrRC<6CFae^zs^~Epf2^d z$kPC<{}u%A=|7Mki29dofE^x7sFQ`tV5xpdy3WiZfGcnal7N@gEULGDuIeuIgb4<2&oOI2XX*8@HBQuwoOHF3s=^I;f%!4K@ zwE(e>w|@)PfgL)$FyOV92E6v-z*k=wIPm#b2Xa0M`EV&;E>VO^REs3JSpB3EcAGYK zhBa(@QxdWlidApSTsn7eOsF_-UW$IEIPZ&NnZu(qze>_!rFDt?)byQ4JX^Qx)Ujh7 z$%1UdLX$rXN!*ZCwK==Wf}`mz_`2Uqv%t}SyWb0wo_b{zQ1kZo_Hu9K;oi#EOTa*^ zV?^NQ=`Cowr}76wSmtL z9Pr%B1D=2NjmKXcFefP!YfOU;L*T}=?6v9SL?f(`!5{|aB?~Te;fyoNaVgX?4=)JKJc+L3TSM-BYsmIA z!wkuZX=3B}qgn5)4tsag(XmIBGgD8^2ulv?|HcE4{)^x6TgEZ+Lfze*Q%RA9dd31x zL53dBPp5qS!2iAN=0zZN@oYh#x_S8G*4>j!_3%Q3#A{?Y$x7oMK2+Kx!NbGjyRqQq zR6g8?<`SS0wv0-fGh2v{HW+I(*&6GvUAuPZ+|kwB>w#yVf8d3I_w|1b3^GonpP6A? zh)q(`oCPw)+SK$o;|ZaGcyGdZ4i7-=nN8IcNHixSwS_AsIkS@$U&U))+ai2xQzF*I zAVqO{2K6k${%)a>?DB>SXa<5#FVp8?*9rFQ(4*3@XLGGYj!jtL$_YuvuO!4EhAH#( zBiOL7nJ6)QnW7tWBx5|zwi3hLMf>g1j4hc(!3kMY6E%~>dh8Mv_;mh!b2xSfFG^DN z`qxwSauxn;awuJi24MjluAePWf=zNA)|7M1-({9lG_hLI_1WqnyT^0W!RF`;%-HhL z!g#QDOP?04yxdxNdf=78E0TRZFk-v=c)9{vh<9I?j%&t?fiDSwcx*Z!Wg0&;hX75( z$4`y9WfyHghW;-Dx$?a6O#j>FiBvx#uZ4P3Z!6h^AiNH$X&h%-4k zj83Z&>-FM%V{&03_TXb%5Dr4b25PvTVun5u<1$%9BWrCl64h8kfry?hH3UoZW{NeT z;@rg%!uC(RBxutWN8(I6k~Jsi%(x@zTjeJ(e9y#A@bw2hTeb;1Ue~q1&nAXcLrIs6 zL$RhDPmRxX9qPj+2|)j&P|NYUS~uhAZ-bY{czC%E35_8IhQ`swi=m+j9v&^cJw4XX zjk8A9B83k$;C}C^aSed7j;{zjecgT9&XQ=yAD7KY$of7#?|@i+K%&}{rrIh@$C7c9 zj%@D08aEkm^YY-DDAgE}@=qMn<}FT2pOuvJ-q!dxx5Pr~E)=P^r76QQ6){Rx^>Ie} zJR#@lgk5+^Mq`}8a3s%2kJQ*8!y$w@b46Obh=UPe0R!9+*TLB*v5W=B7&r|sPS-3? zR}0#9_iE9uT_C}6_9qVaT`4yTIcCut06#uM^$azdR7eyRf}FA{jRZu9o1llMjXb?n`@Q=fkAy7uec+p}xe{(~n@ zjm?;&I5kTQH#7CROrwWS`?>>7u?|f*%a)TiWmVDjju9d8E)g1+NR?-p+9g8m9;U&{ zH3J$En^;rCDb}=1x_44%?1-f*c=VTdgz1(>SlGJ zL-#%pEZcKn;-+n*Hf$ZTa>I&rRj9(SHc7TGLlu#0h*0Yx%pshU)%p}2*&l?lI4n!K zQIZXnY*M0nz{cng_KU|QU^_tm!X))-sUB!WP z8}6`l1zx7odv;155#TAgIFN8ra*m))myIc^P?`S8uV#C-@7=XyuZMfy6V$zXxBKpK z6L?SB7foDc64mgVnwz9(ecv;arq8WQGijbdUoXZQ<>1A!EDQ}v#3Q$GrE9pFA3FD+ ze$TVhde=<5EU-o)o3l+D73B!-?U%c?T}FdT+f^Jh{H>(RBa0IcZZ)k;4lYCAw1>27aIb)_VV!ZtxGc< zcnu6Z?MY~uJSt!C7?cR2&TlD9q#( zBb;i2y;`w(Mr^0T`D6Ri73)%RLQ-^J#%f<$e|*4(!~q*qUS6O4@`l7u4oTs;G*_Cv zSSnvB&4j22$~gN10UP9(rRIRCF<*l_B6Mu*#+o9@9V61sNy-gPPQazrOJ87a=%K-o0xubMb7{Hdh~Vk z@N6UzY+~(lNYUZ>YIBMOU%R&paSd4E(q@g1n}@dtQM~DokF~Fdr%wwH7q`H`_Mxk4 zEGL+ASzsL&T(~2na<$Stal3ZrcgGvq5c;}bt5&bS_UbK*+OuaD&4W``e7pAClasqr zD&MCtM2K^v)Y^k8C8Y6MQT9@49tP_nG3uvQ9(rw4{EKUkytLuyt6SpU*pc|=&ZM`u z#D5j1n<*}uoS>hUq@RJkoJrcLiMhl`QafOZJu^);WyfKGck5?IPx|VIqYDx>(IUP~*&miRp$fql6z%p8sUfBlq|2*RRjRZXSLZEXb@}42M#UXWx5o7uFGKjNmTM zO{g_qFG_)kc5AcJ8`J6*E@0jooXNj@tZBNdz|W;Er22}Qne|PqBWImFJm-W*Kq&OO zk3te2etys`(Wy&@Pe1wi$dRa_LqDraW}0Wwq9s#<7YTe@Klb_f)v4;$v6*WmavVT} z{X5v~93nMLPEftMEAj2^@l(Zx;}dkFjw@ix8hI?|!+j~Qu8V$aOYCbKj=Z_?$cH;) zC&%Z`PR;*DL>$X4Ly9g~nDf@quie{p+mWtWB-2h#)h&>~UsR77*3?+VOu1pYQ1;B2 zuW*oNP*9KF_uTIp*ma&zH4)}hi59+R-hG+?Yc!cZShG0vG`DD7&*ib;>z@554GK!rCB)g?in(HSFpSb- z-COIzhJ>XKK9Dj)Y@C>oI}Wp<1SR~;aWK&bKP11qGx3cr$38nO9T}a06pXDC6R@p- zZWy_Fh3~<&Ygjo;NQnDp#`OA907o*sIAYq&WbM=xZD6sH(|Fom!x%phXz zlqBV>)I0=?#nXhjGty6f7Mbz-=A$rN!|Ql*igv14J41@)jGHLaI8GK7cy}IiTrxBw z+4uhEU0qsY+CDZ_jin7ZoV>SavzwrWXZLws0lEcmqJ>obMM z*1e#gd(^jGHuJkgS!&~q!M!5&Z|(cVr|Y*aE?s;D#6W8AN0uoG)~-az`*iFOG{e39 zLd?!aFU{VSVfJyG;)4=g0_p3>=@ZywldPzy2%`~deO1Huq5Jp*44S?WQ=u<*#mvU` zz1W=bG1=2=5GU&wm@aXKFa8y(7slKfsRiJ>>0<5FWYt`mkvInmRWyu?lEA__H&y4_ z_y6u6KlhdO2S#j*d1dvU&o@Ur@a#J{hj3DgYFesxxk%UM!RNhvI=uPjN51Vk;qMf@ z`0htN9(ZDHtaLffzdf3{Fu9=TeUAnP)??MfCdxGNh2!b&(K!rXe#9kQ(`WA~kB;Bk zgP5f=tjV9AaruusRJgXE4+%+pZ&55vbM76Nxw!Q3aODi?o}P8Y+Fc+(Sv0u0y0Tk= zn;Qbsk%$s;ocp$cCr|#`LEG^Ne-Yr-k>f_L z+6>)kNnFMf7_P-yxapGFF}G&HtzTGjD^ArQ<1#Xc^h>f&0pFRJQwx>zgt;_?%JMPd zV`x~Inm6Q7;=3#NV-HdPjo}|hq`0;1^?g|K;-oCH>jXBF!=l;i!h<*LV+ui-Mi6Pq;J3uOl^bDpUk|Teub3}g z#xex{!cc#g7T>xAj(l(7F$8LCac?`vwOxpdOLy8g%$25=?H4+(p}$`%oFGb17rb_@ z%Q8r~VOH?uSqE znHq7&Si5`pxL~c*wIxE!cJtiYuXOSI)-_^%^ecphIWel4aXE`}PD~SK&jIr$D`zF= zVkbT#SnKrYeZRoVSJ1k(J7$}{{xo>{2e9DXHZbnwFCiJ~(MP2tk7o`(D1Bu3YzV4* zKOP<;Et;7~JQyd7^$VdDaGQV04nc_#f5+$3gOd06iCVO5xo7uo2Tf?eBbTsTn^^mF zn&aZu)?LsNTJSvp}Dec<_ z-g{3!+%ljM(Q4HWbT;qSEymB9j^l2Q=4xler>|6;_J8J`;KRv*uYKx2;DgrBz4i9G zuvsvMr)mYQ+ry}Z00X<5z=s5PL_BvL40GHZJoRYl=N8amnJ{ayH2=Tb6Gw(gJ@0+Q z&9l{NsbLCEq2%_P%uLCv887r-9#>+bhdJF_TjN@_Y{6^-xBO5YGq^$)%By~k3Yzz|m-7lDT-f(t=*xl6lcF70t$=;keO6}V4Wet7UQ`&&i0m9jck1K9u~ zA87C_xD|;nzx3juPd`yAbIzXq9TWh{-dKTs}~AYGvo!B{=718`2#NwcziRa{?w?WI>A zGm~|blJgnXm=sJA6}++O*!#PaZwJ<>TdS~IL$-UkS`eY~J)n0BSOL>FY$Jq)1D1Op z)!&6uUie~)poRZ@ zv1FoHjt#%l6AJiPe-WMi%6E~l$s!@3xWaCtPYkxGDm z$qa4F9C0KWn?YjYBnM*DSVyxC=mV6<)c^2ktb|Wgktv7 zPiFx7mCF}l5yh$RKHlE*=LI7(6!P%!!=)uxF**Zu`Z^FtH-JXBYUK)k`TV$#kI(3- z(-Mn*Iix>DNG&Apd{}q>O00uwG;DWFw*l{ab?&ot?MD7v4UW%Tu-xxI{a0nECr3zv zlhOqpyDo`1zA#%mS(Z2b2u_-%3cr3_jOy*Jaj?#PdLXs6zu)?G-#7S+4qgm6lx=~v zy<6B@5J(3&XLdbrPBan6?;EBn?B;;yA;sOwZMb?v5S~`x5O+I2OsObXR6~OR-@0Wp z(1Z?#bbyZQ$dMyj_`;Isfkb4ZiS%hw5_bQQu0pZa=`=t5u-ne3%&{>s9eefJEz>Mc zl2y;MKyZ;}LW=73@AnCweBHZs2Yc@}I32p&@P(`Ai!-rAK5EGpfoH(pg5SRpW%IEn z2H4HV-`kZG7#Og3@16#K%khi;wI#Vdtbwx26|>7ZlgkCO*EzGx#Y&fRl`g-VU;pER z2`gVFb4)DuZ`RuFRdbtWHaV(7n>PO7P(Vx}qpXcMBE?s)&_sHR=@`2O3uC0lEg+_e z6l;v{(b0|$=y3D!+MbrXC{d0jNT7_RXYw~p#kpS`h!OaAtCz2rqgL^r&HeV&eM^&n-Xj(O%K;s4Pe@2Xcv5YD1!J!WH)LW$75l zT?so^xturC0M_Qmd!D;~6+>;!)-8U-H%xuYYQ6c!>vVEWv19P@kp;LwA6)`D`56#L z3hN=kbLTkzoVRa_)PggShEubXGD2ke^OEu>Cgi=dCw|fqv1iNrxnw*35dZ1NpAUC+ zbH}-Aa4B4!oa=Gl(xG-hx?HTfXvP-2O7Y;2<3IVZvZ~^o$?W;N+5NoP{SR}{FBL;B5h3q-(L@7O zyIa;7nlr>Q0=1Gs--e2U9u7^rPoG{7+<)JHp8Pk|@=regXvk-SAPSaX%yoJX$yM6Lopr<-;+Ii&=z> z(LDaG=I9HRXDiK_9}m7Xdg$3PL!_U5j@_4(kw*tB2Z)4Z?-h^p}uei=IySYI7ILq_FDaS zrQgIlK{GDN@MW6ulMQ`H!YcBt>;PfwjQukj_< zy#!Ymw~bOcJQ=1POZ_HBF8IFztsZ%L(zi<@4j-<2A&t)|2-8uxT_Tj$0({@tFMl61 z^upLd=CUiMO6;63JvVmn@1sWOMhrhUX2{i1LjisE=n>H3h!~H~YJ7c~yaY_rb58$! zRDWVovToRxqo2$V6?psZInb2L4RxtAyxE7Y-?}w7|NbGPU0txoC#cI?O`FH#!$~%= z7MwMY+q?Vs(Vt%$H7qPME1|pshG~lRISkyRhg|@tt5momU|t5Sy~9;aTel`D4Kw%L zpMQ-n{0WOwJqHec=dBN#q}T=&GWeYj-39JLz8KShcbn=Jmv=|NeZ`WmFH{we8UfM0 zBS#zXM@7F2=1Eu0+pm=?BoZVRj{IV0rhLuCO2n^>8b$~f)cqK!%S+rL~w z;(t>v18Ezx`Z{yk=lZE9<5t%-uIX4LKYQh zR<}OUnP63d^6%x=dKyx^FP8gUDr1kl|1f+0VfKl*1AuN;bZ#b7$Q6+LQPD&wu{2bm>xB$S=SAB9Tb=udu?4i*c^Y zo$*5xtpCmeQd+|kZ}Vof0e^D=w;+Yh_JA7n_3ys>4jE)JS-W=atP6bd$tTyXTW7O` z-+%wTWy_Y&KKraS;=l++jT|}B`o)}_96WmP!3XhZ!h{LdUqni;UcHtqSrQ!`ZS$#@ zm)GdgWZxgaLSt>_LE`1h#4jGWBmV8T-y+U_cyY*(A@1((YuB!2iOo5JwxBQDY$>JW zTW`IEr=W&)EB5W%$6kE*-FK1UnP;A1DV;iX3JeTnw}`y>;)`d`p0y~asHlkM*}i?d z#Us#=K00u~@=rd^nl+0)`rrTlH+}ka8h`G&=fK*%d-tZd^a{B|BM&_Az`y_f@B8n+ zpZ|2@#*GkYGzI+)y^H@_ym&FK(rd51hCKiJ*S}Z|(M54fU*xB=49zwIf`inw<^UHR z7|jF`P+>+%NO*qz)6>(@rRgiUg8lKdfB*i7`}_NY!D(g)VaSK)pMRd_?9-(L*xzKQ${`ljM)5wJj7sO)m+i$;(0g>fok-2l{(rnh0p@PNc zFac2LTQ9%-GPoPRgoFg0P6r8$^iMwd1m*wuIs#J%4#M9Stm!%($dmv*RD|%s4mA|q!DPa zkdqL4jQt}cEsr+=N23G~+~Qq&i}8ha2IRrHM%}x2r=P=h#*7&>&-?Gck6Vn$HcQyD zWea`9Vi;nXsZIjyFt|f*KrKg3zOD#4#y-lApnswpuyXF82vul-ti|L4n4*E`31|z5 zfDsC}xaQ~Q)7C)^LkfSuU9)D*JMX;HxpQYeWf1StqlYywFqOdKyNq-vPo4}22%tqF zF)1mD#+NNyM)R=gKuHOX)3N-iR4SSuI=SUD?jFhs&0ujw_XD%jSrz4d2ympJZ?N$i zo`xMT8bt%u_khLk^+1E$^<>GT$=2z}k=l`1M2?(q~T zvl773bnHgAx9-3!Tl0)ScG1Q{ALG|BI5?Q5W5}ivi!t3|K!miX*KUeT7&2g7 zLX|KX!4FNQ!kh{{fXjao0-t`DuekCvG}}0Y6&;!_RB?s{eF`42U_jW%Xp<@1rlqCP z+o3~;)}^sb^Reh-*6%{`rX|xWf9Qwmg+!Z%7nB3F4NvLB(7ITpV6a98n{xr0p9www zIL@Z|cjBl`)idZq&_=+IbV9+fpcJ;A+Q1M>A2AU+Y0@N`0+G97#fq$~ESMz$<%SI# ztVzvgxDIAL^sTE`uikUdJ+x$8nVA$%>C_&!6zlSl0s|U-3pNm&8K{0}p_lS=G9u6c z4p++QC>EWc-vRhsSXa#(!) z`0>aCSwY88mW~LFDzqB(YI70020d*ymsyK_Vm%OW{YDrIg=2_!*df2uv|| zppPKi@d;=qXfjj9p|Mbopmo3(VSeWq)y(5;gr)W8UoovfGpY1OI>s{Vwy-{LF~yFH zi{q08ufv=OGZ#u=IspG$)^RMOSbr`#Ihn!@11Wn7&7Z!`W(VvMB1WT;KBabh{v#S^ zBARAHKctE`y+wydHog^wrXvquN3|}t8Kz*QhD8XY4_FC3oT?>AK|`p9iCGDn&!1IU zv;s;vES5GU^e z66V*ir{Qz_bQY(RXz1`Pg&$#hDFxBu3SLHLXkzHAkU0Py+9}jFN*sPU|BN`DX5P_l zf!W7F{UH!A3gd?!4jj?h(D}jdfY@G_b5NS|k&^;W3OFg?q=1tGP6{|F;G}?)0!|7z zDd41llLAf(I4R(yfRh4F3f!R-u(v!18!4>faL?c`MPVfo3rv6f@dp}<1x@(YVqtMs`0U-WW5;3<0sAk?%kfu_tAB0VwnZY` z^3kdAEv%y2Trt7Qh{XZ~y@jvxH{X1NvY1DNbvE>nny=aY7k=YdUA2A}OR-n3T;ab4 zh^@0BWze8Ov9YoIoOf27ZneM)rZu}!Pctkr*Q`X5f5Fu7B9qJIXeO2mDNWcaHa23= z6z1N*oQ2+a;|*XGKCRfM60C}1b*W#!el#<^Vik4Uwrw;%ZrnKd{7Cy!&AT&RJ?H-S?!pnaPaV*kVlzgY$Vu^>g1&cctb*3JM zpu9yoy9IsdyXXTnk@}Y+u}zycROrF+jOGDA$U{AUEL@)GyNt-YcI~1m@cG9sgU>$u z430+d7iAuXHpK#c#om<(4Rl?IZaT`q4~Mz5VK_jy#Oo09w8H4pG^MPp3`?{N7cQjR zRq)ioQm?%VG>3FJ9nq%2Z^WWL{CzGKkJv5s(}q~CtgK{y@v`?!H(B z#;t{?A}fu03w-s}S1g4e!5$M@6ug`G>2--S-wf+6&7>1V7A*?97zPd;Xd&3~2>p#Z zt6OhDs!JXI_B?PJqy)4cvYF?GwRmUMX3j{54kz_b#g|PAb%{%#4V-()bGxor{bwor?4p) z+XHC>{rvo_3%MgwsN|$xH~b1?&PAJMaRnCeJ7vB-%a<>w8Q?NXBR~E06WtvEormoX zqkW#*)*qsumswS@16{eeg_|0VTr=NbB=7+x@O=SCUfi)h{E(C>{ zK4tLHbWGd9(GVt>g&_mj3POYR1nkzdt_)JJcaK%TIs#qJ=37XFIHH^jjmu^pO#f+t zY`X#7_hIoBoYi1G*x4+wc_z|PlI}IOs3EXGV*v+-b+8_MWig0j-z8?6)H{^srvo%2 z3kFuC&zw1vr69tr7W8wVBz+h7QstbwYPV?70+}&tSk#2xvK_lnpWxsMB>@5ix-=%v zU`(5@utdzuXnnAefhDpCQ!Lr^tyQa5G(TJ}acl^zI&fBJ`R~xks8OS6qu98~8p5V3 zHvMv0Hqe}wK(A2A@Cb~|Ph=arz!ykI|6!kF9>`Dv>F!SJ0fl~xX_7E!v9H%Lf{~i- z_O;f**baTV#T#W(yAY}hm7|WIX#Ux#Zj44*Y~(@BnR&<|Ja{nj+Y~aiOuDrPg2i!tY(8cC0WlG<7$(?68xi_0T#@g)?><_2 z*w$b&O-)V31~f=E)YE49%`*|&MKuPze?S3d`i5ME>|%U``6-}bUc|6wKojOWW;25- z>`|=A2M-=(#WSqIyfhL02j$}{RE8rF#V%U3h(2X|F<5CdLQiOc@(xfwh7~pv<7vd|M(O!I&x;m zbqFwFUp&&GdNEo-Y|=!epF4MsrL(Q{tQH2P0CZ~cg+!1W8o(p#8Y zVabOno-NW*XEy8yq29%)Eexu4U#-B>Cp_h_j)^NaAh3_#xe-u+x&v8wAF(sxZJum~ z_F@5-X=x|oVmLhtKE4CZpATRbhjetJ(4#Z110oinQ`%ZIoUQm{d4fISdvjSFRErg4`iUJocCh>`LXW1T8Q|NA zbkvj9q-Kq-`d_TMqm9UbWi^_gc}E}-o-H&HSIWF>;|Wb?p8xa~E|hrd4*juR8)yr* zc+gg`tpT)wSV-cx4r^Z2Lk~}})J3Htd=EfO20AFle+6;ovch)@ry_-Z#bO~6Zoo7h zn|LgW!V(*OM6ZzK$bbz&xW(G5MP_!({9dTvGPWG@_xn(HCTu`sJ`C_aqF%3P8e9!A zBGAu)>sgt1Rsn8-GTGUkLMUV9xDyFB1QCG!0Aecnh4) z_qgEaY36Yz*{HCBBM>Au!y2-hVh2gc8o~s)&7mBEf;zGAUxDipr7e8~Uu$}%DBZjX z@lJOL;<#`26-4kS2JjYjjG^hQVn_$Cef;sqh|t68v3QL*%C{bISecABk(2%S>LPQG zw7I<(n-1t(&<$9bcTj|F;h~P5Xbbh4qm2S>8L~{LVg$E$&@M(wybiK61%Uk_7`pQd zPpQPFUqK?`#8F9Xz=8PXV?lcq&BniC zM;^@vhZC9(CuIJMEY5}x>m6Y%PqU5Ct$Ao5*nzsAfsrwjqD=Z1bV{@5D`-beIFaXc1#! z=JiK4SOz^Z(1z0q4y3CE<1n&N$kVFHJ%n{3=35T!i*6Uf zE7)vRRaHel#54!$@Mbakv+@x^2g57O(VeynDHw&Bn<5>xF;deP?Kz%Ne^+d8p>?=} zu5_wGRT{?Hj7p3qbaDh0ntFw?K^f^b$49!Y17xA3VDo7B^dg1v7yS^$8tKgCnEl;V zx{HdIMlAsw~$V#HY5^M5x@u8f*+k{F-cS&E=h4rImo(e>)<2q!c1VkyxMd=mO$3n0z-51?1fGht9QwBm zEXrYH5H^WeJZjFjOl&fp*@Cqh)@TKV55k#J5;>Wu2i*Kg89D|X(2;>QA6qp+J^cM9 zMh%RZl%BXUzQ$9A7qz&u<2aBF?%B-kpOpi97aq}h8Caf{Y0uLbZ&5jqeI>L6FgUFn zUc^wvipB0cS`_TAn5?mM)QV2P`RBv1r_DLSlpj!-)srQnv3#uAt{j#bL||}(g`vDb zq|-rx5{e1|#>EVJd<%*ATdOo1A8VLUC^6|)N;>Vb&c

    H-G>dq%gY>079JgNyLF8 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

    *_2dfYJIK>tPQwF|5-(hZH_5h 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 literal 0 HcmV?d00001 diff --git a/installers/readme.txt b/installers/readme.txt new file mode 100644 index 000000000..a22a088c6 --- /dev/null +++ b/installers/readme.txt @@ -0,0 +1,31 @@ +Installer notes + +So, at this point I just have one installer, for the cli, on windows. What do you need +to know .. + +1. It uses NSIS, and expects to find makensis.exe on your PATH. + +2. It expects built products to be found at: + + wownero/build/release/bin + +3. It currently includes the daemon, wallet, rpc, and gen-trusted-multisig. I note that + releases on the wownero github have had different files (static libs, pthreads dll) + than I end up with in my /bin dir when I build, so you may or may not need to change + which files you include. At any rate, it is easy to do, in the WriteFiles function + in installer.nsi. + +4. Provided everything is ok, it should be as simple as executing build-cli-win.py; built + installer, versioned according to src/version.cpp.in, will be depostied here: + + wownero/build/installers/Wownero-CLI--win.exe + +5. The installer includes an uninstaller, shortcuts on desktop & start menu, and it + registers itself with windows, so it shows up as expected in programs & features. + +6. I have tried to keep the installer script pretty generic, so it can be reused later, + for gui, or whatever. It installs to a /Wownero/cli subdirectory, so + that other applications can eventually be installed alongside. NOTE: if you copy the + installer.nsi file to use for another project, you will need to make a new GUID for + it, and put it in the REG_KEY define. +