react-native icon indicating copy to clipboard operation
react-native copied to clipboard

iOS fails to run on version 0.72.1, 'react/debug/react_native_assert.h' file not found on RunLoopObserver.cpp (React-utils)

Open maksibajo4 opened this issue 11 months ago • 78 comments

Description

I get the error: 'react/debug/react_native_assert.h' file not found, React-utils/RunLoopObserver. This is my Podfile:

# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

platform :ios, '13.0'
prepare_react_native_project!

flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled


dynamic_frameworks = [
    'Starscream',
    'iProov',
    'DatadogSDK',
    'SwiftProtobuf',
]
pre_install do |installer|
  installer.pod_targets.each do |pod|
    if !dynamic_frameworks.include?(pod.name)
      puts "Overriding the static_framework? method for #{pod.name}"
      def pod.static_framework?;
        true
      end
      def pod.build_type;
        Pod::BuildType.static_library
      end
    end
  end
end

target 'POK' do
  use_frameworks! :linkage => :static
  config = use_native_modules!
  flags = get_default_flags()

  use_react_native!(
    :path => config[:reactNativePath],
    :hermes_enabled => true,
    :fabric_enabled => flags[:fabric_enabled],
    :flipper_configuration => FlipperConfiguration.disabled,
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )
  
  permissions_path = '../node_modules/react-native-permissions/ios'
  pod 'Permission-Camera', :path => "#{permissions_path}/Camera"
  pod 'Permission-Contacts', :path => "#{permissions_path}/Contacts"
  pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications"
  pod 'Google-Maps-iOS-Utils', :git => 'https://github.com/Simon-TechForm/google-maps-ios-utils.git', :branch => 'feat/support-apple-silicon'
  pod 'SRSRadialGradient', :path => '../node_modules/react-native-radial-gradient/ios'
  pod 'FirebaseCoreExtension', :modular_headers => true
  pod 'FirebaseInstallations', :modular_headers => true
  pod 'GoogleDataTransport', :modular_headers => true
  pod 'nanopb', :modular_headers => true
  pod 'FirebaseCore', :modular_headers => true
  pod 'FirebaseCoreInternal', :modular_headers => true
  pod 'GoogleUtilities', :modular_headers => true
  $RNFirebaseAsStaticFramework = true

  rn_maps_path = '../node_modules/react-native-maps'
  pod 'react-native-google-maps', :path => rn_maps_path

  target 'POKTests' do
    inherit! :complete
    # Pods for testing
  end

  post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
        end
      end
      installer.generated_projects.each do |project|
        project.targets.each do |target|
          target.build_configurations.each do |config|
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
          end
        end
      end
      `sed -i -e  $'s/__IPHONE_10_0/__IPHONE_13_0/' #{installer.sandbox.root}/RCT-Folly/folly/portability/Time.h`
      path = "Pods/Target Support Files/Pods-POK/Pods-POK-frameworks.sh"
      lines = File.readlines(path)
      lines.insert(177, 'install_framework "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework"'+"\n")
      File.write(path, lines.join, mode: "w")
  end
end


### React Native Version

0.72.1

### Output of `npx react-native info`

System:
  OS: macOS 13.0
  CPU: (8) x64 Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
  Memory: 74.79 MB / 32.00 GB
  Shell:
    version: 5.8.1
    path: /bin/zsh
Binaries:
  Node:
    version: 18.16.1
    path: ~/.nvm/versions/node/v18.16.1/bin/node
  Yarn:
    version: 1.22.18
    path: /usr/local/bin/yarn
  npm:
    version: 9.5.1
    path: ~/.nvm/versions/node/v18.16.1/bin/npm
  Watchman:
    version: 2023.07.03.00
    path: /usr/local/bin/watchman
Managers:
  CocoaPods:
    version: 1.12.1
    path: /usr/local/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 22.4
      - iOS 16.4
      - macOS 13.3
      - tvOS 16.4
      - watchOS 9.4
  Android SDK:
    API Levels:
      - "23"
      - "28"
      - "29"
      - "30"
      - "31"
      - "32"
      - "33"
    Build Tools:
      - 28.0.3
      - 29.0.0
      - 29.0.2
      - 29.0.3
      - 30.0.2
      - 30.0.3
      - 31.0.0
      - 32.0.0
      - 33.0.0
    System Images:
      - android-24 | Google Play Intel x86 Atom
      - android-29 | Intel x86 Atom_64
      - android-30 | Intel x86 Atom_64
      - android-30 | Google APIs Intel x86 Atom
      - android-30 | Google Play Intel x86 Atom
      - android-31 | Intel x86 Atom_64
      - android-33 | Google APIs Intel x86 Atom_64
      - android-33 | Google Play Intel x86 Atom_64
    Android NDK: Not Found
