From 2761d9985aceb52f3e22fdb78c1e8e16f0416440 Mon Sep 17 00:00:00 2001 From: Helloyunho Date: Wed, 9 Jul 2025 02:09:11 +0900 Subject: [PATCH] Create .app when building/packing macOS (#555) --- .github/workflows/ci.yml | 15 +++- CMakeLists.txt | 4 ++ packaging/CMakeLists.txt | 4 ++ packaging/macos/CMakeLists.txt | 99 +++++++++++++++++++++++++++ packaging/macos/config/AppIcon.icns | Bin 0 -> 49433 bytes packaging/macos/config/Info.plist.in | 80 ++++++++++++++++++++++ packaging/macos/isle/AppIcon.icns | Bin 0 -> 60473 bytes packaging/macos/isle/Info.plist.in | 82 ++++++++++++++++++++++ 8 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 packaging/macos/CMakeLists.txt create mode 100644 packaging/macos/config/AppIcon.icns create mode 100644 packaging/macos/config/Info.plist.in create mode 100644 packaging/macos/isle/AppIcon.icns create mode 100644 packaging/macos/isle/Info.plist.in diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c28ea84..090b9e1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -122,7 +122,20 @@ jobs: if: ${{ !matrix.n3ds }} run: | cd build - cpack . + success=0 + max_tries=10 + for i in $(seq $max_tries); do + cpack . && success=1 + if test $success = 1; then + break + fi + echo "Package creation failed. Sleep 1 second and try again." + sleep 1 + done + if test $success = 0; then + echo "Package creation failed after $max_tries attempts." + exit 1 + fi - name: Install linuxdeploy if: ${{ matrix.linux }} diff --git a/CMakeLists.txt b/CMakeLists.txt index d5f77cde..82360dec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -707,6 +707,7 @@ if (NOT (NINTENDO_3DS OR WINDOWS_STORE)) install(TARGETS isle ${install_extra_targets} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + BUNDLE DESTINATION "." ) endif() if (ISLE_BUILD_CONFIG) @@ -731,6 +732,7 @@ if (ISLE_BUILD_CONFIG) endif() install(TARGETS isle-config RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + BUNDLE DESTINATION "." ) endif() if(EMSCRIPTEN) @@ -802,6 +804,8 @@ if(WINDOWS_STORE) endif() if(MSVC) set(CPACK_GENERATOR ZIP) +elseif(APPLE AND NOT IOS) + set(CPACK_GENERATOR DragNDrop) else() set(CPACK_GENERATOR TGZ) endif() diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt index 3ec9d174..1b178b63 100644 --- a/packaging/CMakeLists.txt +++ b/packaging/CMakeLists.txt @@ -24,3 +24,7 @@ endif() if(WINDOWS_STORE) add_subdirectory(UWP) endif() + +if(APPLE AND NOT IOS) + add_subdirectory(macos) +endif() diff --git a/packaging/macos/CMakeLists.txt b/packaging/macos/CMakeLists.txt new file mode 100644 index 00000000..d6e93db8 --- /dev/null +++ b/packaging/macos/CMakeLists.txt @@ -0,0 +1,99 @@ +set(_icon_file AppIcon) +set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_ID}) +set(MACOSX_BUNDLE_COPYRIGHT ${APP_SPDX}) +set(ISLE_TARGET_NAME isle) +set(MACOSX_ISLE_BUNDLE_NAME ${APP_NAME}) # Do note that it can be up to 15 characters long +set(MACOSX_ISLE_BUNDLE_DISPLAY_NAME ${APP_NAME}) +set(CONFIG_TARGET_NAME isle-config) +set(MACOSX_CONFIG_BUNDLE_NAME "Config Isle") # Do note that it can be up to 15 characters long +set(MACOSX_CONFIG_BUNDLE_DISPLAY_NAME "Configure ${APP_NAME}") +set(MACOSX_BUNDLE_INFO_STRING ${PROJECT_VERSION}) +set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) +set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}) +set(MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${PROJECT_VERSION}") + +# TODO: darwin < 9 +set(MACOSX_BUNDLE_REQUIRED_PLATFORM Carbon) + +set(CPACK_DMG_VOLUME_NAME "Isle Portable") + +if(ISLE_BUILD_APP) + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/isle/Info.plist.in" + "${CMAKE_CURRENT_BINARY_DIR}/isle/Info.plist" + @ONLY + ) + set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/isle/${_icon_file}.icns") + target_sources(${ISLE_TARGET_NAME} PRIVATE ${RESOURCE_FILES}) + set_target_properties(${ISLE_TARGET_NAME} PROPERTIES + MACOSX_BUNDLE TRUE + MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns" + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/isle/Info.plist" + RESOURCE ${RESOURCE_FILES}) + install(TARGETS ${ISLE_TARGET_NAME} DESTINATION ./) + install(CODE " + include(BundleUtilities) + fixup_bundle(${CMAKE_BINARY_DIR}/${ISLE_TARGET_NAME}.app \"\" \"\") + " + COMPONENT Runtime) + install(CODE " + execute_process(COMMAND /usr/bin/codesign + --force --deep --sign - --timestamp + \"\$\{CMAKE_INSTALL_PREFIX\}/${ISLE_TARGET_NAME}.app/Contents/MacOS/${ISLE_TARGET_NAME}\") + ") + install(CODE " + file(RENAME + \"\$\{CMAKE_INSTALL_PREFIX\}/${ISLE_TARGET_NAME}.app\" + \"\$\{CMAKE_INSTALL_PREFIX\}/${MACOSX_ISLE_BUNDLE_DISPLAY_NAME}.app\") + ") +endif() +if(ISLE_BUILD_CONFIG) + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/config/Info.plist.in" + "${CMAKE_CURRENT_BINARY_DIR}/config/Info.plist" + @ONLY + ) + set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/config/${_icon_file}.icns") + target_sources(${CONFIG_TARGET_NAME} PRIVATE ${RESOURCE_FILES}) + set_target_properties(${CONFIG_TARGET_NAME} PROPERTIES + MACOSX_BUNDLE TRUE + MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns" + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/config/Info.plist" + RESOURCE ${RESOURCE_FILES}) + install(TARGETS ${CONFIG_TARGET_NAME} DESTINATION ./) + install(CODE " + include(BundleUtilities) + fixup_bundle(${CMAKE_BINARY_DIR}/${CONFIG_TARGET_NAME}.app \"\" \"\") + " + COMPONENT Runtime) + qt_generate_deploy_app_script( + TARGET ${CONFIG_TARGET_NAME} + OUTPUT_SCRIPT deploy_script + NO_COMPILER_RUNTIME + NO_TRANSLATIONS + ) + install(SCRIPT "${deploy_script}") + install(CODE " + execute_process(COMMAND /usr/bin/install_name_tool + -add_rpath \"@executable_path/../Frameworks\" + \"\$\{CMAKE_INSTALL_PREFIX\}/${CONFIG_TARGET_NAME}.app/Contents/MacOS/${CONFIG_TARGET_NAME}\") + ") + install(CODE " + execute_process(COMMAND /usr/bin/codesign + --force --deep --sign - --timestamp + \"\$\{CMAKE_INSTALL_PREFIX\}/${CONFIG_TARGET_NAME}.app/Contents/MacOS/${CONFIG_TARGET_NAME}\") + ") + install(CODE " + file(RENAME + \"\$\{CMAKE_INSTALL_PREFIX\}/${CONFIG_TARGET_NAME}.app\" + \"\$\{CMAKE_INSTALL_PREFIX\}/${MACOSX_CONFIG_BUNDLE_DISPLAY_NAME}.app\") + ") +endif() + +install(CODE " + if(IS_DIRECTORY \"\$\{CMAKE_INSTALL_PREFIX\}/bin\" OR IS_DIRECTORY \"\$\{CMAKE_INSTALL_PREFIX\}/lib\" OR EXISTS \"\$\{CMAKE_INSTALL_PREFIX\}/AppIcon.icns\") + execute_process(COMMAND /bin/rm + -rf \"\$\{CMAKE_INSTALL_PREFIX\}/bin\" \"\$\{CMAKE_INSTALL_PREFIX\}/lib\" \"\$\{CMAKE_INSTALL_PREFIX\}/AppIcon.icns\" + ) + endif() +") diff --git a/packaging/macos/config/AppIcon.icns b/packaging/macos/config/AppIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..5b67c48af96ceeb90c216c37f42e7d84ce87fa53 GIT binary patch literal 49433 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 XUby+}B`BnTp#v&NK|lpU!O2emX=a=* literal 0 HcmV?d00001 diff --git a/packaging/macos/config/Info.plist.in b/packaging/macos/config/Info.plist.in new file mode 100644 index 00000000..d128adc0 --- /dev/null +++ b/packaging/macos/config/Info.plist.in @@ -0,0 +1,80 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleGetInfoString + @MACOSX_BUNDLE_INFO_STRING@ + CFBundleIconFile + @MACOSX_BUNDLE_ICON_FILE@ + CFBundleIdentifier + @MACOSX_BUNDLE_GUI_IDENTIFIER@ + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + @MACOSX_BUNDLE_LONG_VERSION_STRING@ + CFBundleName + @MACOSX_CONFIG_BUNDLE_NAME@ + CFBundleDisplayName + @MACOSX_CONFIG_BUNDLE_DISPLAY_NAME@ + CFBundlePackageType + APPL + CFBundleShortVersionString + @MACOSX_BUNDLE_SHORT_VERSION_STRING@ + CFBundleSignature + ???? + CFBundleVersion + @MACOSX_BUNDLE_BUNDLE_VERSION@ + UILaunchStoryboardName + LaunchScreen + NSHighResolutionCapable + + CSResourcesFileMapped + + LSRequires@MACOSX_BUNDLE_REQUIRED_PLATFORM@ + + NSHumanReadableCopyright + @MACOSX_BUNDLE_COPYRIGHT@ + SDL_FILESYSTEM_BASE_DIR_TYPE + resource + NSSupportsAutomaticGraphicsSwitching + + UIApplicationSupportsIndirectInputEvents + + LSSupportsOpeningDocumentsInPlace + + UIFileSharingEnabled + + CADisableMinimumFrameDurationOnPhone + + UIDeviceFamily + + 1 + 2 + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + CFBundleAllowMixedLocalizations + + + \ No newline at end of file diff --git a/packaging/macos/isle/AppIcon.icns b/packaging/macos/isle/AppIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..61aa735eb7310cff8089b0f0c1d1451c829bcd16 GIT binary patch literal 60473 zcmeFa2Urx%wkX;&3^3#zB?keKpokzKj06FR3JOY8Ku{#-JVO*jf{1`b6G26CP6H@G z5D*X~=bUpK<~76q|Gocn?z`u_@9n$Kx%cwH&{fsdRkiY}n$?R(X0}cMuz2N>*@cS$ zKtvp>t*J~#%uEab0GX<5F5v!d4PatB4*{nj~E+r|e; z(hd4yTm|%sO1WRxNadwcFL32LP&R~xSZx!`Z>{?lH;P=6T-jvm8+BM8Pb^$7E__;e zb)++OFKKbb)I%qxj~qKOX}K-I@B^cgu|R-4}?HPrAxE4i>-*6oHeP7#r>1iO+>sZBug)JfN96T}vQdvg_i z3l%nH#?5o^dqmsFPsq3RG^U*H?B4in1VuW;6#Ackj$%1~T52xcBaKSKyZhUiINtu(+PO$8T2{Np_Wl8>_?&7fMa$u z3})53fow~`GyU}K*?Y?XgIdB-st(BqZ_l7A^lC*Rt>p2ZaE(e(396^R%G7=2xm8xkrGoIW7q*z2zUb zXHq4it$$30aZ|4H^kpe?IbnY9j}Q)~T`W|&sl18bF@zw<3iZb0!G9D{2fw3lXLd}aT?7oeJ<12z!y1hrk@OV_5a{+?MT{T(J*CEw+j%s zVq1_}zM#D>Vjvs6DKz@FQM2D}_3VYXV)0kKmEo1vPWZncboxv^O4NIs$F};tw(kXj z=?6D8;!h$LAGECvFRM$Gcorngu@op2t*L!yEIdOK=NO!*Z0vRWeed{MVTB!ulpgIc zkJ|gfSl1ceMxCDc3!!)Ym2>gS9q%^(D2Z9gHQRZh$QLmGUAGf3?%h>K%Q11M>$#sh zN=XuI&?>`9qshKheN>g~Wa)vpRa+VQEzZ5H!H*y=?t(t9AuMfqkQf`X=PZt&S4qsa zdFI@d5ATgNwl`z;E#zXvBvz(AqzSR64Xe{H6_ZWO*VN0jc_~!Bx9;@H<~?7pd*EFz zO4OAdahLXn8&mx+x)GP3cZ1VpFm3d^u^kLWuS+PaNm%f6Sz{#4UA!;Jp@EK+`9=+e03?{qn&R>G)T6jLb~Qx9e0}6(k1Uxz~+k>1IqYuM#%- zzYhwzad#$mdR05CdFE;wE#B6_HAQV}?t3lV=WZ$H4rt{VGi;vQ=5H4bV|1uw*KH}V z&W?;%So@$hrq8eHe%+z&u`S6YZV?n**t*VufX7pSC!6bo>N%XhO4`15mFAoDQcS?uHI~h6LE5glb&PEix-rROm zOH2EjWl*lS`d&(U#+=)ygedLH7vq@bWztbnvpK23$HlhER1HZJ*e01@S@QH?>=Gn#FhX%z5Q}ef?eJp z(oYh8GOSXZW1qrCe;_sU({Zw5QJ*k?ZHbO6zbwBMt)Z)0?bgiS{<;B};wAgpb06=L z^BC>2bF*q^yniZNsdxc-bIXhUaN*rhQGpM_Q=|OazpTpFvW=uypHYtNsrN_=kgxiY zf6}8kx?O+yJq_W{^o|9_u83W6B}+Xcd!_FT5CR|0Zg?$Q?))@*=E3C9qYe7~mPcVYlf%UNeKHBzf{%7@<@)`Ta`y`|WroW-}^t)T4_x+K zX6ZWiKU9@86~D-v`ad!gl>h*Wm;VD#2nlvW;yj^x+50VE<)7jSA^*V>I-UVgiGaBQ z0QvUcJRu`&Me$Z;EsS`Ws$+48XDhAJmoEh#>GVE~`dK=8{?=4nrY*+Rrcv%i7 zdhAsDI5pW@PA6S)nr=-HbFzH6(sGfkp|QXRJ`pj-H5+`1zDr<_gIP?t?#o=aWU)nq zv$gi)$W#J(MnGA`pY0a{j>kCrvzRaM4GPk>_xkKI!c)7YfcMJ2$@S8gG=^U{Xz=j* zE~M8cdb@I*w~zv&MD_|&Y|$>6=Fc-{g}=&icls$FI&on*#z&~QWi}MOKx9@=WH-61>}Q1tlpBEH7WO?W0eh z;&|a;nSPtP;WDzMqx1*704n~1E!|+FMs>2P$xx6o9INr3A+^*!+X7NkC{%TH5CL1z2Nbg$D{Q*J7khn~YyecE>0H@1!yeJZ# z^eOr1M^`XEx$jg(px`kaXT%cD@CUc0QrwZIdUaPnh2TfMsDBr|_fY-_A*z_3Nq+DhnV2o<(M1>2dYZCV{am$GM9cQM7_^eA?I>@hbW}Ru-EvO2(EA;ub7d2Fd`3^e z`Z8B~gswYAK*Db~EL||@a7&7oV!FNd5{DZFU4+&bs-_xY^cBP6AcFH28OuDm^;3YU zhicA*Mc14t;-M!M$Z0Gn}#UtL&aNX(@5#b-8 zd#PHME|VzwzUaBF0aHSI{w3-&v|~>!$`ed3&n)OEI9=!k1((Zrx-2 zwGoxUd}C0_-JhPhHh#}}#Yrh8oZ3=QaPDK6lW$!4+iOi%QubMC>m1N3p3J3RV@&jV zWj?-peeo@x-F11B)=O*m0+XFcS!ME=Ubr2JHC6Ctm=Vgt4%cLc)`6>Z#n9Sm7fJbu zX&qIyzSlgzJ=B8Ev&(xYsuW=O6!!(brc%y<6s}ak!q##^oi}G`DFBNWrKB9-Qf4gt zJ20z}-i@jxLKrQMa(m=6u(SN&mS6RICi%{g_InU#)dbuh>e&%{4mCqfwQ{5T^14)( zVcS4>i!-0M*PADOuMu{5gyDf-wA^&A^9^1cdi|uypc5ZY>)ESd?zJa?Rx2aij?3`b zMZ+J7$j$R3TfvEep;3)lH>+ne814@w=yL*LE5G-iL#=Bqj3U+9LCJkQeS`U0>V(FAddfMx z7(%!Jsr2q8XaDu(xD(!c;ik~ZU4pHg6Wg=aNf-Z3$8Io+0MT8+XzjhEhEz`_* zpY}dCv_w0Ddo^k5?oZL`>vxE6l5wy%^F0yz+BEaDl<59VO$CLlbn#}&C*LxPG#wKJ#>j}loe7X~B~AW;u@=wJ;go6jQy!)+ zmtga#PRZCJj4dI2lP9tYlX8@nQgog9n&of&Ibpi2HkGRM!()HFv`IpATSL&wpr0sR z>qbibMl|%0VAR*P-VcvpUG+?UbPayw3PaQ(W2p%JXu!KlQe;s*{53ae1A3h$`a7Pz zrd|VTmey2H*o|zYVg-a1zQVIB>k#@ zvt4`VC~FsTL0Yl=ApcR4I|Fm#d5fu*)xi>ee@$~SaZ>Uue5vt~Isxsv0leMrXFX0| zyT)Vn(t;S6SRGn!wiVmulDc2H&(Q~E8IyQdnf>mJj+R>VtFJ6CEm$v?{tPyi4JkPv zZqw#LXi)H7rqw(9sH8*R{M{I>KoUX2 zWhN9!qy#;jXj$gF>L(39UL?t9Dd5W~DwKRw47b#!08o853->R!=-HSNGGuqs zB`>LJb*XyH*Wd0DxY!|8SZBy1RthBxyml=*kNudQd57nZwjO%BGKcMvSRpIXl=n-+=Tet1W zg=2NhWk#8SYd(Cd=f>R_ei0mc2QHkgi_HHpA(kJWJ^CD=&XVara*CBNh zzc;%XuM%SMG4>LHOUp=I(JYe+Goi^^DR8z!{<-}2fSYIRSnl?dT}Q?b7B*e*3WHmw7?yq+~z3<{{6(Ig2c+ozDZQu zbd@+e+E{sPI+!9y(cm-0Q*Z9R&o*Ot(v*q>^-FWdne)4qy03#ba9G|CnHo6XnWX8lObjDCC@^^62I3* z8*lZte&c4r8bSF(vd?ulw;1fLF{9VKiZ=4H${xqE=9smOZU1h1nlhj>H+&g6VB3;E zliC;>SgCY74a;EMlz*^XK=aus(W1g_U`^`bOxt;{&6`(CGCHel0NpM1%Gfr0??hf3 zs*ae_b*|KlzDh2?U^AIzuT`w61Kge))`s*1Sz7rDyAY($`QX7nNBNq?k*1A!8d}?3 z1T;7?uha=T?5=((l3+rnNBOFq#hWc*>+Me@Md+y1@R~6Kc5o%g@?j5?_jXkO6Xn(C z6=|e9D<&cD`meG5RzgiQii``ReOI@o*21}-h0e{+jz4Knkyg*t_K*x6q6zDTrKS%|mV`Ds2s`}%TxT{>& zULV*PBW)g0eDS|jy725iAV1u6lWn*(1$OIYzEa={k8y*Dmg%o}uWz#dlmEfzG zOSWT@#`PXszaDI7XpSj-X{YZ}S*#8f(3;*ftSliLoxOSZx^~+BhTodf;eKtp{h=pP z$4(1!HEp!~Sv+al@>SZq)x#-Jf;FmavNMBrYf0Z`T(*~sJ~>lWuNC=LfrPrQToB&d zO3hCe{!Y0eWWtBsigD#`fOqfXzyZ5PEsaqc#rbE~E!y!2&$gUnTlc_XmMispzZfys zG)7H}zp)x~_%Ns44o;Cd)53Np(u`Mc-UmCG8E%qk9M+UkLdNm-!G4g-MWpZCBQ@z5 zh(2wXNMAFs{~<$YDf~Wg_+6jpX_M5`uT&KBXV$MQdsIlAos~s%@80g~>*F2C3BRJ| z#pcJ1C9PJy-78j0x68S?^RULzHd2Js_kqWg5W6?j`)LHL<`XlnZ^^nQtXdxjdJYqe zM)F<_VW-{K5B)AJ-%jjxCT%MqidFS2vGNA+laXXhI@GmREcS`{t{S@;*{F!pxtj?D zFCe<<`<}WS5+UY*sZJ9Uoq%vYhT&rHjb#x+alf zUIT!8viJs0`Q1Y`C`C!}VjAOA)eWNvNqQj)h1s!9t zk?N}W>klXx{ch^r+SFrVD0IJXC)x9%^uA&7#0LedqE};iPvam?$?4K4jQIQUlFJRu zK)@w(MKcx^!^Y6en0|jhPR`8M0l6S{rlgo;_OyTqfUmY|KWiPnwU>X$KzxWUiDJi0 zb;ALv=6lGpvLI{<=k>UiAm2q&d8$=fU zkajXq?$IOSvwSU656A<93XvUBiUaHrh_m_q{B|?ys{<$Vcdft_9o6Ef$$2f zuACzjj&7m=zOzd})BtjehKZVM53S>nE{Er>N(vp!t2;!t1U^*jJ-L!7Y0>IuS_|EA z=9gPbrXI-R^uo`0-(dZ9m_A*`@peits? zyAbS+S?IND`~3vE@uNU_nrUprXqQDk@!^K-D?k3__r@jbsk&@s(+RO?-`>m5Yx7>e z`#p_+_EPIUoO*p?iyQWs@b|tOEPE#PKoO;7TX+4iA0Ms4E(YU>k_R9vZ$d<1%zQ}T z(lDYk1VN1I!RMHvwjl2HFj*qW-MerVt8um3c!^1qtfKJ zWc2P&XswFTG4csqR>z~Xx(7^hC9*oQqWkddo9G@ajyR5-GxbYHW5Rx?(|IketiJ3X z5ET~!*z%qti^zwr^X<2GlBDtaXR*`l^GLk;h?L{(P{%_t6LA3Iu0cs0qMRUE0uf?l zu*W<|p!+wSqdz(j&H>Ose_Xl?w@*fJ^`z@T%!yXBZ($Fp8Fvr1Qq@-*Z}Zvv#}^fO z`$>$xyYZCf+qUqxBip>>cfV8V61OWM-&}akUI}#^UP)#4de%eGjCuR@&@ba#<16qu zp2E~uVDFpECmDzPXM5z)5|&sv)~Hf$-w~8hu{L^ zE3}s0fhY_=q6EH zB4v-9zBBrHTd(beVphVir5cWoNt_ja!M^jJzD<5!s&(L@XK2yT?Tc9Q>7$R`tNSho z5(n5`W>R0%uRFa0;hqJu(8>L{8v5C+tv$R~*({L#xTaxhlD~s^Y1JlHnf_n2u22biS$jV zBaYMz7bdqCHYvWR^k;U|ZtFLVn#A#zmo%pqyu5Jadt?+gbP=OQ@T7=9z;!_i{~KKl zHX@6Abn0!lB)E zKe9KnB!$pEfC~HF_he@S{$B_&@}wf0vrH} z5`;%FxR+BD3epSyT0N8!PK5yE&D~j{+#K2!fc`>h&&6r@J(W;m$by>8!tVE?!|eAm zcVj%E&D4W0-xtVlQ)b3lu=*}W0S*%MpkO>=E?Co8NUB56jPI$ zTIBugR@HXZi+*3;s&5avA|eAG^hSvICD*x2Tq%3i%vK&ZQd6zGJz4?J6OuS&SA8Rx zr^mEbG+4E?Bd{@%n2g-20D2jj^xN@v^T$T2uDGwWWewH@t!vp3*}VR7pl?@u9@|m5 zkz=se9!Y|kiq_%0Xj7TekG=e{HJ%p`tK+={dkivT_b}&r0OC4GzU!rd!H6YL^Yu$B z`cgKjq`5#;ewY{${AfzWdUt@5O9s%wZoWy^fBWByWG^#ZOM|RQqWkuFwrA(@Lk86FrIAJZz)qh}x%@ zqAX5`%Pv7?^$J|V^H*$CHC=>?wtdkNhec2#07+U7(FY(Mo+fI|9ajmCt7Z5c&S%zS z*59`O8d<1wySNXdkespOvk+89irg0~Xs;rjU76WYd-P`M%H6O7`zHPztn#bT@~J1&Ekvv*rOq2_nyuOG%iJM&Vxj? zEr(S+>ySW&b87X+iorc#U9X9h5{ZZcpp=RM5GV$e(fySRbn+Z300jQF7C;>lZ3+Xb zE$*F1-6B74&1hk$&uyu7zujQ}CgI*g*Z!pE= z6Rgyy@H=_yhT0_*4xTr$ljC(b+K6~aZP7Xxx{;dw^|FSVMIeERf2zkjS)P67K<;KC ziTM%UULqMY`de#2vs`7feBlZTI~E?Ly+}XM=a{G2UGtK9ggtG*g2KjtcN?Gc-K81o zJj@0285dB2tSVhW`M&gs_&jESg;Vm%+zqAnR)^h^)mu9k4K6llk!M%qYel56ncnn-b0N|gQS&)8nMOdEOGGHAC;`Z?jOFUjDd8Z;LQUP7 zpk^GP#(&e&4Mzc>%W!xORjeyX_f)#OC4r_4-7<2#1eWb%|%ZMs0`U4R?o0r9Z58$_EK*Ziqq&?Tzf zq$H%AP(tw*6^EPcV0&t!=$iFe?L#S4CsfW|yrAK5BiGNU?M>1HVh{ol z9aEr5p872&1`7k%5>|qQacD;XQ0<7TVhU-Js6l9yw66n_2SA0x@`bw&DxI`OSAvc_ zE~Ui`t=SfNvR-qZRh3*GSQ*45p1q)x>XftvxvOkEY;O};E@az(HCnrNf~b0_LRMzx z&W|5uWp{R@CD?rR!wku5M;Hn8OnPlsFc&KP+Oo4T=RfZY?Gw+uu8tVhXR~_cd?@nq z2zAfXgHJlnht;GVU3^CfaNQ3_0KUNVK_Hmz zIOY^Mf)L9Kz%9pxk)6V>B!em`ljO*ji|cq4UmHz|Tgz^L8pjB=&pnzcwkx@Qza13E zCU`HY&)T=PA=kt!=RMI&B^gBMsW|BpU!Tp*^a%|KPT=hOO1xcoR9p_Y)0(yz4+v%8 zYBe{0>Zjzz7!g6fAPO$#z9cn1RD&7;ynb>ZVnz(p@m;k1t3=WHaujg`ygiO?Rkh{uR)jVQs3nl!RY_w zvQYi_Y1@b0!s;4X55oyi-<~~(Y$Y=MN_p@r62E5ZReO6|Tk$7|w3{q12CK2uh$z~# z8LsTK`E7r{XpdFt!Mgqwnev6tgHa#xO_%!FOT4z(m*=joo4`1>SBFd2Xly4M79I>) zug16mE+mL0zTZ#CjKbT;5S4-{@@ab`WKD zBWC9U|Dr>0Y`fo|R*L6U>-=c&(u1iYAn524da6o{9W_PrSt?+tBDrF3+FL+&Q~Tbc z&A|G!+e+1=y|H9a##FAyQ<^rC&-7%g!K3=Njt-JHqzy`7yYLPhYXMT|We5!Y@GBhd ztOh`4i;HLpAc>&D5PJZFmGdG2=Ye~~0Z0u1lFM`f3LT<0Wy&?TjuUoS4ij9r5WTuI zIONvYXp&b~)*}3Dr$naYiGyv|S!>$uaFEpD_CGoV^`zV|ThqC-5VyhTvw(Ha*;$SU_{sjtX$ z(13`g(XW$F!v_Z-G2&8&n{y!nbEuj=ybuAh(Hpf%I7%J%m;q@f_Ur1KT)Tu0nJUeK z(yh9S*j#z3l#h0VN5Kc%pPX#3dBz5DEjm;TiV*)8sxOQyJsAA(W#36f;pztKk9(-> z$B^Au2M@be0AE3}>%e&AdSobI$mdl*@b;M1B7vOCgWfxiEzNpS2ZD5yQStKAgy(o3 z@+}vUAUuN&{srJPL#;qi;iqJ&-p*Gx%90N>OC$y3v)3;z%JT9~(Zx1xMlQFjnKLrF9*nq|3?CNT zYP3+Sn1l0OtP2FZwk6#ro)bYXRxA(BC5`lz^P-iJwgzhVDRaSvT;{%xNHYMtmSler zh5v?80*O@I934X7(gu2NF~XieL8LA1Wd+jcjs5ypk8_Po~xH?B#u% z)GbQx`Geg?t%ufG<3YiKS048KD0OjR$W5EyoE|*ayi)toiRTJDkjT4M$o@>-^!ls* zkp~hO@-%O+<}^`MLfuAUSFbSe5JC!~ZX8_F+Tv;;VgtnAw1EnQ@+l~$UkmENtsSU; zU)yowBREn(pQoK%3w{Ztl~r{REr4wmj}K!@USd(Ivn5}Hq~ zA1}TS)LLt;=G>adAk2)Rq~yPbOf43@n2DlrQDUPiWB9M=utfm zZ2gCWCQ-@LgQnAirqhF_(}SkdgQnAirqhF_(}SkdgQnAirqhF_(}SkdgQnAirqhF_ z(}SkdgQouuCszOaA2eM80La`m@KtJJsY6R9er5pRGa~Z`NHExMW|m<16ZFm-G8BMs z`OQPclm-dlNz~bqBLRFW3xu%(6gh>}CFkXPVCfOH5J5JdsNO=D3GA@{sW0@DTjn z6$Gns0`P!0 z&R&s}%K3BJKc+`wA=Co6X$8Uo5-wZY>tuv*vKzKG9LIy;7d6{^)m0vkLITdFS!L-^ ztOZUN1mL~W){lA$;KR29A{X#N0DRa7J<}9OAOJKVn+WT_eXDP3YHUFPq2QyT*hpXk zz#|6-4h8T!?Y+JS0VEO6pPPWgmE3>+{26Ylya;XmuyWi~w{>-|t_MWTN$cv~1gA>B zdq1rn0AH*J3C%V4??cx>0s+vI(6vqX?tQTK&j?+E{zK^6@eBY!vRf1cu0ZW?p=(1! zIq7vcHSQQstdzhS8F&#KG?HTDUbQ{=o`e#kCq;lpzT<9Jz;0JohO&q#IS{6f z5PZ{h2IK^;TN2nUX=k|`TnvY384@bGM}l6%b<;!@0+k&}O9|5(XHpTCsJNhdIfm(P zMCwAh1Ag!AIP4Faju25f5yNr>yCbGgBUfBoj<_}Se8>*8o{ui*1qE&6`+Drk`M=FZ zC!4Lmhk4si=8$V*kD`6Jn*3bNO;{)We9coy*WbdpQ17@gJyt=(W72hNexj`-;_G(A zz42Fkf3=3l!7Q;EtE8!HdpfnuA{6-tKiSzw_yWXVtkXOZyfIn6NY_I3o3d*zYrewBd-P0}@HcxIzJk{Y5A-Vo7jxy?<$7#rHjih=qenB{hBL zN&a4wC*y56zp-F0R?^hO1zICnysa{@bwrUJd4mm#N@cZFxq-F|KNQ3ZvG)JWj{<3$ zwo2?;F=awrQX-C8hMJI5tR8Ut*^~xLqKcuiP%AGN0zL!>t-EaNGa4(QG@!6rw*Ghx z0Lleq0VxTAV^BFd?jaynK0d+6TmykFz-W;!wzrONAkvDE(2o6mQXCMl9wL5VVetL& z4J5)EoP2AGDdm_u;h$-=fu1r|D%{XLAbbl8Vlu}!DE0Z$fX_}bT)3gLL7epTTDs$A z&DBIe^k>d09nT572jVe1r+pO$he7%L7wLblJjr`14*yKIDmhx@cxG~Y`_%|jOVY4u zR*{;wyUdH-H%0faK)*p#Sr1Z4AMS2NV{$mKjob(G9N3^}pUX`(Za6MGmZ2gMq;%u9 zoiNMT$GR#T4Gy~9ygal^Emw_bek8%(rr+vZ4W=caPl@QfEHu-HN>?uO@LT`HKr({I zUigMci^Y9khUudH>wl+BYIa=v>!o$}?A!SMwo{cq6IFBZYk#VXhMin|4Ix z>&?+s+)aAQeio#wv8GRR7F}DqtT*b9ileI>ZF~a;2^*Pn`c0FI)DAmWz1(f|Z9P#E zN23-M;y= zIY)M;13AXYceC->o;-ByPp-SWD2F3EOEnc5eWBIhX!RTDnd?WtKDn8^@?-0p)Yy&T z#*Wk;)kx*b(N2zB&DX;BxC!;aZ#Xk67qL<`dLZPZW#wqW4Lj+d=BEWAU}6TISt}iYfxd?cS9uxS>1rK^5igas5O^S%b3{IXdEo zPRm0=ql}FAWtKPZv-E9t!r;#I?!qjxn7t_scO`Ou_oq2>jd4)x`5|j9Gy9qLfEqs= z-$iT%x7R@bVUv&ZA{G&aMK@K0_Q^SE>@`Q~b-7Dz*k8_69#GgFqDss6DTc9!wpQ4g z6_C|Kl(+r-y)Sy@X3r{diVjyE`FgM5kH{skm@giDFkQiv`Em8h{fNL|Ig{k_M%s_8 zJPACYG$b-IZPi$n!J-j9g^EW1svS#T4Uhm%s7*b|xtv@RQq0F4ibfOR_auRP-ExD* zN$759Tu=tc{vu=><3I2_p&f_24JV-glg&Md{5CJQ$HzF1Hv}!-A^zy@FZ?Ct@rZS1en_>?V4--}WxCV@datM0DL8DWr#$uOZNnB#mkchR5 z#Ej6ku7+_4-asPG+WXPRr5K@ekkh{ShVV%2gLnpqI-Z~z9=Gh#yit| zM&~;)4rq2pUp<0gcBaU$m~0O0n>Ce@9M~RzdCB=yCX&H?&uD`<>$tdVO%XlA{K{O} zWWL5dto>(4v+B-yy5SmwSIT!X>PIE9?9X{MgIajjb|N<9UZ0OLZ`_lUTjz@rf3f&` zcTyq-ziv?y>thzGcibnHZ3nBHk9?AiSb&NSd$ZrzJ;rs!p;0Zf9)6$D+mcA7;X=-l{e&l2dBx}UfepeuK5fo)yNJ^?zSX0UhI8R(EahY zFx3CH6N!&j+JQ1Kr(_Ig$ULGO-LpShUYn1!Z}6+TQIk{?RkOd|_|vimTQ?xbV$g03 zkT(iR;o}GJWwqY!ZvzO6vll@ZGgO9NDA*? z`k?2?gSiQJ!l8n1-oGf!9FO`L5OWy0nAEFAZ#NGocIOVu(&)HQJ&|}3n!Z$lja^@5 zuQsT#S$a9GU67S)TV1MS`q=I_B8hb)Zue6d8$K}byPs6Et}$BveFMAqTjmk62IbnxT%zQQnTp^8-KO__5)kd>Oh)B?SmR2aI&0xeuI}(SOk+s6G;OC=9!p&!W1{eISpMZ-gG| zyRxdA_<-|rA3Ncplfp(=(c505DsOL@ws{)s4Q@BHC^}xy39v-fu*u1_;}e!zmYg3U zUhh)Q5C$rS*6r7c8AXPB!w(Z<#LYqG5zRtpkCjD+?9ELS_`#y8fkR?Bx|g6PK}(^) zEr>}dXh~+9PvA}mORh(tdTGFTlGh`O{33T-wxvtxpBOf1sEGkp3}lxkq^UHh5;;hQ%U4? z{Ir8PWyo%)WWCW)`+eN@M=}>}-FRknf>4w7?XjQW7Pc`2zF2b%fj+P35ryPV?;^hG z@_?Hs&L)6{KYn|j73YRM1kL-yY9C9ShJFNs{wQY{=Qo)?1g*{VfSc?8;zy2oiA2n# zx&YMprVmh-e6j~>%61sZ(KY^z_Hdm+D#P(DZZD-MaFY%ymlUXF!|xgYpChuv2&`CB zoO0wVtthh9eJVe*;y~QKP@Ugi&3)SJeznXnh8wvt=E|8~M?85f8c6*%` zEslDn;k!3b11pBF2&*eEp1;mPyW8JqQMT4^Pqp?7YWZrazpG*@?-vPNct{S)Usbm@ z?f1qR*(_00i0LZjt3gjUjwIXpBBv)t^3VH11Kl!#K;-y|IK2bKX|1PK9cRPkj};*8 zi3`LE@>E30!-vOg#6bz#2F|n-FMpOl4REd$7dx@^+6V|7^6f;NltC;_WG5ux#3>LI zZ8-nQWV42S6XW77wKJ)*Rp%uJwWSsE4?<~F@4Z5JLD(UMHS&b|LiS^I z^Rr4+gMz*+`+FM<`1SLgA2D|*gjGz>fWmY}`O}GoyaR&tY2o6DR{4D$0r}nV^V|s< zW5Idn%SlgMp<*g+pxB|1_(c2gf(HWS!u2N#&j!?SHZ0llICS3wclz01T5@qioKE$B z0|GBLn%y;&qALCRNn$L93_pUMf`L*C-*paJFcaBE9+iaMoFi=K_2^R{UF_Ql$FF`Z z#HC^S0X^h~?Q>lG-5mQUPuH|$V8Gy&L6=2(n;=lTm3qaAqy{Y#X`CW*A0H}+U%mD` z@%nl>*pm!)NWh`Esn$)pDo-ER25ayGys7wUR@-aBk1Ea_Kq!s>B5%ZqMguW19M8f* z*{9S#+3q`o;wm-#I^jgbLD~OTsg7a&(cgIu^^reC1de6~hU{kUJ62&K@v`7y)qt*c zbq@OK&iR&58lM?CuVUBjk}8|K5$rk1oPC&|$}xrKQQM%f9tb)ke?fAy-Rh&QC(n5>-$aC4vUHk>i~8Iu&F->!eRd_N zpy3DUM!aTYbbhtGcS{)H)9i*C`(g42-OZLro0l6S`5xVcF5!E_I*y20O^eV$B%j_f zDB0WPxRUyUQ}O**X#D?f9Qgmkc>QNVF-OK(ILxV|TO>AO+F%i2S=Tg9Sk&uib`faa zt0^AbJhbgodlf|n^L@BC?Rd878MO-R$Z;=gs^}ROk0)5w^>A^hg7YrI^(NrYQ2V^4 zUfI9Yir=0KJc?F8l^pI1@0(2^hTHLOkSBa z?zdqlV~Pq!e0K5;UGE+%9W9yY_ZCEj;Q4XC$s4@S^qIbRMpt*0s5c2bqYVQufZuPd zQvLV*x&-w9Oq0RG)i#YVoO4?U?!NLDtd9_Ti>trpjJAO7)O%>TqxFRyZjMT5Bpx}C zBVCb1G5+=qx+cWK0UC-nP}V0>ffX$NBxxCTR48s(e1y;8jxXc6bI^26*y^2_E^v$ca(&>$ zVxK;8in0H57$)H$`n)jiv_}x%RnY0d2n`TlNxS`uoo&smnHqN}lzU^;pvAT<_nd$t zZeN9S?Qn96+qdCd+T+87)53o%BtTJE!VUqyFs=Mq&ExQrzvpNY1%sAO16@u7T}}gC zP6J&~r-3e~fi9-|0Ev=A`=1bhbsFgMe`?&$|0K{w8~|YY$EkZ@ zKr9xk8VW#!JHr5igdQxmOuz~G4wAy?55TA$d^ns#0Dmljnxd)YqlXj$03NY*UDI(B zo{Gx{x?nK-b(G(tZ!kctU4_MlQpw(XTf`O!;8Q=W?r=l}14O(k*C~R80NGpQK>$9H z`+SUJKoCIaBHTA%Q1|5?wzvHV+ueo5cKpU-*N3s2PoV(-e#%3D zJ7Xsj3*CGQ1HoXVAd26K#zMEA!UF(k=-eS#KA3g|%d{-jU^$D03d}E47L5hogq&R8 zg4bfOp85~h60n{I)+@m4yZ=G^AN{Mq`yc+{ekE9c{||L=Mj#!mTSi9#_r}5aBNR3s zOw|*O`vhZO0#C6qV7egiAGPDIkfWVgunP>pVljI!!4hN#2*X0E@KD&mQ4#YxsWrEHC8bMeP(7od^xWIzAKNi?OrX}Ry zELgpAoSO(3LJdQDIl$@#|6yPV%#}n8K)@O_fVdIxmxNq~gB8*MN!(+*ykJH0_%U#d zzgNJ;ACD)68}BnJ8Ni`0~?h z2(o3 z<0l|=fTMAtIEgtZCr;Mi0r%$wxIoCah!=#4PXPEJ5wL~B#V+69VBp6Q8^p!og`N{g z>QAuKNQ~wmIsvCyD4_8<2;Kh}AP{bNa^ZVoy6nPe$nkmuk26Jy0)U~~zt0o}1IZ3M z$rRRQ>UahK=o*@51powak|}C&;F>Lusw=D`4NYSu2uVhA7zNyx z7`uLNp16~>u4vbraKZR`IG*PPcW6odhv|<-*eQBX z4n*Zgr#3crZ%WNsOdj3(PVdE1f?7488sA@cG&Ids`f+u_JPKAq+@+!s^%<^QahU#^gFA>sO?uff)Ut`d#EVygA zY~j7N92b}C;C+A@i68z+bZCqm2_xTOKT5SHXH4e6;ZM%lv(6m--dv0rVkq5G7KK2d zyr_jHo1=pbn@KFA+d_Gv|J1Q!MLU2r$2TCZtYj&1SUp%e$y=t18h}@fWG@`ReXWC9 zaA^a+AWa~%`)YqtyAUW91RoK27ygHCJ>jNV@E!B=qt3r_D+0{+KzX13c}_IseMDY2e$Vr%U}m536Wv z31cZ#1bSv>P4>mg&X?Y;sj1RsPxl!xX942osE_%`O3#)V%+ER~a&RZr%{tKQXy?vu zQ`J%BGw!En5vG=)zHJ*AIarKyI4pTiBzsx5;yCkGnt(mi*bhIyWj`$T9?a@!)kki7 zYQ_gUSbBIcpdF`*L@S_k02zMoKh5_^VFpZ$lH^vRdHqj!0asuHS(-42;;$?@S_!sp zEcZ13$@#bfS^)uBO({lX_|{I83X0VR%t znEl_t;Q@MZGeg-ixP*v*E*lksgpU3{?Og{@Q)$;uLWe~uQUyUktQ2vTA`(Ewg5p|1 z5CS5rs1RBxQbKH~AgHLZfJQ~p6#-okq$Ckh&{)70R3On%RKNrf0;YX$fG#zMqwruSKG>djY~{$1lBu?E3~_X4{f(O!V7!MNhUb@ns2J(#f6E@df*NM z%^|s;aUN?<8Rp`7e0rpi*HS?~%)BDPwK1@INYq)?s!Z%|d{|C0AMu(`D~fD;WyeOR zddE^wwGQBlk(9Ek6d{*BL$twGMc`AeW8l zqB!4?*VW|AM5NEE(U%2b;1v))Un$%w6RRT#ivir=gTIRkmWH&A`bVV^;2WKkGKqLp z;5ifXB~qeFju`?`v&J|q98$UiN?x6EP?*Iw{AS9>}WE@KT&nlgPV*)ORz$gpYxzeqmXyK zh>8H;_BNGf4~`(*|A~nUdn=h=#XdigF5qQhCf-HQVGGHk8P=}95^jT#Y#Y{9(n)#D zD<}gufvPu?HPEhpuE>VgR7pd_QA2F10Zgv^k;P-@ia!FEMUkqJ;Hjkdn}T_XvT6F* zxsq=p41|A)a($3U56mqzTy@=K-Qru|00$M@AnFY!F{Y`rcFVe$65vdF)axOkCKB8W zu~B~1xkxs)fobsDiAP4dQH>551@48or7Y`T8o)yF5_?lgX3QEX}lKUrFL`_<*+e-T1VNX>ufxaBY{ewAEC=( z7@(Ws!O7Y%^sF0upYJ!@5A+^eNZNqN=%$r3fZm)zC$&CHGT`3sG-;=W<%m+e3w!U0 zxSGvhi*k52?(f(lOvVRu2?`DXZFydFvxK6)9WRO$aVZHxicT*DG|SQfzGiiJ5ajDM z2lIn+&yj`vqaUpX_&V;VFN?2_K$)DrtbqW09RPT{E+p=A0-(#RTqg@U4G<$Py0Z@w z7G(krV_Bb&Mg1axdU&WmpH$-yUr{kH20>Xy-_55Ez01hSDU;A2u05l6(P)v$!p5l* z#1!wN;&N^Q4k}D71hAt_5daRK@~bdwj#`F^3zn6{O{DGMb41BT{2TE@9roz^!ReB= z>rWKIS$x1|0mFR=_=Bs(Y7ks+1h{_fXDEy7s{q$Cy4@kT23-x044j1EdIrF?YUOXT zxIO}gx25_r1lNZEu4}B1%i?+q!1YFK=%}7aHb`b91U%HAPpZ@%Q`UdBTnJcfwDE@M+%dSCNQ z^eaUI5uLpUt$jdkNGH|djw=M}fR%51GDRi}fgqHFz{Sh@h%D6G0Mrwr56VK_6l4Gn zWUE0a*#w}Kt((kbwekRnW>(Xx_9zJKltWPhsCT zp%Yov^zoKt0B;jKWW*}a#^G81zeXyZfu{IvpOTIvgAO1 z1ZQyfiJ3G^6JRT?!U zX;&iup-d+2v37aJ5^=H-gh;#zKmk^%orl;*@E!m}zWED2*e2sd4zrcYeMGq@jtFz1LhOf=4|4Yjx`%a z$yFvIyKp^%x}Zl*5UPu6Zd#{4fTqD6)?}_dyf( zP;VdO!8JDbB)yX|iBaZUzEE2qRhGpXIw9ud=S>(&F-S{!$6;o!U|Mrxn*)ST$`Aqj z;j$5+f^db)f3t2#QZ^zsb+rnuj4W14r4x$Y71_-8w_#)A`YS1T|Kv}=G+hND^yitj zVxw4tBGMwOs`o9tzd+u_Ws*r5pDE}nOy+Wnu1gA#a9~pW8-{>{nAId;=aPa|WX&82 z&_7p4l6q3fvp_P4kH|OWr42Axy8@`Dm)?O0*}b+HSEMb&2PJ-lvAMR?aHaO1vLPW( zVZp0@We$D`tmlA^zO1EHehlvR*#6|GogUfv4Dk9*^%uzA4j`P4iJnqVAifw5kXXqI zlDET1-LD_qt^e?pv7w63B2)lwn2eHx>>UPo8-AcA^#tHxS5RLIix(E}cMQVll_)-J z93)l(HVz|37`D91|7*MNhIOH{%! z;jD;C!SJ(6!9yOsW#|hV%9Bz5XNCQ zh#ym}Wfx2-=Ydc&G%`W@F+n}IDG4!+lnzO_hJsktche-PI2D{V4U|Esel(Ni$6dkO z;g9GNN8ai@8kwqsNEKBfyAaIu2;k`9q5gbQWzIF8mL>Ktk5FuOT_nZdSPbhg+(II^ zsB*Z4K`A7Q*Q`i6pCAIQ-J!L$=E8?bC=-*cEWZ?v5JxBTc=T69&;bTae?V;xJPm}W zf$%JQ)TGLAE>e485<}w9V2(&a77_jzj)+<6LO|Z0Fyufsv8n4kxixMZiq4ANG#i{0 zxRAi@Eo1O{Z@zzMe45(J!DrKhr)rJekDvZ^?6|3<*wadlzc7!w3fn7!>CZ$6?d$48IDpmLv0b3}< z4O|v43?EC~DXTT(5uAmt`u@!esXXqFCEIxld{vlLfVrCgCao0kg3zbjtU$&a)pe?= zp%PV_2c2)P1@L8-kK5C0m6}dHiK5`yyxZ-K#=9ni6tz38DfGArBi8B0pWnmGIKsPU zJmDL#h6ssD0DLpN+yGw00k1caayX{0@G2fKTZI=K{d^0K;1y@^IzD*G;ZL%VlPW3= zuJb_D*lNi4EGLQnAZbPD5VvVxwtvg{k>k9RiZq?72T6`rry@!A-jJRD#v`d;vJc5; zQp>(X+vtvQwELBvcNE3d7qvp3VC)DPUk<5*lr2e=r5Z*nE8q=Sn394c7%eho$gp0( zdI9Uj->C(JP!zi4(#bI4EUm4ee>Y;;Vy{Jo?t!~OEAiO~gu;~n*-9K?3Jx<>Rs_GJ zckTKL{`?)S#1W<>IfT6UV&bcVA4I|a&HbQhd73zV=%dne61(lhdVT77Zg}O>C-~DZ z_PteFS>Lo%akr|@;p18=x$cY%Wqw2c(&D~_8d@PQ^R;+#ZebJDjvG$Da{B86%tgOjaR#I-NTi(dYVeq60K*_1~yjG9zEL zTr407s8)l$XA@U^n{-DhD8ZJh`Mfhwu0+9UWq6JCvuw1x)7f0lj_Ie6xy3rId;hqo zsK4a;;g71t%2(V}A6%FySD0OqhirervB(RWyH3ZrX^PXErp1jS#A71c7$92;d2d>#+>al{?GU8 zx4k--H{MO@@gFY7R^&fPk1%N6-x*|Yaj0eY)NM!i=>A6MQq{CQ$OhWO>h!L8A62g} zJE!=0zYxT0y1$oPv25I*A4GGjm&!w+t1d#-+#``_T48IMweMw&3Tro8{;kOg`Ue z*PKefYdtSq<%Y}N9^c^oKFhL`mMa;(A5YrD_bbqhrCsu{-8JX&?`F7xO4}3Jeyk-1 z-V0WnoNFmNAQ&w2p27X?&PKz_PqPk0c=o-Sm1w*ALcz4x8i+Yx-3yPKl?4afzCc#p zMIX{q8TZSnwA%su+k(Bmn!8OzPmh?5u6UaL{(AJH?M+^#ZH9L<2kew`uUtOnT>Q1- z>&MB3$2Esne91Pxx+HWsE(DjiqAhtJqr2;4{_yToQ^M3ezNOekeL8m3?L$Pz3Uf6* z!#fcd3g*YWEbyiEuW9tAEjBkErqcFN!rUPMvL>2ryn1Se3m|Lo$0Lf#hcD;UZa!Sd}Vuv>g|lfuV@^Oe|ywNhJKck zwf6Jle|pLJ`mL%n{Jb)k`*v~473=iL-i60mr22yx7t`)Rc8wS*q-qz zSFtTh{cc}P&&Gg54`aJ$Rq`x}ThCp`s5d>;xfoD?_)+bUvAZZ@$=SG!(CeG8IT}(D zmwOm`8#>}QaBJ%Cr&neDnK3J1r-OQkzbMY5sDXG!QPs+YC9$m``ffTC0=rwv@@qFzw!!BEHJWjqkj5O z&{TCTq|faF<%UZByq)(dYL(1>-IbT@*tG7lTmHp+Z>uKV-x8Vm=_?|*)?>{+`$x;( z;+Jl@i~3^c<$k+%S^dGJK1Yv+4@AtA_M8W0k8suH!GR)O7mpc=X0PA)le5O57iL_W zOTuI;%2kvd$8|r&7$^Noid{PUnpx}X`q`GJKV!U;%)E*`4|?f2ztWn&(aG%?(rxd` zYw9=4pEqXjE5`pQ@0mxGp>>ECi#W3qA^o2@Z-0+KJt26&3P( zNK{C8aLBsQU~IVfniGw5Nu*T8=O(6;&3s3$BtFq+WHTgslh@isp}{fWL4u+ZE>1T0 z@mjk|@&L-3h8EN9?3b-rz1A;iTSVgSeQ5_XGLIZ17ME64ld1O`-gJBtOA1IwY|zF3 LEJpr}{_gt^%~|(j literal 0 HcmV?d00001 diff --git a/packaging/macos/isle/Info.plist.in b/packaging/macos/isle/Info.plist.in new file mode 100644 index 00000000..2ca3d26e --- /dev/null +++ b/packaging/macos/isle/Info.plist.in @@ -0,0 +1,82 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleGetInfoString + @MACOSX_BUNDLE_INFO_STRING@ + CFBundleIconFile + @MACOSX_BUNDLE_ICON_FILE@ + CFBundleIdentifier + @MACOSX_BUNDLE_GUI_IDENTIFIER@ + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + @MACOSX_BUNDLE_LONG_VERSION_STRING@ + CFBundleName + @MACOSX_ISLE_BUNDLE_NAME@ + CFBundleDisplayName + @MACOSX_ISLE_BUNDLE_DISPLAY_NAME@ + CFBundlePackageType + APPL + CFBundleShortVersionString + @MACOSX_BUNDLE_SHORT_VERSION_STRING@ + CFBundleSignature + ???? + CFBundleVersion + @MACOSX_BUNDLE_BUNDLE_VERSION@ + UILaunchStoryboardName + LaunchScreen + NSHighResolutionCapable + + CSResourcesFileMapped + + LSRequires@MACOSX_BUNDLE_REQUIRED_PLATFORM@ + + NSHumanReadableCopyright + @MACOSX_BUNDLE_COPYRIGHT@ + SDL_FILESYSTEM_BASE_DIR_TYPE + resource + NSSupportsAutomaticGraphicsSwitching + + UIApplicationSupportsIndirectInputEvents + + LSSupportsOpeningDocumentsInPlace + + UIFileSharingEnabled + + CADisableMinimumFrameDurationOnPhone + + UIDeviceFamily + + 1 + 2 + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + CFBundleAllowMixedLocalizations + + LSApplicationCategoryType + public.app-category.games + + \ No newline at end of file