diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 608b5ec..d0183f6 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -11,7 +11,6 @@ env:
MAC_DEPLOYMENT_TARGET: '10.9'
MAC_ARM64_DEPLOYMENT_TARGET: '11.0'
MAC_CATALYST_DEPLOYMENT_TARGET: '13.1'
- ENABLE_BITCODE: OFF
ENABLE_ARC: OFF
ENABLE_VISIBILITY: OFF
EMSCRIPTEN_VERSION: 3.1.28
@@ -21,1426 +20,429 @@ permissions:
jobs:
setup:
- permissions:
- contents: none
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.get_version.outputs.VERSION }}
steps:
+ - uses: actions/checkout@v3
- name: get-version
id: get_version
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
+ - name: opencv2-source
+ env:
+ opencv-version: 2.4.13.7
+ run: |
+ wget -q https://github.com/opencv/opencv/archive/${{ env.opencv-version }}.zip -O opencv-${{ env.opencv-version }}.zip
+ unzip -q opencv-${{ env.opencv-version }}.zip
+ rm opencv-${{ env.opencv-version }}.zip
+ cd opencv-${{ env.opencv-version }}
+ truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-rtti.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-zlib.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-fix-highgui-include.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-link-stdc++.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-enable-cxx11.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-link-openmp.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-newer-msvc.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-minimal-install.patch
+ cp ../patches/draw_text.h ../patches/mono_font_data.h modules/core/src/
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-drawing-mono-font.patch
+ rm -rf modules/highgui
+ cp -r ../highgui modules/
+ rm -rf 3rdparty apps data doc samples platforms
+ rm -rf modules/java
+ rm -rf modules/python
+ rm -rf modules/ts
+ sed -e 's/__VERSION__/${{ env.opencv-version }}/g' ../patches/Info.plist > ./Info.plist
+ cp ../opencv2_cmake_options.txt ./options.txt
+ cd ..
+ mv opencv-${{ env.opencv-version }} opencv-mobile-${{ env.opencv-version }}
+ zip -9 -r opencv-mobile-${{ env.opencv-version }}.zip opencv-mobile-${{ env.opencv-version }}
+ - name: opencv3-source
+ env:
+ opencv-version: 3.4.20
+ run: |
+ wget -q https://github.com/opencv/opencv/archive/${{ env.opencv-version }}.zip -O opencv-${{ env.opencv-version }}.zip
+ unzip -q opencv-${{ env.opencv-version }}.zip
+ rm opencv-${{ env.opencv-version }}.zip
+ cd opencv-${{ env.opencv-version }}
+ truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-rtti.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-zlib.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-link-openmp.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-fix-emscripten-include.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-minimal-install.patch
+ cp ../patches/draw_text.h ../patches/mono_font_data.h modules/imgproc/src/
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-drawing-mono-font.patch
+ rm -rf modules/highgui
+ cp -r ../highgui modules/
+ rm -rf 3rdparty apps data doc samples platforms
+ rm -rf modules/java
+ rm -rf modules/js
+ rm -rf modules/python
+ rm -rf modules/ts
+ sed -e 's/__VERSION__/${{ env.opencv-version }}/g' ../patches/Info.plist > ./Info.plist
+ cp ../opencv3_cmake_options.txt ./options.txt
+ cd ..
+ mv opencv-${{ env.opencv-version }} opencv-mobile-${{ env.opencv-version }}
+ zip -9 -r opencv-mobile-${{ env.opencv-version }}.zip opencv-mobile-${{ env.opencv-version }}
+ - name: opencv4-source
+ env:
+ opencv-version: 4.8.1
+ run: |
+ wget -q https://github.com/opencv/opencv/archive/${{ env.opencv-version }}.zip -O opencv-${{ env.opencv-version }}.zip
+ unzip -q opencv-${{ env.opencv-version }}.zip
+ rm opencv-${{ env.opencv-version }}.zip
+ cd opencv-${{ env.opencv-version }}
+ truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
+ rm -rf modules/gapi
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-rtti.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-zlib.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-link-openmp.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-fix-emscripten-include.patch
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-minimal-install.patch
+ cp ../patches/draw_text.h ../patches/mono_font_data.h modules/imgproc/src/
+ patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-drawing-mono-font.patch
+ rm -rf modules/highgui
+ cp -r ../highgui modules/
+ rm -rf 3rdparty apps data doc samples platforms
+ rm -rf modules/java
+ rm -rf modules/js
+ rm -rf modules/python
+ rm -rf modules/ts
+ sed -e 's/__VERSION__/${{ env.opencv-version }}/g' ../patches/Info.plist > ./Info.plist
+ cp ../opencv4_cmake_options.txt ./options.txt
+ cd ..
+ mv opencv-${{ env.opencv-version }} opencv-mobile-${{ env.opencv-version }}
+ zip -9 -r opencv-mobile-${{ env.opencv-version }}.zip opencv-mobile-${{ env.opencv-version }}
+ - name: upload-opencv2-source
+ uses: actions/upload-artifact@v3
+ with:
+ name: opencv-mobile-2.4.13.7-source
+ path: opencv-mobile-2.4.13.7.zip
+ - name: upload-opencv3-source
+ uses: actions/upload-artifact@v3
+ with:
+ name: opencv-mobile-3.4.20-source
+ path: opencv-mobile-3.4.20.zip
+ - name: upload-opencv4-source
+ uses: actions/upload-artifact@v3
+ with:
+ name: opencv-mobile-4.8.1-source
+ path: opencv-mobile-4.8.1.zip
- android-opencv4:
+ android:
+ needs: [setup]
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-android
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake \
+ -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
+ -DANDROID_PLATFORM=android-21 \
+ -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
steps:
- uses: actions/checkout@v3
- name: ndk-fix-debug
run: sed -i -e '/^ -g$/d' $ANDROID_NDK_LATEST_HOME/build/cmake/android-legacy.toolchain.cmake
- - name: opencv-source
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-android" >> $GITHUB_ENV
- name: build-armeabi-v7a
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-armeabi-v7a && cd build-armeabi-v7a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
- name: build-arm64-v8a
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-arm64-v8a && cd build-arm64-v8a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON -DOPENCV_EXTRA_FLAGS="-mno-outline-atomics" ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="arm64-v8a" \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON -DOPENCV_EXTRA_FLAGS="-mno-outline-atomics" ..
cmake --build . -j 2
cmake --build . --target install
- name: build-x86
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-x86 && cd build-x86
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="x86" \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
- name: build-x86_64
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="x86_64" \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
- name: package
run: |
- mkdir ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-x86/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-armeabi-v7a/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm64-v8a/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/sdk/etc
- rm -f ${{ env.PACKAGENAME }}/sdk/native/jni/*.mk
- rm -f ${{ env.PACKAGENAME }}/sdk/native/jni/android.toolchain.cmake
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
+ mkdir ${{ env.PACKAGE_NAME }}
+ cp -rf ${{ env.SOURCE_DIR }}/build-x86/install/* ${{ env.PACKAGE_NAME }}/
+ cp -rf ${{ env.SOURCE_DIR }}/build-x86_64/install/* ${{ env.PACKAGE_NAME }}/
+ cp -rf ${{ env.SOURCE_DIR }}/build-armeabi-v7a/install/* ${{ env.PACKAGE_NAME }}/
+ cp -rf ${{ env.SOURCE_DIR }}/build-arm64-v8a/install/* ${{ env.PACKAGE_NAME }}/
+ zip -9 -r ${{ env.PACKAGE_NAME }}.zip ${{ env.PACKAGE_NAME }}
- name: test-armeabi-v7a
run: |
cd test
mkdir build-armeabi-v7a && cd build-armeabi-v7a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/sdk/native/jni ..
cmake --build . -j 2
- name: test-arm64-v8a
run: |
cd test
mkdir build-arm64-v8a && cd build-arm64-v8a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="arm64-v8a" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/sdk/native/jni ..
cmake --build . -j 2
- name: test-x86
run: |
cd test
mkdir build-x86 && cd build-x86
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="x86" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/sdk/native/jni ..
cmake --build . -j 2
- name: test-x86_64
run: |
cd test
mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DANDROID_ABI="x86_64" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/sdk/native/jni ..
cmake --build . -j 2
- name: upload
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
- android-opencv3:
+ ios:
+ needs: [setup]
+ runs-on: macos-12
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ bitcode: [OFF, ON]
+ env:
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \
+ -DPLATFORM=OS \
+ -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET \
+ -DENABLE_BITCODE=${{ matrix.bitcode }} \
+ -DENABLE_ARC=$ENABLE_ARC \
+ -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
+ if: matrix.bitcode == 'OFF'
+ run: |
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios" >> $GITHUB_ENV
+ - name: setup-opencv-source
+ if: matrix.bitcode == 'ON'
+ run: |
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-bitcode" >> $GITHUB_ENV
+ - name: workaround-opencv2-list
+ if: matrix.opencv-version == '2.4.13.7'
+ run: |
+ # workaround ar @list issue on macos
+ sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt
+ - name: build-armv7
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-armv7 && cd build-armv7
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="armv7" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
+ cmake --build . --target install
+ - name: build-arm64
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-arm64 && cd build-arm64
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
+ cmake --build . --target install
+ - name: build-arm64e
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-arm64e && cd build-arm64e
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64e" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
+ cmake --build . --target install
+ - name: package
+ run: |
+ rm -rf opencv2.framework
+ mkdir -p opencv2.framework/Versions/A/Headers
+ mkdir -p opencv2.framework/Versions/A/Resources
+ ln -s A opencv2.framework/Versions/Current
+ ln -s Versions/Current/Headers opencv2.framework/Headers
+ ln -s Versions/Current/Resources opencv2.framework/Resources
+ ln -s Versions/Current/opencv2 opencv2.framework/opencv2
+ lipo -create \
+ ${{ env.SOURCE_DIR }}/build-armv7/install/lib/libopencv_world.a \
+ ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \
+ ${{ env.SOURCE_DIR }}/build-arm64e/install/lib/libopencv_world.a \
+ -o opencv2.framework/Versions/A/opencv2
+ cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/
+ rm -f ${{ env.PACKAGE_NAME }}.zip
+ zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework
+ - name: test
+ run: |
+ cd test
+ mkdir build && cd build
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="armv7;arm64;arm64e" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE ..
+ cmake --build . -j 3
+ - name: upload-zip
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
+
+ ios-simulator:
+ needs: [setup]
+ runs-on: macos-12
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ bitcode: [OFF, ON]
+ env:
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \
+ -DPLATFORM=SIMULATOR \
+ -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET \
+ -DENABLE_BITCODE=${{ matrix.bitcode }} \
+ -DENABLE_ARC=$ENABLE_ARC \
+ -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
+ if: matrix.bitcode == 'OFF'
+ run: |
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator" >> $GITHUB_ENV
+ - name: setup-opencv-source
+ if: matrix.bitcode == 'ON'
+ run: |
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator-bitcode" >> $GITHUB_ENV
+ - name: workaround-opencv2-list
+ if: matrix.opencv-version == '2.4.13.7'
+ run: |
+ # workaround ar @list issue on macos
+ sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt
+ - name: build-i386
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-i386 && cd build-i386
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="i386" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
+ cmake --build . --target install
+ - name: build-x86_64
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-x86_64 && cd build-x86_64
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
+ cmake --build . --target install
+ - name: build-arm64
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-arm64 && cd build-arm64
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
+ cmake --build . --target install
+ - name: package
+ run: |
+ rm -rf opencv2.framework
+ mkdir -p opencv2.framework/Versions/A/Headers
+ mkdir -p opencv2.framework/Versions/A/Resources
+ ln -s A opencv2.framework/Versions/Current
+ ln -s Versions/Current/Headers opencv2.framework/Headers
+ ln -s Versions/Current/Resources opencv2.framework/Resources
+ ln -s Versions/Current/opencv2 opencv2.framework/opencv2
+ lipo -create \
+ ${{ env.SOURCE_DIR }}/build-i386/install/lib/libopencv_world.a \
+ ${{ env.SOURCE_DIR }}/build-x86_64/install/lib/libopencv_world.a \
+ ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \
+ -o opencv2.framework/Versions/A/opencv2
+ cp -r ${{ env.SOURCE_DIR }}/build-x86_64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp -r ${{ env.SOURCE_DIR }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/
+ rm -f ${{ env.PACKAGE_NAME }}.zip
+ zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework
+ - name: test
+ run: |
+ cd test
+ mkdir build && cd build
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="i386;x86_64;arm64" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE ..
+ cmake --build . -j 3
+ - name: upload-zip
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
+
+ armlinux:
+ needs: [setup]
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-android
- steps:
- - uses: actions/checkout@v3
- - name: ndk-fix-debug
- run: sed -i -e '/^ -g$/d' $ANDROID_NDK_LATEST_HOME/build/cmake/android-legacy.toolchain.cmake
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-rtti.patch
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-armeabi-v7a
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armeabi-v7a && cd build-armeabi-v7a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-arm64-v8a
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64-v8a && cd build-arm64-v8a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_EXTRA_FLAGS="-mno-outline-atomics" ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86 && cd build-x86
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-x86/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-armeabi-v7a/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm64-v8a/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/apk
- rm -rf ${{ env.PACKAGENAME }}/sdk/etc
- rm -f ${{ env.PACKAGENAME }}/sdk/native/jni/*.mk
- rm -f ${{ env.PACKAGENAME }}/sdk/native/jni/android.toolchain.cmake
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-armeabi-v7a
- run: |
- cd test
- mkdir build-armeabi-v7a && cd build-armeabi-v7a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: test-arm64-v8a
- run: |
- cd test
- mkdir build-arm64-v8a && cd build-arm64-v8a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: test-x86
- run: |
- cd test
- mkdir build-x86 && cd build-x86
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: test-x86_64
- run: |
- cd test
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- android-opencv2:
- runs-on: ubuntu-latest
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-android
- steps:
- - uses: actions/checkout@v3
- - name: ndk-fix-debug
- run: sed -i -e '/^ -g$/d' $ANDROID_NDK_LATEST_HOME/build/cmake/android-legacy.toolchain.cmake
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-rtti.patch
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-armeabi-v7a
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armeabi-v7a && cd build-armeabi-v7a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-arm64-v8a
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64-v8a && cd build-arm64-v8a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_EXTRA_FLAGS="-mno-outline-atomics" ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86 && cd build-x86
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-x86/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-armeabi-v7a/install/* ${{ env.PACKAGENAME }}/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm64-v8a/install/* ${{ env.PACKAGENAME }}/
- rm -f ${{ env.PACKAGENAME }}/sdk/native/libs/armeabi-v7a/libopencv_info.so
- rm -f ${{ env.PACKAGENAME }}/sdk/native/libs/arm64-v8a/libopencv_info.so
- rm -f ${{ env.PACKAGENAME }}/sdk/native/libs/x86/libopencv_info.so
- rm -f ${{ env.PACKAGENAME }}/sdk/native/libs/x86_64/libopencv_info.so
- rm -rf ${{ env.PACKAGENAME }}/sdk/etc
- rm -f ${{ env.PACKAGENAME }}/sdk/native/jni/*.mk
- rm -f ${{ env.PACKAGENAME }}/sdk/native/jni/android.toolchain.cmake
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-armeabi-v7a
- run: |
- cd test
- mkdir build-armeabi-v7a && cd build-armeabi-v7a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: test-arm64-v8a
- run: |
- cd test
- mkdir build-arm64-v8a && cd build-arm64-v8a
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: test-x86
- run: |
- cd test
- mkdir build-x86 && cd build-x86
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: test-x86_64
- run: |
- cd test
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
- -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 -DANDROID_CPP_FEATURES="no-rtti no-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/sdk/native/jni ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-opencv4:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-ios
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-armv7
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armv7 && cd build-armv7
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64e
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64e && cd build-arm64e
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-armv7/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64e/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7;arm64;arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-opencv3:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-ios
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-rtti.patch
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-armv7
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armv7 && cd build-armv7
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64e
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64e && cd build-arm64e
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-armv7/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64e/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7;arm64;arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-opencv2:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-ios
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-rtti.patch
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
-
- # workaround ar @list issue on macos
- sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' modules/world/CMakeLists.txt
-
- - name: build-armv7
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armv7 && cd build-armv7
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64e
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64e && cd build-arm64e
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-armv7/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64e/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7;arm64;arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-opencv4-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-ios-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-armv7
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armv7 && cd build-armv7
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64e
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64e && cd build-arm64e
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-armv7/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64e/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7;arm64;arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-opencv3-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-ios-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-rtti.patch
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-armv7
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armv7 && cd build-armv7
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64e
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64e && cd build-arm64e
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-armv7/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64e/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7;arm64;arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-opencv2-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-ios-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-rtti.patch
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
-
- # workaround ar @list issue on macos
- sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' modules/world/CMakeLists.txt
-
- - name: build-armv7
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-armv7 && cd build-armv7
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64e
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64e && cd build-arm64e
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-armv7/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64e/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=OS -DARCHS="armv7;arm64;arm64e" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-simulator-opencv4:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-ios-simulator
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-i386
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-i386 && cd build-i386
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-i386/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386;x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-simulator-opencv3:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-ios-simulator
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-rtti.patch
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-i386
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-i386 && cd build-i386
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-i386/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386;x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-simulator-opencv2:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-ios-simulator
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-rtti.patch
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
-
- # workaround ar @list issue on macos
- sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' modules/world/CMakeLists.txt
-
- - name: build-i386
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-i386 && cd build-i386
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-i386/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386;x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-simulator-opencv4-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-ios-simulator-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-i386
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-i386 && cd build-i386
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-i386/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386;x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-simulator-opencv3-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-ios-simulator-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-rtti.patch
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-i386
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-i386 && cd build-i386
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-i386/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386;x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ios-simulator-opencv2-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-ios-simulator-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-rtti.patch
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
-
- # workaround ar @list issue on macos
- sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' modules/world/CMakeLists.txt
-
- - name: build-i386
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-i386 && cd build-i386
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create \
- opencv-${{ env.OPENCV_VERSION }}/build-i386/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a \
- opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a \
- -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=SIMULATOR -DARCHS="i386;x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- armlinux-opencv4:
- runs-on: ubuntu-latest
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-armlinux
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
steps:
- name: arm-gnu-toolchain
run: |
@@ -1448,325 +450,128 @@ jobs:
sudo apt-get install g++-arm-linux-gnueabi g++-arm-linux-gnueabihf g++-aarch64-linux-gnu
- uses: actions/checkout@v3
- - name: opencv-source
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-armlinux" >> $GITHUB_ENV
- name: build-arm-linux-gnueabi
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-arm-linux-gnueabi && cd build-arm-linux-gnueabi
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF ..
cmake --build . -j 2
cmake --build . --target install
- name: build-arm-linux-gnueabihf
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-arm-linux-gnueabihf && cd build-arm-linux-gnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF ..
cmake --build . -j 2
cmake --build . --target install
- name: build-aarch64-linux-gnu
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-aarch64-linux-gnu && cd build-aarch64-linux-gnu
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF ..
cmake --build . -j 2
cmake --build . --target install
- name: package
run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/arm-linux-gnueabi
- mkdir ${{ env.PACKAGENAME }}/arm-linux-gnueabihf
- mkdir ${{ env.PACKAGENAME }}/aarch64-linux-gnu
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm-linux-gnueabi/install/* ${{ env.PACKAGENAME }}/arm-linux-gnueabi/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm-linux-gnueabihf/install/* ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-aarch64-linux-gnu/install/* ${{ env.PACKAGENAME }}/aarch64-linux-gnu/
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/opencv4
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/opencv4
- rm -rf ${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/opencv4
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
+ mkdir ${{ env.PACKAGE_NAME }}
+ mkdir ${{ env.PACKAGE_NAME }}/arm-linux-gnueabi
+ mkdir ${{ env.PACKAGE_NAME }}/arm-linux-gnueabihf
+ mkdir ${{ env.PACKAGE_NAME }}/aarch64-linux-gnu
+ cp -rf ${{ env.SOURCE_DIR }}/build-arm-linux-gnueabi/install/* ${{ env.PACKAGE_NAME }}/arm-linux-gnueabi/
+ cp -rf ${{ env.SOURCE_DIR }}/build-arm-linux-gnueabihf/install/* ${{ env.PACKAGE_NAME }}/arm-linux-gnueabihf/
+ cp -rf ${{ env.SOURCE_DIR }}/build-aarch64-linux-gnu/install/* ${{ env.PACKAGE_NAME }}/aarch64-linux-gnu/
+ zip -9 -r ${{ env.PACKAGE_NAME }}.zip ${{ env.PACKAGE_NAME }}
+ - name: set-opencv-dir
+ if: matrix.opencv-version == '2.4.13.7' || matrix.opencv-version == '3.4.20'
+ run: echo "OPENCV_SUBDIR=share/OpenCV" >> $GITHUB_ENV
+ - name: set-opencv-dir
+ if: matrix.opencv-version == '4.8.1'
+ run: echo "OPENCV_SUBDIR=lib/cmake/opencv4" >> $GITHUB_ENV
- name: test-arm-linux-gnueabi
run: |
cd test
mkdir build-arm-linux-gnueabi && cd build-arm-linux-gnueabi
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/arm-linux-gnueabi/lib/cmake/opencv4 ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/arm-linux-gnueabi/${{ env.OPENCV_SUBDIR }} ..
cmake --build . -j 2
- name: test-arm-linux-gnueabihf
run: |
cd test
mkdir build-arm-linux-gnueabihf && cd build-arm-linux-gnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/arm-linux-gnueabihf/lib/cmake/opencv4 ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/arm-linux-gnueabihf/${{ env.OPENCV_SUBDIR }} ..
cmake --build . -j 2
- name: test-aarch64-linux-gnu
run: |
cd test
mkdir build-aarch64-linux-gnu && cd build-aarch64-linux-gnu
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/aarch64-linux-gnu/lib/cmake/opencv4 ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/aarch64-linux-gnu/${{ env.OPENCV_SUBDIR }} ..
cmake --build . -j 2
- name: upload-zip
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
- armlinux-opencv3:
- runs-on: ubuntu-latest
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-armlinux
- steps:
- - name: arm-gnu-toolchain
- run: |
- sudo apt-get update
- sudo apt-get install g++-arm-linux-gnueabi g++-arm-linux-gnueabihf g++-aarch64-linux-gnu
-
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-rtti.patch
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-arm-linux-gnueabi
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm-linux-gnueabi && cd build-arm-linux-gnueabi
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-arm-linux-gnueabihf
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm-linux-gnueabihf && cd build-arm-linux-gnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-aarch64-linux-gnu
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-aarch64-linux-gnu && cd build-aarch64-linux-gnu
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/arm-linux-gnueabi
- mkdir ${{ env.PACKAGENAME }}/arm-linux-gnueabihf
- mkdir ${{ env.PACKAGENAME }}/aarch64-linux-gnu
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm-linux-gnueabi/install/* ${{ env.PACKAGENAME }}/arm-linux-gnueabi/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm-linux-gnueabihf/install/* ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-aarch64-linux-gnu/install/* ${{ env.PACKAGENAME }}/aarch64-linux-gnu/
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV/valgrind_3rdparty.supp
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV/valgrind_3rdparty.supp
- rm -rf ${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV/valgrind_3rdparty.supp
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-arm-linux-gnueabi
- run: |
- cd test
- mkdir build-arm-linux-gnueabi && cd build-arm-linux-gnueabi
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV ..
- cmake --build . -j 2
- - name: test-arm-linux-gnueabihf
- run: |
- cd test
- mkdir build-arm-linux-gnueabihf && cd build-arm-linux-gnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV ..
- cmake --build . -j 2
- - name: test-aarch64-linux-gnu
- run: |
- cd test
- mkdir build-aarch64-linux-gnu && cd build-aarch64-linux-gnu
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV ..
- cmake --build . -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- armlinux-opencv2:
- runs-on: ubuntu-latest
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-armlinux
- steps:
- - name: arm-gnu-toolchain
- run: |
- sudo apt-get update
- sudo apt-get install g++-arm-linux-gnueabi g++-arm-linux-gnueabihf g++-aarch64-linux-gnu
-
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-rtti.patch
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-arm-linux-gnueabi
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm-linux-gnueabi && cd build-arm-linux-gnueabi
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-arm-linux-gnueabihf
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm-linux-gnueabihf && cd build-arm-linux-gnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-aarch64-linux-gnu
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-aarch64-linux-gnu && cd build-aarch64-linux-gnu
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/arm-linux-gnueabi
- mkdir ${{ env.PACKAGENAME }}/arm-linux-gnueabihf
- mkdir ${{ env.PACKAGENAME }}/aarch64-linux-gnu
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm-linux-gnueabi/install/* ${{ env.PACKAGENAME }}/arm-linux-gnueabi/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-arm-linux-gnueabihf/install/* ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-aarch64-linux-gnu/install/* ${{ env.PACKAGENAME }}/aarch64-linux-gnu/
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV/lbpcascades
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-arm-linux-gnueabi
- run: |
- cd test
- mkdir build-arm-linux-gnueabi && cd build-arm-linux-gnueabi
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/arm-linux-gnueabi/share/OpenCV ..
- cmake --build . -j 2
- - name: test-arm-linux-gnueabihf
- run: |
- cd test
- mkdir build-arm-linux-gnueabihf && cd build-arm-linux-gnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/arm-linux-gnueabihf/share/OpenCV ..
- cmake --build . -j 2
- - name: test-aarch64-linux-gnu
- run: |
- cd test
- mkdir build-aarch64-linux-gnu && cd build-aarch64-linux-gnu
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/aarch64-linux-gnu.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/aarch64-linux-gnu/share/OpenCV ..
- cmake --build . -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- macos-opencv4:
+ macos:
+ needs: [setup]
runs-on: macos-12
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-macos
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \
+ -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET \
+ -DENABLE_BITCODE=OFF \
+ -DENABLE_ARC=$ENABLE_ARC \
+ -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
steps:
- uses: actions/checkout@v3
- - name: opencv-source
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-macos" >> $GITHUB_ENV
+ - name: workaround-opencv2-list
+ if: matrix.opencv-version == '2.4.13.7'
+ run: |
+ # workaround ar @list issue on macos
+ sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt
- name: build-x86_64
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC -DARCHS="x86_64" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
cmake --build . --target install
- name: build-arm64
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_ARM64_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
cmake --build . --target install
- name: package
run: |
@@ -1777,67 +582,93 @@ jobs:
ln -s Versions/Current/Headers opencv2.framework/Headers
ln -s Versions/Current/Resources opencv2.framework/Resources
ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
+ lipo -create \
+ ${{ env.SOURCE_DIR }}/build-x86_64/install/lib/libopencv_world.a \
+ ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \
+ -o opencv2.framework/Versions/A/opencv2
+ cp -r ${{ env.SOURCE_DIR }}/build-x86_64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp -r ${{ env.SOURCE_DIR }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/
+ rm -f ${{ env.PACKAGE_NAME }}.zip
+ zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework
- name: test-x86_64
run: |
cd test
mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC -DARCHS="x86_64" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE ..
cmake --build . -j 3
- name: test-arm64
run: |
cd test
mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE ..
cmake --build . -j 3
- name: upload-zip
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
- macos-opencv3:
+ mac-catalyst:
+ needs: [setup]
runs-on: macos-12
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ bitcode: [OFF, ON]
env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-macos
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \
+ -DPLATFORM=MAC_CATALYST \
+ -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET \
+ -DENABLE_BITCODE=${{ matrix.bitcode }} \
+ -DENABLE_ARC=$ENABLE_ARC \
+ -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
steps:
- uses: actions/checkout@v3
- - name: opencv-source
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
+ if: matrix.bitcode == 'OFF'
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst" >> $GITHUB_ENV
+ - name: setup-opencv-source
+ if: matrix.bitcode == 'ON'
+ run: |
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst-bitcode" >> $GITHUB_ENV
+ - name: workaround-opencv2-list
+ if: matrix.opencv-version == '2.4.13.7'
+ run: |
+ # workaround ar @list issue on macos
+ sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt
- name: build-x86_64
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
cmake --build . --target install
- name: build-arm64
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_ARM64_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \
+ `cat ../options.txt` -DBUILD_opencv_world=ON ..
+ # workaround ar @list issue on macos
+ cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; }
cmake --build . --target install
- name: package
run: |
@@ -1848,1582 +679,156 @@ jobs:
ln -s Versions/Current/Headers opencv2.framework/Headers
ln -s Versions/Current/Resources opencv2.framework/Resources
ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test-x86_64
- run: |
- cd test
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: test-arm64
- run: |
- cd test
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- macos-opencv2:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-macos
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
-
- # workaround ar @list issue on macos
- sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' modules/world/CMakeLists.txt
-
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_ARM64_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test-x86_64
- run: |
- cd test
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: test-arm64
- run: |
- cd test
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- mac-catalyst-opencv4:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-mac-catalyst
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
+ lipo -create \
+ ${{ env.SOURCE_DIR }}/build-x86_64/install/lib/libopencv_world.a \
+ ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \
+ -o opencv2.framework/Versions/A/opencv2
+ cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || :
+ cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/
+ rm -f ${{ env.PACKAGE_NAME }}.zip
+ zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework
- name: test
run: |
cd test
mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64;arm64" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE ..
cmake --build . -j 3
- name: upload-zip
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
- mac-catalyst-opencv3:
- runs-on: macos-12
+ windows:
+ needs: [setup]
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ os-compiler:
+ - { msvc-version: vs2015, windows-version: 2019, toolset-version: v140 }
+ - { msvc-version: vs2017, windows-version: 2019, toolset-version: v141 }
+ - { msvc-version: vs2019, windows-version: 2019, toolset-version: v142 }
+ - { msvc-version: vs2022, windows-version: 2022, toolset-version: v143 }
+ runs-on: windows-${{ matrix.os-compiler.windows-version }}
env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-mac-catalyst
+ UseMultiToolTask: true
+ COMMON_CMAKE_OPTIONS: -T ${{ matrix.os-compiler.toolset-version }},host=x64 -DCMAKE_INSTALL_PREFIX=install
steps:
- uses: actions/checkout@v3
- - name: opencv-source
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-x86_64
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $env:GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-windows-${{ matrix.os-compiler.msvc-version }}" >> $env:GITHUB_ENV
+ - name: build-x86
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-x86; cd build-x86
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -A Win32 $(type ../options.txt) -DBUILD_opencv_world=OFF ..
+ cmake --build . --config Release -j 2
+ cmake --build . --config Release --target install
+ - name: build-x64
run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build-x64; cd build-x64
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -A x64 $(type ../options.txt) -DBUILD_opencv_world=OFF ..
+ cmake --build . --config Release -j 2
+ cmake --build . --config Release --target install
+ - name: package
+ run: |
+ mkdir ${{ env.PACKAGE_NAME }}
+ mkdir ${{ env.PACKAGE_NAME }}/x86
+ mkdir ${{ env.PACKAGE_NAME }}/x64
+ Copy-Item -Verbose -Recurse -Path "${{ env.SOURCE_DIR }}\build-x86\install\*" -Destination "${{ env.PACKAGE_NAME }}\x86"
+ Copy-Item -Verbose -Recurse -Path "${{ env.SOURCE_DIR }}\build-x64\install\*" -Destination "${{ env.PACKAGE_NAME }}\x64"
+ 7z a -r ${{ env.PACKAGE_NAME }}.zip ${{ env.PACKAGE_NAME }}
+ - name: test-x86
+ run: |
+ cd test
+ mkdir build-x86; cd build-x86
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -A Win32 -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGE_NAME }}\x86" -DOpenCV_STATIC=ON ..
+ cmake --build . --config Release -j 2
+ - name: test-x64
+ run: |
+ cd test
+ mkdir build-x64; cd build-x64
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -A x64 -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGE_NAME }}\x64" -DOpenCV_STATIC=ON ..
+ cmake --build . --config Release -j 2
+ - name: upload-zip
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
+
+ ubuntu:
+ needs: [setup]
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ os-ubuntu:
+ - { ubuntu-id: 2004, ubuntu-version: 20.04 }
+ - { ubuntu-id: 2204, ubuntu-version: 22.04 }
+ runs-on: ubuntu-${{ matrix.os-ubuntu.ubuntu-version }}
+ env:
+ COMMON_CMAKE_OPTIONS: -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
+ run: |
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ubuntu-${{ matrix.os-ubuntu.ubuntu-id }}" >> $GITHUB_ENV
+ - name: build
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build && cd build
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} `cat ../options.txt` -DBUILD_opencv_world=OFF ..
+ cmake --build . -j 2
cmake --build . --target install
- name: package
run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
+ rm -rf ${{ env.PACKAGE_NAME }}
+ mkdir -p ${{ env.PACKAGE_NAME }}
+ cp -rf ${{ env.SOURCE_DIR }}/build/install/* ${{ env.PACKAGE_NAME }}/
+ rm -f ${{ env.PACKAGE_NAME }}.zip
+ zip -9 -r ${{ env.PACKAGE_NAME }}.zip ${{ env.PACKAGE_NAME }}
+ - name: set-opencv-dir
+ if: matrix.opencv-version == '2.4.13.7' || matrix.opencv-version == '3.4.20'
+ run: echo "OPENCV_SUBDIR=share/OpenCV" >> $GITHUB_ENV
+ - name: set-opencv-dir
+ if: matrix.opencv-version == '4.8.1'
+ run: echo "OPENCV_SUBDIR=lib/cmake/opencv4" >> $GITHUB_ENV
- name: test
run: |
cd test
mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/${{ env.OPENCV_SUBDIR }} ..
+ cmake --build . -j 2
+ - name: upload
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
- mac-catalyst-opencv2:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-mac-catalyst
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
-
- # workaround ar @list issue on macos
- sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' modules/world/CMakeLists.txt
-
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- mac-catalyst-opencv4-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-mac-catalyst-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- mac-catalyst-opencv3-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-mac-catalyst-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- mac-catalyst-opencv2-bitcode:
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-mac-catalyst-bitcode
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- echo -n > cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
-
- # workaround ar @list issue on macos
- sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' modules/world/CMakeLists.txt
-
- - name: build-x86_64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86_64 && cd build-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: build-arm64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-arm64 && cd build-arm64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=ON ..
- cmake --build . -j 3 || echo "qaq"
-
- # workaround ar @list issue on macos
- cd modules/world
- /Applications/Xcode_13.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o
- cd ../..
-
- cmake --build . --target install
- - name: package
- run: |
- rm -rf opencv2.framework
- mkdir -p opencv2.framework/Versions/A/Headers
- mkdir -p opencv2.framework/Versions/A/Resources
- ln -s A opencv2.framework/Versions/Current
- ln -s Versions/Current/Headers opencv2.framework/Headers
- ln -s Versions/Current/Resources opencv2.framework/Resources
- ln -s Versions/Current/opencv2 opencv2.framework/opencv2
- lipo -create opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/lib/libopencv_world.a opencv-${{ env.OPENCV_VERSION }}/build-arm64/install/lib/libopencv_world.a -o opencv2.framework/Versions/A/opencv2
- cp -r opencv-${{ env.OPENCV_VERSION }}/build-x86_64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/
- sed -e 's/__NAME__/OpenCV/g' -e 's/__IDENTIFIER__/org.opencv/g' -e 's/__VERSION__/${{ env.OPENCV_VERSION }}/g' Info.plist > opencv2.framework/Versions/A/Resources/Info.plist
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.framework
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake -DPLATFORM=MAC_CATALYST -DARCHS="x86_64;arm64" \
- -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET -DENABLE_BITCODE=ON -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE ..
- cmake --build . -j 3
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2015-opencv4:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-windows-vs2015
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- Remove-Item "modules\gapi" -Recurse
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v140,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v140,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v140,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v140,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2015-opencv3:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-windows-vs2015
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v140,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v140,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v140,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v140,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2015-opencv2:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-windows-vs2015
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-fix-highgui-include.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-enable-cxx11.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-link-openmp.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-newer-msvc.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v140,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v140,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\share" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\share" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v140,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v140,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2017-opencv4:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-windows-vs2017
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- Remove-Item "modules\gapi" -Recurse
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v141,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v141,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v141,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v141,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2017-opencv3:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-windows-vs2017
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v141,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v141,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v141,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v141,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2017-opencv2:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-windows-vs2017
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-fix-highgui-include.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-enable-cxx11.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-link-openmp.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-newer-msvc.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v141,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v141,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\share" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\share" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v141,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v141,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2019-opencv4:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-windows-vs2019
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- Remove-Item "modules\gapi" -Recurse
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v142,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v142,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v142,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v142,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2019-opencv3:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-windows-vs2019
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v142,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v142,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v142,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v142,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2019-opencv2:
- runs-on: windows-2019
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-windows-vs2019
- UseMultiToolTask: true
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-fix-highgui-include.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-enable-cxx11.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-link-openmp.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-newer-msvc.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v142,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v142,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\share" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\share" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v142,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v142,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2022-opencv4:
- runs-on: windows-2022
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-windows-vs2022
- UseMultiToolTask: true
- steps:
- - uses: msys2/setup-msys2@v2
- with:
- release: false
- install: >-
- base-devel
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- Remove-Item "modules\gapi" -Recurse
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-4.8.1-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v143,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v143,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv4_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v143,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v143,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2022-opencv3:
- runs-on: windows-2022
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-windows-vs2022
- UseMultiToolTask: true
- steps:
- - uses: msys2/setup-msys2@v2
- with:
- release: false
- install: >-
- base-devel
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-3.4.20-link-openmp.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v143,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v143,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv3_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\etc" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\etc" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v143,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v143,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- windows-vs2022-opencv2:
- runs-on: windows-2022
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-windows-vs2022
- UseMultiToolTask: true
- steps:
- - uses: msys2/setup-msys2@v2
- with:
- release: false
- install: >-
- base-devel
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -OutFile opencv-${{ env.OPENCV_VERSION }}.zip
- 7z x ./opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- Clear-Content "cmake\OpenCVFindLibsGrfmt.cmake"
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-no-zlib.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-fix-highgui-include.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-enable-cxx11.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-link-openmp.patch
- C:\msys64\usr\bin\patch.exe -p1 -i ..\opencv-2.4.13.7-newer-msvc.patch
- Remove-Item "modules\highgui" -Recurse
- Copy-Item -Recurse -Path "..\highgui" -Destination "modules\"
- - name: build-x86
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x86; cd build-x86
- cmake -T v143,host=x64 -A Win32 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: build-x64
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-x64; cd build-x64
- cmake -T v143,host=x64 -A x64 -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release $(type ../../opencv2_cmake_options.txt) -DBUILD_opencv_world=OFF ..
- cmake --build . --config Release -j 2
- cmake --build . --config Release --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- mkdir ${{ env.PACKAGENAME }}/x86
- mkdir ${{ env.PACKAGENAME }}/x64
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x86\install\*" -Destination "${{ env.PACKAGENAME }}\x86"
- Copy-Item -Verbose -Recurse -Path "opencv-${{ env.OPENCV_VERSION }}\build-x64\install\*" -Destination "${{ env.PACKAGENAME }}\x64"
- Remove-Item "${{ env.PACKAGENAME }}\x86\share" -Recurse
- Remove-Item "${{ env.PACKAGENAME }}\x64\share" -Recurse
- 7z a -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test-x86
- run: |
- cd test
- mkdir build-x86; cd build-x86
- cmake -T v143,host=x64 -A Win32 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x86" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: test-x64
- run: |
- cd test
- mkdir build-x64; cd build-x64
- cmake -T v143,host=x64 -A x64 -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR="$env:GITHUB_WORKSPACE\${{ env.PACKAGENAME }}\x64" -DOpenCV_STATIC=ON ..
- cmake --build . --config Release -j 2
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ubuntu-2004-opencv4:
+ webassembly:
+ needs: [setup]
runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-ubuntu-2004
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/opencv4
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ubuntu-2004-opencv3:
- runs-on: ubuntu-20.04
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-ubuntu-2004
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/valgrind_3rdparty.supp
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/share/OpenCV ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ubuntu-2004-opencv2:
- runs-on: ubuntu-20.04
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-ubuntu-2004
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/lbpcascades
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/share/OpenCV ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ubuntu-2204-opencv4:
- runs-on: ubuntu-22.04
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-ubuntu-2204
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/opencv4
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ubuntu-2204-opencv3:
- runs-on: ubuntu-22.04
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-ubuntu-2204
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/valgrind_3rdparty.supp
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/share/OpenCV ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- ubuntu-2204-opencv2:
- runs-on: ubuntu-22.04
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-ubuntu-2204
- steps:
- - uses: actions/checkout@v3
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/share/OpenCV/lbpcascades
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/share/OpenCV ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- webassembly-opencv4:
- runs-on: ubuntu-20.04
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-webassembly
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
steps:
- uses: actions/checkout@v3
- name: emsdk
@@ -3432,854 +837,300 @@ jobs:
cd emsdk
./emsdk install $EMSCRIPTEN_VERSION
./emsdk activate $EMSCRIPTEN_VERSION
- - name: opencv-source
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-${{ matrix.opencv-version }}-source
+ - name: setup-opencv-source
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- patch -p1 -i ../opencv-4.8.1-fix-emscripten-include.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
+ unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip
+ echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-webassembly" >> $GITHUB_ENV
- name: build
run: |
source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- patch -p1 -i ../opencv-4.8.1-unsafe-xadd.patch
+ cd ${{ env.SOURCE_DIR }}
+ patch -p1 -i ../patches/opencv-${{ matrix.opencv-version }}-unsafe-xadd.patch
mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
-DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=OFF -DCV_ENABLE_INTRINSICS=OFF -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
- name: build-simd
run: |
source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-simd && cd build-simd
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
-DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=OFF -DCV_ENABLE_INTRINSICS=ON -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
- name: build-threads
run: |
source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- patch -p1 -R -i ../opencv-4.8.1-unsafe-xadd.patch
+ cd ${{ env.SOURCE_DIR }}
+ patch -p1 -R -i ../patches/opencv-${{ matrix.opencv-version }}-unsafe-xadd.patch
mkdir build-threads && cd build-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
-DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=ON -DCV_ENABLE_INTRINSICS=OFF -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
- name: build-simd-threads
run: |
source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
mkdir build-simd-threads && cd build-simd-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
-DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=ON -DCV_ENABLE_INTRINSICS=ON -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
- name: package
run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install ${{ env.PACKAGENAME }}/basic
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-simd/install ${{ env.PACKAGENAME }}/simd
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-threads/install ${{ env.PACKAGENAME }}/threads
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-simd-threads/install ${{ env.PACKAGENAME }}/simd-threads
- rm -rf ${{ env.PACKAGENAME }}/basic/share/opencv4
- rm -rf ${{ env.PACKAGENAME }}/simd/share/opencv4
- rm -rf ${{ env.PACKAGENAME }}/threads/share/opencv4
- rm -rf ${{ env.PACKAGENAME }}/simd-threads/share/opencv4
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
+ rm -rf ${{ env.PACKAGE_NAME }}
+ mkdir -p ${{ env.PACKAGE_NAME }}
+ cp -rf ${{ env.SOURCE_DIR }}/build/install ${{ env.PACKAGE_NAME }}/basic
+ cp -rf ${{ env.SOURCE_DIR }}/build-simd/install ${{ env.PACKAGE_NAME }}/simd
+ cp -rf ${{ env.SOURCE_DIR }}/build-threads/install ${{ env.PACKAGE_NAME }}/threads
+ cp -rf ${{ env.SOURCE_DIR }}/build-simd-threads/install ${{ env.PACKAGE_NAME }}/simd-threads
+ rm -f ${{ env.PACKAGE_NAME }}.zip
+ zip -9 -r ${{ env.PACKAGE_NAME }}.zip ${{ env.PACKAGE_NAME }}
+ - name: set-opencv-dir
+ if: matrix.opencv-version == '2.4.13.7' || matrix.opencv-version == '3.4.20'
+ run: echo "OPENCV_SUBDIR=share/OpenCV" >> $GITHUB_ENV
+ - name: set-opencv-dir
+ if: matrix.opencv-version == '4.8.1'
+ run: echo "OPENCV_SUBDIR=lib/cmake/opencv4" >> $GITHUB_ENV
- name: test
run: |
cd test
mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/basic/lib/cmake/opencv4 ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/basic/${{ env.OPENCV_SUBDIR }} ..
cmake --build . -j 2
- name: test-simd
run: |
cd test
mkdir build-simd && cd build-simd
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/simd/lib/cmake/opencv4 ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/simd/${{ env.OPENCV_SUBDIR }} ..
cmake --build . -j 2
- name: test-threads
run: |
cd test
mkdir build-threads && cd build-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/threads/lib/cmake/opencv4 ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/threads/${{ env.OPENCV_SUBDIR }} ..
cmake --build . -j 2
- name: test-simd-threads
run: |
cd test
mkdir build-simd-threads && cd build-simd-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/simd-threads/lib/cmake/opencv4 ..
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
+ -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/simd-threads/${{ env.OPENCV_SUBDIR }} ..
cmake --build . -j 2
- name: upload
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
- webassembly-opencv3:
- runs-on: ubuntu-20.04
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-webassembly
+ apple:
+ needs: [macos, ios, ios-simulator, mac-catalyst]
+ runs-on: macos-12
+ strategy:
+ matrix:
+ opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ bitcode: [OFF, ON]
steps:
+ - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
- uses: actions/checkout@v3
- - name: emsdk
+ - name: setup-opencv-package
+ if: matrix.bitcode == 'OFF'
run: |
- git clone https://github.com/emscripten-core/emsdk.git
- cd emsdk
- ./emsdk install $EMSCRIPTEN_VERSION
- ./emsdk activate $EMSCRIPTEN_VERSION
- - name: opencv-source
+ echo "MACOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-macos" >> $GITHUB_ENV
+ echo "IOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios" >> $GITHUB_ENV
+ echo "IOS_SIMULATOR_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator" >> $GITHUB_ENV
+ echo "MAC_CATALYST_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-apple" >> $GITHUB_ENV
+ - name: setup-opencv-package
+ if: matrix.bitcode == 'ON'
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-3.4.20-no-rtti.patch
- patch -p1 -i ../opencv-3.4.20-no-zlib.patch
- patch -p1 -i ../opencv-3.4.20-link-openmp.patch
- patch -p1 -i ../opencv-3.4.20-fix-emscripten-include.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- patch -p1 -i ../opencv-3.4.20-unsafe-xadd.patch
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=OFF -DCV_ENABLE_INTRINSICS=OFF -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-simd
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-simd && cd build-simd
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=OFF -DCV_ENABLE_INTRINSICS=ON -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-threads
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- patch -p1 -R -i ../opencv-3.4.20-unsafe-xadd.patch
- mkdir build-threads && cd build-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=ON -DCV_ENABLE_INTRINSICS=OFF -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-simd-threads
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-simd-threads && cd build-simd-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCPU_BASELINE="" -DCPU_DISPATCH="" -DWITH_PTHREADS_PF=ON -DCV_ENABLE_INTRINSICS=ON -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv3_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install ${{ env.PACKAGENAME }}/basic
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-simd/install ${{ env.PACKAGENAME }}/simd
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-threads/install ${{ env.PACKAGENAME }}/threads
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-simd-threads/install ${{ env.PACKAGENAME }}/simd-threads
- rm -rf ${{ env.PACKAGENAME }}/basic/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/basic/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/basic/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/basic/share/OpenCV/valgrind_3rdparty.supp
- rm -rf ${{ env.PACKAGENAME }}/simd/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/simd/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/simd/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/simd/share/OpenCV/valgrind_3rdparty.supp
- rm -rf ${{ env.PACKAGENAME }}/threads/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/threads/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/threads/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/threads/share/OpenCV/valgrind_3rdparty.supp
- rm -rf ${{ env.PACKAGENAME }}/simd-threads/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/simd-threads/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/simd-threads/share/OpenCV/valgrind.supp
- rm -rf ${{ env.PACKAGENAME }}/simd-threads/share/OpenCV/valgrind_3rdparty.supp
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/basic/share/OpenCV ..
- cmake --build . -j 2
- - name: test-simd
- run: |
- cd test
- mkdir build-simd && cd build-simd
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/simd/share/OpenCV ..
- cmake --build . -j 2
- - name: test-threads
- run: |
- cd test
- mkdir build-threads && cd build-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/threads/share/OpenCV ..
- cmake --build . -j 2
- - name: test-simd-threads
- run: |
- cd test
- mkdir build-simd-threads && cd build-simd-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/simd-threads/share/OpenCV ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- webassembly-opencv2:
- runs-on: ubuntu-20.04
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-webassembly
- steps:
- - uses: actions/checkout@v3
- - name: emsdk
- run: |
- git clone https://github.com/emscripten-core/emsdk.git
- cd emsdk
- ./emsdk install $EMSCRIPTEN_VERSION
- ./emsdk activate $EMSCRIPTEN_VERSION
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-2.4.13.7-no-rtti.patch
- patch -p1 -i ../opencv-2.4.13.7-no-zlib.patch
- patch -p1 -i ../opencv-2.4.13.7-fix-highgui-include.patch
- patch -p1 -i ../opencv-2.4.13.7-no-link-stdc++.patch
- patch -p1 -i ../opencv-2.4.13.7-enable-cxx11.patch
- patch -p1 -i ../opencv-2.4.13.7-link-openmp.patch
- patch -p1 -i ../opencv-2.4.13.7-newer-msvc.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- patch -p1 -i ../opencv-2.4.13.7-unsafe-xadd.patch
- patch -p1 -i ../opencv-2.4.13.7-no-local-static.patch
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DWITH_PTHREADS_PF=OFF -DCV_ENABLE_INTRINSICS=OFF -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-simd
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-simd && cd build-simd
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DWITH_PTHREADS_PF=OFF -DCV_ENABLE_INTRINSICS=ON -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-threads
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- patch -p1 -R -i ../opencv-2.4.13.7-unsafe-xadd.patch
- patch -p1 -R -i ../opencv-2.4.13.7-no-local-static.patch
- mkdir build-threads && cd build-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DWITH_PTHREADS_PF=ON -DCV_ENABLE_INTRINSICS=OFF -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: build-simd-threads
- run: |
- source emsdk/emsdk_env.sh
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build-simd-threads && cd build-simd-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DWITH_PTHREADS_PF=ON -DCV_ENABLE_INTRINSICS=ON -DBUILD_WASM_INTRIN_TESTS=OFF \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install `cat ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- rm -rf ${{ env.PACKAGENAME }}
- mkdir -p ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install ${{ env.PACKAGENAME }}/basic
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-simd/install ${{ env.PACKAGENAME }}/simd
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-threads/install ${{ env.PACKAGENAME }}/threads
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build-simd-threads/install ${{ env.PACKAGENAME }}/simd-threads
- rm -rf ${{ env.PACKAGENAME }}/basic/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/basic/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/simd/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/simd/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/threads/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/threads/share/OpenCV/lbpcascades
- rm -rf ${{ env.PACKAGENAME }}/simd-threads/share/OpenCV/haarcascades
- rm -rf ${{ env.PACKAGENAME }}/simd-threads/share/OpenCV/lbpcascades
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/basic/share/OpenCV ..
- cmake --build . -j 2
- - name: test-simd
- run: |
- cd test
- mkdir build-simd && cd build-simd
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=0 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/simd/share/OpenCV ..
- cmake --build . -j 2
- - name: test-threads
- run: |
- cd test
- mkdir build-threads && cd build-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/threads/share/OpenCV ..
- cmake --build . -j 2
- - name: test-simd-threads
- run: |
- cd test
- mkdir build-simd-threads && cd build-simd-threads
- cmake -DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions -s WASM=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -msimd128" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/simd-threads/share/OpenCV ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- apple-opencv4:
- needs: [macos-opencv4, ios-opencv4, ios-simulator-opencv4, mac-catalyst-opencv4]
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-apple
- steps:
- - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
- - name: download
+ echo "MACOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-macos" >> $GITHUB_ENV
+ echo "IOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-bitcode" >> $GITHUB_ENV
+ echo "IOS_SIMULATOR_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator-bitcode" >> $GITHUB_ENV
+ echo "MAC_CATALYST_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst-bitcode" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-apple-bitcode" >> $GITHUB_ENV
+ - name: download-macos-package
uses: actions/download-artifact@v3
with:
- path: artifacts
-
+ name: ${{ env.MACOS_PACKAGE_NAME }}
+ - name: download-ios-package
+ uses: actions/download-artifact@v3
+ with:
+ name: ${{ env.IOS_PACKAGE_NAME }}
+ - name: download-ios-simulator-package
+ uses: actions/download-artifact@v3
+ with:
+ name: ${{ env.IOS_SIMULATOR_PACKAGE_NAME }}
+ - name: download-mac-catalyst-package
+ uses: actions/download-artifact@v3
+ with:
+ name: ${{ env.MAC_CATALYST_PACKAGE_NAME }}
- name: create-xcframwork
run: |
- mkdir -p opencv-mobile-macos
- mkdir -p opencv-mobile-ios
- mkdir -p opencv-mobile-ios-simulator
- mkdir -p opencv-mobile-mac-catalyst
-
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-macos/opencv-mobile-${{ env.OPENCV_VERSION }}-macos.zip -d opencv-mobile-macos
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios/opencv-mobile-${{ env.OPENCV_VERSION }}-ios.zip -d opencv-mobile-ios
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator.zip -d opencv-mobile-ios-simulator
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst.zip -d opencv-mobile-mac-catalyst
-
+ mkdir -p ${{ env.MACOS_PACKAGE_NAME }}
+ mkdir -p ${{ env.IOS_PACKAGE_NAME }}
+ mkdir -p ${{ env.IOS_SIMULATOR_PACKAGE_NAME }}
+ mkdir -p ${{ env.MAC_CATALYST_PACKAGE_NAME }}
+ unzip -q ${{ env.MACOS_PACKAGE_NAME }}.zip -d ${{ env.MACOS_PACKAGE_NAME }}
+ unzip -q ${{ env.IOS_PACKAGE_NAME }}.zip -d ${{ env.IOS_PACKAGE_NAME }}
+ unzip -q ${{ env.IOS_SIMULATOR_PACKAGE_NAME }}.zip -d ${{ env.IOS_SIMULATOR_PACKAGE_NAME }}
+ unzip -q ${{ env.MAC_CATALYST_PACKAGE_NAME }}.zip -d ${{ env.MAC_CATALYST_PACKAGE_NAME }}
xcodebuild -create-xcframework \
- -framework opencv-mobile-macos/opencv2.framework \
- -framework opencv-mobile-ios/opencv2.framework \
- -framework opencv-mobile-ios-simulator/opencv2.framework \
- -framework opencv-mobile-mac-catalyst/opencv2.framework \
+ -framework ${{ env.MACOS_PACKAGE_NAME }}/opencv2.framework \
+ -framework ${{ env.IOS_PACKAGE_NAME }}/opencv2.framework \
+ -framework ${{ env.IOS_SIMULATOR_PACKAGE_NAME }}/opencv2.framework \
+ -framework ${{ env.MAC_CATALYST_PACKAGE_NAME }}/opencv2.framework \
-output opencv2.xcframework
-
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.xcframework
+ rm -f ${{ env.PACKAGE_NAME }}.zip
+ zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.xcframework
- name: upload-zip
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
- apple-opencv3:
- needs: [macos-opencv3, ios-opencv3, ios-simulator-opencv3, mac-catalyst-opencv3]
- runs-on: macos-12
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-apple
- steps:
- - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
- - name: download
- uses: actions/download-artifact@v3
- with:
- path: artifacts
-
- - name: create-xcframwork
- run: |
- mkdir -p opencv-mobile-macos
- mkdir -p opencv-mobile-ios
- mkdir -p opencv-mobile-ios-simulator
- mkdir -p opencv-mobile-mac-catalyst
-
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-macos/opencv-mobile-${{ env.OPENCV_VERSION }}-macos.zip -d opencv-mobile-macos
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios/opencv-mobile-${{ env.OPENCV_VERSION }}-ios.zip -d opencv-mobile-ios
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator.zip -d opencv-mobile-ios-simulator
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst.zip -d opencv-mobile-mac-catalyst
-
- xcodebuild -create-xcframework \
- -framework opencv-mobile-macos/opencv2.framework \
- -framework opencv-mobile-ios/opencv2.framework \
- -framework opencv-mobile-ios-simulator/opencv2.framework \
- -framework opencv-mobile-mac-catalyst/opencv2.framework \
- -output opencv2.xcframework
-
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.xcframework
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- apple-opencv2:
- needs: [macos-opencv2, ios-opencv2, ios-simulator-opencv2, mac-catalyst-opencv2]
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-apple
- steps:
- - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
- - name: download
- uses: actions/download-artifact@v3
- with:
- path: artifacts
-
- - name: create-xcframwork
- run: |
- mkdir -p opencv-mobile-macos
- mkdir -p opencv-mobile-ios
- mkdir -p opencv-mobile-ios-simulator
- mkdir -p opencv-mobile-mac-catalyst
-
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-macos/opencv-mobile-${{ env.OPENCV_VERSION }}-macos.zip -d opencv-mobile-macos
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios/opencv-mobile-${{ env.OPENCV_VERSION }}-ios.zip -d opencv-mobile-ios
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator.zip -d opencv-mobile-ios-simulator
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst.zip -d opencv-mobile-mac-catalyst
-
- xcodebuild -create-xcframework \
- -framework opencv-mobile-macos/opencv2.framework \
- -framework opencv-mobile-ios/opencv2.framework \
- -framework opencv-mobile-ios-simulator/opencv2.framework \
- -framework opencv-mobile-mac-catalyst/opencv2.framework \
- -output opencv2.xcframework
-
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.xcframework
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- apple-opencv4-bitcode:
- needs: [macos-opencv4, ios-opencv4-bitcode, ios-simulator-opencv4-bitcode, mac-catalyst-opencv4-bitcode]
- runs-on: macos-12
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-apple-bitcode
- steps:
- - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
- - name: download
- uses: actions/download-artifact@v3
- with:
- path: artifacts
-
- - name: create-xcframwork
- run: |
- mkdir -p opencv-mobile-macos
- mkdir -p opencv-mobile-ios-bitcode
- mkdir -p opencv-mobile-ios-simulator-bitcode
- mkdir -p opencv-mobile-mac-catalyst-bitcode
-
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-macos/opencv-mobile-${{ env.OPENCV_VERSION }}-macos.zip -d opencv-mobile-macos
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-bitcode.zip -d opencv-mobile-ios-bitcode
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator-bitcode.zip -d opencv-mobile-ios-simulator-bitcode
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst-bitcode.zip -d opencv-mobile-mac-catalyst-bitcode
-
- xcodebuild -create-xcframework \
- -framework opencv-mobile-macos/opencv2.framework \
- -framework opencv-mobile-ios-bitcode/opencv2.framework \
- -framework opencv-mobile-ios-simulator-bitcode/opencv2.framework \
- -framework opencv-mobile-mac-catalyst-bitcode/opencv2.framework \
- -output opencv2.xcframework
-
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.xcframework
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- apple-opencv3-bitcode:
- needs: [macos-opencv3, ios-opencv3-bitcode, ios-simulator-opencv3-bitcode, mac-catalyst-opencv3-bitcode]
- runs-on: macos-12
- env:
- OPENCV_VERSION: 3.4.20
- PACKAGENAME: opencv-mobile-3.4.20-apple-bitcode
- steps:
- - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
- - name: download
- uses: actions/download-artifact@v3
- with:
- path: artifacts
-
- - name: create-xcframwork
- run: |
- mkdir -p opencv-mobile-macos
- mkdir -p opencv-mobile-ios-bitcode
- mkdir -p opencv-mobile-ios-simulator-bitcode
- mkdir -p opencv-mobile-mac-catalyst-bitcode
-
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-macos/opencv-mobile-${{ env.OPENCV_VERSION }}-macos.zip -d opencv-mobile-macos
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-bitcode.zip -d opencv-mobile-ios-bitcode
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator-bitcode.zip -d opencv-mobile-ios-simulator-bitcode
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst-bitcode.zip -d opencv-mobile-mac-catalyst-bitcode
-
- xcodebuild -create-xcframework \
- -framework opencv-mobile-macos/opencv2.framework \
- -framework opencv-mobile-ios-bitcode/opencv2.framework \
- -framework opencv-mobile-ios-simulator-bitcode/opencv2.framework \
- -framework opencv-mobile-mac-catalyst-bitcode/opencv2.framework \
- -output opencv2.xcframework
-
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.xcframework
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- apple-opencv2-bitcode:
- needs: [macos-opencv2, ios-opencv2-bitcode, ios-simulator-opencv2-bitcode, mac-catalyst-opencv2-bitcode]
- runs-on: macos-12
- env:
- OPENCV_VERSION: 2.4.13.7
- PACKAGENAME: opencv-mobile-2.4.13.7-apple-bitcode
- steps:
- - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
- - name: download
- uses: actions/download-artifact@v3
- with:
- path: artifacts
-
- - name: create-xcframwork
- run: |
- mkdir -p opencv-mobile-macos
- mkdir -p opencv-mobile-ios-bitcode
- mkdir -p opencv-mobile-ios-simulator-bitcode
- mkdir -p opencv-mobile-mac-catalyst-bitcode
-
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-macos/opencv-mobile-${{ env.OPENCV_VERSION }}-macos.zip -d opencv-mobile-macos
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-bitcode.zip -d opencv-mobile-ios-bitcode
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-ios-simulator-bitcode.zip -d opencv-mobile-ios-simulator-bitcode
- unzip -q artifacts/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst-bitcode/opencv-mobile-${{ env.OPENCV_VERSION }}-mac-catalyst-bitcode.zip -d opencv-mobile-mac-catalyst-bitcode
-
- xcodebuild -create-xcframework \
- -framework opencv-mobile-macos/opencv2.framework \
- -framework opencv-mobile-ios-bitcode/opencv2.framework \
- -framework opencv-mobile-ios-simulator-bitcode/opencv2.framework \
- -framework opencv-mobile-mac-catalyst-bitcode/opencv2.framework \
- -output opencv2.xcframework
-
- rm -f ${{ env.PACKAGENAME }}.zip
- zip -9 -y -r ${{ env.PACKAGENAME }}.zip opencv2.xcframework
- - name: upload-zip
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
-
- milkv-duo-opencv4:
+ devboard:
+ needs: [setup]
runs-on: ubuntu-latest
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-milkv-duo
- steps:
- - uses: actions/checkout@v3
- - name: toolchain
- run: |
- wget -q https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz -O host-tools.tar.gz
- tar -xf host-tools.tar.gz
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-no-atomic.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- export RISCV_ROOT_PATH=$GITHUB_WORKSPACE/host-tools/gcc/riscv64-linux-musl-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/riscv64-unknown-linux-musl.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF \
- -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON -DWITH_OPENMP=OFF -DOPENCV_DISABLE_THREAD_SUPPORT=ON ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/opencv4
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- export RISCV_ROOT_PATH=$GITHUB_WORKSPACE/host-tools/gcc/riscv64-linux-musl-x86_64
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/riscv64-unknown-linux-musl.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ strategy:
+ matrix:
+ include:
+ - name: milkv-duo
+ single-core: true
+ cmake-toolchain: riscv64-unknown-linux-musl.toolchain.cmake
+ setup-toolchain-cmd: |
+ wget -q https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz
+ tar -xf host-tools.tar.gz
+ setup-env-cmd: |
+ export RISCV_ROOT_PATH=$GITHUB_WORKSPACE/host-tools/gcc/riscv64-linux-musl-x86_64
- luckfox-pico-opencv4:
- runs-on: ubuntu-latest
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-luckfox-pico
- steps:
- - uses: actions/checkout@v3
- - name: toolchain
- run: |
- git clone --depth 1 https://github.com/LuckfoxTECH/luckfox-pico.git luckfox-pico
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-no-atomic.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-rockchip830-linux-uclibcgnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF \
- -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON -DWITH_OPENMP=OFF -DOPENCV_DISABLE_THREAD_SUPPORT=ON ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/opencv4
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-rockchip830-linux-uclibcgnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ - name: luckfox-pico
+ single-core: true
+ cmake-toolchain: arm-rockchip830-linux-uclibcgnueabihf.toolchain.cmake
+ setup-toolchain-cmd: |
+ git clone --depth 1 https://github.com/LuckfoxTECH/luckfox-pico.git luckfox-pico
+ setup-env-cmd: |
+ export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf
- yuzuki-lizard-opencv4:
- runs-on: ubuntu-latest
- env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-yuzuki-lizard
- steps:
- - uses: actions/checkout@v3
- - name: toolchain
- run: |
- wget -q https://github.com/YuzukiHD/Yuzukilizard/releases/download/Toolchains/toolchain-sunxi-musl-gcc-830.tar.gz -O toolchain-sunxi-musl-gcc-830.tar.gz
- tar -xf toolchain-sunxi-musl-gcc-830.tar.gz
- - name: opencv-source
- run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-no-atomic.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
- mkdir build && cd build
- export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/toolchain-sunxi-musl-gcc-830/toolchain
- export STAGING_DIR=$GITHUB_WORKSPACE/toolchain-sunxi-musl-gcc-830/toolchain
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-openwrt-linux-muslgnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF \
- -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON -DWITH_OPENMP=OFF -DOPENCV_DISABLE_THREAD_SUPPORT=ON ..
- cmake --build . -j 2
- cmake --build . --target install
- - name: package
- run: |
- mkdir ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/opencv4
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
- - name: test
- run: |
- cd test
- mkdir build && cd build
- export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/toolchain-sunxi-musl-gcc-830/toolchain
- export STAGING_DIR=$GITHUB_WORKSPACE/toolchain-sunxi-musl-gcc-830/toolchain
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-openwrt-linux-muslgnueabi.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
- cmake --build . -j 2
- - name: upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ - name: yuzuki-lizard
+ single-core: true
+ cmake-toolchain: arm-openwrt-linux-muslgnueabi.toolchain.cmake
+ setup-toolchain-cmd: |
+ wget -q https://github.com/YuzukiHD/Yuzukilizard/releases/download/Toolchains/toolchain-sunxi-musl-gcc-830.tar.gz
+ tar -xf toolchain-sunxi-musl-gcc-830.tar.gz
+ setup-env-cmd: |
+ export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/toolchain-sunxi-musl-gcc-830/toolchain
+ export STAGING_DIR=$GITHUB_WORKSPACE/toolchain-sunxi-musl-gcc-830/toolchain
+
+ - name: purple-pi
+ single-core: false
+ cmake-toolchain: arm-linux-gnueabihf.toolchain.cmake
+ setup-toolchain-cmd: |
+ git clone --depth 1 https://github.com/industio/PurPle-Pi-R1.git
+ cd PurPle-Pi-R1/toolchain
+ sh install_toolchain.sh
+ setup-env-cmd: |
+ export PATH=$PATH:$GITHUB_WORKSPACE/PurPle-Pi-R1/toolchain/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin
- purple-pi-opencv4:
- runs-on: ubuntu-latest
env:
- OPENCV_VERSION: 4.8.1
- PACKAGENAME: opencv-mobile-4.8.1-purple-pi
+ COMMON_CMAKE_OPTIONS: |
+ -DCMAKE_TOOLCHAIN_FILE=../../toolchains/${{ matrix.cmake-toolchain }} \
+ -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
+ -DCMAKE_INSTALL_PREFIX=install \
+ -DCMAKE_BUILD_TYPE=Release \
+
steps:
- uses: actions/checkout@v3
- - name: toolchain
+ - uses: actions/download-artifact@v3
+ with:
+ name: opencv-mobile-4.8.1-source
+ - name: setup-opencv-source
run: |
- git clone --depth 1 https://github.com/industio/PurPle-Pi-R1.git
- cd PurPle-Pi-R1/toolchain
- sh install_toolchain.sh
- - name: opencv-source
+ unzip -q opencv-mobile-4.8.1.zip
+ echo "SOURCE_DIR=opencv-mobile-4.8.1" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-4.8.1-${{ matrix.name }}" >> $GITHUB_ENV
+ - name: setup-toolchain
+ run: ${{ matrix.setup-toolchain-cmd }}
+
+ - name: build-disable-thread
+ if: ${{ matrix.single-core }}
run: |
- wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
- unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
- cd opencv-${{ env.OPENCV_VERSION }}
- truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
- rm -rf modules/gapi
- patch -p1 -i ../opencv-4.8.1-no-rtti.patch
- patch -p1 -i ../opencv-4.8.1-no-zlib.patch
- patch -p1 -i ../opencv-4.8.1-link-openmp.patch
- rm -rf modules/highgui
- cp -r ../highgui modules/
- - name: build
- run: |
- cd opencv-${{ env.OPENCV_VERSION }}
+ cd ${{ env.SOURCE_DIR }}
+ patch -p1 -i ../patches/opencv-4.8.1-no-atomic.patch
mkdir build && cd build
- export PATH=$PATH:$GITHUB_WORKSPACE/PurPle-Pi-R1/toolchain/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ ${{ matrix.setup-env-cmd }}
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON \
+ -DWITH_OPENMP=OFF -DOPENCV_DISABLE_THREAD_SUPPORT=ON ..
cmake --build . -j 2
cmake --build . --target install
+
+ - name: build-enable-thread
+ if: ${{ ! matrix.single-core }}
+ run: |
+ cd ${{ env.SOURCE_DIR }}
+ mkdir build && cd build
+ ${{ matrix.setup-env-cmd }}
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
+ `cat ../options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
+ cmake --build . -j 2
+ cmake --build . --target install
+
- name: package
run: |
- mkdir ${{ env.PACKAGENAME }}
- cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
- rm -rf ${{ env.PACKAGENAME }}/share/opencv4
- zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
+ mkdir ${{ env.PACKAGE_NAME }}
+ cp -rf ${{ env.SOURCE_DIR }}/build/install/* ${{ env.PACKAGE_NAME }}/
+ zip -9 -r ${{ env.PACKAGE_NAME }}.zip ${{ env.PACKAGE_NAME }}
+
- name: test
run: |
cd test
mkdir build && cd build
- export PATH=$PATH:$GITHUB_WORKSPACE/PurPle-Pi-R1/toolchain/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin
- cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-linux-gnueabihf.toolchain.cmake \
- -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
- -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
+ ${{ matrix.setup-env-cmd }}
+ cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGE_NAME }}/lib/cmake/opencv4 ..
cmake --build . -j 2
- - name: upload
+
+ - name: upload-zip
uses: actions/upload-artifact@v3
with:
- name: ${{ env.PACKAGENAME }}
- path: ${{ env.PACKAGENAME }}.zip
+ name: ${{ env.PACKAGE_NAME }}
+ path: ${{ env.PACKAGE_NAME }}.zip
release:
permissions:
contents: write # for softprops/action-gh-release to create a release
- needs: [setup, android-opencv4, android-opencv3, android-opencv2, ios-opencv4, ios-opencv3, ios-opencv2, ios-opencv4-bitcode, ios-opencv3-bitcode, ios-opencv2-bitcode, ios-simulator-opencv4, ios-simulator-opencv3, ios-simulator-opencv2, ios-simulator-opencv4-bitcode, ios-simulator-opencv3-bitcode, ios-simulator-opencv2-bitcode, armlinux-opencv4, armlinux-opencv3, armlinux-opencv2, macos-opencv4, macos-opencv3, macos-opencv2, mac-catalyst-opencv4, mac-catalyst-opencv3, mac-catalyst-opencv2, mac-catalyst-opencv4-bitcode, mac-catalyst-opencv3-bitcode, mac-catalyst-opencv2-bitcode, windows-vs2015-opencv4, windows-vs2015-opencv3, windows-vs2015-opencv2, windows-vs2017-opencv4, windows-vs2017-opencv3, windows-vs2017-opencv2, windows-vs2019-opencv4, windows-vs2019-opencv3, windows-vs2019-opencv2, windows-vs2022-opencv4, windows-vs2022-opencv3, windows-vs2022-opencv2, ubuntu-2004-opencv4, ubuntu-2004-opencv3, ubuntu-2004-opencv2, ubuntu-2204-opencv4, ubuntu-2204-opencv3, ubuntu-2204-opencv2, webassembly-opencv4, webassembly-opencv3, webassembly-opencv2, apple-opencv4, apple-opencv3, apple-opencv2, apple-opencv4-bitcode, apple-opencv3-bitcode, apple-opencv2-bitcode, milkv-duo-opencv4, luckfox-pico-opencv4, yuzuki-lizard-opencv4, purple-pi-opencv4]
+ needs: [setup, android, ios, ios-simulator, armlinux, macos, mac-catalyst, windows, ubuntu, webassembly, apple, devboard]
runs-on: ubuntu-latest
steps:
- name: download
diff --git a/README.md b/README.md
index 75b720c..73158ff 100644
--- a/README.md
+++ b/README.md
@@ -25,15 +25,20 @@
:heavy_check_mark: All the binaries are compiled from source on github action, **no virus**, **no backdoor**, **no secret code**.
+|opencv 4.8.1 source|package size|
+|:-:|:-:|
+|The official opencv|92.2 MB|
+|opencv-mobile|10.5 MB|
+
|opencv 4.8.1 android|package size|
|:-:|:-:|
|The official opencv|189 MB|
-|opencv-mobile|18.1 MB|
+|opencv-mobile|17.9 MB|
|opencv 4.8.1 ios|package size|package size with bitcode|
|:-:|:-:|:-:|
|The official opencv|197 MB|missing :(|
-|opencv-mobile|10 MB|34.7 MB|
+|opencv-mobile|9.9 MB|34.3 MB|
# Download
@@ -41,6 +46,7 @@ https://github.com/nihui/opencv-mobile/releases/latest
|Platform|Arch|opencv-2.4.13.7|opencv-3.4.20|opencv-4.8.1|
|:-:|:-:|:-:|:-:|:-:|
+|Source| |[![download-icon]][opencv2-source-url]|[![download-icon]][opencv3-source-url]|[![download-icon]][opencv4-source-url]|
|Android|armeabi-v7a
arm64-v8a
x86
x86_64|[![download-icon]][opencv2-android-url]|[![download-icon]][opencv3-android-url]|[![download-icon]][opencv4-android-url]|
|iOS|armv7
arm64
arm64e|[![download-icon]][opencv2-ios-url]
[![bitcode-icon]][opencv2-ios-bitcode-url]|[![download-icon]][opencv3-ios-url]
[![bitcode-icon]][opencv3-ios-bitcode-url]|[![download-icon]][opencv4-ios-url]
[![bitcode-icon]][opencv4-ios-bitcode-url]|
|iOS-Simulator|i386
x86_64
arm64|[![download-icon]][opencv2-ios-simulator-url]
[![bitcode-icon]][opencv2-ios-simulator-bitcode-url]|[![download-icon]][opencv3-ios-simulator-url]
[![bitcode-icon]][opencv3-ios-simulator-bitcode-url]|[![download-icon]][opencv4-ios-simulator-url]
[![bitcode-icon]][opencv4-ios-simulator-bitcode-url]|
@@ -59,6 +65,10 @@ https://github.com/nihui/opencv-mobile/releases/latest
[download-icon]: https://img.shields.io/badge/download-blue?style=for-the-badge
[bitcode-icon]: https://img.shields.io/badge/+bitcode-blue?style=for-the-badge
+[opencv2-source-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7.zip
+[opencv3-source-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20.zip
+[opencv4-source-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1.zip
+
[opencv2-android-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-android.zip
[opencv3-android-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-android.zip
[opencv4-android-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-android.zip
@@ -179,42 +189,42 @@ target_link_libraries(your_target ${OpenCV_LIBS})
# How-to-build your custom package
-**step 1. download opencv source**
+We reduce the binary size of opencv-mobile in 3 ways
+1. Reimplement some modules (such as highgui) and functions (such as putText)
+2. Apply patches to disable rtti/exceptions and do not install non-essential files
+3. Carefully select cmake options to retain only the modules and functions you want
+
+Steps 1 and 2 are relatively cumbersome and difficult, and require intrusive changes to the opencv source code. If you want to know the details, please refer to the steps in `.github/workflows/release.yml`
+
+The opencv-mobile source code package is the result of steps 1 and 2. Based on it, we can adjust the cmake option to compile our own package and further delete and add modules and other functions.
+
+**step 1. download opencv-mobile source**
```shell
-wget -q https://github.com/opencv/opencv/archive/4.8.1.zip -O opencv-4.8.1.zip
-unzip -q opencv-4.8.1.zip
-cd opencv-4.8.1
+wget -q https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1.zip
+unzip -q opencv-mobile-4.8.1.zip
+cd opencv-mobile-4.8.1
```
-**step 2. strip zlib dependency and use stb-based highgui implementation (optional)**
+**step 2. apply your opencv option changes to options.txt**
```shell
-patch -p1 -i ../opencv-4.8.1-no-zlib.patch
-truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
-rm -rf modules/gapi
-rm -rf modules/highgui
-cp -r ../highgui modules/
+vim options.txt
```
-**step 3. patch opencv source for no-rtti build (optional)**
-```shell
-patch -p1 -i ../opencv-4.8.1-no-rtti.patch
-```
-
-**step 4. apply your opencv options to opencv4_cmake_options.txt**
-
-**step 5. build your opencv package with cmake**
+**step 3. build your opencv package with cmake**
```shell
mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX=install \
--DCMAKE_BUILD_TYPE=Release \
-`cat ../../opencv4_cmake_options.txt` \
--DBUILD_opencv_world=OFF ..
+ -DCMAKE_BUILD_TYPE=Release \
+ `cat ../options.txt` \
+ -DBUILD_opencv_world=OFF ..
+make -j4
+make install
```
-**step 6. make a package**
+**step 4. make a package**
```shell
-zip -r -9 opencv-mobile-4.8.1.zip install
+zip -r -9 opencv-mobile-4.8.1-mypackage.zip install
```
# Some notes
diff --git a/opencv4_cmake_options.txt b/opencv4_cmake_options.txt
index c657bf5..ec6783a 100644
--- a/opencv4_cmake_options.txt
+++ b/opencv4_cmake_options.txt
@@ -39,6 +39,8 @@
-DWITH_CLP=OFF
-DWITH_OPENCL=OFF
-DWITH_OPENCL_SVM=OFF
+-DWITH_VA=OFF
+-DWITH_VA_INTEL=OFF
-DWITH_ITT=OFF
-DWITH_PROTOBUF=OFF
-DWITH_IMGCODEC_HDR=OFF
diff --git a/Info.plist b/patches/Info.plist
similarity index 88%
rename from Info.plist
rename to patches/Info.plist
index 550f4b6..b5a76c8 100644
--- a/Info.plist
+++ b/patches/Info.plist
@@ -3,9 +3,9 @@
CFBundleName
- __NAME__
+ OpenCV
CFBundleIdentifier
- __IDENTIFIER__
+ org.opencv
CFBundleVersion
__VERSION__
CFBundleShortVersionString
diff --git a/patches/draw_text.h b/patches/draw_text.h
new file mode 100644
index 0000000..aab1f81
--- /dev/null
+++ b/patches/draw_text.h
@@ -0,0 +1,691 @@
+//
+// Copyright (C) 2023 nihui
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include
+#include
+#include
+
+#include
+
+#if __ARM_NEON
+#include
+#endif // __ARM_NEON
+
+#if __SSE2__
+#include
+#endif
+
+#include "mono_font_data.h"
+
+namespace cv
+{
+
+static void get_text_drawing_size(const char* text, int fontpixelsize, int* w, int* h)
+{
+ *w = 0;
+ *h = 0;
+
+ const int n = strlen(text);
+
+ int line_w = 0;
+ for (int i = 0; i < n; i++)
+ {
+ char ch = text[i];
+
+ if (ch == '\n')
+ {
+ // newline
+ *w = std::max(*w, line_w);
+ *h += fontpixelsize * 2;
+ line_w = 0;
+ }
+
+ if (isprint(ch) != 0)
+ {
+ line_w += fontpixelsize;
+ }
+ }
+
+ *w = std::max(*w, line_w);
+ *h += fontpixelsize * 2;
+}
+
+static void resize_bilinear_font(const unsigned char* font_bitmap, unsigned char* resized_font_bitmap, int fontpixelsize)
+{
+ const int INTER_RESIZE_COEF_BITS = 11;
+ const int INTER_RESIZE_COEF_SCALE = 1 << INTER_RESIZE_COEF_BITS;
+
+ const int srcw = 20;
+ const int srch = 40;
+ const int w = fontpixelsize;
+ const int h = fontpixelsize * 2;
+
+ double scale = (double)srcw / w;
+
+ int* buf = new int[w + h + w + h];
+
+ int* xofs = buf; //new int[w];
+ int* yofs = buf + w; //new int[h];
+
+ short* ialpha = (short*)(buf + w + h); //new short[w * 2];
+ short* ibeta = (short*)(buf + w + h + w); //new short[h * 2];
+
+ float fx;
+ float fy;
+ int sx;
+ int sy;
+
+#define SATURATE_CAST_SHORT(X) (short)::std::min(::std::max((int)(X + (X >= 0.f ? 0.5f : -0.5f)), SHRT_MIN), SHRT_MAX);
+
+ for (int dx = 0; dx < w; dx++)
+ {
+ fx = (float)((dx + 0.5) * scale - 0.5);
+ sx = static_cast(floor(fx));
+ fx -= sx;
+
+ xofs[dx] = sx;
+
+ float a0 = (1.f - fx) * INTER_RESIZE_COEF_SCALE;
+ float a1 = fx * INTER_RESIZE_COEF_SCALE;
+
+ ialpha[dx * 2] = SATURATE_CAST_SHORT(a0);
+ ialpha[dx * 2 + 1] = SATURATE_CAST_SHORT(a1);
+ }
+
+ for (int dy = 0; dy < h; dy++)
+ {
+ fy = (float)((dy + 0.5) * scale - 0.5);
+ sy = static_cast(floor(fy));
+ fy -= sy;
+
+ yofs[dy] = sy;
+
+ float b0 = (1.f - fy) * INTER_RESIZE_COEF_SCALE;
+ float b1 = fy * INTER_RESIZE_COEF_SCALE;
+
+ ibeta[dy * 2] = SATURATE_CAST_SHORT(b0);
+ ibeta[dy * 2 + 1] = SATURATE_CAST_SHORT(b1);
+ }
+
+#undef SATURATE_CAST_SHORT
+
+ // loop body
+ std::vector rowsbuf0(w);
+ std::vector rowsbuf1(w);
+ short* rows0 = (short*)rowsbuf0.data();
+ short* rows1 = (short*)rowsbuf1.data();
+
+ {
+ short* rows1p = rows1;
+ for (int dx = 0; dx < w; dx++)
+ {
+ rows1p[dx] = 0;
+ }
+ }
+
+ int prev_sy1 = -2;
+
+ for (int dy = 0; dy < h; dy++)
+ {
+ sy = yofs[dy];
+
+ if (sy == prev_sy1)
+ {
+ // reuse all rows
+ }
+ else if (sy == prev_sy1 + 1)
+ {
+ // hresize one row
+ short* rows0_old = rows0;
+ rows0 = rows1;
+ rows1 = rows0_old;
+ const unsigned char* S1 = font_bitmap + 10 * (sy + 1);
+
+ if (sy >= srch - 1)
+ {
+ short* rows1p = rows1;
+ for (int dx = 0; dx < w; dx++)
+ {
+ rows1p[dx] = 0;
+ }
+ }
+ else
+ {
+ const short* ialphap = ialpha;
+ short* rows1p = rows1;
+ for (int dx = 0; dx < w; dx++)
+ {
+ sx = xofs[dx];
+ short a0 = ialphap[0];
+ short a1 = ialphap[1];
+
+ unsigned char S1p0;
+ unsigned char S1p1;
+
+ if (sx < 0)
+ {
+ S1p0 = 0;
+ S1p1 = S1[0] & 0x0f;
+ }
+ else if (sx >= srcw - 1)
+ {
+ S1p0 = (S1[9] & 0xf0) >> 4;
+ S1p1 = 0;
+ }
+ else
+ {
+ S1p0 = sx % 2 == 0 ? S1[sx / 2] & 0x0f : (S1[sx / 2] & 0xf0) >> 4;
+ S1p1 = sx % 2 == 0 ? (S1[sx / 2] & 0xf0) >> 4 : S1[sx / 2 + 1] & 0x0f;
+ }
+ rows1p[dx] = (S1p0 * a0 + S1p1 * a1) * 17 >> 4;
+
+ ialphap += 2;
+ }
+ }
+ }
+ else
+ {
+ // hresize two rows
+ const unsigned char* S0 = font_bitmap + 10 * (sy);
+ const unsigned char* S1 = font_bitmap + 10 * (sy + 1);
+
+ if (sy >= srch - 1)
+ {
+ const short* ialphap = ialpha;
+ short* rows0p = rows0;
+ short* rows1p = rows1;
+ for (int dx = 0; dx < w; dx++)
+ {
+ sx = xofs[dx];
+ short a0 = ialphap[0];
+ short a1 = ialphap[1];
+
+ unsigned char S0p0;
+ unsigned char S0p1;
+
+ if (sx < 0)
+ {
+ S0p0 = 0;
+ S0p1 = S0[0] & 0x0f;
+ }
+ else if (sx >= srcw - 1)
+ {
+ S0p0 = (S0[9] & 0xf0) >> 4;
+ S0p1 = 0;
+ }
+ else
+ {
+ S0p0 = sx % 2 == 0 ? S0[sx / 2] & 0x0f : (S0[sx / 2] & 0xf0) >> 4;
+ S0p1 = sx % 2 == 0 ? (S0[sx / 2] & 0xf0) >> 4 : S0[sx / 2 + 1] & 0x0f;
+ }
+ rows0p[dx] = (S0p0 * a0 + S0p1 * a1) * 17 >> 4;
+ rows1p[dx] = 0;
+
+ ialphap += 2;
+ }
+ }
+ else
+ {
+ const short* ialphap = ialpha;
+ short* rows0p = rows0;
+ short* rows1p = rows1;
+ for (int dx = 0; dx < w; dx++)
+ {
+ sx = xofs[dx];
+ short a0 = ialphap[0];
+ short a1 = ialphap[1];
+
+ unsigned char S0p0;
+ unsigned char S0p1;
+ unsigned char S1p0;
+ unsigned char S1p1;
+
+ if (sx < 0)
+ {
+ S0p0 = 0;
+ S0p1 = S0[0] & 0x0f;
+ S1p0 = 0;
+ S1p1 = S1[0] & 0x0f;
+ }
+ else if (sx >= srcw - 1)
+ {
+ S0p0 = (S0[9] & 0xf0) >> 4;
+ S0p1 = 0;
+ S1p0 = (S1[9] & 0xf0) >> 4;
+ S1p1 = 0;
+ }
+ else
+ {
+ S0p0 = sx % 2 == 0 ? S0[sx / 2] & 0x0f : (S0[sx / 2] & 0xf0) >> 4;
+ S0p1 = sx % 2 == 0 ? (S0[sx / 2] & 0xf0) >> 4 : S0[sx / 2 + 1] & 0x0f;
+ S1p0 = sx % 2 == 0 ? S1[sx / 2] & 0x0f : (S1[sx / 2] & 0xf0) >> 4;
+ S1p1 = sx % 2 == 0 ? (S1[sx / 2] & 0xf0) >> 4 : S1[sx / 2 + 1] & 0x0f;
+ }
+ rows0p[dx] = (S0p0 * a0 + S0p1 * a1) * 17 >> 4;
+ rows1p[dx] = (S1p0 * a0 + S1p1 * a1) * 17 >> 4;
+
+ ialphap += 2;
+ }
+ }
+ }
+
+ prev_sy1 = sy;
+
+ if (dy + 1 < h && yofs[dy + 1] == sy)
+ {
+ // vresize for two rows
+ short b0 = ibeta[0];
+ short b1 = ibeta[1];
+ short b2 = ibeta[2];
+ short b3 = ibeta[3];
+
+ short* rows0p = rows0;
+ short* rows1p = rows1;
+ unsigned char* Dp0 = resized_font_bitmap + w * (dy);
+ unsigned char* Dp1 = resized_font_bitmap + w * (dy + 1);
+
+ int dx = 0;
+#if __ARM_NEON
+ int16x8_t _b0 = vdupq_n_s16(b0);
+ int16x8_t _b1 = vdupq_n_s16(b1);
+ int16x8_t _b2 = vdupq_n_s16(b2);
+ int16x8_t _b3 = vdupq_n_s16(b3);
+ for (; dx + 15 < w; dx += 16)
+ {
+ int16x8_t _r00 = vld1q_s16(rows0p);
+ int16x8_t _r01 = vld1q_s16(rows0p + 8);
+ int16x8_t _r10 = vld1q_s16(rows1p);
+ int16x8_t _r11 = vld1q_s16(rows1p + 8);
+ int16x8_t _acc00 = vaddq_s16(vqdmulhq_s16(_r00, _b0), vqdmulhq_s16(_r10, _b1));
+ int16x8_t _acc01 = vaddq_s16(vqdmulhq_s16(_r01, _b0), vqdmulhq_s16(_r11, _b1));
+ int16x8_t _acc10 = vaddq_s16(vqdmulhq_s16(_r00, _b2), vqdmulhq_s16(_r10, _b3));
+ int16x8_t _acc11 = vaddq_s16(vqdmulhq_s16(_r01, _b2), vqdmulhq_s16(_r11, _b3));
+ uint8x16_t _Dp0 = vcombine_u8(vqrshrun_n_s16(_acc00, 3), vqrshrun_n_s16(_acc01, 3));
+ uint8x16_t _Dp1 = vcombine_u8(vqrshrun_n_s16(_acc10, 3), vqrshrun_n_s16(_acc11, 3));
+ vst1q_u8(Dp0, _Dp0);
+ vst1q_u8(Dp1, _Dp1);
+ Dp0 += 16;
+ Dp1 += 16;
+ rows0p += 16;
+ rows1p += 16;
+ }
+ for (; dx + 7 < w; dx += 8)
+ {
+ int16x8_t _r0 = vld1q_s16(rows0p);
+ int16x8_t _r1 = vld1q_s16(rows1p);
+ int16x8_t _acc0 = vaddq_s16(vqdmulhq_s16(_r0, _b0), vqdmulhq_s16(_r1, _b1));
+ int16x8_t _acc1 = vaddq_s16(vqdmulhq_s16(_r0, _b2), vqdmulhq_s16(_r1, _b3));
+ uint8x8_t _Dp0 = vqrshrun_n_s16(_acc0, 3);
+ uint8x8_t _Dp1 = vqrshrun_n_s16(_acc1, 3);
+ vst1_u8(Dp0, _Dp0);
+ vst1_u8(Dp1, _Dp1);
+ Dp0 += 8;
+ Dp1 += 8;
+ rows0p += 8;
+ rows1p += 8;
+ }
+#endif // __ARM_NEON
+#if __SSE2__
+ __m128i _b0 = _mm_set1_epi16(b0);
+ __m128i _b1 = _mm_set1_epi16(b1);
+ __m128i _b2 = _mm_set1_epi16(b2);
+ __m128i _b3 = _mm_set1_epi16(b3);
+ __m128i _v2 = _mm_set1_epi16(2);
+ for (; dx + 15 < w; dx += 16)
+ {
+ __m128i _r00 = _mm_loadu_si128((const __m128i*)rows0p);
+ __m128i _r01 = _mm_loadu_si128((const __m128i*)(rows0p + 8));
+ __m128i _r10 = _mm_loadu_si128((const __m128i*)rows1p);
+ __m128i _r11 = _mm_loadu_si128((const __m128i*)(rows1p + 8));
+ __m128i _acc00 = _mm_add_epi16(_mm_mulhi_epi16(_r00, _b0), _mm_mulhi_epi16(_r10, _b1));
+ __m128i _acc01 = _mm_add_epi16(_mm_mulhi_epi16(_r01, _b0), _mm_mulhi_epi16(_r11, _b1));
+ __m128i _acc10 = _mm_add_epi16(_mm_mulhi_epi16(_r00, _b2), _mm_mulhi_epi16(_r10, _b3));
+ __m128i _acc11 = _mm_add_epi16(_mm_mulhi_epi16(_r01, _b2), _mm_mulhi_epi16(_r11, _b3));
+ _acc00 = _mm_srai_epi16(_mm_add_epi16(_acc00, _v2), 2);
+ _acc01 = _mm_srai_epi16(_mm_add_epi16(_acc01, _v2), 2);
+ _acc10 = _mm_srai_epi16(_mm_add_epi16(_acc10, _v2), 2);
+ _acc11 = _mm_srai_epi16(_mm_add_epi16(_acc11, _v2), 2);
+ __m128i _Dp0 = _mm_packus_epi16(_acc00, _acc01);
+ __m128i _Dp1 = _mm_packus_epi16(_acc10, _acc11);
+ _mm_storeu_si128((__m128i*)Dp0, _Dp0);
+ _mm_storeu_si128((__m128i*)Dp1, _Dp1);
+ Dp0 += 16;
+ Dp1 += 16;
+ rows0p += 16;
+ rows1p += 16;
+ }
+ for (; dx + 7 < w; dx += 8)
+ {
+ __m128i _r0 = _mm_loadu_si128((const __m128i*)rows0p);
+ __m128i _r1 = _mm_loadu_si128((const __m128i*)rows1p);
+ __m128i _acc0 = _mm_add_epi16(_mm_mulhi_epi16(_r0, _b0), _mm_mulhi_epi16(_r1, _b1));
+ __m128i _acc1 = _mm_add_epi16(_mm_mulhi_epi16(_r0, _b2), _mm_mulhi_epi16(_r1, _b3));
+ _acc0 = _mm_srai_epi16(_mm_add_epi16(_acc0, _v2), 2);
+ _acc1 = _mm_srai_epi16(_mm_add_epi16(_acc1, _v2), 2);
+ __m128i _Dp0 = _mm_packus_epi16(_acc0, _acc0);
+ __m128i _Dp1 = _mm_packus_epi16(_acc1, _acc1);
+ _mm_storel_epi64((__m128i*)Dp0, _Dp0);
+ _mm_storel_epi64((__m128i*)Dp1, _Dp1);
+ Dp0 += 8;
+ Dp1 += 8;
+ rows0p += 8;
+ rows1p += 8;
+ }
+#endif // __SSE2__
+ for (; dx < w; dx++)
+ {
+ short s0 = *rows0p++;
+ short s1 = *rows1p++;
+
+ *Dp0++ = (unsigned char)(((short)((b0 * s0) >> 16) + (short)((b1 * s1) >> 16) + 2) >> 2);
+ *Dp1++ = (unsigned char)(((short)((b2 * s0) >> 16) + (short)((b3 * s1) >> 16) + 2) >> 2);
+ }
+
+ ibeta += 4;
+ dy += 1;
+ }
+ else
+ {
+ // vresize
+ short b0 = ibeta[0];
+ short b1 = ibeta[1];
+
+ short* rows0p = rows0;
+ short* rows1p = rows1;
+ unsigned char* Dp = resized_font_bitmap + w * (dy);
+
+ int dx = 0;
+#if __ARM_NEON
+ int16x8_t _b0 = vdupq_n_s16(b0);
+ int16x8_t _b1 = vdupq_n_s16(b1);
+ for (; dx + 15 < w; dx += 16)
+ {
+ int16x8_t _r00 = vld1q_s16(rows0p);
+ int16x8_t _r01 = vld1q_s16(rows0p + 8);
+ int16x8_t _r10 = vld1q_s16(rows1p);
+ int16x8_t _r11 = vld1q_s16(rows1p + 8);
+ int16x8_t _acc0 = vaddq_s16(vqdmulhq_s16(_r00, _b0), vqdmulhq_s16(_r10, _b1));
+ int16x8_t _acc1 = vaddq_s16(vqdmulhq_s16(_r01, _b0), vqdmulhq_s16(_r11, _b1));
+ uint8x16_t _Dp = vcombine_u8(vqrshrun_n_s16(_acc0, 3), vqrshrun_n_s16(_acc1, 3));
+ vst1q_u8(Dp, _Dp);
+ Dp += 16;
+ rows0p += 16;
+ rows1p += 16;
+ }
+ for (; dx + 7 < w; dx += 8)
+ {
+ int16x8_t _r0 = vld1q_s16(rows0p);
+ int16x8_t _r1 = vld1q_s16(rows1p);
+ int16x8_t _acc = vaddq_s16(vqdmulhq_s16(_r0, _b0), vqdmulhq_s16(_r1, _b1));
+ uint8x8_t _Dp = vqrshrun_n_s16(_acc, 3);
+ vst1_u8(Dp, _Dp);
+ Dp += 8;
+ rows0p += 8;
+ rows1p += 8;
+ }
+#endif // __ARM_NEON
+#if __SSE2__
+ __m128i _b0 = _mm_set1_epi16(b0);
+ __m128i _b1 = _mm_set1_epi16(b1);
+ __m128i _v2 = _mm_set1_epi16(2);
+ for (; dx + 15 < w; dx += 16)
+ {
+ __m128i _r00 = _mm_loadu_si128((const __m128i*)rows0p);
+ __m128i _r01 = _mm_loadu_si128((const __m128i*)(rows0p + 8));
+ __m128i _r10 = _mm_loadu_si128((const __m128i*)rows1p);
+ __m128i _r11 = _mm_loadu_si128((const __m128i*)(rows1p + 8));
+ __m128i _acc0 = _mm_add_epi16(_mm_mulhi_epi16(_r00, _b0), _mm_mulhi_epi16(_r10, _b1));
+ __m128i _acc1 = _mm_add_epi16(_mm_mulhi_epi16(_r01, _b0), _mm_mulhi_epi16(_r11, _b1));
+ _acc0 = _mm_srai_epi16(_mm_add_epi16(_acc0, _v2), 2);
+ _acc1 = _mm_srai_epi16(_mm_add_epi16(_acc1, _v2), 2);
+ __m128i _Dp = _mm_packus_epi16(_acc0, _acc1);
+ _mm_storeu_si128((__m128i*)Dp, _Dp);
+ Dp += 16;
+ rows0p += 16;
+ rows1p += 16;
+ }
+ for (; dx + 7 < w; dx += 8)
+ {
+ __m128i _r0 = _mm_loadu_si128((const __m128i*)rows0p);
+ __m128i _r1 = _mm_loadu_si128((const __m128i*)rows1p);
+ __m128i _acc = _mm_add_epi16(_mm_mulhi_epi16(_r0, _b0), _mm_mulhi_epi16(_r1, _b1));
+ _acc = _mm_srai_epi16(_mm_add_epi16(_acc, _v2), 2);
+ __m128i _Dp = _mm_packus_epi16(_acc, _acc);
+ _mm_storel_epi64((__m128i*)Dp, _Dp);
+ Dp += 8;
+ rows0p += 8;
+ rows1p += 8;
+ }
+#endif // __SSE2__
+ for (; dx < w; dx++)
+ {
+ short s0 = *rows0p++;
+ short s1 = *rows1p++;
+
+ *Dp++ = (unsigned char)(((short)((b0 * s0) >> 16) + (short)((b1 * s1) >> 16) + 2) >> 2);
+ }
+
+ ibeta += 2;
+ }
+ }
+
+ delete[] buf;
+}
+
+static void draw_text_c1(unsigned char* pixels, int w, int h, int stride, const char* text, int x, int y, int fontpixelsize, unsigned int color)
+{
+ const unsigned char* pen_color = (const unsigned char*)&color;
+
+ unsigned char* resized_font_bitmap = new unsigned char[fontpixelsize * fontpixelsize * 2];
+
+ const int n = strlen(text);
+
+ int cursor_x = x;
+ int cursor_y = y;
+ for (int i = 0; i < n; i++)
+ {
+ char ch = text[i];
+
+ if (ch == '\n')
+ {
+ // newline
+ cursor_x = x;
+ cursor_y += fontpixelsize * 2;
+ continue;
+ }
+
+ if (ch == ' ')
+ {
+ cursor_x += fontpixelsize;
+ continue;
+ }
+
+ if (isprint(ch) != 0)
+ {
+ const unsigned char* font_bitmap = mono_font_data[ch - '!'];
+
+ // draw resized character
+ resize_bilinear_font(font_bitmap, resized_font_bitmap, fontpixelsize);
+
+ const int ystart = std::max(cursor_y, 0);
+ const int yend = std::min(cursor_y + fontpixelsize * 2, h);
+ const int xstart = std::max(cursor_x, 0);
+ const int xend = std::min(cursor_x + fontpixelsize, w);
+
+ for (int j = ystart; j < yend; j++)
+ {
+ const unsigned char* palpha = resized_font_bitmap + (j - cursor_y) * fontpixelsize + xstart - cursor_x;
+ unsigned char* p = pixels + stride * j + xstart;
+
+ for (int k = xstart; k < xend; k++)
+ {
+ unsigned char alpha = *palpha++;
+
+ p[0] = (p[0] * (255 - alpha) + pen_color[0] * alpha) / 255;
+ p += 1;
+ }
+ }
+
+ cursor_x += fontpixelsize;
+ }
+ }
+
+ delete[] resized_font_bitmap;
+}
+
+static void draw_text_c3(unsigned char* pixels, int w, int h, int stride, const char* text, int x, int y, int fontpixelsize, unsigned int color)
+{
+ const unsigned char* pen_color = (const unsigned char*)&color;
+
+ unsigned char* resized_font_bitmap = new unsigned char[fontpixelsize * fontpixelsize * 2];
+
+ const int n = strlen(text);
+
+ int cursor_x = x;
+ int cursor_y = y;
+ for (int i = 0; i < n; i++)
+ {
+ char ch = text[i];
+
+ if (ch == '\n')
+ {
+ // newline
+ cursor_x = x;
+ cursor_y += fontpixelsize * 2;
+ continue;
+ }
+
+ if (ch == ' ')
+ {
+ cursor_x += fontpixelsize;
+ continue;
+ }
+
+ if (isprint(ch) != 0)
+ {
+ const unsigned char* font_bitmap = mono_font_data[ch - '!'];
+
+ // draw resized character
+ resize_bilinear_font(font_bitmap, resized_font_bitmap, fontpixelsize);
+
+ const int ystart = std::max(cursor_y, 0);
+ const int yend = std::min(cursor_y + fontpixelsize * 2, h);
+ const int xstart = std::max(cursor_x, 0);
+ const int xend = std::min(cursor_x + fontpixelsize, w);
+
+ for (int j = ystart; j < yend; j++)
+ {
+ const unsigned char* palpha = resized_font_bitmap + (j - cursor_y) * fontpixelsize + xstart - cursor_x;
+ unsigned char* p = pixels + stride * j + xstart * 3;
+
+ for (int k = xstart; k < xend; k++)
+ {
+ unsigned char alpha = *palpha++;
+
+ p[0] = (p[0] * (255 - alpha) + pen_color[0] * alpha) / 255;
+ p[1] = (p[1] * (255 - alpha) + pen_color[1] * alpha) / 255;
+ p[2] = (p[2] * (255 - alpha) + pen_color[2] * alpha) / 255;
+ p += 3;
+ }
+ }
+
+ cursor_x += fontpixelsize;
+ }
+ }
+
+ delete[] resized_font_bitmap;
+}
+
+static void draw_text_c4(unsigned char* pixels, int w, int h, int stride, const char* text, int x, int y, int fontpixelsize, unsigned int color)
+{
+ const unsigned char* pen_color = (const unsigned char*)&color;
+
+ unsigned char* resized_font_bitmap = new unsigned char[fontpixelsize * fontpixelsize * 2];
+
+ const int n = strlen(text);
+
+ int cursor_x = x;
+ int cursor_y = y;
+ for (int i = 0; i < n; i++)
+ {
+ char ch = text[i];
+
+ if (ch == '\n')
+ {
+ // newline
+ cursor_x = x;
+ cursor_y += fontpixelsize * 2;
+ continue;
+ }
+
+ if (ch == ' ')
+ {
+ cursor_x += fontpixelsize;
+ continue;
+ }
+
+ if (isprint(ch) != 0)
+ {
+ const unsigned char* font_bitmap = mono_font_data[ch - '!'];
+
+ // draw resized character
+ resize_bilinear_font(font_bitmap, resized_font_bitmap, fontpixelsize);
+
+ const int ystart = std::max(cursor_y, 0);
+ const int yend = std::min(cursor_y + fontpixelsize * 2, h);
+ const int xstart = std::max(cursor_x, 0);
+ const int xend = std::min(cursor_x + fontpixelsize, w);
+
+ for (int j = ystart; j < yend; j++)
+ {
+ const unsigned char* palpha = resized_font_bitmap + (j - cursor_y) * fontpixelsize + xstart - cursor_x;
+ unsigned char* p = pixels + stride * j + xstart * 4;
+
+ for (int k = xstart; k < xend; k++)
+ {
+ unsigned char alpha = *palpha++;
+
+ p[0] = (p[0] * (255 - alpha) + pen_color[0] * alpha) / 255;
+ p[1] = (p[1] * (255 - alpha) + pen_color[1] * alpha) / 255;
+ p[2] = (p[2] * (255 - alpha) + pen_color[2] * alpha) / 255;
+ p[3] = (p[3] * (255 - alpha) + pen_color[3] * alpha) / 255;
+ p += 4;
+ }
+ }
+
+ cursor_x += fontpixelsize;
+ }
+ }
+
+ delete[] resized_font_bitmap;
+}
+
+static void draw_text_c1(unsigned char* pixels, int w, int h, const char* text, int x, int y, int fontpixelsize, unsigned int color)
+{
+ return draw_text_c1(pixels, w, h, w, text, x, y, fontpixelsize, color);
+}
+
+static void draw_text_c3(unsigned char* pixels, int w, int h, const char* text, int x, int y, int fontpixelsize, unsigned int color)
+{
+ return draw_text_c3(pixels, w, h, w * 3, text, x, y, fontpixelsize, color);
+}
+
+static void draw_text_c4(unsigned char* pixels, int w, int h, const char* text, int x, int y, int fontpixelsize, unsigned int color)
+{
+ return draw_text_c4(pixels, w, h, w * 4, text, x, y, fontpixelsize, color);
+}
+
+}
diff --git a/patches/mono_font_data.h b/patches/mono_font_data.h
new file mode 100644
index 0000000..7c287a2
--- /dev/null
+++ b/patches/mono_font_data.h
@@ -0,0 +1,3877 @@
+//
+// Copyright (C) 2023 nihui
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+namespace cv
+{
+
+static const unsigned char mono_font_data[94][40 * 10] = {
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 249, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 248, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 248, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 247, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 246, 223, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 207, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 207, 0, 0, 0, 0,
+ 0, 0, 0, 0, 244, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 243, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 159, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 159, 0, 0, 0, 0,
+ 0, 0, 0, 0, 241, 143, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 127, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 224, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 208, 79, 0, 0, 0, 0,
+ 0, 0, 0, 0, 160, 61, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 145, 91, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 255, 1, 0, 0, 0,
+ 0, 0, 0, 0, 254, 255, 4, 0, 0, 0,
+ 0, 0, 0, 0, 252, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 212, 143, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 243, 255, 10, 48, 255, 175, 0, 0,
+ 0, 0, 242, 255, 8, 32, 255, 143, 0, 0,
+ 0, 0, 241, 255, 7, 16, 255, 127, 0, 0,
+ 0, 0, 240, 255, 6, 0, 255, 111, 0, 0,
+ 0, 0, 224, 255, 5, 0, 254, 95, 0, 0,
+ 0, 0, 208, 255, 3, 0, 253, 63, 0, 0,
+ 0, 0, 192, 255, 2, 0, 252, 47, 0, 0,
+ 0, 0, 176, 255, 1, 0, 251, 31, 0, 0,
+ 0, 0, 144, 255, 0, 0, 249, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 96, 255, 0, 0, 241, 79, 0,
+ 0, 0, 0, 144, 223, 0, 0, 244, 31, 0,
+ 0, 0, 0, 192, 175, 0, 0, 247, 14, 0,
+ 0, 0, 0, 240, 127, 0, 0, 250, 11, 0,
+ 0, 0, 0, 242, 79, 0, 0, 253, 8, 0,
+ 0, 0, 0, 245, 31, 0, 0, 255, 6, 0,
+ 0, 0, 0, 247, 15, 0, 48, 255, 3, 0,
+ 0, 85, 85, 252, 93, 85, 133, 255, 85, 53,
+ 0, 255, 255, 255, 255, 255, 255, 255, 255, 175,
+ 0, 255, 255, 255, 255, 255, 255, 255, 255, 175,
+ 0, 0, 48, 255, 3, 0, 240, 127, 0, 0,
+ 0, 0, 96, 255, 0, 0, 242, 79, 0, 0,
+ 0, 0, 144, 223, 0, 0, 245, 31, 0, 0,
+ 0, 0, 192, 175, 0, 0, 248, 14, 0, 0,
+ 0, 0, 240, 127, 0, 0, 251, 11, 0, 0,
+ 81, 85, 246, 143, 85, 85, 254, 91, 85, 2,
+ 244, 255, 255, 255, 255, 255, 255, 255, 255, 7,
+ 244, 255, 255, 255, 255, 255, 255, 255, 255, 7,
+ 0, 0, 252, 11, 0, 112, 255, 0, 0, 0,
+ 0, 0, 254, 8, 0, 160, 207, 0, 0, 0,
+ 0, 16, 255, 5, 0, 208, 143, 0, 0, 0,
+ 0, 64, 255, 2, 0, 241, 95, 0, 0, 0,
+ 0, 112, 239, 0, 0, 244, 47, 0, 0, 0,
+ 0, 160, 191, 0, 0, 247, 15, 0, 0, 0,
+ 0, 208, 143, 0, 0, 250, 12, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 224, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 224, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 224, 95, 0, 0, 0, 0,
+ 0, 0, 0, 147, 253, 255, 206, 73, 0, 0,
+ 0, 0, 160, 255, 255, 255, 255, 255, 11, 0,
+ 0, 0, 251, 255, 252, 191, 235, 255, 6, 0,
+ 0, 64, 255, 62, 224, 95, 0, 148, 0, 0,
+ 0, 144, 255, 6, 224, 95, 0, 0, 0, 0,
+ 0, 160, 255, 4, 224, 95, 0, 0, 0, 0,
+ 0, 144, 255, 5, 224, 95, 0, 0, 0, 0,
+ 0, 96, 255, 29, 224, 95, 0, 0, 0, 0,
+ 0, 0, 254, 239, 230, 95, 0, 0, 0, 0,
+ 0, 0, 226, 255, 255, 127, 0, 0, 0, 0,
+ 0, 0, 16, 249, 255, 255, 126, 0, 0, 0,
+ 0, 0, 0, 16, 247, 255, 255, 78, 0, 0,
+ 0, 0, 0, 0, 224, 207, 255, 255, 4, 0,
+ 0, 0, 0, 0, 224, 95, 177, 255, 13, 0,
+ 0, 0, 0, 0, 224, 95, 0, 254, 47, 0,
+ 0, 0, 0, 0, 224, 95, 0, 250, 79, 0,
+ 0, 0, 0, 0, 224, 95, 0, 251, 79, 0,
+ 0, 80, 0, 0, 224, 95, 48, 255, 31, 0,
+ 0, 240, 158, 37, 224, 143, 248, 255, 9, 0,
+ 0, 240, 255, 255, 255, 255, 255, 191, 0, 0,
+ 0, 128, 254, 255, 255, 255, 223, 6, 0, 0,
+ 0, 0, 48, 117, 248, 159, 2, 0, 0, 0,
+ 0, 0, 0, 0, 224, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 224, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 224, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 112, 40, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 215, 255, 59, 0, 0, 0, 245, 79, 0,
+ 160, 255, 255, 255, 5, 0, 0, 252, 13, 0,
+ 245, 159, 50, 252, 31, 0, 64, 255, 5, 0,
+ 251, 13, 0, 242, 127, 0, 192, 223, 0, 0,
+ 254, 9, 0, 224, 175, 0, 244, 95, 0, 0,
+ 255, 8, 0, 208, 191, 0, 251, 13, 0, 0,
+ 254, 10, 0, 224, 175, 48, 255, 6, 0, 0,
+ 251, 13, 0, 242, 127, 176, 239, 0, 0, 0,
+ 245, 143, 33, 252, 31, 243, 111, 0, 0, 0,
+ 160, 255, 255, 255, 6, 250, 14, 0, 0, 0,
+ 0, 214, 255, 76, 32, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 160, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 127, 0, 0, 0, 0,
+ 0, 0, 0, 0, 249, 31, 129, 253, 158, 1,
+ 0, 0, 0, 16, 255, 24, 253, 255, 255, 29,
+ 0, 0, 0, 144, 255, 145, 255, 22, 245, 175,
+ 0, 0, 0, 241, 159, 240, 159, 0, 144, 255,
+ 0, 0, 0, 248, 31, 243, 95, 0, 64, 255,
+ 0, 0, 16, 255, 9, 244, 63, 0, 48, 255,
+ 0, 0, 128, 255, 2, 244, 63, 0, 48, 255,
+ 0, 0, 224, 175, 0, 243, 95, 0, 64, 255,
+ 0, 0, 247, 47, 0, 224, 159, 0, 144, 255,
+ 0, 0, 254, 10, 0, 128, 255, 22, 245, 175,
+ 0, 112, 255, 2, 0, 0, 252, 255, 255, 29,
+ 0, 224, 191, 0, 0, 0, 128, 254, 158, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 200, 255, 190, 5, 0, 0, 0,
+ 0, 0, 227, 255, 255, 255, 191, 0, 0, 0,
+ 0, 16, 254, 255, 154, 252, 255, 9, 0, 0,
+ 0, 112, 255, 29, 0, 112, 255, 15, 0, 0,
+ 0, 160, 255, 6, 0, 0, 253, 63, 0, 0,
+ 0, 176, 255, 4, 0, 0, 252, 79, 0, 0,
+ 0, 144, 255, 6, 0, 0, 254, 31, 0, 0,
+ 0, 64, 255, 12, 0, 112, 255, 10, 0, 0,
+ 0, 0, 253, 95, 0, 246, 239, 1, 0, 0,
+ 0, 0, 245, 239, 179, 255, 62, 0, 0, 0,
+ 0, 0, 144, 255, 255, 207, 2, 0, 0, 0,
+ 0, 0, 96, 255, 255, 7, 0, 0, 0, 0,
+ 0, 16, 251, 255, 255, 9, 0, 0, 0, 0,
+ 0, 209, 255, 142, 255, 111, 0, 0, 201, 76,
+ 0, 253, 223, 1, 247, 255, 3, 0, 255, 31,
+ 96, 255, 47, 0, 160, 255, 30, 80, 255, 12,
+ 176, 255, 8, 0, 0, 252, 207, 208, 255, 5,
+ 224, 255, 4, 0, 0, 225, 255, 252, 223, 0,
+ 240, 255, 3, 0, 0, 48, 255, 255, 95, 0,
+ 224, 255, 6, 0, 0, 0, 246, 255, 11, 0,
+ 176, 255, 13, 0, 0, 0, 251, 255, 30, 0,
+ 80, 255, 191, 1, 0, 229, 255, 255, 191, 0,
+ 0, 252, 255, 207, 252, 255, 207, 226, 255, 7,
+ 0, 193, 255, 255, 255, 255, 9, 64, 255, 79,
+ 0, 0, 181, 254, 206, 40, 0, 0, 249, 239,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 250, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 249, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 248, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 246, 223, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 244, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 243, 159, 0, 0, 0, 0,
+ 0, 0, 0, 0, 241, 143, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64, 255, 29, 0, 0,
+ 0, 0, 0, 0, 0, 245, 207, 1, 0, 0,
+ 0, 0, 0, 0, 64, 255, 29, 0, 0, 0,
+ 0, 0, 0, 0, 242, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 252, 111, 0, 0, 0, 0,
+ 0, 0, 0, 112, 255, 11, 0, 0, 0, 0,
+ 0, 0, 0, 241, 255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 248, 175, 0, 0, 0, 0, 0,
+ 0, 0, 0, 254, 79, 0, 0, 0, 0, 0,
+ 0, 0, 64, 255, 14, 0, 0, 0, 0, 0,
+ 0, 0, 128, 255, 9, 0, 0, 0, 0, 0,
+ 0, 0, 176, 255, 6, 0, 0, 0, 0, 0,
+ 0, 0, 224, 255, 3, 0, 0, 0, 0, 0,
+ 0, 0, 240, 255, 1, 0, 0, 0, 0, 0,
+ 0, 0, 241, 255, 0, 0, 0, 0, 0, 0,
+ 0, 0, 241, 255, 0, 0, 0, 0, 0, 0,
+ 0, 0, 240, 255, 1, 0, 0, 0, 0, 0,
+ 0, 0, 240, 255, 2, 0, 0, 0, 0, 0,
+ 0, 0, 208, 255, 4, 0, 0, 0, 0, 0,
+ 0, 0, 160, 255, 7, 0, 0, 0, 0, 0,
+ 0, 0, 96, 255, 11, 0, 0, 0, 0, 0,
+ 0, 0, 32, 255, 31, 0, 0, 0, 0, 0,
+ 0, 0, 0, 252, 127, 0, 0, 0, 0, 0,
+ 0, 0, 0, 245, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 192, 255, 6, 0, 0, 0, 0,
+ 0, 0, 0, 48, 255, 30, 0, 0, 0, 0,
+ 0, 0, 0, 0, 248, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 176, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 252, 95, 0, 0, 0,
+ 0, 0, 0, 0, 0, 193, 255, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 135, 23, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 128, 255, 10, 0, 0, 0, 0, 0,
+ 0, 0, 0, 247, 191, 0, 0, 0, 0, 0,
+ 0, 0, 0, 144, 255, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 143, 0, 0, 0, 0,
+ 0, 0, 0, 0, 225, 255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 252, 111, 0, 0, 0,
+ 0, 0, 0, 0, 0, 244, 239, 0, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 4, 0, 0,
+ 0, 0, 0, 0, 0, 128, 255, 10, 0, 0,
+ 0, 0, 0, 0, 0, 48, 255, 14, 0, 0,
+ 0, 0, 0, 0, 0, 0, 255, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 253, 79, 0, 0,
+ 0, 0, 0, 0, 0, 0, 251, 111, 0, 0,
+ 0, 0, 0, 0, 0, 0, 250, 127, 0, 0,
+ 0, 0, 0, 0, 0, 0, 250, 127, 0, 0,
+ 0, 0, 0, 0, 0, 0, 251, 111, 0, 0,
+ 0, 0, 0, 0, 0, 0, 252, 95, 0, 0,
+ 0, 0, 0, 0, 0, 0, 254, 63, 0, 0,
+ 0, 0, 0, 0, 0, 16, 255, 31, 0, 0,
+ 0, 0, 0, 0, 0, 80, 255, 13, 0, 0,
+ 0, 0, 0, 0, 0, 160, 255, 8, 0, 0,
+ 0, 0, 0, 0, 0, 241, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 247, 191, 0, 0, 0,
+ 0, 0, 0, 0, 16, 255, 63, 0, 0, 0,
+ 0, 0, 0, 0, 144, 255, 10, 0, 0, 0,
+ 0, 0, 0, 0, 244, 223, 0, 0, 0, 0,
+ 0, 0, 0, 32, 254, 63, 0, 0, 0, 0,
+ 0, 0, 0, 209, 255, 4, 0, 0, 0, 0,
+ 0, 0, 16, 253, 79, 0, 0, 0, 0, 0,
+ 0, 0, 96, 136, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 247, 223, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 244, 159, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 127, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 16, 0,
+ 0, 246, 107, 1, 240, 79, 0, 148, 221, 0,
+ 0, 249, 255, 223, 232, 143, 251, 255, 255, 0,
+ 0, 251, 255, 255, 255, 255, 255, 255, 255, 1,
+ 0, 33, 83, 118, 253, 255, 104, 69, 19, 0,
+ 0, 0, 0, 64, 255, 255, 9, 0, 0, 0,
+ 0, 0, 0, 225, 191, 247, 95, 0, 0, 0,
+ 0, 0, 0, 251, 79, 241, 255, 2, 0, 0,
+ 0, 0, 96, 255, 13, 128, 255, 12, 0, 0,
+ 0, 0, 242, 255, 6, 16, 255, 143, 0, 0,
+ 0, 0, 162, 255, 0, 0, 249, 93, 0, 0,
+ 0, 0, 0, 99, 0, 0, 113, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 176, 75, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 247, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 247, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 132, 136, 136, 249, 191, 136, 136, 120, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 80, 85, 5, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 14, 0, 0, 0,
+ 0, 0, 0, 0, 242, 255, 10, 0, 0, 0,
+ 0, 0, 0, 0, 245, 255, 5, 0, 0, 0,
+ 0, 0, 0, 0, 248, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 254, 79, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 80, 255, 7, 0, 0, 0, 0,
+ 0, 0, 0, 144, 255, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 211, 221, 221, 221, 221, 157, 0, 0,
+ 0, 0, 244, 255, 255, 255, 255, 175, 0, 0,
+ 0, 0, 244, 255, 255, 255, 255, 175, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 129, 73, 0, 0, 0, 0,
+ 0, 0, 0, 0, 254, 255, 5, 0, 0, 0,
+ 0, 0, 0, 48, 255, 255, 10, 0, 0, 0,
+ 0, 0, 0, 64, 255, 255, 10, 0, 0, 0,
+ 0, 0, 0, 16, 255, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 230, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 64, 255, 10, 0,
+ 0, 0, 0, 0, 0, 0, 176, 255, 3, 0,
+ 0, 0, 0, 0, 0, 0, 242, 223, 0, 0,
+ 0, 0, 0, 0, 0, 0, 248, 111, 0, 0,
+ 0, 0, 0, 0, 0, 0, 254, 15, 0, 0,
+ 0, 0, 0, 0, 0, 96, 255, 9, 0, 0,
+ 0, 0, 0, 0, 0, 192, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 243, 191, 0, 0, 0,
+ 0, 0, 0, 0, 0, 250, 95, 0, 0, 0,
+ 0, 0, 0, 0, 16, 255, 14, 0, 0, 0,
+ 0, 0, 0, 0, 112, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 208, 255, 1, 0, 0, 0,
+ 0, 0, 0, 0, 244, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 63, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 13, 0, 0, 0, 0,
+ 0, 0, 0, 128, 255, 6, 0, 0, 0, 0,
+ 0, 0, 0, 224, 255, 0, 0, 0, 0, 0,
+ 0, 0, 0, 246, 159, 0, 0, 0, 0, 0,
+ 0, 0, 0, 252, 47, 0, 0, 0, 0, 0,
+ 0, 0, 48, 255, 11, 0, 0, 0, 0, 0,
+ 0, 0, 160, 255, 5, 0, 0, 0, 0, 0,
+ 0, 0, 241, 239, 0, 0, 0, 0, 0, 0,
+ 0, 0, 247, 127, 0, 0, 0, 0, 0, 0,
+ 0, 0, 253, 31, 0, 0, 0, 0, 0, 0,
+ 0, 64, 255, 10, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 113, 236, 223, 41, 0, 0, 0,
+ 0, 0, 64, 254, 255, 255, 255, 7, 0, 0,
+ 0, 0, 242, 255, 191, 235, 255, 111, 0, 0,
+ 0, 0, 252, 191, 1, 0, 247, 255, 2, 0,
+ 0, 64, 255, 13, 0, 0, 144, 255, 9, 0,
+ 0, 160, 255, 6, 0, 0, 16, 255, 15, 0,
+ 0, 224, 255, 1, 0, 0, 0, 251, 79, 0,
+ 0, 242, 239, 0, 0, 0, 0, 248, 143, 0,
+ 0, 244, 191, 0, 0, 0, 0, 245, 175, 0,
+ 0, 246, 175, 0, 0, 0, 0, 243, 207, 0,
+ 0, 247, 159, 0, 0, 0, 0, 242, 223, 0,
+ 0, 248, 143, 0, 0, 0, 0, 242, 239, 0,
+ 0, 248, 143, 0, 0, 0, 0, 241, 255, 0,
+ 0, 248, 143, 0, 0, 0, 0, 242, 239, 0,
+ 0, 247, 159, 0, 0, 0, 0, 242, 223, 0,
+ 0, 246, 175, 0, 0, 0, 0, 243, 207, 0,
+ 0, 244, 191, 0, 0, 0, 0, 245, 175, 0,
+ 0, 242, 239, 0, 0, 0, 0, 248, 143, 0,
+ 0, 224, 255, 1, 0, 0, 0, 251, 95, 0,
+ 0, 144, 255, 6, 0, 0, 16, 255, 15, 0,
+ 0, 48, 255, 13, 0, 0, 128, 255, 10, 0,
+ 0, 0, 251, 191, 1, 0, 247, 255, 3, 0,
+ 0, 0, 226, 255, 191, 234, 255, 143, 0, 0,
+ 0, 0, 48, 254, 255, 255, 255, 8, 0, 0,
+ 0, 0, 0, 113, 236, 223, 57, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 128, 255, 9, 0, 0, 0,
+ 0, 0, 0, 16, 251, 255, 9, 0, 0, 0,
+ 0, 0, 0, 210, 255, 255, 9, 0, 0, 0,
+ 0, 0, 80, 255, 191, 255, 9, 0, 0, 0,
+ 0, 0, 248, 255, 55, 255, 9, 0, 0, 0,
+ 0, 16, 254, 111, 64, 255, 9, 0, 0, 0,
+ 0, 0, 227, 4, 64, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 80, 255, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 165, 253, 223, 57, 0, 0, 0,
+ 0, 0, 213, 255, 255, 255, 255, 8, 0, 0,
+ 0, 144, 255, 255, 172, 235, 255, 143, 0, 0,
+ 0, 160, 255, 25, 0, 0, 249, 255, 2, 0,
+ 0, 0, 58, 0, 0, 0, 192, 255, 7, 0,
+ 0, 0, 0, 0, 0, 0, 96, 255, 11, 0,
+ 0, 0, 0, 0, 0, 0, 64, 255, 12, 0,
+ 0, 0, 0, 0, 0, 0, 80, 255, 10, 0,
+ 0, 0, 0, 0, 0, 0, 112, 255, 8, 0,
+ 0, 0, 0, 0, 0, 0, 192, 255, 3, 0,
+ 0, 0, 0, 0, 0, 0, 244, 239, 0, 0,
+ 0, 0, 0, 0, 0, 0, 253, 111, 0, 0,
+ 0, 0, 0, 0, 0, 160, 255, 11, 0, 0,
+ 0, 0, 0, 0, 0, 247, 239, 1, 0, 0,
+ 0, 0, 0, 0, 64, 255, 63, 0, 0, 0,
+ 0, 0, 0, 0, 243, 255, 5, 0, 0, 0,
+ 0, 0, 0, 32, 254, 127, 0, 0, 0, 0,
+ 0, 0, 0, 225, 255, 9, 0, 0, 0, 0,
+ 0, 0, 16, 253, 175, 0, 0, 0, 0, 0,
+ 0, 0, 192, 255, 11, 0, 0, 0, 0, 0,
+ 0, 0, 251, 207, 0, 0, 0, 0, 0, 0,
+ 0, 144, 255, 29, 0, 0, 0, 0, 0, 0,
+ 0, 245, 255, 238, 238, 238, 238, 238, 174, 0,
+ 0, 246, 255, 255, 255, 255, 255, 255, 207, 0,
+ 0, 246, 255, 255, 255, 255, 255, 255, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 64, 217, 254, 206, 41, 0, 0, 0,
+ 0, 64, 253, 255, 255, 255, 255, 9, 0, 0,
+ 0, 246, 255, 239, 171, 252, 255, 159, 0, 0,
+ 0, 225, 159, 2, 0, 16, 249, 255, 3, 0,
+ 0, 48, 2, 0, 0, 0, 176, 255, 8, 0,
+ 0, 0, 0, 0, 0, 0, 96, 255, 11, 0,
+ 0, 0, 0, 0, 0, 0, 96, 255, 11, 0,
+ 0, 0, 0, 0, 0, 0, 144, 255, 9, 0,
+ 0, 0, 0, 0, 0, 0, 242, 255, 4, 0,
+ 0, 0, 0, 0, 0, 80, 254, 175, 0, 0,
+ 0, 0, 16, 153, 169, 254, 255, 10, 0, 0,
+ 0, 0, 32, 255, 255, 239, 57, 0, 0, 0,
+ 0, 0, 32, 255, 255, 255, 157, 3, 0, 0,
+ 0, 0, 0, 0, 16, 115, 254, 159, 0, 0,
+ 0, 0, 0, 0, 0, 0, 176, 255, 9, 0,
+ 0, 0, 0, 0, 0, 0, 16, 255, 31, 0,
+ 0, 0, 0, 0, 0, 0, 0, 251, 111, 0,
+ 0, 0, 0, 0, 0, 0, 0, 249, 127, 0,
+ 0, 0, 0, 0, 0, 0, 0, 251, 127, 0,
+ 0, 0, 0, 0, 0, 0, 0, 254, 79, 0,
+ 0, 1, 0, 0, 0, 0, 128, 255, 15, 0,
+ 0, 172, 4, 0, 0, 16, 249, 255, 8, 0,
+ 0, 253, 255, 172, 169, 252, 255, 191, 0, 0,
+ 0, 251, 255, 255, 255, 255, 255, 8, 0, 0,
+ 0, 48, 184, 254, 255, 190, 23, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64, 255, 47, 0, 0,
+ 0, 0, 0, 0, 0, 224, 255, 47, 0, 0,
+ 0, 0, 0, 0, 0, 249, 255, 47, 0, 0,
+ 0, 0, 0, 0, 48, 255, 252, 47, 0, 0,
+ 0, 0, 0, 0, 208, 207, 249, 47, 0, 0,
+ 0, 0, 0, 0, 248, 95, 250, 47, 0, 0,
+ 0, 0, 0, 32, 255, 12, 250, 47, 0, 0,
+ 0, 0, 0, 192, 255, 2, 251, 47, 0, 0,
+ 0, 0, 0, 247, 127, 0, 251, 47, 0, 0,
+ 0, 0, 16, 255, 12, 0, 252, 47, 0, 0,
+ 0, 0, 176, 255, 3, 0, 252, 47, 0, 0,
+ 0, 0, 245, 143, 0, 0, 252, 47, 0, 0,
+ 0, 16, 254, 13, 0, 0, 252, 47, 0, 0,
+ 0, 160, 255, 3, 0, 0, 252, 47, 0, 0,
+ 0, 244, 159, 0, 0, 0, 252, 47, 0, 0,
+ 0, 254, 14, 0, 0, 0, 252, 47, 0, 0,
+ 144, 255, 4, 0, 0, 0, 252, 47, 0, 0,
+ 240, 255, 255, 255, 255, 255, 255, 255, 255, 11,
+ 240, 255, 255, 255, 255, 255, 255, 255, 255, 11,
+ 192, 221, 221, 221, 221, 221, 255, 223, 221, 8,
+ 0, 0, 0, 0, 0, 0, 252, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 252, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 252, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 252, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 252, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 252, 255, 255, 255, 255, 191, 0, 0,
+ 0, 0, 253, 255, 255, 255, 255, 191, 0, 0,
+ 0, 0, 254, 223, 221, 221, 221, 157, 0, 0,
+ 0, 0, 255, 13, 0, 0, 0, 0, 0, 0,
+ 0, 16, 255, 12, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 10, 0, 0, 0, 0, 0, 0,
+ 0, 48, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 80, 255, 7, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 6, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 120, 152, 121, 3, 0, 0, 0,
+ 0, 128, 255, 255, 255, 255, 223, 4, 0, 0,
+ 0, 96, 255, 255, 255, 255, 255, 127, 0, 0,
+ 0, 0, 83, 19, 0, 114, 254, 255, 5, 0,
+ 0, 0, 0, 0, 0, 0, 192, 255, 13, 0,
+ 0, 0, 0, 0, 0, 0, 32, 255, 63, 0,
+ 0, 0, 0, 0, 0, 0, 0, 252, 111, 0,
+ 0, 0, 0, 0, 0, 0, 0, 250, 127, 0,
+ 0, 0, 0, 0, 0, 0, 0, 250, 127, 0,
+ 0, 0, 0, 0, 0, 0, 0, 251, 95, 0,
+ 0, 0, 0, 0, 0, 0, 16, 255, 31, 0,
+ 0, 0, 0, 0, 0, 0, 144, 255, 12, 0,
+ 0, 226, 22, 0, 0, 16, 249, 255, 4, 0,
+ 0, 242, 255, 189, 170, 252, 255, 127, 0, 0,
+ 0, 225, 255, 255, 255, 255, 239, 5, 0, 0,
+ 0, 0, 166, 253, 255, 190, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 97, 219, 254, 206, 0, 0,
+ 0, 0, 0, 112, 255, 255, 255, 255, 0, 0,
+ 0, 0, 0, 251, 255, 191, 153, 202, 0, 0,
+ 0, 0, 160, 255, 110, 0, 0, 0, 0, 0,
+ 0, 0, 245, 223, 2, 0, 0, 0, 0, 0,
+ 0, 0, 253, 63, 0, 0, 0, 0, 0, 0,
+ 0, 64, 255, 10, 0, 0, 0, 0, 0, 0,
+ 0, 144, 255, 5, 0, 0, 0, 0, 0, 0,
+ 0, 208, 255, 1, 0, 0, 0, 0, 0, 0,
+ 0, 240, 223, 16, 216, 255, 157, 2, 0, 0,
+ 0, 243, 207, 226, 255, 255, 255, 111, 0, 0,
+ 0, 244, 191, 253, 141, 135, 253, 255, 5, 0,
+ 0, 245, 255, 111, 0, 0, 128, 255, 14, 0,
+ 0, 246, 255, 7, 0, 0, 0, 252, 95, 0,
+ 0, 246, 223, 0, 0, 0, 0, 245, 175, 0,
+ 0, 245, 175, 0, 0, 0, 0, 242, 207, 0,
+ 0, 244, 159, 0, 0, 0, 0, 241, 223, 0,
+ 0, 242, 191, 0, 0, 0, 0, 242, 207, 0,
+ 0, 240, 239, 0, 0, 0, 0, 244, 191, 0,
+ 0, 160, 255, 5, 0, 0, 0, 248, 127, 0,
+ 0, 64, 255, 30, 0, 0, 16, 254, 47, 0,
+ 0, 0, 251, 207, 2, 0, 194, 255, 11, 0,
+ 0, 0, 225, 255, 191, 186, 255, 239, 1, 0,
+ 0, 0, 32, 253, 255, 255, 255, 45, 0, 0,
+ 0, 0, 0, 96, 235, 239, 107, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 250, 255, 255, 255, 255, 255, 255, 255, 0,
+ 0, 250, 255, 255, 255, 255, 255, 255, 255, 0,
+ 0, 216, 221, 221, 221, 221, 221, 253, 239, 0,
+ 0, 0, 0, 0, 0, 0, 0, 246, 143, 0,
+ 0, 0, 0, 0, 0, 0, 0, 253, 47, 0,
+ 0, 0, 0, 0, 0, 0, 48, 255, 11, 0,
+ 0, 0, 0, 0, 0, 0, 160, 255, 5, 0,
+ 0, 0, 0, 0, 0, 0, 241, 239, 0, 0,
+ 0, 0, 0, 0, 0, 0, 248, 143, 0, 0,
+ 0, 0, 0, 0, 0, 0, 254, 31, 0, 0,
+ 0, 0, 0, 0, 0, 80, 255, 11, 0, 0,
+ 0, 0, 0, 0, 0, 192, 255, 4, 0, 0,
+ 0, 0, 0, 0, 0, 242, 223, 0, 0, 0,
+ 0, 0, 0, 0, 0, 249, 127, 0, 0, 0,
+ 0, 0, 0, 0, 16, 255, 31, 0, 0, 0,
+ 0, 0, 0, 0, 112, 255, 10, 0, 0, 0,
+ 0, 0, 0, 0, 208, 255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 244, 223, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 111, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 15, 0, 0, 0, 0,
+ 0, 0, 0, 128, 255, 9, 0, 0, 0, 0,
+ 0, 0, 0, 224, 255, 3, 0, 0, 0, 0,
+ 0, 0, 0, 246, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 253, 111, 0, 0, 0, 0, 0,
+ 0, 0, 48, 255, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 146, 253, 239, 91, 0, 0, 0,
+ 0, 0, 128, 255, 255, 255, 255, 45, 0, 0,
+ 0, 0, 248, 255, 173, 202, 255, 239, 1, 0,
+ 0, 32, 255, 127, 0, 0, 211, 255, 8, 0,
+ 0, 112, 255, 10, 0, 0, 64, 255, 13, 0,
+ 0, 144, 255, 6, 0, 0, 0, 255, 15, 0,
+ 0, 128, 255, 6, 0, 0, 0, 255, 15, 0,
+ 0, 80, 255, 9, 0, 0, 48, 255, 12, 0,
+ 0, 0, 254, 31, 0, 0, 176, 255, 6, 0,
+ 0, 0, 246, 223, 2, 0, 250, 191, 0, 0,
+ 0, 0, 128, 255, 143, 213, 255, 10, 0, 0,
+ 0, 0, 0, 245, 255, 255, 95, 0, 0, 0,
+ 0, 0, 16, 250, 255, 255, 191, 2, 0, 0,
+ 0, 0, 227, 255, 8, 179, 255, 79, 0, 0,
+ 0, 32, 254, 95, 0, 0, 246, 255, 4, 0,
+ 0, 176, 255, 7, 0, 0, 64, 255, 30, 0,
+ 0, 241, 239, 0, 0, 0, 0, 248, 127, 0,
+ 0, 245, 175, 0, 0, 0, 0, 243, 191, 0,
+ 0, 246, 159, 0, 0, 0, 0, 242, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 245, 191, 0,
+ 0, 241, 255, 1, 0, 0, 0, 251, 127, 0,
+ 0, 176, 255, 28, 0, 0, 144, 255, 31, 0,
+ 0, 32, 255, 255, 155, 185, 255, 255, 5, 0,
+ 0, 0, 211, 255, 255, 255, 255, 94, 0, 0,
+ 0, 0, 0, 165, 254, 239, 123, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 163, 253, 223, 40, 0, 0, 0,
+ 0, 0, 160, 255, 255, 255, 255, 6, 0, 0,
+ 0, 0, 250, 255, 173, 234, 255, 111, 0, 0,
+ 0, 80, 255, 95, 0, 0, 247, 255, 2, 0,
+ 0, 208, 255, 5, 0, 0, 112, 255, 10, 0,
+ 0, 241, 239, 0, 0, 0, 0, 253, 31, 0,
+ 0, 245, 175, 0, 0, 0, 0, 247, 95, 0,
+ 0, 246, 143, 0, 0, 0, 0, 244, 143, 0,
+ 0, 246, 143, 0, 0, 0, 0, 243, 191, 0,
+ 0, 245, 159, 0, 0, 0, 0, 244, 207, 0,
+ 0, 242, 239, 0, 0, 0, 0, 251, 223, 0,
+ 0, 208, 255, 7, 0, 0, 112, 255, 207, 0,
+ 0, 80, 255, 159, 2, 64, 251, 253, 207, 0,
+ 0, 0, 248, 255, 255, 255, 223, 245, 191, 0,
+ 0, 0, 80, 253, 255, 255, 26, 246, 159, 0,
+ 0, 0, 0, 48, 101, 20, 0, 248, 111, 0,
+ 0, 0, 0, 0, 0, 0, 0, 251, 79, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255, 15, 0,
+ 0, 0, 0, 0, 0, 0, 96, 255, 10, 0,
+ 0, 0, 0, 0, 0, 0, 224, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 250, 191, 0, 0,
+ 0, 0, 0, 0, 0, 195, 255, 46, 0, 0,
+ 0, 0, 168, 137, 218, 255, 255, 3, 0, 0,
+ 0, 0, 249, 255, 255, 255, 43, 0, 0, 0,
+ 0, 0, 231, 255, 206, 56, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 212, 143, 0, 0, 0, 0,
+ 0, 0, 0, 0, 252, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 254, 255, 4, 0, 0, 0,
+ 0, 0, 0, 0, 251, 255, 1, 0, 0, 0,
+ 0, 0, 0, 0, 145, 90, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 145, 91, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 255, 1, 0, 0, 0,
+ 0, 0, 0, 0, 254, 255, 4, 0, 0, 0,
+ 0, 0, 0, 0, 252, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 212, 143, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 210, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 250, 255, 4, 0, 0, 0,
+ 0, 0, 0, 0, 252, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 249, 255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 145, 107, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 249, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 252, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 111, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 80, 255, 11, 0, 0, 0, 0,
+ 0, 0, 0, 128, 255, 5, 0, 0, 0, 0,
+ 0, 0, 0, 192, 239, 0, 0, 0, 0, 0,
+ 0, 0, 0, 240, 143, 0, 0, 0, 0, 0,
+ 0, 0, 0, 129, 24, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 130, 0,
+ 0, 0, 0, 0, 0, 0, 0, 162, 223, 0,
+ 0, 0, 0, 0, 0, 0, 162, 255, 223, 0,
+ 0, 0, 0, 0, 0, 162, 255, 255, 25, 0,
+ 0, 0, 0, 0, 162, 255, 255, 24, 0, 0,
+ 0, 0, 0, 162, 255, 255, 24, 0, 0, 0,
+ 0, 0, 162, 255, 239, 24, 0, 0, 0, 0,
+ 0, 162, 255, 239, 7, 0, 0, 0, 0, 0,
+ 0, 247, 255, 8, 0, 0, 0, 0, 0, 0,
+ 0, 245, 255, 143, 1, 0, 0, 0, 0, 0,
+ 0, 16, 249, 255, 143, 1, 0, 0, 0, 0,
+ 0, 0, 16, 249, 255, 159, 1, 0, 0, 0,
+ 0, 0, 0, 16, 249, 255, 159, 2, 0, 0,
+ 0, 0, 0, 0, 16, 249, 255, 159, 2, 0,
+ 0, 0, 0, 0, 0, 16, 249, 255, 159, 0,
+ 0, 0, 0, 0, 0, 0, 16, 249, 223, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 217, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 131, 136, 136, 136, 136, 136, 136, 120, 0,
+ 0, 247, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 247, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 132, 136, 136, 136, 136, 136, 136, 120, 0,
+ 0, 247, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 247, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 85, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 247, 93, 0, 0, 0, 0, 0, 0, 0,
+ 0, 247, 255, 93, 0, 0, 0, 0, 0, 0,
+ 0, 96, 253, 255, 93, 0, 0, 0, 0, 0,
+ 0, 0, 80, 253, 255, 93, 0, 0, 0, 0,
+ 0, 0, 0, 80, 253, 255, 93, 0, 0, 0,
+ 0, 0, 0, 0, 80, 253, 255, 93, 0, 0,
+ 0, 0, 0, 0, 0, 64, 252, 255, 77, 0,
+ 0, 0, 0, 0, 0, 0, 64, 254, 223, 0,
+ 0, 0, 0, 0, 0, 0, 213, 255, 175, 0,
+ 0, 0, 0, 0, 0, 214, 255, 207, 4, 0,
+ 0, 0, 0, 0, 214, 255, 207, 4, 0, 0,
+ 0, 0, 0, 230, 255, 207, 4, 0, 0, 0,
+ 0, 0, 230, 255, 207, 4, 0, 0, 0, 0,
+ 0, 228, 255, 207, 4, 0, 0, 0, 0, 0,
+ 0, 247, 207, 4, 0, 0, 0, 0, 0, 0,
+ 0, 199, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 81, 201, 254, 239, 107, 1, 0, 0,
+ 0, 160, 255, 255, 255, 255, 255, 94, 0, 0,
+ 0, 208, 255, 255, 205, 236, 255, 255, 6, 0,
+ 0, 96, 142, 4, 0, 0, 179, 255, 31, 0,
+ 0, 0, 0, 0, 0, 0, 0, 252, 111, 0,
+ 0, 0, 0, 0, 0, 0, 0, 246, 143, 0,
+ 0, 0, 0, 0, 0, 0, 0, 245, 143, 0,
+ 0, 0, 0, 0, 0, 0, 0, 248, 111, 0,
+ 0, 0, 0, 0, 0, 0, 0, 254, 31, 0,
+ 0, 0, 0, 0, 0, 0, 176, 255, 10, 0,
+ 0, 0, 0, 0, 0, 16, 252, 207, 0, 0,
+ 0, 0, 0, 0, 0, 228, 255, 11, 0, 0,
+ 0, 0, 0, 0, 96, 255, 143, 0, 0, 0,
+ 0, 0, 0, 0, 244, 255, 5, 0, 0, 0,
+ 0, 0, 0, 0, 252, 79, 0, 0, 0, 0,
+ 0, 0, 0, 16, 255, 11, 0, 0, 0, 0,
+ 0, 0, 0, 48, 255, 7, 0, 0, 0, 0,
+ 0, 0, 0, 32, 153, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 185, 5, 0, 0, 0, 0,
+ 0, 0, 0, 176, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 224, 255, 79, 0, 0, 0, 0,
+ 0, 0, 0, 192, 255, 47, 0, 0, 0, 0,
+ 0, 0, 0, 64, 253, 8, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 80, 219, 239, 141, 2, 0, 0,
+ 0, 0, 64, 254, 255, 255, 255, 143, 0, 0,
+ 0, 0, 246, 255, 123, 101, 232, 255, 10, 0,
+ 0, 80, 255, 44, 0, 0, 0, 249, 143, 0,
+ 0, 241, 207, 0, 0, 0, 0, 160, 255, 2,
+ 0, 249, 30, 0, 0, 0, 0, 0, 254, 10,
+ 16, 255, 7, 0, 0, 34, 0, 0, 246, 15,
+ 96, 255, 0, 16, 249, 255, 223, 9, 241, 95,
+ 176, 175, 0, 209, 255, 255, 255, 31, 192, 143,
+ 240, 111, 0, 250, 111, 16, 250, 15, 144, 191,
+ 242, 63, 48, 255, 9, 0, 249, 15, 112, 207,
+ 244, 15, 128, 255, 3, 0, 250, 15, 96, 223,
+ 245, 15, 192, 239, 0, 0, 251, 14, 96, 239,
+ 246, 14, 224, 207, 0, 0, 252, 13, 96, 223,
+ 247, 13, 224, 191, 0, 0, 253, 12, 112, 207,
+ 246, 14, 224, 207, 0, 0, 255, 12, 128, 175,
+ 246, 15, 192, 223, 0, 32, 255, 12, 160, 127,
+ 244, 31, 128, 255, 2, 128, 255, 14, 224, 63,
+ 242, 79, 32, 255, 76, 246, 158, 127, 248, 13,
+ 224, 127, 0, 248, 255, 255, 68, 255, 255, 5,
+ 176, 223, 0, 112, 253, 76, 0, 231, 110, 0,
+ 80, 255, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 254, 13, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 160, 255, 44, 0, 0, 0, 32, 7, 0,
+ 0, 0, 250, 255, 124, 86, 150, 252, 14, 0,
+ 0, 0, 112, 255, 255, 255, 255, 255, 11, 0,
+ 0, 0, 0, 97, 219, 255, 206, 56, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 249, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 254, 255, 4, 0, 0, 0,
+ 0, 0, 0, 48, 255, 255, 9, 0, 0, 0,
+ 0, 0, 0, 144, 255, 254, 14, 0, 0, 0,
+ 0, 0, 0, 224, 223, 248, 63, 0, 0, 0,
+ 0, 0, 0, 243, 159, 244, 159, 0, 0, 0,
+ 0, 0, 0, 248, 95, 240, 239, 0, 0, 0,
+ 0, 0, 0, 253, 31, 176, 255, 3, 0, 0,
+ 0, 0, 32, 255, 11, 96, 255, 8, 0, 0,
+ 0, 0, 112, 255, 7, 16, 255, 13, 0, 0,
+ 0, 0, 192, 255, 2, 0, 252, 47, 0, 0,
+ 0, 0, 242, 223, 0, 0, 247, 143, 0, 0,
+ 0, 0, 247, 143, 0, 0, 242, 223, 0, 0,
+ 0, 0, 252, 63, 0, 0, 208, 255, 2, 0,
+ 0, 16, 255, 207, 204, 204, 236, 255, 7, 0,
+ 0, 96, 255, 255, 255, 255, 255, 255, 12, 0,
+ 0, 176, 255, 255, 255, 255, 255, 255, 31, 0,
+ 0, 241, 255, 0, 0, 0, 0, 249, 127, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 251, 95, 0, 0, 0, 0, 240, 255, 1,
+ 0, 255, 31, 0, 0, 0, 0, 160, 255, 6,
+ 80, 255, 12, 0, 0, 0, 0, 96, 255, 11,
+ 160, 255, 7, 0, 0, 0, 0, 16, 255, 31,
+ 240, 255, 2, 0, 0, 0, 0, 0, 252, 95,
+ 244, 223, 0, 0, 0, 0, 0, 0, 247, 191,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 252, 255, 255, 255, 239, 156, 4, 0, 0,
+ 0, 252, 255, 255, 255, 255, 255, 207, 2, 0,
+ 0, 252, 207, 187, 187, 219, 255, 255, 30, 0,
+ 0, 252, 95, 0, 0, 0, 129, 255, 159, 0,
+ 0, 252, 95, 0, 0, 0, 0, 248, 239, 0,
+ 0, 252, 95, 0, 0, 0, 0, 242, 255, 1,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 1,
+ 0, 252, 95, 0, 0, 0, 0, 243, 239, 0,
+ 0, 252, 95, 0, 0, 0, 0, 251, 127, 0,
+ 0, 252, 95, 0, 0, 16, 197, 255, 10, 0,
+ 0, 252, 255, 255, 255, 255, 255, 109, 0, 0,
+ 0, 252, 255, 255, 255, 255, 207, 23, 0, 0,
+ 0, 252, 207, 170, 170, 186, 254, 255, 9, 0,
+ 0, 252, 95, 0, 0, 0, 64, 253, 191, 0,
+ 0, 252, 95, 0, 0, 0, 0, 225, 255, 5,
+ 0, 252, 95, 0, 0, 0, 0, 144, 255, 11,
+ 0, 252, 95, 0, 0, 0, 0, 96, 255, 13,
+ 0, 252, 95, 0, 0, 0, 0, 112, 255, 13,
+ 0, 252, 95, 0, 0, 0, 0, 160, 255, 11,
+ 0, 252, 95, 0, 0, 0, 0, 242, 255, 7,
+ 0, 252, 95, 0, 0, 0, 64, 254, 239, 1,
+ 0, 252, 207, 187, 187, 203, 254, 255, 95, 0,
+ 0, 252, 255, 255, 255, 255, 255, 239, 4, 0,
+ 0, 252, 255, 255, 255, 255, 190, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 97, 219, 254, 222, 106, 1,
+ 0, 0, 0, 128, 255, 255, 255, 255, 255, 95,
+ 0, 0, 16, 253, 255, 255, 221, 254, 255, 31,
+ 0, 0, 209, 255, 207, 4, 0, 16, 181, 9,
+ 0, 0, 251, 255, 7, 0, 0, 0, 0, 0,
+ 0, 80, 255, 143, 0, 0, 0, 0, 0, 0,
+ 0, 192, 255, 12, 0, 0, 0, 0, 0, 0,
+ 0, 242, 255, 5, 0, 0, 0, 0, 0, 0,
+ 0, 246, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 249, 191, 0, 0, 0, 0, 0, 0, 0,
+ 0, 251, 143, 0, 0, 0, 0, 0, 0, 0,
+ 0, 252, 127, 0, 0, 0, 0, 0, 0, 0,
+ 0, 253, 111, 0, 0, 0, 0, 0, 0, 0,
+ 0, 252, 127, 0, 0, 0, 0, 0, 0, 0,
+ 0, 251, 143, 0, 0, 0, 0, 0, 0, 0,
+ 0, 250, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 247, 223, 0, 0, 0, 0, 0, 0, 0,
+ 0, 243, 255, 3, 0, 0, 0, 0, 0, 0,
+ 0, 224, 255, 10, 0, 0, 0, 0, 0, 0,
+ 0, 128, 255, 79, 0, 0, 0, 0, 0, 0,
+ 0, 16, 254, 255, 3, 0, 0, 0, 0, 0,
+ 0, 0, 244, 255, 159, 3, 0, 0, 99, 6,
+ 0, 0, 80, 255, 255, 255, 205, 253, 255, 10,
+ 0, 0, 0, 195, 255, 255, 255, 255, 255, 10,
+ 0, 0, 0, 0, 148, 236, 255, 206, 106, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 252, 255, 255, 223, 124, 3, 0, 0, 0,
+ 0, 252, 255, 255, 255, 255, 191, 2, 0, 0,
+ 0, 252, 207, 187, 236, 255, 255, 79, 0, 0,
+ 0, 252, 95, 0, 0, 114, 255, 255, 4, 0,
+ 0, 252, 95, 0, 0, 0, 209, 255, 30, 0,
+ 0, 252, 95, 0, 0, 0, 16, 254, 159, 0,
+ 0, 252, 95, 0, 0, 0, 0, 246, 255, 1,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 6,
+ 0, 252, 95, 0, 0, 0, 0, 160, 255, 10,
+ 0, 252, 95, 0, 0, 0, 0, 112, 255, 13,
+ 0, 252, 95, 0, 0, 0, 0, 80, 255, 14,
+ 0, 252, 95, 0, 0, 0, 0, 64, 255, 15,
+ 0, 252, 95, 0, 0, 0, 0, 64, 255, 15,
+ 0, 252, 95, 0, 0, 0, 0, 64, 255, 15,
+ 0, 252, 95, 0, 0, 0, 0, 80, 255, 14,
+ 0, 252, 95, 0, 0, 0, 0, 128, 255, 12,
+ 0, 252, 95, 0, 0, 0, 0, 192, 255, 8,
+ 0, 252, 95, 0, 0, 0, 0, 241, 255, 5,
+ 0, 252, 95, 0, 0, 0, 0, 249, 239, 0,
+ 0, 252, 95, 0, 0, 0, 64, 255, 143, 0,
+ 0, 252, 95, 0, 0, 0, 244, 255, 13, 0,
+ 0, 252, 95, 0, 0, 180, 255, 255, 3, 0,
+ 0, 252, 223, 203, 253, 255, 255, 62, 0, 0,
+ 0, 252, 255, 255, 255, 255, 159, 1, 0, 0,
+ 0, 252, 255, 255, 222, 106, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 255, 255, 255, 255, 255, 159, 0,
+ 0, 96, 255, 255, 255, 255, 255, 255, 159, 0,
+ 0, 96, 255, 206, 204, 204, 204, 204, 124, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 255, 255, 255, 255, 255, 15, 0,
+ 0, 96, 255, 255, 255, 255, 255, 255, 15, 0,
+ 0, 96, 255, 206, 204, 204, 204, 204, 11, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 96, 255, 206, 204, 204, 204, 204, 124, 0,
+ 0, 96, 255, 255, 255, 255, 255, 255, 159, 0,
+ 0, 96, 255, 255, 255, 255, 255, 255, 159, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 255, 255, 255, 255, 255, 255, 0,
+ 0, 0, 255, 255, 255, 255, 255, 255, 255, 0,
+ 0, 0, 255, 207, 204, 204, 204, 204, 204, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 255, 255, 255, 255, 255, 111, 0,
+ 0, 0, 255, 255, 255, 255, 255, 255, 111, 0,
+ 0, 0, 255, 207, 204, 204, 204, 204, 76, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 47, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 182, 253, 239, 123, 2, 0,
+ 0, 0, 0, 229, 255, 255, 255, 255, 127, 0,
+ 0, 0, 128, 255, 255, 223, 253, 255, 79, 0,
+ 0, 0, 247, 255, 77, 0, 0, 147, 12, 0,
+ 0, 32, 255, 191, 0, 0, 0, 0, 0, 0,
+ 0, 176, 255, 13, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 5, 0, 0, 0, 0, 0, 0,
+ 0, 246, 239, 0, 0, 0, 0, 0, 0, 0,
+ 0, 250, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 253, 127, 0, 0, 0, 0, 0, 0, 0,
+ 0, 255, 79, 0, 0, 0, 0, 0, 0, 0,
+ 0, 255, 79, 0, 0, 160, 204, 204, 204, 1,
+ 0, 255, 63, 0, 0, 208, 255, 255, 255, 2,
+ 0, 255, 63, 0, 0, 208, 255, 255, 255, 2,
+ 0, 255, 79, 0, 0, 0, 0, 224, 255, 2,
+ 0, 253, 111, 0, 0, 0, 0, 224, 255, 2,
+ 0, 250, 159, 0, 0, 0, 0, 224, 255, 2,
+ 0, 247, 223, 0, 0, 0, 0, 224, 255, 2,
+ 0, 242, 255, 2, 0, 0, 0, 224, 255, 2,
+ 0, 208, 255, 11, 0, 0, 0, 224, 255, 2,
+ 0, 64, 255, 127, 0, 0, 0, 224, 255, 2,
+ 0, 0, 251, 255, 42, 0, 0, 226, 255, 2,
+ 0, 0, 192, 255, 255, 206, 253, 255, 255, 2,
+ 0, 0, 16, 250, 255, 255, 255, 255, 239, 1,
+ 0, 0, 0, 48, 217, 254, 223, 139, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 255, 255, 255, 255, 255, 255, 255, 2,
+ 0, 252, 255, 255, 255, 255, 255, 255, 255, 2,
+ 0, 252, 223, 204, 204, 204, 204, 252, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64, 255, 255, 255, 255, 255, 255, 10, 0,
+ 0, 64, 255, 255, 255, 255, 255, 255, 10, 0,
+ 0, 16, 68, 68, 248, 207, 68, 68, 2, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 16, 68, 68, 248, 207, 68, 68, 2, 0,
+ 0, 64, 255, 255, 255, 255, 255, 255, 10, 0,
+ 0, 64, 255, 255, 255, 255, 255, 255, 10, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 3, 0,
+ 0, 0, 0, 0, 0, 0, 240, 255, 1, 0,
+ 0, 0, 0, 0, 0, 0, 245, 239, 0, 0,
+ 0, 0, 0, 0, 0, 32, 254, 143, 0, 0,
+ 0, 104, 2, 0, 0, 230, 255, 30, 0, 0,
+ 0, 251, 255, 205, 253, 255, 255, 3, 0, 0,
+ 0, 251, 255, 255, 255, 255, 61, 0, 0, 0,
+ 0, 113, 235, 255, 223, 90, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 255, 9, 0, 0, 0, 64, 255, 63,
+ 0, 128, 255, 9, 0, 0, 0, 225, 255, 6,
+ 0, 128, 255, 9, 0, 0, 0, 252, 159, 0,
+ 0, 128, 255, 9, 0, 0, 144, 255, 12, 0,
+ 0, 128, 255, 9, 0, 0, 246, 239, 1, 0,
+ 0, 128, 255, 9, 0, 48, 255, 63, 0, 0,
+ 0, 128, 255, 9, 0, 225, 255, 6, 0, 0,
+ 0, 128, 255, 9, 0, 251, 175, 0, 0, 0,
+ 0, 128, 255, 9, 128, 255, 12, 0, 0, 0,
+ 0, 128, 255, 9, 244, 239, 1, 0, 0, 0,
+ 0, 128, 255, 25, 254, 79, 0, 0, 0, 0,
+ 0, 128, 255, 185, 255, 95, 0, 0, 0, 0,
+ 0, 128, 255, 254, 255, 239, 0, 0, 0, 0,
+ 0, 128, 255, 255, 198, 255, 9, 0, 0, 0,
+ 0, 128, 255, 78, 48, 255, 63, 0, 0, 0,
+ 0, 128, 255, 9, 0, 248, 223, 0, 0, 0,
+ 0, 128, 255, 9, 0, 224, 255, 7, 0, 0,
+ 0, 128, 255, 9, 0, 64, 255, 47, 0, 0,
+ 0, 128, 255, 9, 0, 0, 250, 207, 0, 0,
+ 0, 128, 255, 9, 0, 0, 241, 255, 6, 0,
+ 0, 128, 255, 9, 0, 0, 96, 255, 30, 0,
+ 0, 128, 255, 9, 0, 0, 0, 252, 175, 0,
+ 0, 128, 255, 9, 0, 0, 0, 243, 255, 4,
+ 0, 128, 255, 9, 0, 0, 0, 128, 255, 14,
+ 0, 128, 255, 9, 0, 0, 0, 0, 254, 159,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 15, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 223, 221, 221, 221, 221, 109, 0,
+ 0, 32, 255, 255, 255, 255, 255, 255, 143, 0,
+ 0, 32, 255, 255, 255, 255, 255, 255, 143, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 255, 255, 1, 0, 0, 0, 252, 255, 8,
+ 32, 255, 255, 4, 0, 0, 0, 255, 255, 8,
+ 32, 255, 255, 7, 0, 0, 32, 255, 255, 8,
+ 32, 255, 253, 11, 0, 0, 80, 255, 253, 8,
+ 32, 255, 250, 14, 0, 0, 144, 207, 253, 8,
+ 32, 255, 248, 31, 0, 0, 192, 159, 254, 8,
+ 32, 255, 245, 79, 0, 0, 240, 95, 254, 8,
+ 32, 255, 213, 127, 0, 0, 243, 47, 255, 8,
+ 32, 255, 165, 191, 0, 0, 246, 14, 255, 8,
+ 32, 255, 118, 239, 0, 0, 249, 11, 255, 8,
+ 32, 255, 54, 255, 1, 0, 252, 8, 255, 8,
+ 32, 255, 6, 255, 4, 0, 255, 4, 255, 8,
+ 32, 255, 6, 252, 8, 48, 255, 1, 255, 8,
+ 32, 255, 6, 249, 11, 96, 223, 0, 255, 8,
+ 32, 255, 6, 246, 14, 144, 175, 0, 255, 8,
+ 32, 255, 6, 242, 31, 208, 111, 0, 255, 8,
+ 32, 255, 6, 240, 79, 240, 63, 0, 255, 8,
+ 32, 255, 6, 192, 143, 243, 15, 0, 255, 8,
+ 32, 255, 6, 128, 191, 246, 12, 0, 255, 8,
+ 32, 255, 6, 80, 239, 250, 9, 0, 255, 8,
+ 32, 255, 6, 16, 255, 254, 5, 0, 255, 8,
+ 32, 255, 6, 0, 254, 255, 2, 0, 255, 8,
+ 32, 255, 6, 0, 251, 239, 0, 0, 255, 8,
+ 32, 255, 6, 0, 247, 191, 0, 0, 255, 8,
+ 32, 255, 6, 0, 244, 127, 0, 0, 255, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 252, 255, 1, 0, 0, 0, 192, 255, 2,
+ 0, 252, 255, 7, 0, 0, 0, 192, 255, 2,
+ 0, 252, 255, 14, 0, 0, 0, 192, 255, 2,
+ 0, 252, 255, 111, 0, 0, 0, 192, 255, 2,
+ 0, 252, 238, 223, 0, 0, 0, 192, 255, 2,
+ 0, 252, 141, 255, 5, 0, 0, 192, 255, 2,
+ 0, 252, 30, 255, 12, 0, 0, 192, 255, 2,
+ 0, 252, 15, 249, 79, 0, 0, 192, 255, 2,
+ 0, 252, 15, 242, 191, 0, 0, 192, 255, 2,
+ 0, 252, 15, 160, 255, 3, 0, 192, 255, 2,
+ 0, 252, 31, 48, 255, 10, 0, 192, 255, 2,
+ 0, 252, 31, 0, 251, 47, 0, 192, 255, 2,
+ 0, 252, 31, 0, 244, 159, 0, 192, 255, 2,
+ 0, 252, 31, 0, 192, 255, 1, 192, 255, 2,
+ 0, 252, 31, 0, 80, 255, 8, 192, 255, 2,
+ 0, 252, 31, 0, 0, 253, 15, 176, 255, 2,
+ 0, 252, 31, 0, 0, 246, 127, 176, 255, 2,
+ 0, 252, 31, 0, 0, 224, 239, 160, 255, 2,
+ 0, 252, 31, 0, 0, 112, 255, 166, 255, 2,
+ 0, 252, 31, 0, 0, 0, 255, 157, 255, 2,
+ 0, 252, 31, 0, 0, 0, 248, 223, 255, 2,
+ 0, 252, 31, 0, 0, 0, 241, 255, 255, 2,
+ 0, 252, 31, 0, 0, 0, 144, 255, 255, 2,
+ 0, 252, 31, 0, 0, 0, 32, 255, 255, 2,
+ 0, 252, 31, 0, 0, 0, 0, 250, 255, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 147, 237, 223, 91, 0, 0, 0,
+ 0, 0, 161, 255, 255, 255, 255, 61, 0, 0,
+ 0, 0, 252, 255, 223, 237, 255, 255, 2, 0,
+ 0, 144, 255, 175, 2, 0, 229, 255, 13, 0,
+ 0, 242, 255, 9, 0, 0, 32, 255, 127, 0,
+ 0, 249, 239, 0, 0, 0, 0, 247, 239, 0,
+ 0, 254, 143, 0, 0, 0, 0, 240, 255, 4,
+ 32, 255, 63, 0, 0, 0, 0, 176, 255, 8,
+ 64, 255, 15, 0, 0, 0, 0, 128, 255, 11,
+ 112, 255, 13, 0, 0, 0, 0, 96, 255, 13,
+ 128, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 144, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 144, 255, 10, 0, 0, 0, 0, 48, 255, 15,
+ 144, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 128, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 112, 255, 13, 0, 0, 0, 0, 96, 255, 13,
+ 64, 255, 15, 0, 0, 0, 0, 128, 255, 11,
+ 32, 255, 63, 0, 0, 0, 0, 176, 255, 8,
+ 0, 254, 143, 0, 0, 0, 0, 240, 255, 3,
+ 0, 249, 239, 0, 0, 0, 0, 247, 239, 0,
+ 0, 242, 255, 9, 0, 0, 32, 255, 127, 0,
+ 0, 144, 255, 175, 1, 0, 228, 255, 13, 0,
+ 0, 0, 252, 255, 223, 237, 255, 239, 2, 0,
+ 0, 0, 161, 255, 255, 255, 255, 44, 0, 0,
+ 0, 0, 0, 147, 237, 223, 91, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 255, 255, 239, 123, 1, 0, 0,
+ 0, 241, 255, 255, 255, 255, 255, 143, 0, 0,
+ 0, 241, 255, 187, 187, 236, 255, 255, 10, 0,
+ 0, 241, 255, 0, 0, 0, 212, 255, 95, 0,
+ 0, 241, 255, 0, 0, 0, 0, 253, 191, 0,
+ 0, 241, 255, 0, 0, 0, 0, 245, 255, 0,
+ 0, 241, 255, 0, 0, 0, 0, 242, 255, 1,
+ 0, 241, 255, 0, 0, 0, 0, 241, 255, 2,
+ 0, 241, 255, 0, 0, 0, 0, 242, 255, 0,
+ 0, 241, 255, 0, 0, 0, 0, 246, 223, 0,
+ 0, 241, 255, 0, 0, 0, 16, 253, 143, 0,
+ 0, 241, 255, 0, 0, 0, 212, 255, 31, 0,
+ 0, 241, 255, 187, 187, 252, 255, 255, 4, 0,
+ 0, 241, 255, 255, 255, 255, 255, 61, 0, 0,
+ 0, 241, 255, 255, 255, 206, 73, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 147, 237, 223, 91, 0, 0, 0,
+ 0, 0, 161, 255, 255, 255, 255, 61, 0, 0,
+ 0, 0, 252, 255, 223, 237, 255, 239, 2, 0,
+ 0, 144, 255, 175, 2, 0, 229, 255, 13, 0,
+ 0, 242, 255, 9, 0, 0, 32, 255, 127, 0,
+ 0, 249, 239, 0, 0, 0, 0, 247, 239, 0,
+ 0, 254, 143, 0, 0, 0, 0, 240, 255, 3,
+ 32, 255, 63, 0, 0, 0, 0, 176, 255, 8,
+ 64, 255, 15, 0, 0, 0, 0, 128, 255, 11,
+ 112, 255, 13, 0, 0, 0, 0, 96, 255, 13,
+ 128, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 144, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 144, 255, 10, 0, 0, 0, 0, 48, 255, 15,
+ 144, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 128, 255, 11, 0, 0, 0, 0, 64, 255, 15,
+ 112, 255, 13, 0, 0, 0, 0, 96, 255, 13,
+ 64, 255, 15, 0, 0, 0, 0, 128, 255, 11,
+ 32, 255, 63, 0, 0, 0, 0, 176, 255, 8,
+ 0, 254, 143, 0, 0, 0, 0, 240, 255, 4,
+ 0, 249, 239, 0, 0, 0, 0, 247, 239, 0,
+ 0, 242, 255, 9, 0, 0, 32, 255, 143, 0,
+ 0, 144, 255, 175, 1, 0, 228, 255, 30, 0,
+ 0, 0, 252, 255, 223, 237, 255, 255, 3, 0,
+ 0, 0, 161, 255, 255, 255, 255, 62, 0, 0,
+ 0, 0, 0, 147, 237, 255, 255, 8, 0, 0,
+ 0, 0, 0, 0, 0, 48, 255, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 251, 223, 0, 0,
+ 0, 0, 0, 0, 0, 0, 242, 255, 11, 0,
+ 0, 0, 0, 0, 0, 0, 96, 255, 207, 1,
+ 0, 0, 0, 0, 0, 0, 0, 248, 255, 10,
+ 0, 0, 0, 0, 0, 0, 0, 112, 223, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 224, 255, 255, 255, 206, 73, 0, 0, 0,
+ 0, 224, 255, 255, 255, 255, 255, 61, 0, 0,
+ 0, 224, 255, 188, 187, 253, 255, 255, 3, 0,
+ 0, 224, 255, 3, 0, 0, 246, 255, 13, 0,
+ 0, 224, 255, 3, 0, 0, 64, 255, 63, 0,
+ 0, 224, 255, 3, 0, 0, 0, 253, 127, 0,
+ 0, 224, 255, 3, 0, 0, 0, 249, 159, 0,
+ 0, 224, 255, 3, 0, 0, 0, 249, 159, 0,
+ 0, 224, 255, 3, 0, 0, 0, 251, 143, 0,
+ 0, 224, 255, 3, 0, 0, 0, 254, 79, 0,
+ 0, 224, 255, 3, 0, 0, 144, 255, 13, 0,
+ 0, 224, 255, 3, 0, 81, 252, 255, 3, 0,
+ 0, 224, 255, 255, 255, 255, 255, 78, 0, 0,
+ 0, 224, 255, 255, 255, 255, 143, 1, 0, 0,
+ 0, 224, 255, 187, 187, 255, 79, 0, 0, 0,
+ 0, 224, 255, 3, 0, 248, 223, 0, 0, 0,
+ 0, 224, 255, 3, 0, 224, 255, 6, 0, 0,
+ 0, 224, 255, 3, 0, 96, 255, 30, 0, 0,
+ 0, 224, 255, 3, 0, 0, 253, 159, 0, 0,
+ 0, 224, 255, 3, 0, 0, 244, 255, 3, 0,
+ 0, 224, 255, 3, 0, 0, 176, 255, 12, 0,
+ 0, 224, 255, 3, 0, 0, 32, 255, 95, 0,
+ 0, 224, 255, 3, 0, 0, 0, 249, 239, 0,
+ 0, 224, 255, 3, 0, 0, 0, 241, 255, 8,
+ 0, 224, 255, 3, 0, 0, 0, 112, 255, 47,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 148, 237, 255, 206, 89, 1, 0,
+ 0, 0, 194, 255, 255, 255, 255, 255, 95, 0,
+ 0, 32, 254, 255, 223, 220, 255, 255, 31, 0,
+ 0, 176, 255, 94, 0, 0, 32, 182, 11, 0,
+ 0, 241, 255, 2, 0, 0, 0, 0, 0, 0,
+ 0, 244, 191, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 243, 223, 0, 0, 0, 0, 0, 0, 0,
+ 0, 240, 255, 5, 0, 0, 0, 0, 0, 0,
+ 0, 128, 255, 127, 0, 0, 0, 0, 0, 0,
+ 0, 0, 252, 255, 126, 1, 0, 0, 0, 0,
+ 0, 0, 160, 255, 255, 191, 4, 0, 0, 0,
+ 0, 0, 0, 196, 255, 255, 223, 6, 0, 0,
+ 0, 0, 0, 0, 146, 254, 255, 207, 1, 0,
+ 0, 0, 0, 0, 0, 80, 253, 255, 13, 0,
+ 0, 0, 0, 0, 0, 0, 96, 255, 127, 0,
+ 0, 0, 0, 0, 0, 0, 0, 246, 223, 0,
+ 0, 0, 0, 0, 0, 0, 0, 241, 255, 0,
+ 0, 0, 0, 0, 0, 0, 0, 240, 255, 0,
+ 0, 0, 0, 0, 0, 0, 0, 242, 239, 0,
+ 0, 0, 0, 0, 0, 0, 0, 250, 175, 0,
+ 0, 186, 38, 0, 0, 0, 179, 255, 63, 0,
+ 0, 250, 255, 223, 188, 252, 255, 255, 7, 0,
+ 0, 249, 255, 255, 255, 255, 255, 94, 0, 0,
+ 0, 64, 184, 253, 255, 222, 90, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 80, 255, 255, 255, 255, 255, 255, 255, 255, 10,
+ 80, 255, 255, 255, 255, 255, 255, 255, 255, 10,
+ 48, 204, 204, 204, 253, 255, 204, 204, 204, 8,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 254, 63, 0, 0, 0, 0, 208, 255, 4,
+ 0, 253, 79, 0, 0, 0, 0, 224, 255, 3,
+ 0, 251, 127, 0, 0, 0, 0, 241, 255, 1,
+ 0, 247, 223, 0, 0, 0, 0, 247, 239, 0,
+ 0, 242, 255, 6, 0, 0, 16, 254, 143, 0,
+ 0, 176, 255, 127, 1, 0, 212, 255, 31, 0,
+ 0, 16, 254, 255, 223, 236, 255, 255, 5, 0,
+ 0, 0, 210, 255, 255, 255, 255, 94, 0, 0,
+ 0, 0, 0, 165, 254, 239, 123, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 244, 239, 0, 0, 0, 0, 0, 0, 249, 191,
+ 240, 255, 4, 0, 0, 0, 0, 0, 254, 95,
+ 160, 255, 9, 0, 0, 0, 0, 48, 255, 31,
+ 80, 255, 14, 0, 0, 0, 0, 128, 255, 11,
+ 0, 255, 47, 0, 0, 0, 0, 208, 255, 6,
+ 0, 250, 127, 0, 0, 0, 0, 242, 255, 1,
+ 0, 245, 207, 0, 0, 0, 0, 247, 191, 0,
+ 0, 240, 255, 1, 0, 0, 0, 252, 111, 0,
+ 0, 176, 255, 6, 0, 0, 16, 255, 31, 0,
+ 0, 96, 255, 11, 0, 0, 80, 255, 12, 0,
+ 0, 16, 255, 31, 0, 0, 160, 255, 7, 0,
+ 0, 0, 251, 95, 0, 0, 240, 255, 1, 0,
+ 0, 0, 246, 175, 0, 0, 244, 207, 0, 0,
+ 0, 0, 241, 255, 0, 0, 249, 127, 0, 0,
+ 0, 0, 192, 255, 4, 0, 254, 47, 0, 0,
+ 0, 0, 96, 255, 9, 48, 255, 13, 0, 0,
+ 0, 0, 16, 255, 14, 128, 255, 7, 0, 0,
+ 0, 0, 0, 252, 47, 192, 255, 2, 0, 0,
+ 0, 0, 0, 247, 111, 241, 223, 0, 0, 0,
+ 0, 0, 0, 242, 175, 245, 143, 0, 0, 0,
+ 0, 0, 0, 208, 239, 249, 63, 0, 0, 0,
+ 0, 0, 0, 112, 255, 254, 13, 0, 0, 0,
+ 0, 0, 0, 32, 255, 255, 8, 0, 0, 0,
+ 0, 0, 0, 0, 253, 255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 248, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 254, 14, 0, 0, 0, 0, 0, 0, 128, 255,
+ 252, 15, 0, 0, 0, 0, 0, 0, 144, 255,
+ 250, 47, 0, 0, 0, 0, 0, 0, 176, 255,
+ 247, 79, 0, 0, 0, 0, 0, 0, 208, 255,
+ 245, 111, 0, 0, 0, 0, 0, 0, 224, 223,
+ 243, 143, 0, 0, 0, 0, 0, 0, 240, 191,
+ 241, 191, 0, 0, 0, 0, 0, 0, 241, 159,
+ 240, 223, 0, 0, 48, 35, 0, 0, 243, 127,
+ 208, 255, 0, 0, 246, 239, 0, 0, 245, 95,
+ 176, 255, 1, 0, 251, 255, 2, 0, 246, 63,
+ 128, 255, 3, 0, 255, 254, 7, 0, 248, 31,
+ 96, 255, 5, 48, 255, 248, 11, 0, 250, 15,
+ 64, 255, 7, 112, 207, 244, 15, 0, 251, 13,
+ 32, 255, 9, 192, 159, 240, 79, 0, 253, 11,
+ 0, 255, 10, 240, 79, 192, 143, 0, 255, 9,
+ 0, 254, 12, 244, 15, 128, 207, 0, 255, 7,
+ 0, 251, 13, 248, 12, 64, 255, 33, 255, 5,
+ 0, 249, 15, 252, 8, 0, 255, 69, 255, 3,
+ 0, 247, 31, 255, 4, 0, 251, 89, 255, 1,
+ 0, 245, 111, 255, 0, 0, 246, 125, 255, 0,
+ 0, 243, 175, 191, 0, 0, 242, 175, 223, 0,
+ 0, 241, 239, 127, 0, 0, 208, 239, 191, 0,
+ 0, 224, 255, 63, 0, 0, 144, 255, 159, 0,
+ 0, 192, 255, 15, 0, 0, 80, 255, 127, 0,
+ 0, 160, 255, 11, 0, 0, 0, 255, 95, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 80, 255, 30, 0, 0, 0, 0, 128, 255, 9,
+ 0, 251, 143, 0, 0, 0, 0, 242, 239, 1,
+ 0, 242, 255, 2, 0, 0, 0, 251, 111, 0,
+ 0, 128, 255, 11, 0, 0, 64, 255, 13, 0,
+ 0, 0, 254, 79, 0, 0, 208, 255, 3, 0,
+ 0, 0, 246, 223, 0, 0, 247, 175, 0, 0,
+ 0, 0, 192, 255, 6, 16, 255, 31, 0, 0,
+ 0, 0, 48, 255, 30, 144, 255, 7, 0, 0,
+ 0, 0, 0, 249, 159, 243, 223, 0, 0, 0,
+ 0, 0, 0, 241, 255, 253, 79, 0, 0, 0,
+ 0, 0, 0, 112, 255, 255, 11, 0, 0, 0,
+ 0, 0, 0, 0, 253, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 254, 255, 4, 0, 0, 0,
+ 0, 0, 0, 112, 255, 255, 13, 0, 0, 0,
+ 0, 0, 0, 241, 223, 251, 127, 0, 0, 0,
+ 0, 0, 0, 250, 95, 242, 239, 1, 0, 0,
+ 0, 0, 48, 255, 12, 160, 255, 9, 0, 0,
+ 0, 0, 192, 255, 3, 16, 255, 47, 0, 0,
+ 0, 0, 246, 175, 0, 0, 248, 191, 0, 0,
+ 0, 0, 254, 31, 0, 0, 225, 255, 5, 0,
+ 0, 128, 255, 8, 0, 0, 112, 255, 13, 0,
+ 0, 242, 239, 0, 0, 0, 0, 254, 127, 0,
+ 0, 250, 111, 0, 0, 0, 0, 245, 255, 1,
+ 64, 255, 13, 0, 0, 0, 0, 208, 255, 9,
+ 208, 255, 4, 0, 0, 0, 0, 64, 255, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 243, 255, 2, 0, 0, 0, 0, 0, 252, 143,
+ 160, 255, 10, 0, 0, 0, 0, 64, 255, 31,
+ 32, 255, 47, 0, 0, 0, 0, 192, 255, 8,
+ 0, 249, 175, 0, 0, 0, 0, 244, 239, 0,
+ 0, 241, 255, 2, 0, 0, 0, 252, 127, 0,
+ 0, 144, 255, 10, 0, 0, 64, 255, 14, 0,
+ 0, 16, 255, 47, 0, 0, 192, 255, 6, 0,
+ 0, 0, 248, 175, 0, 0, 244, 223, 0, 0,
+ 0, 0, 225, 255, 2, 0, 252, 95, 0, 0,
+ 0, 0, 112, 255, 10, 64, 255, 12, 0, 0,
+ 0, 0, 0, 254, 47, 192, 255, 4, 0, 0,
+ 0, 0, 0, 246, 175, 244, 191, 0, 0, 0,
+ 0, 0, 0, 224, 255, 253, 63, 0, 0, 0,
+ 0, 0, 0, 96, 255, 255, 10, 0, 0, 0,
+ 0, 0, 0, 0, 253, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 246, 207, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 245, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 255, 255, 255, 255, 255, 255, 255, 255, 5,
+ 0, 255, 255, 255, 255, 255, 255, 255, 255, 5,
+ 0, 220, 221, 221, 221, 221, 221, 253, 255, 3,
+ 0, 0, 0, 0, 0, 0, 0, 249, 175, 0,
+ 0, 0, 0, 0, 0, 0, 64, 255, 30, 0,
+ 0, 0, 0, 0, 0, 0, 224, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 249, 175, 0, 0,
+ 0, 0, 0, 0, 0, 64, 255, 30, 0, 0,
+ 0, 0, 0, 0, 0, 224, 255, 4, 0, 0,
+ 0, 0, 0, 0, 0, 249, 175, 0, 0, 0,
+ 0, 0, 0, 0, 64, 255, 30, 0, 0, 0,
+ 0, 0, 0, 0, 224, 255, 4, 0, 0, 0,
+ 0, 0, 0, 0, 249, 159, 0, 0, 0, 0,
+ 0, 0, 0, 64, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 224, 255, 4, 0, 0, 0, 0,
+ 0, 0, 0, 249, 159, 0, 0, 0, 0, 0,
+ 0, 0, 64, 255, 14, 0, 0, 0, 0, 0,
+ 0, 0, 224, 255, 4, 0, 0, 0, 0, 0,
+ 0, 0, 249, 159, 0, 0, 0, 0, 0, 0,
+ 0, 64, 255, 14, 0, 0, 0, 0, 0, 0,
+ 0, 224, 255, 4, 0, 0, 0, 0, 0, 0,
+ 0, 250, 159, 0, 0, 0, 0, 0, 0, 0,
+ 48, 255, 223, 221, 221, 221, 221, 221, 221, 8,
+ 80, 255, 255, 255, 255, 255, 255, 255, 255, 10,
+ 80, 255, 255, 255, 255, 255, 255, 255, 255, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 255, 255, 255, 159, 0, 0,
+ 0, 0, 0, 242, 255, 255, 255, 159, 0, 0,
+ 0, 0, 0, 242, 239, 136, 136, 88, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 255, 255, 255, 159, 0, 0,
+ 0, 0, 0, 242, 255, 255, 255, 159, 0, 0,
+ 0, 0, 0, 129, 136, 136, 136, 88, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64, 255, 10, 0, 0, 0, 0, 0, 0,
+ 0, 0, 253, 31, 0, 0, 0, 0, 0, 0,
+ 0, 0, 247, 127, 0, 0, 0, 0, 0, 0,
+ 0, 0, 241, 239, 0, 0, 0, 0, 0, 0,
+ 0, 0, 160, 255, 5, 0, 0, 0, 0, 0,
+ 0, 0, 48, 255, 11, 0, 0, 0, 0, 0,
+ 0, 0, 0, 252, 47, 0, 0, 0, 0, 0,
+ 0, 0, 0, 246, 159, 0, 0, 0, 0, 0,
+ 0, 0, 0, 224, 255, 0, 0, 0, 0, 0,
+ 0, 0, 0, 128, 255, 6, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 13, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 244, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 208, 255, 1, 0, 0, 0,
+ 0, 0, 0, 0, 112, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 16, 255, 14, 0, 0, 0,
+ 0, 0, 0, 0, 0, 250, 95, 0, 0, 0,
+ 0, 0, 0, 0, 0, 243, 191, 0, 0, 0,
+ 0, 0, 0, 0, 0, 192, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 96, 255, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 254, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 248, 111, 0, 0,
+ 0, 0, 0, 0, 0, 0, 242, 223, 0, 0,
+ 0, 0, 0, 0, 0, 0, 176, 255, 3, 0,
+ 0, 0, 0, 0, 0, 0, 64, 255, 10, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 243, 255, 255, 255, 159, 0, 0, 0,
+ 0, 0, 243, 255, 255, 255, 159, 0, 0, 0,
+ 0, 0, 129, 136, 136, 251, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 0, 0, 0, 247, 159, 0, 0, 0,
+ 0, 0, 243, 255, 255, 255, 159, 0, 0, 0,
+ 0, 0, 243, 255, 255, 255, 159, 0, 0, 0,
+ 0, 0, 129, 136, 136, 136, 72, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 129, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 249, 31, 0, 0, 0, 0,
+ 0, 0, 0, 16, 255, 159, 0, 0, 0, 0,
+ 0, 0, 0, 112, 255, 255, 2, 0, 0, 0,
+ 0, 0, 0, 224, 111, 253, 10, 0, 0, 0,
+ 0, 0, 0, 246, 14, 245, 47, 0, 0, 0,
+ 0, 0, 0, 253, 8, 208, 175, 0, 0, 0,
+ 0, 0, 64, 255, 2, 80, 255, 3, 0, 0,
+ 0, 0, 192, 191, 0, 0, 253, 11, 0, 0,
+ 0, 0, 243, 79, 0, 0, 245, 63, 0, 0,
+ 0, 0, 250, 13, 0, 0, 208, 191, 0, 0,
+ 0, 32, 255, 6, 0, 0, 80, 255, 3, 0,
+ 0, 144, 255, 0, 0, 0, 0, 253, 12, 0,
+ 0, 241, 143, 0, 0, 0, 0, 245, 79, 0,
+ 0, 247, 47, 0, 0, 0, 0, 208, 207, 0,
+ 0, 254, 11, 0, 0, 0, 0, 80, 255, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 112, 136, 5, 0, 0, 0, 0,
+ 0, 0, 0, 144, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 252, 159, 0, 0, 0, 0,
+ 0, 0, 0, 0, 226, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 32, 254, 12, 0, 0, 0,
+ 0, 0, 0, 0, 0, 226, 95, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 48, 184, 254, 239, 123, 1, 0, 0,
+ 0, 48, 252, 255, 255, 255, 255, 95, 0, 0,
+ 0, 16, 255, 239, 155, 201, 255, 255, 2, 0,
+ 0, 0, 153, 3, 0, 0, 227, 255, 9, 0,
+ 0, 0, 0, 0, 0, 0, 80, 255, 13, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255, 15, 0,
+ 0, 0, 0, 0, 0, 16, 17, 254, 15, 0,
+ 0, 0, 48, 201, 254, 255, 255, 255, 15, 0,
+ 0, 16, 251, 255, 255, 255, 255, 255, 15, 0,
+ 0, 208, 255, 143, 20, 0, 0, 255, 15, 0,
+ 0, 246, 255, 2, 0, 0, 0, 255, 15, 0,
+ 0, 250, 143, 0, 0, 0, 0, 255, 15, 0,
+ 0, 251, 111, 0, 0, 0, 64, 255, 15, 0,
+ 0, 250, 143, 0, 0, 0, 192, 255, 15, 0,
+ 0, 247, 239, 2, 0, 16, 251, 255, 15, 0,
+ 0, 241, 255, 175, 136, 251, 191, 251, 15, 0,
+ 0, 64, 255, 255, 255, 255, 10, 247, 15, 0,
+ 0, 0, 146, 253, 239, 74, 0, 243, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 159, 16, 216, 255, 141, 1, 0, 0,
+ 0, 246, 159, 228, 255, 255, 255, 78, 0, 0,
+ 0, 246, 191, 255, 174, 185, 255, 255, 3, 0,
+ 0, 246, 255, 111, 0, 0, 193, 255, 12, 0,
+ 0, 246, 255, 8, 0, 0, 16, 255, 79, 0,
+ 0, 246, 255, 2, 0, 0, 0, 249, 175, 0,
+ 0, 246, 239, 0, 0, 0, 0, 244, 223, 0,
+ 0, 246, 191, 0, 0, 0, 0, 242, 255, 0,
+ 0, 246, 175, 0, 0, 0, 0, 240, 255, 1,
+ 0, 246, 175, 0, 0, 0, 0, 240, 255, 1,
+ 0, 246, 175, 0, 0, 0, 0, 241, 255, 1,
+ 0, 246, 207, 0, 0, 0, 0, 242, 255, 0,
+ 0, 246, 239, 0, 0, 0, 0, 245, 223, 0,
+ 0, 246, 255, 2, 0, 0, 0, 249, 159, 0,
+ 0, 246, 255, 9, 0, 0, 16, 255, 79, 0,
+ 0, 246, 255, 127, 0, 0, 193, 255, 12, 0,
+ 0, 246, 223, 255, 174, 185, 255, 255, 3, 0,
+ 0, 246, 63, 247, 255, 255, 255, 78, 0, 0,
+ 0, 246, 15, 32, 217, 255, 141, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 183, 254, 223, 156, 5, 0,
+ 0, 0, 0, 248, 255, 255, 255, 255, 111, 0,
+ 0, 0, 176, 255, 255, 206, 220, 255, 15, 0,
+ 0, 0, 248, 255, 42, 0, 0, 80, 6, 0,
+ 0, 16, 255, 143, 0, 0, 0, 0, 0, 0,
+ 0, 128, 255, 13, 0, 0, 0, 0, 0, 0,
+ 0, 192, 255, 6, 0, 0, 0, 0, 0, 0,
+ 0, 240, 255, 2, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 241, 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 240, 255, 2, 0, 0, 0, 0, 0, 0,
+ 0, 208, 255, 6, 0, 0, 0, 0, 0, 0,
+ 0, 144, 255, 12, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 255, 25, 0, 0, 32, 55, 0,
+ 0, 0, 192, 255, 255, 189, 203, 255, 79, 0,
+ 0, 0, 0, 249, 255, 255, 255, 255, 79, 0,
+ 0, 0, 0, 32, 200, 254, 239, 156, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 181, 254, 174, 4, 243, 207, 0,
+ 0, 0, 176, 255, 255, 255, 159, 242, 207, 0,
+ 0, 0, 251, 255, 156, 201, 255, 250, 207, 0,
+ 0, 96, 255, 95, 0, 0, 227, 255, 207, 0,
+ 0, 208, 255, 7, 0, 0, 48, 255, 207, 0,
+ 0, 243, 255, 0, 0, 0, 0, 252, 207, 0,
+ 0, 246, 191, 0, 0, 0, 0, 248, 207, 0,
+ 0, 249, 143, 0, 0, 0, 0, 245, 207, 0,
+ 0, 250, 127, 0, 0, 0, 0, 244, 207, 0,
+ 0, 251, 111, 0, 0, 0, 0, 243, 207, 0,
+ 0, 250, 127, 0, 0, 0, 0, 244, 207, 0,
+ 0, 249, 143, 0, 0, 0, 0, 245, 207, 0,
+ 0, 247, 191, 0, 0, 0, 0, 247, 207, 0,
+ 0, 243, 255, 0, 0, 0, 0, 251, 207, 0,
+ 0, 224, 255, 7, 0, 0, 32, 255, 207, 0,
+ 0, 112, 255, 95, 0, 0, 210, 255, 207, 0,
+ 0, 0, 252, 255, 156, 201, 255, 252, 207, 0,
+ 0, 0, 193, 255, 255, 255, 191, 224, 207, 0,
+ 0, 0, 0, 181, 254, 190, 5, 176, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 113, 236, 239, 124, 0, 0, 0,
+ 0, 0, 80, 254, 255, 255, 255, 78, 0, 0,
+ 0, 0, 246, 255, 173, 169, 254, 255, 4, 0,
+ 0, 48, 255, 95, 0, 0, 128, 255, 31, 0,
+ 0, 176, 255, 5, 0, 0, 0, 251, 143, 0,
+ 0, 242, 223, 0, 0, 0, 0, 245, 223, 0,
+ 0, 246, 143, 0, 0, 0, 0, 242, 255, 1,
+ 0, 250, 191, 136, 136, 136, 136, 248, 255, 2,
+ 0, 251, 255, 255, 255, 255, 255, 255, 255, 3,
+ 0, 252, 255, 255, 255, 255, 255, 255, 255, 3,
+ 0, 251, 111, 0, 0, 0, 0, 0, 0, 0,
+ 0, 250, 127, 0, 0, 0, 0, 0, 0, 0,
+ 0, 247, 191, 0, 0, 0, 0, 0, 0, 0,
+ 0, 242, 255, 1, 0, 0, 0, 0, 0, 0,
+ 0, 176, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 32, 255, 191, 2, 0, 0, 81, 59, 0,
+ 0, 0, 245, 255, 223, 187, 236, 255, 63, 0,
+ 0, 0, 48, 253, 255, 255, 255, 255, 47, 0,
+ 0, 0, 0, 80, 218, 255, 206, 89, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 181, 254, 239, 157, 3,
+ 0, 0, 0, 0, 192, 255, 255, 255, 255, 3,
+ 0, 0, 0, 0, 248, 255, 156, 153, 219, 0,
+ 0, 0, 0, 0, 254, 127, 0, 0, 0, 0,
+ 0, 0, 0, 16, 255, 15, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 163, 219, 255, 255, 255, 255, 255, 95, 0,
+ 0, 246, 255, 255, 255, 255, 255, 255, 95, 0,
+ 0, 82, 85, 101, 255, 94, 85, 85, 21, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 181, 254, 255, 255, 255, 255, 11,
+ 0, 0, 193, 255, 255, 255, 255, 255, 255, 11,
+ 0, 0, 252, 239, 71, 133, 255, 223, 105, 3,
+ 0, 80, 255, 13, 0, 0, 243, 239, 0, 0,
+ 0, 160, 255, 5, 0, 0, 176, 255, 4, 0,
+ 0, 208, 255, 2, 0, 0, 128, 255, 7, 0,
+ 0, 208, 255, 2, 0, 0, 112, 255, 7, 0,
+ 0, 176, 255, 4, 0, 0, 160, 255, 5, 0,
+ 0, 96, 255, 12, 0, 0, 242, 255, 1, 0,
+ 0, 0, 253, 207, 37, 99, 254, 143, 0, 0,
+ 0, 0, 210, 255, 255, 255, 255, 9, 0, 0,
+ 0, 0, 16, 254, 255, 223, 58, 0, 0, 0,
+ 0, 0, 209, 175, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 253, 12, 0, 0, 0, 0, 0, 0,
+ 0, 0, 253, 63, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 255, 205, 204, 188, 73, 0, 0,
+ 0, 0, 192, 255, 255, 255, 255, 255, 28, 0,
+ 0, 48, 251, 255, 255, 255, 255, 255, 207, 0,
+ 0, 245, 207, 20, 0, 0, 32, 246, 255, 3,
+ 0, 254, 30, 0, 0, 0, 0, 128, 255, 6,
+ 48, 255, 10, 0, 0, 0, 0, 96, 255, 6,
+ 64, 255, 9, 0, 0, 0, 0, 176, 255, 4,
+ 16, 255, 47, 0, 0, 0, 0, 249, 239, 0,
+ 0, 249, 255, 122, 85, 134, 251, 255, 63, 0,
+ 0, 160, 255, 255, 255, 255, 255, 207, 3, 0,
+ 0, 0, 131, 236, 255, 223, 139, 3, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 16, 199, 254, 190, 6, 0, 0,
+ 0, 245, 159, 227, 255, 255, 255, 207, 1, 0,
+ 0, 245, 175, 254, 191, 169, 253, 255, 11, 0,
+ 0, 245, 255, 191, 1, 0, 112, 255, 63, 0,
+ 0, 245, 255, 12, 0, 0, 0, 252, 127, 0,
+ 0, 245, 255, 4, 0, 0, 0, 246, 175, 0,
+ 0, 245, 255, 0, 0, 0, 0, 244, 191, 0,
+ 0, 245, 207, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 191, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 176, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 243, 255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 242, 255, 2, 0, 0, 0,
+ 0, 0, 0, 0, 144, 141, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 247, 255, 255, 255, 0, 0, 0, 0,
+ 0, 0, 247, 255, 255, 255, 0, 0, 0, 0,
+ 0, 0, 49, 100, 247, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 255, 0, 0, 0, 0,
+ 0, 48, 68, 68, 244, 255, 68, 68, 52, 0,
+ 0, 176, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 176, 255, 255, 255, 255, 255, 255, 223, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 193, 143, 0, 0, 0,
+ 0, 0, 0, 0, 0, 245, 255, 0, 0, 0,
+ 0, 0, 0, 0, 0, 245, 255, 0, 0, 0,
+ 0, 0, 0, 0, 0, 160, 125, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 253, 255, 255, 255, 255, 2, 0, 0,
+ 0, 0, 253, 255, 255, 255, 255, 2, 0, 0,
+ 0, 0, 67, 68, 68, 228, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 208, 255, 2, 0, 0,
+ 0, 0, 0, 0, 0, 224, 255, 1, 0, 0,
+ 0, 0, 0, 0, 0, 243, 239, 0, 0, 0,
+ 0, 1, 0, 0, 48, 253, 159, 0, 0, 0,
+ 0, 236, 171, 153, 252, 255, 30, 0, 0, 0,
+ 0, 252, 255, 255, 255, 223, 2, 0, 0, 0,
+ 0, 165, 237, 255, 190, 6, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 9, 0, 0, 0, 245, 255, 5,
+ 0, 112, 255, 9, 0, 0, 64, 255, 95, 0,
+ 0, 112, 255, 9, 0, 0, 244, 255, 5, 0,
+ 0, 112, 255, 9, 0, 64, 255, 95, 0, 0,
+ 0, 112, 255, 8, 0, 243, 255, 5, 0, 0,
+ 0, 112, 255, 8, 48, 255, 95, 0, 0, 0,
+ 0, 112, 255, 7, 226, 255, 5, 0, 0, 0,
+ 0, 112, 255, 22, 254, 95, 0, 0, 0, 0,
+ 0, 112, 255, 198, 255, 13, 0, 0, 0, 0,
+ 0, 112, 255, 254, 255, 175, 0, 0, 0, 0,
+ 0, 112, 255, 255, 248, 255, 7, 0, 0, 0,
+ 0, 112, 255, 44, 80, 255, 79, 0, 0, 0,
+ 0, 112, 255, 9, 0, 248, 239, 2, 0, 0,
+ 0, 112, 255, 9, 0, 160, 255, 13, 0, 0,
+ 0, 112, 255, 9, 0, 0, 253, 175, 0, 0,
+ 0, 112, 255, 9, 0, 0, 226, 255, 7, 0,
+ 0, 112, 255, 9, 0, 0, 64, 255, 79, 0,
+ 0, 112, 255, 9, 0, 0, 0, 247, 255, 2,
+ 0, 112, 255, 9, 0, 0, 0, 160, 255, 13,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 255, 255, 239, 0, 0, 0, 0,
+ 0, 0, 249, 255, 255, 239, 0, 0, 0, 0,
+ 0, 0, 16, 67, 247, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 0, 0, 0, 242, 239, 0, 0, 0, 0,
+ 0, 48, 68, 68, 246, 239, 68, 68, 52, 0,
+ 0, 224, 255, 255, 255, 255, 255, 255, 191, 0,
+ 0, 224, 255, 255, 255, 255, 255, 255, 191, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 112, 191, 32, 251, 109, 0, 161, 238, 26, 0,
+ 112, 223, 225, 255, 255, 6, 253, 255, 223, 0,
+ 112, 255, 234, 201, 255, 126, 191, 250, 255, 5,
+ 112, 255, 47, 0, 252, 255, 8, 64, 255, 9,
+ 112, 255, 10, 0, 246, 255, 0, 0, 255, 12,
+ 112, 255, 6, 0, 243, 207, 0, 0, 253, 13,
+ 112, 255, 5, 0, 242, 175, 0, 0, 252, 14,
+ 112, 255, 4, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 112, 255, 3, 0, 242, 159, 0, 0, 252, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 47, 16, 199, 254, 190, 6, 0, 0,
+ 0, 245, 95, 227, 255, 255, 255, 207, 1, 0,
+ 0, 245, 159, 254, 191, 169, 253, 255, 11, 0,
+ 0, 245, 255, 191, 1, 0, 112, 255, 63, 0,
+ 0, 245, 255, 12, 0, 0, 0, 252, 127, 0,
+ 0, 245, 255, 4, 0, 0, 0, 246, 175, 0,
+ 0, 245, 255, 0, 0, 0, 0, 244, 191, 0,
+ 0, 245, 207, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 191, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 147, 237, 239, 90, 0, 0, 0,
+ 0, 0, 144, 255, 255, 255, 255, 28, 0, 0,
+ 0, 0, 251, 255, 157, 185, 255, 239, 2, 0,
+ 0, 128, 255, 78, 0, 0, 177, 255, 12, 0,
+ 0, 241, 255, 3, 0, 0, 0, 253, 111, 0,
+ 0, 247, 175, 0, 0, 0, 0, 245, 223, 0,
+ 0, 252, 95, 0, 0, 0, 0, 240, 255, 1,
+ 0, 255, 47, 0, 0, 0, 0, 192, 255, 5,
+ 0, 255, 31, 0, 0, 0, 0, 176, 255, 6,
+ 16, 255, 15, 0, 0, 0, 0, 160, 255, 7,
+ 0, 255, 31, 0, 0, 0, 0, 176, 255, 6,
+ 0, 254, 47, 0, 0, 0, 0, 192, 255, 4,
+ 0, 251, 95, 0, 0, 0, 0, 240, 255, 1,
+ 0, 247, 191, 0, 0, 0, 0, 245, 223, 0,
+ 0, 241, 255, 3, 0, 0, 0, 253, 111, 0,
+ 0, 96, 255, 78, 0, 0, 177, 255, 13, 0,
+ 0, 0, 250, 255, 157, 185, 255, 239, 2, 0,
+ 0, 0, 128, 255, 255, 255, 255, 45, 0, 0,
+ 0, 0, 0, 130, 253, 239, 90, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 47, 16, 216, 255, 141, 1, 0, 0,
+ 0, 246, 79, 227, 255, 255, 255, 78, 0, 0,
+ 0, 246, 159, 254, 173, 185, 255, 255, 3, 0,
+ 0, 246, 255, 111, 0, 0, 193, 255, 12, 0,
+ 0, 246, 255, 8, 0, 0, 16, 255, 79, 0,
+ 0, 246, 255, 1, 0, 0, 0, 249, 175, 0,
+ 0, 246, 223, 0, 0, 0, 0, 244, 223, 0,
+ 0, 246, 191, 0, 0, 0, 0, 242, 255, 0,
+ 0, 246, 175, 0, 0, 0, 0, 240, 255, 1,
+ 0, 246, 175, 0, 0, 0, 0, 240, 255, 1,
+ 0, 246, 175, 0, 0, 0, 0, 241, 255, 1,
+ 0, 246, 207, 0, 0, 0, 0, 242, 255, 0,
+ 0, 246, 239, 0, 0, 0, 0, 245, 223, 0,
+ 0, 246, 255, 2, 0, 0, 0, 249, 159, 0,
+ 0, 246, 255, 9, 0, 0, 16, 255, 79, 0,
+ 0, 246, 255, 127, 0, 0, 193, 255, 12, 0,
+ 0, 246, 191, 255, 174, 185, 255, 255, 3, 0,
+ 0, 246, 143, 228, 255, 255, 255, 78, 0, 0,
+ 0, 246, 159, 16, 216, 255, 141, 1, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 246, 175, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 181, 254, 174, 5, 192, 207, 0,
+ 0, 0, 176, 255, 255, 255, 191, 224, 207, 0,
+ 0, 0, 251, 255, 156, 201, 255, 252, 207, 0,
+ 0, 96, 255, 95, 0, 0, 227, 255, 207, 0,
+ 0, 208, 255, 7, 0, 0, 48, 255, 207, 0,
+ 0, 243, 255, 0, 0, 0, 0, 252, 207, 0,
+ 0, 246, 191, 0, 0, 0, 0, 248, 207, 0,
+ 0, 249, 143, 0, 0, 0, 0, 245, 207, 0,
+ 0, 250, 127, 0, 0, 0, 0, 244, 207, 0,
+ 0, 251, 111, 0, 0, 0, 0, 243, 207, 0,
+ 0, 250, 127, 0, 0, 0, 0, 244, 207, 0,
+ 0, 249, 143, 0, 0, 0, 0, 245, 207, 0,
+ 0, 247, 191, 0, 0, 0, 0, 247, 207, 0,
+ 0, 243, 255, 0, 0, 0, 0, 251, 207, 0,
+ 0, 224, 255, 7, 0, 0, 32, 255, 207, 0,
+ 0, 112, 255, 95, 0, 0, 210, 255, 207, 0,
+ 0, 0, 252, 255, 156, 201, 255, 249, 207, 0,
+ 0, 0, 193, 255, 255, 255, 143, 242, 207, 0,
+ 0, 0, 0, 181, 254, 174, 3, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 243, 207, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 14, 0, 181, 254, 206, 40, 0,
+ 0, 0, 249, 15, 176, 255, 255, 255, 95, 0,
+ 0, 0, 249, 31, 251, 255, 237, 255, 31, 0,
+ 0, 0, 249, 175, 223, 5, 0, 48, 6, 0,
+ 0, 0, 249, 255, 12, 0, 0, 0, 0, 0,
+ 0, 0, 249, 255, 2, 0, 0, 0, 0, 0,
+ 0, 0, 249, 191, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 143, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 249, 111, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 147, 253, 255, 190, 55, 0, 0,
+ 0, 0, 160, 255, 255, 255, 255, 255, 8, 0,
+ 0, 0, 250, 255, 172, 169, 252, 255, 3, 0,
+ 0, 32, 255, 62, 0, 0, 0, 149, 0, 0,
+ 0, 80, 255, 9, 0, 0, 0, 0, 0, 0,
+ 0, 64, 255, 11, 0, 0, 0, 0, 0, 0,
+ 0, 16, 255, 143, 0, 0, 0, 0, 0, 0,
+ 0, 0, 247, 255, 142, 2, 0, 0, 0, 0,
+ 0, 0, 96, 255, 255, 207, 6, 0, 0, 0,
+ 0, 0, 0, 129, 254, 255, 239, 6, 0, 0,
+ 0, 0, 0, 0, 80, 251, 255, 175, 0, 0,
+ 0, 0, 0, 0, 0, 32, 250, 255, 7, 0,
+ 0, 0, 0, 0, 0, 0, 112, 255, 13, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255, 15, 0,
+ 0, 0, 0, 0, 0, 0, 16, 255, 15, 0,
+ 0, 128, 40, 0, 0, 0, 160, 255, 10, 0,
+ 0, 160, 255, 190, 137, 185, 255, 255, 2, 0,
+ 0, 144, 255, 255, 255, 255, 255, 62, 0, 0,
+ 0, 0, 148, 236, 255, 223, 106, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 96, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 160, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 224, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 243, 207, 0, 0, 0, 0, 0,
+ 0, 115, 218, 255, 255, 255, 255, 255, 15, 0,
+ 0, 251, 255, 255, 255, 255, 255, 255, 15, 0,
+ 0, 83, 85, 248, 223, 85, 85, 85, 5, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 243, 223, 0, 0, 0, 0, 0,
+ 0, 0, 0, 242, 255, 0, 0, 0, 0, 0,
+ 0, 0, 0, 224, 255, 8, 0, 0, 0, 0,
+ 0, 0, 0, 128, 255, 223, 137, 185, 12, 0,
+ 0, 0, 0, 0, 251, 255, 255, 255, 15, 0,
+ 0, 0, 0, 0, 80, 235, 255, 190, 8, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 244, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 245, 207, 0,
+ 0, 245, 175, 0, 0, 0, 0, 246, 207, 0,
+ 0, 245, 191, 0, 0, 0, 0, 248, 207, 0,
+ 0, 244, 223, 0, 0, 0, 0, 253, 207, 0,
+ 0, 241, 255, 2, 0, 0, 64, 255, 207, 0,
+ 0, 192, 255, 28, 0, 0, 244, 255, 207, 0,
+ 0, 64, 255, 255, 154, 218, 255, 248, 207, 0,
+ 0, 0, 247, 255, 255, 255, 143, 224, 207, 0,
+ 0, 0, 48, 217, 255, 157, 3, 192, 207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 112, 255, 10, 0, 0, 0, 0, 64, 255, 13,
+ 16, 255, 15, 0, 0, 0, 0, 160, 255, 7,
+ 0, 251, 95, 0, 0, 0, 0, 240, 255, 1,
+ 0, 245, 191, 0, 0, 0, 0, 245, 191, 0,
+ 0, 240, 255, 1, 0, 0, 0, 251, 111, 0,
+ 0, 160, 255, 6, 0, 0, 16, 255, 15, 0,
+ 0, 64, 255, 12, 0, 0, 96, 255, 10, 0,
+ 0, 0, 254, 47, 0, 0, 192, 255, 4, 0,
+ 0, 0, 248, 127, 0, 0, 241, 239, 0, 0,
+ 0, 0, 243, 223, 0, 0, 247, 143, 0, 0,
+ 0, 0, 208, 255, 3, 0, 253, 63, 0, 0,
+ 0, 0, 112, 255, 8, 32, 255, 13, 0, 0,
+ 0, 0, 16, 255, 14, 112, 255, 7, 0, 0,
+ 0, 0, 0, 251, 63, 192, 255, 1, 0, 0,
+ 0, 0, 0, 245, 143, 241, 191, 0, 0, 0,
+ 0, 0, 0, 240, 207, 246, 111, 0, 0, 0,
+ 0, 0, 0, 160, 255, 251, 15, 0, 0, 0,
+ 0, 0, 0, 64, 255, 255, 10, 0, 0, 0,
+ 0, 0, 0, 0, 254, 255, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 255, 11, 0, 0, 247, 255, 0, 0, 64, 255,
+ 252, 14, 0, 0, 251, 255, 2, 0, 96, 255,
+ 249, 15, 0, 0, 254, 255, 5, 0, 144, 255,
+ 246, 63, 0, 32, 255, 251, 9, 0, 192, 207,
+ 243, 111, 0, 80, 207, 248, 12, 0, 240, 159,
+ 240, 159, 0, 144, 159, 244, 15, 0, 242, 111,
+ 192, 191, 0, 192, 111, 241, 63, 0, 245, 63,
+ 144, 239, 0, 240, 63, 224, 111, 0, 248, 15,
+ 96, 255, 1, 243, 31, 176, 175, 0, 251, 12,
+ 48, 255, 4, 247, 13, 128, 223, 0, 253, 9,
+ 0, 255, 6, 250, 10, 64, 255, 0, 255, 6,
+ 0, 253, 9, 253, 6, 16, 255, 51, 255, 3,
+ 0, 250, 11, 255, 3, 0, 253, 86, 255, 0,
+ 0, 246, 61, 255, 0, 0, 250, 121, 223, 0,
+ 0, 243, 111, 207, 0, 0, 247, 172, 159, 0,
+ 0, 240, 191, 143, 0, 0, 243, 207, 111, 0,
+ 0, 208, 255, 95, 0, 0, 240, 255, 63, 0,
+ 0, 160, 255, 31, 0, 0, 208, 255, 15, 0,
+ 0, 112, 255, 14, 0, 0, 144, 255, 13, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 251, 191, 0, 0, 0, 0, 244, 255, 2,
+ 0, 225, 255, 6, 0, 0, 16, 254, 111, 0,
+ 0, 64, 255, 31, 0, 0, 160, 255, 11, 0,
+ 0, 0, 249, 191, 0, 0, 245, 239, 1, 0,
+ 0, 0, 208, 255, 6, 16, 254, 79, 0, 0,
+ 0, 0, 48, 255, 47, 176, 255, 9, 0, 0,
+ 0, 0, 0, 247, 207, 246, 223, 0, 0, 0,
+ 0, 0, 0, 192, 255, 255, 47, 0, 0, 0,
+ 0, 0, 0, 32, 255, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 251, 255, 2, 0, 0, 0,
+ 0, 0, 0, 96, 255, 255, 12, 0, 0, 0,
+ 0, 0, 0, 242, 255, 253, 127, 0, 0, 0,
+ 0, 0, 0, 252, 127, 242, 255, 3, 0, 0,
+ 0, 0, 128, 255, 12, 96, 255, 13, 0, 0,
+ 0, 0, 243, 255, 2, 0, 251, 159, 0, 0,
+ 0, 0, 254, 111, 0, 0, 225, 255, 4, 0,
+ 0, 160, 255, 11, 0, 0, 80, 255, 30, 0,
+ 0, 245, 255, 1, 0, 0, 0, 250, 191, 0,
+ 16, 254, 95, 0, 0, 0, 0, 225, 255, 6,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 112, 255, 10, 0, 0, 0, 0, 64, 255, 13,
+ 16, 255, 31, 0, 0, 0, 0, 160, 255, 7,
+ 0, 250, 127, 0, 0, 0, 0, 240, 255, 1,
+ 0, 243, 223, 0, 0, 0, 0, 246, 191, 0,
+ 0, 208, 255, 3, 0, 0, 0, 251, 95, 0,
+ 0, 96, 255, 10, 0, 0, 16, 255, 14, 0,
+ 0, 0, 255, 31, 0, 0, 112, 255, 9, 0,
+ 0, 0, 249, 111, 0, 0, 208, 255, 3, 0,
+ 0, 0, 243, 207, 0, 0, 242, 223, 0, 0,
+ 0, 0, 192, 255, 3, 0, 248, 127, 0, 0,
+ 0, 0, 96, 255, 9, 0, 254, 31, 0, 0,
+ 0, 0, 0, 255, 15, 48, 255, 11, 0, 0,
+ 0, 0, 0, 249, 95, 144, 255, 5, 0, 0,
+ 0, 0, 0, 243, 191, 224, 239, 0, 0, 0,
+ 0, 0, 0, 192, 255, 243, 159, 0, 0, 0,
+ 0, 0, 0, 96, 255, 251, 63, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 13, 0, 0, 0,
+ 0, 0, 0, 0, 249, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 242, 255, 1, 0, 0, 0,
+ 0, 0, 0, 0, 244, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 95, 0, 0, 0, 0,
+ 0, 0, 0, 16, 255, 14, 0, 0, 0, 0,
+ 0, 0, 0, 144, 255, 8, 0, 0, 0, 0,
+ 0, 0, 0, 246, 239, 1, 0, 0, 0, 0,
+ 64, 154, 217, 255, 95, 0, 0, 0, 0, 0,
+ 80, 255, 255, 255, 8, 0, 0, 0, 0, 0,
+ 64, 253, 239, 75, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 112, 255, 255, 255, 255, 255, 255, 15, 0,
+ 0, 112, 255, 255, 255, 255, 255, 255, 15, 0,
+ 0, 32, 85, 85, 85, 85, 133, 255, 14, 0,
+ 0, 0, 0, 0, 0, 0, 208, 255, 4, 0,
+ 0, 0, 0, 0, 0, 0, 250, 143, 0, 0,
+ 0, 0, 0, 0, 0, 96, 255, 11, 0, 0,
+ 0, 0, 0, 0, 0, 243, 239, 1, 0, 0,
+ 0, 0, 0, 0, 0, 253, 63, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 246, 191, 0, 0, 0, 0,
+ 0, 0, 0, 48, 255, 30, 0, 0, 0, 0,
+ 0, 0, 0, 209, 255, 3, 0, 0, 0, 0,
+ 0, 0, 0, 250, 127, 0, 0, 0, 0, 0,
+ 0, 0, 112, 255, 11, 0, 0, 0, 0, 0,
+ 0, 0, 243, 223, 1, 0, 0, 0, 0, 0,
+ 0, 16, 254, 63, 0, 0, 0, 0, 0, 0,
+ 0, 176, 255, 91, 85, 85, 85, 85, 21, 0,
+ 0, 240, 255, 255, 255, 255, 255, 255, 95, 0,
+ 0, 240, 255, 255, 255, 255, 255, 255, 95, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 166, 253, 9, 0,
+ 0, 0, 0, 0, 0, 227, 255, 255, 10, 0,
+ 0, 0, 0, 0, 16, 254, 255, 139, 5, 0,
+ 0, 0, 0, 0, 96, 255, 30, 0, 0, 0,
+ 0, 0, 0, 0, 144, 255, 8, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 5, 0, 0, 0,
+ 0, 0, 0, 0, 192, 255, 4, 0, 0, 0,
+ 0, 0, 0, 0, 244, 255, 1, 0, 0, 0,
+ 0, 0, 16, 148, 255, 159, 0, 0, 0, 0,
+ 0, 64, 255, 255, 239, 7, 0, 0, 0, 0,
+ 0, 64, 255, 255, 77, 0, 0, 0, 0, 0,
+ 0, 32, 186, 254, 255, 45, 0, 0, 0, 0,
+ 0, 0, 0, 48, 252, 223, 0, 0, 0, 0,
+ 0, 0, 0, 0, 225, 255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 176, 255, 5, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 6, 0, 0, 0,
+ 0, 0, 0, 0, 160, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 112, 255, 30, 0, 0, 0,
+ 0, 0, 0, 0, 16, 255, 255, 155, 5, 0,
+ 0, 0, 0, 0, 0, 228, 255, 255, 10, 0,
+ 0, 0, 0, 0, 0, 0, 182, 253, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 240, 111, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 239, 140, 2, 0, 0, 0, 0, 0,
+ 0, 48, 255, 255, 143, 0, 0, 0, 0, 0,
+ 0, 16, 168, 254, 255, 6, 0, 0, 0, 0,
+ 0, 0, 0, 160, 255, 13, 0, 0, 0, 0,
+ 0, 0, 0, 32, 255, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 254, 47, 0, 0, 0, 0,
+ 0, 0, 0, 0, 251, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 243, 255, 109, 2, 0, 0,
+ 0, 0, 0, 0, 48, 252, 255, 255, 10, 0,
+ 0, 0, 0, 0, 0, 146, 255, 255, 10, 0,
+ 0, 0, 0, 0, 128, 255, 255, 188, 7, 0,
+ 0, 0, 0, 0, 246, 255, 7, 0, 0, 0,
+ 0, 0, 0, 0, 252, 111, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 15, 0, 0, 0, 0,
+ 0, 0, 0, 64, 255, 15, 0, 0, 0, 0,
+ 0, 0, 32, 230, 255, 10, 0, 0, 0, 0,
+ 0, 48, 255, 255, 239, 2, 0, 0, 0, 0,
+ 0, 48, 255, 255, 26, 0, 0, 0, 0, 0,
+ 0, 16, 103, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 97, 120, 3, 0, 0, 0, 32, 0,
+ 0, 128, 255, 255, 239, 56, 0, 0, 214, 0,
+ 0, 246, 255, 255, 255, 255, 173, 217, 223, 0,
+ 0, 247, 40, 48, 232, 255, 255, 255, 127, 0,
+ 0, 54, 0, 0, 0, 148, 253, 190, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+};
+
+}
diff --git a/patches/opencv-2.4.13.7-drawing-mono-font.patch b/patches/opencv-2.4.13.7-drawing-mono-font.patch
new file mode 100644
index 0000000..4d9aa7c
--- /dev/null
+++ b/patches/opencv-2.4.13.7-drawing-mono-font.patch
@@ -0,0 +1,120 @@
+diff -Nuarp opencv-2.4.13.7.orig/modules/core/src/drawing.cpp opencv-2.4.13.7/modules/core/src/drawing.cpp
+--- opencv-2.4.13.7.orig/modules/core/src/drawing.cpp 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/modules/core/src/drawing.cpp 2023-12-09 15:52:28.808104579 +0800
+@@ -40,6 +40,8 @@
+ //M*/
+ #include "precomp.hpp"
+
++#include "draw_text.h"
++
+ namespace cv
+ {
+
+@@ -1992,6 +1994,7 @@ void polylines( Mat& img, const Point**
+ }
+
+
++#if 0
+ enum { FONT_SIZE_SHIFT=8, FONT_ITALIC_ALPHA=(1 << 8),
+ FONT_ITALIC_DIGIT=(2 << 8), FONT_ITALIC_PUNCT=(4 << 8),
+ FONT_ITALIC_BRACES=(8 << 8), FONT_HAVE_GREEK=(16 << 8),
+@@ -2204,12 +2207,41 @@ inline void readCheck(int &c, int &i, co
+ if(c >= rightBoundary || c < leftBoundary)
+ c = '?';
+ }
++#endif
+
+ void putText( Mat& img, const string& text, Point org,
+ int fontFace, double fontScale, Scalar color,
+ int thickness, int line_type, bool bottomLeftOrigin )
+
+ {
++ const int fontpixelsize = 8 * fontScale;
++ const int base_line = 4 * fontScale;
++ const int yoffset = bottomLeftOrigin ? img.rows - org.y - fontpixelsize * 2 + base_line : org.y - fontpixelsize * 2 + base_line;
++
++ unsigned int _color = 0;
++ unsigned char* border_color = (unsigned char*)&_color;
++
++ if (img.channels() == 1)
++ {
++ border_color[0] = color[0];
++ draw_text_c1(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++ else if (img.channels() == 3)
++ {
++ border_color[0] = color[0];
++ border_color[1] = color[1];
++ border_color[2] = color[2];
++ draw_text_c3(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++ else if (img.channels() == 4)
++ {
++ border_color[0] = color[0];
++ border_color[1] = color[1];
++ border_color[2] = color[2];
++ border_color[3] = color[3];
++ draw_text_c4(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++#if 0
+ const int* ascii = getFontData(fontFace);
+
+ double buf[4];
+@@ -2264,10 +2296,21 @@ void putText( Mat& img, const string& te
+ }
+ view_x += dx;
+ }
++#endif
+ }
+
+ Size getTextSize( const string& text, int fontFace, double fontScale, int thickness, int* _base_line)
+ {
++ const int fontpixelsize = 8 * fontScale;
++
++ int w;
++ int h;
++ get_text_drawing_size(text.c_str(), fontpixelsize, &w, &h);
++
++ *_base_line = 4 * fontScale;
++
++ return Size(w, h);
++#if 0
+ Size size;
+ double view_x = 0;
+ const char **faces = cv::g_HersheyGlyphs;
+@@ -2294,6 +2337,7 @@ Size getTextSize( const string& text, in
+ if( _base_line )
+ *_base_line = cvRound(base_line*fontScale + thickness*0.5);
+ return size;
++#endif
+ }
+
+ }
+@@ -2679,7 +2723,7 @@ cvInitFont( CvFont *font, int font_face,
+ {
+ CV_Assert( font != 0 && hscale > 0 && vscale > 0 && thickness >= 0 );
+
+- font->ascii = cv::getFontData(font_face);
++ font->ascii = 0;
+ font->font_face = font_face;
+ font->hscale = (float)hscale;
+ font->vscale = (float)vscale;
+diff -Nuarp opencv-2.4.13.7.orig/modules/core/src/tables.cpp opencv-2.4.13.7/modules/core/src/tables.cpp
+--- opencv-2.4.13.7.orig/modules/core/src/tables.cpp 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/modules/core/src/tables.cpp 2023-12-09 14:51:50.948704080 +0800
+@@ -204,6 +204,7 @@ const uchar g_Saturate8u[] =
+ 255
+ };
+
++#if 0
+ const char* g_HersheyGlyphs[] = {
+ "",
+ "MWRMNV RMVV PSTS",
+@@ -3506,6 +3507,7 @@ const char* g_HersheyGlyphs[] = {
+ "",
+ "",
+ 0 };
++#endif
+
+ }
+
diff --git a/opencv-2.4.13.7-enable-cxx11.patch b/patches/opencv-2.4.13.7-enable-cxx11.patch
similarity index 100%
rename from opencv-2.4.13.7-enable-cxx11.patch
rename to patches/opencv-2.4.13.7-enable-cxx11.patch
diff --git a/opencv-2.4.13.7-fix-highgui-include.patch b/patches/opencv-2.4.13.7-fix-highgui-include.patch
similarity index 100%
rename from opencv-2.4.13.7-fix-highgui-include.patch
rename to patches/opencv-2.4.13.7-fix-highgui-include.patch
diff --git a/opencv-2.4.13.7-link-openmp.patch b/patches/opencv-2.4.13.7-link-openmp.patch
similarity index 100%
rename from opencv-2.4.13.7-link-openmp.patch
rename to patches/opencv-2.4.13.7-link-openmp.patch
diff --git a/patches/opencv-2.4.13.7-minimal-install.patch b/patches/opencv-2.4.13.7-minimal-install.patch
new file mode 100644
index 0000000..9c545e6
--- /dev/null
+++ b/patches/opencv-2.4.13.7-minimal-install.patch
@@ -0,0 +1,137 @@
+diff -Nuarp opencv-2.4.13.7.orig/cmake/OpenCVGenAndroidMK.cmake opencv-2.4.13.7/cmake/OpenCVGenAndroidMK.cmake
+--- opencv-2.4.13.7.orig/cmake/OpenCVGenAndroidMK.cmake 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/cmake/OpenCVGenAndroidMK.cmake 2023-12-09 21:14:50.771014374 +0800
+@@ -161,5 +161,4 @@ if(ANDROID)
+ set(OPENCV_3RDPARTY_LIBS_DIR_CONFIGCMAKE "\$(OPENCV_THIS_DIR)/../3rdparty/libs/\$(OPENCV_TARGET_ARCH_ABI)")
+
+ configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" @ONLY)
+- install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
+ endif(ANDROID)
+diff -Nuarp opencv-2.4.13.7.orig/cmake/OpenCVGenConfig.cmake opencv-2.4.13.7/cmake/OpenCVGenConfig.cmake
+--- opencv-2.4.13.7.orig/cmake/OpenCVGenConfig.cmake 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/cmake/OpenCVGenConfig.cmake 2023-12-09 21:10:49.425388446 +0800
+@@ -119,10 +119,6 @@ if(UNIX) # ANDROID configuration is crea
+ endif()
+ endif()
+
+-if(ANDROID)
+- install(FILES "${OpenCV_SOURCE_DIR}/platforms/android/android.toolchain.cmake" DESTINATION ${OPENCV_CONFIG_INSTALL_PATH}/ COMPONENT dev)
+-endif()
+-
+ # --------------------------------------------------------------------------------------------
+ # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
+ # --------------------------------------------------------------------------------------------
+diff -Nuarp opencv-2.4.13.7.orig/CMakeLists.txt opencv-2.4.13.7/CMakeLists.txt
+--- opencv-2.4.13.7.orig/CMakeLists.txt 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/CMakeLists.txt 2023-12-10 12:41:39.219962895 +0800
+@@ -569,32 +569,13 @@ add_subdirectory(include)
+ add_subdirectory(modules)
+
+ # Generate targets for documentation
+-add_subdirectory(doc)
+
+ # various data that is used by cv libraries and/or demo applications.
+-add_subdirectory(data)
+
+ # extra applications
+-if(BUILD_opencv_apps)
+- add_subdirectory(apps)
+-endif()
+
+ # examples
+-if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES)
+- add_subdirectory(samples)
+-endif()
+-
+-if(ANDROID)
+- add_subdirectory(platforms/android/service)
+-endif()
+-
+-if(BUILD_ANDROID_PACKAGE)
+- add_subdirectory(platforms/android/package)
+-endif()
+
+-if (ANDROID)
+- add_subdirectory(platforms/android/libinfo)
+-endif()
+
+ # ----------------------------------------------------------------------------
+ # Finalization: generate configuration-based files
+@@ -605,16 +586,13 @@ ocv_track_build_dependencies()
+ include(cmake/OpenCVGenHeaders.cmake)
+
+ # Generate opencv.pc for pkg-config command
+-include(cmake/OpenCVGenPkgconfig.cmake)
+
+ # Generate OpenCV.mk for ndk-build (Android build tool)
+-include(cmake/OpenCVGenAndroidMK.cmake)
+
+ # Generate OpenCVДonfig.cmake and OpenCVConfig-version.cmake for cmake projects
+ include(cmake/OpenCVGenConfig.cmake)
+
+ # Generate Info.plist for the IOS framework
+-include(cmake/OpenCVGenInfoPlist.cmake)
+
+ # Generate environment setup file
+ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
+@@ -649,12 +627,6 @@ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PA
+ endif()
+ endif()
+
+-if(NOT OPENCV_README_FILE)
+- if(ANDROID)
+- set(OPENCV_README_FILE ${CMAKE_CURRENT_SOURCE_DIR}/platforms/android/README.android)
+- endif()
+-endif()
+-
+ if(NOT OPENCV_LICENSE_FILE)
+ set(OPENCV_LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
+ endif()
+@@ -664,11 +636,6 @@ if(ANDROID OR NOT UNIX)
+ install(FILES ${OPENCV_LICENSE_FILE}
+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+ DESTINATION . COMPONENT libs)
+- if(OPENCV_README_FILE)
+- install(FILES ${OPENCV_README_FILE}
+- PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+- DESTINATION . COMPONENT libs)
+- endif()
+ endif()
+
+ # ----------------------------------------------------------------------------
+diff -Nuarp opencv-2.4.13.7.orig/data/CMakeLists.txt opencv-2.4.13.7/data/CMakeLists.txt
+--- opencv-2.4.13.7.orig/data/CMakeLists.txt 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/data/CMakeLists.txt 2023-12-09 21:07:33.901501638 +0800
+@@ -1,14 +1,6 @@
+ file(GLOB HAAR_CASCADES haarcascades/*.xml)
+ file(GLOB LBP_CASCADES lbpcascades/*.xml)
+
+-if(ANDROID)
+- install(FILES ${HAAR_CASCADES} DESTINATION sdk/etc/haarcascades COMPONENT libs)
+- install(FILES ${LBP_CASCADES} DESTINATION sdk/etc/lbpcascades COMPONENT libs)
+-else()
+- install(FILES ${HAAR_CASCADES} DESTINATION share/OpenCV/haarcascades COMPONENT libs)
+- install(FILES ${LBP_CASCADES} DESTINATION share/OpenCV/lbpcascades COMPONENT libs)
+-endif()
+-
+ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
+ if(ANDROID)
+ install(DIRECTORY ${OPENCV_TEST_DATA_PATH} DESTINATION sdk/etc/testdata COMPONENT tests)
+diff -Nuarp opencv-2.4.13.7.orig/platforms/android/libinfo/CMakeLists.txt opencv-2.4.13.7/platforms/android/libinfo/CMakeLists.txt
+--- opencv-2.4.13.7.orig/platforms/android/libinfo/CMakeLists.txt 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/platforms/android/libinfo/CMakeLists.txt 2023-12-09 21:02:53.976095360 +0800
+@@ -37,4 +37,3 @@ set_target_properties(${the_module} PROP
+ )
+
+ get_filename_component(lib_name "libopencv_info.so" NAME)
+-install(FILES "${LIBRARY_OUTPUT_PATH}/${lib_name}" DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT libs)
+diff -Nuarp opencv-2.4.13.7.orig/platforms/android/package/CMakeLists.txt opencv-2.4.13.7/platforms/android/package/CMakeLists.txt
+--- opencv-2.4.13.7.orig/platforms/android/package/CMakeLists.txt 2018-07-02 20:41:56.000000000 +0800
++++ opencv-2.4.13.7/platforms/android/package/CMakeLists.txt 2023-12-09 21:13:29.379477767 +0800
+@@ -89,6 +89,5 @@ add_custom_command(
+ DEPENDS "${OpenCV_BINARY_DIR}/bin/classes.jar.dephelper" "${PACKAGE_DIR}/res/values/strings.xml" "${PACKAGE_DIR}/res/drawable/icon.png" ${camera_wrappers} opencv_java
+ )
+
+-install(FILES "${APK_NAME}" DESTINATION "apk/" COMPONENT libs)
+ add_custom_target(android_package ALL SOURCES "${APK_NAME}" )
+ add_dependencies(android_package opencv_java)
diff --git a/opencv-2.4.13.7-newer-msvc.patch b/patches/opencv-2.4.13.7-newer-msvc.patch
similarity index 100%
rename from opencv-2.4.13.7-newer-msvc.patch
rename to patches/opencv-2.4.13.7-newer-msvc.patch
diff --git a/opencv-2.4.13.7-no-link-stdc++.patch b/patches/opencv-2.4.13.7-no-link-stdc++.patch
similarity index 100%
rename from opencv-2.4.13.7-no-link-stdc++.patch
rename to patches/opencv-2.4.13.7-no-link-stdc++.patch
diff --git a/opencv-2.4.13.7-no-local-static.patch b/patches/opencv-2.4.13.7-no-local-static.patch
similarity index 100%
rename from opencv-2.4.13.7-no-local-static.patch
rename to patches/opencv-2.4.13.7-no-local-static.patch
diff --git a/opencv-2.4.13.7-no-rtti.patch b/patches/opencv-2.4.13.7-no-rtti.patch
similarity index 100%
rename from opencv-2.4.13.7-no-rtti.patch
rename to patches/opencv-2.4.13.7-no-rtti.patch
diff --git a/opencv-2.4.13.7-no-zlib.patch b/patches/opencv-2.4.13.7-no-zlib.patch
similarity index 100%
rename from opencv-2.4.13.7-no-zlib.patch
rename to patches/opencv-2.4.13.7-no-zlib.patch
diff --git a/opencv-2.4.13.7-unsafe-xadd.patch b/patches/opencv-2.4.13.7-unsafe-xadd.patch
similarity index 100%
rename from opencv-2.4.13.7-unsafe-xadd.patch
rename to patches/opencv-2.4.13.7-unsafe-xadd.patch
diff --git a/patches/opencv-3.4.20-drawing-mono-font.patch b/patches/opencv-3.4.20-drawing-mono-font.patch
new file mode 100644
index 0000000..06517bc
--- /dev/null
+++ b/patches/opencv-3.4.20-drawing-mono-font.patch
@@ -0,0 +1,136 @@
+diff -Nuarp opencv-3.4.20.orig/modules/imgproc/src/drawing.cpp opencv-3.4.20/modules/imgproc/src/drawing.cpp
+--- opencv-3.4.20.orig/modules/imgproc/src/drawing.cpp 2023-06-27 19:29:13.000000000 +0800
++++ opencv-3.4.20/modules/imgproc/src/drawing.cpp 2023-12-09 17:09:13.910181866 +0800
+@@ -40,6 +40,8 @@
+ //M*/
+ #include "precomp.hpp"
+
++#include "draw_text.h"
++
+ namespace cv
+ {
+
+@@ -2051,6 +2053,7 @@ void polylines( Mat& img, const Point* c
+ }
+
+
++#if 0
+ enum { FONT_SIZE_SHIFT=8, FONT_ITALIC_ALPHA=(1 << 8),
+ FONT_ITALIC_DIGIT=(2 << 8), FONT_ITALIC_PUNCT=(4 << 8),
+ FONT_ITALIC_BRACES=(8 << 8), FONT_HAVE_GREEK=(16 << 8),
+@@ -2265,6 +2268,7 @@ inline void readCheck(int &c, int &i, co
+ }
+
+ extern const char* g_HersheyGlyphs[];
++#endif
+
+ void putText( InputOutputArray _img, const String& text, Point org,
+ int fontFace, double fontScale, Scalar color,
+@@ -2278,6 +2282,35 @@ void putText( InputOutputArray _img, con
+ return;
+ }
+ Mat img = _img.getMat();
++
++ const int fontpixelsize = 8 * fontScale;
++ const int base_line = 4 * fontScale;
++ const int yoffset = bottomLeftOrigin ? img.rows - org.y - fontpixelsize * 2 + base_line : org.y - fontpixelsize * 2 + base_line;
++
++ unsigned int _color = 0;
++ unsigned char* border_color = (unsigned char*)&_color;
++
++ if (img.channels() == 1)
++ {
++ border_color[0] = color[0];
++ draw_text_c1(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++ else if (img.channels() == 3)
++ {
++ border_color[0] = color[0];
++ border_color[1] = color[1];
++ border_color[2] = color[2];
++ draw_text_c3(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++ else if (img.channels() == 4)
++ {
++ border_color[0] = color[0];
++ border_color[1] = color[1];
++ border_color[2] = color[2];
++ border_color[3] = color[3];
++ draw_text_c4(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++#if 0
+ const int* ascii = getFontData(fontFace);
+
+ double buf[4];
+@@ -2332,10 +2365,21 @@ void putText( InputOutputArray _img, con
+ }
+ view_x += dx;
+ }
++#endif
+ }
+
+ Size getTextSize( const String& text, int fontFace, double fontScale, int thickness, int* _base_line)
+ {
++ const int fontpixelsize = 8 * fontScale;
++
++ int w;
++ int h;
++ get_text_drawing_size(text.c_str(), fontpixelsize, &w, &h);
++
++ *_base_line = 4 * fontScale;
++
++ return Size(w, h);
++#if 0
+ Size size;
+ double view_x = 0;
+ const char **faces = cv::g_HersheyGlyphs;
+@@ -2362,10 +2406,13 @@ Size getTextSize( const String& text, in
+ if( _base_line )
+ *_base_line = cvRound(base_line*fontScale + thickness*0.5);
+ return size;
++#endif
+ }
+
+ double getFontScaleFromHeight(const int fontFace, const int pixelHeight, const int thickness)
+ {
++ return pixelHeight / 16.0;
++#if 0
+ // By https://stackoverflow.com/a/27898487/1531708
+ const int* ascii = getFontData(fontFace);
+
+@@ -2373,6 +2420,7 @@ double getFontScaleFromHeight(const int
+ int cap_line = (ascii[0] >> 4) & 15;
+
+ return static_cast(pixelHeight - static_cast((thickness + 1)) / 2.0) / static_cast(cap_line + base_line);
++#endif
+ }
+
+ }
+@@ -2879,7 +2927,7 @@ cvInitFont( CvFont *font, int font_face,
+ {
+ CV_Assert( font != 0 && hscale > 0 && vscale > 0 && thickness >= 0 );
+
+- font->ascii = cv::getFontData(font_face);
++ font->ascii = 0;
+ font->font_face = font_face;
+ font->hscale = (float)hscale;
+ font->vscale = (float)vscale;
+diff -Nuarp opencv-3.4.20.orig/modules/imgproc/src/hershey_fonts.cpp opencv-3.4.20/modules/imgproc/src/hershey_fonts.cpp
+--- opencv-3.4.20.orig/modules/imgproc/src/hershey_fonts.cpp 2023-06-27 19:29:13.000000000 +0800
++++ opencv-3.4.20/modules/imgproc/src/hershey_fonts.cpp 2023-12-09 17:02:22.175067906 +0800
+@@ -51,6 +51,7 @@
+ namespace cv
+ {
+
++#if 0
+ const char* g_HersheyGlyphs[] = {
+ "",
+ "MWRMNV RMVV PSTS",
+@@ -3353,6 +3354,7 @@ const char* g_HersheyGlyphs[] = {
+ "",
+ "",
+ 0 };
++#endif
+
+ }
+
diff --git a/opencv-3.4.20-fix-emscripten-include.patch b/patches/opencv-3.4.20-fix-emscripten-include.patch
similarity index 100%
rename from opencv-3.4.20-fix-emscripten-include.patch
rename to patches/opencv-3.4.20-fix-emscripten-include.patch
diff --git a/opencv-3.4.20-link-openmp.patch b/patches/opencv-3.4.20-link-openmp.patch
similarity index 100%
rename from opencv-3.4.20-link-openmp.patch
rename to patches/opencv-3.4.20-link-openmp.patch
diff --git a/patches/opencv-3.4.20-minimal-install.patch b/patches/opencv-3.4.20-minimal-install.patch
new file mode 100644
index 0000000..254ce1f
--- /dev/null
+++ b/patches/opencv-3.4.20-minimal-install.patch
@@ -0,0 +1,134 @@
+diff -Nuarp opencv-3.4.20.orig/cmake/OpenCVGenAndroidMK.cmake opencv-3.4.20/cmake/OpenCVGenAndroidMK.cmake
+--- opencv-3.4.20.orig/cmake/OpenCVGenAndroidMK.cmake 2023-06-27 19:29:13.000000000 +0800
++++ opencv-3.4.20/cmake/OpenCVGenAndroidMK.cmake 2023-12-09 21:22:23.522506093 +0800
+@@ -76,6 +76,4 @@ if(ANDROID)
+
+ configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" @ONLY)
+ configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV-abi.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV-${ANDROID_NDK_ABI_NAME}.mk" @ONLY)
+- install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
+- install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV-${ANDROID_NDK_ABI_NAME}.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
+ endif(ANDROID)
+diff -Nuarp opencv-3.4.20.orig/cmake/OpenCVGenConfig.cmake opencv-3.4.20/cmake/OpenCVGenConfig.cmake
+--- opencv-3.4.20.orig/cmake/OpenCVGenConfig.cmake 2023-12-09 16:58:42.567073866 +0800
++++ opencv-3.4.20/cmake/OpenCVGenConfig.cmake 2023-12-09 21:22:42.614401178 +0800
+@@ -119,7 +119,6 @@ endif()
+
+ if(ANDROID)
+ ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "abi-${ANDROID_NDK_ABI_NAME}" "OpenCVConfig.root-ANDROID.cmake.in")
+- install(FILES "${OpenCV_SOURCE_DIR}/platforms/android/android.toolchain.cmake" DESTINATION "${OPENCV_CONFIG_INSTALL_PATH}" COMPONENT dev)
+ endif()
+
+ # --------------------------------------------------------------------------------------------
+diff -Nuarp opencv-3.4.20.orig/cmake/OpenCVUtils.cmake opencv-3.4.20/cmake/OpenCVUtils.cmake
+--- opencv-3.4.20.orig/cmake/OpenCVUtils.cmake 2023-06-27 19:29:13.000000000 +0800
++++ opencv-3.4.20/cmake/OpenCVUtils.cmake 2023-12-09 21:24:36.516775258 +0800
+@@ -976,11 +976,6 @@ macro(ocv_finalize_status)
+ endif()
+ endif()
+
+- if(UNIX)
+- install(FILES "${OpenCV_SOURCE_DIR}/platforms/scripts/valgrind.supp"
+- "${OpenCV_SOURCE_DIR}/platforms/scripts/valgrind_3rdparty.supp"
+- DESTINATION "${OPENCV_OTHER_INSTALL_PATH}" COMPONENT "dev")
+- endif()
+ endmacro()
+
+
+diff -Nuarp opencv-3.4.20.orig/CMakeLists.txt opencv-3.4.20/CMakeLists.txt
+--- opencv-3.4.20.orig/CMakeLists.txt 2023-06-27 19:29:13.000000000 +0800
++++ opencv-3.4.20/CMakeLists.txt 2023-12-10 12:43:21.573441566 +0800
+@@ -903,24 +903,13 @@ ocv_add_modules_compiler_options()
+ add_subdirectory(modules)
+
+ # Generate targets for documentation
+-add_subdirectory(doc)
+
+ # various data that is used by cv libraries and/or demo applications.
+-add_subdirectory(data)
+
+ # extra applications
+-if(BUILD_opencv_apps)
+- add_subdirectory(apps)
+-endif()
+
+ # examples
+-if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_C_EXAMPLES)
+- add_subdirectory(samples)
+-endif()
+
+-if(ANDROID)
+- add_subdirectory(platforms/android/service)
+-endif()
+
+ # ----------------------------------------------------------------------------
+ # Finalization: generate configuration-based files
+@@ -932,22 +921,13 @@ ocv_cmake_hook(PRE_FINALIZE)
+ include(cmake/OpenCVGenHeaders.cmake)
+
+ # Generate opencv.pc for pkg-config command
+-if(NOT OPENCV_SKIP_PKGCONFIG_GENERATION
+- AND OPENCV_GENERATE_PKGCONFIG
+- AND NOT CMAKE_GENERATOR MATCHES "Xcode")
+- include(cmake/OpenCVGenPkgconfig.cmake)
+-endif()
+
+ # Generate OpenCV.mk for ndk-build (Android build tool)
+-include(cmake/OpenCVGenAndroidMK.cmake)
+
+ # Generate OpenCVConfig.cmake and OpenCVConfig-version.cmake for cmake projects
+ include(cmake/OpenCVGenConfig.cmake)
+
+ # Generate Info.plist for the IOS framework
+-if(APPLE_FRAMEWORK)
+- include(cmake/OpenCVGenInfoPlist.cmake)
+-endif()
+
+ # Generate ABI descriptor
+ include(cmake/OpenCVGenABI.cmake)
+@@ -973,12 +953,6 @@ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PA
+ endif()
+ endif()
+
+-if(NOT OPENCV_README_FILE)
+- if(ANDROID)
+- set(OPENCV_README_FILE ${CMAKE_CURRENT_SOURCE_DIR}/platforms/android/README.android)
+- endif()
+-endif()
+-
+ if(NOT OPENCV_LICENSE_FILE)
+ set(OPENCV_LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
+ endif()
+@@ -988,11 +962,6 @@ if(ANDROID OR NOT UNIX)
+ install(FILES ${OPENCV_LICENSE_FILE}
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ DESTINATION ./ COMPONENT libs)
+- if(OPENCV_README_FILE)
+- install(FILES ${OPENCV_README_FILE}
+- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+- DESTINATION ./ COMPONENT libs)
+- endif()
+ endif()
+
+ if(COMMAND ocv_pylint_finalize)
+diff -Nuarp opencv-3.4.20.orig/data/CMakeLists.txt opencv-3.4.20/data/CMakeLists.txt
+--- opencv-3.4.20.orig/data/CMakeLists.txt 2023-06-27 19:29:13.000000000 +0800
++++ opencv-3.4.20/data/CMakeLists.txt 2023-12-09 21:23:02.838290043 +0800
+@@ -1,9 +1,6 @@
+ file(GLOB HAAR_CASCADES haarcascades/*.xml)
+ file(GLOB LBP_CASCADES lbpcascades/*.xml)
+
+-install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs)
+-install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs)
+-
+ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
+ install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
+ endif()
+diff -Nuarp opencv-3.4.20.orig/platforms/android/service/CMakeLists.txt opencv-3.4.20/platforms/android/service/CMakeLists.txt
+--- opencv-3.4.20.orig/platforms/android/service/CMakeLists.txt 2023-06-27 19:29:13.000000000 +0800
++++ opencv-3.4.20/platforms/android/service/CMakeLists.txt 2023-12-09 21:23:41.098079796 +0800
+@@ -1,5 +1,3 @@
+ if(BUILD_ANDROID_SERVICE)
+ add_subdirectory(engine)
+ endif()
+-
+-install(FILES "readme.txt" DESTINATION "apk/" COMPONENT libs)
diff --git a/opencv-3.4.20-no-rtti.patch b/patches/opencv-3.4.20-no-rtti.patch
similarity index 100%
rename from opencv-3.4.20-no-rtti.patch
rename to patches/opencv-3.4.20-no-rtti.patch
diff --git a/opencv-3.4.20-no-zlib.patch b/patches/opencv-3.4.20-no-zlib.patch
similarity index 100%
rename from opencv-3.4.20-no-zlib.patch
rename to patches/opencv-3.4.20-no-zlib.patch
diff --git a/opencv-3.4.20-unsafe-xadd.patch b/patches/opencv-3.4.20-unsafe-xadd.patch
similarity index 100%
rename from opencv-3.4.20-unsafe-xadd.patch
rename to patches/opencv-3.4.20-unsafe-xadd.patch
diff --git a/patches/opencv-4.8.1-drawing-mono-font.patch b/patches/opencv-4.8.1-drawing-mono-font.patch
new file mode 100644
index 0000000..c17d6b8
--- /dev/null
+++ b/patches/opencv-4.8.1-drawing-mono-font.patch
@@ -0,0 +1,136 @@
+diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modules/imgproc/src/drawing.cpp
+--- opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp 2023-09-27 18:18:31.000000000 +0800
++++ opencv-4.8.1/modules/imgproc/src/drawing.cpp 2023-12-09 17:24:35.811627301 +0800
+@@ -40,6 +40,8 @@
+ //M*/
+ #include "precomp.hpp"
+
++#include "draw_text.h"
++
+ namespace cv
+ {
+
+@@ -2074,6 +2076,7 @@ void polylines( InputOutputArray _img, c
+ }
+
+
++#if 0
+ enum { FONT_SIZE_SHIFT=8, FONT_ITALIC_ALPHA=(1 << 8),
+ FONT_ITALIC_DIGIT=(2 << 8), FONT_ITALIC_PUNCT=(4 << 8),
+ FONT_ITALIC_BRACES=(8 << 8), FONT_HAVE_GREEK=(16 << 8),
+@@ -2288,6 +2291,7 @@ inline void readCheck(int &c, int &i, co
+ }
+
+ extern const char* g_HersheyGlyphs[];
++#endif
+
+ void putText( InputOutputArray _img, const String& text, Point org,
+ int fontFace, double fontScale, Scalar color,
+@@ -2301,6 +2305,35 @@ void putText( InputOutputArray _img, con
+ return;
+ }
+ Mat img = _img.getMat();
++
++ const int fontpixelsize = 8 * fontScale;
++ const int base_line = 4 * fontScale;
++ const int yoffset = bottomLeftOrigin ? img.rows - org.y - fontpixelsize * 2 + base_line : org.y - fontpixelsize * 2 + base_line;
++
++ unsigned int _color = 0;
++ unsigned char* border_color = (unsigned char*)&_color;
++
++ if (img.channels() == 1)
++ {
++ border_color[0] = color[0];
++ draw_text_c1(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++ else if (img.channels() == 3)
++ {
++ border_color[0] = color[0];
++ border_color[1] = color[1];
++ border_color[2] = color[2];
++ draw_text_c3(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++ else if (img.channels() == 4)
++ {
++ border_color[0] = color[0];
++ border_color[1] = color[1];
++ border_color[2] = color[2];
++ border_color[3] = color[3];
++ draw_text_c4(img.data, img.cols, img.rows, text.c_str(), org.x, yoffset, fontpixelsize, _color);
++ }
++#if 0
+ const int* ascii = getFontData(fontFace);
+
+ double buf[4];
+@@ -2355,10 +2388,21 @@ void putText( InputOutputArray _img, con
+ }
+ view_x += dx;
+ }
++#endif
+ }
+
+ Size getTextSize( const String& text, int fontFace, double fontScale, int thickness, int* _base_line)
+ {
++ const int fontpixelsize = 8 * fontScale;
++
++ int w;
++ int h;
++ get_text_drawing_size(text.c_str(), fontpixelsize, &w, &h);
++
++ *_base_line = 4 * fontScale;
++
++ return Size(w, h);
++#if 0
+ Size size;
+ double view_x = 0;
+ const char **faces = cv::g_HersheyGlyphs;
+@@ -2385,10 +2429,13 @@ Size getTextSize( const String& text, in
+ if( _base_line )
+ *_base_line = cvRound(base_line*fontScale + thickness*0.5);
+ return size;
++#endif
+ }
+
+ double getFontScaleFromHeight(const int fontFace, const int pixelHeight, const int thickness)
+ {
++ return pixelHeight / 16.0;
++#if 0
+ // By https://stackoverflow.com/a/27898487/1531708
+ const int* ascii = getFontData(fontFace);
+
+@@ -2396,6 +2443,7 @@ double getFontScaleFromHeight(const int
+ int cap_line = (ascii[0] >> 4) & 15;
+
+ return static_cast(pixelHeight - static_cast((thickness + 1)) / 2.0) / static_cast(cap_line + base_line);
++#endif
+ }
+
+ }
+@@ -2897,7 +2945,7 @@ cvInitFont( CvFont *font, int font_face,
+ {
+ CV_Assert( font != 0 && hscale > 0 && vscale > 0 && thickness >= 0 );
+
+- font->ascii = cv::getFontData(font_face);
++ font->ascii = 0;
+ font->font_face = font_face;
+ font->hscale = (float)hscale;
+ font->vscale = (float)vscale;
+diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/hershey_fonts.cpp opencv-4.8.1/modules/imgproc/src/hershey_fonts.cpp
+--- opencv-4.8.1.orig/modules/imgproc/src/hershey_fonts.cpp 2023-09-27 18:18:31.000000000 +0800
++++ opencv-4.8.1/modules/imgproc/src/hershey_fonts.cpp 2023-12-09 17:22:38.027235607 +0800
+@@ -51,6 +51,7 @@
+ namespace cv
+ {
+
++#if 0
+ const char* g_HersheyGlyphs[] = {
+ "",
+ "MWRMNV RMVV PSTS",
+@@ -3353,6 +3354,7 @@ const char* g_HersheyGlyphs[] = {
+ "",
+ "",
+ 0 };
++#endif
+
+ }
+
diff --git a/opencv-4.8.1-fix-emscripten-include.patch b/patches/opencv-4.8.1-fix-emscripten-include.patch
similarity index 100%
rename from opencv-4.8.1-fix-emscripten-include.patch
rename to patches/opencv-4.8.1-fix-emscripten-include.patch
diff --git a/opencv-4.8.1-link-openmp.patch b/patches/opencv-4.8.1-link-openmp.patch
similarity index 100%
rename from opencv-4.8.1-link-openmp.patch
rename to patches/opencv-4.8.1-link-openmp.patch
diff --git a/patches/opencv-4.8.1-minimal-install.patch b/patches/opencv-4.8.1-minimal-install.patch
new file mode 100644
index 0000000..5c267e6
--- /dev/null
+++ b/patches/opencv-4.8.1-minimal-install.patch
@@ -0,0 +1,132 @@
+diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVGenAndroidMK.cmake opencv-4.8.1/cmake/OpenCVGenAndroidMK.cmake
+--- opencv-4.8.1.orig/cmake/OpenCVGenAndroidMK.cmake 2023-09-27 18:18:31.000000000 +0800
++++ opencv-4.8.1/cmake/OpenCVGenAndroidMK.cmake 2023-12-09 21:26:00.941311325 +0800
+@@ -76,6 +76,4 @@ if(ANDROID)
+
+ configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" @ONLY)
+ configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV-abi.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV-${ANDROID_NDK_ABI_NAME}.mk" @ONLY)
+- install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
+- install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV-${ANDROID_NDK_ABI_NAME}.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
+ endif(ANDROID)
+diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVGenConfig.cmake opencv-4.8.1/cmake/OpenCVGenConfig.cmake
+--- opencv-4.8.1.orig/cmake/OpenCVGenConfig.cmake 2023-12-09 17:15:45.506366104 +0800
++++ opencv-4.8.1/cmake/OpenCVGenConfig.cmake 2023-12-09 21:26:12.381248460 +0800
+@@ -124,7 +124,6 @@ endif()
+
+ if(ANDROID)
+ ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "abi-${ANDROID_NDK_ABI_NAME}" "OpenCVConfig.root-ANDROID.cmake.in")
+- install(FILES "${OpenCV_SOURCE_DIR}/platforms/android/android.toolchain.cmake" DESTINATION "${OPENCV_CONFIG_INSTALL_PATH}" COMPONENT dev)
+ endif()
+
+ # --------------------------------------------------------------------------------------------
+diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVUtils.cmake opencv-4.8.1/cmake/OpenCVUtils.cmake
+--- opencv-4.8.1.orig/cmake/OpenCVUtils.cmake 2023-09-27 18:18:31.000000000 +0800
++++ opencv-4.8.1/cmake/OpenCVUtils.cmake 2023-12-09 21:26:33.587131928 +0800
+@@ -976,11 +976,6 @@ macro(ocv_finalize_status)
+ endif()
+ endif()
+
+- if(UNIX)
+- install(FILES "${OpenCV_SOURCE_DIR}/platforms/scripts/valgrind.supp"
+- "${OpenCV_SOURCE_DIR}/platforms/scripts/valgrind_3rdparty.supp"
+- DESTINATION "${OPENCV_OTHER_INSTALL_PATH}" COMPONENT "dev")
+- endif()
+ endmacro()
+
+
+diff -Nuarp opencv-4.8.1.orig/CMakeLists.txt opencv-4.8.1/CMakeLists.txt
+--- opencv-4.8.1.orig/CMakeLists.txt 2023-09-27 18:18:31.000000000 +0800
++++ opencv-4.8.1/CMakeLists.txt 2023-12-10 12:43:42.006337472 +0800
+@@ -967,24 +967,13 @@ ocv_add_modules_compiler_options()
+ ocv_register_modules()
+
+ # Generate targets for documentation
+-add_subdirectory(doc)
+
+ # various data that is used by cv libraries and/or demo applications.
+-add_subdirectory(data)
+
+ # extra applications
+-if(BUILD_opencv_apps)
+- add_subdirectory(apps)
+-endif()
+
+ # examples
+-if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_C_EXAMPLES)
+- add_subdirectory(samples)
+-endif()
+
+-if(ANDROID)
+- add_subdirectory(platforms/android/service)
+-endif()
+
+ # ----------------------------------------------------------------------------
+ # Finalization: generate configuration-based files
+@@ -996,20 +985,13 @@ ocv_cmake_hook(PRE_FINALIZE)
+ include(cmake/OpenCVGenHeaders.cmake)
+
+ # Generate opencv.pc for pkg-config command
+-if(OPENCV_GENERATE_PKGCONFIG)
+- include(cmake/OpenCVGenPkgconfig.cmake)
+-endif()
+
+ # Generate OpenCV.mk for ndk-build (Android build tool)
+-include(cmake/OpenCVGenAndroidMK.cmake)
+
+ # Generate OpenCVConfig.cmake and OpenCVConfig-version.cmake for cmake projects
+ include(cmake/OpenCVGenConfig.cmake)
+
+ # Generate Info.plist for the IOS framework
+-if(APPLE_FRAMEWORK)
+- include(cmake/OpenCVGenInfoPlist.cmake)
+-endif()
+
+ # Generate ABI descriptor
+ include(cmake/OpenCVGenABI.cmake)
+@@ -1035,12 +1017,6 @@ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PA
+ endif()
+ endif()
+
+-if(NOT OPENCV_README_FILE)
+- if(ANDROID)
+- set(OPENCV_README_FILE ${CMAKE_CURRENT_SOURCE_DIR}/platforms/android/README.android)
+- endif()
+-endif()
+-
+ if(NOT OPENCV_LICENSE_FILE)
+ set(OPENCV_LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
+ endif()
+@@ -1050,11 +1026,6 @@ if(ANDROID OR NOT UNIX)
+ install(FILES ${OPENCV_LICENSE_FILE}
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ DESTINATION ./ COMPONENT libs)
+- if(OPENCV_README_FILE)
+- install(FILES ${OPENCV_README_FILE}
+- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+- DESTINATION ./ COMPONENT libs)
+- endif()
+ endif()
+
+ if(COMMAND ocv_pylint_finalize)
+diff -Nuarp opencv-4.8.1.orig/data/CMakeLists.txt opencv-4.8.1/data/CMakeLists.txt
+--- opencv-4.8.1.orig/data/CMakeLists.txt 2023-09-27 18:18:31.000000000 +0800
++++ opencv-4.8.1/data/CMakeLists.txt 2023-12-09 21:26:45.381067118 +0800
+@@ -1,9 +1,6 @@
+ file(GLOB HAAR_CASCADES haarcascades/*.xml)
+ file(GLOB LBP_CASCADES lbpcascades/*.xml)
+
+-install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs)
+-install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs)
+-
+ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
+ install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
+ endif()
+diff -Nuarp opencv-4.8.1.orig/platforms/android/service/CMakeLists.txt opencv-4.8.1/platforms/android/service/CMakeLists.txt
+--- opencv-4.8.1.orig/platforms/android/service/CMakeLists.txt 2023-09-27 18:18:31.000000000 +0800
++++ opencv-4.8.1/platforms/android/service/CMakeLists.txt 2023-12-09 21:27:16.220897645 +0800
+@@ -6,5 +6,3 @@ endif()
+ if(BUILD_ANDROID_SERVICE)
+ add_subdirectory(engine)
+ endif()
+-
+-install(FILES "readme.txt" DESTINATION "apk/" COMPONENT libs)
diff --git a/opencv-4.8.1-no-atomic.patch b/patches/opencv-4.8.1-no-atomic.patch
similarity index 100%
rename from opencv-4.8.1-no-atomic.patch
rename to patches/opencv-4.8.1-no-atomic.patch
diff --git a/opencv-4.8.1-no-rtti.patch b/patches/opencv-4.8.1-no-rtti.patch
similarity index 100%
rename from opencv-4.8.1-no-rtti.patch
rename to patches/opencv-4.8.1-no-rtti.patch
diff --git a/opencv-4.8.1-no-zlib.patch b/patches/opencv-4.8.1-no-zlib.patch
similarity index 100%
rename from opencv-4.8.1-no-zlib.patch
rename to patches/opencv-4.8.1-no-zlib.patch
diff --git a/opencv-4.8.1-unsafe-xadd.patch b/patches/opencv-4.8.1-unsafe-xadd.patch
similarity index 100%
rename from opencv-4.8.1-unsafe-xadd.patch
rename to patches/opencv-4.8.1-unsafe-xadd.patch