IDEs:
  Android Studio: 2022.2 AI-222.4459.24.2221.10121639
  Xcode:
    version: 14.3.1/14E300c
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.1
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.1
    wanted: 0.72.1
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

### Steps to reproduce

i migrated my app to a new clean version of a React native 0.72.1. i install my dependencies successfully using `yarn install`, then i run `pod install` successfully, but when i try to run the project on iOS, it throws me `'react/debug/react_native_assert.h' file not found` error.
Here's my package.json

{ "name": "POK", "version": "0.0.1", "private": true, "scripts": { "postinstall": "patch-package", "android": "react-native run-android", "ios": "react-native run-ios", "lint": "eslint .", "start": "react-native start", "test": "jest" }, "dependencies": { "@react-native-async-storage/async-storage": "^1.19.0", "@react-native-clipboard/clipboard": "^1.11.2", "@react-native-community/blur": "^4.3.2", "@react-native-community/netinfo": "^9.4.1", "@react-native-firebase/analytics": "^18.1.0", "@react-native-firebase/app": "^18.1.0", "@react-native-firebase/crashlytics": "^18.1.0", "@react-native-firebase/messaging": "^18.1.0", "@react-navigation/bottom-tabs": "^6.5.8", "@react-navigation/native": "^6.1.7", "@react-navigation/native-stack": "^6.9.13", "@react-navigation/stack": "^6.3.17", "axios": "^1.4.0", "buffer": "^6.0.3", "card-validator": "^8.1.1", "expo-modules-core": "^1.5.4", "fbjs": "^3.0.5", "isomorphic-webcrypto": "^2.3.8", "js-base64": "^3.7.5", "lodash": "^4.17.21", "lodash.compact": "^3.0.1", "lodash.every": "^4.6.0", "lodash.pick": "^4.4.0", "lodash.values": "^4.3.0", "lottie-ios": "3.4.1", "lottie-react-native": "^5.1.6", "moment-timezone": "^0.5.43", "patch-package": "^7.0.0", "postinstall-postinstall": "^2.1.0", "prop-types": "^15.8.1", "react": "18.2.0", "react-hook-form": "^7.45.1", "react-native": "0.72.1", "react-native-biometrics": "^3.0.1", "react-native-blob-util": "^0.18.3", "react-native-bootsplash": "^4.7.4", "react-native-calendars": "^1.1299.0", "react-native-camera": "^4.2.1", "react-native-confirmation-code-field": "^7.3.1", "react-native-contacts": "^7.0.5", "react-native-device-info": "^10.7.0", "react-native-fast-image": "^8.6.3", "react-native-flash-message": "^0.4.1", "react-native-flip-card": "^3.5.7", "react-native-geocoding": "^0.5.0", "react-native-geolocation-service": "^5.3.1", "react-native-gesture-handler": "^2.12.0", "react-native-google-places-autocomplete": "^2.5.1", "react-native-image-picker": "^5.6.0", "react-native-jumio-mobilesdk": "https://github.com/Jumio/mobile-react.git#v4.5.0", "react-native-keychain": "^8.1.1", "react-native-linear-gradient": "^2.7.3", "react-native-loading-spinner-overlay": "^3.0.1", "react-native-localization": "^2.3.2", "react-native-localize": "^3.0.2", "react-native-map-clustering": "^3.4.2", "react-native-maps": "^1.7.1", "react-native-masked-text": "^1.13.0", "react-native-mmkv": "^2.10.1", "react-native-modal": "^13.0.1", "react-native-modalize": "^2.1.1", "react-native-pdf": "^6.7.1", "react-native-permissions": "^3.8.3", "react-native-qrcode-scanner": "^1.5.5", "react-native-qrcode-svg": "^6.2.0", "react-native-radial-gradient": "^1.1.3", "react-native-radio-buttons": "^1.0.0", "react-native-reanimated": "^3.3.0", "react-native-safe-area-context": "^4.6.4", "react-native-screens": "^3.22.1", "react-native-skeleton-content-nonexpo": "^1.0.13", "react-native-svg": "^13.9.0", "react-native-toast-message": "^2.1.6", "react-native-vector-icons": "^9.2.0", "react-native-webview": "^13.2.2", "react-redux": "^8.1.1", "reanimated-bottom-sheet": "^1.0.0-alpha.22", "redux": "^4.2.1", "redux-logger": "^3.0.6", "redux-persist": "^6.0.0", "redux-thunk": "^2.4.2", "reselect": "^4.1.8", "socket.io-client": "^4.7.1", "validate.js": "^0.13.1" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@react-native/eslint-config": "^0.72.2", "@react-native/metro-config": "^0.72.7", "@tsconfig/react-native": "^3.0.0", "@types/metro-config": "^0.76.3", "@types/react": "^18.0.24", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.2.1", "babel-plugin-module-resolver": "^5.0.0", "eslint": "^8.19.0", "eslint-plugin-import": "^2.27.5", "jest": "^29.2.1", "metro-react-native-babel-preset": "0.76.5", "prettier": "^2.4.1", "react-native-svg-transformer": "^1.0.0", "react-test-renderer": "18.2.0", "typescript": "4.8.4" }, "engines": { "node": ">=16" } }

