From dd6063730d76daa9ae3d2f41da515e48554245e3 Mon Sep 17 00:00:00 2001 From: nihui Date: Sun, 10 Dec 2023 20:45:28 +0800 Subject: [PATCH] drawing mono font, ci matrix release, source package (#76) --- .github/workflows/release.yml | 4665 +++-------------- README.md | 58 +- opencv4_cmake_options.txt | 2 + Info.plist => patches/Info.plist | 4 +- patches/draw_text.h | 691 +++ patches/mono_font_data.h | 3877 ++++++++++++++ .../opencv-2.4.13.7-drawing-mono-font.patch | 120 + .../opencv-2.4.13.7-enable-cxx11.patch | 0 .../opencv-2.4.13.7-fix-highgui-include.patch | 0 .../opencv-2.4.13.7-link-openmp.patch | 0 patches/opencv-2.4.13.7-minimal-install.patch | 137 + .../opencv-2.4.13.7-newer-msvc.patch | 0 .../opencv-2.4.13.7-no-link-stdc++.patch | 0 .../opencv-2.4.13.7-no-local-static.patch | 0 .../opencv-2.4.13.7-no-rtti.patch | 0 .../opencv-2.4.13.7-no-zlib.patch | 0 .../opencv-2.4.13.7-unsafe-xadd.patch | 0 patches/opencv-3.4.20-drawing-mono-font.patch | 136 + ...opencv-3.4.20-fix-emscripten-include.patch | 0 .../opencv-3.4.20-link-openmp.patch | 0 patches/opencv-3.4.20-minimal-install.patch | 134 + .../opencv-3.4.20-no-rtti.patch | 0 .../opencv-3.4.20-no-zlib.patch | 0 .../opencv-3.4.20-unsafe-xadd.patch | 0 patches/opencv-4.8.1-drawing-mono-font.patch | 136 + .../opencv-4.8.1-fix-emscripten-include.patch | 0 .../opencv-4.8.1-link-openmp.patch | 0 patches/opencv-4.8.1-minimal-install.patch | 132 + .../opencv-4.8.1-no-atomic.patch | 0 .../opencv-4.8.1-no-rtti.patch | 0 .../opencv-4.8.1-no-zlib.patch | 0 .../opencv-4.8.1-unsafe-xadd.patch | 0 32 files changed, 6159 insertions(+), 3933 deletions(-) rename Info.plist => patches/Info.plist (88%) create mode 100644 patches/draw_text.h create mode 100644 patches/mono_font_data.h create mode 100644 patches/opencv-2.4.13.7-drawing-mono-font.patch rename opencv-2.4.13.7-enable-cxx11.patch => patches/opencv-2.4.13.7-enable-cxx11.patch (100%) rename opencv-2.4.13.7-fix-highgui-include.patch => patches/opencv-2.4.13.7-fix-highgui-include.patch (100%) rename opencv-2.4.13.7-link-openmp.patch => patches/opencv-2.4.13.7-link-openmp.patch (100%) create mode 100644 patches/opencv-2.4.13.7-minimal-install.patch rename opencv-2.4.13.7-newer-msvc.patch => patches/opencv-2.4.13.7-newer-msvc.patch (100%) rename opencv-2.4.13.7-no-link-stdc++.patch => patches/opencv-2.4.13.7-no-link-stdc++.patch (100%) rename opencv-2.4.13.7-no-local-static.patch => patches/opencv-2.4.13.7-no-local-static.patch (100%) rename opencv-2.4.13.7-no-rtti.patch => patches/opencv-2.4.13.7-no-rtti.patch (100%) rename opencv-2.4.13.7-no-zlib.patch => patches/opencv-2.4.13.7-no-zlib.patch (100%) rename opencv-2.4.13.7-unsafe-xadd.patch => patches/opencv-2.4.13.7-unsafe-xadd.patch (100%) create mode 100644 patches/opencv-3.4.20-drawing-mono-font.patch rename opencv-3.4.20-fix-emscripten-include.patch => patches/opencv-3.4.20-fix-emscripten-include.patch (100%) rename opencv-3.4.20-link-openmp.patch => patches/opencv-3.4.20-link-openmp.patch (100%) create mode 100644 patches/opencv-3.4.20-minimal-install.patch rename opencv-3.4.20-no-rtti.patch => patches/opencv-3.4.20-no-rtti.patch (100%) rename opencv-3.4.20-no-zlib.patch => patches/opencv-3.4.20-no-zlib.patch (100%) rename opencv-3.4.20-unsafe-xadd.patch => patches/opencv-3.4.20-unsafe-xadd.patch (100%) create mode 100644 patches/opencv-4.8.1-drawing-mono-font.patch rename opencv-4.8.1-fix-emscripten-include.patch => patches/opencv-4.8.1-fix-emscripten-include.patch (100%) rename opencv-4.8.1-link-openmp.patch => patches/opencv-4.8.1-link-openmp.patch (100%) create mode 100644 patches/opencv-4.8.1-minimal-install.patch rename opencv-4.8.1-no-atomic.patch => patches/opencv-4.8.1-no-atomic.patch (100%) rename opencv-4.8.1-no-rtti.patch => patches/opencv-4.8.1-no-rtti.patch (100%) rename opencv-4.8.1-no-zlib.patch => patches/opencv-4.8.1-no-zlib.patch (100%) rename opencv-4.8.1-unsafe-xadd.patch => patches/opencv-4.8.1-unsafe-xadd.patch (100%) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 608b5ec9..d0183f6f 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,389 +20,284 @@ 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 - - android-opencv4: - runs-on: ubuntu-latest - env: - OPENCV_VERSION: 4.8.1 - PACKAGENAME: opencv-mobile-4.8.1-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 }} + - 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 - 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 ../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/ - - 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 ../../opencv4_cmake_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 }} - 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 --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 ../../opencv4_cmake_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 }} - 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 --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 }} - - 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-opencv3: - runs-on: ubuntu-latest - 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 }} + 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 ../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 ../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/ - - 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 + 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: ${{ env.PACKAGENAME }} - path: ${{ env.PACKAGENAME }}.zip + name: opencv-mobile-4.8.1-source + path: opencv-mobile-4.8.1.zip - android-opencv2: + android: + needs: [setup] runs-on: ubuntu-latest + strategy: + matrix: + opencv-version: [2.4.13.7, 3.4.20, 4.8.1] env: - OPENCV_VERSION: 2.4.13.7 - PACKAGENAME: opencv-mobile-2.4.13.7-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 - 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/ + 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 ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF .. + 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 ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF -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 ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF .. + 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 ../../opencv2_cmake_options.txt` -DBUILD_opencv_world=OFF .. + 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 -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 }} + 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 - ios-opencv4: + 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: - OPENCV_VERSION: 4.8.1 - PACKAGENAME: opencv-mobile-4.8.1-ios + 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 - - 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 - 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 }}-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 opencv-${{ env.OPENCV_VERSION }} + cd ${{ env.SOURCE_DIR }} 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 ${{ 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 opencv-${{ env.OPENCV_VERSION }} + cd ${{ env.SOURCE_DIR }} 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 ${{ 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 opencv-${{ env.OPENCV_VERSION }} + cd ${{ env.SOURCE_DIR }} 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 ${{ 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: | @@ -415,76 +309,95 @@ jobs: 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 \ + ${{ 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 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 + 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=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 ${{ 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.PACKAGENAME }} - path: ${{ env.PACKAGENAME }}.zip + name: ${{ env.PACKAGE_NAME }} + path: ${{ env.PACKAGE_NAME }}.zip - ios-opencv3: + 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: - OPENCV_VERSION: 3.4.20 - PACKAGENAME: opencv-mobile-3.4.20-ios + 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 - - 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-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 + 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: | - 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 + 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-arm64 + - name: build-x86_64 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 + 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-arm64e + - name: build-arm64 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 + 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: | @@ -496,102 +409,169 @@ jobs: 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 \ + ${{ 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 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 + 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 -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 ${{ 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.PACKAGENAME }} - path: ${{ env.PACKAGENAME }}.zip + name: ${{ env.PACKAGE_NAME }} + path: ${{ env.PACKAGE_NAME }}.zip - ios-opencv2: - runs-on: macos-12 + armlinux: + needs: [setup] + runs-on: ubuntu-latest + strategy: + matrix: + opencv-version: [2.4.13.7, 3.4.20, 4.8.1] env: - OPENCV_VERSION: 2.4.13.7 - PACKAGENAME: opencv-mobile-2.4.13.7-ios + 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: | + 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 + - 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-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/ + 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 ${{ env.SOURCE_DIR }} + mkdir build-arm-linux-gnueabi && cd build-arm-linux-gnueabi + 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 ${{ env.SOURCE_DIR }} + mkdir build-arm-linux-gnueabihf && cd build-arm-linux-gnueabihf + 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 ${{ env.SOURCE_DIR }} + mkdir build-aarch64-linux-gnu && cd build-aarch64-linux-gnu + 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.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 ${{ 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 ${{ 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 ${{ 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.PACKAGE_NAME }} + path: ${{ env.PACKAGE_NAME }}.zip + macos: + needs: [setup] + runs-on: macos-12 + strategy: + matrix: + opencv-version: [2.4.13.7, 3.4.20, 4.8.1] + env: + 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 + - 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 }}-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' modules/world/CMakeLists.txt - - - name: build-armv7 + sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt + - name: build-x86_64 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" - + cd ${{ env.SOURCE_DIR }} + mkdir build-x86_64 && cd build-x86_64 + cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC -DARCHS="x86_64" \ + `cat ../options.txt` -DBUILD_opencv_world=ON .. # 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 . -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=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" - + cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \ + `cat ../options.txt` -DBUILD_opencv_world=ON .. # 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 . -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: | @@ -603,77 +583,92 @@ jobs: 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 \ + ${{ 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 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 + 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 && 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 .. + mkdir build-x86_64 && cd build-x86_64 + 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 ${{ 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 - ios-opencv4-bitcode: + 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: 4.8.1 - PACKAGENAME: opencv-mobile-4.8.1-ios-bitcode + 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 - 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 + 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: | - 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 + 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 ${{ 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 .. + # 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=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 ${{ 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: | @@ -685,3005 +680,155 @@ jobs: 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 \ + ${{ 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 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 + 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=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 ${{ 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 - - ios-opencv3-bitcode: - runs-on: macos-12 + name: ${{ env.PACKAGE_NAME }} + path: ${{ env.PACKAGE_NAME }}.zip + + 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-ios-bitcode + 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 - 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 - 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 - 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-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 ../../opencv4_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 ../../opencv4_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 ../../opencv4_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/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 }} - - 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 --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 --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 --build . -j 2 - - name: upload-zip - uses: actions/upload-artifact@v3 - with: - name: ${{ env.PACKAGENAME }} - path: ${{ env.PACKAGENAME }}.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: - runs-on: macos-12 - env: - OPENCV_VERSION: 4.8.1 - PACKAGENAME: opencv-mobile-4.8.1-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 - 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 -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 --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 ../../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-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-opencv3: - runs-on: macos-12 - env: - OPENCV_VERSION: 3.4.20 - PACKAGENAME: opencv-mobile-3.4.20-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-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 -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 --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 ../../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-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 - - 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-opencv3: - runs-on: macos-12 - env: - OPENCV_VERSION: 3.4.20 - PACKAGENAME: opencv-mobile-3.4.20-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-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=$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 - 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 - 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-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 + - uses: actions/download-artifact@v3 with: - release: false - install: >- - base-devel - - uses: actions/checkout@v3 - - name: opencv-source + name: opencv-mobile-${{ matrix.opencv-version }}-source + - name: setup-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\" + 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 }} + cd ${{ env.SOURCE_DIR }} 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 ${{ 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 }} + cd ${{ env.SOURCE_DIR }} 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 ${{ 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.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 }} + 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 -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: - runs-on: ubuntu-20.04 - 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 - 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-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/ - - name: build - run: | - source emsdk/emsdk_env.sh - cd opencv-${{ env.OPENCV_VERSION }} - patch -p1 -i ../opencv-4.8.1-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 ../../opencv4_cmake_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 }} - 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 ../../opencv4_cmake_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 - 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 ../../opencv4_cmake_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 }} - 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 ../../opencv4_cmake_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 }} - - 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 --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 --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 --build . -j 2 - - name: test-simd-threads + 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-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 --build . -j 2 - - name: upload + 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.PACKAGENAME }} - path: ${{ env.PACKAGENAME }}.zip - - webassembly-opencv3: - runs-on: ubuntu-20.04 + 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: - OPENCV_VERSION: 3.4.20 - PACKAGENAME: opencv-mobile-3.4.20-webassembly + COMMON_CMAKE_OPTIONS: -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release 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 + - 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-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/ + 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: | - source emsdk/emsdk_env.sh - cd opencv-${{ env.OPENCV_VERSION }} - patch -p1 -i ../opencv-3.4.20-unsafe-xadd.patch + cd ${{ env.SOURCE_DIR }} 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 ${{ env.COMMON_CMAKE_OPTIONS }} `cat ../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 }} + 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=../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 ${{ 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 - webassembly-opencv2: + 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: 2.4.13.7 - PACKAGENAME: opencv-mobile-2.4.13.7-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 @@ -3692,594 +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-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/ + 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-2.4.13.7-unsafe-xadd.patch - patch -p1 -i ../opencv-2.4.13.7-no-local-static.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 \ - -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 ${{ 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" \ + `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 \ - -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 ${{ 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" \ + `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-2.4.13.7-unsafe-xadd.patch - patch -p1 -R -i ../opencv-2.4.13.7-no-local-static.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 \ - -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 ${{ 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" \ + `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 \ - -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 ${{ 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" \ + `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/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 }} + 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/share/OpenCV .. + 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/share/OpenCV .. + 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/share/OpenCV .. + 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/share/OpenCV .. + 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 - apple-opencv4: - needs: [macos-opencv4, ios-opencv4, ios-simulator-opencv4, mac-catalyst-opencv4] + apple: + needs: [macos, ios, ios-simulator, mac-catalyst] runs-on: macos-12 - env: - OPENCV_VERSION: 4.8.1 - PACKAGENAME: opencv-mobile-4.8.1-apple + 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 - - name: download + - uses: actions/checkout@v3 + - name: setup-opencv-package + if: matrix.bitcode == 'OFF' + run: | + 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: | + 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: 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-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 + name: ${{ env.MACOS_PACKAGE_NAME }} + - name: download-ios-package 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 + name: ${{ env.IOS_PACKAGE_NAME }} + - name: download-ios-simulator-package 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 + name: ${{ env.IOS_SIMULATOR_PACKAGE_NAME }} + - name: download-mac-catalyst-package uses: actions/download-artifact@v3 with: - path: artifacts - + name: ${{ env.MAC_CATALYST_PACKAGE_NAME }} - 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 - + 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-bitcode/opencv2.framework \ - -framework opencv-mobile-ios-simulator-bitcode/opencv2.framework \ - -framework opencv-mobile-mac-catalyst-bitcode/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 - - 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 + name: ${{ env.PACKAGE_NAME }} + path: ${{ env.PACKAGE_NAME }}.zip - 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 + devboard: + needs: [setup] + runs-on: ubuntu-latest + 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 + + - 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 + + - 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 - 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 + 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 \ - 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: - 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 + - uses: actions/download-artifact@v3 with: - name: ${{ env.PACKAGENAME }} - path: ${{ env.PACKAGENAME }}.zip - - 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 + name: opencv-mobile-4.8.1-source + - name: setup-opencv-source 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 + 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 }} - 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 + - 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-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 }} + cd ${{ env.SOURCE_DIR }} + patch -p1 -i ../patches/opencv-4.8.1-no-atomic.patch 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 .. + ${{ 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: 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 - purple-pi-opencv4: - runs-on: ubuntu-latest - env: - OPENCV_VERSION: 4.8.1 - PACKAGENAME: opencv-mobile-4.8.1-purple-pi - steps: - - uses: actions/checkout@v3 - - name: toolchain - 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 - 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 + - name: build-enable-thread + if: ${{ ! matrix.single-core }} run: | - cd opencv-${{ env.OPENCV_VERSION }} + cd ${{ env.SOURCE_DIR }} 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 .. 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 75b720c1..73158ffc 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** -```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 -``` +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` -**step 2. strip zlib dependency and use stb-based highgui implementation (optional)** +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 -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/ +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 3. patch opencv source for no-rtti build (optional)** +**step 2. apply your opencv option changes to options.txt** ```shell -patch -p1 -i ../opencv-4.8.1-no-rtti.patch +vim options.txt ``` -**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 c657bf57..ec6783a6 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 550f4b63..b5a76c86 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 00000000..aab1f810 --- /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 00000000..7c287a26 --- /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 00000000..4d9aa7c1 --- /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 00000000..9c545e69 --- /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 00000000..06517bc1 --- /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 00000000..254ce1f8 --- /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 00000000..c17d6b80 --- /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 00000000..5c267e67 --- /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