Snack, code example, screenshot, or link to a repository

Screenshot 2023-07-11 at 11 01 12 AM

maksibajo4 avatar Jul 11 '23 09:07 maksibajo4

This looks similar to this reported issue: https://github.com/facebook/react-native/issues/38140#issuecomment-1614755738, can you read that thread if that's useful to unblock yourself.

blakef avatar Jul 11 '23 09:07 blakef

This looks similar to this reported issue: #38140 (comment), can you read that thread if that's useful to unblock yourself.

I've read that threat but that issue is for version 0.69.1, so it didn't really help

maksibajo4 avatar Jul 11 '23 09:07 maksibajo4

@blakef even after applying the patch [email protected] I still get the same error:

/Users/user/Documents/projects/UpdateTest/node_modules/react-native/ReactCommon/react/utils/RunLoopObserver.cpp:10:10 'react/debug/react_native_assert.h' file not found

maksibajo4 avatar Jul 11 '23 10:07 maksibajo4

This looks similar to this reported issue: #38140 (comment), can you read that thread if that's useful to unblock yourself.

I've read that threat but that issue is for version 0.69.1, so it didn't really help

CleanShot 2023-07-11 at 12 06 40@2x

Did you rerun bundle exec pod install after applying the patch?

blakef avatar Jul 11 '23 11:07 blakef

@blakef yes i did, i also tried to remove all pods and cache to do a clean bundle exec pod install, but still the issue persists.

/Users/user/Documents/projects/UpdateTest/node_modules/react-native/ReactCommon/react/utils/RunLoopObserver.cpp:10:10 'react/debug/react_native_assert.h' file not found

maksibajo4 avatar Jul 11 '23 12:07 maksibajo4

any solution for this problem?

vishesh9096 avatar Jul 15 '23 11:07 vishesh9096

+1

ravindraguptacapgemini avatar Jul 18 '23 11:07 ravindraguptacapgemini

I am also facing the same issue

surbhidavara99 avatar Jul 18 '23 11:07 surbhidavara99

Also seeing the same issue

VasuLief avatar Jul 19 '23 07:07 VasuLief

I am also facing the same issue

Shreepadav avatar Jul 20 '23 06:07 Shreepadav

Any fix? Also struggling with it.

MarcinuDev avatar Jul 21 '23 12:07 MarcinuDev

you can see here i'am success

and you can type npx react-native doctor

https://github.com/facebook/react-native/issues/38140

hairus avatar Jul 22 '23 08:07 hairus

@maksibajo4 Did you manage to fix this issue?

harouf avatar Jul 31 '23 16:07 harouf

+1

LE: Fixed by using https://github.com/software-mansion/react-native-svg/issues/2081#issuecomment-1691758876 Make sure you pass the libraries that complain

if ["React-cxxreact", "React-NativeModulesApple", "RNGestureHandler", "RNScreens", "React-utils", "React-runtimescheduler"].any? { |t| t == target.name }
	append_header_search_path(target, "${PODS_ROOT}/../../node_modules/react-native/ReactCommon")
end

adelindanaila avatar Aug 07 '23 08:08 adelindanaila

+1

zjkuang avatar Aug 09 '23 23:08 zjkuang

@blakef I found that the patches mentioned in the thread above have already been included in RN 0.72.4. But with RN 0.72.4 I still have this issue.

zjkuang avatar Aug 15 '23 20:08 zjkuang

Is there anyone who can solve? I've been stuck there for a while :(

WYA-Not-Found avatar Aug 18 '23 08:08 WYA-Not-Found

I was able to fix the issue with this: https://github.com/software-mansion/react-native-svg/issues/2081#issuecomment-1691758876

daniel-toth-leeder avatar Aug 24 '23 14:08 daniel-toth-leeder

For those who still has this problem, you can temporary get rid of it by pointing out to those headers manually by adding this into your podfile:

installer.pods_project.targets.each do |target|
    # These React Naive targets have probelm on resolving some of their header files
    # These lines will point out to header files that were missing
    # This is a known issue on React Native 0.72
    # https://github.com/facebook/react-native/issues/38283
    
    if target.name == 'React-RCTSettings' || target.name == 'React-RCTBlob' || target.name == 'React-NativeModulesApple' || target.name == 'React-RCTVibration' || target.name == 'React-RCTNetwork' || target.name == 'React-RCTAnimation' || target.name == 'React-RCTImage' || target.name == 'React-RCTLinking' || target.name == 'React-Codegen' || target.name == 'React-CoreModules'
      target.build_configurations.each do |config|
        config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited) "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon/react/nativemodule/core/"
      end
    end
    
    if target.name == "RNReanimated"
      target.build_configurations.each do |config|
        config.build_settings["CLANG_CXX_LANGUAGE_STANDARD"] = 'c++17'
        config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited) "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon/react/nativemodule/core/"
      end
    end
    if target.name == 'React-RCTAppDelegate' || target.name == 'React-utils' || target.name == 'React-NativeModulesApple' || target.name == 'React-cxxreact'
      target.build_configurations.each do |config|
        config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited) "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon"
      end
    end

    if target.name == 'VisionCamera' || target.name == 'ReactCommon'
      target.build_configurations.each do |config|
        config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited) "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ "
        config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../../../node_modules/react-native/ReactCommon/react/nativemodule/core/"
      end
    end
  end

After this step you will also need to resolve RCTAppSetupUtils.h, for doing so add "${PODS_ROOT}/../../../../node_modules/react-native/Libraries/AppDelegate" in Header search paths in the build settings of main target of application, also change #import <React/RCTAppSetupUtils.h> to #import <RCTAppSetupUtils.h>

I know this is not an ideal solution but it will bypass current errors for bumping your ReactNative version to 0.72.4.

Note to developers: Seems like all the problems lies in ReactCommon so I guess fixing its podspec might fix the issue

ShRoO0oM avatar Aug 24 '23 14:08 ShRoO0oM

Hello I found the solution after working on this for so many long :) It's like the issue with your react native version gap

So I did this :

  • I remove everything from my podfile from ios folder
  • create new react native application
    • copy everything from podfile(new project ios folder) and paste it to old project podfile
    • delete Pods folder from (old project) ios folder and then pod install

If you don't want to create new project to copy new podfile code, you can have it here "( use_modular_headers! require Pod::Executable.execute_command('node', ['-p', 'require.resolve( "react-native/scripts/react_native_pods.rb", {paths: [process.argv[1]]}, )', dir]).strip

platform :ios, min_ios_version_supported prepare_react_native_project!

linkage = ENV['USE_FRAMEWORKS'] if linkage != nil Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green use_frameworks! :linkage => linkage.to_sym end

target 'YourProject' do config = use_native_modules!

flags = get_default_flags()

use_react_native!( :path => config[:reactNativePath],

:hermes_enabled => flags[:hermes_enabled],
:fabric_enabled => flags[:fabric_enabled],
:app_path => "#{Pod::Config.instance.installation_root}/.."

)

target 'YourProjectTests' do inherit! :complete end

post_install do |installer| react_native_post_install( installer, config[:reactNativePath], :mac_catalyst_enabled => false ) __apply_Xcode_12_5_M1_post_install_workaround(installer) end end

)"

Hope It will solve your problem with "react/debug/react_native_assert.h' file not found" error in react native ios GoodLuck Guys!

WYA-Not-Found avatar Aug 29 '23 09:08 WYA-Not-Found

After having been blocked many days, my issue was finally fixed by this: https://github.com/software-mansion/react-native-svg/issues/2081#issuecomment-1691758876

zjkuang avatar Sep 11 '23 16:09 zjkuang

After having been blocked many days, my issue was finally fixed by this: software-mansion/react-native-svg#2081 (comment)

Hi! Can you please guide me on how you resolve this? I added the following code in my pod but I am still getting the same error: installer.pods_project.targets.each do |target| if ["React-cxxreact", "React-NativeModulesApple", "RNGestureHandler", "RNScreens", "React-utils", "React-runtimescheduler"].any? { |t| t == target.name } append_header_search_path(target, "${PODS_ROOT}/../../node_modules/react-native/ReactCommon") end end

adilijaz avatar Sep 23 '23 07:09 adilijaz

Getting this on RN 0.72.5 and XCode 15

Adding the following to post_install do |installer| fixed it for now:

    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        if ["React-cxxreact", "React-utils", "React-NativeModulesApple"].any? { |t| t == target.name }
          config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited) "
          config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../node_modules/react-native/ReactCommon"
        end
      end
    end

enchorb avatar Sep 25 '23 18:09 enchorb

Getting this on RN 0.72.5 and XCode 15

Adding the following to post_install do |installer| fixed it for now:

    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        if ["React-cxxreact", "React-utils", "React-NativeModulesApple"].any? { |t| t == target.name }
          config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited) "
          config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../node_modules/react-native/ReactCommon"
        end
      end
    end

Could you show your full post_install? I am still getting this error

EduardoBravoP avatar Sep 25 '23 20:09 EduardoBravoP

The full snippet is below

After further testing while this resolves the react/debug/react_native_assert.h I am now getting another error for React-NativeModulesApple --> 'ReactCommon/TurboModuleBinding.h' file not found.

Seems like other folks who have use_frameworks! are getting the later as well. https://github.com/react-native-tvos/react-native-tvos/issues/575

Edit: After further debugging this seems to be an issue with the recent 0.72.5 release. 0.72.4 works for me on XCode 14.3.1 & 15, but 0.72.5 leads to the above errors.

  post_install do |installer|
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false
    )

    __apply_Xcode_12_5_M1_post_install_workaround(installer)

    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        if ["React-cxxreact", "React-utils", "React-NativeModulesApple"].any? { |t| t == target.name }
          config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited) "
          config.build_settings["HEADER_SEARCH_PATHS"] << "${PODS_ROOT}/../../node_modules/react-native/ReactCommon"
        end
      end
    end
  end

enchorb avatar Sep 25 '23 21:09 enchorb

Downgrading to 0.72.4 (from 0.72.5) and upgrading the XCode from 14.3.2 to 15 fixed it for me without changing the Podfile.

natak0 avatar Sep 29 '23 12:09 natak0

Hi there, sorry that this issue slipped from my watch. Can any of you create a reproducer using the official reproducer so that I can work on that and fix the issue for everyone?

The reproducer should be a vanilla react native app, with all the required libraries.

Thank you so much

cipolleschi avatar Oct 13 '23 07:10 cipolleschi

I am having this issue, I've tried everything above and still have no luck. I tried on both RN 0.72.3 and 0.72.6. I cannot get rid of this error. this was not a problem on RN 0.71

nica0012 avatar Oct 24 '23 16:10 nica0012

@nica0012 from 0.71 to 0.72 we had to change how the project is structured internally and we introduced some new pods.

some of the third party dependencies needs to be updated in order to support this new setup. I already opened PRs agains RNGestureHandler and RNScreens which are suffering from the problem.

Can you share your Podfile (enclosed in </code> quotes) and the list of your dependencies (enclosed in <code> as well)?

That would help me figure out which dependencies needs to be updated. I'm working on a sample project with all the offending dependencies to build in CI to make sure we don't break them again, and the list of the more common ones would be super useful. Thank you! 🙏

cipolleschi avatar Oct 25 '23 09:10 cipolleschi

Thanks @enchorb , your solution worked for me. 🚀

monkeyK1n9 avatar Oct 25 '23 12:10 monkeyK1n9